TCP Congestion Control Comparison
TCP Congestion Control Comparison
Compare CUBIC, BBR, and Reno throughput under varying loss rate and RTT. Includes workload recommendation matrix.
Workload Recommendation Matrix
| Workload | Recommended | Avoid | Reason |
|---|---|---|---|
| Bulk WAN transfer (high BDP) | BBR | Reno | BBR fills BDP without inflating queues; Reno stalls on high RTT × BW products |
| Interactive SSH / telnet | CUBIC | — | Low BDP; all algorithms similar; CUBIC default on Linux is fine |
| Video streaming (sustained) | BBR | Reno | BBR maintains stable send rate without loss-triggered drops |
| Datacenter east-west (low RTT) | CUBIC | BBR | Very low RTT; CUBIC converges fast; BBR's probing adds unnecessary jitter |
| High-loss mobile link | BBR | Reno | BBR uses BW estimation not loss-based; doesn't misinterpret wireless drops as congestion |
| Fairness with legacy endpoints | CUBIC | BBR | BBR can unfairly dominate CUBIC/Reno flows in shared bottlenecks (BBRv1 issue) |
Algorithm Overview
| Algorithm | Approach | Congestion Signal | Best For |
|---|---|---|---|
| CUBIC | Cubic polynomial growth of cwnd after loss | Packet loss | General-purpose; Linux default since 2.6.19 |
| BBR | Model-based, estimates bottleneck BW + RTT | BW saturation + RTT increase | High-BDP WAN, lossy links, video streaming |
| Reno | AIMD — additive increase, multiplicative decrease | Packet loss | Legacy compatibility; avoid on high-BDP links |