BBR (Bottleneck Bandwidth and Round-trip propagation time)

agnusdei·2025년 12월 12일

BBR (Bottleneck Bandwidth and Round-trip propagation time)은 구글(Google)이 개발하여 2016년에 발표한 최신 TCP 혼잡 제어(Congestion Control) 알고리즘입니다.

1. BBR의 탄생 배경: "손실 기반"의 한계

BBR을 이해하려면 기존 알고리즘(Reno, CUBIC 등)이 왜 문제였는지 알아야 합니다.

기존 방식: 손실 기반 (Loss-based)

  • 동작 원리: 네트워크가 감당할 수 없을 때까지 데이터를 밀어 넣습니다. 그러다 라우터 버퍼가 꽉 차서 패킷 손실(Packet Loss)이 발생하면, 그제야 "아, 너무 많이 보냈구나" 하고 전송 속도를 확 줄입니다.
  • 문제점 (Bufferbloat): 현대의 라우터들은 메모리가 저렴해져서 버퍼(Buffer)가 매우 큽니다.
    • 기존 TCP는 이 거대한 버퍼를 꽉 채울 때까지 데이터를 계속 쏟아붓습니다.
    • 패킷 손실은 발생하지 않지만, 데이터가 버퍼 속에서 하염없이 대기하느라 지연 시간(Latency/RTT)이 엄청나게 늘어나는 현상, 즉 버퍼블로트(Bufferbloat)가 발생합니다.

2. BBR의 핵심: "모델 기반" (Model-based)

BBR은 패킷이 손실될 때까지 기다리지 않습니다. 대신 네트워크의 상태를 지속적으로 측정(모델링)하여, 네트워크가 감당할 수 있는 '최적의 속도'로 데이터를 보냅니다.

BBR이 측정하는 두 가지 지표

이름(Bottleneck Bandwidth and RTT) 그대로입니다.

  1. BtlBw (Bottleneck Bandwidth, 병목 대역폭): 통신 경로 중 가장 좁은 파이프의 너비(최대 전송 속도)가 얼마인가?
  2. RTprop (Round-Trip propagation time, 왕복 전파 시간): 통신 경로가 텅 비어 있을 때(물리적 거리만 고려했을 때) 왕복 시간이 얼마인가?

BBR의 목표: 클라인락의 최적점 (Kleinrock's Optimal Operating Point)

BBR은 이 두 값을 곱한 BDP (Bandwidth-Delay Product) 만큼만 데이터를 네트워크에 띄우려고 노력합니다.

  • 의미: 파이프의 굵기(BtlBw)와 길이(RTprop)를 계산해서, 파이프가 꽉 차되 넘치지는 않을 만큼만(버퍼를 건드리지 않을 만큼) 데이터를 보냅니다.

3. BBR의 동작 방식 (직관적 비유)

  • 기존 TCP (CUBIC) - "눈 감고 달리기":
    • 앞차(패킷 손실)와 부딪힐 때까지 엑셀을 밟습니다. 쾅 부딪히면 브레이크를 밟습니다. 이 과정을 반복합니다. 결과적으로 도로는 항상 꽉 막혀 있습니다.
  • BBR - "정속 주행":
    • 도로의 제한 속도(BtlBw)와 거리(RTprop)를 계산합니다.
    • 앞차와의 간격을 유지하면서 일정한 속도(Pacing)로 달립니다. 차가 막히지(Bufferbloat) 않으면서도 가장 빠르게 목적지에 도착합니다.

4. BBR의 주요 특징 및 장점

구분기존 TCP (CUBIC)BBR (Google)
판단 기준패킷 손실 (Packet Loss)대역폭(Bandwidth) & RTT
데이터 전송윈도우 크기만큼 한꺼번에 전송 (Burst)Pacing을 통해 일정 간격으로 전송
버퍼 상태버퍼를 가득 채움 (Full Buffer)버퍼를 비워둠 (Empty Buffer)
강점손실이 없는 고속망에서는 비효율적패킷 손실이 있는 환경이나 무선망에서도 속도 유지 탁월
단점Bufferbloat 유발 (지연 시간 증가)공정성(Fairness) 이슈 (BBR이 대역폭을 독점하려는 경향이 있었음, v2에서 개선 중)

5. BBR은 어디에 쓰이나?

  1. QUIC / HTTP/3: BBR은 QUIC 프로토콜과 가장 궁합이 잘 맞습니다. QUIC은 애플리케이션 레벨에서 구현되므로 BBR 알고리즘을 쉽게 적용하고 업데이트할 수 있습니다.
  2. YouTube: 구글은 유튜브 서버에 BBR을 적용하여 전 세계적으로 버퍼링을 평균 4% 줄이고, 처리량을 14% 향상시켰다고 발표했습니다.
  3. Google Cloud Platform (GCP): GCP의 내부 네트워크 및 외부 로드밸런서에 기본적으로 적용되어 있습니다.

6. 요약

BBR은 "꽉 찰 때까지 밀어 넣는" 무식한 방식에서 벗어나, "도로의 용량을 계산해서 스마트하게 흘려보내는" 차세대 혼잡 제어 알고리즘입니다. 이는 HTTP/3(QUIC)가 모바일 환경이나 불안정한 네트워크에서도 빠른 속도를 낼 수 있는 핵심 엔진 역할을 합니다.

0개의 댓글