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) 그대로입니다.
- BtlBw (Bottleneck Bandwidth, 병목 대역폭): 통신 경로 중 가장 좁은 파이프의 너비(최대 전송 속도)가 얼마인가?
- 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은 어디에 쓰이나?
- QUIC / HTTP/3: BBR은 QUIC 프로토콜과 가장 궁합이 잘 맞습니다. QUIC은 애플리케이션 레벨에서 구현되므로 BBR 알고리즘을 쉽게 적용하고 업데이트할 수 있습니다.
- YouTube: 구글은 유튜브 서버에 BBR을 적용하여 전 세계적으로 버퍼링을 평균 4% 줄이고, 처리량을 14% 향상시켰다고 발표했습니다.
- Google Cloud Platform (GCP): GCP의 내부 네트워크 및 외부 로드밸런서에 기본적으로 적용되어 있습니다.
6. 요약
BBR은 "꽉 찰 때까지 밀어 넣는" 무식한 방식에서 벗어나, "도로의 용량을 계산해서 스마트하게 흘려보내는" 차세대 혼잡 제어 알고리즘입니다. 이는 HTTP/3(QUIC)가 모바일 환경이나 불안정한 네트워크에서도 빠른 속도를 낼 수 있는 핵심 엔진 역할을 합니다.