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