Learning
토픽 134 / 147·네트워크 응용 및 고급 프로토콜

TCP 혼잡 제어 심화 (CUBIC, BBR, Vegas)

TCP 혼잡 제어 심화 (CUBIC, BBR, Vegas)

네트워크 혼잡을 감지하고 전송률을 조절하는 TCP 알고리즘으로, 손실 기반(CUBIC)과 지연 기반(BBR, Vegas)으로 구분되며 네트워크 특성에 따라 성능 차이 발생

목적: 네트워크 혼잡 방지, 공정한 대역폭 분배, 처리량 최적화, 지연 최소화

혼잡 제어 분류

  • 손실 기반(Loss-based): 패킷 손실을 혼잡 신호로 사용 (Reno, CUBIC)
  • 지연 기반(Delay-based): RTT 증가를 혼잡 신호로 사용 (Vegas, BBR)
  • 하이브리드: 손실+지연 복합 사용 (Compound TCP)

CUBIC (Linux 기본)

  • 3차 함수(Cubic Function) 기반 윈도우 조절
  • 손실 후 빠른 윈도우 회복, 고대역폭 네트워크에 적합
  • W(t) = C(t - K)³ + Wmax, K = ³√(Wmax × β / C)
  • 장점: 고속 네트워크에서 빠른 수렴, RTT 공정성
  • 단점: 버퍼블로트(Bufferbloat) 유발, 높은 지연

BBR (Bottleneck Bandwidth and RTT)

  • Google 개발, 지연 기반 혼잡 제어
  • 병목 대역폭(BtlBw)과 최소 RTT(RTprop) 추정
  • 목표: 최대 처리량 + 최소 지연 (버퍼 채우지 않음)
  • 4단계 상태: Startup → Drain → ProbeBW → ProbeRTT
  • 장점: 낮은 지연, 버퍼블로트 해결, 손실에 덜 민감
  • 단점: 손실 기반 알고리즘과 공정성 문제, 구현 복잡

Vegas

  • RTT 차이로 혼잡 예측: 예상 처리량 vs 실제 처리량
  • Diff = (Expected - Actual) × BaseRTT
  • Diff > β면 윈도우 감소, Diff < α면 윈도우 증가
  • 장점: 사전 혼잡 감지, 낮은 손실률
  • 단점: 손실 기반 알고리즘에 대역폭 양보

적용환경: CUBIC(범용/Linux 기본), BBR(YouTube/Google), Vegas(연구용)

비교: CUBIC(손실기반/버퍼채움) vs BBR(지연기반/최소지연) vs Vegas(보수적/RTT 기반)

연관: TCP, 혼잡 제어, QoS, 버퍼블로트, 네트워크 성능