Taming the elephants: New TCP slow start

Standard slow start does not work well under large bandwidth-delay product (BDP) networks. We find two reasons for this problem in three popular existing operating systems: Linux, FreeBSD and Windows XP. The first reason is that heavy packet losses occur because of the exponential increase of the congestion window during standard slow start. Recovering from heavy packet losses puts extremely high loads on end systems, rendering the end systems completely unresponsive for a long period of time, and results in a long blackout period without transmission. This problem commonly occurs with all three operating systems. The second reason is that some proprietary protocol optimizations applied to slow start happen to slow down the loss recovery followed by slow start. Although improving the system bottleneck by optimizing data structures is valuable especially for addressing the processing overload with heavy packet losses, it is not effective for the prolonged loss recovery caused by proprietary optimizations. In addition, a large number of packet losses are not desirable since they waste network bandwidth and lead TCP into frequent timeouts and loss synchronization which results in under-utilization of the network. We propose a new slow start algorithm, called Hybrid Start (HyStart), that finds a ''safe'' exit point for slow start at which it can terminate and safely advance to the congestion avoidance phase without causing heavy packet loss. HyStart uses ACK trains and RTT delay samples to detect whether (1) the forward path is congested or (2) the current size of the congestion window has reached the available capacity of the forward path. HyStart is a plugin to TCP senders and requires no change on TCP receivers. We implement HyStart for TCP-NewReno and TCP-SACK in Linux and compare its performance with five different slow start schemes on the TCP receivers of the three different operating systems on the Internet and also in lab testbeds. Our results indicate that HyStart works consistently well under diverse network environments, including asymmetric links, wireless networks, and high and low BDP networks. Especially with different operating system receivers (Windows XP and FreeBSD), HyStart improves the start-up throughput of TCP significantly by more than 2 to 3 times and is the default slow start algorithm of CUBIC since Linux 2.6.29.

[1]  Srinivasan Keshav,et al.  A control-theoretic approach to flow control , 1991, SIGCOMM '91.

[2]  Paul Barford,et al.  Generating representative Web workloads for network and server performance evaluation , 1998, SIGMETRICS '98/PERFORMANCE '98.

[3]  Mario Gerla,et al.  CapStart: An Adaptive TCP Slow Start for High Speed Networks , 2009, 2009 First International Conference on Evolving Internet.

[4]  A. Lyman Chapin Proceedings of the conference on Communications architecture & protocols , 1991, SIGCOMM 1991.

[5]  Janey C. Hoe Improving the start-up behavior of a congestion control scheme for TCP , 1996, SIGCOMM 1996.

[6]  Lili Wang,et al.  A Conservative Selective Acknowledgment (SACK)-based Loss Recovery Algorithm for TCP , 2003, RFC.

[7]  Sally Floyd,et al.  Measuring the evolution of transport protocols in the internet , 2005, CCRV.

[8]  Sally Floyd,et al.  TCP Selective Acknowledgement Options , 1996 .

[9]  Sally Floyd,et al.  Adaptive RED: An Algorithm for Increasing the Robustness of RED's Active Queue Management , 2001 .

[10]  S. Ha,et al.  Hybrid Slow Start for High-Bandwidth and Long-Distance Networks , 2008 .

[11]  Dennis Fowler,et al.  Net News , 1999, The Lancet.

[12]  Tom Kelly,et al.  Scalable TCP: improving performance in highspeed wide area networks , 2003, CCRV.

[13]  Kevin Jeffay,et al.  Variability in TCP round-trip times , 2003, IMC '03.

[14]  Robert Shorten,et al.  Delay-based AIMD congestion control , 2007 .

[15]  Guido Appenzeller,et al.  Sizing router buffers , 2004, SIGCOMM '04.

[16]  Sally Floyd,et al.  The NewReno Modification to TCP's Fast Recovery Algorithm , 2004, RFC.

[17]  Injong Rhee,et al.  CUBIC: a new TCP-friendly high-speed TCP variant , 2008, OPSR.

[18]  Markku Kojo,et al.  Improving processing performance of Linux TCP SACK implementation , 2009 .

[19]  Cheng Song,et al.  High performance TCP in ANSNET , 1994, CCRV.

[20]  Kang G. Shin,et al.  A simple refinement of slow-start of TCP congestion control , 2000, Proceedings ISCC 2000. Fifth IEEE Symposium on Computers and Communications.

[21]  Jasleen Kaur,et al.  RAPID: Shrinking the Congestion-Control Timescale , 2009, IEEE INFOCOM 2009.

[22]  Mark Crovella,et al.  Measuring Bottleneck Link Speed in Packet-Switched Networks , 1996, Perform. Evaluation.

[23]  Larry L. Peterson,et al.  TCP Vegas: End to End Congestion Avoidance on a Global Internet , 1995, IEEE J. Sel. Areas Commun..

[24]  Janey C. Hoe Improving the start-up behavior of a congestion control scheme for TCP , 1996, SIGCOMM '96.

[25]  Sally Floyd,et al.  Quick-Start for TCP and IP , 2007, RFC.

[26]  Randy H. Katz,et al.  TCP Fast Start: A Technique For Speeding Up Web Transfers , 1998 .

[27]  Peter Steenkiste,et al.  Improving TCP startup performance using active measurements: algorithm and evaluation , 2003, 11th IEEE International Conference on Network Protocols, 2003. Proceedings..

[28]  Ren Wang,et al.  TCP westwood: Bandwidth estimation for enhanced transport over wireless links , 2001, MobiCom '01.

[29]  Marcel Dischinger,et al.  Characterizing residential broadband networks , 2007, IMC '07.

[30]  Parameswaran Ramanathan,et al.  Packet-dispersion techniques and a capacity-estimation methodology , 2004, IEEE/ACM Transactions on Networking.

[31]  Injong Rhee,et al.  Impact of background traffic on performance of high-speed TCP variant protocols , 2007, Comput. Networks.

[32]  Manish Jain,et al.  End-to-end available bandwidth: measurement methodology, dynamics, and relation with TCP throughput , 2003, TNET.

[33]  Giovanni Pau,et al.  TCP Start up Performance in Large Bandwidth Delay Networks. , 2004, INFOCOM 2004.

[34]  Sally Floyd Limited Slow-Start for TCP with Large Congestion Windows , 2004, RFC.

[35]  Ying Zhang,et al.  A Measurement Study of Internet Delay Asymmetry , 2008, PAM.

[36]  Vern Paxson,et al.  On estimating end-to-end network path properties , 2001, SIGCOMM LA '01.

[37]  Van Jacobson,et al.  Random early detection gateways for congestion avoidance , 1993, TNET.

[38]  Sally Floyd,et al.  An Extension to the Selective Acknowledgement (SACK) Option for TCP , 2000, RFC.

[39]  Michael Scharf,et al.  Quick-Start TCP : From Theory to Practice , 2008 .

[40]  Grenville Armitage,et al.  Characterising the Behaviour and Performance of SIFTR v1.1.0 , 2007 .