Network/Basic

TCP 프로토콜 (혼잡 제어)

조기축구아저시 2023. 1. 8. 15:30
패킷 window 크기를 결정지을 때 RWND(수신측이 보내준 윈도우 크기)뿐만 아니라 네트워크 상태를 고려한다고 했는데 이 윈도우 크기를 CWND(혼잡 윈도우)라고 한다. 더 작은 값으로 window 크기를 사용한다.

 

CWND 혼잡 윈도우 크기 선정 정책

- AIMD(additive Increase Multcative Decrease)

 : 윈도우를 키울 때는 +1, 줄일 때는 *0.5, Bandwidth가 남아도 천천히 증가한다는 단점이 있다.



Slow Start

 : 인프라의 발전으로 Bandwidth가 남는 경우가 많아 AIMD의 단점이 더 부각되고 있다.

   윈도우를 키울 때는 지수형태, 줄일 때는 1로 줄여버리는 방식이다.

   극단적으로 줄여버림에 따라 최근 TCP에서 사용하는 Tahoe, Reno는 AIMD와 slow start를 섞어서 사용한다.



TCP 프로토콜 (키워드 정리)

 

TCP 혼잡 제어

- Tahoe(타호), Reno(레노), New Reno, Cubic, Elastic-TCP 많다.

- Tahoe(타호), Reno(레노) : 임계점(threshold)이상이 되었을 시 slow-start 방식에서 AIMD방식으로 전환

- Tahoe(타호) : 임계점(threshold)이상이 되었을 시 증가 방식을 지수형태에서 +1로 전환

- Reno(레노) : 임계점(threshold)이상이 되었을 시 증가 방식을 지수형태에서 +1로 전환

                       감소 방식도 1로 줄이는 것에서 *0.5로 전환하는데

                       timeout시에는 그대로 1이고 3 ack dup일 때만 *0.5한다.

- 최근에는 지수형태가 아닌 3차함수 형태로 더 빠르게 윈도우 크기를 증가시키는 혼잡 제어 방식을 사용한다.

 

- Fast Retransmit (빠른 재전송) : 수신 측에서 어떤 sequence의 패킷을 받았더라도 순서대로 들어온 패킷의 다음 sequence를 ack에 채워 넣기 때문에 3 ack dup이 발생하므로 빠른 재전송이 가능하다.