Fixing TCP Slow Start for Slow Fat Links
Maryam Ataei Kachooei, Pinhan Zhao, Feng Li, Jae Won Chung, and Mark Claypool
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.
Benjamin Peters, Pinhan Zhao, Jae Won Chung, and Mark Claypool. TCP HyStart Performance over a Satellite Network, In Proceedings of the 0x15 NetDev Conference, Virtual Conference, July 2021. Online at: http://www.cs.wpi.edu/~claypool/papers/tcp-hystart-netdev-21/