Learning
토픽 17 / 147·네트워크 기초 및 프로토콜

TCP 혼잡 제어

TCP 혼잡 제어

네트워크 혼잡을 감지하고 전송률을 동적 조절하여 패킷 손실과 네트워크 붕괴를 방지하는 TCP 메커니즘

특징: 송신측 기반 제어, 공정한 대역폭 분배, AIMD 원리

핵심 변수: CWND(송신 윈도우), ssthresh(Slow Start↔Congestion Avoidance 임계값), 실제 전송 윈도우 = min(CWND, rwnd)

동작 단계

  • Slow Start: CWND=1 MSS, ACK마다 +1 → RTT마다 2배(지수 증가), ssthresh 도달 시 Congestion Avoidance 전환
  • Congestion Avoidance: RTT마다 CWND +1(선형 증가), 타임아웃 시 ssthresh=CWND/2, CWND=1
  • Fast Retransmit: 3중복 ACK 시 타임아웃 대기 없이 즉시 재전송
  • Fast Recovery: 3dupACK 후 ssthresh=CWND/2, CWND=ssthresh+3, Slow Start 미진입(Reno)

Tahoe vs Reno: Tahoe(3dupACK 시 CWND=1) vs Reno(Fast Recovery로 빠른 복구)

현대 알고리즘: CUBIC(3차함수/고BDP/Linux 기본), BBR(지연 기반/RTT 추정/버퍼블로트 방지)

비교: Reno(손실 기반/기본) vs CUBIC(3차함수/고BDP) vs BBR(지연 기반/Google)

연관: TCP, 흐름 제어, AIMD, 성능