This topic keeps coming up again and again:
Which TCP congestion control algorithm has the best performance?
Which handles high latency, delays, and bottlenecks better?
And some might ask, what does it mean when the congestion window becomes zero? AH…
Yes, it’s true — no matter how much technology improves, how fast chipsets and processors become, or how advanced fast-forwarding gets — congestion still happens.
Today’s topic isn’t about local datacenter LAN-side congestion (which may be caused by high network usage in clustered, fabric-based structures — AI workloads, maybe?).
We’re talking about long-haul network connections — like between two distant endpoints. Take Starlink, for example: a satellite-based system with unpredictable latency and environmental effects.
So, how are these “OLD” TCP congestion control algorithms still being used today?
Can monitoring TCP congestion control behavior — like how the congestion window changes — be used to detect potential congestion and trigger a BGP or transit path switch?
Maybe — but it depends on the access technology. If the last mile is wireless, measurements might not be reliable enough.
So, which one is best suited for the modern era?
Here’s a list of Linux-supported TCP congestion control algorithms (summarized by ChatGPT):
highspeed: Designed for networks with large bandwidth-delay products.
reno: The traditional TCP congestion control algorithm.
cubic: Default in Linux since kernel 2.6.19; optimized for high-speed networks.
bbr: Developed by Google (since kernel 4.9); focuses on bottleneck bandwidth and round-trip time.
bic: Binary Increase Congestion Control; predecessor to CUBIC.
htcp: Hamilton TCP; designed for high-speed, long-distance networks.
vegas: A delay-based algorithm that adjusts the sending rate based on RTT variations.
westwood: Optimized for lossy networks; adjusts congestion window based on bandwidth estimation.
yeah: Yet Another Highspeed TCP; combines delay and loss-based congestion detection.
hybla: Improves performance over high-latency networks by compensating for RTT.
illinois: Dynamically adjusts the congestion window for high-speed, long-distance links.
lp: Low Priority; designed for background traffic to yield to more important flows.
veno: Hybrid of Reno and Vegas; optimized for wireless networks.
scalable: Increases congestion window more rapidly than traditional TCP.
nv: New Vegas; an improvement over TCP Vegas.
cdg: Congestion Distance; uses delay gradients to detect congestion.
dctcp: Data Center TCP; optimized for data center networks using ECN.