Congestion window

송신 가능량은 rwnd와 cwnd 중 더 작은 값에서 flight를 뺀다

혼잡 제어는 네트워크를 보호하고, 흐름 제어는 수신자를 보호합니다. 실제 추가 전송량은 두 제한과 미확인 데이터량을 함께 봐야 합니다.

rwnd수신자가 광고한 남은 버퍼. 수신 측 보호 한계.
min
cwnd송신자가 추정한 경로 혼잡 한계. 네트워크 보호 한계.
flight size보냈지만 아직 ACK 받지 못한 데이터.
보호 대상
커지거나 줄어드는 이유
운영에서 보는 신호
rwnd
수신 버퍼와 애플리케이션 읽기 속도
앱이 빨리 읽으면 커지고, 버퍼가 차면 줄어듦
zero window, window update, receive buffer 튜닝
cwnd
라우터 큐와 네트워크 경로
ACK가 안정적이면 증가, 손실/ECN/지연 신호면 감소
cwnd, ssthresh, pacing rate, retransmit
flight size
이미 경로에 올라간 미확인 데이터
전송하면 증가하고 ACK가 오면 감소
flight ≤ min(rwnd, cwnd)인지 확인
sendable
지금 추가로 보낼 수 있는 여유
상한에서 flight size를 뺀 값, 앱 데이터와 MSS도 제약
처리량이 낮을 때 rwnd/cwnd/앱 중 무엇이 병목인지 분리