TCP 제어 정책

강윤경·2022년 10월 31일
0

Network

목록 보기
9/17

TCP Tahoe

  • Slow Start를 사용한 혼잡 제어 정책의 초기 버전
  • 빠른 재전송 기법이 처음으로 도입된 방법
  • 처음에는 Slow Start를 사용하여 윈도우 크기를 지수적으로 빠르게 증가시키다가 ssthresh를 만난 이후부터는 AIMD에서 사용하는 합 증가 방식을 사용해 선형적으로 윈도우 크기를 증가시킨다.
  • AIMD?
    Additive Increase Multiplicative Decrease, 합 증가 곱 감소 방식
    네트워크에 문제가 없어 전송 속도를 더 빠르게 하고 싶다면 cwnd 값을 1씩 증가, 중간에 데이터가 유실되거나 응답이 오지 않는 등의 혼잡 상태가 감지되면 cwnd 값을 반으로 감소
    늘어날 때는 window size+1, 줄어들 때는 window*0.5
  • ACK Duplicated 나 Time-out이 발생하면 네트워크에 혼잡이 발생했다고 판단하고, ssthresh와 자신의 윈도우 크기를 수정
  • 송신 측은 임계점을 만나기 전까지 Slow Start 방식을 사용하여 윈도우 크기를 지수적으로 증가시키다가 ssthresh를 넘어선 이후부터는 선형적 증가
  • 3 ACK Duplicated와 Time-out 는 같은 혼잡으로 취급
  • slow start 구간에서 혼잡 상황이 발생하였을 때 cwnd 값을 1부터 키워야 하기 때문에 오래 걸린다.
  • Tahoe 방식에서 빠른 회복 방식을 활용한 것이 TCP Reno

TCP Reno

  • Tahoe와 마찬가지로 Slow Start로 시작하여 임계점을 넘어서면 합 증가로 변경하는 방법
  • Tahoe와는 달리 3 ACK Duplicated와 Time-out를 구분
  • 3개의 중복 ACK 발생 시, 윈도우 크기를 AIMD처럼 반으로 줄이고 sshtresh를 줄어든 윈도우 값으로 정한다.
  • 3개의 중복 ACK 발생 시 cwnd를 반으로 줄인 후 합 증가, sshtresh는 줄어든 cwnd 값
  • Time-out 시 Tahoe와 같이 cwnd 값을 1로 줄이고 Slow Start를 진행하고 sshtresh를 변경하지 않는다.
  • cwnd 크기를 1로 줄이고 처음부터 다시 시작하는 Tahoe에 비해서 빠르게 원래 윈도우 크기에 도달할 수 있기 때문에 빠른 회복이라 한다.

TCP ofo

  • out of order
  • 데이터 패킷이 전송 된 순서와 다른 순서로 전달되는 것
  • ofo는 혼잡이 발생하였을 발생
  • TCP는 신뢰성이 있는 프로토콜로 신뢰되지 않는 데이터를 전달할 수 없다. 해서 ofo가 발생하였을 때, 수신 측의 4계층 Transport 계층은 데이터의 손실, 순서 역전이 일어난 데이터를 5계층 Application 계층으로 전달하지 않고 재전송이 일어나기를 기다린다. 서비스를 하고 있는 5계층 Application은 데이터가 오지 않아 계속 지연된다.
  • TCP는 패킷 마다 sequence number를 붙이고 retransmission 할 수 있게 처리하여 reordering(순서를 원래대로)를 해주며 흐름 제어를 통해 데이터를 보내는 순서를 조절한다.

0개의 댓글