Fixing TCP Slow Start for Slow Fat Links
[Hystart, No Hystart, BEST]

Fixing TCP Slow Start for Slow Fat Links

Maryam Ataei Kachooei, Pinhan Zhao, Feng Li, Jae Won Chung, and Mark Claypool

In Proceedings of the 0x16 NetDev Conference
Lisbon, Portugal
October 2022

TCP slow start is designed to begin at a conservative bitrate, but quickly ramp up to the available bandwidth. Unfortunately, current default Linux TCP socket buffer sizes impede slow start bitrates on large bandwidth-delay product (BDP) links. However, even with our recommended socket buffer sizes in place, traditional slow start does not work well on large BDP links such as satellites, often overshooting and causing significant packet loss. Conversely, TCP HyStart (on by default in Linux), intended to avoid overshooting during slow start, can exit from slow start prematurely which is especially detrimental to utilization on large BDP links. This paper proposes adjustments to slow start that find a safe point to enter congestion avoidance (CA) without overshooting, while also avoiding premature exiting that degrades link utilization on large BDP links. We evaluate the proposed slow start algorithm over a commercial geostationary satellite link, a low orbit satellite link and a wired link. Our preliminary results indicate that our proposed slow start adjustments improve start-up performance over satellite links, outperforming the measured alternatives.


See also: