TCP Congestion Control Comparison

Compare CUBIC, BBR, and Reno throughput under varying loss rate and RTT. Includes workload recommendation matrix.

Workload Recommendation Matrix
WorkloadRecommendedAvoidReason
Bulk WAN transfer (high BDP)BBR RenoBBR fills BDP without inflating queues; Reno stalls on high RTT × BW products
Interactive SSH / telnetCUBIC Low BDP; all algorithms similar; CUBIC default on Linux is fine
Video streaming (sustained)BBR RenoBBR maintains stable send rate without loss-triggered drops
Datacenter east-west (low RTT)CUBIC BBRVery low RTT; CUBIC converges fast; BBR's probing adds unnecessary jitter
High-loss mobile linkBBR RenoBBR uses BW estimation not loss-based; doesn't misinterpret wireless drops as congestion
Fairness with legacy endpointsCUBIC BBRBBR can unfairly dominate CUBIC/Reno flows in shared bottlenecks (BBRv1 issue)
Algorithm Overview
AlgorithmApproachCongestion SignalBest For
CUBICCubic polynomial growth of cwnd after lossPacket lossGeneral-purpose; Linux default since 2.6.19
BBRModel-based, estimates bottleneck BW + RTTBW saturation + RTT increaseHigh-BDP WAN, lossy links, video streaming
RenoAIMD — additive increase, multiplicative decreasePacket lossLegacy compatibility; avoid on high-BDP links