[스터디] 컴퓨터 네트워크 3주차

minisoo·2023년 9월 26일
0

신뢰적 데이터 전송의 원리

📗 슬라이딩 윈도우

데이터의 신뢰성있는 전송을 보장하는 TCP 프로토콜의 흐름제어 방법중 하나이다
슬라이딩 윈도우 기법은 정지-대기 기법의 비효율성을 개선한 기법으로 수신측에서 설정한 위도우 크기만큼 송신 측에서 확인 응답 없이 세그먼트를 전송할 수 있게 하여 데이터의 흐름을 동적으로 조절하는 기법이다

송신, 수신측은 각각 데이터를 담을 수 있는 버퍼를 가지고있고 별도로 윈도우라는 일종의 마스킹 도구를 가지고 있게되는데, 송신 측은 윈도우에 들어있는 데이터를 수신 측 응답이 없어도 연속적으로 보낼 수 있다

송신측의 윈도우 크기는 처음 TCP 연결 하는 과정인 3way handshake때 결정되는데, 이 윈도우크기는 단순 수신 측 버퍼의 크기로만 정하는게 아닌 네트워크 상황 등을 파악해서 결정하게 된다.
예) 윈도우 크기가 3일경우 0 1 2 에 담긴 데이터를 보낸 후 수신측에서 1윈도우의 사이즈가 남았다고 응답을 받았을 경우 송신측 윈도우에는 1 2 3이 담기게 되고 3을 수신측에 전송하게 된다.

📗 Go Back N

수신측에서 순서대로 받지 못한 패킷이 있다면 해당 패킷부터 다시 재전송 하는 방식
수신측은 정상적으로 받지 못한 패킷이 있을경우 해당 패킷이 올때까지 다른 패킷들을 받아도 받지 못한 패킷의 직전 패킷에 대한 ACK를 보낸다
예) 수신 측에서 4번 데이터에서 에러를 감지하면 4번 이후부터 받은 데이터를 모두 폐기 후 송식 측에 NACK를 보내게 된다 송신 측은 5번 데이터까지 전송했지만 오류가 발생한 4번으로 되돌아가서 재 전송해야하기때문에 go back n이라고 불린다.

📗 Selective Repeat

GBN은 하나의 패킷 오류로 많은 패킷들을 재전송하게 되므로 불필요하게 재전송되는 문제점이 있게되는데, 그런 비효율성을 해결하기 위해 나온 방식이 SR이다.

해당 방식은 오류 난 데이터만 재전송 하기때문에 굉장히 효율적으로 느껴지지만 중간에 폐기처분된 데이터를 재전송하게 되면 수식 측 버퍼에는 데이터가 순차적으로 존재하지 않게 된다.
이렇게 되면 재전송이라는 과정 대신 재 정렬이라는 과정이 추가되는 것인데 이를 위해서는 복잡한 로직과 추가적인 메모리가 요구될 수 있게 된다.

TCP

📗 TCP

전송 계층의 대표적인 연결지향 프로토콜로 패킷손실, 중복 오류 등 모든 전송 문제를 검출하고 해결
TCP 패킷에는 패킷 송신, 수신하는 시스템의 포트번호, 각 세그먼트의 번호, 윈도우 크기, TCP 제어 플래그 등의 정보가 담겨있다.

📗 3 way handshake

TCP 프로토콜에서 데이터 전송 전 정확한 전송을 보장하기 위해 서버와 클라이언트 사이의 세션을 수립하는 과정

  1. 클라이언트 → 서버 [접속을 요청하는 SYN 패킷을 보냄]
  2. 서버는 SYN요청을 받고 클라이언트에게 요청 수락한다는 ACK과 SYN flag가 설정된 패킷 보냄
  3. 클라이언트가 서버에게 ACK를 보낸 후 연결이 이루어짐

📗 4 way handshake

TCP 세션을 종료하기 위해 수행되는 절차

  1. 클라이언트 → 서버 [연결 종료 FIN 플래그 전송]
  2. 서버 → 클라이언트 [확인 메세지 전송 후 통신이 끝날때까지 기다림]
  3. 서버 → 클라이언트 [연결 종료되었다는 FIN 플래그 전송]
  4. 클라이언트 → 서버 [확인 메세지 전송]

📗 TCP 빠른 재전송

TCP는 현재까지 누적된 정상 데이터 중 가장 마지막 데이터에 대한 승인 번호를 보내주는 누적 승인 방식을 사용하기 때문에 송신 측이 같은 승인 번호를 계속 중복해서 받는다면 해당 데이터 이후 문제가 생겼다는 걸 알 수 있다.

이때 3번의 중복 승인 번호를 받게되면 송신 측은 자신이 설정한 타임아웃 시간이 지나지 않았어도 바로 해당 패킷을 재전송하게 되는데 이 기법이 빠른 재전송으로 TCP 혼잡제어 방법중 하나이다

📗 Congestion control

송신 서버의 데이터 전송과 네트워크의 처리 속도 차이로 인한 네트워크 혼잡을 해결하기 위한 기법으로 송신측에서 보내는 데이터 속도를 강제로 조절한다.

📗 Flow control

송신 서버와 수신 클라이언트의 데이터 처리 속도 차이로 인한 수신 버퍼 overflow를 해결하기 위한 기법

수신 클라이언트의 처리속도에 맞춰서 송신 서버의 데이터 전송 속도를 강제로 줄일 필요가 있는데 수신측이 송신측으로 자신의 수신 가능 상태를 알리는 피드백이 필요하게 된다.


슬라이딩 윈도우1
슬라이딩 윈도우2
TCP
3 way handshake, 4 way handshake
빠른 재전송
Congestion control, Flow control

profile
코딩하는 돌멩이 👻

0개의 댓글