Topic

BBR(Bottleneck Bandwidth and Round-trip propagation time)

JackerLab 2025. 5. 7. 01:34
728x90
반응형

개요

BBR(Bottleneck Bandwidth and Round-trip propagation time)은 구글에서 개발한 TCP 혼잡 제어 알고리즘으로, 기존의 손실 기반 방식(Reno, CUBIC)과 달리 네트워크 경로의 병목 대역폭과 왕복 지연 시간(RTT)을 기반으로 혼잡을 예측하고 처리하는 혁신적인 접근 방식입니다. BBR은 고속 네트워크, 모바일 환경, 대륙 간 통신 등에서 지연을 최소화하고 스루풋을 극대화하는 데 매우 효과적입니다.


1. 개념 및 정의

**BBR(Bottleneck Bandwidth and RTT)**는 패킷 손실이 아닌 대역폭(BtlBw)과 최소 RTT(RTprop)를 측정하여 혼잡 윈도우(CWND)를 조절하는 방식의 TCP 전송 제어 알고리즘입니다.

  • 목표: RTT 증가나 패킷 손실 없이 최대 스루풋 유지
  • 개발 주체: Google (2016)
  • 적용 환경: YouTube, Google Cloud, Android TCP stack 등

2. BBR 작동 원리

단계 설명
Startup 대역폭과 RTT 측정 시작, CWND 증가 (프로빙)
Drain 버퍼에 쌓인 패킷을 제거하여 지연 최소화
ProbeBW 주기적으로 대역폭 재측정 (스루풋 탐색)
ProbeRTT RTT 갱신을 위한 일시적 전송량 감소

BBR은 약 8초 주기로 RTT를 갱신하며, **혼잡 회피가 아닌 혼잡 회피 ‘예방’**에 초점을 둡니다.


3. BBR vs 기존 알고리즘 비교

항목 BBR CUBIC Reno
혼잡 감지 대역폭 + RTT 기반 패킷 손실 기반 패킷 손실 기반
지연 민감도 낮음 (지연 증가 방지) 지연 증가 가능성 높음 높음
스루풋 효율 매우 높음 중간 낮음
버퍼블로트 현상 방지 발생 가능 발생 가능
RTT 공정성 낮음 (v1), v2에서 개선 중 상대적 공정성 유지 공정

BBR은 특히 고지연/무선/모바일 환경에서 뛰어난 성능을 보입니다.


4. 장점 및 단점

항목 장점 단점
전송 효율성 최대 대역폭 활용, 빠른 수렴 RTT 기반 오차 가능성 존재
지연 최소화 손실 없는 전송으로 버퍼블로트 억제 UDP 등과의 경쟁 시 불리할 수 있음
클라우드 적합성 대규모 서버 환경에서 이상적 RTT 불공정성 이슈 (v1 기준)
알고리즘 단순성 복잡한 AIMD 회피, 선형적 탐색 특정 시나리오에서 비효율 가능

BBR은 2023년 기준 v2까지 릴리스되어 공정성과 혼잡 반응성이 향상되었습니다.


5. 실제 활용 및 채택 사례

기업/플랫폼 활용 방식
Google YouTube TCP 스택 전체 적용 (지연 33%↓)
Cloudflare Edge 네트워크에서 적용 (적응형 혼잡 제어)
Netflix 스트리밍 환경에서 실험적 적용
Linux Kernel 4.9 이상 커널에서 BBR 지원 (sysctl로 설정 가능)

BBR은 특히 영상 스트리밍, 게임, 실시간 커뮤니케이션 환경에 적합합니다.


6. 설정 및 사용 방법 (Linux 기준)

# BBR 모듈 로드
sudo modprobe tcp_bbr

# BBR 사용 설정
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr

# 적용 확인
sysctl net.ipv4.tcp_congestion_control

7. 결론

BBR은 전송 제어 알고리즘의 새로운 패러다임으로, 손실 기반이 아닌 대역폭 기반이라는 접근을 통해 스루풋과 지연이라는 상충 관계를 동시에 해결한 대표적인 성공 사례입니다. 향후 BBR v2와 함께 다중 RTT 환경, UDP 전송, CDN 등 더 많은 네트워크 계층에서 적용이 확대될 것으로 기대되며, 차세대 인터넷 성능 향상의 핵심 기술 중 하나로 주목받고 있습니다.

728x90
반응형

'Topic' 카테고리의 다른 글

Intel TDX(Trust Domain Extensions)  (2) 2025.05.07
L4S(Low-Latency, Low-Loss, Scalable Throughput)  (0) 2025.05.07
WebAssembly System Interface(WASI)  (1) 2025.05.07
Saga Pattern  (0) 2025.05.06
Bulkhead Pattern  (1) 2025.05.06