TCP CONTROL

흐름 제어와 혼잡 제어는 보호 대상이 다르다

흐름 제어는 수신 버퍼를, 혼잡 제어는 네트워크 경로를 보호한다. 송신자는 두 제한 중 더 작은 쪽을 따른다.

receiver windowcongestion windowflight size
Flow Control

수신 측이 더 받을 수 있는 양을 rwnd로 광고한다. 버퍼 오버플로우를 줄이는 것이 목적이다.

Congestion Control

송신 측이 네트워크 혼잡 신호를 보고 cwnd를 조절한다. 라우터 큐와 경로 전체를 보호한다.

send_limit = min(rwnd, cwnd)
flight_size <= send_limit

핵심: rwnd가 커도 네트워크가 혼잡하면 cwnd가 제한하고, cwnd가 커도 수신 버퍼가 작으면 rwnd가 제한한다.