Internet Engineering Task Force S. Floyd INTERNET-DRAFT ICIR draft-floyd-quickstart-sctp-00a.txt 23 November 2006 Expires: May 2007 Quick-Start for the Stream Control Transmission Protocol (SCTP) Abstract This document specifies the use of Quick-Start [QuickStart] for the Stream Control Transmission Protocol (SCTP) [RFC2960]. Quick-Start is a Experimental mechanism for transport protocols, in cooperation with routers, to determine an allowed sending rate at the start and at times in the middle of a data transfer (e.g., after an idle period). [QuickStart] describes many paths where Quick-Start requests would not be approved. These paths include all paths containing routers, IP tunnels, MPLS paths, and the like that do not support Quick- Start. These paths also include paths with routers or middleboxes that drop packets containing IP options. Quick-Start requests could be difficult to approve over paths that include multi-access layer- two networks. [QuickStart] also describes environments where the Quick-Start process could fail with false positives, with the sender incorrectly assuming that the Quick-Start request had been approved by all of the routers along the path. As a result of these concerns, and as a result of the difficulties and seeming absence of motivation for routers such as core routers to deploy Quick-Start, Quick-Start has been proposed as a mechanism that could be of use in controlled environments, and not as a mechanism that would be intended or appropriate for ubiquitous deployment in the global Internet. 1. Introduction This document assumes that the reader is familiar with [QuickStart], which specifies Quick-Start. [QuickStart] specifies Quick-Start with IP and with TCP, and Section 7 of [QuickStart] gives guidelines for the use of Quick-Start with other transport protocols. In using Quick-Start, an SCTP host, say, host A, would indicate its desired sending rate in bytes per second, using a Quick-Start option Floyd [Page 1] INTERNET-DRAFT Quick-Start for SCTP November 2006 in the IP header of an SCTP packet. Each router along the path could, in turn, either approve the requested rate, reduce the requested rate, or indicate that the Quick-Start request is not approved. If the Quick-Start request is approved by all routers along the path, then the SCTP host can send at up to the approved rate for a window of data. Subsequent transmissions will be governed by the default SCTP congestion control mechanisms of that connection. If the Quick-Start request is not approved, then the sender would use the default congestion control mechanisms. Section 2 of this document specifies the SCTP mechanisms needed for the use of Quick-Start. 2. The Quick-Start Mechanisms in SCTP This section describes how the Quick-Start mechanism would be used in SCTP. Unless otherwise specified, the considerations for SCTP are in large part identical to those for TCP specified in Section 4 of [QuickStart]. Questions to be addressed, from Sally: * What should SCTP use as the equivalent of TCP's Quick-Start Response Option? * Unlike TCP, which is byte oriented, SCTP is message oriented. Does this affect the specification of Quick-Start for SCTP? (The semantics of the Quick-Start Request in the IP header must remain a request for a sending rate in bytes per second.) * Unlike TCP, SCTP allows multi-streaming. This should not require any modifications to the Quick-Start specification for TCP. Right? * Unlike TCP, SCTP allows multi-homing, or the ability for a single SCTP endpoint to support multiple IP addresses. A single address is chosen as the "primary" address and is used as the destination for all DATA chunks for normal transmission. For Quick-Start, probably all that is needed is that a requirement that the Quick-Start Request and all Quick-Start data packets be sent to the primary address. * The SCTP initiation procedure uses a four-message sequence, incorporating a "cookie" mechanism. Does this require any changes Floyd [Page 2] INTERNET-DRAFT Quick-Start for SCTP November 2006 in the use of a Quick-Start Request? Instead of a TCP SYN packet carrying a Quick-Start Request as an IP Option, which SCTP initiation packets would be able to carry a Quick-Start Request? 2.1. Sending the Quick-Start Request No change needed from Section 4 of [QuickStart]? 2.2. The Quick-Start Response Option in the SCTP header [First pass at text, copying from Section 4 of [QuickStart]...] In order to approve the use of Quick-Start, the SCTP receiver responds to the receipt of a Quick-Start Request with a Quick-Start Response, using the Quick-Start Response Option in the SCTP header. SCTP's Quick-Start Response option is defined as follows: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Kind | Length=8 | Resv. | Rate | TTL Diff | | | | |Request| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | R | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5. The Quick-Start Response option in the SCTP header. 2.3. STCP: Sending the Quick-Start Response No change needed from Section 4 of [QuickStart]? 2.4. STCP: Receiving and Using the Quick-Start Response Packet No change needed from Section 4 of [QuickStart]? 2.5. SCTP: Controlling Acknowledgement Traffic on the Reverse Path No change needed from Section 4 of [QuickStart]? Floyd [Page 3] INTERNET-DRAFT Quick-Start for SCTP November 2006 2.6. SCTP: Responding to a Loss of a Quick-Start Packet No change needed from Section 4 of [QuickStart]? 2.7. SCTP: A Quick-Start Request for a Larger Initial Window No change needed from Section 4 of [QuickStart]? 2.8. Interactions with Path MTU Discovery No change needed from Section 4 of [QuickStart]? 2.9. Quick-Start Request Packets that are Discarded by Routers or Middleboxes No change needed from Section 4 of [QuickStart]? 2.10. SCTP: A Quick-Start Request in the Middle of a Connection No change needed from Section 4 of [QuickStart]? 2.11. An Example Quick-Start Scenario with SCTP No change needed from Section 4 of [QuickStart]? Normative References [RFC2960] R. Stewart, et al. Stream Control Transmission Protocol. RFC 2960, October 2000. Informative References [QuickStart] S. Floyd, M. Allman, A. Jain, and P. Sarolahti, Quick- Start for TCP and IP. Internet-draft draft-ietf-tsvwg- quickstart-07.txt, work in progress, October 2006. Approved for Experimental. AUTHORS' ADDRESSES Floyd [Page 4] INTERNET-DRAFT Quick-Start for SCTP November 2006 Sally Floyd Phone: +1 (510) 666-2989 ICIR (ICSI Center for Internet Research) Email: floyd@icir.org URL: http://www.icir.org/floyd/ Floyd [Page 5]