Internet Engineering Task Force S. Floyd INTERNET-DRAFT M. Allmandraft-ietf-tsvwg-quickstart-05.txtdraft-ietf-tsvwg-quickstart-06.txt ICIR Expires:JanuaryFebruary 2007 A. Jain F5 Networks P. Sarolahti Nokia Research Center 30 August 2006 Quick-Start for TCP and IP 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. This Internet-Draft will expire onJanuaryFebruary 2007. Abstract This document specifies an optional Quick-Start 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). While Quick-Start is designed to be used by a range of transport protocols, in this document we only specify its use with TCP. Quick-Start is designed to allow connections to use higher sending rates when there is significant unused bandwidth along the path and the sender and all of the routers along the path approve the Quick-Start Request. This document 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. This document 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 is being 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. TO BE DELETED BY THE RFC EDITOR UPON PUBLICATION: Changes from draft-ietf-tsvwg-quickstart-05: * Minor editing in response to AD feedback from Lars Eggert. This includes changing one "should" to "SHOULD", and changing formating of the IANA Considerations section. * Clarifying in the Introduction that the QS router does not give preferential treatment to QS packets. In response to email from Fil Dickinson. * Added a discussion of interactions between Quick-Start and draft-ietf-pmtud-method. In response to AD Feedback from Lars Eggert. * Deleted Appendix F on "Feedback from Bob Briscoe". From AD feedback about deleting unnecessary appendices. * Added a paragraph to the Introduction about which sections contain normative references, and which sections are general discussion. From AD feedback. * Added a discussion about congestion control for TCP's reverse-path traffic. From feedback from Mitchell Erblich. Changes from draft-ietf-tsvwg-quickstart-04: * Reformatted references so that "[RFC2581, RFC3390]" is instead "([RFC2581], [RFC3390])", to eliminate bug reports from the idnits tool. From feedback from Dan Romascanu. * Rephrased beginning of second paragraph in the Abstract. From feedback from James Polk. Changes from draft-ietf-tsvwg-quickstart-03: * Added a discussion of the lower limit of the rate request of 80 kbps, from feedback from Gorry Fairhurst. * Added the QS Nonce to the QS Approved Rate. From feedback from Gorry Fairhurst. * Moved the Related Work section to the appendix. From feedback from Gorry Fairhurst. Changes from draft-ietf-tsvwg-quickstart-02: * Some general editing. * Said that if the receiver receives a Quick-Start Request with a rate of zero, then the receiver SHOULD NOT send a Quick-Start response. And that if the sender receives an acknowledgement of its packet with no Quick-Start response, then the sender MUST assume that the request was denied, and send a Report of Approved Rate with a rate of zero. * Said that if a Quick-Start packet is dropped or marked, the sender should not make more Quick-Start requests in this connection. * Said that the Quick-Start Request SHOULD be sent on a packet that requires an acknowledgement, e.g., a SYN, SYN/ACK, or data packet. * Made changes to the section on "TCP: A Quick-Start Request in the Middle of a Connection". * Added that if the TCP host is going to use the successful Quick-Start Request, it MUST start using it within one round-trip time of receiving the Quick-Start Response, or within three seconds, whichever is smaller. * Added a stronger applicability statement, in the abstract and in Section 10 on "Implementation and Deployment Issues". From feedback from the working group. * Added a section about MPLS. From feedback from Mitchell Erblichs. * Strengthened the language of the difficulties presented by multi-access links. * Added a discussion in Section 10.3 about the deployment of Quick-Start on single-hop paths. From feedback from Mitchell Erblichs. * Clarified that the "router" function of approving Quick-Start requests includes the IP-layer processing at the sender. * Clarified in Section 3.3 on "Processing the Quick-Start Request at Routers" that this document standardizes only the semantics of Quick-Start, and not the specific algorithms for processing Quick-Start requests at routers. * Clarified in Section 3.3 on "Processing the Quick-Start Request at Routers" that a router will have to consider the previous Quick-Start requests in approving a new one. * In Section 9.3 on "Quick-Start with QoS-enabled Traffic", which says that routers are free to take into account the diff-serv codepoint in considering QS requests, clarified that routers are also free to take into account their own understanding of priorities. * Added the Temporary bit to Appendix on "Possible Additional Uses for the Quick-Start Option". Clarified that the Quick-Start mechanism is not designed to help routers achieve full link utilization. * Editing from feedback from Gorry Fairhurst. Changes from draft-ietf-tsvwg-quickstart-01: * Added a citation to SPAND: Speeding Up Short Data Transfers. * Added a sentence in Section 8.1 on "Implementation Issues for Processing Quick-Start Requests" about multi-access links. * Mentioned the IP Router Alert option, RFC 2113, in Appendix. * Added a discussion of lower-than-best-effort service. * Added a few sentences about the requirements for randomness in the nonce. * Changed the name of the option from the Quick-Start Request Option to the Quick-Start Option. * Changed the semantics of the Reserved field to the Function field, adding that a Quick-Start option is only interpreted as a request if this field is zero. * Changed the "Reporting Approved Rate" option from a "Possible Use" in Appendix to a required use in Section 3.1, to allow routers and receivers some protection against misbehaving senders. * Changes from feedback from Bob Briscoe: - Added Appendix about Sections 1-3 of Bob Briscoe's document. - Added a clarification that the approval of a Quick-Start request at a router does not affect the treatment of the subsequent arriving Quick-Start data packets. - Added the one-way hash function as an alternate implementation for the QS Nonce. - Clarified the phrase "incrementally deployable", adding the following: "We note that while Quick-Start is incrementally deployable in this sense, a Quick-Start requestcan notcannot be approved for a particular connection unless both end-nodes and all of the routers along the path have been configured to support Quick-Start." - Clarified semantics about additional rate. - Said that when denying a rate request, the router may in the future use the QS Nonce field to report an error code. - Add Bob's suggestion from Section 4.4 as an alternate possible rate encoding. - Made changes suggested in Section 5.1.3 of Bob's paper, including saying that the router should decrement the QS TTL by the same amount that it decrements the IP TTL (on the off chance that it decrements the IP TTL by more than one). - Fixed nits. Changes from draft-ietf-tsvwg-quickstart-00: * Added a 30-bit QS Nonce. Based on feedback from Guohan Lu and Gorry Fairhurst (and deleted the text about a possible four-bit QS nonce). * Added a new section "Quick-Start and IPsec AH", based on feedback from Joe Touch and David Black. * Revised "Quick-Start in IP Tunnels" Section, based on feedback from Joe Touch and David Black. * Added a section about "Possible Uses for the Reserved Fields". * Changes from feedback from Gorry Fairhurst: - Section 4.4, revised the explanation for reducing the congestion window when the first ACK for a Quick-Start packet is received. - Section 6.4, deleted the last sentence. - Minor editing changes. - Revised Section 4.6.2 to say that sender SHOULD send one packet with an initial RTO of three seconds. - Revised Section 4.6.3 to say that the TCP sender SHOULD use an initial RTO setting of three seconds. - Added text to Section 6.2 on Multiple Paths, discussingmulti-pathmultipath routing. - Clarified about GPRS round-trip times. - Clarified about PMTUD and the first window of data. - A small reorganization, rearranging sections. * Changes from feedback from Martin Duke: - Revised text about the size of QS requests. - Added some text to Section 4.1, about when to send QS requests. Changes from draft-amit-quick-start-04.txt: * A significant amount of general editing. * Because the Rate Request field only uses four bits, specified that the other four bits are reserved, and talked about a possible use for them. This is discussed in a new section on "A Rate-Reduced Nonce?" * Specified that a Quick-Start-capable router denying a request SHOULD delete the Quick-Start option, and if this is not possible, SHOULD zero the QS TTL and the Rate Request fields. * Made the following change: If the Quick-Start Response is lost in the network, it is not retransmitted. * For PMTUD, in Section 4.6, added a suggestion to send one large packet in the initial window for PMTUD, and to send the other packets at 576 bytes. * Added a paragraph to Section 4.6.3 on retransmitted SYN packets, saying they should use an RTO of three seconds and a new ISN on the retransmitted SYN packet. * Added that "TCP SHOULD NOT use Quick-Start" after an application-limited period at this time, in Section 4.1, in addition to the old sentence that this "requires further thought and investigation". * Added an appendix on "Possible Router Algorithm". * Moved the section on "Quick-Start with DCCP" to the appendix. * Name changed from draft-amit-quick-start-04.txt to draft-tsvwg-quickstart-00.txt. Changes from draft-amit-quick-start-03.txt: * Added a citation to the paper on "Evaluating Quick-Start for TCP", and added pointers to the work in that paper. This work includes: - Discussions of router algorithms. - Discussions of sizing Quick-Start requests. * Added sections on "Misbehaving Middleboxes", and on "Attacks on Quick-Start". Changes from draft-amit-quick-start-02.txt: * Added a discussion on Using Quick-Start in the Middle of a Connection. The request would be on the total rate, not on the additional rate. * Changed name "Initial Rate" to "Rate Request", and changed the units from packets per second to bytes per second. * The following sections are new: - The Quick-Start Request Option for IPv6 - Quick-Start in IP Tunnels - When to Use Quick-Start - TCP: Responding to a Loss of a Quick-Start Packet - TCP: A Quick-Start Request for a Larger Initial Window - TCP: A Quick-Start Request after an Idle Period - The Quick-Start Mechanisms in DCCP and other Transport Protocols - Quick-Start with DCCP - Implementation and Deployment Issues - Design Decisions * Added a discussion of Kunniyur's Anti-ECN proposal. * Added a section on simulations, with a brief discussion of the simulations by Srikanth Sundarrajan. Changes from draft-amit-quick-start-01.txt: * Added a discussion in the related work section about the possibility of optimistically sending a large initial window, without explicit permission of routers. * Added a discussion in the related work section about the tradeoffs of XCP vs. Quick-Start. * Added a section on "The Quick-Start Request: Packets or Bytes?" Changes from draft-amit-quick-start-00.txt: * The addition of a citation to [KHR02]. * The addition of a Related Work section. * Deleted the QS Nonce, in favor of a random initial value for the QS TTL. Table of Contents 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . .1112 1.1. Conventions and Terminology. . . . . . . . . . . . . . .1214 2. Assumptions and General Principles. . . . . . . . . . . . . .1214 2.1. Overview of Quick-Start. . . . . . . . . . . . . . . . .1315 3. The Quick-Start Option in IP. . . . . . . . . . . . . . . . .1617 3.1. The Quick-Start Option for IPv4. . . . . . . . . . . . .1617 3.2. The Quick-Start Option for IPv6. . . . . . . . . . . . .2021 3.3. Processing the Quick-Start Request at Routers . . . . . . . . . . . . . . . . . . . . . . . . . . .2122 3.3.1. Processing the Report of Approved Rate . . . . . . . . . . . . . . . . . . . . . . . . . . .2223 3.4. The QS Nonce . . . . . . . . . . . . . . . . . . . . . .2324 4. The Quick-Start Mechanisms in TCP . . . . . . . . . . . . . .2526 4.1. Sending the Quick-Start Request. . . . . . . . . . . . .2627 4.2. The Quick-Start Response Option in the TCP header. . . . . . . . . . . . . . . . . . . . . . . . . . . .2829 4.3. TCP: Sending the Quick-Start Response. . . . . . . . . .2930 4.4. TCP: Receiving and Using the Quick-Start Response Packet . . . . . . . . . . . . . . . . . . . . . . .2930 4.5. TCP: Controlling Acknowledgement Traffic on the Reverse Path . . . . . . . . . . . . . . . . . . . . . . 33 4.6. TCP: Responding to a Loss of a Quick-Start Packet. . . . . . . . . . . . . . . . . . . . . . . . . . . .32 4.6.34 4.7. TCP: A Quick-Start Request for a Larger Ini- tial Window . . . . . . . . . . . . . . . . . . . . . . . . .32 4.6.1.35 4.7.1. Interactions with Path MTU Discovery. . . . . . . .33 4.6.2.35 4.7.2. Quick-Start Request Packets that are Discarded by Routers or Middleboxes. . . . . . . . . . . .33 4.7.36 4.8. TCP: A Quick-Start Request in the Middle of a Connection. . . . . . . . . . . . . . . . . . . . . . . . .34 4.8.37 4.9. An Example Quick-Start Scenario with TCP . . . . . . . .3538 5. Quick-Start and IPsec AH. . . . . . . . . . . . . . . . . . .3639 6. Quick-Start in IP Tunnels and MPLS. . . . . . . . . . . . . .3739 6.1. Simple Tunnels That Are Compatible with Quick-Start . . . . . . . . . . . . . . . . . . . . . . . . .3941 6.1.1. Simple Tunnels that are Aware of Quick- Start. . . . . . . . . . . . . . . . . . . . . . . . . . .3942 6.2. Simple Tunnels That Are Not Compatible with Quick-Start . . . . . . . . . . . . . . . . . . . . . . . . .4042 6.3. Tunnels That Support Quick-Start . . . . . . . . . . . .4143 6.4. Quick-Start and MPLS . . . . . . . . . . . . . . . . . .4244 7. The Quick-Start Mechanism in other Transport Pro- tocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4245 8. Using Quick-Start . . . . . . . . . . . . . . . . . . . . . .4346 8.1. Determining the Rate to Request. . . . . . . . . . . . .4346 8.2. Deciding the Permitted Rate Request at a Router. . . . . . . . . . . . . . . . . . . . . . . . . . . .4446 9. Evaluation of Quick-Start . . . . . . . . . . . . . . . . . .4547 9.1. Benefits of Quick-Start. . . . . . . . . . . . . . . . .4547 9.2. Costs of Quick-Start . . . . . . . . . . . . . . . . . .4548 9.3. Quick-Start with QoS-enabled Traffic . . . . . . . . . .4749 9.4. Protection against Misbehaving Nodes . . . . . . . . . .4750 9.4.1. Misbehaving Senders . . . . . . . . . . . . . . . .4750 9.4.2. Receivers Lying about Whether the Request was Approved . . . . . . . . . . . . . . . . . . .4951 9.4.3. Receivers Lying about the Approved Rate . . . . . . . . . . . . . . . . . . . . . . . . . . .5052 9.4.4. Collusion between Misbehaving Routers . . . . . . .5153 9.5. Misbehaving Middleboxes and the IP TTL . . . . . . . . .5254 9.6. Attacks on Quick-Start . . . . . . . . . . . . . . . . .5255 9.7. Simulations with Quick-Start . . . . . . . . . . . . . .5355 10. Implementation and Deployment Issues . . . . . . . . . . . .5356 10.1. Implementation Issues for Sending Quick- Start Requests. . . . . . . . . . . . . . . . . . . . . . . .5456 10.2. Implementation Issues for Processing Quick- Start Requests. . . . . . . . . . . . . . . . . . . . . . . .5457 10.3. Possible Deployment Scenarios . . . . . . . . . . . . .5557 10.4. A Comparison with the Deployment Problems of ECN. . . . . . . . . . . . . . . . . . . . . . . . . . . .5659 11. Security Considerations. . . . . . . . . . . . . . . . . . .5759 12. IANA Considerations. . . . . . . . . . . . . . . . . . . . .5860 12.1. IP Option . . . . . . . . . . . . . . . . . . . . . . .5860 12.2. TCP Option. . . . . . . . . . . . . . . . . . . . . . .5861 13. Conclusions. . . . . . . . . . . . . . . . . . . . . . . . .5861 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . .5961 A. Related Work. . . . . . . . . . . . . . . . . . . . . . . . .5962 A.1. Fast Start-ups without Explicit Information from Routers. . . . . . . . . . . . . . . . . . . . . . . . .5963 A.2. Optimistic Sending without Explicit Informa- tion from Routers . . . . . . . . . . . . . . . . . . . . . .6164 A.3. Fast Start-ups with other Information from Routers . . . . . . . . . . . . . . . . . . . . . . . . . . .6265 A.4. Fast Start-ups with more Fine-Grained Feed- back from Routers . . . . . . . . . . . . . . . . . . . . . .6366 A.5. Fast Start-ups with Lower-Than-Best-Effort Service . . . . . . . . . . . . . . . . . . . . . . . . . . .6366 B. Design Decisions. . . . . . . . . . . . . . . . . . . . . . .6467 B.1. Alternate Mechanisms for the Quick-Start Request: ICMP and RSVP. . . . . . . . . . . . . . . . . . . .6467 B.1.1. ICMP. . . . . . . . . . . . . . . . . . . . . . . .6467 B.1.2. RSVP. . . . . . . . . . . . . . . . . . . . . . . .6569 B.2. Alternate Encoding Functions . . . . . . . . . . . . . .6670 B.3. The Quick-Start Request: Packets or Bytes? . . . . . . .6871 B.4. Quick-Start Semantics: Total Rate or Addi- tional Rate?. . . . . . . . . . . . . . . . . . . . . . . . .6973 B.5. Alternate Responses to the Loss of a Quick- Start Packet. . . . . . . . . . . . . . . . . . . . . . . . .7174 B.6. Why Not Include More Functionality?. . . . . . . . . . .7174 B.7. Alternate Implementations for aQuickStartQuick-Start Nonce . . . . . . . . . . . . . . . . . . . . . . . . . . . .7477 B.7.1. An Alternate Proposal for the Quick- Start Nonce. . . . . . . . . . . . . . . . . . . . . . . .7578 B.7.2. The Earlier Request-ApprovedQuickStartQuick- Start Nonce. . . . . . . . . . . . . . . . . . . . . . . .. . . 7578 C. Quick-Start with DCCP . . . . . . . . . . . . . . . . . . . .7679 D. Possible Router Algorithm . . . . . . . . . . . . . . . . . .7881 E. Possible Additional Uses for the Quick-Start Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 F. Feedback from Bob Briscoe . . . . . . . . . . . . . . . . . . 81 F.1. Potential Deployment Scenarios . . . . . . . . . . . . . 81 F.2. Misbehaving Senders and Receivers. . . . . . . . . . . . 81 F.3. Fairness . . . . . . . . . . . . . . . . . . . . . . . . 83 F.4. Models of Under-Utilization. . . . . . . . . . . . . . . 83 F.5. Router Algorithms as Local Policy. . . . . . . . . . . . 84 F.6. An Alternate Proposal. . . . . . . . . . . . . . . . . . 8482 Normative References . . . . . . . . . . . . . . . . . . . . . .8584 Informative References . . . . . . . . . . . . . . . . . . . . .8584 AUTHORS' ADDRESSES . . . . . . . . . . . . . . . . . . . . . . .9089 Full Copyright Statement . . . . . . . . . . . . . . . . . . . .9291 Intellectual Property. . . . . . . . . . . . . . . . . . . . . .9291 1. Introduction Each connection begins with a question: "What is the appropriate sending rate for the current network path?" The question is not answered explicitly, but each TCP connection determines the sending rate by probing the network path and altering the congestion window (cwnd) based on perceived congestion. Each TCP connection starts with a pre-configured initial congestion window (ICW). Currently, TCP allows an initial window of between one and four MSS-sized segments ([RFC2581], [RFC3390]). The TCP connection then probes the network for available bandwidth using the slow-start procedure ([Jac88], [RFC2581]), doubling cwnd during each congestion-free round-trip time (RTT). The slow-start algorithm can be time-consuming --- especially over networks with large bandwidth or long delays. It may take a number of RTTs in slow-start before the TCP connection begins to fully use the available bandwidth of the network. For instance, it takes log_2(N) - 2 round-trip times to build cwnd up to N segments, assuming an initial congestion window of 4 segments. This time in slow-start is not a problem for large file transfers, where the slow-start stage is only a fraction of the total transfer time. However, in the case of moderate-sized transfers the connection might carry out its entire transfer in the slow-start phase, taking many round-trip times, where one or two RTTs might have beenappropriate insufficient when using thecurrent network conditions.currently available bandwidth along the path. A fair amount of work has already been done to address the issue of choosing the initial congestion window for TCP, with RFC 3390 allowing an initial window of up to four segments based on the MSS used by the connection [RFC3390]. Our underlying premise is that explicit feedback from all of the routers along the path would be required, in the current architecture, for best-effort connections to use initial windows significantly larger than those allowed by [RFC3390], in the absence of other information about the path. In using Quick-Start, a TCP host, say, host A, would indicate its desired sending rate in bytes per second, using aQuick StartQuick-Start option in the IP header of a TCP 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. (We note that the `routers' referred to in this document also include the IP-layer processing of the Quick-Start request at the sender.)If theIn approving a Quick-Startrequest isrequest, a router does notapproved, thengive preferential treatment to subsequent packets from that connection; thesender would userouter is only asserting that it is currently underutilized and believes there is sufficient available bandwidth to accommodate thedefault congestion control mechanisms.sender's requested rate. The Quick-Start mechanism can determine if there are routers along the path that do not understand theQuick-StartQuick- Start option, or have not agreed to the Quick-Start rate request. TCP host B communicates the final rate request to TCP host A in a transport-level Quick-Start Response in an answering TCP packet.Quick-Start would not beIf thefirst mechanism for explicit communication from routers to transport protocols about sending rates. Explicit Congestion Notification (ECN) gives explicit congestion control feedback fromQuick-Start request is approved by all routersto transport protocols, based onalong therouter detecting congestion before buffer overflowpath, then the TCP host can send at up to the approved rate for a window of data. Subsequent transmissions will be governed by the default TCP congestion control mechanisms of that connection. If the Quick-Start request is not approved, then the sender would use the default congestion control mechanisms. Quick-Start would not be the first mechanism for explicit communication from routers to transport protocols about sending rates. Explicit Congestion Notification (ECN) gives explicit congestion control feedback from routers to transport protocols, based on the router detecting congestion before buffer overflow [RFC3168]. In contrast, routers would not use Quick-Start to give congestion information, but instead would use Quick-Start as an optional mechanism to give permission to transport protocols to use higher sending rates, based on the ability of all the routers along the path to determine if their respective output links are significantly underutilized. Section 2 gives an overview of Quick-Start. The formal specifications for Quick-Start are contained in Sections 3, 4, 6.1.1, and 6.3. In particular, Quick-Start is specified for IPv4 and for IPv6 in Section 3, and is specified for TCP in Section 4. Section 6 consists mostly of a non-normative discussion of interactions of Quick-Start with IP tunnels and MPLS; however, Section 6.1.1 and 6.3 specify behavior for IP tunnels that are aware of Quick-Start. The rest of the document is non-normative, as follows. Section 5 shows that Quick-Start is compatible with IPsec AH (Authentication Header). Section 7 gives a non-normative set of guidelines for specifying Quick-Start in other transport protocols, and Section 8 discusses using Quick-Start in transport end-nodes and in routers. Section 9 gives an evaluation of the costs and benefits of Quick- Start, and Section 10 discusses implementation and deployment issues. The appendices discuss related work, Quick-Start design decisions, and possible router algorithms. 1.1. Conventions and Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 2. Assumptions and General Principles This section describes the assumptions and general principles behind the design of the Quick-Start mechanism. Assumptions: * The data transfer in the two directions of a connection traverses different queues, and possibly even different routers. Thus, any mechanism for determining the allowed sending rate would have to be used independently for each direction. * The path between the two endpoints is relatively stable, such that the path used by the Quick-Start request is generally the same path used by the Quick-Start packets one round-trip time later. [ZDPS01] shows this assumption should be generally valid. However, [RFC3819] discusses a range of Bandwidth on Demand subnets that could cause the characteristics of the path to change over time. * Any new mechanism must be incrementally deployable, and might not be supported by all of the routers and/or end-hosts. Thus, any new mechanism must be able to accommodate non-supporting routers or end- hosts without disturbing the current Internet semantics. We note that while Quick-Start is incrementally deployable in this sense, a Quick-Start requestcan notcannot be approved for a particular connection unless both end-nodes and all of the routers along the path have been configured to support Quick-Start. General Principles: * Our underlying premise is that explicit feedback from all of the routers along the path would be required, in the current architecture, for best-effort connections to use initial windows significantly larger than those allowed by [RFC3390], in the absence of other information about the path. * A router should only approve a Quick-Start request if the output link is underutilized. Any other approach will result in either per-flow state at the router, or the possibility of a (possibly transient) queue at the router. * No per-flow state should be required at the router. Note that while per-flow state is not required, we also do not preclude a router from storing per-flow state for making Quick-Start decisions or for checking for misbehaving nodes. 2.1. Overview of Quick-Start In this section we give an overview of the use of Quick-Start with TCP to request a higher congestion window. The description in this section is non-normative; the normative description of Quick-Start with IP and TCP follows in Sections 3 and 4. Quick-Start could be used in the middle of a connection, e.g., after an idle or underutilized period, as well as for the initial sending rate; these uses of Quick-Start are discussed later in the document. Quick-Start requires end-points and routers to work together, with end-points requesting a higher sending rate in the Quick-Start (QS) option in IP, and routers along the path approving, modifying, discarding or ignoring (and therefore disallowing) the Quick-Start Request. The receiver uses reliable, transport-level mechanisms to inform the sender of the status of the Quick-Start Request. In addition, Quick-Start assumes a unicast, congestion-controlled transport protocol; we do not consider the use of Quick-Start for multicast traffic. When sent as a request, the Quick-Start Option includes a request for a sending rate in bits per second, and a Quick-Start TTL (QS TTL) to be decremented by every router along the path that understands the option and approves the request. The Quick-Start TTL is initialized by the sender to a random value. The transport receiver returns the rate, information about the TTL and the Quick- Start Nonce to the sender using transport-level mechanisms. In particular, the receiver computes the difference between the Quick- Start TTL and the IP TTL (the TTL in the IP header) of the Quick- Start request packet, and returns this in the Quick-Start response. The sender uses this information to determine if all of the routers along the path decremented the Quick-Start TTL, approving the Quick- Start Request. If the request is approved by all of the routers along the path, then the TCP sender combines this allowed rate with the measurement of the round-trip time, and ends up with an allowed TCP congestion window. This window is sent rate-paced over the next round-trip time, or until an ACK packet is received. Figure 1 shows a successful use of Quick-Start, with the sender's IP layer and both routers along the path approving the Quick-Start Request. In this example, Quick-Start is used by TCP to establish the initial congestion window. Sender Router 1 Router 2 Receiver ------ -------- -------- -------- | <IP TTL: 63> | <QS TTL: 91> | <TTL Diff: 28> | Quick-Start Request | in SYN or SYN/ACK. | IP: Decrement QS TTL | to approve request --> | | Decrement | QS TTL | to approve | request --> | | Decrement | QS TTL | to approve | request --> | | <IP TTL: 60> | <QS TTL: 88> | <TTL Diff: 28> | Return Quick-Start | info to sender in | <-- TCP ACK packet. | | <TTL Diff: 28> | Quick-Start approved, | translate to cwnd. | Report Approved Rate. V Send cwnd paced over one RTT. --> Figure 1: A successful Quick-Start Request. Figure 2 shows an unsuccessful use of Quick-Start, with one of the routers along the path not approving the Quick-Start Request. If the Quick-Start Request is not approved, then the sender uses the default congestion control mechanisms for that transport protocol, including the default initial congestion window, response to idle periods, etc. Sender Router 1 Router 2 Receiver ------ -------- -------- -------- | <IP TTL: 63> | <QS TTL: 91> | <TTL Diff: 28> | Quick-Start Request | in SYN or SYN/ACK. | IP: Decrement QS TTL | to approve request --> | | Decrement | QS TTL | to approve | request --> | | Forward packet | without modifying | Quick-Start Option. --> | | <IP TTL: 60> | <QS TTL: 89> | <TTL Diff: 29> | Return Quick-Start | info to sender in | <-- TCP ACK packet. | | <TTL Diff: 29> | Quick-Start not approved. | Report Approved Rate. V Use default initial cwnd. --> Figure 2: An unsuccessful Quick-Start Request. 3. The Quick-Start Option in IP 3.1. The Quick-Start Option for IPv4 The Quick-Start Request for IPv4 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option | Length=8 | Func. | Rate | QS TTL | | | | 0000 |Request| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | R | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3. The Quick-Start Option for IPv4. A Quick-Start Request. The first byte contains the option field, which includes the one-bit copy flag, the 2-bit class field, and the 5-bit option number (to be assigned by IANA). The second byte contains the length field, indicating an option length of eight bytes. The third byte includes a four-bit Function field. If the Function field is set to "0000", then the Quick-Start Option is a Rate Request. In this case, the second half of the third byte is a four- bit Rate Request field. For a Rate Request, the fourth byte contains the Quick-Start TTL (QS TTL) field. The sender MUST set the QS TTL field to a random value. Routers that approve the Quick-Start Request decrement the QS TTL (mod 256) by the same amount that they decrement the IP TTL. (As elsewhere in this document, we use the term `router' imprecisely to also include the Quick-Start functionality at the IP layer at the sender.) The QS TTL is used by the sender to detect if all of the routers along the path understood and approved the Quick-Start option. For a Rate Request, the transport sender MUST calculate and store the TTL Diff, the difference between the IP TTL value and the QS TTL value in the Quick-Start request packet, as follows: TTL Diff = ( IP TTL - QS TTL ) mod 256 (1) For a Rate Request, bytes 5-8 contain a 30-bit QS Nonce, discussed in Section 3.4, and a two-bit Reserved field. The sender SHOULD set the reserved field to zero, and routers and receivers SHOULD ignore the reserved field. The sender SHOULD set the 30-bit QS Nonce to a random value. The sender initializes the Rate Request to the desired sending rate, including an estimate of the transport and IP header overhead. The encoding function for the Rate Request sets the request rate to K*2^N bps (bits per second), for N the value in the Rate Request field, and for K set to 40,000. For N=0, the rate request would be set to zero, regardless of the encoding function. This is illustrated in Table 1 below. For the four-bit Rate Request field, the request range is from 80 Kbps to 1.3 Gbps. Alternate encodings that were considered for the Rate Request are given in Appendix B.2. N Rate Request (in Kbps) --- ------------------- 0 0 1 80 2 160 3 320 4 640 5 1,280 6 2,560 7 5,120 8 10,240 9 20,480 10 40,960 11 81,920 12 163,840 13 327,680 14 655,360 15 1,310,720 Table 1: Mapping from Rate Request field to rate request in Kbps. Routers can approve the Quick-Start Request for a lower rate by decreasing the Rate Request in the Quick-Start Request. Section 4.2 discusses the Quick-Start Response from the TCP receiver to the TCP sender, and Section 4.4 discusses the TCP sender's mechanism for determining if a Quick-Start Request has been approved. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option | Length=8 | Func. | Rate | Not Used | | | | 1000 | Report| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | R | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4. The Quick-Start Option for IPv4. Report of Approved Rate. If the Function field in the third byte of the Quick-Start Option is set to "1000", then the Quick-Start Option is a Report of Approved Rate. In this case the second four bits in the third byte are the Rate Report field, formatted exactly as in the Rate Request field in a Rate Request. For a Report of Approved Rate, the fourth byte of the Quick-Start Option are not used. Bytes 5-8 contain a 30-bit QS Nonce and a two- bit Reserved field. After an approved Rate Request, the sender MUST report the Approved Rate, using a Quick-Start Option configured as a Report of Approved Rate with the Rate Report field set to the approved rate, and the QS Nonce set to the QS Nonce sent in the Quick-Start Request. The packet containing the Report of Approved Rate MUST be either a control packet sent before the first Quick-Start data packet, or a Quick-Start Option in the first data packet itself. The Report of Approved Rate does not have to be sent reliably; for example, if the approved rate is reported in a separate control packet, the sender does not necessarily know if the control packet has been dropped in the network. If the packet contained the Quick-Start Request is acknowledged, but the acknowledgement packet does not contain a Quick-Start Response, then the sender MUST assume that the Quick- Start Request was denied, and set a Report of Approved Rate with a rate of zero. Routers may choose to ignore the Report of Approved Rate, or to use the Report of Approved Rate but ignore the QS Nonce. Alternately, some routers that use the Report of Approved Rate may choose to match the QS Nonce, masked by the approved rate, with the QS Nonce seen in the original request. If the Rate Request is denied, the sender MUST sent a Report of Approved Rate with the Rate Report field set to zero. We note that unlike a Quick-Start Request sent at the beginning of a connection, when a Quick-Start Request is sent in the middle of a connection, the connection could already have an established congestion window or sending rate. The Rate Request is the requested total rate for the connection, including the current rate of the connection; the Rate Request is *not* a request for an additional sending rate over and above the current sending rate. If the Rate Request is denied, or lowered to a value below the connection's current sending rate, then the sender ignores the request, and reverts to the default congestion control mechanisms of the transport protocol. The use of the Quick-Start Option does not require the additional use of the Router Alert Option [RFC2113]. We note that in IPv4, a change in IP options at routers requires recalculating the IP header checksum. 3.2. The Quick-Start Option for IPv6 The Quick-Start Option for IPv6 is placed in the Hop-by-Hop Options extension header that is processed at every network node along the communication path [RFC2460]. The option format following the generic Hop-by-Hop Options header is identical to the IPv4 format, with the exception that the Length field should exclude the common type and length fields in the option format and be set to 6 bytes instead of 8 bytes. For a Quick-Start Request, the transport receiver compares the Quick-Start TTL with the IPv6 Hop Limit field to calculate the TTL Diff. (The Hop Limit in IPv6 is the equivalent of the TTL in IPv4.) That is, TTL Diff MUST be calculated and stored as follows: TTL Diff = ( IPv6 Hop Limit - QS TTL ) mod 256 (2) Unlike IPv4, modifying or deleting the Quick-Start IPv6 Option does not require checksum re-calculation, because the IPv6 header does not have a checksum field, and modifying the Quick-Start Request in the IPv6 Hop-by-Hop options header does not affect the IPv6 pseudo- header checksum used in upper-layer checksum calculations. Note that [RFC2460] specifies that when a specific flow label has been assigned to packets, the contents of the Hop-by-Hop options, excluding the next header field, must originate with the same contents throughout the IP flow lifetime. However, the Quick-Start option would be included in only a small fraction of the packets during a flow lifetime. Thus, Quick-Start SHOULD NOT be used in an IPv6 connection that uses flow labels unless the experimental specification of flow labels in Appendix A of RFC 2460 is changed. We note that RFC 2460 states that the use of the flow label field in IPv6 "is, at the time of writing, still experimental and subject to change as the requirements for flow support in the Internet become clearer" [RFC2460]. 3.3. Processing the Quick-Start Request at Routers The Quick-Start Request does not report the current sending rate of the connection sending the request; in the default case of a router (or IP layer implementation at an end-node) that does not maintain per-flow state, a router makes the conservative assumption that the flow's current sending rate is zero. Each participating router can either terminate or approve the Quick-Start Request. A router MUST only approve a Quick-Start request if the output link is underutilized, and if the router judges that the output link will continue to be underutilized if this and earlier approved requests are used by the senders. Otherwise, the router reduces or terminates the Quick-Start Request. While the paragraph above defines the *semantics* of approving a Quick-Start request, this document does not specify the specific algorithms to be used by routers in processing Quick-Start Requests or Reports. This is similar to RFC 3168, which specifics the semantics of the ECN codepoints in the IP header, but does not specify specific algorithms for routers to use in deciding when to drop or mark packets before buffer overflow. A router that wishes to terminate the Quick-Start Request SHOULD delete the Quick-Start Request from the IP header. This saves resources because downstream routers will have no option to process. If a Quick-Start-capable router wishes to deny the request but doesn't delete the Quick-Start Request from the IP header, then the router SHOULD zero the QS TTL, QS Nonce, and Rate Request fields. Zeroing the Rate Request field may be more efficient for routers to implement than deleting the Quick-Start option. As suggested in [B05], future additions to Quick-Start could define error codes for routers to insert into the QS Nonce field to report back to the sender the reason that the Quick-Start request was denied, e.g., that the router is denying all Quick-Start requests at this time, or that this router as a matter of policy does not grant Quick-Start requests. A router that doesn't understand the Quick-Start option will simply forward the packet with the Quick-Start Request unchanged (ensuring that the TTL Diff will not match and Quick-Start will not be used). If the participating router has decided to approve the Quick-Start Request, it does the following: * The router MUST decrement the QS TTL by the amount the IP TTL is decremented (usually one). * If the router is only willing to approve a Rate Request less than that in the Quick-Start Request, then the router replaces the Rate Request with a smaller value. The router MUST NOT increase the Rate Request in the Quick-Start Request. If the router decreases the Rate Request, the router MUST also modify the QS Nonce, as described in Section 3.4. * In IPv4, the router MUST update the IP header checksum. If the router approves the Quick-Start request, this approval SHOULD be taken into account in the router's decision to accept or reject subsequent Quick-Start requests (e.g., using a variable that tracks the recent aggregate of accepted Quick-Start requests). This consideration of earlier approved Quick-Start request is necessary to ensure that the router only approves a Quick-Start request when the router judges that the output link will remain underutilized if this and earlier Quick-Start requests are used by the senders. In addition, the approval of a Quick-Start request SHOULD NOT be used by the router to affect the treatment of the data packets that arrive from this connection in the next few round-trip times. That is, the approval by the router of a Quick-Start request does not give differential treatment for Quick-Start data packets at that router; it is only a statement from the router that the router believes that the subsequent Quick-Start data packets from this connection will not change the current under-utilized state of the router. A non-participating router forwards the Quick-Start Request unchanged, without decrementing the QS TTL. The non-participating router still decrements the TTL field in the IP header, as is required for all routers [RFC1812]. As a result, the sender will be able to detect that the Quick-Start Request had not been understood or approved by all of the routers along the path. A router that uses multipath routing for packets within a single connection MUST NOT approve a Quick-Start request. This is discussed in more detail in Section 9.2. 3.3.1. Processing the Report of Approved Rate If the Quick-Start Option has the Function field set to "1000", then this is a Report of Approved Rate, rather than a Rate Request. The router MAY ignore such an option, and in any case it MUST NOT modify the contents of the option for a Report of Approved Rate. However, the router MAY use the Approved Rate report to check that the sender is not lying about the approved rate. If the reported Approved Rate is higher than the rate that the router actually approved for this connection in the previous round-trip time, then the router may implement some policy for cheaters. For instance, the router MAY decide to deny future Quick-Start requests from this sender, including, if desired, deleting Quick-Start requests from future packets from this sender. Section 9.4.1 discusses misbehaving senders in more detail. From the Report of Approved Rate, the router can also learn if some of the downstream routers have approved the Quick-Start request for a smaller rate or denied the use of Quick-Start, and adjust its bandwidth allocations accordingly. 3.4. The QS Nonce The QS Nonce gives the Quick-Start sender some protection against receivers lying about the value of the received Rate Request. This is particularly important if the receiver knows the original value of the Rate Request (e.g., when the sender always requests the same value, and the receiver has a long history of communication with that sender). Without the QS Nonce, there is nothing to prevent the receiver from reporting back to the sender a Rate Request of K, when the received Rate Request was in fact less than K.This version of the nonce is based on a proposal from Guohan Lu [L05]. Initial versions of this document contained an eight-bit QS Nonce, and subsequent versions discussed the possibility of a four-bit QS Nonce.Table 2 gives the format for the 30-bit QS Nonce. Bits Purpose --------- ------------------ Bits 0-1: Rate 15 -> Rate 14 Bits 2-3: Rate 14 -> Rate 13 Bits 4-5: Rate 13 -> Rate 12 Bits 6-7: Rate 12 -> Rate 11 Bits 8-9: Rate 11 -> Rate 10 Bits 10-11: Rate 10 -> Rate 9 Bits 12-13: Rate 9 -> Rate 8 Bits 14-15: Rate 8 -> Rate 7 Bits 16-17: Rate 7 -> Rate 6 Bits 18-19: Rate 6 -> Rate 5 Bits 20-21: Rate 5 -> Rate 4 Bits 22-23: Rate 4 -> Rate 3 Bits 24-25: Rate 3 -> Rate 2 Bits 26-27: Rate 2 -> Rate 1 Bits 28-29: Rate 1 -> Rate 0 Table 2: The QS Nonce. The transport sender MUST initialize the QS Nonce to a random value. If the router reduces the Rate Request from rate K to rate K-1, then the router MUST set the field in the QS Nonce for "Rate K -> Rate K-1" to a new random value. Similarly, if the router reduces the Rate Request by N steps, the router MUST set the 2N bits in the relevant fields in the QS Nonce to a new random value. The receiver MUST report the QS Nonce back to the sender. If the Rate Request was not decremented in the network, then the QS Nonce should have its original value. Similarly, if the Rate Request was decremented by N steps in the network, and the receiver reports back a Rate Request of K, then the last 2K bits of the QS Nonce should have their original value. With the QS Nonce, the receiver has a 1/4 chance of cheating about each step change in the rate request. Thus, if the rate request was reduced by two steps in the network, the receiver has a 1/16 chance of successfully reporting that the original request was approved, as this requires reporting the original value for the QS nonce. Similarly, if the rate request is reduced many steps in the network, and the receiver receives a QS Option with a rate request of K, the receiver has a 1/16 chance of guessing the original values for the fields in the QS nonce for "Rate K+2 -> Rate K+1" and "Rate K+1 -> Rate K". Thus, the receiver has a 1/16 chance in successfully lying and saying that the received rate request was K+2 instead of K. We note that the protection offered by the QS Nonce is the same whether one router makes all of the decrements in the rate request, or whether they are made at different routers along the path. The requirements for randomization for the sender and routers in setting `random' values in the QS Nonce are not stringent - almost any form of pseudo-random numbers would do. The requirement is that the original value for the QS Nonce is not easily guessable by the receiver, and in particular, the nonce MUST NOT be easily determined from inspection of the rest of the packet or from previous packets. In particular, the nonce MUST NOT be based only on a combination of specific packet header fields. Thus, if two bits of the QS Nonce are changed by a router along the path, the receiver should not be able to guess those two bits from the other 28 bits in the QS Nonce. An additional requirement is that the receivercan notcannot be able to tell, from the QS Nonce itself, which numbers in the QS Nonce were generated by the sender, and which were generated by routers along the path. This makes it harder for the receiver to infer the value of the original rate request, making it one step harder for the receiver to cheat. Section 9.4 also considers issues of receiver cheating in more detail. 4. The Quick-Start Mechanisms in TCP This section describes how the Quick-Start mechanism would be used in TCP. We first sketch the procedure and then tightly define it in the subsequent subsections. If a TCP sender, say host A, would like to use Quick-Start, the TCP sender puts the requested sending rate in bits per second, appropriately formatted, in the Quick-Start option in the IP header of the TCP packet, called the Quick-Start request packet. (We will be somewhat loose in our use of "packet" vs. "segment" in this section.) When used for initial start-up, the Quick-Start request packet can be either the SYN or SYN/ACK packet, asdescribed above.illustrated in Figure 1. The requested rate includes an estimate for the transport and IP header overhead. The TCP receiver, say host B, returns theQuick- StartQuick-Start Response option in the TCP header in the responding SYN/ACK packet or ACK packet, called the Quick-Start response packet, informing host A of the results of their request. If the acknowledging packet does not contain a Quick-Start Response, or contains a Quick-Start Response with the wrong value for the TTL Diff or the QS Nonce, then host A MUST assume that its Quick-Start request failed. In this case, host A sends a Report of Approved Rate with a Rate Report of zero, and uses TCP's default congestion control procedure. For initial start-up, host A uses the default initial congestion window[RFC2581].([RFC2581], [RFC3390]). If the returning packet contains a valid Quick-Start Response, then host A uses the information in the response, along with its measurement of the round-trip time, to determine the Quick-Start congestion window (QS-cwnd). Quick-Start data packets are defined as data packets sent as the result of a successful Quick-Start request, up to the time when the first Quick-Start packet is acknowledged. The sender also sends a Report of Approved Rate. In order to use Quick-Start, the TCP host MUST use rate-based pacing [VH97] to transmit Quick-Start packets at the rate indicated in theQuick- StartQuick-Start Response, at the level of granularity possible by the sending host. We note that the limitations of interrupt timing on computers can limit the ability of the TCP host in rate-pacing the outgoing packets. The two TCP end-hosts can independently decide whether to request Quick-Start. For example, host A could sent a Quick-Start Request in the SYN packet, and host B could also send a Quick-Start Request in the SYN/ACK packet. 4.1. Sending the Quick-Start Request When sending a Quick-Start Request, the TCP sender SHOULD send the request on a packet that requires an acknowledgement, such as a SYN, SYN/ACK, or data packet. In this case, if the packet is acknowledged but no Quick-Start Response is included, then the sender knows that the Quick-Start request has been denied, and can send a Report of Approved Rate. In addition to the use of Quick-Start when a connection is established, there are several additional points in a connection when a transport protocol may want to issue a Rate Request. We first re-iterate the notion that Quick-Start is a coarse-grained mechanism. That is, Quick-Start's Rate Requests are not meant to be used for fine-grained control of the transport's sending rate. Rather, the transport MAY issue a Rate Request when no information about the appropriate sending rate is available and the default congestion control mechanisms might be significantly underestimating the appropriate sending rate. The following are potential points where Quick-Start may be useful: (1) At or soon after connection initiation, when the transport has no idea of the capacity of the network path, as discussed above. (A transport that uses TCP Control Block sharing [RFC2140], the Congestion Manager [RFC3124], or other mechanisms for sharing congestion information may not need Quick-Start to determine an appropriate rate.) (2) After an idle period when the transport no longer has a validated estimate of the available bandwidth for this flow. (An example could be a persistent-HTTP connection when a new HTTP request is received after an idle period.) (3) After a host has received explicit indications that one of the endpoints has moved its point of network attachment. This can happen due to some underlying mobility mechanism like Mobile IP ([RFC3344], [RFC3775]). Some transports, such as SCTP [RFC2960], may associate with multiple IP addresses and can switch addresses (and, therefore network paths) in mid- connection. If the transport has concrete knowledge of a changing network path then the current sending rate may not be appropriate and the transport sender may use Quick-Start to probe the network to see if it can send at a higher rate. (Alternatively, traditional slow-start should be used in this case when Quick-Start is not available.) (4) After an application-limited period when the sender has been using only a small amount of its appropriate share of the network capacity, and has no valid estimate for its fair share. In this case, Quick-Start may be an appropriate mechanism to determine if the sender can send at a higher rate. For instance, consider an application that steadily exchanges low- rate control messages and suddenly needs to transmit a large amount of data. Of the above, this document recommends that a TCP sender MAY attempt to use Quick-Start in cases (1) and (2). It is NOT RECOMMENDED that a TCP sender use Quick-Start for case (3) at the current time. Case (3) requires external notifications not presently defined for TCP or other transport protocols. Finally, a TCP SHOULD NOT use Quick- Start for case (4) at the current time. Case (4) requires further thought and investigation with regard to how the transport protocol could determine it was in a situation that would warrant transmitting a Quick-Start Request. As a general guideline, a TCP sender SHOULD NOTsend a Quick-Startrequestuntila sending rate larger than ithas confirmed thatisready to transmit enough dataable to usethe requested rateover the next round-trip time of the connection (or over 100 ms, if the round-trip time is notknown).known), except as required to round up the desired sending rate to the next-highest allowable request. In any circumstances, the sender MUST NOT make a QS request if it has made a QS request within the most recent round-trip time. Section4.64.7 discusses some of the issues of using Quick-Start at connection initiation, and Section4.74.8 discusses issues that arise when Quick-Start is used to request a larger sending rate after an idle period. 4.2. The Quick-Start Response Option in the TCP header In order to approve the use of Quick-Start, the TCP receiver responds to the receipt of a Quick-Start Request with a Quick-Start Response, using the Quick-Start Response Option in the TCP header. TCP'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 TCP header. The first byte of the Quick-Start Response option contains the option kind, identifying the TCP option (to be assigned by IANA). The second byte of the Quick-Start Response option contains the option length in bytes. The length field MUST be set to 8 bytes. The third byte of the Quick-Start Response option contains a four- bit Reserved field, and the four-bit allowed Rate Request, formatted as in the Quick-Start Rate Request option. The fourth byte of the TCP option contains the TTL Diff. The TTL Diff contains the difference between the IP TTL and QS TTL fields in the received Quick-Start request packet, as calculated in equations (1) or (2) (depending on whether IPv4 or IPv6 is used). Bytes 5-8 of the TCP option contain the 30-bit QS Nonce and a two- bit Reserved field. We note that while there are limitations on the potential size of the Quick-Start Response Option, a Quick-Start Response Option of eight bytes should not be a problem. The TCP Options field can contain up to 40 bytes. Other TCP options that might be used in a SYN or SYN/ACK packet include Maximum Segment Size (four bytes), Time Stamp (ten bytes), Window Scale (three bytes), and Selective Acknowledgments Permitted (two bytes). 4.3. TCP: Sending the Quick-Start Response An end host, say host B, that receives an IP packet containing a Quick-Start Request passes the Quick-Start Request, along with the value in the IP TTL field, to the receiving TCP layer. If the TCP host is willing to permit the Quick-Start Request, then a Quick-Start Response option is included in the TCP header of the corresponding acknowledgement packet. The Rate Request in the Quick-Start Response option is set to the received value of the Rate Request in the Quick-Start option, or to a lower value if the TCP receiver is only willing to allow a lower Rate Request. The TTL Diff in the Quick-Start Response is set to the difference between the IP TTL value and the QS TTL value as given in equation (1) or (2) (depending on whether IPv4 or IPv6 is used). The QS Nonce in the Response is set to the received value of the QS Nonce in the Quick-Start option. If an end host receives an IP packet with a Quick-Start Request with a rate request of zero, then that host SHOULD NOT send a Quick-Start Response. The Quick-Start Response MUST NOT be resent if it is lost in the network. Packet loss could be an indication of congestion on the return path, in which case it is better not to approve the Quick- Start Request. 4.4. TCP: Receiving and Using the Quick-Start Response Packet A TCP host, say TCP host A, that sent a Quick-Start Request and receives a Quick-Start Response in an acknowledgement first checks that the Quick-Start Response is valid. The Quick-Start Response is valid if it contains the correct value for the TTL Diff, and an equal or lesser value for the Rate Request than that transmitted in the Quick-Start Request. In addition, if the received Rate Request is K, then thetherightmost 2K bits of the QS Nonce must match those bits in the QS Nonce sent in the Quick-Start Request. If these checks are not successful, then the Quick-Start request failed, and the TCP host MUST use the default TCP congestion window that it would have used without Quick-Start. If the rightmost 2K bits of the QS Nonce do not match those bits in the QS Nonce sent in the Quick-Start Request, for a received Rate Request of K, then the TCP host MUST NOT send additional Quick-Start requests during the life of the connection. Whether the Quick-Start request was successful or not, the host receiving the Quick-Start Response MUST send a Report of Approved Rate. Similarly, if the packet containing the Quick-Start Request is acknowledged, but the acknowledgement does not include a Quick-Start Response, then the sender MUST send a Report of Approved Rate. If the checks of the TTL Diff and the Rate Request are successful, and the TCP host is going to use the Quick-Start Request, it MUST start using it within one round-trip time of receiving the Quick- Start Response, or within three seconds, whichever is smaller. To use the Quick-Start Request, the host sets its Quick-Start congestion window (in terms of MSS-sized segments), QS-cwnd, as follows: QS-cwnd = (R * T) / (MSS + H) (3) where R the Rate Request in bytes per second, T the measured round- trip time in seconds, and H the estimated TCP/IP header size in bytes (e.g., 40 bytes). Derivation: the sender is allowed to transmit at R bytes per second including packet headers, but only R*MSS/(MSS+H) bytes per second, or equivalently R*T*MSS/(MSS+H) bytes per round-trip time, of application data. The TCP host SHOULD set its congestion window cwnd to QS-cwnd only if QS-cwnd is greater than cwnd; otherwise QS-cwnd is ignored. If QS-cwnd is used, the TCP host sets a flag that it is in Quick-Start mode, and while in Quick-Start mode the TCP sender MUST use rate- based pacing to pace out Quick-Start packets at the approved rate. If, during Quick-Start mode, the TCP sender receives ACKs for packets sent before this Quick-Start mode was entered, these ACKs are processed as usual, following the default congestion control mechanisms. Quick-Start mode ends when the TCP host receives an ACK for one of the Quick-Start packets. If the congestion window has not been fully used when the first ack arrives ending the Quick-Start mode, then the congestion window is decreased to the amount that has actually been used so far. This is necessary because when the Quick-Start Response is received, the TCP sender's round-trip-time estimate might be longer than for succeeding round-trip times, e.g., because of delays at routers processing the IP Quick-Start option, or because of delays at the receiver in responding to the Quick-Start Request packet. In this case, an overly-large round-trip-time estimate could have caused the TCP sender to translate the approved Quick-Start sending rate in bytes per second into a congestion window that is larger than needed, with the TCP sender receiving an ACK for the first Quick- Start packet before the entire congestion window has been used. Thus, when the TCP sender receives the first ACK for a Quick-Start packet, the sender MUST reduce the congestion window to the amount that has actually been used. As an example, a TCP sender with an approved Quick-Start request of R KBps, B-byte packets including headers, and an RTT estimate of T seconds, would translate the Rate Request of R KBps to a congestion window of R*T/B packets. The TCP sender would send the Quick-Start packets rate-paced at R KBps. However, if the actual current round- trip time was T/2 seconds instead of T seconds, then the sender would begin to receive acknowledgements for Quick-Start packets after T/2 seconds. Following the paragraph above, the TCP sender would then reduce its congestion window from R*T/B to approximately R*T/(B*2) packets, the actual number of packets that were needed to fill the pipe at a sending rate of R KBps. (Note: this is just an illustration and that the congestion window is actually set to the amount of data sent before the ACK arrives and not based on equations above.) After Quick-Start mode is exited and the congestion window adjusted if necessary, the TCP sender returns to using the default congestion control mechanisms, processing further incoming ACK packets as specified by those congestion control mechanisms. For example, if the TCP sender was in slow-start prior to the Quick-Start request, and no packets were lost or marked since that time, then the sender continues in slow-start after exiting Quick-Start mode, as allowed by ssthresh. To add robustness, the TCP sender MUST use Limited Slow-Start [RFC3742] along with Quick-Start. With Limited Slow-Start, the TCP sender limits the number of packets by which the congestion window is increased for one window of data during slow-start. When Quick-Start is used at the beginning of a connection, before any packet marks or losses have been reported, the TCP host MAY use the reported Rate Request to set the slow-start threshold to a desired value, e.g., to some small multiple of the congestion window. A possible future research topic is how the sender might modify the show-start threshold at the beginning of a connection to avoid overshooting the path capacity. (The initial value of ssthresh is allowed to be arbitrarily high, and some TCP implementations use the size of the advertised window for ssthresh [RFC2581].) 4.5. TCP:Responding to a Loss ofControlling Acknowledgement Traffic on the Reverse Path When a Quick-StartPacket For TCP, we have definedRequest is approved for a``Quick-Start packet'' as one ofTCP sender, thepackets sentresulting Quick-Start data traffic can result inthe window immediately following a successful Quick- Start request. After detecting the loss or ECN-marking ofaQuick- Start packet, TCP MUST revert to the default congestion control procedures that would have been used ifsudden increase in traffic for pure ACK packets on theQuick-Start request had not been approved.reverse path. For example,if Quick-Start is usedforsettingtheinitial window, andlargest Quick-Start request of 1.3 Gbps, given apacket from the initial window is lost or marked, then theTCP senderMUST then slow-startwith 1500-byte packets and a TCP receiver with delayed acknowledgements acking every other packet, this could result in 17.3 Mbps of acknowledgement traffic on thedefault initial window thatreverse path. One possibility, in cases with large Quick-Start requests, wouldhave been used ifbe for TCP receivers to send Quick-Starthad not been used. In addition to revertingrequests to request bandwidth for thedefault congestion control mechanisms, the sender MUST take into account that the Quick-Start congestion window was too large. Thus, the sender SHOULD decrease ssthresh to at most halfacknowledgement traffic on thenumber of Quick-Start packets that were successfully transmitted. Section B.5 discusses possible alternativesreverse path. However, inrespondingour view, a better approach would be for TCP receivers to simply control thelossrate ofa Quick-Start packet. If a Quick-Start packet is lost or ECN-marked, then the sender SHOULD NOT makesending acknowledgement traffic. The optimal futureQuick-Start requestssolution would involve the explicit use of congestion control forthis connection. We note that ECN [RFC3168] MAY be used with Quick-Start. AsTCP acknowledgement traffic, as isalwaysdone now for thecase with ECN,acknowledgement traffic in DCCP's CCID2 [RFC4341]. In thesender'sabsence of congestion control for acknowledgement traffic, the TCP receiver could limit its sending rate for ACK packets sent in response toan ECN-markedQuick-Startpacketdata packets. The following information is needed by thesame as the response to a dropped Quick-Start packet, thus reverting to slow start inTCP receiver: * The RTT: TCP naturally measures thecase of Quick-Start packets marked as experiencing congestion. 4.6. TCP: A Quick-Start Request for a Larger Initial Window SomeRTT of theissuespath and therefore should have a sample ofusing Quick-Start are related tothespecific scenario in which Quick-Start is used. This section discussesRTT. If thefollowing issues that arise when Quick-Start is used byTCPto request a larger initial window: (1) interactions with Path MTU Discovery (PMTUD); and (2) Quick-Start request packets that are discarded by middleboxes. 4.6.1. Interactions with Path MTU Discovery One issue when Quick-Start is used to requestreceiver does not have alarge initial window concernsmeasurement of theinteractionsround-trip time, it can use the time between thelarge initial window and Path MTU Discovery. Somereceipt of theissues are discussed in RFC 3390: "When larger initial windows are implemented along with Path MTU Discovery [RFC1191], alternatives are to setQuick-Start Request and the"Don't Fragment" (DF) bit in all segments inQuick-Start Response packets. * The Approved Rate Request (R): When theinitial window, or to setTCP receiver receives the"Don't Fragment" (DF) bit in one ofQuick-Start Response packet, thesegments. It is an open question as to whichreceiver knows the value ofthese two alternatives is best." Ifthesender knowsapproved Rate Request. * The MSS: TCP advertises thePath MTU whenMSS during the initialwindow is sent (e.g., from a PMTUD cache or from some other IETF-approved method), thenthree-way handshake and therefore thesenderreceiver shoulduse that MTU for segments inhave an understanding of theinitial window. Unfortunately,packet size the senderdoesn't necessarily know the Path MTU when it sends packets inwill be using. If theinitial window. In this case,receiver does not have such an understanding or wishes to confirm thesender should be conservative innegotiated MSS, thepacketsizeused. Sending a large numberofoverly-large packets withtheDF bitfirst data packet can be used. With this setis not desirable, but sending a large numberofpackets that are fragmented ininformation thenetworkTCP receiver canbe equally undesirable. The sender SHOULD send one large packet in the initial window with the DF bit set, and send the remaining packets in the initial window with a smaller MTU of 576 bytes (or 1280 bytes with IPv6). A second possibility would berestrict its sending rate forthe senderpure acknowledgment traffic todelayat most 100 pure ACK packets per RTT by sendingthe Quick-Start Request forat most oneround-trip time, sending the Quick-Start Request with the first window ofACK for every K datawhile also doing Path MTU Discovery. 4.6.2. Quick-Start Request Packets that are Discarded by Routers or Middleboxes It is always possiblepackets, fora TCP SYN packet carrying a Quick-Start request to be dropped inthenetwork due to congestion, or to be blocked dueACK Ratio K set tointeractions with routers or middleboxes, where a middlebox is defined as any intermediary box performing functions apart from normal, standard functions of an IP router onR*RTT/(100*8*MSS). The receiver would acknowledge the first Quick-Start datapath between a source host and destination host [RFC3234]. Measurement studies of interactions between transport protocolspacket, andmiddleboxes [MAF04] show thatevery succeeding K data packets. Thus, for70%a somewhat extreme case of R=1.3 Gbps, RTT=0.2 seconds, and MSS=1500 bytes, K would be set to 216, and theweb servers investigated, no connection is established ifreceiver would acknowledge every 216 data packets. From [RFC2581], theTCP SYN packet contains an unknown IP option (and for 43%ACK Ratio K should have a minimum value of two. When theweb servers, no connectionACK Ratio isestablished ifgreater than two, and the TCPSYN packet contains an IP TimeStamp Option). In both cases, this is presumably due to routers or middleboxes along that path. Ifsender receives acknowledgements each acknowledging more than two data packets, the TCP senderdoesn't receive a responsemay want to use rate-based pacing to control theSYN or SYN/ACK packet containingburstiness of its outgoing data traffic. In theQuick-Start Request, thenabsence of explicit congestion control mechanisms, the TCPsender SHOULD resendend nodes cannot determine theSYN or SYN/ACKpacket drop rate for pure acknowledgement traffic. This is true with or without Quick-Start. However, theQuick-Start Request. Similarly, if the TCP sender receives aTCPresetreceiver could limit its increase inresponse totheSYN or SYN/ACK packet containingsending rate for pure ACK packets by at most doubling theQuick-Start Request, thensending rate for pure ACK packets from one round-trip time to the next. The TCPsender SHOULD resend the SYN or SYN/ACK packet withoutreceiver would do this by halving theQuick-Start Request [RFC3360]. RFC 1122 and 2988 specifyACK Ratio each round-trip time. Note that thesender should set the initial RTOabove is one particular mechanism that could be used tothree seconds, though many TCP implementations setcontrol theinitial RTOACK stream. Future work that investigates this scheme and others in detail is encouraged. 4.6. TCP: Responding toone second.a Loss of a Quick-Start Packet For TCP, we have defined aTCP SYN packet``Quick-Start packet'' as one of the packets sentwithin the window immediately following aQuick-Start request,successful Quick- Start request. After detecting theTCP sender SHOULD use an initial RTOloss or ECN-marking ofthree seconds. We notea Quick- Start packet, TCP MUST revert to the default congestion control procedures that would have been used if theTCP SYN packet is using the IPQuick-StartOption for arequest had not been approved. For example, if Quick-Startrequest, and itisalso using bits inused for setting theTCP header to negotiate ECN-capability with the TCP host at the other end, then the drop of a TCP SYN packet could be due to congestion, toinitial window, and arouter or middlebox dropping thepacketbecause offrom theIP Option, or because of a routerinitial window is lost ormiddlebox dropping the packet because of the information inmarked, then the TCPheader negotiating ECN. In this case, thesendercould resend the dropped packet without eitherMUST then slow-start with the default initial window that would have been used if Quick-Startorhad not been used. In addition to reverting to theECN requests. Alternately,default congestion control mechanisms, the sendercould resend the dropped packet with onlyMUST take into account that theECN request inQuick-Start congestion window was too large. Thus, theTCP header, resendingsender SHOULD decrease ssthresh to at most half theTCP SYN packet without eithernumber of Quick-Start packets that were successfully transmitted. Section B.5 discusses possible alternatives in responding to the loss of a Quick-Start packet. If a Quick-Start packet is lost or ECN-marked, then theECNsender SHOULD NOT make future Quick-Start requestsif the second TCP SYN packet is dropped. The second choice seems reasonable, givenfor this connection. We note thata TCP SYN packet todayECN [RFC3168] MAY be used with Quick-Start. As ismore likelyalways the case with ECN, the sender's congestion control response tobe blocked duean ECN-marked Quick-Start packet is the same as the response topolicies that discard packets with IP Options than duea dropped Quick-Start packet, thus reverting topolicies that discard packets with ECN requestsslow start in theTCP header [MAF04].case of Quick-Start packets marked as experiencing congestion. 4.7. TCP: A Quick-Start Requestinfor a Larger Initial Window Some of theMiddleissues ofa Connectionusing Quick-Start are related to the specific scenario in which Quick-Start is used. This section discusses the following issues that arise whenQuick- StartQuick-Start is used by TCP to request a largerwindow in the middle of a connection, such as after an idle period:initial window: (1)determining the rate to request; (2) when to make a request;interactions with Path MTU Discovery (PMTUD); and(3) the response if(2) Quick-Start request packets that aredropped; (1) Determining the ratediscarded by middleboxes. 4.7.1. Interactions with Path MTU Discovery One issue when Quick-Start is used torequest: For a connection that has not yet had a congestion event (that is,request amarked or dropped packet),large initial window concerns theTCP sender is not restricted ininteractions between therate that it requests. As an example, a server might waitlarge initial window andsend a Quick-Start request after a short interaction withPath MTU Discovery. Some of theclient. To use a Quick-Start Requestissues are discussed ina connection that has already experienced a congestion event, and that has not had a recent mobility event, the TCP sender can determine the largest congestion window thatRFC 3390: "When larger initial windows are implemented along with Path MTU Discovery [RFC1191], alternatives are to set theTCP connection achieved since"Don't Fragment" (DF) bit in all segments in thelast packet drop and translate this to a sending rateinitial window, or togetset themaximum allowed request rate. If"Don't Fragment" (DF) bit in one of therequestsegments. It isgranted, thenan open question as to which of these two alternatives is best." If the senderessentially restarts with its old congestionknows the Path MTU when the initial window is sent (e.g., frombefore it was reduced,a PMTUD cache or from some other IETF-approved method), then the sender SHOULD use that MTU forexample during an idle period. A Quick-Start Request sentsegments in themiddle of a TCP connection SHOULDinitial window. Unfortunately, the sender doesn't necessarily know the Path MTU when it sends packets in the initial window. In this case, the sender should besent on a data packet. (2) When to make a request: A TCP connection MAY make a Quick-Start request beforeconservative in theconnection has experiencedpacket size used. Sending acongestion event, or after an idle periodlarge number ofat least one RTO. (2) Response if Quick-Startoverly-large packetsare dropped: If Quick-Startwith the DF bit set is not desirable, but sending a large number of packets that aredroppedfragmented in themiddle of connection, thennetwork can be equally undesirable. If the senderMUST revert to half ofdoesn't know theQuick-Start window, or toPath MTU when thecongestioninitial windowthatis sent, the senderwould have used if the Quick-Start request had not been approved, whichever is smaller. 4.8. An Example Quick-Start Scenario with TCP The following is an example scenarioSHOULD send one large packet in thecase when both hosts request Quick-Start for setting theirinitialwindows. This is similar to Figures 1window with the DF bit set, and2send the remaining packets inSection 2.1, except that it illustratesthe initial window with aTCP connectionsmaller MTU of 576 bytes (or 1280 bytes withboth TCP hosts sending Quick-Start Requests. * The TCP SYN packet from HostIPv6). Acontains a Quick-Start Request in the IP header. * Routers alongsecond possibility would be for theforward path modifysender to delay sending the Quick-Start Requestas appropriate. * Host B receivesfor one round-trip time, sending the Quick-Start Requestinwith theSYN packet, and calculatesfirst window of data while also doing Path MTU Discovery. The sender may be using an iterative approach such as Packetization Layer Path MTU Discovery (PLPMTUD) [MH06] for Path MTU Discovery, where theTTL Diff.sender tests successively larger MTUs. IfHost B approves the Quick-Start Request, then Host B sendsaQuick-Start Response inprobe is successfully delivered then theTCP header ofMTU can be raised to reflect theSYN/ACK packet. Host B also sends a Quick-Start Requestvalue used in that probe. We would note that PLPMTUD does not allow theIP header of the SYN/ACK packet. * Routers alongsender to determine thereverse path modifyPath MTU before sending the initial window of data. 4.7.2. Quick-Start Requestas appropriate. * Host A receives thePackets that are Discarded by Routers or Middleboxes It is always possible for a TCP SYN packet carrying a Quick-StartResponserequest to be dropped in theSYN/ACK packet, and checks the TTL Diff, Rate Request, and QS Nonce for validity. If they are valid, then Host A sets its initial congestion window appropriately, and sets up rate-based pacingnetwork due to congestion, or to beusedblocked due to interactions withthe initial window. If the Quick-Start Responserouters or middleboxes, where a middlebox isnot valid, then Host A uses TCP's default initial window. In either case, Host A sendsdefined as any intermediary box performing functions apart from normal, standard functions of an IP router on the data path between aReportsource host and destination host [RFC3234]. Measurement studies of interactions between transport protocols and middleboxes [MAF04] show that for 70% ofApproved Rate. Host A also calculatestheTTL Diffweb servers investigated, no connection is established if the TCP SYN packet contains an unknown IP option (and for 43% of theQuick-Start Request inweb servers, no connection is established if theincoming SYN/ACK packet, and sendsTCP SYN packet contains an IP TimeStamp Option). In both cases, this is presumably due to routers or middleboxes along that path. If the TCP sender doesn't receive a response to the SYN or SYN/ACK packet containing the Quick-StartResponse inRequest, then the TCPheader ofsender SHOULD resend theACK packet. * Host B receivesSYN or SYN/ACK packet without the Quick-StartResponseRequest. Similarly, if the TCP sender receives a TCP reset inan ACK packet, and checksresponse to theTTL Diff, Rate Request, and QS Nonce for validity. IfSYN or SYN/ACK packet containing the Quick-StartResponse is valid,Request, thenHost B sets its initial congestion window appropriately,the TCP sender SHOULD resend the SYN or SYN/ACK packet without the Quick-Start Request [RFC3360]. RFC 1122 andsets up rate-based pacing2988 specify that the sender should set the initial RTO tobe usedthree seconds, though many TCP implementations set the initial RTO to one second. For a TCP SYN packet sent withitsa Quick-Start request, the TCP sender SHOULD use an initialwindow. IfRTO of three seconds. We note that if theQuick-Start ResponseTCP SYN packet isnot valid, then Host B uses TCP's default initial window. In either case, Host B sendsusing the IP Quick-Start Option for aReport of Approved Rate. 5.Quick-Start request, andIPsec AH This section shows that Quick-Startit iscompatible with IPsec AH (Authentication Header). AH uses an Integrity Check Value (ICV)also using bits in theIPsec Authentication HeaderTCP header toverify both message authentication and integrity ([RFC2402], [2402bis]). Changesnegotiate ECN-capability with the TCP host at the other end, then the drop of a TCP SYN packet could be due to congestion, to a router or middlebox dropping theQuick-Start option inpacket because of the IPheader do not affect this AH ICV. The tunnel considerations in Section 6 below apply to all IPsec tunnels, regardlessOption, or because ofwhat IPsec headersa router orprocessing are usedmiddlebox dropping the packet because of the information inconjunction withthetunnel. BecauseTCP header negotiating ECN. In this case, thecontents ofsender could resend the dropped packet without either the Quick-Startoption can change alongor thepath, it is important that these changes not affectECN requests. Alternately, theIPsec Authentication Header Integrity Check Value (AH ICV). For IPv4, RFC 2402 requires that unrecognized IPv4 options be zeroed for AH ICV computation purposes, so Quick-Start IP Option data changing en route does not cause problemssender could resend the dropped packet withexisting IPsec AH implementations for IPv4. Ifonly theQuick-Start option is recognized, it MUST be treated as a mutable IPv4 option, and hence be completely zeroed for AH ICV calculation purposes. IPv6 option numbers explicitly indicate whether the option is mutable; the 3rd highest order bitECN request in theIANA-allocated option type hasTCP header, resending thevalue 1 to indicate thatTCP SYN packet without either the Quick-Startoption data can change en route. RFC 2402 requires thator theoption data of any such optionECN requests if the second TCP SYN packet is dropped. The second choice seems reasonable, given that a TCP SYN packet today is more likely to bezeroed for AH ICV computation purposes. Therefore changesblocked due tothe Quick-Start optionpolicies that discard packets with IP Options than due to policies that discard packets with ECN requests in theIPTCP headerdo not affect the calculation of the AH ICV. 6.[MAF04]. 4.8. TCP: A Quick-Start Request inIP Tunnels and MPLSthe Middle of a Connection This sectionconsiders interactions between Quick-Start and IP tunnels, including IPsec ([RFC2401], [2401bis]), IPdiscusses the following issues that arise when Quick- Start is used by TCP to request a larger window inIP [RFC2003], GRE [RFC2784], and others. This section also considers interactions between Quick-Start and MPLS [RFC3031]. Inthediscussion, we use TTL Diff, defined earliermiddle of a connection, such as after an idle period: (1) determining thedifference between the IP TTLrate to request; (2) when to make a request; and (3) the response if Quick-StartTTL, mod 256. Recallpackets are dropped; (1) Determining the rate to request: For a connection that has not yet had a congestion event (that is, a marked or dropped packet), the TCP senderconsidersis not restricted in the rate that it requests. As an example, a server might wait and send a Quick-Start requestapproved only if the value of TTL Diff for the packet entering the network is the same asafter a short interaction with thevalue of TTL Diff forclient. To use a Quick-Start Request in a connection that has already experienced a congestion event, and that has not had a recent mobility event, thepacket exitingTCP sender can determine thenetwork. Simple tunnels: IP tunnel modes are generally based on adding a new "outer" IP headerlargest congestion window thatencapsulatestheoriginal or "inner" IP header and its associated packet. In many cases,TCP connection achieved since thenew "outer" IP header may be addedlast packet drop andremoved at intermediate points along a path, enabling the networktranslate this toestablishatunnel without requiring endpoint participation. We denote tunnels that specify thatsending rate to get theouter header be discarded at tunnel egress as "simple tunnels", and we denote tunnels wheremaximum allowed request rate. If theegress saves and uses information fromrequest is granted, then theouter headersender essentially restarts with its old congestion window from beforediscardingitas "non-simple tunnels". Anwas reduced, for example during an idle period. A Quick-Start Request sent in the middle of a"non-simple tunnel" wouldTCP connection SHOULD be sent on atunnel configured to support ECN, where the egress router might copy the ECN codepoint in the outer headerdata packet. (2) When tothe inner headermake a request: A TCP connection MAY make a Quick-Start request beforediscardingtheouter header [RFC3168]. __ Tunnels Compatible with Quick-Start / Simple Tunnels __/ \ \__ Tunnels Not Compatible with Quick-Start (False Positives!) __ Tunnels Supportingconnection has experienced a congestion event, or after an idle period of at least one RTO. (3) Response if Quick-Start/ / Non-Simple Tunnels __/_____ Tunnels Compatible with Quick-Start, \ but Not Supportingpackets are dropped: If Quick-Start\ \__ Tunnels Not Compatible with Quick-Start? Figure 6: Categories of Tunnels. Tunnels thatpackets arecompatible with Quick-Start: We say that an IP tunnel `is not compatible with Quick-Start' ifdropped in theusemiddle ofa Quick- Start Request over such a tunnel allows false positives, whereconnection, then theTCPsenderincorrectly believes that the Quick-Start Request was approved by all routers along the path. If the useMUST revert to half of the Quick-Startoverwindow, or to thetunnel does not cause false positives, we saycongestion window that theIP tunnel `is compatible with Quick-Start'. If the IP TTL of the inner header is decremented during forwarding before tunnel encapsulation takes place, thensender would have used if thesimple tunnel is compatible with Quick-Start, withQuick-Startrequests being rejected. Section 6.1 describes in more detail the ways that a simple tunnel can be compatible with Quick-Start. There are some simple tunnels that arerequest had notcompatiblebeen approved, whichever is smaller. 4.9. An Example Quick-Start Scenario withQuick- Start, allowing `false positives' where theTCPsender incorrectly believes thatThe following is an example scenario in the case when both hosts request Quick-StartRequest was approved by all routers along the path.for setting their initial windows. This isdiscussed in Section 6.2 below. One of our tasks in the future will besimilar toinvestigate the occurrence of tunnels that are not compatible with Quick-Start,Figures 1 andto track the extent to which such tunnels are modified over time. The evaluation of the problem of false positives from tunnels2 in Section 2.1, except thatare not compatibleit illustrates a TCP connection with both TCP hosts sending Quick-Startwill affect the progression of Quick-StartRequests. * The TCP SYN packet fromExperimental to Proposed Standard, and will affect the degree of deployment ofHost A contains a Quick-StartwhileRequest inExperimental mode. Tunnels that support Quick-Start: We say that anthe IPtunnel `supports Quick-Start' if it allows routersheader. * Routers along thetunnelforward pathto processmodify the Quick-Start Request as appropriate. * Host B receives the Quick-Start Requestand give feedback, resultingin theappropriate possible acceptance ofSYN packet, and calculates the TTL Diff. If Host B approves the Quick-Startrequest. Some tunnels that are compatible with Quick-Start support Quick-Start, while others do not. We note that a simple tunnel is not able to support Quick-Start. FromRequest, then Host B sends asecurity point of view,Quick-Start Response in theuseTCP header of the SYN/ACK packet. Host B also sends a Quick-Start Request in theouterIP header ofan IP tunnel might raise security concerns because an adversary could tamper withtheQuick-Start information that propagates beyondSYN/ACK packet. * Routers along thetunnel endpoint, or becausereverse path modify the Quick-StartOption exposes information to network scanners. Our approach is to make supportingRequest as appropriate. * Host A receives the Quick-Startan option for IP tunnels. That is,Response inenvironments or tunneling protocols where the risks of using Quick- Start are judged to outweigh its benefits, the tunnel can simply deletetheQuick-Start option or zeroSYN/ACK packet, and checks theQuick-Start rate requestTTL Diff, Rate Request, and QSTTL fields before encapsulation. The result is that there are two viable optionsNonce forIP tunnelsvalidity. If they are valid, then Host A sets its initial congestion window appropriately, and sets up rate-based pacing to becompatibleused withQuick- Start. The first option isthesimple tunnel described above and in Section 6.1, whereinitial window. If thetunnel is compatible with Quick-Start but does not support Quick-Start, where allQuick-Startrequests along the path will be rejected. The second approachResponse isa Quick-Start- capable mode, described in Section 6.3, where the tunnel actively supports Quick-Start. 6.1. Simple Tunnels That Are Compatible with Quick-Start This section describes the ways that a simple tunnel can be compatible with Quick-Start butnotsupport Quick-Start, resulting in the rejection of all Quick-Start requests that traverse the tunnel. If the tunnel ingress for the simple tunnel is atvalid, then Host A uses TCP's default initial window. In either case, Host A sends arouter, the IP TTLReport of Approved Rate. Host A also calculates theinner header is generally decremented during forwarding before tunnel encapsulation takes place. In this caseTTL Diffwill be changed, correctly causing the Quick-Start request to be rejected. For a simple tunnel it is preferable iffor the Quick-Start Requestis not copied to the outer header, savingin therouters withinincoming SYN/ACK packet, and sends a Quick-Start Response in thetunnel from unnecessarily processingTCP header of theQuick-Start request. However,ACK packet. * Host B receives the Quick-Startrequest will be rejected correctlyResponse inthis case whether or notan ACK packet, and checks the TTL Diff, Rate Request, and QS Nonce for validity. If the Quick-StartRequestResponse iscopiedvalid, then Host B sets its initial congestion window appropriately, and sets up rate-based pacing to be used with its initial window. If theouter header. 6.1.1. Simple Tunnels that are Aware ofQuick-StartIf a tunnel ingressResponse isaware of Quick-Start, but doesnotwant to support Quick-Start,valid, thenthe tunnel ingress MUSTHost B uses TCP's default initial window. In eitherzero thecase, Host B sends a Report of Approved Rate. 5. Quick-Startrate request, QS TTL,andQS Nonce fields or removeIPsec AH This section shows that Quick-Start is compatible with IPsec AH (Authentication Header). AH uses an Integrity Check Value (ICV) in the IPsec Authentication Header to verify both message authentication and integrity ([RFC2402], [RFC4302]). Changes to the Quick-Start optionfromin theinnerIP headerbefore encapsulation. Section 6.3 describes the procedures for ado not affect this AH ICV. The tunnelthat does wantconsiderations in Section 6 below apply tosupport Quick-Start. Deleting the Quick-Start optionall IPsec tunnels, regardless of what IPsec headers orzeroingprocessing are used in conjunction with theQuick-Start rate request *after decapsulation* also serves to preventtunnel. Because thepropagationcontents of the Quick-Startinformation, and is compatible with Quick-Start. Ifoption can change along theouter header doespath, it is important that these changes notcontain a Quick-Start Request, a Quick- Start-aware tunnel egress MUST reject the inner Quick-Start Request by zeroing the Rate Request field in the inner header, or by deletingaffect the IPsec Authentication Header Integrity Check Value (AH ICV). For IPv4, RFC 2402 requires that unrecognized IPv4 options be zeroed for AH ICV computation purposes, so Quick-Startoption.IP Option data changing en route does not cause problems with existing IPsec AH implementations for IPv4. If thetunnel ingressQuick-Start option isatrecognized, it MUST be treated as asending host or router where the IP TTL is not decremented prior to encapsulation,mutable IPv4 option, andneither tunnel endpointhence be completely zeroed for AH ICV calculation purposes. IPv6 option numbers explicitly indicate whether the option isaware of Quick-Start, then this allows false positives, describedmutable; the 3rd highest order bit in thesection below. 6.2. Simple Tunnels That Are Not Compatible with Quick-Start Sometimes a tunnel implementation that does not support Quick-Start is independent ofIANA-allocated option type has theTCP sender or a router implementationvalue 1 to indicate thatsupports Quick-Start. In these cases it is possiblethe Quick-Start option data can change en route. RFC 2402 requires thata Quick- Start Request gets erroneously approved withouttheroutersoption data of any such option be zeroed for AH ICV computation purposes. Therefore changes to the Quick-Start option in thetunnel having individually approvedIP header do not affect therequest, causing a false positive. If a tunnel ingress is a separate component fromcalculation of theTCP sender orAH ICV. 6. Quick-Start in IPforwarding, it is possible that a packet with aTunnels and MPLS This section considers interactions between Quick-Startoption is encapsulated without theand IPTTL being decremented first, or with bothtunnels, including IPsec ([RFC2401], [RFC4301]), IPTTLin IP [RFC2003], GRE [RFC2784], andQSothers. This section also considers interactions between Quick-Start and MPLS [RFC3031]. In the discussion, we use TTLbeing decremented beforeDiff, defined earlier as thetunnel encapsulation takes place. Ifdifference between thetunnel ingress does not know about Quick-Start, a valid Quick-Start Request with unchangedIP TTLDiff traverses in the inner header, whileand theouter header most likely does not carry aQuick-StartRequest. If the tunnel egress also does not support Quick-Start, it remains possibleTTL, mod 256. Recall that theQuick- Start Request would be falsely approved, because the packet is decapsulated usingsender considers the Quick-Start requestfrom the inner header, andapproved only if the value of TTL Diffechoed to the sender remains unchanged. For example, such a scenario can occur with a Bump-In-The-Stack (BITS), an IPSec encryption implementation wherefor thedata encryption occurs betweenpacket entering the networkdrivers andis theTCP/IP protocol stack [RFC2401]. As one example, if a remote access VPN client usessame as the value of TTL Diff for the packet exiting the network. Simple tunnels: IP tunnel modes are generally based on adding aBITS structure, then Quick-Start obstacles betweennew "outer" IP header that encapsulates theclientoriginal or "inner" IP header and its associated packet. In many cases, theVPN gateway won'tnew "outer" IP header may beseen. This isadded and removed at intermediate points along aparticular problem because the path betweenpath, enabling theclient and the VPN gateway is likelynetwork tocontain the most congested part ofestablish a tunnel without requiring endpoint participation. We denote tunnels that specify that thepath. Because most VPN clients are reported to use BITS [H05],outer header be discarded at tunnel egress as "simple tunnels", and wewill explore this in more detail. A Bump-In-The-Wire (BITW) is an IPSec encryption implementationdenote tunnels where theencryption occurs on an outboard processor, offloading the encryption processing overheadegress saves and uses information from thehost orouter header before discarding it as "non-simple tunnels". An example of a "non-simple tunnel" would be a tunnel configured to support ECN, where the egress router[RFC2401]. The BITW device is usually IP addressable, which means thatmight copy theIP TTL is decremented beforeECN codepoint in thepacket is passedouter header to theBITW. Ifinner header before discarding theQS TTL isouter header [RFC3168]. __ Tunnels Compatible with Quick-Start / Simple Tunnels __/ \ \__ Tunnels Not Compatible with Quick-Start (False Positives!) __ Tunnels Supporting Quick-Start / / Non-Simple Tunnels __/_____ Tunnels Compatible with Quick-Start, \ but Not Supporting Quick-Start \ \__ Tunnels Not Compatible with Quick-Start? Figure 6: Categories of Tunnels. Tunnels that are compatible with Quick-Start: We say that an IP tunnel `is notdecremented, thencompatible with Quick-Start' if thevalueuse ofTTL Diff is changed, anda Quick- Start Request over such a tunnel allows false positives, where the TCP sender incorrectly believes that the Quick-Startrequest will be denied. However, ifRequest was approved by all routers along theBITW supports a host andpath. If the use of Quick-Start over the tunnel does nothave its owncause false positives, we say that the IPaddress, thentunnel `is compatible with Quick-Start'. If the IP TTL of the inner header isnotdecremented during forwarding before tunnel encapsulation takes place, then thepacketsimple tunnel ispassed from the host tocompatible with Quick-Start, with Quick-Start requests being rejected. Section 6.1 describes in more detail theBITW, and a false positive could occur. Other tunnelsways thatneed toa simple tunnel can belooked atcompatible with Quick-Start. There areIPsome simple tunnelsover non- network protocols, such as IP overthat are not compatible with Quick- Start, allowing `false positives' where the TCPand IP over UDP [RFC3948], and tunnels usingsender incorrectly believes that theLayer Two Tunneling Protocol [RFC2661].Quick-Start Request was approved by all routers along the path. This is discussed in Section9.2 discusses6.2 below. One of our tasks in therelated issuefuture will be to investigate the occurrence ofnon-IP queues,tunnels that are not compatible with Quick-Start, and to track the extent to which suchas layer-two Ethernet or ATM networks, as another instancetunnels are modified over time. The evaluation ofpossible bottlenecksthe problem of false positives from tunnels thatdoare notparticipate in thecompatible with Quick-Startfeedback. 6.3. Tunnels That Supportwill affect the progression of Quick-StartThis section discusses tunnels configuredfrom Experimental to Proposed Standard, and will affect the degree of deployment of Quick-Start while in Experimental mode. Tunnels that supportQuick-Start. IfQuick-Start: We say that an IP tunnel `supports Quick-Start' if it allows routers along the tunnelingress node choosespath tolocally approveprocess theQuick- Start request, thenQuick-Start Request and give feedback, resulting in theingress node MUST decrementappropriate possible acceptance of the Quick-StartTTL atrequest. Some tunnels that are compatible with Quick-Start support Quick-Start, while others do not. We note that a simple tunnel is not able to support Quick-Start. From a security point of view, thesame time it decrementsuse of Quick-Start in the outer header of an IPTTL, and MUST copy IP TTL andtunnel might raise security concerns because an adversary could tamper with the Quick-Startoption frominformation that propagates beyond theinner IP headertunnel endpoint, or because the Quick-Start Option exposes information to network scanners. Our approach is to make supporting Quick-Start an option for IP tunnels. That is, in environments or tunneling protocols where theouter header. During encapsulation,risks of using Quick- Start are judged to outweigh its benefits, the tunnelingress MUSTcan simply delete the Quick-Start option or zero the Quick-Start rate requestfieldand QS TTL fields before encapsulation. The result is that there are two viable options for IP tunnels to be compatible with Quick- Start. The first option is the simple tunnel described above and in Section 6.1, where the tunnel is compatible with Quick-Start but does not support Quick-Start, where all Quick-Start requests along the path will be rejected. The second approach is a Quick-Start- capable mode, described in Section 6.3, where the tunnel actively supports Quick-Start. 6.1. Simple Tunnels That Are Compatible with Quick-Start This section describes the ways that a simple tunnel can be compatible with Quick-Start but not support Quick-Start, resulting in the rejection of all Quick-Start requests that traverse the tunnel. If the tunnel ingress for the simple tunnel is at a router, the IP TTL of the inner header is generally decremented during forwarding before tunnel encapsulation takes place. In this case TTL Diff will be changed, correctly causing the Quick-Start request toensure thatbe rejected. For a simple tunnel it is preferable if the Quick-Start Request is not copied to the outer header, saving the routers within the tunnel from unnecessarily processing the Quick-Start request. However, the Quick-Start request will be rejectedifcorrectly in this case whether or not the Quick-Start Request is copied to the outer header. 6.1.1. Simple Tunnels that are Aware of Quick-Start If a tunnelegressingress is aware of Quick-Start, but does not want to supportQuick-Start. IfQuick-Start, then the tunnel ingressnode does not choose to locally approveMUST either zero the Quick-Start rate request,then it MUST either deleteQS TTL, and QS Nonce fields or remove the Quick-Start option from the inner header beforeencapsulation,encapsulation. Section 6.3 describes the procedures for a tunnel that does want to support Quick-Start. Deleting the Quick-Start option orzerozeroing theQS TTL andQuick-Start rate request *after decapsulation* also serves to prevent theRate Request fields before encapsulation. Upon decapsulation, ifpropagation of Quick-Start information, and is compatible with Quick-Start. If the outer headercontainsdoes not contain a Quick-Startoption, theRequest, a Quick- Start-aware tunnel egress MUSTcopy the IP TTL andreject the inner Quick-Startoption fromRequest by zeroing theouter IP header toRate Request field in the innerheader. IPsec usesheader, or by deleting theIKE (Internet Key Exchange) Protocol for security associations. We do not considerQuick-Start option. If theinteractions between Quick- Start and IPsec with IKEv1 [RFC2409] in this document. Now that the RFC for IKEv2 [RFC4306]tunnel ingress ispublished, we plan to specifyat amodification of IPsec to allowsending host or router where thesupport of Quick-StartIP TTL is not decremented prior tobe negotiated;encapsulation, and neither tunnel endpoint is aware of Quick-Start, then thismodification will specifyallows false positives, described in thenegotiation betweensection below. 6.2. Simple Tunnels That Are Not Compatible with Quick-Start Sometimes a tunnelendpoints to allow or forbidimplementation that does not supportforQuick-Startwithin the tunnel. This was done for ECN for IPsec tunnels, with IKEv1 [RFC3168, Section 9.2]. This negotiationis independent ofQuick-Start capability in an IPsec tunnel will be specified inthe TCP sender or aseparate IPsec document. This document will also includerouter implementation that supports Quick-Start. In these cases it is possible that adiscussion of the potential effects of an adversary's modifications ofQuick- Start Request gets erroneously approved without theQuick-Start field (asrouters inSections 18 and 19 of RFC 3168), and ofthesecurity considerations of exposingtunnel having individually approved theQuick-Start rate request to network scanners. 6.4. Quick-Start and MPLS The behavior of Quick-Start with MPLSrequest, causing a false positive. If a tunnel ingress issimilar toa separate component from thebehavior of Quick-Start withTCP sender or IPTunnels. For those MPLS paths whereforwarding, it is possible that a packet with a Quick-Start option is encapsulated without the IP TTLisbeing decrementedas part of traversing the MPLS path, these paths are compatiblefirst, or withQuick-Start, but do not support Quick-Start; Quick- Start requests traversing these paths will be correctly understood by the transport sender as having been denied. Any MPLS paths where theboth IP TTLis notand QS TTL being decrementedas part of traversingbefore theMPLS path would betunnel encapsulation takes place. If the tunnel ingress does notcompatibleknow about Quick-Start, a valid Quick-Start Request withQuick-Start; such paths would resultunchanged TTL Diff traverses infalse positives, wheretheTCP sender incorrectly believes thatinner header, while the outer header most likely does not carry a Quick-StartRequest was approved by all routers along the path. For cases whereRequest. If theingress node totunnel egress also does not support Quick-Start, it remains possible that theMPLS path is aware ofQuick-Start, this node should either zeroStart Request would be falsely approved, because theQuick-Start rate request, QS TTL, and QS Nonce fields or removepacket is decapsulated using the Quick-Startoptionrequest from theIP header. 7. The Quick-Start Mechanism in other Transport Protocols The section earlier specifiedinner header, and theusevalue ofQuick-Start in TCP. In this section, we generalize thisTTL Diff echoed togive guidelines fortheuse of Quick-Startsender remains unchanged. For example, such a scenario can occur withother transport protocols. We also discuss briefly howa Bump-In-The-Stack (BITS), an IPSec encryption implementation where the data encryption occurs between the network drivers and the TCP/IP protocol stack [RFC2401]. As one example, if a remote access VPN client uses a BITS structure, then Quick-Startcouldobstacles between the client and the VPN gateway won't bespecified for other transport protocols. The general guidelines for Quick-Start in transport protocols are as follows: * Quick-Start is only specified for unicast transport protocols with appropriate congestion control mechanisms. Note: Quick-Startseen. This isnotareplacement for standard congestion control techniques, but meant to augment their operation. * A transport-level mechanism is needed for the Quick-Start response from the receiver toparticular problem because thesender. This response containspath between theRate Request, TTL Diff,client andQS Nonce. * The sender checksthevalidity ofVPN gateway is likely to contain theQuick-Start response. * The sender has an estimatemost congested part of theround-trip time, and translates the Quick-Start response intopath. Because most VPN clients are reported to use BITS [H05], we will explore this in more detail. A Bump-In-The-Wire (BITW) is anallowed window or allowed sending rate. The sender sends a Report of the Approved Rate. The sender starts sending Quick-Start packets, rate-paced out atIPSec encryption implementation where theapproved sending rate. * Afterencryption occurs on an outboard processor, offloading thesender receivesencryption processing overhead from thefirst acknowledgement packet for a Quick-Start packet, no more Quick-Start packets are sent. The sender adjusts its current congestion windowhost orsending rate to be consistent with the actual amount of data that was transmitted inrouter [RFC2401]. The BITW device is usually IP addressable, which means thatround-trip time. * Whenthelast Quick-Start packetIP TTL isacknowledged,decremented before thesender continues usingpacket is passed to thestandard congestion control mechanisms of that protocol. *BITW. Ifone oftheQuick-Start packetsQS TTL islost,not decremented, then thesender reverts to the standard congestion control methodvalue ofthat protocol that would have been used ifTTL Diff is changed, and the Quick-Start requesthad not been approved. In addition, the sender takes into account the information that the Quick-Start congestion window was too large (e.g., by decreasing ssthresh in TCP). 8. Using Quick-Start 8.1. Determining the Rate to Request As discussed in [SAF06],will be denied. However, if thedata senderBITW supports a host and does notnecessarilyhaveinformation aboutits own IP address, then thesize ofIP TTL is not decremented before thedata transferpacket is passed from the host to the BITW, and a false positive could occur. Other tunnels that need to be looked atconnection initiation; for example, in request-response protocolsare IP tunnels over non- network protocols, such asHTTP,IP over TCP and IP over UDP [RFC3948], and tunnels using theserver doesn't knowLayer Two Tunneling Protocol [RFC2661]. Section 9.2 discusses thesize or namerelated issue ofthe requested object during connection initiation. [SAF06] explores somenon-IP queues, such as layer-two Ethernet or ATM networks, as another instance of possible bottlenecks that do not participate in theperformance implications of overly-largeQuick-Startrequests, andfeedback. 6.3. Tunnels That Support Quick-Start This section discussesheuristics that end-nodes could usetunnels configured tosize their requests appropriately. For example,support Quick-Start. If thesender might have information abouttunnel ingress node chooses to locally approve thebandwidth ofQuick- Start request, then thelast-mile hop,ingress node MUST decrement thesize ofQuick-Start TTL at thelocal socket buffer, or ofsame time it decrements theTCP receive window,IP TTL, and MUST copy IP TTL andcould use this information in determiningtherate to request. Web servers that mostly have small objects to transfer might decide not to useQuick-Startat all, sinceoption from the inner IP header to the outer header. During encapsulation, the tunnel ingress MUST zero the Quick-Startwould be of little benefitrate request field in the inner header tothem.ensure that the Quick-Start request will bemore effectiverejected ifQuick-Start requests are not larger than necessary; every Quick-Start request that is approved butthe tunnel egress does notused (orsupport Quick-Start. If the tunnel ingress node does notfully used) takes away fromchoose to locally approve thebandwidth pool available for granting successiveQuick-Startrequests. Following Section 4.1, the sender SHOULD NOT request a sending rate larger thanrequest, then itis able to use over the round-trip time of the connection (or over 100 ms, ifMUST either delete theround-trip time is not known), except as required to round upQuick-Start option from thedesired sending rate toinner header before encapsulation, or zero thenext-highest allowable request. 8.2. DecidingQS TTL and thePermittedRate Requestat a Router In this section we briefly outline how a router might decide whether or not to approvefields before encapsulation. Upon decapsulation, if the outer header contains a Quick-StartRequest. The router should askoption, thefollowing questions: * Hastunnel egress MUST copy therouter's output link been underutilized for some time (e.g., several seconds). * WouldIP TTL and theoutput link remain underutilized ifQuick-Start option from thearrival rate wasouter IP header toincrease bytheaggregate rate requestsinner header. IPsec uses the IKE (Internet Key Exchange) Protocol for security associations. We do not consider the interactions between Quick- Start and IPsec with IKEv1 [RFC2409] in this document. Now that therouter has approved overRFC for IKEv2 [RFC4306] is published, we plan to specify a modification of IPsec to allow thelast fractionsupport ofa second? In orderQuick-Start toanswerbe negotiated; this modification will specify thelast question,negotiation between tunnel endpoints to allow or forbid support for Quick-Start within therouter must have some knowledgetunnel. This was done for ECN for IPsec tunnels, with IKEv1 [RFC3168, Section 9.2]. This negotiation of Quick-Start capability in an IPsec tunnel will be specified in a separate IPsec document. This document will also include a discussion of theavailable bandwidth onpotential effects of an adversary's modifications of theoutput linkQuick-Start field (as in Sections 18 and 19 of RFC 3168), and of the security considerations of exposing the Quick-Startbandwidth that could arrive duerate request torecently-approvednetwork scanners. 6.4. Quick-StartRequests. In this way, if an underutilized router experiences a floodand MPLS The behavior of Quick-Startrequests, the router can beginwith MPLS is similar todenythe behavior of Quick-Startrequests whilewith IP Tunnels. For those MPLS paths where theoutput linkIP TTL isstill underutilized. A simple way for the router to keep trackdecremented as part of traversing thepotential bandwidth from recently-approvedMPLS path, these paths are compatible with Quick-Start, but do not support Quick-Start; Quick- Start requestsis to maintain two counters, one fortraversing these paths will be correctly understood by thetotal aggregate Rate Requests that havetransport sender as having beenapproved in the current time interval [T1, T2], and one for the total aggregate Rate Requests approved over a previous time interval [T0, T1]. However, this document doesn't specify router algorithms for approving Quick- Start requests, or make requirements for the appropriate time intervals for rememberingdenied. Any MPLS paths where theaggregate approved Quick-Start bandwidth. A possible router algorithmIP TTL isgiven in Appendix E, and more discussionnot decremented as part ofthese issues is available in [SAF06].) * Iftraversing therouter's output link has been underutilized andMPLS path would be not compatible with Quick-Start; such paths would result in false positives, where theaggregate ofTCP sender incorrectly believes that theQuick StartQuick-Start RequestRate options granted is low enough to prevent a near-term bandwidth shortage, thenwas approved by all routers along therouter could approvepath. For cases where theQuick-Start Request. Section 10.2 discusses someingress node to the MPLS path is aware of Quick- Start, this node should either zero theimplementation issues in processingQuick-Startrequests at routers. [SAF06] discussesrate request, QS TTL, and QS Nonce fields or remove therange of possibleQuick-Startalgorithms atoption from therouter for deciding whether to approve aIP header. 7. The Quick-Startrequest. In order to exploreMechanism in other Transport Protocols The section earlier specified thelimitsuse ofthe possible functionality at routers, [SAF06] also discusses ExtremeQuick-Startmechanisms at routers, wherein TCP. In this section, we generalize this to give guidelines for therouter would keep per-flow state concerning approved Quick-Start requests. 9. Evaluationuse of Quick-Start9.1. Benefits ofwith other transport protocols. We also discuss briefly how Quick-Start could be specified for other transport protocols. Themain benefit ofgeneral guidelines for Quick-Start in transport protocols are as follows: * Quick-Start isthe faster start-uponly specified fortheunicast transportconnection itself. Forprotocols with appropriate congestion control mechanisms. Note: Quick-Start is not asmall TCP transfer of onereplacement for standard congestion control techniques, but meant tofive packets, Quick-Startaugment their operation. * A transport-level mechanism isprobably of very little benefit; at best, it might shortenneeded for theconnection lifetimeQuick-Start response fromthreethe receiver totwo round-trip times (includingtheround-trip time for connection establishment). Similarly, for a very large transfer, wheresender. This response contains theslow-start phase would have been only a small fractionRate Request, TTL Diff, and QS Nonce. * The sender checks the validity of theconnection lifetime,Quick-Startwould beresponse. * The sender has an estimate oflimited benefit. Quick-Start would not significantly shortentheconnection lifetime, but it might eliminateround-trip time, and translates the Quick-Start response into an allowed window or allowed sending rate. The sender sends a Report of the Approved Rate. The sender starts sending Quick-Start packets, rate-paced out atleast shortenthestart-up phase. However,approved sending rate. * After the sender receives the first acknowledgement packet formoderate-sized connections inawell-provisioned environment,Quick-Startcould possibly allow the entire transfer of Mpacket, no more Quick-Start packets are sent. The sender adjusts its current congestion window or sending rate to becompletedconsistent with the actual amount of data that was transmitted inonethat round-triptime (after the initial round-trip time for the SYN exchange), instead of the log_2(M)-2 round-trip times that it would normally take for the data transfer, in an uncongested environments (assuming an initial window of four packets). 9.2. Costs of Quick-Start This section discusses the costs of Quick-Start for the connection and for the routers alongtime. * When thepath. The cost of having alast Quick-Start packetdropped: Foris acknowledged, the senderthe biggest risk incontinues usingQuick-Start lies in the possibility of suffering from congestion-related losses oftheQuick-Start packets. This should be an unlikely situation because routers are expected to approve Quick-Start Requests only when they are significantly underutilized. However, a transient increase in cross-traffic in onestandard congestion control mechanisms ofthe routers, a sudden decrease in available bandwidth onthat protocol. * If one of thelinks, or congestion at a non-IP queue could result in packet losses even when the Quick-Start Request was approved by all of the routers along the path. If aQuick-Startpacketpackets isdropped,lost, then the sender reverts to the standard congestion controlmechanisms itmethod of that protocol that would have been used if the Quick-Start request had not beenapproved, soapproved. In addition, theperformance cost tosender takes into account the information that theconnection of having aQuick-Startpacket dropped is small, compared tocongestion window was too large (e.g., by decreasing ssthresh in TCP). 8. Using Quick-Start 8.1. Determining theperformance without Quick-Start. (OnRate to Request As discussed in [SAF06], theother hand,data sender does not necessarily have information about theperformance difference between Quick-Start with a Quick-Start packet dropped and Quick- Start with no Quick-Start packet dropped can be considerable.) Added complexity at routers: The main costsize ofQuick-Startthe data transfer atrouters concernsconnection initiation; for example, in request-response protocols such as HTTP, thecostsserver doesn't know the size or name ofadded complexity. The added complexity attheend-points is moderate, and might easily be outweighed byrequested object during connection initiation. [SAF06] explores some of thebenefitperformance implications of overly-large Quick-Start requests, and discusses heuristics that end-nodes could use to size their requests appropriately. For example, theend hosts. The added complexity at the routers is also somewhat moderate; it involves estimatingsender might have information about theunusedbandwidthon the output link overof thelast several seconds, processinglast-mile hop, theQuick-Start request, and keeping a countersize of theaggregate Quick-Start rate approved over the last fractionlocal socket buffer, or ofa second. However, this added complexity at routers adds tothedevelopment cycle,TCP receive window, and couldpreventuse this information in determining theaddition of other competing functionalityrate torouters. Thus, careful thought wouldrequest. Web servers that mostly have small objects tobe giventransfer might decide not tothe addition ofuse Quick-Startto IP. The slow path in routers: Another drawbackat all, since Quick-Start would be of little benefit to them. Quick-Startiswill be more effective if Quick-Start requests are not larger than necessary; every Quick-Start request thatpackets containingis approved but not used (or not fully used) takes away from the bandwidth pool available for granting successive Quick-Start requests. 8.2. Deciding the Permitted Rate Requestmessageat a Router In this section we briefly outline how a router might decide whether or nottake the fast path in routers, particularly into approve a Quick-Start Request. The router should ask thebeginning of Quick-Start's deployment infollowing questions: * Has theInternet. This would mean some extra delayrouter's output link been underutilized for some time (e.g., several seconds). * Would theend hosts, and extra processing burden foroutput link remain underutilized if therouters. However, as discussed in Sections 4.1 and 4.6, not all packets would carryarrival rate was to increase by theQuick-Start option. In addition, foraggregate rate requests that theunderutilized links where Quick-Start Requests could actually be approved, or in typical environments where most ofrouter has approved over thepackets belonglast fraction of a second? In order tolarge flows,answer theburdenlast question, the router must have some knowledge of theQuick-Start Optionavailable bandwidth onrouters would be considerably reduced. Nevertheless, it is still conceivable, intheworst case, that many packets would carryoutput link and of the Quick-Startrequests; thisbandwidth that couldslow down the processing ofarrive due to recently-approved Quick-Startpackets in routers considerably. As discussed in Section 9.6, routers can easily protect againstRequests. In thisby enforcingway, if an underutilized router experiences alimit onflood of Quick-Start requests, therate at whichrouter can begin to deny Quick-Start requestswill be considered. [RW03] and [RW04] contain measurements ofwhile theimpact of IP Option Processing on packet round-trip times. Multiple paths: One limitation of Quick-Startoutput link isthat it presumes thatstill underutilized. A simple way for thedata packetsrouter to keep track ofa connection will follow the same path astheQuick-Start request packet. If thispotential bandwidth from recently-approved requests isnot the case, thento maintain two counters, one for theconnection could be sendingtotal aggregate Rate Requests that have been approved in theQuick-Start packets, atcurrent time interval [T1, T2], and one for the total aggregate Rate Requests approvedrate, along a path that was already congested, or that became congested asover aresult ofprevious time interval [T0, T1]. However, thisconnection. Thus, Quick-Start could give poor performance when there is a routing change immediately afterdocument doesn't specify router algorithms for approving Quick- Start requests, or make requirements for the appropriate time intervals for remembering the aggregate approved Quick-Startrequestbandwidth. A possible router algorithm isapproved,given in Appendix E, and more discussion of these issues is available in [SAF06].) * If theQuick-Start data packets follow a different path from thatrouter's output link has been underutilized and the aggregate of theoriginalQuick-StartRequest. This is, however, similarRequest Rate options granted is low enough towhat would happen, forprevent aconnection with sufficient data, ifnear-term bandwidth shortage, then theconnection's path was changed inrouter could approve themiddleQuick-Start Request. Section 10.2 discusses some of theconnection, whenimplementation issues in processing Quick-Start requests at routers. [SAF06] discusses theconnection had already establishedrange of possible Quick-Start algorithms at theallowed initial rate. Arouterthat uses multipath routingforpackets within a single connection MUST NOTdeciding whether to approve a Quick-Start request.Quick-Start would not perform robustly in an environment with multipath routing, where different packets in a connection routinely follow different paths.Insuch an environment,order to explore theQuick-Start request and some fractionlimits of thepackets in the connection might take an underutilized path, while the rest of the packets take an alternate, congested path. Non-IP queues: A problem of any mechanism for feedback from routerspossible functionality at routers, [SAF06] also discusses Extreme Quick-Start mechanisms at routers, where theIP level is that there can be queues and bottlenecks in the end-to-end path that are not in IP-level routers. As an example, these include queues in layer-two Ethernet or ATM networks. One possibility would be that an IP-levelrouteradjacent to such a non-IP queue or bottleneck would be configured to reject Quick-Start requests if that was appropriate. Onewouldhope that in general, IP networks are configured so that non-IP queues between IP routers do not end up being the congested bottlenecks. 9.3.keep per-flow state concerning approved Quick-Startwith QoS-enabled Traffic The discussion in this document has largely beenrequests. 9. Evaluation of Quick-Startwith default, best-effort traffic. However, Quick-Start could also be used by traffic using some form9.1. Benefits ofdifferentiated services, and routers could take the traffic class into account when deciding whether or not to grant theQuick-Startrequest. We don't address this context further in this paper, since it is orthogonal to the specificationThe main benefit ofQuick-Start. Routers are also free to take into account their own priority classifications in processingQuick-Startrequests. 9.4. Protection against Misbehaving Nodes In this section we discussis theprotection against senders, receivers, or colluding routers or middleboxes lying aboutfaster start-up for theQuick-Start Request. 9.4.1. Misbehaving Senders Atransportsender could tryconnection itself. For a small TCP transfer of one totransmit datafive packets, Quick-Start is probably of very little benefit; ata higher rate than that approved inbest, it might shorten theQuick-Start Request. The network could use a traffic policerconnection lifetime from three toprotect against misbehaving senders that exceedtwo round-trip times (including theapproved rate,round-trip time forexample by dropping packets that exceedconnection establishment). Similarly, for a very large transfer, where theallowed transmission rate. The required Reportslow-start phase would have been only a small fraction ofApproved Rate allows traffic policers to check thattheReportconnection lifetime, Quick-Start would be ofApproved Rate doeslimited benefit. Quick-Start would notexceedsignificantly shorten theRate Request actually approvedconnection lifetime, but it might eliminate or atthat point inleast shorten thenetworkstart-up phase. However, for moderate-sized connections inthe previousa well-provisioned environment, Quick-StartRequest from that connection. The required Approved Rate report also allows traffic policers to check that the sender's sending rate does not exceedcould possibly allow therateentire transfer of M packets to be completed in one round-trip time (after theReportinitial round-trip time for the SYN exchange), instead ofApproved Rate. If a router or receiver receives an Approved Rate reportthe log_2(M)-2 round-trip times thatis larger thanit would normally take for theRate Requestdata transfer, in an uncongested environments (assuming an initial window of four packets). 9.2. Costs of Quick-Start This section discusses the costs of Quick-Startrequest approved for that senderforthatthe connectioninand for theprevious round-trip time, thenrouters along therouter or receiver could deny futurepath. The cost of having a Quick-Startrequests from that sender, e.g., by deletingpacket dropped: For the sender the biggest risk in using Quick-StartRequest from future packetslies in the possibility of suffering fromthat sender. We note thatcongestion-related losses of the Quick-Start packets. This should be an unlikely situation because routers arenot required to use Approved Rate reportsexpected tocheck if sendersapprove Quick-Start Requests only when they arecheating; this issignificantly underutilized. However, a transient increase in cross-traffic in one of the routers, a sudden decrease in available bandwidth on one of the links, or congestion at a non-IP queue could result in packet losses even when thediscretionQuick-Start Request was approved by all of therouter.routers along the path. If arouter sees a Report of Approved Rate, and did not see an earlierQuick-Startrequest,packet is dropped, theneitherthe sendercould be cheating, orreverts to theconnection's path couldcongestion control mechanisms it would havechanged sinceused if the Quick-Start requestwas sent. In either case,had not been approved, so therouter could decideperformance cost todeny futurethe connection of having a Quick-Startrequests for this connection. In particular, itpacket dropped isreasonable for the routersmall, compared todenythe performance without Quick-Start. (On the other hand, the performance difference between Quick-Start with a Quick-Startrequest if eitherpacket dropped and Quick- Start with no Quick-Start packet dropped can be considerable.) Added complexity at routers: The main cost of Quick-Start at routers concerns thesendercosts of added complexity. The added complexity at the end-points ischeating, or ifmoderate, and might easily be outweighed by theconnection path suffers from path changes or multi-pathing. If a router approved abenefit of Quick-StartRequest, but does not see a subsequent Approved Rate report, then there areto the end hosts. The added complexity at the routers is also somewhat moderate; it involves estimating the unused bandwidth on the output link over the last severalpossibilities: (1)seconds, processing therequest was denied and/or dropped downstreamQuick-Start request, andthe sender did not sendkeeping aReportcounter ofApproved Rate; (2)therequest wasaggregate Quick-Start rate approvedbutover thesender did not sendlast fraction of aReportsecond. However, this added complexity at routers adds to the development cycle, and could prevent the addition ofApproved Rate; (3)other competing functionality to routers. Thus, careful thought would have to be given to theApproved Rate report was droppedaddition of Quick-Start to IP. The slow path in routers: Another drawback of Quick-Start is that packets containing thenetwork; or (4)Quick-Start Request message might not take theApproved Rate report took a differentfast pathfromin routers, particularly in theQuick-Start Request. In anybeginning ofthese cases,Quick-Start's deployment in therouterInternet. This wouldbe justifiedmean some extra delay for the end hosts, and extra processing burden for the routers. However, as discussed indenying futureSections 4.1 and 4.7, not all packets would carry the Quick-StartRequests for this connection.option. Inany ofaddition, for thecases mentionedunderutilized links where Quick-Start Requests could actually be approved, or in typical environments where most of thethree paragraphs above (i.e., an Approved Rate report that is larger thanpackets belong to large flows, theRate Request inburden of theearlierQuick-Startrequest; a Report of Approved Rate with no preceding Rate Request, or a Rate Request with no Report of Approved Rate), a traffic policer may assume that Quick-Start is not being used appropriately, orOption on routers would be considerably reduced. Nevertheless, it isbeing usedstill conceivable, inan unsuitable environment (e.g., with multiple paths), and take some corresponding action. What aretheincentives for a sender to cheat by over-sending after a Quick-Start request? Assumingworst case, that many packets would carry Quick-Start requests; this could slow down thesender's interests are measuredprocessing of Quick-Start packets in routers considerably. As discussed in Section 9.6, routers can easily protect against this by enforcing aperformance metric such aslimit on thecompletion time for its connections, sometimes it mightrate at which Quick-Start requests will bein the sender's interests to cheat,considered. [RW03] andsometimes it might not; in some cases it could be difficult for[RW04] contain measurements of thesender to judge whetherimpact of IP Option Processing on packet round-trip times. Multiple paths: One limitation of Quick-Start is that itwould be in its interests to cheat. The incentives for a sender to cheat by over- sending afterpresumes that the data packets of a connection will follow the same path as the Quick-Start requestarepacket. If this is notthat different fromtheincentives for a sender to cheat by over-sending even incase, then theabsence of Quick-Start, with one difference:connection could be sending theuseQuick-Start packets, at the approved rate, along a path that was already congested, or that became congested as a result of this connection. Thus, Quick-Start couldhelpgive poor performance when there is asender to evade policing actions from policers inrouting change immediately after thenetwork. The Report of Approved Rate is designed to address this, to make it harder to senders to useQuick-Startto `cover' their cheating. 9.4.2. Receivers Lying about Whetherrequest is approved, and theRequest was Approved One formQuick-Start data packets follow a different path from that ofmisbehaviorthe original Quick-Start Request. This is, however, similar to what wouldbehappen, for a connection with sufficient data, if thereceiver to lie toconnection's path was changed in thesender about whethermiddle of theQuick-Start Request was approved, by falsely reportingconnection, when theTTL Diff and QS Nonce. Ifconnection had already established the allowed initial rate. As specified in Section 3.3, a router thatunderstands theuses multipath routing for packets within a single connection must not approve a Quick- Start request. Quick-StartRequest denies the request by deletingwould not perform robustly in an environment with multipath routing, where different packets in a connection routinely follow different paths. In such an environment, the Quick-Start requestor by zeroing the QS TTLandQS Nonce, thensome fraction of thereceiver can ``lie" about whetherpackets in therequest was approved only by successfully guessingconnection might take an underutilized path, while thevaluerest of theTTL Diff and QS Nonce to report. The chancepackets take an alternate, congested path. Non-IP queues: A problem ofthe receiver successfully guessing the correct valueany mechanism for feedback from routers at theTTL DiffIP level is1/256,that there can be queues and bottlenecks in thechance of the receiver successfully guessing the QS nonce forend-to-end path that are not in IP-level routers. As an example, these include queues in layer-two Ethernet or ATM networks. One possibility would be that an IP-level router adjacent to such areported rate request of K is 1/(2K). However,non-IP queue or bottleneck would be configured to reject Quick-Start requests if that was appropriate. One would hope that in general, IP networks are configured so that non-IP queues between IP routers do not end up being the congested bottlenecks. 9.3. Quick-Startrequest is denied onlywith QoS-enabled Traffic The discussion in this document has largely been of Quick-Start with default, best-effort traffic. However, Quick-Start could also be used bya non-Quick- Start-capable router,traffic using some form of differentiated services, and routers could take the traffic class into account when deciding whether orby a router thatnot to grant the Quick-Start request. We don't address this context further in this paper, since it isunableorthogonal tozerotheQS TTL and QS Nonce fields, thenspecification of Quick-Start. Routers are also free to take into account their own priority classifications in processing Quick-Start requests. 9.4. Protection against Misbehaving Nodes In this section we discuss thereceiver could lieprotection against senders, receivers, or colluding routers or middleboxes lying aboutwhetherthe Quick-StartRequests wereRequest. 9.4.1. Misbehaving Senders A transport sender could try to transmit data at a higher rate than that approvedby modifying the QS TTLinsuccessive requests received fromthesame host. In particular, ifQuick-Start Request. The network could use a traffic policer to protect against misbehaving senders that exceed thesenderapproved rate, for example by dropping packets that exceed the allowed transmission rate. The required Report of Approved Rate allows traffic policers to check that the Report of Approved Rate does notact on a Quick-Start Request, thenexceed thereceiver could decrementRate Request actually approved at that point in theQS TTL by onenetwork in thenext request receivedprevious Quick-Start Request from thathost before calculatingconnection. The required Approved Rate report also allows traffic policers to check that theTTL Diff, and decrementsender's sending rate does not exceed theQS TTL by tworate in thefollowing received request, until the sender acts on oneReport ofthe Quick-Start Requests. Unfortunately, ifApproved Rate. If a routerdoesn't understand Quick-Start, then itor receiver receives an Approved Rate report that isnot possiblelarger than the Rate Request in the Quick-Start request approved for thatrouter to take an active step such as zeroingsender for that connection in theQS TTL and QS Nonce toprevious round-trip time, then the router or receiver could denya request. As a result,future Quick-Start requests from that sender, e.g., by deleting theQS TTL isQuick-Start Request from future packets from that sender. We note that routers are nota fail-safe mechanism for preventing lying by receivers inrequired to use Approved Rate reports to check if senders are cheating; this is at thecasediscretion ofnon-Quick-Start-capable routers. What would betheincentives forrouter. If areceiver to cheat in reporting onrouter sees a Report of Approved Rate, and did not see an earlier Quick-Start request,inthen either theabsence of a mechanism such assender could be cheating, or theQS Nonce? In some cases, cheating wouldconnection's path could havebeen of clear benefit to the receiver, resulting in a faster completion time forchanged since thetransfer. In other cases, where cheating would have resulted inQuick-Startpackets being dropped in the network, cheating might or might not have improved the receiver's performance metric, depending on the details of that particular scenario. 9.4.3. Receivers Lying aboutrequest was sent. In either case, theApproved Rate A second form of receiver misbehavior would berouter could decide to deny future Quick-Start requests for this connection. In particular, it is reasonable for thereceiver to lierouter to deny a Quick-Start request if either the senderaboutis cheating, or if theRate Request for anconnection path suffers from path changes or multipathing. If a router approved a Quick-Start Request,by increasing the value of the Rate Request field. However, the receiver doesn't necessarily know thebut does not see a subsequent Approved RateRequest in the original Quick-Start Request sent byreport, then there are several possibilities: (1) thesender,request was denied and/or dropped downstream and the sender did not send ahigher Rate Request reported byReport of Approved Rate; (2) thereceiver will only be considered valid byrequest was approved but the senderif it is no higher thandid not send a Report of Approved Rate; (3) the Approved RateRequest originally requested byreport was dropped in thesender. For example, ifnetwork; or (4) thesender sends a Quick- Start Request with aApproved RateRequest of X, and the receiver reports receivingreport took a different path from the Quick-StartRequest with a Rate RequestRequest. In any ofY > X, thenthese cases, thesender knows that either somerouteralongwould be justified in denying future Quick-Start Requests for this connection. In any of thepath malfunctioned (increasingcases mentioned in the three paragraphs above (i.e., an Approved RateRequest inappropriately), or the receiverreport that islying aboutlarger than the Rate Request in thereceived packet. If the sender sends aearlier Quick-StartRequest withrequest; aRate RequestReport ofZ, the receiver receives the Quick-Start RequestApproved Rate withan approvedno preceding RateRequest of X, and reportsRequest, or a Rate Request with no Report ofY, for X < Y <= Z, then the receiver only succeedsApproved Rate), a traffic policer may assume that Quick-Start is not being used appropriately, or is being used inlying toan unsuitable environment (e.g., with multiple paths), and take some corresponding action. What are the incentives for a senderabout the approved rate ifto cheat by over-sending after a Quick-Start request? Assuming that thereceiver successfully reportssender's interests are measured by a performance metric such as therightmost 2Y bitscompletion time for its connections, sometimes it might be in theQS nonce. If senders often use a configured default valuesender's interests to cheat, and sometimes it might not; in some cases it could be difficult for theRate Request, then receiverssender to judge whether it wouldoftenbeablein its interests toguess the original Rate Request, and this would make it easiercheat. The incentives forthe receivera sender tolie about the value of the Rate Request field. Similarly, if the receiver often communicates withcheat by over- sending after aparticular sender, and the sender always uses the same Rate Request forQuick-Start request are not thatreceiver, thendifferent from thereceiver might over time be ableincentives for a sender toinfer the original Rate Request usedcheat by over-sending even in thesender. There are several possible additional formsabsence ofprotection against receivers lying aboutQuick-Start, with one difference: thevalueuse ofthe Rate Request. One possible additional protection would be for a router that decreases a Rate Request in aQuick-StartRequestcould help a sender toreportevade policing actions from policers in thedecrease directlynetwork. The Report of Approved Rate is designed tothe sender. However, this could leadaddress this, tomany reports backmake it harder to senders to use Quick-Start to `cover' their cheating. 9.4.2. Receivers Lying about Whether thesender for a single request, and could also be used in address- spoofing attacks. A second limitedRequest was Approved One form ofprotectionmisbehavior would be forsenders to use some degree of randomization intherequested Rate Request, so that it is difficult for receiversreceiver toguess the original value for the Rate Request. However, this is difficult because there is a fairly coarse granularity in the set of rate requests availablelie to thesender, and randomizingsender about whether theinitial request only offers limited protection in any case. 9.4.4. Collusion between Misbehaving Routers In addition to protecting against misbehaving receivers, it is necessary also to protect against misbehaving routers. Consider collusion between an ingress router and an egress router belonging toQuick-Start Request was approved, by falsely reporting thesame Intranet. The ingressTTL Diff and QS Nonce. If a routercould decrementthat understands theRateQuick-Start Requestat the ingress, withdenies theegress router increasing it again atrequest by deleting theegress. The routers betweenrequest or by zeroing theingressQS TTL andegress that approvedQS Nonce, then the receiver can ``lie" about whether thedecremented raterequestmight not have been willing to approvewas approved only by successfully guessing thelarger, original request. Another formvalue ofcollusion would be fortheingress routerTTL Diff and QS Nonce toinform the egress router out-of-bandreport. The chance of the receiver successfully guessing the correct value for the TTL Diff is 1/256, and the chance of the receiver successfully guessing the QSNoncenonce forthea reported rate requestpacket at the ingress. This would enableof K is 1/(2K). However, if theegressQuick-Start request is denied only by a non-Quick- Start-capable router, or by a router that is unable tomodifyzero the QS TTL and QS Nonceso that it appeared that all offields, then therouters alongreceiver could lie about whether thepath hadQuick-Start Requests were approved by modifying therequest. ThereQS TTL in successive requests received from the same host. In particular, if the sender does notappear to be any protection againstact on acolluding ingress and egress router. Even if an intermediate router had deleted theQuick-StartOption from the packet,Request, then theingress routerreceiver couldhave sent the Quick-Start Option to the egress router out-of-band, with the egress router insertingdecrement theQuick-Start Option, with a modifiedQS TTLfield, backby one in thepacket. However, unlike ECN, there is somewhat less incentive for cooperating ingressnext request received from that host before calculating the TTL Diff, andegress routers to collude to falsely modifydecrement theQuick-Start Request so that it appears to have been approvedQS TTL byall oftwo in therouters alongfollowing received request, until thepath. With ECN, a colluding ingress router could falsely mark a packet as ECN-capable, withsender acts on one of thecolluding egressQuick-Start Requests. Unfortunately, if a routerreturning the ECN field in the IP header to its original non-ECN-capable codepoint, and congested routers along the path could have been fooled intodoesn't understand Quick-Start, then it is notdroppingpossible for thatpacket. This collusion would give an unfair competitive advantagerouter to take an active step such as zeroing thetraffic protected by the colluding ingress and egress routers. In contrast, with Quick-Start, the collusion of the ingressQS TTL andegress routersQS Nonce tomake it falsely appear thatdeny aQuick-Start request was approved sometimes could give an advantage torequest. As a result, thetraffic coveredQS TTL is not a fail-safe mechanism for preventing lying bythat collusion, and sometimesreceivers in the case of non-Quick-Start-capable routers. What wouldgivebe the incentives for adisadvantage, dependingreceiver to cheat in reporting on a Quick-Start request, in thedetailsabsence of a mechanism such as thescenario. IfQS Nonce? In somerouter along the path really does notcases, cheating would haveenough available bandwidthbeen of clear benefit toapprovetheQuick-Start request, then Quick-Start packets sent asreceiver, resulting in aresult offaster completion time for thefalsely-approved request could betransfer. In other cases, where cheating would have resulted in Quick-Start packets being dropped in the network,to the possible disadvantage ofcheating might or might not have improved theconnection. Thus, whilereceiver's performance metric, depending on theingress and egress routers could collude to prevent intermediate routers from denying a Quick-Start request, it would not always be todetails of that particular scenario. 9.4.3. Receivers Lying about theconnection's advantage for this to happen. One defense against such a collusionApproved Rate A second form of receiver misbehavior would be forsome router between the ingress and egress nodes that deniedtherequestreceiver tomonitor connection performance, penalizing connections that seeemlie tobe using Quick-Start after a Quick-Start request was denied, or that are reporting an Approvedthe sender about the Ratehigher than that actuallyRequest for an approved Quick-Start Request, bythat router. Ifincreasing thecongested router is ECN-capable, andvalue of thecolluding ingress and egress routers are lying about ECN-capability as well as about Quick-Start, thenRate Request field. However, theresult could be thatreceiver doesn't necessarily know the Rate Request in the original Quick-Startrequest falsely appears toRequest sent by thesender to have been approved,sender, andthe Quick- Start packets falsely appear to the congested router to be ECN- capable. In this case, the colluding routers might succeed in givingacompetitive advantage tohigher Rate Request reported by thetraffic protectedreceiver will only be considered valid bytheir collusion (if no intermediate router is monitoring to catch such misbehavior). 9.5. Misbehaving Middleboxes andtheIP TTL One possible difficultysender if it isthatno higher than the Rate Request originally requested by the sender. For example, if the sender sends a Quick- Start Request with a Rate Request oftraffic normalizers [HKP01] or other middleboxes alongX, and the receiver reports receiving a Quick-Start Request with a Rate Request of Y > X, then the sender knows that either some router along the paththat re-write IP TTLs in order to foil other kinds of attacksmalfunctioned (increasing the Rate Request inappropriately), or the receiver is lying about the Rate Request in thenetwork.received packet. Ifsuchthe sender sends atraffic normalizer re-wroteQuick-Start Request with a Rate Request of Z, theIP TTL, but did not adjustreceiver receives the Quick-StartTTL by the same amount,Request with an approved Rate Request of X, and reports a Rate Request of Y, for X < Y <= Z, then thesender's mechanism for determining ifreceiver only succeeds in lying to the sender about therequest wasapprovedby all routers alongrate if thepath would no longer be reliable. Re-writingreceiver successfully reports theIP TTL could resultrightmost 2Y bits infalse positives (withthesender incorrectly believing thatQS nonce. If senders often use a configured default value for theQuick- Start request was approved) as well as false negatives (withRate Request, then receivers would often be able to guess thesender incorrectly believing thatoriginal Rate Request, and this would make it easier for theQuick-Start request was denied). 9.6. Attacks on Quick-Start As discussed in [SAF06], Quick-Start is vulnerablereceiver totwo kindslie about the value ofattacks: (1) attacks to increasetherouters' processing and state load; and (2) attacksRate Request field. Similarly, if the receiver often communicates withbogus Quick-Start requestsa particular sender, and the sender always uses the same Rate Request for that receiver, then the receiver might over time be able totemporarily tie up available Quick-Start bandwidth, preventing routers from approving Quick-Start requests from other connections. Routers can protectinfer the original Rate Request used by the sender. There are several possible additional forms of protection against receivers lying about thefirst kindvalue ofattack by applying a simple limit ontherate at which Quick-Start requests willRate Request. One possible additional protection would beconsidered byfor a router that decreases a Rate Request in a Quick-Start Request to report therouter. The second kind of attack,decrease directly totie uptheavailable Quick-Start bandwidth, is more difficultsender. However, this could lead todefend against. As discussed in [SAF06]. Quick-Start Requests that are not goingmany reports back to the sender for a single request, and could also beused, either because they are from malicious attackers or because they are denied by routers downstream, can result in short-term `wasting' potential Quick-Start bandwidth, resulting in routers denying subsequent Quick-Start Requests that if approved wouldused infact have been used. We note that the likelihoodaddress- spoofing attacks. A second limited form ofmalicious attacksprotection would beminimized significantly when Quick-Start was deployed in a controlled environment such as an Intranet, where there wasfor senders to use someformdegree ofcentralized control over the usersrandomization in thesystem. We also note that this form of attack could potentially make Quick-Start unusable, butrequested Rate Request, so that itwould not do any further damage; in the worst case, the network would function as a network without Quick-Start. [SAF06] considersis difficult for receivers to guess thepotential of Extreme Quick-Start algorithms at routers, which keep per-flow stateoriginal value forQuick-Start connections, in protectingtheavailability of Quick-Start bandwidthRate Request. However, this is difficult because there is a fairly coarse granularity in thefaceset offrequent overly-larqe Quick-Start requests. 9.7. Simulations with Quick-Start Quick-Start was addedrate requests available to theNS simulator [SH02] by Srikanth Sundarrajan,sender, andadditional functionality was added by Pasi Sarolahti. The validation test is at `test-all-quickstart' inrandomizing the`tcl/test' directory in NS. Theinitialsimulation studies from [SH02] show a significant performance improvement using Quick-Start for moderate-sized flows (between 4KB and 128KB)request only offers limited protection inunder-utilized environments. These studies are of file transfers, with the improvement measured asany case. 9.4.4. Collusion between Misbehaving Routers In addition to protecting against misbehaving receivers, it is necessary also to protect against misbehaving routers. Consider collusion between an ingress router and an egress router belonging to therelative increase insame Intranet. The ingress router could decrement theoverall throughput forRate Request at thefile transfer. The study shows that potential improvement from Quick-Start is proportional toingress, with thedelay-bandwidth product ofegress router increasing it again at thepath.egress. TheQuick-Start simulations in [SAF06] explorerouters between thefollowing:ingress and egress that approved thepotential benefitdecremented rate request might not have been willing to approve the larger, original request. Another form ofQuick-Startcollusion would be for theconnection;ingress router to inform therelative benefitsegress router out-of-band ofdifferent router-based algorithms for approving Quick- Start requests;the TTL Diff and QS Nonce for theeffectiveness of Quick-Start as a function ofrequest packet at thesenders' algorithms for choosingingress. This would enable thesize ofegress router to modify therate request. 10. ImplementationQS TTL andDeployment Issues This section discusses someQS Nonce so that it appeared that all of theimplementation issues with Quick- Start. This section also discusses some ofrouters along thekey deployment issues, such aspath had approved thechicken-and-egg deployment problems of mechanisms that haverequest. There does not appear to bedeployed in both routers and end nodes in order to work,any protection against a colluding ingress and egress router. Even if an intermediate router had deleted theproblems posed by the wide deployment of middleboxes today that block the use of known or unknown IP Options. 10.1. Implementation Issues for SendingQuick-StartRequests Section 4.6 discusses some of the issues with decidingOption from theinitial sending rate to request. Quick-Start raises additional issues aboutpacket, thecommunication betweeningress router could have sent thetransport protocol andQuick-Start Option to theapplication, and aboutegress router out-of-band, with theuse ofegress router inserting thepast history withQuick-Start Option, with a modified QS TTL field, back in theend node. One possibilitypacket. However, unlike ECN, there isthat a protocol implementation could provide an APIsomewhat less incentive forapplicationscooperating ingress and egress routers toindicate when they wantcollude torequest Quick- Start, and what rate they would likefalsely modify the Quick-Start Request so that it appears torequest. Inhave been approved by all of theconventional socket API this could berouters along the path. With ECN, asocket option that is set beforecolluding ingress router could falsely mark aconnection is established. Some applications, suchpacket asthose that use TCP for bulk transfers, do not have interest inECN-capable, with thetransmission rate, but they might knowcolluding egress router returning theamount of data that can be sent immediately. Based on this,ECN field in thesender implementation could decide whether Quick-Start would be useful,IP header to its original non-ECN-capable codepoint, andwhat rate should be requested. We note that when Quick-Start is used,congested routers along theTCP sender is requiredpath could have been fooled into not dropping that packet. This collusion would give an unfair competitive advantage tosavetheQS Noncetraffic protected by the colluding ingress and egress routers. In contrast, with Quick-Start, theTTL Diff whencollusion of theQuick-Start request is sent,ingress and egress routers toimplementmake it falsely appear that a Quick-Start request was approved sometimes could give anadditional timer foradvantage to thepaced transmissiontraffic covered by that collusion, and sometimes would give a disadvantage, depending on the details ofQuick-Start packets. 10.2. Implementation Issues for Processing Quick-Start Requests Athe scenario. If some routeror other network host must be able to determinealong theapproximatepath really does not have enough available bandwidthof its outbound network interfaces in ordertoprocess incomingapprove the Quick-Startrate requests, including those that originate fromrequest, then Quick-Start packets sent as a result of thehost itself. One possibility wouldfalsely-approved request could befor hosts to rely on configuration informationdropped in the network, todetermine link bandwidths; this hasthedrawbackpossible disadvantage ofnot being robust to errors in configuration. Another possibility would be for network device drivers to inferthebandwidth forconnection. Thus, while theinterfaceingress and egress routers could collude tocommunicate thisprevent intermediate routers from denying a Quick-Start request, it would not always be to theIP layer. Particular issues will ariseconnection's advantage forwireless links with variable bandwidth, where decisions will havethis to happen. One defense against such a collusion would bemade about how frequentlyfor some router between thehost gets updates ofingress and egress nodes that denied thechanging bandwidth. It seems appropriaterequest to monitor connection performance, penalizing connections thatQuick-Start Requests would be handled particularly conservatively for links with variable bandwidth,seeem toavoid cases wherebe using Quick-StartRequestsafter a Quick-Start request was denied, or that areapproved,reporting an Approved Rate higher than that actually approved by that router. If thelink bandwidthcongested router isreduced,ECN-capable, and thedata packets thatcolluding ingress and egress routers aresent end up being dropped. Difficult issues also arise for paths with multi-access links (e.g., Ethernet). Routers or end-nodes with multi-access links shouldlying about ECN-capability as well as about Quick-Start, then the result could beparticularly conservative in grantingthat the Quick-Startrequests. In particular, for some multi-access links there may be no procedure for an attached node to userequest falsely appears todetermine whether all parts ofthemulti-access linksender to have beenunderutilized inapproved, and therecent past. 10.3. Possible Deployment Scenarios Because of possible problems discussed above concerning usingQuick- Startover some network paths andpackets falsely appear to thesecurity issues discussed in section 11 ,congested router to be ECN- capable. In this case, themost realistic initial deployment of Quick-Start would most likely take placecolluding routers might succeed inIntranetsgiving a competitive advantage to the traffic protected by their collusion (if no intermediate router is monitoring to catch such misbehavior). 9.5. Misbehaving Middleboxes andother controlled environments. Quick-Startthe IP TTL One possible difficulty ismost useful on high bandwidth-delay pathsthatare significantly underutilized. The primary initial usersofQuick-Start would likely be in organizationstraffic normalizers [HKP01] or other middleboxes along thatprovide network servicespath that re-write IP TTLs in order totheir users and also have control over a large portionfoil other kinds of attacks in thenetwork path. Quick-Start isnetwork. If such a traffic normalizer re-wrote the IP TTL, but did notcurrently intended for ubiquitous deployment inadjust theglobal Internet. In particular,Quick-Startshould not be enabledTTL bydefault in end-nodes or in routers; instead, when Quick- Start is used, it should be explicitly enabledthe same amount, then the sender's mechanism for determining if the request was approved byusers or system administrators. Below are a few examples of networking environments where Quick- Startall routers along the path wouldpotentiallyno longer beuseful. These arereliable. Re-writing theenvironments that might consider an initial deployment of Quick-StartIP TTL could result in false positives (with therouters and end-nodes, wheresender incorrectly believing that theincentives for routers to deployQuick- Startmight berequest was approved) as well as false negatives (with themost clear. * Centrally-administrated organizational Intranets: These intranets often have large network capacity, with networkssender incorrectly believing thatare underutilized for muchthe Quick-Start request was denied). 9.6. Attacks on Quick-Start As discussed in [SAF06], Quick-Start is vulnerable to two kinds of attacks: (1) attacks to increase thetime [PABL+05]. Such Intranets might also include high-bandwidthrouters' processing andhigh-delay pathsstate load; and (2) attacks with bogus Quick-Start requests toremote sites. In such an environment,temporarily tie up available Quick-Startwould bebandwidth, preventing routers from approving Quick-Start requests from other connections. Routers can protect against the first kind ofbenefit to users, and there would beattack by applying aclear incentive forsimple limit on thedeploymentrate at which Quick-Start requests will be considered by the router. The second kind ofQuick- Startattack, to tie up the available Quick-Start bandwidth, is more difficult to defend against. As discussed inrouters. For example,[SAF06]. Quick-StartcouldRequests that are not going to bequite usefulused, either because they are from malicious attackers or because they are denied by routers downstream, can result inhigh-bandwidth networks used for scientific computing. * Wireless networks:short-term `wasting' potential Quick-Startcould also be usefulbandwidth, resulting inhigh-delay environmentsrouters denying subsequent Quick-Start Requests that if approved would in fact have been used. We note that the likelihood ofCellular Wide-Area Wireless Networksmalicious attacks would be minimized significantly when Quick-Start was deployed in a controlled environment such asthe GPRS [BW97] and their enhancements and next generations. For example, GPRS EDGE (Enhanced Data for GSM Evolution) is expected to provide wireless bandwidthan Intranet, where there was some form ofup to 384 Kbps (roughly 32 1500-byte packets per second) while the GPRS round-trip times range typically from few hundred milliseconds tocentralized control overa second excluding any possible queueing delaysthe users in thenetwork [GPAR02]. In addition, these networks sometimes have variable additional delays due to resource allocationsystem. We also note that this form of attack couldbe avoided by keepingpotentially make Quick-Start unusable, but it would not do any further damage; in theconnection path constantly utilized, starting from initial slow-start. Thus, Quick- Start could beworst case, the network would function as a network without Quick-Start. [SAF06] considers the potential ofsignificant benefit to usersExtreme Quick-Start algorithms at routers, which keep per-flow state for Quick-Start connections, inthese environments. * Paths over satellite links: Geostationary Orbit (GEO) satellite links have one-way propagation delays onprotecting theorderavailability of250 ms while theQuick-Start bandwidthcan be measuredinmegabits per second [RFC2488]. Because oftheconsiderable bandwidth-delay product onface of frequent overly-larqe Quick-Start requests. 9.7. Simulations with Quick-Start Quick-Start was added to thelink, TCP's slow-startNS simulator [SH02] by Srikanth Sundarrajan, and additional functionality was added by Pasi Sarolahti. The validation test isa major performance limitationat `test-all-quickstart' in thebeginning of the connection. A large`tcl/test' directory in NS. The initialcongestion window would be useful to users of such satellite links. * Single-hop paths: Quick-Start should work well over point-to-point single-hop paths, e.g.,simulation studies from [SH02] show ahost to an adjacent server. Quick- Start would work over a single-hop IP path consistingsignificant performance improvement using Quick-Start for moderate-sized flows (between 4KB and 128KB) in under-utilized environments. These studies are ofa multi- access link only iffile transfers, with thehost was able to determine ifimprovement measured as thepathrelative increase in the overall throughput for the file transfer. The study shows that potential improvement from Quick-Start is proportional to thenext IP hop has been significantly underutilized overdelay-bandwidth product of therecent past. Ifpath. The Quick-Start simulations in [SAF06] explore themulti-access link includes a layer-2 switch, thenfollowing: theattached host cannot necessarily determinepotential benefit of Quick-Start for thestatusconnection; the relative benefits of different router-based algorithms for approving Quick- Start requests; and theother links ineffectiveness of Quick-Start as a function of thelayer-2 network. 10.4. A Comparison withsenders' algorithms for choosing theDeployment Problemssize ofECN Giventheglacially slowrate request. 10. Implementation and Deployment Issues This section discusses some ofdeployment of ECN intheInternet to date [MAF05], it is disconcerting to note thatimplementation issues with Quick- Start. This section also discusses some of the key deployment issues, such as the chicken-and-egg deployment problems ofQuick-Start are even greater than those of ECN. First, unlike ECN, which canmechanisms that have to beof benefit even if it is onlydeployedon one of thein both routersalongand end nodes in order to work, and theend-to-end path, a connection's use of Quick-Start requires Quick-Startproblems posed by the wide deploymenton allof middleboxes today that block therouters along the end-to-end path. Second, unlike ECN, which uses an allocated field in the IP header, Quick-Start requires the extra complicationsuse ofanknown or unknown IPOption, which can be difficult to pass through the current Internet [MAF05]. However, in spite of these issues, there is some hopeOptions. 10.1. Implementation Issues forthe deployment of Quick-Start, at least in protected cornersSending Quick-Start Requests Section 4.7 discusses some of theInternet, becauseissues with deciding thepotential benefits of Quick-Startinitial sending rate tothe user are considerably more dramatic than those of ECN. Rather than simply replacing the occasional dropped packet by an ECN-marked packet,request. Quick-Startis capable of dramatically increasing the throughput of connections in underutilized environments [SAF06]. 11. Security Considerations Sections 9.4 and 9.6 discussraises additional issues about thesecurity considerations related to Quick-Start. Section 9.4 discussescommunication between thepotential abuse of Quick- Start by senders or receivers lying about whethertransport protocol and therequest was approved orapplication, and about theapproved rate, anduse ofrouters in collusion to misuse Quick-Start. Section 9.5 discusses potential problemsthe past history withtraffic normalizers that rewrite IP TTLs in packet headers. All of these problems could resultQuick-Start in thesender using a Rate Request that was inappropriately large, or thinkingend node. One possibility is that arequest was approved when it was in fact denied by at least one router along the path. This inappropriate use of Quick-Startprotocol implementation couldresult in congestion andprovide anunacceptable level of packet drops alongAPI for applications to indicate when they want to request Quick- Start, and what rate they would like to request. In thepath, Such congestionconventional socket API this couldalsobepart ofaDenial of Service attack. Section 9.6 discussessocket option that is set before apotential attack onconnection is established. Some applications, such as those that use TCP for bulk transfers, do not have interest in therouters' processing and state load from an attacktransmission rate, but they might know the amount ofQuick-Start Requests. Section 9.6 also discusses a potential attackdata that can be sent immediately. Based on this, theavailable Quick-Start bandwidth by sending bogussender implementation could decide whether Quick-Startrequests for bandwidth that will not in factwould beused. While this impacts the global usability ofuseful, and what rate should be requested. We note that when Quick-Startit does not endangeris used, thenetwork as a whole sinceTCPuses standard congestion control if Quick-Startsender isnot available. Section 4.6.2 discussesrequired to save thepotential problem of packets with Quick- Start Requests dropped by middleboxes alongQS Nonce and thepath. As discussed in Section 5, for IPv4 IPsec Authentication Header Integrity Check Value (AH ICV) calculation,TTL Diff when the Quick-Startoption MUST be treated as a mutable IPv4 option,request is sent, andhence completely zeroedto implement an additional timer forAH ICV calculation purposes; this is alsothetreatment required by RFC 2402paced transmission of Quick-Start packets. 10.2. Implementation Issues forunrecognized IPv4 options. The IPv6 Quick- Start option's IANA-allocated option type indicates that it is a mutable option, hence, according to RFC 2402, its option data MUST be zeroed for AH ICV computation purposes. See RFC 2402 for further explanation. Section 6.2 discusses possible problems of Quick-Start used by connections carried over simple tunnels that are not compatible with Quick-Start. In this case it is possible that a Quick-Start Request is erroneously considered approved by the sender without the routers in the tunnel having individually approved the request, causing a false positive. We note two high-order points here. First, the Quick-Start Nonce goes a long way towards preventing large scale cheating. And, second, even if a host occasionally usesProcessing Quick-Startwhen it is not approved by the entireRequests A router or other networkpathhost must be able to determine the approximate bandwidth of its outbound networkwill not collapse. Quick-Start does not remove TCP's basic congestion control mechanisms and these will kickinterfaces inwhen the network is heavily loaded, relegating any Quick-Start mistakeorder toa transient. 12. IANA Considerations Quick-Start requires an IP Option and a TCP Option. 12.1. IP Optionprocess incoming Quick-Startrequiresrate requests, including those thatboth an IPv4 and an IPv6 Option Number be allocated. The IPv4 Option would have a copied flag of 0, a class field of 00, andoriginate from theassigned five-bit option number. The IPv6 Optionhost itself. One possibility wouldhavebe for hosts to rely on configuration information to determine link bandwidths; this has thefirst three bitsdrawback of"001" [RFC2460, Section 4.2], with the first two bits indicating that the IPv6 node skip over this option and continue processingnot being robust to errors in configuration. Another possibility would be for network device drivers to infer theheader if it doesn't recognizebandwidth for theoption type,interface and to communicate this to thethird bit indicating that the Option Data may change en-route. In both casesIP layer. Particular issues will arise for wireless links with variable bandwidth, where decisions will have to be made about how frequently thenamehost gets updates of theoption would be "QS - Quick-Start", with this document as the reference document. 12.2. TCP Option Quick-Start also requireschanging bandwidth. It seems appropriate thata TCP Option Number be allocated. The Length would be 4, and the MeaningQuick-Start Requests would be"Quick-Start Request",handled particularly conservatively for links withthis document as the reference document. 13. Conclusions Wevariable bandwidth, to avoid cases where Quick-Start Requests arepresentingapproved, theQuick-Start mechanism as a simple, understandable,link bandwidth is reduced, andincrementally-deployable mechanismthe data packets thatwould be sufficient to allow some connections to startare sent end up being dropped. Difficult issues also arise for paths withlarge initial rates,multi-access links (e.g., Ethernet). Routers orlarge initial congestion windows,end-nodes with multi-access links should be particularly conservative inoverprovisioned, high-bandwidth environments. We expectgranting Quick-Start requests. In particular, for some multi-access links therewillmay be no procedure for anincreasing number of overprovisioned, high-bandwidth environments where the Quick-Start mechanism, or another mechanism of similar power, could be of significant benefitattached node toa wide rangeuse to determine whether all parts oftraffic. We are presentingtheQuick-Start mechanism as a request formulti-access link have been underutilized in thecommunity to provide feedback and experimentation on issues relating to Quick- Start. 14. Acknowledgements The authors wish to thank Mark Handley for discussionsrecent past. 10.3. Possible Deployment Scenarios Because ofthese issues. The authors also thankpossible problems discussed above concerning using Quick- Start over some network paths and theEnd-to-End Research Group,security issues discussed in section 11, theTransport Services Working Group, and membersmost realistic initial deployment ofIPAM's program on Large Scale Communication Networks for both positiveQuick-Start would most likely take place in Intranets andnegative feedbackother controlled environments. Quick-Start is most useful onthis proposal. We thank Srikanth Sundarrajan for thehigh bandwidth-delay paths that are significantly underutilized. The primary initialimplementationusers of Quick-Start would likely be inthe NS simulator, and for the initial simulation study. Many thanksorganizations that provide network services toDavid Black and Joe Touch for extensive feedback on QuickStart and IP tunnels. We also thank Mohammed Ashraf, John Border, Bob Briscoe, Martin Duke, Tom Dunigan, Gorry Fairhurst, John Heidemann, Paul Hyder, Dina Katabitheir users andVern Paxson for feedback. Thanksalsoto Gorry Fairhurst for the suggestion of adding the QS Nonce to the Report of Approved Rate. This draft builds upon the concepts described in [RFC3390], [AHO98], [RFC2415], and [RFC3168]. Somehave control over a large portion of thetext onnetwork path. Quick-Startin tunnels was borrowed directly from RFC 3168. This documentisthe development of a proposal originally by Amit Jain for Initial Window Discovery. A. Related Work The Quick-Start proposal, taken together with HighSpeed TCP [RFC3649] or other transport protocols for high-bandwidth transfers, could go a significant way towards extending the range of performancenot currently intended forbest-effort trafficubiquitous deployment in the global Internet.However, there are many things that theIn particular, Quick-Startproposal wouldshould notaccomplish. Quick-Startbe enabled by default in end-nodes or in routers; instead, when Quick- Start isnotused, it should be explicitly enabled by users or system administrators. Below are acongestion control mechanism, and would not help in making more precise usefew examples of networking environments where Quick- Start would potentially be useful. These are theavailable bandwidth,environments thatis,might consider an initial deployment ofachievingQuick-Start in thegoal of high throughput with low delayrouters andlow packet loss rates. Quick-Start would not giveend-nodes, where the incentives for routersmore control overto deploy Quick- Start might be thedecrease ratesmost clear. * Centrally-administrated organizational Intranets: These intranets often have large network capacity, with networks that are underutilized for much ofactive connections.the time [PABL+05]. Such Intranets might also include high-bandwidth and high-delay paths to remote sites. Inaddition, any evaluation ofsuch an environment, Quick-Startmust include a discussion of the relative benefitswould be ofapproaches that use no explicit information from routers,benefit to users, andof approaches that use more fine- grained feedback from routers as part of a larger congestion control mechanism. We discuss several classes of proposals in the sections below. A.1. Fast Start-ups without Explicit Information from Routers One possibilitythere would be a clear incentive forsenders to use information from the packet streams to learn abouttheavailable bandwidth, without explicit information from routers. These techniques would not allow a start-up as fast as that available from Quick-Startdeployment of Quick- Start inan underutilized environment; one has to have sent some packets already to use the packet stream to learn about available bandwidth. However, these techniquesrouters. For example, Quick-Start couldallow a start-up considerably faster than the current slow-start. While it seems clear that approaches *without* explicit feedback from the routers willbestrictly less powerful that is possible *with* explicit feedback, it isquite useful in high-bandwidth networks used for scientific computing. * Wireless networks: Quick-Start could alsopossible that approaches that are more aggressive than slow-start are possible without the complexity involvedbe useful inobtaining explicit feedback from routers. Periodic packet streams: [JD02] explores the use of periodic packet streams to estimate the available bandwidth along a path. The idea is that the one-way delayshigh-delay environments ofa periodic packet stream show an increasing trend whenCellular Wide-Area Wireless Networks such as thestream's rateGPRS [BW97] and their enhancements and next generations. For example, GPRS EDGE (Enhanced Data for GSM Evolution) ishigher than the availableexpected to provide wireless bandwidth(dueof up toan increasing queue). While [JD02] states that384 Kbps (roughly 32 1500-byte packets per second) while theproposed mechanism does not cause significant increasesGPRS round-trip times range typically from few hundred milliseconds to over a second excluding any possible queueing delays in the networkutilization, losses, or[GPAR02]. In addition, these networks sometimes have variable additional delayswhen done by one flow at a time, the approachdue to resource allocation that could beproblematic if conducted concurrentlyavoided bya number of flows. [JD02] also gives an overview of some of the earlier work on inferringkeeping theavailable bandwidth from packet trains. Swift-Start: The Swift Start proposalconnection path constantly utilized, starting from[PRAKS02] combines packet-pair and packet-pacing techniques. Aninitialcongestion windowslow-start. Thus, Quick- Start could be offour segments is used to estimate the available bandwidth along the path. This estimate is then usedsignificant benefit todramatically increase the congestion window duringusers in these environments. * Paths over satellite links: Geostationary Orbit (GEO) satellite links have one-way propagation delays on thesecond RTTorder ofdata transmission. SPAND: In250 ms while theTCP/SPAND proposal from [ZQK00] for speeding up short data transfers, network performance information wouldbandwidth can beshared among many co-located hosts to estimate each connection's fair sharemeasured in megabits per second [RFC2488]. Because of thenetwork resources. Basedconsiderable bandwidth-delay product onsuch estimation andthetransfer size,link, TCP's slow-start is a major performance limitation in theTCP sender would determinebeginning of theoptimalconnection. A large initial congestion windowsize. The design for TCP/SPAND useswould be useful to users of such satellite links. * Single-hop paths: Quick-Start should work well over point-to-point single-hop paths, e.g., from aperformance gateway that monitors all traffic entering and leavinghost to anorganization's network. Sharing information among TCP connections: The Congestion Manager [RFC3124] and TCP control block sharing [RFC2140] both propose sharing congestion information among multiple TCP connections with the same endpoints. With the Congestion Manager,adjacent server. Quick- Start would work over anew TCP connection could start withsingle-hop IP path consisting of ahigh initial cwndmulti- access link only ifit was sharingthepath and the cwnd with a pre-existing TCP connectionhost was able to determine if thesame destination that had already obtained a high congestion window. RFC 2140 discusses ensemble sharing, where an established connection's congestion window could be `divided up'path tobe shared withthe next IP hop has been significantly underutilized over the recent past. If the multi-access link includes anew connection tolayer-2 switch, then thesame host. However, neither of these approaches addressesattached host cannot necessarily determine thecasestatus ofa connection to a new destination,the other links in the layer-2 network. 10.4. A Comparison withno existing or recent connection (and therefore congestion control state) to that destination. While continued research onthelimitsDeployment Problems of ECN Given theabilityglacially slow rate ofTCP and other transport protocols to learndeployment ofavailable bandwidth without explicit feedback fromECN in therouter seems useful, weInternet to date [MAF05], it is disconcerting to note thattheresome of the deployment problems of Quick-Start areseveral fundamental advantageseven greater than those ofexplicit feedback from routers. (1) Explicit feedbackECN. First, unlike ECN, which can be of benefit even if it isfaster than implicit feedback: One advantageonly deployed on one ofexplicit feedback fromthe routersis that it allowsalong thetransport sender to reliably learnend-to-end path, a connection's use of Quick-Start requires Quick-Start deployment on all ofavailable bandwidth in one round-trip time. (2) Explicit feedback is more reliable than implicit feedback: Techniques that attempt to assesstheavailable bandwidth at connection startup using implicit techniques are more error-prone than techniques that involve every element inrouters along thenetworkend-to-end path.While explicit information fromSecond, unlike ECN, which uses an allocated field in thenetwork can be wrong, it has a much better chanceIP header, Quick-Start requires the extra complications ofbeing appropriate thananend-host tryingIP Option, which can be difficult to*estimate* an appropriate sending rate using "block box" probing techniques ofpass through theentire path. A.2. Optimistic Sending without Explicit Information from Routers Another possibility that has been suggested [S02]current Internet [MAF05]. However, in spite of these issues, there is some hope for thesenderdeployment of Quick-Start, at least in protected corners of the Internet, because the potential benefits of Quick-Start tostart with a large initial window without explicit permission fromtherouters and without bandwidth estimation techniques, and foruser are considerably more dramatic than those of ECN. Rather than simply replacing thefirstoccasional dropped packet by an ECN-marked packet, Quick-Start is capable of dramatically increasing theinitial windowthroughput of connections in underutilized environments [SAF06]. 11. Security Considerations Sections 9.4 and 9.6 discuss the security considerations related tocontain information such asQuick-Start. Section 9.4 discusses thesize or sending ratepotential abuse of Quick- Start by senders or receivers lying about whether theinitial window. The proposal would be that congestedrequest was approved or about the approved rate, and of routerswould use this informationinthe first data packetcollusion todrop or delay many or allmisuse Quick-Start. Section 9.5 discusses potential problems with traffic normalizers that rewrite IP TTLs in packet headers. All of these problems could result in thepackets fromsender using a Rate Request that was inappropriately large, or thinking thatinitial window. In this wayaflow's optimistically-large initial window would not force the router to drop packets from competing flowsrequest was approved when it was inthe network. Such an approach would seem to require some mechanism for the sender to ensure that the routersfact denied by at least one router along thepath understood the mechanism for marking the first packet of a large initial window. Obviously there would be a numberpath. This inappropriate use ofquestions to consider aboutQuick-Start could result in congestion and anapproach of optimistic sending. (1) Incremental deployment: One question would be the potential complications of incremental deployment, where someunacceptable level ofthe routers along the path might not understand thepacketinformation describingdrops along theinitial window. (2) Congestion collapse: Therepath, Such congestion could also beconcerns about congestion collapse if many flows used large initial windows, many packets were dropped from optimistic initial windows, and many congested links ended up carrying packets that are only going to be dropped downstream. (3) Distributed Denial of Service attacks: A third question would be the potential rolepart ofoptimistic senders in amplifying the damage done byaDistributedDenial of Service(DDoS)attack. Section 9.6 discusses a potential attack(assuming attackers use conformant congestion control inon thehopesrouters' processing and state load from an attack of"flying under the radar"). (4) Performance hits ifQuick-Start Requests. Section 9.6 also discusses apacket is dropped: A fourth issue wouldpotential attack on the available Quick-Start bandwidth by sending bogus Quick-Start requests for bandwidth that will not in fact beto quantifyused. While this impacts theperformance hit toglobal usability of Quick-Start it does not endanger theconnection whennetwork as apacketwhole since TCP uses standard congestion control if Quick-Start isdropped from one ofnot available. Section 4.7.2 discusses theinitial windows. A.3. Fast Start-upspotential problem of packets withother Information from Routers There have been several proposals somewhat similar to Quick-Start, where the transport protocol collects explicit information from the routersQuick- Start Requests dropped by middleboxes along the path.An IP Option aboutAs discussed in Section 5, for IPv4 IPsec Authentication Header Integrity Check Value (AH ICV) calculation, thefree buffer size: In related work, [P00] investigatesQuick-Start option is a mutable IPv4 option, and hence completely zeroed for AH ICV calculation purposes; this is also theuse oftreatment required by RFC 2402 for unrecognized IPv4 options. The IPv6 Quick-Start option's IANA-allocated option type indicates that it is aslightly different IPmutable option, hence, according to RFC 2402, its option data is required to be zeroed forTCPAH ICV computation purposes. See RFC 2402 for further explanation. Section 6.2 discusses possible problems of Quick-Start used by connectionsto discover the available bandwidth along the path.carried over simple tunnels that are not compatible with Quick-Start. In this case it is possible thatproposal,a Quick-Start Request is erroneously considered approved by theIP option would querysender without the routersalongin thepath abouttunnel having individually approved thesmallest available free buffer size. Also,request, causing a false positive. We note two high-order points here. First, theIP option would have been sent after the initial SYN exchange, when the TCP sender already had an estimate of the round- trip time. The Performance Transparency Protocol: The Performance Transparency Protocol (PTP) includesQuick-Start Nonce goes aproposal forlong way towards preventing large scale cheating. And, second, even if asingle PTP packet that would collect information from routers alonghost occasionally uses Quick-Start when it is not approved by the entire network pathfromthesender to the receiver [W00]. For example, a single PTP packet could be used to determine the bottleneck bandwidth along a path. ETEN: Additional proposals for end nodes to collect explicit information from routers include one variant of Explicit Transport Error Notification (ETEN), which includes a cumulative mechanism to notify endpoints of aggregate congestion statistics along the path [KAPS02]. (A second variant in [KSEPA04] doesnetwork will notdepend on cumulative congestion statistics from the network.) A.4. Fast Start-ups with more Fine-Grained Feedback from Routers Proposals for more fine-grained congestion-related feedback from routers include XCP [KHR02], MaxNet [MaxNet], and AntiECN marking [K03]. Section B.6 discusses in more detail the relationship betweencollapse. Quick-Startand proposals for more fine-grained per-packet feedback from routers. XCP: Proposals such as XCP for newdoes not remove TCP's basic congestion control mechanismsbased on more feedback from routers are more powerful than Quick-Start, but also are more complex to understandandmore difficult to deploy. XCP routers maintain no per-flow state, but provide more fine- grained feedback to end-nodes than the one-bit congestion feedback of ECN. The per-packet feedback from XCP can be positive or negative, and specifies the increase or decreasethese will kick inthe sender's congestion windowwhenthis packet is acknowledged. XCP is a full- fledge congestion control scheme, whereas Quick-Start represents a quick check to determine ifthe networkpathissignificantly underutilized such thatheavily loaded, relegating any Quick-Start mistake to aconnection can start fastertransient. 12. IANA Considerations Quick-Start requires an IP Option andthen fall back to TCP's standard congestion control algorithms. AntiECN: The AntiECN proposal is forasingle bit inTCP Option. 12.1. IP Option Quick-Start requires both an IPv4 Option Number (Section 3.1) and an IPv6 Option Number (Section 3.2). IPv4 Option Number: Copy Class Number Value Name ---- ----- ------ ----- ---- 0 00 TBD1 TBD2 QS - Quick-Start IPv6 Option Number [RFC2460]: HEX act chg rest --- --- --- ----- TBD3 00 1 TBD4 Quick-Start For thepacket header that routers could set toIPv6 Option Number, the first two bits indicate thatthey are underutilized. For each TCP ACK arriving atthesender indicating that a packet has been received withIPv6 node skip over this option and continue processing theAnti-ECNheader if it doesn't recognize the option type, and the third bitset,indicates that thesender wouldOption Data may change en-route. In both cases this document should beable to increase its congestion window by one packet,listed asit would during slow-start. A.5. Fast Start-ups with Lower-Than-Best-Effort Service There have been proposals for routers to providethe reference document. 12.2. TCP Option Quick-Start requires aLower Effort differentiated serviceTCP Option Number (Section 4.2). TCP Option Number: Kind Length Meaning ---- ------ ------------------------------ TBD5 8 Quick-Start Response This document should be listed as the reference document. 13. Conclusions We are presenting the Quick-Start mechanism as a simple, understandable, and incrementally-deployable mechanism that would belower than best effort [RFC3662]. Such a service could carry traffic for which delivery is strictly optional,sufficient to allow some connections to start up with large initial rates, orcould carry traffic that is important but that has low prioritylarge initial congestion windows, intermsoverprovisioned, high-bandwidth environments. We expect there will be an increasing number oftime. Because it does not interfere with best-effort traffic, Lower Effort servicesoverprovisioned, high-bandwidth environments where the Quick-Start mechanism, or another mechanism of similar power, could beused by transport protocols that start-up faster than slow-start. For example, [SGF05] isof significant benefit to aproposalwide range of traffic. We are presenting the Quick-Start mechanism as a request for thetransport sendercommunity touse low- priority trafficprovide feedback and experimentation on issues relating to Quick- Start. 14. Acknowledgements The authors wish to thank Mark Handley formuchdiscussions of these issues. The authors also thank the End-to-End Research Group, the Transport Services Working Group, and members of IPAM's program on Large Scale Communication Networks for both positive and negative feedback on this proposal. We thank Srikanth Sundarrajan for the initialtraffic, with routers configured to use strict priority queueing. A separate but related issue is that of below-best-effort TCP, variantsimplementation ofTCP that would not rely on Lower Effort servicesQuick-Start in thenetwork, but would approximate below-best-effort traffic by detectingNS simulator, andrespondingfor the initial simulation study. Many thanks tocongestion sooner that standard TCP. TCP Nice [V02]David Black andTCP Low Priority (TCP-LP) [KK03] are two such proposalsJoe Touch for extensive feedback on Quick-Start and IP tunnels. We also thank Mohammed Ashraf, John Border, Bob Briscoe, Martin Duke, Tom Dunigan, Mitchell Erblich, Gorry Fairhurst, John Heidemann, Paul Hyder, Dina Katabi and Vern Paxson for feedback. Thanks also to Gorry Fairhurst forbelow-best-effort TCP, withthepurposesuggestion ofallowing TCP connectionsadding the QS Nonce tousethebandwidth unused by TCP and other trafficReport of Approved Rate. The version of the QS Nonce in this document is based on anon-intrusive fashion. Both TCP Niceproposal from Guohan Lu [L05]. Earlier versions of this document contained an eight-bit QS Nonce, andTCP Low Priority usesubsequent versions discussed thedefault slow-start mechanismspossibility ofTCP. We note thata four-bit QS Nonce. This draft builds upon the concepts described in [RFC3390], [AHO98], [RFC2415], and [RFC3168]. Some of the text on Quick-Startis quite differentin tunnels was borrowed directly fromeitherRFC 3168. This document is the development of aLower Effort serviceproposal originally by Amit Jain for Initial Window Discovery. A. Related Work The Quick-Start proposal, taken together with HighSpeed TCP [RFC3649] or other transport protocols for high-bandwidth transfers, could go abelow-best-effort variantsignificant way towards extending the range ofTCP. Unlike these proposals, Quick-Start is intended to be usefulperformance for best-effort traffic in the Internet. However, there are many things thatwishes to receive at least as much bandwidth as competing best-effort connections. B. Design Decisions B.1. Alternate Mechanisms forthe Quick-StartRequest: ICMP and RSVP This document has proposed using an IP Option for theproposal would not accomplish. Quick-StartRequest fromis not a congestion control mechanism, and would not help in making more precise use of thesender toavailable bandwidth, that is, of achieving thereceiver,goal of high throughput with low delay andusing transport mechanisms for thelow packet loss rates. Quick-StartResponse from the receiver back towould not give routers more control over thesender.decrease rates of active connections. Inthis section we discuss alternate mechanisms, and consider whether ICMP ([RFC792], [RFC2463]) or RSVP [RFC2205] protocols could be used for delivering theaddition, any evaluation of Quick-StartRequest. B.1.1. ICMP Beingmust include acontrol protocol used between Internet nodes, one could argue that ICMP isdiscussion of theideal method for requesting a permission for faster startuprelative benefits of approaches that use no explicit information fromrouters. The ICMP header is above the IP header. Quick-Start could be accomplished with ICMProuters, and of approaches that use more fine- grained feedback from routers asfollows: If the ICMP protocol is used to implement Quick-Start, the equivalentpart of a larger congestion control mechanism. We discuss several classes of proposals in theQuick-Start IP optionsections below. A.1. Fast Start-ups without Explicit Information from Routers One possibility would becarried infor senders to use information from theICMP header ofpacket streams to learn about theICMP Quick-Start Request. The ICMP Quick-Start Requestavailable bandwidth, without explicit information from routers. These techniques would not allow a start-up as fast as that available from Quick-Start in an underutilized environment; one has to have sent some packets already topass by the routers onuse thepathpacket stream to learn about available bandwidth. However, these techniques could allow a start-up considerably faster than thereceiver, possibly using the IP Router Alert option [RFC2113]. A routercurrent slow-start. While it seems clear thatapprovesapproaches *without* explicit feedback from theQuick-Start Request would takerouters will be strictly less powerful that is possible *with* explicit feedback, it is also possible that approaches that are more aggressive than slow-start are possible without thesame actions ascomplexity involved in obtaining explicit feedback from routers. Periodic packet streams: [JD02] explores thecase with the Quick-Start IP Option, and forward theuse of periodic packet streams to estimate thenext routeravailable bandwidth alongthea path.A routerThe idea is thatdoes not approvetheQuick- Start Request, even withone-way delays of adecreased value forperiodic packet stream show an increasing trend when theRequested Rate, would deletestream's rate is higher than theICMP Quick-Start Request, and send an ICMP Replyavailable bandwidth (due tothe senderan increasing queue). While [JD02] states that therequest wasproposed mechanism does notapproved. If the ICMP Reply was droppedcause significant increases in network utilization, losses, or delays when done by one flow at a time, thenetwork, and did not reach the receiver,approach could be problematic if conducted concurrently by a number of flows. [JD02] also gives an overview of some of thesender would still know thatearlier work on inferring therequest was not approvedavailable bandwidth fromthe absence of feedbackpacket trains. Swift-Start: The Swift Start proposal from [PRAKS02] combines packet-pair and packet-pacing techniques. An initial congestion window of four segments is used to estimate thereceiver. If the ICMP Quick-Start request was dropped inavailable bandwidth along thenetwork duepath. This estimate is then used tocongestion,dramatically increase thesender would assume thatcongestion window during therequest was not approved. The ICMP message would needsecond RTT of data transmission. SPAND: In thesource and destination port numbersTCP/SPAND proposal from [ZQK00] fordemultiplexing at the end nodes. If the ICMP Quick-Start Request reached the receiver, the receiverspeeding up short data transfers, network performance information woulduse transport-level or application-level mechanisms to send a responsebe shared among many co-located hosts tothe sender, exactly as with the IP Option. One benefitestimate each connection's fair share ofusing ICMP would be thatthedelivery ofnetwork resources. Based on such estimation and the transfer size, the TCPSYN packet or other initial packetsender wouldnot be delayed by IP option processing at routers. A greater advantage isdetermine the optimal initial congestion window size. The design for TCP/SPAND uses a performance gateway thatif middleboxes were blocking packetsmonitors all traffic entering and leaving an organization's network. Sharing information among TCP connections: The Congestion Manager [RFC3124] and TCP control block sharing [RFC2140] both propose sharing congestion information among multiple TCP connections withQuick-Start Requests, using the Quick- Start Request in a separate ICMP packet would mean thatthemiddlebox behavior would not affectsame endpoints. With theconnection asCongestion Manager, awhole. (To get this robustness to middleboxes withnew TCPusing an IP Quick-Start Option, one would have to have a TCP-level Quick-Start Request packet thatconnection couldbe sent concurrently but separately from the TCP SYN packet.) However, there arestart with anumber of disadvantages to using ICMP. Some firewallshigh initial cwnd if it was sharing the path andmiddleboxes may not forwardtheICMP Quick-Start Request packets. (If an ICMP Reply packet fromcwnd with arouterpre-existing TCP connection to thesender is dropped in the network, the sender would still knowsame destination thatthe request was not approved, as stated earlier, so this would not be as serious ofhad already obtained aproblem.) In addition, it wouldhigh congestion window. RFC 2140 discusses ensemble sharing, where an established connection's congestion window could bedifficult, if not impossible, for`divided up' to be shared with arouter innew connection to themiddlesame host. However, neither ofan IP tunnelthese approaches addresses the case of a connection todeliver an ICMP Reply packeta new destination, with no existing or recent connection (and therefore congestion control state) to that destination. While continued research on theactual source, for example when the inner IP header is encrypted as in IPsec tunnel mode [RFC2401]. Again, however, the ICMP Reply packet would not be essential tolimits of thecorrect operationability ofICMP Quick-Start. Unauthenticated out-of-band ICMP messages could enable some typesTCP and other transport protocols to learn ofattacks by third-party malicious hostsavailable bandwidth without explicit feedback from the router seems useful, we note that there arenot possible when the control informationseveral fundamental advantages of explicit feedback from routers. (1) Explicit feedback iscarried in-band with the IP packets that can only be altered byfaster than implicit feedback: One advantage of explicit feedback from the routersonis that it allows theconnection path. Finally, as a minor concern, using ICMP would cause a small amounttransport sender to reliably learn ofadditional trafficavailable bandwidth inthe network, whichone round-trip time. (2) Explicit feedback isnotmore reliable than implicit feedback: Techniques that attempt to assess thecase whenavailable bandwidth at connection startup usingIP options. B.1.2. RSVP With some modifications RSVP [RFC2205] could be used as a bearer protocol for carrying the Quick-Start Requests. Because routersimplicit techniques areexpected to process RSVP packetsmoreextensivelyerror-prone than techniques that involve every element in thenormal transport protocol IP packets, delivering a Quick-Start rate request using an RSVP packet would seem an appealing choice. However, Quick- Start with RSVP would require a few differencesnetwork path. While explicit information from theconventional usagenetwork can be wrong, it has a much better chance ofRSVP. Quick-Start would not require periodical refreshingbeing appropriate than an end-host trying to *estimate* an appropriate sending rate using "block box" probing techniques ofsoft state, because Quick-Start does not require per- connection state in routers. Quick-Start Requests would be transmitted downstreamthe entire path. A.2. Optimistic Sending without Explicit Information from Routers Another possibility that has been suggested [S02] is for the sender toreceiver in the RSVP Path messages, which is differentstart with a large initial window without explicit permission from theconventional RSVP model whererouters and without bandwidth estimation techniques, and for thereservations originate fromfirst packet of thereceiver. Furthermore,initial window to contain information such as theQuick-Start Responsesize or sending rate of the initial window. The proposal would besent usingthat congested routers would use this information in thetransport-levelfirst data packet to drop orapplication-level mechanisms insteaddelay many or all ofusingtheRSVP Resv message. If RSVP was used for carrying a Quick-Start Request,packets from that initial window. In this way anew "Quick- Start Request" class objectflow's optimistically-large initial window wouldbe included innot force theRSVP Path message that is sentrouter to drop packets from competing flows in thesender to receiver. The objectnetwork. Such an approach wouldcontainseem to require some mechanism for therate request field in additionsender to ensure that thecommon length and type fields. The Send_TTL field inrouters along theRSVP common header couldpath understood the mechanism for marking the first packet of a large initial window. Obviously there would be a number of questions to consider about an approach of optimistic sending. (1) Incremental deployment: One question would beused astheequivalentpotential complications of incremental deployment, where some of theQS TTL field. The Quick-Start capablerouters along the pathwould inspect the Quick-Start Request object in the RSVP Path message, decrement Send_TTL and adjust the rate request field if needed. If an RSVP router didmight not understand theQuick-Start Request object, it would rejectpacket information describing theentire RSVP messageinitial window. (2) Congestion collapse: There could also be concerns about congestion collapse if many flows used large initial windows, many packets were dropped from optimistic initial windows, andsend an RSVP PathErr message backmany congested links ended up carrying packets that are only going to be dropped downstream. (3) Distributed Denial of Service attacks: A third question would be thesender. When an RSVP message withpotential role of optimistic senders in amplifying theQuick-Start Request object reachesdamage done by a Distributed Denial of Service (DDoS) attack (assuming attackers use conformant congestion control in thereceiver,hopes of "flying under thereceiver sendsradar"). (4) Performance hits if aQuick-Start Reply message inpacket is dropped: A fourth issue would be to quantify the performance hit to the connection when a packet is dropped from one of the initial windows. A.3. Fast Start-ups with other Information from Routers There have been several proposals somewhat similar to Quick-Start, where thecorrespondingtransport protocolheader incollects explicit information from thesame way as described inrouters along thecontextpath. An IP Option about the free buffer size: In related work, [P00] investigates the use of a slightly different IPoptions earlier. Ifoption for TCP connections to discover theRSVP message withavailable bandwidth along theQuick- Start Request object was droppedpath. In that proposal, the IP option would query the routers along thepath,path about the smallest available free buffer size. Also, the IP option would have been sent after the initial SYN exchange, when thetransportTCP senderwould simply proceed with the normal congestion control procedures. Muchalready had an estimate of thediscussion about benefits and drawbacks of using ICMPround- trip time. The Performance Transparency Protocol: The Performance Transparency Protocol (PTP) includes a proposal formakinga single PTP packet that would collect information from routers along theQuick-Start Request also applies topath from theRSVP case. Ifsender to theQuick-Start Request was transmitted inreceiver [W00]. For example, aseparatesingle PTP packetinsteadcould be used to determine the bottleneck bandwidth along a path. ETEN: Additional proposals for end nodes to collect explicit information from routers include one variant ofas an IP option,Explicit Transport Error Notification (ETEN), which includes a cumulative mechanism to notify endpoints of aggregate congestion statistics along thetransport protocol packet delivery wouldpath [KAPS02]. (A second variant in [KSEPA04] does notbe delayed due to IP option processing atdepend on cumulative congestion statistics from therouters,network.) A.4. Fast Start-ups with more Fine-Grained Feedback from Routers Proposals for more fine-grained congestion-related feedback from routers include XCP [KHR02], MaxNet [MaxNet], andthe initial transport packets would reach their destinationAntiECN marking [K03]. Section B.6 discusses in morereliably. The possible disadvantages of using ICMPdetail the relationship between Quick-Start andRSVPproposals for more fine-grained per-packet feedback from routers. XCP: Proposals such as XCP for new congestion control mechanisms based on more feedback from routers are more powerful than Quick-Start, but alsoexpectedare more complex to understand and more difficult to deploy. XCP routers maintain no per-flow state, but provide more fine- grained feedback to end-nodes than the one-bit congestion feedback of ECN. The per-packet feedback from XCP can besimilar: middleboxespositive or negative, and specifies the increase or decrease in thenetwork may not be ablesender's congestion window when this packet is acknowledged. XCP is a full- fledge congestion control scheme, whereas Quick-Start represents a quick check toforwarddetermine if theQuick-Start Request messages,network path is significantly underutilized such that a connection can start faster andthe IP tunnels might cause problemsthen fall back to TCP's standard congestion control algorithms. AntiECN: The AntiECN proposal is forprocessinga single bit in theQuick-Start Requests. B.2. Alternate Encoding Functions In this section we lookpacket header that routers could set to indicate that they are underutilized. For each TCP ACK arriving atalternate encoding functions for the Rate Request field intheQuick-Start Request. The main requirements for this function issender indicating that a packet has been received with the Anti-ECN bit set, the sender would be able to increase its congestion window by one packet, as itshouldwould during slow-start. A.5. Fast Start-ups with Lower-Than-Best-Effort Service There have been proposals for routers to provide asufficiently wide rangeLower Effort differentiated service that would be lower than best effort [RFC3662]. Such a service could carry traffic forthe requested rate. Therewhich delivery isno need for overly-fine-grained precisionstrictly optional, or could carry traffic that is important but that has low priority inthe requested rate. Similarly, whileterms of time. Because itwoulddoes not interfere with best-effort traffic, Lower Effort services could beattractiveused by transport protocols that start-up faster than slow-start. For example, [SGF05] is a proposal for theencoding functiontransport sender tobe easily computable, it is also possibleuse low- priority traffic forend-nodes andmuch of the initial traffic, with routers configured tosimply store the table giving the mapping between the value N in the Rate Request field, and the actual rate request f(N). In this section we consider possible encoding methods for Rate Request fieldsuse strict priority queueing. A separate but related issue is that ofdifferent sizes, including four-bit, eight-bit, and larger Rate Request fields. Linear functions: One possible proposalbelow-best-effort TCP, variants of TCP that wouldbe fornot rely on Lower Effort services in theRate Request fieldnetwork, but would approximate below-best-effort traffic by detecting and responding tobe formatted in bits per second, scaled socongestion sooner thatone unit equals M Kbps,standard TCP. TCP Nice [V02] and TCP Low Priority (TCP-LP) [KK03] are two such proposals forsome fixed valuebelow-best-effort TCP, with the purpose ofM. Thus, forallowing TCP connections to use thevalue Nbandwidth unused by TCP and other traffic in a non-intrusive fashion. Both TCP Nice and TCP Low Priority use theRate Request field, the requested rate would be M*N Kbps. Powersdefault slow-start mechanisms oftwo: IfTCP. We note that Quick-Start is quite different from either agranularity of factorsLower Effort service or a below-best-effort variant oftwoTCP. Unlike these proposals, Quick-Start issufficient for the Rate Request, then the encoding function with the most range wouldintended to be useful forthe requested ratebest-effort traffic that wishes tobe K*2^N,receive at least as much bandwidth as competing best-effort connections. B. Design Decisions B.1. Alternate Mechanisms forN the value intheRate Request field,Quick-Start Request: ICMP and RSVP This document has proposed using an IP Option forK some constant. For N=0, the rate request would be set to zero, regardless oftheencoding function. For example, for K=40,000 and an eight-bit RateQuick-Start Requestfield, the request range would befrom80 Kbps to 40*2^255 Kbps. This clearly would be an unnecessarily large request range. For a four-bit Rate Request field, the upper limit ontherate request is 1.3 Gbps. It seemssender tous that an upper limit of 1.3 Gbps would be finethe receiver, and using transport mechanisms for the Quick-Startrate request, and that connections wishing to start up with a higher initial sending rate should be encouragedResponse from the receiver back touse other mechanisms, such astheexplicit reservation of bandwidth. If an upper limit of 1.3 Gbps was not acceptable, then fivesender. In this section we discuss alternate mechanisms, and consider whether ICMP ([RFC792], [RFC2463]) orsix bitsRSVP [RFC2205] protocols could be used for delivering theRate Request field. The lower limit of 80 Kbps could be useful for flows with round-trip times of a second or more. For a flow withQuick-Start Request. B.1.1. ICMP Being around-trip time ofcontrol protocol used between Internet nodes, onesecond, as is typical in some wireless networks, the TCP initial window of 4380 bytes allowed by RFC 3390 (given appropriate packet sizes) would translate to an initial sending rate of 35 Kbps. Thus,could argue that ICMP is the ideal method forTCP flows,requesting arate request of 80 Kbps could be usefulpermission forsome flows with large round-trip times.faster startup from routers. Thelower limit of 80 KbpsICMP header is above the IP header. Quick-Start couldalsobeuseful for some non-TCP flows that send small packets, with at most one small packet every 10 ms. A rate request of 80 Kbps would translate to a rate of a hundred 100-byte packets per second (including packet headers). While some small-packet flowsaccomplished withlarge round-trip times might find a smaller rate request of 40 Kbps to be useful, our assumptionICMP as follows: If the ICMP protocol isthat a lower limitused to implement Quick-Start, the equivalent of80 Kbps ontherate request willQuick-Start IP option would begenerally sufficient. Again, ifcarried in thelower limitICMP header of80 kbps was not acceptable, then extra bits could be used fortheRateICMP Quick-Start Request. The ICMP Quick-Start Requestfield. If the granularity of factors of two was too coarse, thenwould have to pass by theencoding function could use a base less than two. An alternate form forrouters on theencoding function would bepath touse a hybrid of linear and exponential functions.the receiver, possibly using the IP Router Alert option [RFC2113]. Amantissa and exponent representation: Section 4.4 of [B05] suggests a mantissa and exponent representation forrouter that approves the Quick-Startencoding function. With e and f asRequest would take thebinary numberssame actions as in theexponent and mantissa fields, andcase with0 <= f < 1, this would representtherate (1+f)*2^e. [B05] suggests a mantissa field for f of 8, 16, or 24 bits,Quick-Start IP Option, and forward the packet to the next router along the path. A router that does not approve the Quick- Start Request, even withan exponent fielda decreased value fore of 8 bits. This representationthe Requested Rate, wouldallow larger rate requests, withdelete the ICMP Quick-Start Request, and send anencodingICMP Reply to the sender thatis less coarse thanthepowers-of-two encoding usedrequest was not approved. If the ICMP Reply was dropped inthis document. Constraints ofthetransport protocol: We note thatnetwork, and did not reach theRate Request is also constrained byreceiver, theabilities ofsender would still know that thetransport protocol. For example, for TCP with Window Scaling,request was not approved from themaximum window is at most 2**30 bytes. For a TCP connection with a long, 1 second round-trip time, this would give a maximum sending rate of 1.07 Gbps. B.3. The Quick-Start Request: Packets or Bytes? Oneabsence of feedback from thedesign questions is whetherreceiver. If theRate Request field should be in bytes per second orICMP Quick-Start request was dropped inpackets per second. We discuss this separately fromtheperspective ofnetwork due to congestion, thetransport, and fromsender would assume that theperspective ofrequest was not approved. The ICMP message would need therouter. For TCP,source and destination port numbers for demultiplexing at theresults fromend nodes. If the ICMP Quick-StartRequest are translated into a congestion window in bytes, usingRequest reached themeasured round-trip time andreceiver, theMSS. This window applies onlyreceiver would use transport-level or application-level mechanisms to send a response to thebytessender, exactly as with the IP Option. One benefit ofdata payload, and does not includeusing ICMP would be that thebytes indelivery of the TCP SYN packet orIPother initial packetheaders. Other transport protocolswouldconceivably usenot be delayed by IP option processing at routers. A greater advantage is that if middleboxes were blocking packets with Quick-Start Requests, using the Quick- Start Requestdirectlyinpackets per second, or could translate the Quick-Start Request toacongestion window in packets. The assumption of this draft isseparate ICMP packet would mean that therouter only approvesmiddlebox behavior would not affect the connection as a whole. (To get this robustness to middleboxes with TCP using an IP Quick-Start Option, one would have to have a TCP-level Quick-Start Requestwhen the output link is significantly underutilized. For this, the routerpacket that couldmeasurebe sent concurrently but separately from theavailable bandwidth in bytes per second, or could convert between packetsTCP SYN packet.) However, there are a number of disadvantages to using ICMP. Some firewalls andbytes by some mechanism. Ifmiddleboxes may not forward the ICMP Quick-Start Requestwas in bytes per second, and applied only to the data payload, then the router would have to convertpackets. (If an ICMP Reply packet frombytes per second of data payload,a router tobytes per second of packets on the wire. IftheRate Request field wassender is dropped inbytes per second andthe network, the senderended up using very small packets,would still know that the request was not approved, as stated earlier, so thiscould translate to a significantly larger number in termswould not be as serious ofbytes per second on the wire. Therefore, foraQuick-Start Request in bytes per second,problem.) In addition, itmakes most sensewould be difficult, if not impossible, forthisa router in the middle of an IP tunnel to deliver an ICMP Reply packet toincludethetransport andactual source, for example when the inner IPheaders as wellheader is encrypted as in IPsec tunnel mode [RFC2401]. Again, however, thedata payload. Of course, this willICMP Reply packet would not beat best a rough approximation onessential to thepartcorrect operation of ICMP Quick-Start. Unauthenticated out-of-band ICMP messages could enable some types of attacks by third-party malicious hosts that are not possible when thesender;control information is carried in-band with thetransport-level sender might not knowIP packets that can only be altered by thesizerouters on the connection path. Finally, as a minor concern, using ICMP would cause a small amount of additional traffic in thetransport andnetwork, which is not the case when using IPheaders in bytes, and might know nothing at all aboutoptions. B.1.2. RSVP With some modifications RSVP [RFC2205] could be used as a bearer protocol for carrying theseparate headers added inQuick-Start Requests. Because routers are expected to process RSVP packets more extensively than the normal transport protocol IPtunnels downstream. This rough estimate seems sufficient, however, givenpackets, delivering a Quick-Start rate request using an RSVP packet would seem an appealing choice. However, Quick- Start with RSVP would require a few differences from theoverall lackconventional usage offine precisionRSVP. Quick-Start would not require periodical refreshing of soft state, because Quick-Start does not require per- connection state in routers. Quick-Startfunctionality. It has been suggested that the router could possibly use informationRequests would be transmitted downstream from theMSS optionsender to receiver in theTCP packet header ofRSVP Path messages, which is different from theSYN packet to convertconventional RSVP model where theQuick-Start Requestreservations originate frompackets per second to bytes per second,the receiver. Furthermore, the Quick-Start Response would be sent using the transport-level orvice versa. The MSS option is defined asapplication-level mechanisms instead of using themaximum MSSRSVP Resv message. If RSVP was used for carrying a Quick-Start Request, a new "Quick- Start Request" class object would be included in the RSVP Path message that is sent from theTCPsenderexpectstoreceive, not the maximum MSS thatreceiver. The object would contain theTCP sender plansrate request field in addition tosend [RFC793]. However, it is probably oftenthecase that this MSS also applies as an upper bound oncommon length and type fields. The Send_TTL field in theMSSRSVP common header could be usedbyas theTCP sender in sending. We note thatequivalent of thesender does not necessarily knowQS TTL field. The Quick-Start capable routers along thePath MTU whenpath would inspect the Quick-Start Requestis sent, or when the initial window of data is sent. Thus, with IPv4, packets from the initial window could end up being fragmentedobject in thenetwork ifRSVP Path message, decrement Send_TTL and adjust the"Don't Fragment" (DF) bit israte request field if needed. If an RSVP router did notset [RFC1191]. A Rate Request in bytes per second is reasonably robust to fragmentation. Clearly a Rate Request in packets per second is less robust inunderstand thepresence of fragmentation. Interactions between larger initial windows and Path MTU Discovery are discussed in more detail in RFC 3390 [RFC3390]. For aQuick-Start Requestin bytes per second, the transport sendersobject, it wouldhavereject theadditional complication of estimatingentire RSVP message and send an RSVP PathErr message back to thebandwidth usage added bysender. When an RSVP message with thepacket headers. We have chosen a Rate Request field in bytes per second rather than in packets per second because it seems somewhat more robust, particularly to routers. B.4.Quick-StartSemantics: Total Rate or Additional Rate? ForRequest object reaches the receiver, the receiver sends a Quick-StartRequest sentReply message in themiddle of a connection, there are two possible semantics forcorresponding transport protocol header in theRate Request field,same way asfollows: (1) Total Rate: The requested Rate Request isdescribed in therequested total rate forcontext of IP options earlier. If theconnection, includingRSVP message with thecurrent rate; or (2) Additional Rate: The requested RateQuick- Start Requestisobject was dropped along therequested increase inpath, thetotal rate for that connection, over and abovetransport sender would simply proceed with thecurrent sending rate. Whennormal congestion control procedures. Much of the discussion about benefits and drawbacks of using ICMP for making the Quick-Start Requestis sent after an idle period,also applies to the RSVP case. If thecurrent sending rate is zero, and there is no difference between (1) and (2) above. However, aQuick-Start Requestcan also be sentwas transmitted inthe middle of a connection that has not been idle, e.g., afteramobility event, or afterseparate packet instead of as anapplication-limited period whenIP option, thesender is suddenly ready to send at a much higher rate. In this case, there cantransport protocol packet delivery would not bea significant difference between (1) and (2) above. In this section we consider briefly the tradeoffs between these two options, and explain why we have chosen the `Total Rate' semantics. The Total Rate semantics makes it easier for routersdelayed due to``allocate''IP option processing at thesame rate to all connections. This lends itself to fairness, and improves convergence times between oldrouters, andnew connections. With the Additional Rate semantics,therouterinitial transport packets wouldnot necessarily know the current sending ratesreach their destination more reliably. The possible disadvantages ofthe flows requesting additional rates,using ICMP andtherefore would not have sufficient informationRSVP are also expected touse fairness as a metricbe similar: middleboxes ingranting rate requests. WiththeTotal Rate semantics,network may not be able to forward thefairness is automatic;Quick-Start Request messages, and therouter is not granting rate requestsIP tunnels might cause problems for*additional* bandwidth without knowingprocessing thecurrent sending rates ofQuick-Start Requests. B.2. Alternate Encoding Functions In this section we look at alternate encoding functions for thedifferent flows. The AdditionalRatesemantics also lends itself to gaming by the connection, with senders sending frequent Quick-Start RequestsRequest field in thehope of gainingQuick-Start Request. The main requirements for this function is that it should have ahigher rate. Ifsufficiently wide range for therouterrequested rate. There isgrantingno need for overly-fine-grained precision in thesame maximum raterequested rate. Similarly, while it would be attractive forall rate requests, then there is little benefit to a connection of sending a rate request over and over again. However, iftherouterencoding function to be easily computable, it isgranting an *additional* rate with each rate request, overalso possible for end-nodes andaboverouters to simply store thecurrent sending rate, then it istable giving the mapping between the value N ina connection's interest to send as manythe Rate Request field, and the actual raterequests as possible, even if very few of them are in fact granted. Appendix E discusses a Reportrequest f(N). In this section we consider possible encoding methods for Rate Request fields ofCurrent Sendingdifferent sizes, including four-bit, eight-bit, and larger Rateas oneRequest fields. Linear functions: One possiblefunction inproposal would be for theQuick-Start Option. However, we have not standardized this possible use at this time. B.5. Alternate ResponsesRate Request field tothe Lossbe formatted in bits per second, scaled so that one unit equals M Kbps, for some fixed value ofa Quick-Start Packet Section 4.5 discusses TCP's response toM. Thus, for theloss of a Quick-Start packetvalue N in theinitial window. This section discusses several alternate responses. One possible alternative to reverting to the default slow-start afterRate Request field, thelossrequested rate would be M*N Kbps. Powers of two: If aQuick-Start packet fromgranularity of factors of two is sufficient for theinitial window would have been to halveRate Request, then thecongestion window and continue in congestion avoidance. However, we note that thisencoding function with the most range wouldnot have been a desirable responsebe foreithertheconnection orrequested rate to be K*2^N, for N thenetwork as a whole. The packet lossvalue in theinitial window indicates that Quick- Start failed in finding an appropriate congestion window, meaning thatRate Request field, and for K some constant. For N=0, thecongestion window after halving may easily also be wrong. A more moderate alternaterate request would be set tocontinue in congestion avoidance from a windowzero, regardless of(W-D)/2, where W istheQuick-Start congestion window,encoding function. For example, for K=40,000 andD isan eight-bit Rate Request field, thenumber of packets dropped or markedrequest range would be fromthat window. However, such an approach80 Kbps to 40*2^255 Kbps. This clearly wouldimplicitly assume thatbe an unnecessarily large request range. For a four-bit Rate Request field, thenumber of Quick-Start packets deliveredupper limit on the rate request isa good indication1.3 Gbps. It seems to us that an upper limit ofthe appropriate available bandwidth1.3 Gbps would be fine for the Quick-Start rate request, and thatflow, even thoughconnections wishing to start up with a higher initial sending rate should be encouraged to use otherpackets from that window were dropped inmechanisms, such as thenetwork. And, further, that using halfexplicit reservation of bandwidth. If an upper limit of 1.3 Gbps was not acceptable, then five or six bits could be used for thenumberRate Request field. The lower limit ofsegments that were successfully transmitted is conservative enough to account80 Kbps could be useful for flows with round-trip times of a second or more. For a flow with a round-trip time of one second, as is typical in some wireless networks, thepossibly inaccurate congestionTCP initial windowindication. We believe that such an assumptionof 4380 bytes allowed by RFC 3390 (given appropriate packet sizes) wouldrequire more analysis at this point, particularly intranslate to an initial sending rate of 35 Kbps. Thus, for TCP flows, anetworkrate request of 80 Kbps could be useful for some flows witha rangelarge round-trip times. The lower limit ofpacket dropping mechanisms at the router, and we cannot recommend it80 Kbps could also be useful for some non-TCP flows that send small packets, with atthis time. Another drawbackmost one small packet every 10 ms. A rate request ofapproaches that don't revert back80 Kbps would translate toslow-start whenaQuick-Startrate of a hundred 100-byte packets per second (including packetin the initial window is droppedheaders). While some small-packet flows with large round-trip times might find a smaller rate request of 40 Kbps to be useful, our assumption is thatsuch approaches could givea lower limit of 80 Kbps on the rate request will be generally sufficient. Again, if theTCP receiver a greater incentive to lie aboutlower limit of 80 kbps was not acceptable, then extra bits could be used for theQuick-Start request.Rate Request field. If thesender reverts to slow- start when a Quick-Start packet in the initial window is dropped, this diminishesgranularity of factors of two was too coarse, then thebenefit a receiver would get from a Quick-Start request that resulted inencoding function could use adropped or ECN-marked packet. B.6. Why Not Include More Functionality? This proposalbase less than two. An alternate form forQuick-Start is a rather coarse-grained mechanism thatthe encoding function wouldallow a connectionbe to use ahigher sending rate along underutilized paths, but that does not attempt to provide a next- generation transport protocol or congestion control mechanism, and does not attempt the goalhybrid ofproviding very high throughput with very low delay. Aslinear and exponential functions. A mantissa and exponent representation: SectionA.4 discusses, there are a number4.4 ofproposals such as XCP, MaxNet,[B05] suggests a mantissa andAntiECNexponent representation formore fine-grained per-packet feedback from routers thanthecurrent congestion control mechanisms, that do attempt these more ambitious goals. Compared to proposals suchQuick-Start encoding function. With e and f asXCPthe binary numbers in the exponent andAntiECN, Quick-Start offers much less control. Quick-Start does not attempt to providemantissa fields, and with 0 <= f < 1, this would represent the rate (1+f)*2^e. [B05] suggests anew congestion control mechanism, but simply to get permission from routersmantissa field fora higher sending rate at start-up,f of 8, 16, orafter24 bits, with anidle period. Quick-Start can be thoughtexponent field for e ofas8 bits. This representation would allow larger rate requests, with an"anti-congestion- control" mechanism,encoding that isonly of any use when allless coarse than the powers-of-two encoding used in this document. Constraints of therouters alongtransport protocol: We note that thepath are significantly under-utilized. Thus, Quick-StartRate Request is also constrained by the abilities ofno use towardsthe transport protocol. For example, for TCP with Window Scaling, the maximum window is at most 2**30 bytes. For atargetTCP connection with a long, 1 second round-trip time, this would give a maximum sending rate ofhigh link utilization,1.07 Gbps. B.3. The Quick-Start Request: Packets orfairnessBytes? One of the design questions is whether the Rate Request field should be ina high-utilization scenario, or controlling queueing delay during high-utilization,bytes per second oranythingin packets per second. We discuss this separately from the perspective of thelike. Attransport, and from the perspective of the router. For TCP, the results from thesame time,Quick-Startwould allow larger initial windows than would proposals such as AntiECN, requires less input to routers than XCP (e.g., XCP's cwndRequest are translated into a congestion window in bytes, using the measured round-trip time andRTT fields),the MSS. This window applies only to the bytes of data payload, and does not include the bytes in the TCP or IP packet headers. Other transport protocols wouldrequire less frequent feedback from routers than any newconceivably use the Quick- Start Request directly in packets per second, or could translate the Quick-Start Request to a congestioncontrol mechanism. Thus,window in packets. The assumption of this draft is that the router only approves the Quick-Start Request when the output link is significantlyless powerful than proposals for new congestion control mechanisms such as XCP and AntiECN, but as powerfulunderutilized. For this, the router could measure the available bandwidth in bytes per second, ormore powerfulcould convert between packets and bytes by some mechanism. If the Quick-Start Request was interms ofbytes per second, and applied only to thespecific issuedata payload, then the router would have to convert from bytes per second ofallowing larger initial windows, and (we think) more amenabledata payload, toincremental deployment inbytes per second of packets on thecurrent Internet. We do not discuss proposals such as XCPwire. If the Rate Request field was indetail, but simply note that there arebytes per second and the sender ended up using very small packets, this could translate to a significantly larger number in terms ofopen questions. One question concerns whether there isbytes per second on the wire. Therefore, for apressing needQuick-Start Request in bytes per second, it makes most sense formore sophisticated congestion control mechanisms suchthis to include the transport and IP headers as well asXCP intheInternet. Quick-Start is inherentlydata payload. Of course, this will be at best arather crude tool that doesrough approximation on the part of the sender; the transport-level sender might notdeliver assurances about maintaining high link utilizationknow the size of the transport andlow queueing delay; Quick-Start is designed for useIP headers inenvironments that are significantly underutilized,bytes, andaddressesmight know nothing at all about thesingle question of whether a higher sending rate is allowed. New congestion control mechanisms with more fine-grained feedback from routers could allow faster startups evenseparate headers added inenvironments with rather high link utilization. Is this a pressing requirement? AreIP tunnels downstream. This rough estimate seems sufficient, however, given theother benefitsoverall lack ofmore fine-grained congestion control feedback from routers a pressing requirement? We would arguefine precision in Quick-Start functionality. It has been suggested thateven if more fine-grained per-packet feedbackthe router could possibly use information fromrouters was implemented, it is reasonablethe MSS option in the TCP packet header of the SYN packet tohave a separate mechanism such asconvert the Quick-Startfor indicating an allowed initial sending rate, or an allowed total sending rate after an idleRequest from packets per second to bytes per second, orunderutilized period. One difference between Quick-Start and current proposals for fine- grained per-packet feedback such as XCPvice versa. The MSS option is defined as the maximum MSS thatXCP is designedthe TCP sender expects togive robust performance even inreceive, not thecase where different packets within a connection routinely follow different paths. XCP achieves relatively robust performance inmaximum MSS that thepresence of multi-path routing by using per-packet feedback, whereTCP sender plans to send [RFC793]. However, it is probably often the case that this MSS also applies as an upper bound on thefeedback carried in a single packet is aboutMSS used by therelative increase or decreaseTCP sender inthe rate or window to take effect whensending. We note thatparticular packet is acknowledged,the sender does notaboutnecessarily know theallowed sending rate forPath MTU when theconnection as a whole. In contrast,Quick-Startsends a single Quick-Start request, and the answer to that request givesRequest is sent, or when theallowed sending rate for an entireinitial window ofdata. As a result, Quick-Startdata is sent. Thus, with IPv4, packets from the initial window couldbe problematicend up being fragmented inan environment where some fraction ofthepacketsnetwork if the "Don't Fragment" (DF) bit is not set [RFC1191]. A Rate Request in bytes per second is reasonably robust to fragmentation. Clearly awindow of data take path A, and the rest of theRate Request in packetstake path B; for example,per second is less robust in the presence of fragmentation. Interactions between larger initial windows and Path MTU Discovery are discussed in more detail in RFC 3390 [RFC3390]. For a Quick-Start Requestcouldin bytes per second, the transport senders would havetravelled on path A, while halfthe additional complication of estimating theQuick-Start packets sent inbandwidth usage added by thesucceeding round-trip time are routed on path B.packet headers. Wenote that [ZDPS01] shows Internet pathshave chosen a Rate Request field in bytes per second rather than in packets per second because it seems somewhat more robust, particularly tobe stable onrouters. B.4. Quick-Start Semantics: Total Rate or Additional Rate? For a Quick-Start Request sent in theordermiddle ofRTTs. Therea connection, there arealso differences between Quick-Start and some oftwo possible semantics for theproposalsRate Request field, as follows: (1) Total Rate: The requested Rate Request is the requested total rate forper-packet feedback in terms ofthenumber of bits of feedback required fromconnection, including therouters tocurrent rate; or (2) Additional Rate: The requested Rate Request is theend-nodes. Quick-Start uses four bits of feedbackrequested increase in the total raterequest field to indicatefor that connection, over and above theallowedcurrent sending rate.XCP allocates a byte for per-packet feedback, though there has been discussion of variants of XCP with less per- packet feedback. This would be more like other proposals such as anti-ECN that use a single bit of feedback from routers to indicate thatWhen thesender can increase as fast as slow-starting, in response to this particular packet acknowledgement. In general, thereQuick-Start Request isprobably considerable power in fine-grained proposals with only two bits of feedback, indicating that the sender should decrease, maintain, or increasesent after an idle period, the current sending rateor window when this packetisacknowledged.zero, and there is no difference between (1) and (2) above. However,the power ofa Quick-StartwouldRequest can also beconsiderably limited if it was restricted to only two bits of feedback; it seems likely that determiningsent in theinitial sending rate fundamentally requires more bitsmiddle offeedback from routers than does the steady-state, per-packet feedback to increasea connection that has not been idle, e.g., after a mobility event, ordecreaseafter an application-limited period when thesendingsender is suddenly ready to send at a much higher rate.OnIn this case, there can be amore practical level, onesignificant difference betweenQuick-Start(1) andproposals for per-packet feedback is that there are fewer open issues with Quick-Start than there would be with a new congestion control mechanism. Because Quick-Start is a mechanism(2) above. In this section we consider briefly the tradeoffs between these two options, and explain why we have chosen the `Total Rate' semantics. The Total Rate semantics makes it easier forrequesting an initial sendingrouters to ``allocate'' the same ratein an underutilized environment, its fairness issues are less severe than those of a general congestion control mechanism.to all connections. This lends itself to fairness, and improves convergence times between old and new connections. WithQuick-Start, there is no need fortheend nodes to tellAdditional Rate semantics, theroutersrouter would not necessarily know theround-trip timecurrent sending rates of the flows requesting additional rates, andcongestion window,therefore would not have sufficient information to use fairness asis donea metric inXCP; all thatgranting rate requests. With the Total Rate semantics, the fairness isneededautomatic; the router is not granting rate requests for *additional* bandwidth without knowing theend nodescurrent sending rates of the different flows. The Additional Rate semantics also lends itself toreportgaming by therequestedconnection, with senders sendingrate. Table 3 provides a summaryfrequent Quick-Start Requests in the hope of gaining a higher rate. If thedifferences between Quick-Start and proposals for per-packet congestion control feedback. Proposalsrouter is granting the same maximum rate forQuick-Start Per-Packet Feedback +------------------+----------------------+----------------------+ Semantics: | Allowed sendingall rate| Change in rate/window, | per connection. | per-packet. +------------------+----------------------+----------------------+ Relationship to | In addition. | Replacement. congestion ctrl: | | +------------------+----------------------+----------------------+ Frequency: | Start-up, or after | Every packet. | an idle period. | +------------------+----------------------+----------------------+ Limitations: | Only useful on | General congestion | underutilized paths.| control mechanism. +------------------+----------------------+----------------------+ Inputrequests, then there is little benefit torouters: | Rate request. |RTT, cwnd, request (XCP) | | None (Anti-ECN). +------------------+----------------------+----------------------+ Bitsa connection offeedback: | Four bits for | A few bits would |sending a raterequest. | suffice? +------------------+----------------------+----------------------+ Table 3: Differences between Quick-Startrequest over andProposals for Fine-Grained Per-Packet Feedback. A separate question concerns whether mechanisms such as Quick-Start, in combinationover again. However, if the router is granting an *additional* rate withHighSpeed TCPeach rate request, over andother changes in progress, would make a significant contribution towards meeting some of these needs for new congestion control mechanisms. This could be viewed as a positive step towards meeting some ofabove themore pressingcurrentneeds withsending rate, then it is in asimple and reasonably deployable mechanism, or alternately,connection's interest to send asa negative stepmany rate requests as possible, even if very few ofunnecessarily delaying more fundamental changes. Without answering this question, we would note that our own approach tends to favor the incremental deploymentthem are in fact granted. Appendix E discusses a Report ofrelatively simple mechanisms, as longCurrent Sending Rate as one possible function in thesimple mechanisms areQuick-Start Option. However, we have notshort-term hacks but mechanisms that leadstandardized this possible use at this time. B.5. Alternate Responses to theoverall architecture inLoss of a Quick-Start Packet Section 4.6 discusses TCP's response to thefundamentally correct direction. B.7. Alternate Implementations forloss of aQuickStart Nonce B.7.1. An Alternate Proposal forQuick-Start packet in theQuickStart Nonce Aninitial window. This section discusses several alternateproposal for the Quick-Start Nonce from [B05] would be for an n-bit field forresponses. One possible alternative to reverting to theQS Nonce, withdefault slow-start after thesender generating a random nonce when it generatesloss of a Quick-StartRequest. Each router that reducespacket from theRate Request by rinitial window wouldhash the QS nonce r times, using a one-way hash function such as MD5 [RFC1321] or the secure hash 1 [SHA1]. The receiver returns the QS noncehave been to halve thesender. Because the sender knows the original value for the nonce,congestion window andthe original rate request, the sender knows the total number of steps scontinue in congestion avoidance. However, we note thatthe rate hasthis would not have beenreduced. The sender then hashes the original nonce s times, to check whethera desirable response for either theresult isconnection or for thesamenetwork as a whole. The packet loss in thenonce returned byinitial window indicates that Quick- Start failed in finding an appropriate congestion window, meaning that thereceiver. Thiscongestion window after halving may easily also be wrong. A more moderate alternateproposal for the noncewould beconsiderably more powerful than the QS nonce describedto continue inSection 3.4, but it would also require more CPU cyclescongestion avoidance fromthe routers when they reducea window of (W-D)/2, where W is the Quick-Startrequest,congestion window, andfrom the sender in verifying the nonce returned byD is thereceiver. As reported in [B05], routers could protect themselvesnumber of packets dropped or marked fromprocessor exhaustion attacks by limitingthat window. However, such an approach would implicitly assume that therate at which they will approve reductionsnumber of Quick-Startrequests. Both the Function field andpackets delivered is a good indication of theReserved fieldappropriate available bandwidth for that flow, even though other packets from that window were dropped in theQuick-Start Option would allownetwork. And, further, that using half theextensionnumber ofQuick-Startsegments that were successfully transmitted is conservative enough touse Quick-Start requests with the alternate proposalaccount for theQuick-Start Nonce, if it was ever desired. B.7.2. The Earlier Request-Approved QuickStart Nonce An earlier version of this document included a Request-Approved QuickStart Nonce (QS Nonce)possibly inaccurate congestion window indication. We believe thatwas initialized by the sender tosuch an assumption would require more analysis at this point, particularly in anon-zero, `random' eight-bit number, alongnetwork with aQS TTLrange of packet dropping mechanisms at the router, and we cannot recommend it at this time. Another drawback of approaches thatwas initializeddon't revert back tothe same value as the TTLslow-start when a Quick-Start packet in theIP header. The Request-Approved QuickStart Nonce would have been returned byinitial window is dropped is that such approaches could give thetransportTCP receiver a greater incentive to lie about the Quick-Start request. If thetransportsender reverts to slow- start when a Quick-Start packet in theQuick-Start Response. A router could denyinitial window is dropped, this diminishes the benefit a receiver would get from a Quick-Start requestby failingthat resulted in a dropped or ECN-marked packet. B.6. Why Not Include More Functionality? This proposal for Quick-Start is a rather coarse-grained mechanism that would allow a connection todecrement the QS TTL field, by zeroing the QS Nonce field,use a higher sending rate along underutilized paths, but that does not attempt to provide a next- generation transport protocol orby deletingcongestion control mechanism, and does not attempt theQuick-Start Requestgoal of providing very high throughput with very low delay. As Section A.4 discusses, there are a number of proposals such as XCP, MaxNet, and AntiECN for more fine-grained per-packet feedback from routers than thepacket header. The QS Nonce was includedcurrent congestion control mechanisms, that do attempt these more ambitious goals. Compared to proposals such as XCP and AntiECN, Quick-Start offers much less control. Quick-Start does not attempt to providesome protection against broken downstream routers,a new congestion control mechanism, but simply to get permission from routers for a higher sending rate at start-up, oragainst misbehaving TCP receivers that mightafter an idle period. Quick-Start can beinclined to lie about whether the Rate Request was approved. This protectionthought of as an "anti-congestion- control" mechanism, that isnow provided by the QS Nonce, by theonly of any use when all ofa random initial value fortheQS TTL field, and by Quick-Start- capableroutershopefully either deletingalong the path are significantly under-utilized. Thus, Quick-StartOptionis of no use towards a target of high link utilization, orzeroing the QS TTL and QS Nonce fields when they denyfairness in arequest. With the old Request-Approved QuickStart Nonce, along withhigh-utilization scenario, or controlling queueing delay during high-utilization, or anything of theQS TTL field set tolike. At the samevalue as the TTL field in the IP header, thetime, Quick-StartRequest mechanismwouldhave been self-terminating; the Quick-Start Requestallow larger initial windows than wouldterminate at the first participating router after a non-participating router had been encountered on the path. This minimizes unnecessary overhead incurred byproposals such as AntiECN, requires less input to routersbecause of option processing for thethan XCP (e.g., XCP's cwnd and RTT fields), and would require less frequent feedback from routers than any new congestion control mechanism. Thus, Quick-StartRequest. In the current specification, this "self-terminating" propertyisprovided by Quick-Start-capable routers hopefully either deleting the Quick- Start Optionsignificantly less powerful than proposals for new congestion control mechanisms such as XCP and AntiECN, but as powerful orzeroingmore powerful in terms of theRate Request field when they deny a request. Becausespecific issue of allowing larger initial windows, and (we think) more amenable to incremental deployment in the currentspecification usesInternet. We do not discuss proposals such as XCP in detail, but simply note that there are arandom initial value for the QS TTL, Quick-Start-capable routers can't tell ifnumber of open questions. One question concerns whether there is a pressing need for more sophisticated congestion control mechanisms such as XCP in the Internet. Quick-StartRequest is invalid because of non-Quick-Start-capable routers upstream. Thisisthe cost of usinginherently adesignrather crude tool thatmakes it difficult for the receiver to cheatdoes not deliver assurances aboutthe value of the QS TTL. C.maintaining high link utilization and low queueing delay; Quick-Startwith DCCP DCCPisa new transport protocol for congestion-controlled, unreliable datagrams, intendeddesigned forapplications such as streaming media, Internet telephony,use in environments that are significantly underutilized, andon-line games. In DCCP,addresses theapplication has a choicesingle question of whether a higher sending rate is allowed. New congestion controlmechanisms,mechanisms with more fine-grained feedback from routers could allow faster startups even in environments with rather high link utilization. Is this a pressing requirement? Are thecurrently-specified Congestion Control Identifiers (CCIDs) being CCID 2 for TCP-like congestion control, and CCID 3 for TFRC, an equation-based formother benefits ofcongestion control. We refer the reader to [KHF05] for amoredetailed description of DCCP, and of thefine-grained congestion controlmechanisms. Because CCID 3 usesfeedback from routers arate-based congestion control mechanism,pressing requirement? We would argue that even if more fine-grained per-packet feedback from routers was implemented, itraises some new issues about the use of Quick-Start with transport protocols. In this document we don't attemptis reasonable tospecify the use of Quick-Start with DCCP. However, we do discuss some of the issues that might arise. In considering the use ofhave a separate mechanism such as Quick-Startwith CCID 3forrequesting a higherindicating an allowed initial sending rate,the following questions arise: (1) How does the sender respond if a Quick-Start packet is dropped? As in TCP, ifor aninitialallowed total sending rate after an idle or underutilized period. One difference between Quick-Startpacketand current proposals for fine- grained per-packet feedback such as XCP isdropped, the CCID 3 sender should revertthat XCP is designed to give robust performance even in thecongestion control mechanisms it would have used ifcase where different packets within a connection routinely follow different paths. XCP achieves relatively robust performance in theQuick-Start request had not been approved. (2) When doespresence of multipath routing by using per-packet feedback, where thesender decide there has been nofeedbackfromcarried in a single packet is about thereceiver? Unlike TCP, CCID 3 does not use acknowledgements for every packet,relative increase or decrease in the rate or window to take effect when that particular packet is acknowledged, not about the allowed sending rate forevery other packet.the connection as a whole. In contrast,the CCID 3 receiverQuick-Start sendsfeedback toa single Quick-Start request, and thesender roughly once per round-trip time. In CCID 3,answer to that request gives the allowed sending rateis halved if no feedback is received fromfor an entire window of data. As a result, Quick-Start could be problematic in an environment where some fraction of thereceiverpackets in a window of data take path A, and the rest of the packets take path B; for example, the Quick-Start Request could have travelled on path A, while half of the Quick-Start packets sent inat least four round-trip times (whenthesender is sending at least one packet every twosucceeding round-triptimes). When a Quick-Start request is used, it would seem necessary to use a smallertimeinterval, e.g.,are routed on path B. We note that [ZDPS01] shows Internet paths toreducebe stable on thesending rate if no feedback arrives fromorder of RTTs. There are also differences between Quick-Start and some of thereceiverproposals for per-packet feedback inat least two round-trip times. The question also arisesterms ofhowthesending rate should be reduced after a periodnumber of bits ofnofeedback required from thereceiver. As with TCP, the default CCID 3 response of halving the sending rate is not necessarily a sufficient responserouters to theabsenceend-nodes. Quick-Start uses four bits offeedback; an alternative is to reducefeedback in thesendingrate request field to indicate the allowed sendingrate that would have been used if no Quick-Start request had been approved. That is, if a CCID 3 sender usesrate. XCP allocates aQuick-Start request, special rules mightbyte for per-packet feedback, though there has been discussion of variants of XCP with less per- packet feedback. This would berequired to handle the sender's response tomore like other proposals such as anti-ECN that use aperiodsingle bit ofnofeedback fromthe receiver regarding the Quick-Start packets. Similarly, in considering the use of Quick-Start with CCID 3 for requesting a higher sending rate after an idle period, the following questions arise: (1) What rate doesrouters to indicate that the senderrequest? Ascan increase as fast as slow-starting, inTCP,response to this particular packet acknowledgement. In general, there isa straightforward answer to the rate requestprobably considerable power in fine-grained proposals with only two bits of feedback, indicating that theCCID 3sender shoulduse in requesting a higher sending rate after an idle period. The sender knows the current loss event rate, either from its own calculationsdecrease, maintain, orfrom feedback from the receiver, and can determineincrease the sending rateallowed by that loss event rate. Thisor window when this packet is acknowledged. However, theupper bound onpower of Quick-Start would be considerably limited if it was restricted to only two bits of feedback; it seems likely that determining the initial sending ratethat should be requested by the CCID 3 sender. A Quick-Start request is useful with CCID 3 when the sender is coming outfundamentally requires more bits ofan idle or underutilized period, because in standard operation CCID 3feedback from routers than doesnot allowthesendersteady-state, per-packet feedback tosend more than twice as fast as the receiver has reported received inincrease or decrease themost recentsending rate. On a more practical level, one difference between Quick-Start and proposals for per-packet feedbackmessage. (2) Whatisthe response to loss? The response to the loss ofthat there are fewer open issues with Quick-Startpackets shouldthan there would beto return to thewith a new congestion control mechanism. Because Quick-Start is a mechanism for requesting an initial sending ratethat would have been used if Quick-Start had not been requested. (3) When does the sender decidein an underutilized environment, its fairness issues are less severe than those of a general congestion control mechanism. With Quick-Start, therehas beenis nofeedback from the receiver? As in the case ofneed for theinitial sending rate, it would seem prudentend nodes toreducetell thesending rate if no feedback is received fromrouters thereceiver in at least tworound-triptimes. It seems likely thattime and congestion window, as is done inthis case,XCP; all that is needed is for thesending rate should be reducedend nodes to report the requested sendingrate that would have been used if no Quick-Start request had been approved. D. Possible Router Algorithm This specification does not tightly define the algorithm a router uses when deciding whether to approverate. Table 3 provides a summary of the differences between Quick-StartRate Request or whetherandhowproposals for per-packet congestion control feedback. Proposals for Quick-Start Per-Packet Feedback +------------------+----------------------+----------------------+ Semantics: | Allowed sending rate | Change in rate/window, | per connection. | per-packet. +------------------+----------------------+----------------------+ Relationship toreduce a| In addition. | Replacement. congestion ctrl: | | +------------------+----------------------+----------------------+ Frequency: | Start-up, or after | Every packet. | an idle period. | +------------------+----------------------+----------------------+ Limitations: | Only useful on | General congestion | underutilized paths.| control mechanism. +------------------+----------------------+----------------------+ Input to routers: | RateRequest. A rangerequest. |RTT, cwnd, request (XCP) | | None (Anti-ECN). +------------------+----------------------+----------------------+ Bits ofalgorithms is likely usefulfeedback: | Four bits for | A few bits would | rate request. | suffice? +------------------+----------------------+----------------------+ Table 3: Differences between Quick-Start and Proposals for Fine-Grained Per-Packet Feedback. A separate question concerns whether mechanisms such as Quick-Start, inthis spacecombination with HighSpeed TCP andwe consider the algorithmother changes in progress, would make aparticular router uses tosignificant contribution towards meeting some of these needs for new congestion control mechanisms. This could be viewed as alocal policy decision. In addition, we believe that additional experimentationpositive step towards meeting some of the more pressing current needs withrouter algorithms is necessary to haveasolid understandingsimple and reasonably deployable mechanism, or alternately, as a negative step ofthe dynamics various algorithms impose. However, we provide one particular algorithm inunnecessarily delaying more fundamental changes. Without answering thisappendixquestion, we would note that our own approach tends to favor the incremental deployment of relatively simple mechanisms, asan example andlong as the simple mechanisms are not short-term hacks but mechanisms that lead the overall architecture in the fundamentally correct direction. B.7. Alternate Implementations for aframeworkQuick-Start Nonce B.7.1. An Alternate Proposal forthinking about additional mechanisms. [SAF06] provides several algorithms routers can use to consider incoming Rate Requests. The decision process involves two algorithms. First, the router needs to trackthelink utilization overQuick-Start Nonce An alternate proposal for therecent past. Second, this utilization needs toQuick-Start Nonce from [B05] would beupdated byfor an n-bit field for thepotential new bandwidth from recent Quick-Start approvals, and then comparedQS Nonce, with therouter's notion ofsender generating a random nonce when itis underutilized enoughgenerates a Quick-Start Request. Each router that reduces the Rate Request by r would hash the QS nonce r times, using a one-way hash function such as MD5 [RFC1321] or the secure hash 1 [SHA1]. The receiver returns the QS nonce toapprove Quick-Start requests (of some size). First, we definethe"peak utilization" estimation technique (from [SAF06]). This mechanism recordssender. Because theutilization ofsender knows thelink every S secondsoriginal value for the nonce, andstoresthemost recent Noriginal rate request, the sender knows the total number ofthese measurements.steps s that the rate has been reduced. Theutilization issender thentaken as the highest utilization ofhashes theN samples. This method, therefore, keeps N*S seconds of history. This algorithm reacts rapidlyoriginal nonce s times, toincreases incheck whether thelink utilization. In [SAF06] Sresult isset to 0.15 seconds, and experiments use valuesthe same as the nonce returned by the receiver. This alternate proposal forN rangingthe nonce would be considerably more powerful than the QS nonce described in Section 3.4, but it would also require more CPU cycles from3 to 20. Second, we definethe"target" algorithm for processing incomingrouters when they reduce a Quick-StartRate Requests (alsorequest, and from[SAF06]). The algorithm relies on knowingthebandwidth ofsender in verifying theoutgoing link (whichnonce returned by the receiver. As reported inmany cases can be easily configured),[B05], routers could protect themselves from processor exhaustion attacks by limiting theutilizationrate at which they will approve reductions of Quick-Start requests. Both theoutgoing link (from an estimation technique such as given above)Function field andan estimate ofthepotential bandwidth from recentReserved field in the Quick-Startapprovals. TrackingOption would allow thepotential bandwidth from recentextension of Quick-Startapprovals is another case where local policy dictates howto use Quick-Start requests with the alternate proposal for the Quick-Start Nonce, if itshould be done.was ever desired. B.7.2. Thesimpliest method, outlined in Section 8.2, is forEarlier Request-Approved Quick-Start Nonce An earlier version of this document included a Request-Approved Quick-Start Nonce (QS Nonce) that was initialized by theroutersender to a non-zero, `random' eight-bit number, along with a QS TTL that was initialized tokeep track oftheaggregatesame value as the TTL in the IP header. The Request-Approved Quick-Startrate requests approvedNonce would have been returned by the transport receiver to the transport sender in themost recent two or more time intervals, includingQuick-Start Response. A router could deny thecurrent time interval, andQuick-Start request by failing tousedecrement thesum ofQS TTL field, by zeroing theaggregate rate requests over these time intervals asQS Nonce field, or by deleting theestimate ofQuick-Start Request from theapproved Rate Requests.packet header. Theexperiments in [SAF06] keep track ofQS Nonce was included to provide some protection against broken downstream routers, or against misbehaving TCP receivers that might be inclined to lie about whether theaggregate approvedRateRequests overRequest was approved. This protection is now provided by themost recent two time intervals, for intervalsQS Nonce, by the use of150~msec. The target algorithm also depends onathreshold (qs_thresh) that israndom initial value for the QS TTL field, and by Quick-Start- capable routers hopefully either deleting the Quick-Start Option or zeroing the QS TTL and QS Nonce fields when they deny a request. With the old Request-Approved Quick-Start Nonce, along with thefraction ofQS TTL field set to theoutgoing link bandwidth that representssame value as therouter's notion of "significantly underutilized". IfTTL field in theutilization, augmented byIP header, thepotential bandwidth from recent Quick- Start approvals, is above this threshold then noQuick-StartRate Requests will be approved. IfRequest mechanism would have been self-terminating; theutilization, again augmentedQuick-Start Request would terminate at the first participating router after a non-participating router had been encountered on the path. This minimizes unnecessary overhead incurred by routers because of option processing for thepotential bandwidth from recentQuick-Startapprovals,Request. In the current specification, this "self-terminating" property isless thanprovided by Quick-Start-capable routers hopefully either deleting thethreshold then Rate Requests can be approved. The Rate Requests will be reduced such thatQuick- Start Option or zeroing thebandwidth allocated would not driveRate Request field when they deny a request. Because theutilization to more thancurrent specification uses a random initial value for thegiven threshold. The algorithm is: util_bw = bandwidth * utilization; util_bw = util_bw + recent_qs_approvals; if (util_bw < (qs_thresh * bandwidth)) { approved = (qs_thresh * bandwidth) - util_bw;QS TTL, Quick-Start-capable routers can't tell if(rate_request < approved) approved = rate_request; approved = round_down (approved); recent_qs_approvals += approved; } Also note that given that Rate Requests are fairly coarse,theapproved rate should be rounded down when it does not fall exactly on oneQuick-Start Request is invalid because of non-Quick-Start-capable routers upstream. This is therates allowed by the encoding scheme. Routerscost of using a design thatwishmakes it difficult for the receiver tokeep close trackcheat about the value of theallocatedQS TTL. C. Quick-Startbandwidth could use Approved Rate reports to learn when rate requests had been decremented downstream in the network,with DCCP DCCP is a new transport protocol for congestion-controlled, unreliable datagrams, intended for applications such as streaming media, Internet telephony, andalso to learn whenon-line games. In DCCP, the application has asender begins to usechoice of congestion control mechanisms, with theapproved Quick-Start request. E. Possible Additional Usescurrently-specified Congestion Control Identifiers (CCIDs) being CCID 2 for TCP-like congestion control, and CCID 3 for TFRC, an equation-based form of congestion control. We refer theQuick-Start Option The Quick-Start Option containsreader to [RFC4340] for afour-bit Function field inmore detailed description of DCCP, and of thethird byte, enabling additionalcongestion control mechanisms. Because CCID 3 usesto be defined fora rate-based congestion control mechanism, it raises some new issues about theQuick- Start Option.use of Quick-Start with transport protocols. In thissectiondocument we don't attempt to specify the use of Quick-Start with DCCP. However, we do discuss some of thepossible additional usesissues thathave been discussed for Quick-Start. The Function field makes it easy to add new functions formight arise. In considering theQuick- Start Option. Reportuse ofCurrent Sending Rate: AQuick-StartRequestwith CCID 3 for requesting a higher initial sending rate, the`Report of Current Sending Rate' codepoint set in the Function field would be using the Rate Request field to reportfollowing questions arise: (1) How does thecurrent estimated sending rate for that connection. This could accompanysender respond if asecondQuick-StartRequest in the samepacketcontaining a standard rate request, for a connection thatisusingdropped? As in TCP, if an initial Quick-Start packet is dropped, the CCID 3 sender should revert toincrease its current sending rate. Request to Increase Sending Rate: A codepoint for `Request to Increase Sending Rate' intheFunction fieldcongestion control mechanisms it wouldindicate thathave used if theconnection is not idle or just starting up, but is attemmpting to useQuick-Startto increase its current sending rate. This codepoint wouldrequest had notchangebeen approved. (2) When does thesemantics ofsender decide there has been no feedback from theRate Request field. RTT Estimate: If a codepoint for `RTT Estimate' was used, a fieldreceiver? Unlike TCP, CCID 3 does not use acknowledgements forthe RTT Estimate would contain oneevery packet, ormore bits giving the sender's rough estimate offor every other packet. In contrast, theround-trip time, if known. E.g.,CCID 3 receiver sends feedback to the sendercould estimate whetherroughly once per round-trip time. In CCID 3, theRTT was greater or less than 200 ms. Alternately,allowed sending rate is halved if no feedback is received from thesender had an estimate ofreceiver in at least four round-trip times (when theRTT whensender is sending at least one packet every two round-trip times). When a Quick-Start request is used, itsendswould seem necessary to use a smaller time interval, e.g., to reduce theRate Request,sending rate if no feedback arrives from thetwo-bit Reserved fieldreceiver in atthe endleast two round-trip times. The question also arises of how theQuick-Start Option couldsending rate should beused forreduced after acoarse-grained encodingperiod of no feedback from theRTT. Informational Request: An Informational Request codepoint inreceiver. As with TCP, theFunction field would indicate thatdefault CCID 3 response of halving the sending rate is not necessarily arequestsufficient response to the absence of feedback; an alternative ispurely informational, forto reduce thesendersending rate tofind out if athe sending raterequestthat wouldbe approved, and what size ratehave been used if no Quick-Start requestwould be approved, when the Informational Request is sent. For example, an Informational Request could be followed one round-trip time later byhad been approved. That is, if astandard Quick-Start Request. A router approving an Informational Request would not consider this as an approval for Quick-Start bandwidth to be used, and would not be under any obligation to approveCCID 3 sender uses asimilar standardQuick-StartRequest one round-trip time later. An Informational Request with a rate request of zero couldrequest, special rules might beused byrequired to handle thesendersender's response tofind out if alla period of no feedback from therouters alongreceiver regarding thepath supported Quick-Start. Use Format X forQuick-Start packets. Similarly, in considering theRate Request Field: Ause of Quick-Startcodepoint for `Use Format Xwith CCID 3 forthe Rate Request Field' would indicate thatrequesting a higher sending rate after analternate format was being used foridle period, theRate Request field. Do Not Decrement: A Do Not Decrement codepoint could be used for a Quick-Start request wherefollowing questions arise: (1) What rate does the senderwould rather have the request denied thanrequest? As in TCP, there is a straightforward answer tohavethe rate requestdecremented in the network. This could be used ifthat the CCID 3 senderwas only interestedshould use inusing Quick- Start ifrequesting a higher sending rate after an idle period. The sender knows theoriginalcurrent loss event rate, either from its own calculations or from feedback from the receiver, and can determine the sending raterequest was approved. Temporary Bandwidth Use: A Temporary codepoint has been proposed to indicateallowed by thata connection would only useloss event rate. This is the upper bound on the sending rate that should be requestedbandwidth for a single time interval. F. Feedback from Bob Briscoe [B05] is a review of an earlier version ofby the CCID 3 sender. A Quick-Startproposal that discusses a number of potential problemsrequest is useful withQuick-Start, and argues forCCID 3 when the sender is coming out of analternate approach for policing congestionidle or underutilized period, because innetworks using re-feedback ([BJCG+05], [BJS05]). However, [B05] didn't opposestandard operation CCID 3 does not allow themove to Quick-Startsender toexperimental statussend more than twice aslongfast asits applicability is made clear. F.1. Potential Deployment Scenarios [B05] argues that becausethesender's trustworthiness is not necessarily verified, Quick-Start, if itreceiver has reported received in the most recent feedback message. (2) What isremain stateless, should be confinedthe response toenvironments where every source is trusted. Section 3.2loss? The response to the loss of[B05] argues that either (1)Quick-Start packets should berecommended for deployment only in trusted environments, or (2) Quick-Start could be recommended for deployment also in untrusted environments, with flow state required at some or all routers. Since [B05], we have addedto return to theReport of Approved Rate as a required part of Quick-Start, and discussed wayssending rate thatthis could bewould have been usedby routers or by traffic policers,ifdesired, to check onQuick-Start had not been requested. (3) When does theusesender decide there has been no feedback from the receiver? As in the case ofQuick-Start by senders. We also note that senders can send at anthe initialhighsending rate, it would seem prudent to reduce the sending rateeven inif no feedback is received from theabsence of Quick-Start,receiver inthe current network;at least two round-trip times. It seems likely thatis,inour view, Quick-Start does not changethis case, thedangerssending rate should be reduced to thenetwork from malicious senders. Thus, while we are clearly not recommendingsending rate that would have been used if no Quick-Startfor widespread deployment in the global Internet, we also don't feelrequest had been approved. D. Possible Router Algorithm This specification does not tightly define theneed to explicitly restrict its deploymentalgorithm a router uses when deciding whether toenvironments where every source is trusted,approve a Quick-Start Rate Request or whether and how toexplicitly require per-flow state at Quick-Start routers. We assume that Quick-Start will only be enabled at routers if the system administrators feel either that they have sufficient trustreduce a Rate Request. A range of algorithms is likely useful insenders, sufficient policing mechanisms for checking for misbehaving nodes, or sufficient oversitethis space and we consider the algorithm a particular router uses todisable Quick-Start if itbe a local policy decision. In addition, we believe that additional experimentation with router algorithms isdeterminednecessary tobe causisng problems.. F.2. Misbehaving Senders and Receivers Somehave a solid understanding of thecriticisms of Quick-Startdynamics various algorithms impose. However, we provide one particular algorithm in[B05] are criticisms for mechanisms that allocate rates to senders, butthisis not what Quick-Start does. Quick-Start requests applyappendix as an example and as a framework for thinking about additional mechanisms. [SAF06] provides several algorithms routers can use toindividual connections, notconsider incoming Rate Requests. The decision process involves two algorithms. First, the router needs tounique addresses or unique tuples of addresses. Further,track theapprovallink utilization over the recent past. Second, this utilization needs to be updated byroutersthe potential new bandwidth from recent Quick-Start approvals, and then compared with the router's notion of when it is underutilized enough to approve Quick-Start requestsdoes not result in an allocation(of some size). First, we define the "peak utilization" estimation technique (from [SAF06]). This mechanism records the utilization ofbandwidth forthesender making that request;link every S seconds and stores theapproval by routers does not result in any allocationmost recent N ofbandwidth at all.these measurements. Thestate used by routers from past Quick- Start approvalsutilization isused only to guidethen taken as therouter in its approval or rejectionhighest utilization offuture Quick-Start requests. We have added text to this document to make this quite explicit. [B05] discussesthedangers of sender spoofing and identity splitting. Identify splitting would not be a problem with Quick- Start, because Quick-Start requests apply to individual connections, not to unique addresses or unique tuplesN samples. This method, therefore, keeps N*S seconds ofaddresses. Because Quick-Start does not allocate rateshistory. This algorithm reacts rapidly tosenders, sender-spoofingincreases in the link utilization. In [SAF06] S isalso not a critical issue (except as it would make it more difficultset to 0.15 seconds, and experiments use values forthose Quick-Start routers that maintain per-flow stateN ranging from 3 toidentify senders that send20. Second, we define the "target" algorithm for processing incoming Quick-Startrequests that are notRate Requests (also from [SAF06]). The algorithm relies on knowing the bandwidth of the outgoing link (which infact used, due either to malicious requests or due to requests denied downstream). In Section 3.3, [B05] says that "the lackmany cases can be easily configured), the utilization ofa secure binding between a requestthe outgoing link (from an estimation technique such as given above) andsubsequent traffic means that any other node could send a burstan estimate oftraffic and claim it requests it, with no-one being able to prove it didn't." Inthecurrent Internet, any node can send a burst of traffic any timepotential bandwidth from recent Quick-Start approvals. Tracking the potential bandwidth from recent Quick-Start approvals is another case where local policy dictates how itwould like, even without Quick-Start. However,should be done. The simpliest method, outlined in Section 8.2, is for theabsenserouter to keep track ofQuick-Start, sending at a highthe aggregate Quick-Start rateis not alwaysrequests approved in thesender's interest, asmost recent two or more time intervals, including thepackets that are sent might have a high probabilitycurrent time interval, and to use the sum ofbeing dropped inthenetwork, particularly inaggregate rate requests over these time intervals as theabsenseestimate ofQuick-Start.the approved Rate Requests. Theadditionexperiments in [SAF06] keep track of theReport of Approvedaggregate approved Rateto Quick-Start gives traffic policersRequests over theability to check on somemost recent two time intervals, for intervals of 150~msec. The target algorithm also depends on a threshold (qs_thresh) that is thepotential abusesfraction ofQuick-Start, if they so desire. In Section 3.8, [B05] statesthe outgoing link bandwidth that"not only do Quick-Start senders have to be trusted, but also other senders who could claim their data had been authorisedrepresents the router's notion of "significantly underutilized". If the utilization, augmented bya Quick-Start response when it hadn't (Section 3.3)." In response, we would again clarify that with Quick- Start,theQuick-Start request makespotential bandwidth from recent Quick- Start approvals, is above this threshold then nodifference in how the subsequentQuick-Startdata packets are treated atRate Requests will be approved. If therouter, compared to non-Quick-Start data packets. Thus, a sender's claim that its data resultsutilization, again augmented by the potential bandwidth froma previous Quick-Start request should make no difference in how those data packets are treated at routers. The approval of arecent Quick-Startrequestapprovals, isnot a promise byless than therouterthreshold then Rate Requests can be approved. The Rate Requests will be reduced such that thesubsequent data packets will receive differential treatment atbandwidth allocated would not drive therouter; it is only a statement fromutilization to more than theroutergiven threshold. The algorithm is: util_bw = bandwidth * utilization; util_bw = util_bw + recent_qs_approvals; if (util_bw < (qs_thresh * bandwidth)) { approved = (qs_thresh * bandwidth) - util_bw; if (rate_request < approved) approved = rate_request; approved = round_down (approved); recent_qs_approvals += approved; } Also note thatthe router believesgiven that Rate Requests are fairly coarse, theQuick-Start data packets willapproved rate should be rounded down when it does notchange the current under-utilized state of the router. We have clarified this in Section 3.3fall exactly on one ofthis document. F.3. Fairness In its abstract, [B05] saysthefollowing: "Because traffic variance will always blurrates allowed by theboundary, we argueencoding scheme. Routers thatunder-utilisation should be treated as the extreme of a spectrum where fairness is always an issuewish tosome extent." The specification forkeep close track of the allocated Quick-Startnow saysbandwidth could use Approved Rate reports to learn when rate requests had been decremented downstream insection 2thefollowing: "A router should only approvenetwork, and also to learn when aQuick-Start request ifsender begins to use theoutput link is underutilized, and ifapproved Quick-Start request. E. Possible Additional Uses for therouter judges thatQuick-Start Option The Quick-Start Option contains a four-bit Function field in theoutput link will continuethird byte, enabling additional uses to beunderutilized ifdefined for therequest is approved." We changedQuick- Start Option. In this section we discuss some of thequote "for a mechanismpossible additional uses that have been discussed for Quick-Start. The Function field makes it easy to add new functions forrequesting an initial sending rate in an underutilized environment,thefairness issuesQuick- Start Option. Report ofa general congestion control mechanism go away"Current Sending Rate: A Quick-Start Request with the `Report of Current Sending Rate' codepoint set in the Function field would be using the Rate Request field to report thefollowing: "because Quick-Start is a mechanism for requesting an initialcurrent estimated sending ratein an underutilized environment, its fairness issues are less severe than those offor that connection. This could accompany ageneral congestion control mechanism"second Quick-Start Request insection B.6 However, we did not addthesentence recommended in section 3.4 of [B05],same packet containing a standard rate request, for a connection that"Quick-Startistargeted at an experimental environment where the more intractable issues can be set aside". In particular, we don't agree thatusing Quick-Startneedstobe targeted onlyincrease its current sending rate. Request to Increase Sending Rate: A codepoint forenvironments where fairness is not an issue. F.4. Models of Under-Utilization [B05] states that "One of the under-utilisation assumptions I had`Request to Increase Sending Rate' inmy head while readingthepaper wasFunction field would indicate thatany one hostthe connection isgenerally able to over-fill available capacity,not idle or just starting up, butthat, given a high rate, the flow would end quickly." We are sorry that thisis attempting to use Quick-Start to increase its current sending rate. This codepoint would not change themodel that the author inferred fromsemantics of thedraft, but we can give assurances that this `one big flow atRate Request field. RTT Estimate: If atime" modelcodepoint for `RTT Estimate' was*never*used, a field for theimplicitRTT Estimate would contain one orexplicit model underlyingmore bits giving theQuick-Start design. (We would also note that every versionsender's rough estimate ofthis document sincethefirst version back in 2002 has discussed router responses whenround-trip time, if known. E.g., therouter experiences a flood of Quick-Start requests.) [B05] also sayssender could estimate whether thefollowing: "By reverse engineering this algorithm, it was possible to guess that there was an assumption that host capacityRTT wassmallergreater or less than 200 ms. Alternately, if thenetwork's, so meeting a request in full would still leave a lot of spare capacity for the next request." Again, we would like to clarify that there has been no such assumption underlying the Quick-Start design. F.5. Router Algorithms as Local Policy [B05] recommends that either this document should set constraints on possible router algorithms, or say that experiments are needed "in order to establish constraints required on router algorithms for interworking, robustness, fairness etc." While it is possible that experiments will lead tosender had anunderstandingestimate ofconstraints that are needed on router algorithms, we thinkthe RTT when itis more likely that there will not be a need for explicit constraints on router algorithms for accepting or rejecting Quick-Start requests. Our approach is that, whilesends theQuick-Start IETF documentation standardizesRate Request, thesemantics of Quick-Start andtwo-bit Reserved field at theformatend of the Quick-StartIPOptionand the Quick-Start Response TCP Option, the IETF documentation should not and does not standardize the algorithmscould be usedat routers for approving or denying Quick-Start request. Appendix E in this document has presented one possible router algorithmforapproving or denying Quick-Start requests, but further discussiona coarse-grained encoding of therange of possibilitiesRTT. Informational Request: An Informational Request codepoint inrouter algorithms is available elsewhere [SAF06]. As an example,thefairness criteriaFunction field would indicate thatrouters might apply in granting or denyinga request is purely informational, for the sender to find out if a rate request would be approved, and what size rate request would be approved, when the Informational Request is sent. For example, an Informational Request could be followed one round-trip time later by a standard Quick-Startrequests are discussed in [SAF06], but areRequest. A router approving an Informational Request would notdiscussed in the same detail inconsider thisdocument. This document leaves routers freeas an approval for Quick-Start bandwidth toapplybe used, and would not be under anycriteria they choose in accepting or denying Quick-Start requests, modulo the requirements given in Section 3.3 above. This approach of theobligation to approve a similar standard Quick-Startrouter algorithm asRequest one round-trip time later. An Informational Request with amatterrate request oflocal policy is consistent with the approach in RFC 3168 on standardizing Explicit Congestion Notification (ECN). RFC 3168 standardizedzero could be used by thesemanticssender to find out if all of theECN field, but did not standardize a router's Active Queue Management mechanismsrouters along the path supported Quick-Start. Use Format X fordeciding when to settheCongestion ExperiencedRate Request Field: A Quick-Start codepointin packets. F.6. An Alternate Proposal [B05] proposesfor `Use Format X for the Rate Request Field' would indicate that an alternateto Quick-Start where endpoints allocate rates to themselves. [B05] argues that adding rate allocation to interior routers is notformat was being used for thefundamentally correct direction. [B05] arguesRate Request field. Do Not Decrement: A Do Not Decrement codepoint could be used foran approach that associates senders with their ingress attachment point, with routers reporting their impairment status back toa Quick-Start request where the sender[BJCG+05,BJS05]. The source declareswould rather have theimpairment that it believes it will accumulate alongrequest denied than to have thepath, and routers effectively subtractrate request decremented in thelocal impairment status. Ifnetwork. This could be used if the senderis reporting correctly, andwas only interested in using Quick- Start if theimpairmentoriginal rate request was approved. Temporary Bandwidth Use: A Temporary codepoint hasnot changed significantly from one round-trip timebeen proposed to indicate that a connection would only use thenext, the reported impairment at the egress router should be close to zero.requested bandwidth for a single time interval. Normative References [RFC793] J. Postel, Transmission Control Protocol, RFC 793, September 1981. [RFC1191] Mogul, J. and S. Deering, Path MTU Discovery, RFC 1191, November 1990. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2460] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. RFC 2460, December 1998. [RFC2581] M. Allman, V. Paxson, and W. Stevens. TCP Congestion Control. RFC 2581. April 1999. [RFC3168] Ramakrishnan, K.K., Floyd, S., and Black, D. The Addition of Explicit Congestion Notification (ECN) to IP. RFC 3168, Proposed Standard, September 2001. [RFC3390] M. Allman, S. Floyd, and C. Partridge. Increasing TCP's Initial Window. RFC 3390, October 2002. [RFC3742] Floyd, S., Limited Slow-Start for TCP with Large Congestion Windows, RFC 3742, Experimental, March 2004. Informative References [RFC792] J. Postel. Internet Control Message Protocol. RFC 792, September 1981. [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992. [RFC1812] F. Baker (ed.). Requirements for IP Version 4 Routers. RFC 1812, June 1995. [RFC2003] Perkins, C., IP Encapsulation within IP, RFC 2003, October 1996. [RFC2113] D. Katz. P Router Alert Option. RFC 2113, February 1997. [RFC2140] J. Touch. TCP Control Block Interdependence. RFC 2140. April 1997. [RFC2205] R. Braden, et al. Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification. RFC 2205, September 1997.[RFC2409] D. Harkins and D. Carrel, The Internet Key Exchange (IKE), RFC 2409, November 1998.[RFC2401] S. Kent and R.Atkinson.Atkinson, Security Architecture for the InternetProtocol.Protocol, RFC 2401, November 1998.[2401bis] S. Kent and K. Seo, Security Architecture for the Internet Protocol, internet-draft draft-ietf-ipsec-rfc2401bis-06.txt, work- in-progress, March 2005.[RFC2402] S. Kent and R. Atkinson. IP Authentication Header. RFC 2402, November 1998.[2402bis] S. Kent, IP Authentication Header, internet-draft draft- ietf-ipsec-rfc2402bis-11.txt work-in-progress, March 2005.[RFC2409] D. Harkins and D. Carrel, The Internet Key Exchange (IKE), RFC 2409, November 1998. [RFC2415] K. Poduri and K. Nichols. Simulation Studies of Increased Initial TCP Window Size. RFC 2415. September 1998. [RFC2463] A. Conta and S. Deering. Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification. RFC 2463, December 1998. [RFC2488] M. Allman, D. Glover, and L. Sanchez. Enhancing TCP Over Satellite Channels using Standard Mechanisms. RFC 2488. January 1999.[RFC2784] D. Farinacci, T. Li, S. Hanks, D. Meyer, and P. Traina, Generic Routing Encapsulation (GRE), RFC 2784, March 2000.[RFC2661] W. Townsley, A. Valencia, A. Rubens, G. Pall, G. Zorn, and B. Palter, Layer Two Tunneling Protocol "L2TP", RFC 2661, August 1999. [RFC2784] D. Farinacci, T. Li, S. Hanks, D. Meyer, and P. Traina, Generic Routing Encapsulation (GRE), RFC 2784, March 2000. [RFC2960] R. Stewart,et.et al. Stream Control Transmission Protocol. RFC 2960, October 2000. [RFC3031] E. Rosen, A. Viswanathan, and R. Callon. Multiprotocol Label Switching Architecture. RFC 3031. January 2001. [RFC3124] H. Balakrishnan and S. Seshan. The Congestion Manager. RFC 3124. June 2001. [RFC3234] B. Carpenter and S. Brim, Middleboxes: Taxonomy and Issues, RFC 3234, February 2002. [RFC3344] C. Perkins (ed.). IP Mobility Support for IPv4. RFC 3344, August 2002. [RFC3360] S. Floyd. Inappropriate TCP Resets Considered Harmful. RFC 3360, August 2002. [RFC3649] Floyd, S., HighSpeed TCP for Large Congestion Windows, RFC 3649, December 2003. [RFC3662] R. Bless, K. Nichols, and K. Wehrle. A Lower Effort Per- Domain Behavior (PDB) for Differentiated Services. RFC 3662, December 2003. [RFC3775] D. Johnson, C. Perkins, and J. Arkko. Mobility Support in IPv6. RFC 3775, June 2004. [RFC3819] P. Karn et al., "Advice for Internet Subnetwork Designers", July 2004. [RFC3948] A. Huttunen, B. Swander, V. Volpe, L. DiBurro, and M. Stenberg, UDP Encapsulation of IPsec ESP Packets, RFC 3948, January 2005. [RFC4301] S. Kent and K. Seo, Security Architecture for the Internet Protocol, RFC 4301, December 2005. [RFC4302] S. Kent, IP Authentication Header, RFC 4302, December 2005. [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, December 2005. [RFC4340] E. Kohler, M. Handley, and S. Floyd, Datagram Congestion Control Protocol (DCCP), RFC 4340, March 2006. [RFC4341] S. Floyd and E. Kohler, Profile for Datagram Congestion Control Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control, RFC 4341, March 2006. [AHO98] M. Allman, C. Hayes and S. Ostermann. An evaluation of TCP with Larger Initial Windows. ACM Computer Communication Review, July 1998. [B05] B. Briscoe, Review: Quick-Start for TCP and IP, internet-draft draft-briscoe-tsvwg-quickstart-rvw-00, work-in-progress, URL "http://www.cs.ucl.ac.uk/staff/B.Briscoe/pubs.html", November 2005. [BJCG+05] Briscoe, B., Jacquet, A., Di Cairano-Gilfedder, C., Salvatori, A., Soppera, A., and M. Koyabe, "Policing Congestion Response in an Internetwork Using Re-Feedback", SIGCOMM, August 2005.[BJS05] Briscoe, B., Jacquet, A., and A. Salvatori, "Re-ECN: Adding Accountability for Causing Congestion to TCP/IP", internet-draft draft-briscoe-tsvwg-re-ecn-tcp-00.txt, work-in-progress, October 2005.[BW97] G. Brasche and B. Walke. Concepts, Services and Protocols of the new GSM Phase 2+ General Packet Radio Service. IEEE Communications Magazine, pages 94--104, August 1997. [GPAR02] A. Gurtov, M. Passoja, O. Aalto, and M. Raitola. Multi- Layer Protocol Tracing in a GPRS Network. In Proceedings of the IEEE Vehicular Technology Conference (Fall VTC2002), Vancouver, Canada, September 2002. [H05] P. Hoffman, email, October 2005. Citation for acknowledgement purposes only. [HKP01] M. Handley, C. Kreibich and V. Paxson, Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol Semantics, Proc. USENIX Security Symposium 2001. [Jac88] V. Jacobson, Congestion Avoidance and Control, ACM SIGCOMM [JD02] Manish Jain, Constantinos Dovrolis, End-to-End Available Bandwidth: Measurement Methodology, Dynamics, and Relation with TCP Throughput, SIGCOMM 2002. [K03] S. Kunniyur, "AntiECN Marking: A Marking Scheme for High Bandwidth Delay Connections", Proceedings, IEEE ICC '03, May 2003. URL "http://www.seas.upenn.edu/~kunniyur/". [KAPS02] Rajesh Krishnan, Mark Allman, Craig Partridge, James P.G. Sterbenz. Explicit Transport Error Notification (ETEN) for Error- Prone Wireless and Satellite Networks. Technical Report No. 8333, BBN Technologies, March 2002. URL "http://www.icir.org/mallman/papers/". [KHR02] Dina Katabi, Mark Handley, and Charles Rohrs, Internet Congestion Control for Future High Bandwidth-Delay Product Environments. ACM Sigcomm 2002, August 2002. URL "http://ana.lcs.mit.edu/dina/XCP/".[KHF05] E. Kohler, M. Handley, and S. Floyd, Datagram Congestion Control Protocol (DCCP), internet draft draft-ietf-dccp-spec-11.txt, work in progress, March 2005.[KK03] A. Kuzmanovic and E. W. Knightly. TCP-LP: A Distributed Algorithm for Low Priority Data Transfer. INFOCOM 2003, April 2003. [KSEPA04] Rajesh Krishnan, James Sterbenz, Wesley Eddy, Craig Partridge, Mark Allman. Explicit Transport Error Notification (ETEN) for Error-Prone Wireless and Satellite Networks. Computer Networks, 46(3), October 2004. [L05] Guohan Lu, Nonce in TCP Quick Start, draft, September 2005. URL "http://www.net-glyph.org/~lgh/nonce-usage.pdf". [MH06] M. Mathis and J. Heffner, Packetization Layer Path MTU Discovery, internet-draft draft-ietf-pmtud-method-07.txt, work in progress, June 2006. [MAF04] Alberto Medina, Mark Allman, and Sally Floyd, Measuring Interactions Between Transport Protocols and Middleboxes, Internet Measurement Conference 2004, August 2004. URL "http://www.icir.org/tbit/". [MAF05] Alberto Medina, Mark Allman, and Sally Floyd. Measuring the Evolution of Transport Protocols in the Internet. Computer Communications Review, April 2005. [MaxNet] MaxNet Home Page, URL "http://netlab.caltech.edu/~bartek/maxnet.htm". [P00] Joon-Sang Park, Bandwidth Discovery of a TCP Connection, report to John Jeidemann, 2000, private communication. Citation for acknowledgement purposes only. [PABL+05] Ruoming Pang, Mark Allman, Mike Bennett, Jason Lee, Vern Paxson, Brian Tierney. A First Look at Modern Enterprise Traffic. ACM SIGCOMM/USENIX Internet Measurement Conference, October 2005. [PRAKS02] Craig Partridge, Dennis Rockwell, Mark Allman, Rajesh Krishnan, James P.G. Sterbenz. A Swifter Start for TCP. Technical Report No. 8339, BBN Technologies, March 2002. URL "http://www.icir.org/mallman/papers/". [RW03] Mattia Rossi and Michael Welzl, On the Impact of IP Option Processing, Preprint-Reihe des Fachbereichs Mathematik - Informatik, No. 15, Institute of Computer Science, University of Innsbruck, Austria, October 2003. [RW04] Mattia Rossi and Michael Welzl, On the Impact of IP Option Processing - Part 2, Preprint-Reihe des Fachbereichs Mathematik - Informatik, No. 26, Institute of Computer Science, University of Innsbruck, Austria, July 2004. [S02] Ion Stoica, private communication, 2002. Citation for acknowledgement purposes only. [SAF06] Pasi Sarolahti, Mark Allman, and Sally Floyd. Determining an Appropriate Sending Rate Over an Underutilized Network Path. February 2006. URL "http://www.icir.org/floyd/quickstart.html". [SGF05] Singh, M., Guha, S., and P. Francis, "Utilizing spare network bandwidth to improve TCP performance", ACM SIGCOMM 2005 Work in Progresssession ,session, August 2005, https://www.guha.cc/saikat/pub/sigcomm05-lowtcp.pdf. [SHA1] "Secure Hash Standard", FIPS, U.S. Department of Commerce, Washington, D.C. publication 180-1, April 1995. [SH02] Srikanth Sundarrajan and John Heidemann. Study of TCP Quick Start with NS-2. Class Project, December 2002. Notpublicallypublicly available; citation for acknowledgement purposes only. [V02] A. Venkataramani, R. Kokku, and M. Dahlin. TCP Nice: A Mechanism for Background Transfers. OSDI 2002. [VH97] V. Visweswaraiah and J. Heidemann, Improving Restart of Idle TCP Connections, Technical Report 97-661, University of Southern California, November 1997. [W00] Michael Welzl: PTP: Better Feedback for Adaptive Distributed Multimedia Applications on the Internet, IPCCC 2000 (19th IEEE International Performance, Computing, And Communications Conference), Phoenix, Arizona, USA, 20-22 February 2000. URL "http://www.welzl.at/research/publications/". [ZDPS01] Y. Zhang, N. Duffield, V. Paxson, and S. Shenker, On the Constancy of Internet Path Properties, Proc. ACM SIGCOMM Internet Measurement Workshop, November 2001. [ZQK00] Y. Zhang, L. Qiu, and S. Keshav, Speeding Up Short Data Transfers: Theory, Architectural Support, and Simulation Results, NOSSDAV 2000, June 2000. AUTHORS' ADDRESSES Sally Floyd Phone: +1 (510) 666-2989 ICIR (ICSI Center for Internet Research) Email: floyd@icir.org URL: http://www.icir.org/floyd/ Mark Allman ICSI Center for Internet Research 1947 Center Street, Suite 600 Berkeley, CA 94704-1198 Phone: (440) 235-1792 Email: mallman@icir.org URL: http://www.icir.org/mallman/ Amit Jain F5 Networks Email : a.jain@f5.com Pasi Sarolahti Nokia Research Center P.O. Box 407 FI-00045 NOKIA GROUP Finland Phone: +358 50 4876607 Email: pasi.sarolahti@iki.fi Full Copyright Statement Copyright (C) The Internet Society 2006. 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. 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 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. Intellectual Property 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.