Internet Engineering Task Force Mark Allman INTERNET DRAFT ICSI File: draft-allman-slow-start-00.txt July 2008 Expires: January 2009 TCP Slow Start Survey: Standards & Issues Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The IETF Trust (2008). Abstract Survey of standards and research on TCP's slow start algorithm. Editor's Note Much of the document below is simply in outline form. I started this as a way to organize things in my head and am throwing it out to see if folks think it'd be useful to flesh out. I will continue it as time permits. In addition, this document is heavily slanted towards the work that came immediately to mind when I was hacking rather than as the result of some systematic study of the space. The result is, therefore, heavily slanted towards my own work at the moment. 1 Introduction This document surveys the standards and research relating to TCP's slow start algorithm, which was originally presented in [Jac88] and Expires: January 2009 [Page 1] draft-allman-slow-start-00.txt July 2008 is standardized in [RFC2581]. The slow start algorithm is but one part of TCP's overall congestion control strategy. See [RFC2581] for details about the entire strategy and [RFC2914] for a description of the over-arching congestion control principles that guide standards in this area. Slow starts has two major functions within the overall congestion control framework: + Establishing the ACK clock. TCP generally follows the "conservation of packets" principle [Jac88] whereby a new segment is transmitted into the network when a previously transmitted segment has left the network. This process needs bootstrapped when there are no packets in the network and slow start is the manner in which TCP does this bootstrapping. + Finding an appropriate sending rate. A connection's appropriate sending rate across an arbitrary network path is unknown when the connection begins. Therefore, some process is needed to ascertain a reasonable sending rate over an arbitrary network path. Again, slow start is charged with this task by starting with a low rate that assumed to be reasonable for most network paths and using feedback from the network to increase the rate to use available capacity. [Insert something here about additional protocols that use slow start, namely SCTP and DCCP.] 2 Startup vs. Loss Recovery (vs. Idle Re-Start) [Insert a note about the different times when slow start is utilized within a connection.] 3 Disassembling Slow Start There are three main phases to slow start: (1) the initial conditions setup before transmission occurs, (2) the increase phase where slow start increases the sending rate to meet the present network conditions and (3) when and how slow start is terminated. Each of these phases of slow start will be considered in a subsection below. 3.1 Initial State 3.1.1 Standards [Jac88] says the initial cwnd is 1 segment + [Perhaps also [RFC1122] and/or [RFC2001]. Check.] [RFC2414] allowed the initial cwnd to be 1--4 segments (depending on Expires: January 2009 [Page 2] draft-allman-slow-start-00.txt July 2008 size) as experimental + [RFC2415] & [RFC2416] offered evidence on the change + [RFC2581] allows the initial cwnd to be 1 or 2 segments + [RFC3390] moved the full change from [RFC2414] from experimental to standard [RFC2581] and [RFC3390] say the cwnd after an RTO should be 1 segment [RFC2581] recommends the cwnd after an idle period to be 1 or 2 segments [Add SCTP & DCCP considerations.] 3.1.2 Research Jump Start Dan Liu, Mark Allman, Shudong Jin, Limin Wang. Congestion Control Without a Startup Phase. Protocols for Fast, Long Distance Networks (PFLDnet) Workshop, February 2007. http://www.icir.org/mallman/papers/jumpstart-pfldnet07.pdf Quick Start Sally Floyd, Mark Allman, Amit Jain, Pasi Sarolahti. Quick-Start for TCP and IP, January 2007. RFC 4782. Pasi Sarolahti, Mark Allman, Sally Floyd. Determining an Appropriate Sending Rate Over an Underutilized Network Path. Computer Networks Special Issue on Protocols for Fast, Long-Distance Networks, 51(7), May 2007. http://www.icir.org/mallman/papers/qs-comnet.pdf DCCP Re-Start E. Kohler, S. Floyd, A. Sathiaseelan. Faster Restart for TCP Friendly Rate Control (TFRC). Internet draft draft-ietf-dccp-tfrc-faster-restart-05.txt, November 2007. Caching Congestion Control State Venkata N. Padmanabhan Randy H. Katz. TCP Fast Start: A Technique For Speeding Up Web Transfers, Global Internet '98 Conference, Nov. 1998. [TCB caching] [Congestion manager] 3.2 Increase Phase Expires: January 2009 [Page 3] draft-allman-slow-start-00.txt July 2008 3.2.1 Standards [RFC2581] says cwnd gets bumped by SMSS bytes on each ACK of new data [Add SCTP & DCCP considerations.] 3.2.2 Research Byte Counting Mark Allman. On the Generation and Use of TCP Acknowledgments. ACM Computer Communication Review, 28(5), October 1998. http://www.icir.org/mallman/papers/acks.ps Mark Allman. TCP Byte Counting Refinements. ACM Computer Communication Review, 29(3), July 1999. http://www.icir.org/mallman/papers/bc-ccr.ps Mark Allman. TCP Congestion Control with Appropriate Byte Counting (ABC), February 2003. RFC 3465. TCP Vegas Lawrence Brakmo, Larry Peterson. TCP Vegas: End to End Congestion Avoidance on a Global Internet, IEEE Journal on Selected Areas in Communications, 13(8), 1995. Limited Slow Start Sally Floyd. Limited Slow-Start for TCP with Large Congestion Windows, march 2004. RFC 3742. DCCP Re-Start E. Kohler, S. Floyd, A. Sathiaseelan. Faster Restart for TCP Friendly Rate Control (TFRC). Internet draft draft-ietf-dccp-tfrc-faster-restart-05.txt, November 2007. Leveraging Bandwidth Estimation Janey Hoe. Improving the Start-up Behavior of a Congestion Control Scheme for TCP, ACM SIGCOMM, August 1996. Mark Allman, Vern Paxson. On Estimating End-to-End Network Path Properties, ACM SIGCOMM, September 1999. http://www.icir.org/mallman/papers/estimation.ps Craig Partridge, Dennis Rockwell, Mark Allman, Rajesh Krishnan, James Sterbenz. A Swifter Start for TCP. Technical Report TR-8339, BBN Technologies, March 2002. http://www.icir.org/mallman/papers/tr8339.ps Expires: January 2009 [Page 4] draft-allman-slow-start-00.txt July 2008 3.3 Termination 3.2.1 Standards [RFC2581] says slow start is done when we observe a congestion signal (loss or ECN) or when we hit ssthresh [Add SCTP & DCCP considerations.] [Quickly could mention that advanced loss recovery is often handy here.] 3.2.2 Research ?? 4 Discussion 5 Security Considerations This document is informational and should not be taken as a change to any standard and therefore does not consider security issues. Referenced standards each contain a discussion of security implications. Acknowledgments Normative References Informative References Author's Address: Mark Allman International Computer Science Institute 1947 Center Street, Suite 600 Berkeley, CA 94704-1198 Phone: 440-235-1792 mallman@icir.org http://www.icir.org/mallman/ Appendix A: References The Author Still Needs To Absorb This is a list of references that I have been made aware of and need to chase down and learn about before including them in the taxonomy above. N. Hu, P. Steenkiste, "Improving TCP Startup Performance using Active Measurements: Algorithm and Evaluation", Proc. 11th Intl. Conf. on Network Protocols, 2003. R-S Cheng, H-T Lin, W-S Hwang, C-K Shieh, "Improving the Ramping Up Behavior of TCP Slow Start", Proc. 19th Intl. Conf. on Advances Information Networking and Applications, 2005. Expires: January 2009 [Page 5] draft-allman-slow-start-00.txt July 2008 C-Y Ho, Y-C Chan, Y-C Chen, "An Enhanced Slow Start Mechanism for TCP Vegas", Proc. 11th Intl. Conf. on Parallel and Distributed Systems, 2005 M-F Horng, H-W Hsu, W-L Du, Y-Hsiang, Hung and M-H Lee, "A Fast-Startup Mechanism for VoIP in Long-Distance Networks", Proc. Intl Conference on Intelligent Information Hiding and Multimedia Signal Processing, 2006. Yogesh Bhumralkar, Jeng Lung, and Pravin Varaiya. "Network adaptive TCP slow start" Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Expires: January 2009 [Page 6] draft-allman-slow-start-00.txt July 2008 Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Expires: January 2009 [Page 7]