EN
Back to the archive

The encyclopedia · Software & IT · Technical decision · 2016–2018

Google's BBR fixed TCP by modeling the bottleneck instead of fearing loss

BBR replaced loss-based TCP congestion control with a model of the bottleneck's bandwidth and RTT, raising YouTube throughput 4% globally without new hardware.

Google

The solution

TCP's congestion control was designed in the 1980s around one equivalence: packet loss means congestion, so cut the sending rate. By 2016 that equivalence had broken — NICs moved from Mbps to Gbps and memory from KB to GB — so loss-based algorithms like CUBIC either kept huge buffers full (bufferbloat) or misread loss and delivered a fraction of the available bandwidth.

Google's make-tcp-fast team — Neal Cardwell, Yuchung Cheng, C. Stephen Gunn, Soheil Hassas Yeganeh and Van Jacobson — built BBR (Bottleneck Bandwidth and Round-trip propagation time). It measures the maximum delivery rate and minimum RTT actually observed, paces packets at that rate, and uses loss only as a signal that the queue has filled.

Deployed on google.com and YouTube, BBR improved YouTube's median network throughput by about 4% globally and over 14% in some countries, with shorter queues and lower latency — no hardware or protocol changes, just a new congestion-control algorithm shipped in the kernel.

Why it worked

  • Pacing at measured bandwidth keeps queues short
  • Loss becomes a queue-full signal, not the main control input
  • Works where loss-based control underutilizes high-BDP paths
  • Ships in the kernel, so no hardware or server changes
What it achievedModel the bottleneck; pace at its rate, don't fear lossclever

What can be applied

When a rule that once worked stops matching reality, replace the heuristic with a model: BBR stopped treating loss as congestion and measured the actual bottleneck instead.

Aftermath

BBR was merged into the Linux kernel in 2016, became the recommended congestion control for many CDNs and cloud providers, and spawned BBRv2. Google later rolled it out to Google Cloud TCP, improving cross-continent throughput for cloud customers.

Sources

spotted an error? The archive wants to know.

Related cases