How TCP Congestion Control Algorithms CUBIC and BBR Differ in Managing Internet Latency and Throughput
While traditional TCP CUBIC relies on packet loss to detect network congestion, Google's BBR algorithm uses latency and bandwidth modeling to pace data delivery. The shift fundamentally changes how high-speed and lossy networks handle traffic, trading buffer bloat for optimized throughput.
By Paige Carter
- High-Throughput Content Providers
- Advocates for model-based congestion control to maximize streaming and mobile performance.
- Legacy Infrastructure Operators
- Defenders of loss-based algorithms for their stability and fairness on traditional networks.
- Protocol Fairness Researchers
- Academics focused on resolving the coexistence issues between different congestion control models.
Perspectives this story doesn't cover
- End-user ISP administrators
- Mobile hardware manufacturers
Common questions
Can I use BBR on any server?
Yes, BBR is available in modern Linux kernels and can be enabled with a simple configuration change, though it is most effective when paired with the 'fq' packet scheduler.
Does BBR eliminate packet loss?
No, BBR does not prevent packet loss, but it prevents the sender from unnecessarily slowing down when random loss occurs on wireless or congested links.
Why is CUBIC still the default?
CUBIC is highly robust, fair to other flows, and performs exceptionally well on clean, wired local area networks where packet loss genuinely indicates congestion.
The short answer
- TCP CUBIC relies on packet loss to detect congestion, which can cause severe throughput drops on lossy wireless networks.
- Google's BBR algorithm builds a model of the network's bottleneck bandwidth and round-trip time to pace data delivery.
- In simulated 1 percent packet loss environments, BBR retains over 91 percent of its baseline throughput while CUBIC drops by 70 percent.
- BBR can cause fairness issues when competing with CUBIC flows, prompting ongoing research into pacing gain models to ensure equitable bandwidth allocation.
Network engineers face a fundamental divide in how to push data across the internet without melting the connection. On one side, the traditional loss-based approach assumes that a dropped packet means the network is full, demanding an immediate slowdown to prevent collapse. On the other side, a newer model-based philosophy argues that packet loss is a noisy signal, especially on modern wireless links, and that senders should instead measure the actual speed of the pipe and pace their packets accordingly.[6]
For anyone managing a server, a video streaming platform, or a high-speed network, the choice between these two philosophies dictates the throughput floor and latency ceiling of the application. The default algorithm on most operating systems, CUBIC, works exceptionally well on clean local networks but struggles on lossy connections. Switching a server to Bottleneck Bandwidth and Round-trip propagation time (BBR) requires only a single configuration change in the Linux kernel, yet it can double the throughput of a video stream on a degraded 4G link without touching the application code.[6]
To understand the divide, one must look at how Transmission Control Protocol (TCP) historically managed traffic. TCP uses a congestion window to limit the total number of unacknowledged packets that may be in transit end-to-end. CUBIC, which became the default in Linux, Windows, and Apple stacks, finds the network's capacity by sending data faster and faster until it sees a packet loss.[2][5]
When a drop occurs, CUBIC sharply reduces its sending window and then uses a cubic polynomial function to quickly ramp back up to the previous maximum before flattening out to probe for more capacity. This mathematical approach allows CUBIC to handle congestion with significantly greater complexity compared to the linear functions employed by older algorithms like Reno.[2]
The limitation of this loss-based design is that it fills network buffers until they overflow. "Loss happens before congestion for network gear with shallow buffers," notes ThousandEyes in their 2024 analysis of path quality. On links with deep buffers, CUBIC causes "buffer bloat"—a phenomenon where packets sit in long queues, adding hundreds of milliseconds of latency to the connection.[3]
Furthermore, on wireless or satellite links where packets are routinely lost to interference rather than congestion, CUBIC misinterprets the drop and unnecessarily throttles the connection. This behavior treats every packet drop as a sign of network collapse, which is a flawed assumption on modern 4G and 5G networks.[3][6]
This behavior treats every packet drop as a sign of network collapse, which is a flawed assumption on modern 4G and 5G networks.
Google introduced BBR to break the reliance on packet loss. Standardized as an Internet Engineering Task Force (IETF) draft, BBR actively probes the network to build a model of two parameters: the bottleneck bandwidth (the maximum data rate the path can support) and the round-trip time (the baseline delay when the network is empty).[1]
Instead of waiting for a buffer to overflow, BBR paces its packets to match the exact capacity of the bottleneck link. By doing so, it attempts to keep the transmit rate at the level just before network buffers begin to queue packets, effectively eliminating buffer bloat while maximizing throughput.[1]
The performance difference becomes stark when network conditions degrade. In a 2024 ThousandEyes benchmark, both algorithms achieved similar baseline throughputs on a clean symmetric network—804.6 Mbps for CUBIC and 868.5 Mbps for BBR. However, when engineers introduced a 1 percent packet loss rate, CUBIC's throughput collapsed to 235.51 Mbps.[3]
BBR, ignoring the random loss, maintained 794.06 Mbps—retaining over 91 percent of its baseline capacity. That represents a 70.3 percent difference in achieved throughput between CUBIC and BBR under identical loss conditions. This resilience makes BBR highly attractive for video streaming and mobile delivery, where maintaining a high throughput floor is critical for user experience.[3]
Despite its throughput advantages, BBR is not a universal solution. Researchers have documented fairness issues when BBR flows compete directly with CUBIC flows on the same bottleneck link. Because BBR ignores packet loss and continues to push data at the modeled bandwidth, it can starve loss-based algorithms that back off aggressively.[4][5]
Additionally, BBR has historically favored flows with longer round-trip times, allocating them more bandwidth than competing short-RTT flows. The MDPI journal published research on optimizing BBR through a "Pacing Gain Model" to address this exact fairness disparity, noting that adjusting the pacing gain according to the RTT can improve BBR's intra-protocol fairness by 46 percent.[4]
The networking community continues to refine these models to ensure equitable bandwidth allocation. BBRv3 has been integrated into recent Linux 6.x kernels, bringing updates that improve coexistence with CUBIC and reduce packet retransmissions. These iterative improvements are necessary before model-based algorithms can fully replace loss-based ones on the public internet.[1][4]
The transition from loss-based to model-based congestion control represents a structural shift in internet architecture. While CUBIC remains the robust, universally deployed standard for clean environments, BBR provides a necessary alternative for the increasingly wireless and heterogeneous public internet. The decision rests on the specific network path: a pure local area network may see little benefit from BBR, but for global content delivery, pacing to the bottleneck is replacing probing to the drop.[6]
Why it matters
For anyone managing a server, a video streaming platform, or a high-speed network, the choice between these two philosophies dictates the throughput floor and latency ceiling of the application. Switching from CUBIC to BBR requires only a single configuration change in the Linux kernel, yet it can double the throughput of a video stream on a degraded link without touching the application code.
Jargon, explained
- Bottleneck Bandwidth
- The maximum data rate that the slowest link in a network path can support.
- Round-Trip Time (RTT)
- The total time it takes for a data packet to travel to its destination and for the acknowledgment to return.
- Buffer Bloat
- Excessive latency caused by network routers buffering too many packets instead of dropping them when the link is full.
- Packet Pacing
- The practice of spacing out data transmission evenly over time rather than sending it in large bursts.
Sources
[1]IETFHigh-Throughput Content ProvidersBBR Congestion Control
Read on IETF →
[2]ResearchGateLegacy Infrastructure OperatorsCUBIC: a new TCP-friendly high-speed TCP variant
Read on ResearchGate →
[3]ThousandEyesHigh-Throughput Content ProvidersPath Quality: Is BBR the Future of Congestion Avoidance?
Read on ThousandEyes →
[4]MDPIProtocol Fairness ResearchersOptimization of BBR Congestion Control Algorithm Based on Pacing Gain Model
Read on MDPI →
[5]WikipediaLegacy Infrastructure OperatorsTCP congestion control
Read on Wikipedia →
[6]Factlen Editorial TeamSynthesis by Factlen editorial team
Read on Factlen Editorial Team →
Comments
More in Guides
See all →Acoustic Engineering
Active Noise Cancellation: How Phase Inversion and the Superposition Principle Silence Low-Frequency Sound
6 sources
Materials Science
Wöhler Curve and the Endurance Limit: How Stress Cycles Determine the Fatigue Life of Steel
6 sources
3D Printing Materials
PLA Creep in 3D Printing: Why Structural Parts Deform Under Continuous Load
7 sources
Emergency Prep
How to Use Power Tool Batteries as Emergency Blackout Power
4 sources
Every angle. Every day.
Get Guides stories with full source coverage and perspective breakdowns delivered to your inbox.




