BBR — Bottleneck Bandwidth and Round-trip propagation time — was published by Google in 2016 and replaced CUBIC as the default for Google's own services within two years. Where CUBIC infers congestion from packet loss, BBR continuously estimates two underlying properties of the path: the bottleneck's available bandwidth (measured from delivery rate) and the path's minimum round-trip time (measured from observed RTTs). It then paces sending at the bandwidth-delay product, keeping just enough data in flight to fill the pipe without queueing.

For streaming the practical wins are on cellular and Wi-Fi paths. CUBIC interprets random radio loss as congestion and backs off, wasting bandwidth. BBR keeps sending at the model-estimated rate and absorbs the loss with retransmission. The result is sustained throughput on links that previously stalled at 20 % of capacity. BBRv2 (2019) added explicit fairness with CUBIC flows; BBRv3 (2023) refined the bandwidth-estimation logic and pacing during periods of variable congestion.

BBR is available in mainline Linux since kernel 4.9, in Google's QUIC and HTTP/3 implementations, and as an option in most major CDNs. The trade-off is that BBR can be more aggressive than CUBIC against itself in some shared-buffer scenarios, leading to per-flow unfairness inside a CDN POP. Most operators run BBR on the server side (where they control both ends) and accept CUBIC on the client side.