Internet Engineering Task ForceA. Jain INTERNET-DRAFT F5 Networks draft-ietf-tsvwg-quickstart-01.txtS. FloydExpires: April 2006INTERNET-DRAFT M. Allman draft-ietf-tsvwg-quickstart-02.txt ICIR Expires: September 2006 A. Jain F5 Networks P. Sarolahti Nokia Research Center13 October 20055 March 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 onAprilSeptember 2006.Copyright Notice Copyright (C) The Internet Society (2005). All Rights Reserved.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 describe its use with TCP. By using Quick-Start, a TCP host, say, host A, would indicate its desired sending rate in bytes per second, using a Quick StartRequestoption 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. If the Quick-Start request is not approved, then the sender would use the default congestion control mechanisms. The Quick-Start mechanism can determine if there are routers along the path that do not understand theQuick-Start RequestQuick- Start option, or have not agreed to theQuick- StartQuick-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 is designed to allow connections to use higher sending rates when there is significant unused bandwidth along the path, and all of the routers along the path support the Quick-Start Request. TO BE DELETED BY THE RFC EDITOR UPON PUBLICATION: Changes fromdraft-ietf-tsvwg-quickstart-00:draft-ietf-tsvwg-quickstart-01: * Added a30-bit QS Nonce. Based on feedback from Guohan Lu and Gorry Fairhurst (and deleted the text about a possible four-bit QS nonce).citation to SPAND: Speeding Up Short Data Transfers. * Added anew section "Quick-Start and IPsec AH", basedsentence in Section 8.1 onfeedback from Joe Touch and David Black."Implementation Issues for Processing Quick-Start Requests" about multi-access links. *Revised "Quick-Start inMentioned the IPTunnels" Section, based on feedback from Joe Touch and David Black.Router Alert option, RFC 2113, in Appendix A.1.1. * Added asectiondiscussion of lower-than-best-effort service. * Added a few sentences about"Possible Usesthe requirements for randomness in theReserved Fields".nonce. *Changes from feedbackChanged the name of the option fromGorry Fairhurst: - Section 4.4, revisedtheexplanation for reducingQuick-Start Request Option to thecongestion window whenQuick-Start Option. * Changed thefirst ACK forsemantics of the Reserved field to the Function field, adding that a Quick-Startpacketoption isreceived. - Section 6.4, deletedonly interpreted as a request if this field is zero. * Changed thelast sentence. - Minor editing changes. - Revised"Reporting Approved Rate" option from a "Possible Use" in Appendix D to a required use in Section4.6.23.1, tosay that sender SHOULD send one packetallow routers and receivers some protection against misbehaving senders. * Changes from feedback from Bob Briscoe: - Added Appendix E withan initial RTOa response to Sections 1-3 ofthree seconds.Bob Briscoe's document. -Revised Section 4.6.3 to sayAdded a clarification that theTCP sender SHOULD use an initial RTO settingapproval ofthree seconds.a Quick-Start request at a router does not affect the treatment of the subsequent arriving Quick-Start data packets. - Addedtext to Section 6.2 on Multiple Paths, discussing multi-path routing. - Clarified about GPRS round-trip times.the one-way hash function as an alternate implementation for the QS Nonce. - Clarifiedabout PMTUD andthefirst windowphrase "incrementally deployable", adding the following: "We note that while Quick-Start is incrementally deployable in this sense, a Quick-Start request can not be approved for a particular connection unless both end-nodes and all ofdata. - A small reorganization, rearranging sections. * Changes from feedback from Martin Duke:the routers along the path have been configured to support Quick-Start." -Revised textClarified semantics about additional rate. - Said that when denying a rate request, the router may in the future use thesize ofQSrequests. - Added some textNonce field to report an error code. - Add Bob's suggestion from Section4.1, about when to send4.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 QSrequests. Changes from draft-amit-quick-start-04.txt: * A significantTTL by the same amountof general editing. * Becausethat it decrements theRate Request field only uses four bits, specifiedIP TTL (on the off chance that it decrements theother four bits are reserved,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 andtalkedGorry Fairhurst (and deleted the text about a possibleuse for them. This is discussed infour-bit QS nonce). * Added a new section "Quick-Start and IPsec AH", based on"A Rate-Reduced Nonce?" * Specified that afeedback 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, discussing multi-path 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. . . . . . . . . . . . . . . . . . . . . . . . .910 2. Assumptions and General Principles. . . . . . . . . . . . . .1011 2.1. Overview of Quick-Start. . . . . . . . . . . . . . . . .1113 3. The Quick-StartRequestOption inIPIP. . . . . . . . . . . . . . . . .1415 3.1. The Quick-StartRequestOption for IPv4. . . . . . . . .14. . . . 15 3.2. The Quick-StartRequestOption for IPv6. . . . . . . . .16. . . . 18 3.3. Processing the Quick-Start Request at Routers . . . . . . . . . . . . . . . . . . . . . . . . . . .17 3.4. The QS Nonce . .19 3.3.1. Processing the Report of Approved Rate . . . . . . . . . . . . . . . . . . . .18. . . . . . . 20 3.4. The QS Nonce . . . . . . . . . . . . . . . . . . . . . . 21 4. The Quick-Start Mechanisms in TCP . . . . . . . . . . . . . .2023 4.1. When to Use Quick-Start. . . . . . . . . . . . . . . . .2124 4.2. The Quick-Start Response Option in the TCP header. . . . . . . . . . . . . . . . . . . . . . . . . . . .2326 4.3. TCP: Sending the Quick-Start Response. . . . . . . . . .2427 4.4. TCP: Receiving and Using the Quick-Start Response Packet . . . . . . . . . . . . . . . . . . . . . . .2427 4.5. TCP: Responding to a Loss of a Quick-Start Packet. . . . . . . . . . . . . . . . . . . . . . . . . . . .2629 4.6. TCP: A Quick-Start Request for a Larger Ini- tial Window . . . . . . . . . . . . . . . . . . . . . . . . .2730 4.6.1. Interactions with Path MTU Discovery. . . . . . . .2730 4.6.2. Quick-Start Request Packets that are Discarded by Middleboxes . . . . . . . . . . . . . . . . .2731 4.7. TCP: A Quick-Start Request in the Middle of a Connection. . . . . . . . . . . . . . . . . . . . . . . . .. 2932 4.8. An Example Quick-Start Scenario with TCP . . . . . . . .2933 5. Quick-Start and IPsec AH. . . . . . . . . . . . . . . . . . .3034 6. Quick-Start in IP Tunnels . . . . . . . . . . . . . . . . . .3134 6.1. Simple Tunnels That Are Compatible with Quick-Start . . . . . . . . . . . . . . . . . . . . . . . . .3336 6.1.1. Simple Tunnels that are Aware of Quick- Start. . . . . . . . . . . . . . . . . . . . . . . . . . .3337 6.2. Simple Tunnels That Are Not Compatible with Quick-Start . . . . . . . . . . . . . . . . . . . . . . . . .3437 6.3. Tunnels That Support Quick-Start . . . . . . . . . . . .3538 7. The Quick-Start Mechanism in other Transport Pro- tocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3639 8. Using Quick-Start . . . . . . . . . . . . . . . . . . . . . .3740 8.1. Determining the Rate to Request. . . . . . . . . . . . .3740 8.2. Deciding the Permitted Rate Request at a Router. . . . . . . . . . . . . . . . . . . . . . . . . . . .3741 9. Evaluation of Quick-Start . . . . . . . . . . . . . . . . . .3842 9.1. Benefits of Quick-Start. . . . . . . . . . . . . . . . .3942 9.2. Costs of Quick-Start . . . . . . . . . . . . . . . . . .3942 9.3. Quick-Start with QoS-enabled Traffic . . . . . . . . . .4144 9.4. Protection against Misbehaving Nodes . . . . . . . . . .4144 9.4.1. Misbehaving Senders . . . . . . . . . . . . . . . . 44 9.4.2. Receivers Lying about Whether the Request was Approved . . . . . . . . . . . . . . . . . . .41 9.4.2.45 9.4.3. Receivers Lying about the Approved Rate . . . . . . . . . . . . . . . . . . . . . . . . . . .42 9.4.3.46 9.4.4. Collusion between Misbehaving Routers . . . . . . .43 9.4.4.47 9.5. Misbehaving Middleboxes and the IPTTL. . . . . . . . . . . . . . . . . . .TTL . . . . . . . . .44 9.5.49 9.6. Attacks on Quick-Start . . . . . . . . . . . . . . . . .45 9.6.49 9.7. Simulations with Quick-Start . . . . . . . . . . . . . .4550 10. Implementation and Deployment Issues . . . . . . . . . . . .4650 10.1. Implementation Issues for Sending Quick- Start Requests. . . . . . . . . . . . . . . . . . . . . . . .4650 10.2. Implementation Issues for Processing Quick- Start Requests. . . . . . . . . . . . . . . . . . . . . . . .4751 10.3. Possible Deployment Scenarios . . . . . . . . . . . . .4751 10.4. Would QuickStart packets take the slow path in routers? . . . . . . . . . . . . . . . . . . . . . . . . .4852 10.5. A Comparison with the Deployment Problems of ECN. . . . . . . . . . . . . . . . . . . . . . . . . . . .4853 11. Related Work . . . . . . . . . . . . . . . . . . . . . . . .4953 11.1. Fast Start-ups without Explicit Information from Routers. . . . . . . . . . . . . . . . . . . . . . . . .4953 11.2. Optimistic Sending without Explicit Infor- mation from Routers . . . . . . . . . . . . . . . . . . . . .5055 11.3. Fast Start-ups with other Information from Routers . . . . . . . . . . . . . . . . . . . . . . . . . . .5156 11.4. Fast Start-ups with more Fine-Grained Feed- back from Routers . . . . . . . . . . . . . . . . . . . . . .5256 11.5. Fast Start-ups with Lower-Than-Best-Effort Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 12. Security Considerations. . . . . . . . . . . . . . . . . . .5258 13. Conclusions. . . . . . . . . . . . . . . . . . . . . . . . .5358 14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . .5459 A. Design Decisions. . . . . . . . . . . . . . . . . . . . . . .5459 A.1. Alternate Mechanisms for the Quick-Start Request: ICMP and RSVP. . . . . . . . . . . . . . . . . . . .5459 A.1.1. ICMP. . . . . . . . . . . . . . . . . . . . . . . .5459 A.1.2. RSVP. . . . . . . . . . . . . . . . . . . . . . . .5661 A.2. Alternate Encoding Functions . . . . . . . . . . . . . .5762 A.3. The Quick-Start Request: Packets or Bytes? . . . . . . .5863 A.4. Quick-Start Semantics: Total Rate or Addi- tional Rate?. . . . . . . . . . . . . . . . . . . . . . . . .5964 A.5. Alternate Responses to the Loss of a Quick- Start Packet. . . . . . . . . . . . . . . . . . . . . . . . .6065 A.6. Why Not Include More Functionality?. . . . . . . . . . .6166 A.7.The EarlierAlternate Implementations for a QuickStart Nonce . . . . . . . . . . . . . .64 B. Quick-Start with DCCP. . . . . . . . . . . . . . 69 A.7.1. An Alternate Proposal for the Quick- Start Nonce. . . . . . .65 C. Possible Router Algorithm. . . . . . . . . . . . . . . . . 69 A.7.2. The Earlier Request-Approved QuickStart Nonce. .67 D. Possible Uses for the Reserved Fields. . . . . . . . . . . .68 Normative. . . . . . . . . . . . . 70 B. Quick-Start with DCCP . . . . . . . . . . . . . . . . . . . . 71 C. Possible Router Algorithm . . . . . . . . . . . . . . . . . . 73 D. Possible Additional Uses for the Quick-Start Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 E. Feedback from Bob Briscoe . . . . . . . . . . . . . . . . . . 75 E.1. Potential Deployment Scenarios . . . . . . . . . . . . . 76 E.2. Misbehaving Senders and Receivers. . . . . . . . . . . . 76 E.3. Fairness . . . . . . . . . . . . . . . . . . . . . . . . 77 E.4. Models of Under-Utilization. . . . . . . . . . . . . . . 78 E.5. Router Algorithms as Local Policy. . . . . . . . . . . . 78 E.6. An Alternate Proposal. . . . . . . . . . . . . . . . . . 79 Normative References . . . . . . . . . . . . . . . . . . . . . .7079 Informative References . . . . . . . . . . . . . . . . . . . . .70 E.80 F. IANA Considerations . . . . . . . . . . . . . . . . . . . . .74 E.1.85 F.1. IP Option. . . . . . . . . . . . . . . . . . . . . . . .74 E.2.85 F.2. TCP Option . . . . . . . . . . . . . . . . . . . . . . .7585 AUTHORS' ADDRESSES . . . . . . . . . . . . . . . . . . . . . . .7585 Full Copyright Statement . . . . . . . . . . . . . . . . . . . .7587 Intellectual Property. . . . . . . . . . . . . . . . . . . . . .7687 1. Introduction EachTCPconnection begins with a question: "What is the appropriate sending rate for the current network path?" The question is not answeredexplicitly for TCP,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 been appropriate in the current network conditions. 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. 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, a new TCP connection could start with a high initial cwnd if it was sharing the path and the cwnd with a pre-existing TCP connection to the same 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' to be shared with a new connection to the same host. However, neither of these approaches addresses the case of a connection to a new destination, with no existing or recent connection (and therefore congestion control state) to that destination. 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 togetgive 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. 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. [ZPS00] shows this assumption should be generally valid, although [RFC3819] discusses a range of Bandwidth on Demand subnets. * 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.General Principles: * Our underlying premise isWe note thatexplicitwhile Quick-Start is incrementally deployable in this sense, a Quick-Start request can not 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 request for a higher sending rate 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 notrequiredrequired, we also do not preclude a router from storing per-flow state for making Quick-Startdecisions.decisions or for checking for misbehaving nodes. There are also a number of questions regarding the Quick-Start mechanism that are discussed later in this document. Questions: * Would the benefits of the Quick-Start mechanism be worth the added complexity? The benefits and drawbacks of Quick-Start are discussed in more detail in Section 9 on "Evaluation of Quick-Start". * One practical consideration is that packets with known and unknown IP options are often dropped in the current Internet [MAF04].ThisWe note that this does not preclude using Quick-Start in Intranets. Further, [MAF04] also shows that over time the blocking of packets negotiating ECN has become less common, and therefore an incremental deployment story for Quick-Start based on IP Options is not out of thequestion.question for the Internet. Appendix A.1 on "Alternate Mechanisms for theQuick- StartQuick-Start Request" discusses the possibility of using RSVP or ICMP instead of IP Options for carrying Quick-Start Requests to routers. * A second practical consideration is that Quick-Start data packets could be dropped at non-IP queues along thepath.path, if the non-IP queue is a point of congestion. This is discussed in more detail in Section9.2 .9.2. * Apart from the merits and shortcomings of the Quick-Start mechanism, is there likely to be a compelling need to add explicit congestion-related feedback from routers over and above the one-bit feedback from ECN? If the answer to the question above is yes, should we be considering ways to incorporate Quick-Start in mechanisms that, while more complex, are also sufficiently more powerful than Quick-Start, or should Quick-Start be considered as orthogonal to such mechanisms? This is discussed further in Appendix A.6 on "Why Not Include More Functionality". 2.1. Overview of Quick-Start In this section we give an overview of the use of Quick-Start withTCP,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-Startcancould 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-StartRequest (QSR)(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- controlledcongestion-controlled transport protocol; we do not consider the use ofQuick- StartQuick-Start for multicast traffic.TheWhen sent as a request, the Quick-StartRequestOption includes a request for a sending rate in bytes 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 and information about the TTL to the sender usingtransport- leveltransport-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 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 --> | | Decrement | QS TTL | to approve | request --> | | Decrement | QS TTL | to approve | request --> | | <IP TTL: 61> | <QS TTL: 89> | <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 --> | | Decrement | QS TTL | to approve | request --> | | Forward packet | without modifying | Quick-Start Option. --> | | <IP TTL: 61> | <QS TTL: 90> | <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-StartRequestOption in IP 3.1. The Quick-StartRequestOption 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 |QS TTL | Resv.Func. | Rate | QS TTL | | | | 0000 |Request| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | QS Nonce | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3. The Quick-StartRequestOption 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 (mod256).256) by the same amount that they decrement the IP TTL. 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.TheFor 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)The fourth byte includes a four-bit Reserved field, andFor afour-bitRateRequest field. TheRequest, the second four bytes contain a 30-bit QS Nonce and a two-bit Reserved field. The sender SHOULD set the reservedfieldsfield to zero, and routers SHOULD ignore the reservedfields.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 A.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.We note that unlike a Quick-Start Request sent atSection 4.2 discusses thebeginning of a connection, when aQuick-StartRequest is sent inResponse from themiddle of a connection,TCP receiver to theconnection could already have an established congestion window or sending rate. The Rate Request isTCP sender, and Section 4.4 discusses therequested total rateTCP sender's mechanism forthe 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. In IPv4,determining if achange in IP options at routers requires recalculating the IP header checksum. 3.2. The Quick-Start Request Option for IPv6 TheQuick-Start RequestOption for IPv6 is placed in the Hop-by-Hop Options extension header that is processed at every network node along the communication path [RFC 2460]. The option format following the generic Hop-by-Hop Options header is similar 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.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=6 | QS TTLLength=8 |Resv.Func. | Rate | Not Used | | | ||Request| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+1000 |QS NonceReport| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Not Used | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4. The Quick-StartRequestOption forIPv6. The transport receiver compares the Quick-Start TTL withIPv4. Report of Approved Rate. If theIPv6 Hop LimitFunction field inorder to calculatetheTTL Diff. (The Hop Limit in IPv6third byte of the Quick-Start Option is set to "1000", then theequivalentQuick-Start Option is a Report of Approved Rate. In this case theTTLsecond four bits inIPv4.) That is, TTL Diff MUST be calculated and storedthe third byte are the Rate Report field, formatted exactly asfollows: TTL Diff = ( IPv6 Hop Limit - QS TTL ) mod 256 (2) Unlike IPv4, modifying or deletingin theQuick-StartRate RequestIPv6field in a Rate Request. For a Report of Approved Rate, the last five bytes of the Quick-Start Optiondoesare notrequire checksum re-calculation, becauseused. After an approved Rate Request, theIPv6 header does not havesender MUST report the Approved Rate, using achecksum field, and modifyingQuick-Start Option configured as a Report of Approved Rate with the Rate Report field set to the approved rate. The packet containing the Report of Approved Rate MUST be either a control packet sent before the first Quick-StartRequestdata packet, or a Quick-Start Option in theIPv6 Hop-by-Hop options headerfirst data packet itself. The Report of Approved Rate does notaffecthave to be sent reliably; for example, if theIPv6 pseudo-header checksum usedapproved rate is reported inupper-layer checksum calculations. Note that [RFC2460] specifies that whenaspecific flow label has been assigned to packets, the contents of the Hop-by-Hop options, excludingseparate control packet, thenext header field, must originate withsender does not necessarily know if thesame contents throughoutcontrol packet has been dropped in theIP flow lifetime. However,network. If theQuick-StartRate Requestoption would be included in onlyis denied, the sender MUST sent asmall fractionReport of Approved Rate with thepackets duringRate Report field set to zero. We note that unlike aflow lifetime. Thus,Quick-StartSHOULD NOT be used in an IPv6 connection that uses flow labels unlessRequest sent at theexperimental specification of flow labels in Appendix Abeginning ofRFC 2460a connection, when a Quick-Start Request ischanged. We note that RFC 2460 states thatsent in theusemiddle of a connection, theflow label field in IPv6 "is, atconnection could already have an established congestion window or sending rate. The Rate Request is thetimerequested total rate for the connection, including the current rate ofwriting, still experimental and subject to change astherequirementsconnection; the Rate Request is *not* a request forflow support inan additional sending rate over and above theInternet become clearer" [RFC2460]. 3.3. Processingcurrent sending rate. If theQuick-StartRate Requestat Routers Each participating router can either terminateis denied, orapprovelowered to a value below theQuick- Start Request. The router terminatesconnection's current sending rate, then theQuick-Start Request ifsender ignores therouter is not underutilized,request, andtherefore has decided notreverts togranttheQuick-Start Request. A routerdefault congestion control mechanisms of the transport protocol. We note thatwishes to terminatein IPv4, a change in IP options at routers requires recalculating the IP header checksum. 3.2. The Quick-StartRequest SHOULD delete theOption for IPv6 The Quick-StartRequest fromOption for IPv6 is placed in theIP header. This saves resources as downstream routers will have noHop-by-Hop Options extension header that is processed at every network node along the communication path [RFC 2460]. The option format following the generic Hop-by-Hop Options header is identical toprocess. If a Quick-Start-capable router wishes to denytherequest but doesn't deleteIPv4 format, with theQuick-Start Request fromexception that theIP header, thenLength field should exclude therouter SHOULD zerocommon type and length fields in theQS TTL, QS Nonce,option format andRate Request fields. This maybemore efficient for routersset toimplement than deleting the Quick- Start option. A router that doesn't understand the6 bytes instead of 8 bytes. For a Quick-Startoption will simply forwardRequest, thepacket withtransport receiver compares the Quick-StartRequest unchanged. IfTTL with theparticipating router has decidedIPv6 Hop Limit field in order toapprove the Quick-Start Request, it does the following: * The router MUST decrementcalculate theQSTTLby one. * If the router is only willing to approve a Rate Request less than thatDiff. (The Hop Limit in IPv6 is theQuick-Start Request, then the router replaces the Rate Request with a smaller value. The router MUST NOT increaseequivalent of theRate RequestTTL inthe Quick-Start Request. If the router decreases the Rate Request, the routerIPv4.) That is, TTL Diff MUSTalso modify the QS Nonce,be calculated and stored asdescribed in Section 3.4. * Infollows: TTL Diff = ( IPv6 Hop Limit - QS TTL ) mod 256 (2) Unlike IPv4, modifying or deleting therouter MUST updateQuick-Start IPv6 Option does not require checksum re-calculation, because theIPIPv6 headerchecksum. A non-participating router forwardsdoes not have a checksum field, and modifying the Quick-Start Requestunchanged, without decrementingin theQS TTL. The non-participating router still decrementsIPv6 Hop-by-Hop options header does not affect theTTL fieldIPv6 pseudo- header checksum used inthe IP header, as is required for all routers [RFC1812]. Asupper-layer checksum calculations. Note that [RFC2460] specifies that when aresult, the sender will be ablespecific flow label has been assigned todetect thatpackets, theQuick-Start Request had not been understood or approved by allcontents of therouters alongHop-by-Hop options, excluding thepath. 3.4. The QS Nonce The QS Nonce givesnext header field, must originate with theQuick-Start sender some protection against receivers lying aboutsame contents throughout thevalueIP flow lifetime. However, the Quick-Start option would be included in only a small fraction of thereceived Rate Request. Thispackets 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 isparticularly important ifchanged. We note that RFC 2460 states that thereceiver knowsuse of theoriginal valueflow label field in IPv6 "is, at the time of writing, still experimental and subject to change as theRaterequirements for flow support in the Internet become clearer" [RFC2460]. 3.3. Processing the Quick-Start Request(e.g., whenat Routers The Quick-Start Request does not report thesender always requestscurrent sending rate of thesame value, andconnection sending thereceiver has a long historyrequest; in the default case ofcommunication witha router thatsender.) Withoutdoes not maintain per-flow state, a router makes theQS Nonce, thereconservative assumption that the flow's current sending rate isnothingzero. Each participating router can either terminate or approve the Quick-Start Request. A router should only approve a Quick-Start request if the output link is underutilized, and if the router judges that the output link will continue topreventbe underutilized if thereceiver from reporting backrequest is approved. Otherwise, the router terminates the Quick- Start Request. A router that wishes to terminate thesender a RateQuick-Start Requestof K, whenSHOULD delete thereceived RateQuick-Start Requestwas in fact less than K. This version of the nonce is based on a proposalfromGuohan 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 initializetheQS NonceIP header. This saves resources as downstream routers will have no option toa random value.process. Ifthea Quick-Start-capable routerreduceswishes to deny theRaterequest but doesn't delete the Quick-Start Request fromrate K to rate K-1,the IP header, then the routerMUST set the field inSHOULD zero the QSNonce for "Rate K ->TTL, QS Nonce, and RateK-1" to a new random value. Similarly, if the router reducesRequest fields. Zeroing the Rate Requestby N steps, the router MUST set the 2N bits infield may be more efficient for routers to implement than deleting therelevant fieldsQuick-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 anew random value.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. If the participating router has decided to approve the Quick-Start Request, it does the following: * Thereceiverrouter MUSTreportdecrement the QSNonce back to the sender.TTL by one. * If the router is only willing to approve a Rate Requestwas not decrementedless than that in thenetwork,Quick-Start Request, then theQS Nonce should have its originalrouter replaces the Rate Request with a smaller value.Similarly, ifThe router MUST NOT increase the Rate Requestwas decremented by N stepsin thenetwork, andQuick-Start Request. If thereceiver reports back a Rate Request of K, thenrouter decreases thelast 2K bits ofRate Request, theQS Nonce should have their original value. Withrouter MUST also modify the QS Nonce,the receiver has a 1/4 chance of cheating about each step changeas described in Section 3.4. * In IPv4, therate request. Thus, ifrouter MUST update therate request was reduced by two steps inIP header checksum. If thenetwork,router approves thereceiver hasQuick-Start request, this approval SHOULD be taken into account in the router's decision to accept or reject subsequent Quick-Start requests (e.g., in a1/16 chance of successfully reportingvariable that tracks theoriginal request was approved, as this requires reportingrecent aggregate of accepted Quick-Start bandwidth), but this approval SHOULD NOT be used by theoriginal value forrouter to affect theQS nonce. Similarly, iftreatment of therate request is reduced many stepsdata packets that arrive from this connection in thenetwork, andnext few round-trip times. That is, thereceiver receives a QS Option with a rate request of K,approval by thereceiver has a 1/16 chancerouter ofguessing 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 hasa1/16 chance in successfully lying and sayingQuick- Start request does not give differential treatment for Quick-Start data packets at that router; it is only a statement from thereceived rate request was K+2 instead of K. We noterouter that theprotection offered byrouter believes that theQS Nonce issubsequent Quick-Start data packets from this connection will not change thesame whether one router makes allcurrent under- utilized state of thedecrements inrouter. A non-participating router forwards therate request, or whether they are made at different routers alongQuick-Start Request unchanged, without decrementing thepath.QS TTL. Therequirements for randomization fornon-participating router still decrements thesender and routers in setting `random' valuesTTL field in theQS Nonce are not stringent - almost any form of pseudo-random numbers would do. The requirement fromIP header, as is required for all routers [RFC1812]. As a result, the senderiswill be able to detect that theoriginal value for the QS Nonce isQuick-Start Request had noteasily guessablebeen understood or approved bythe receiver. Thus, if two bitsall of theQS Nonce are changed by a routerrouters along thepath, the receiver should not be able to guess those two bits from the other 28 bits inpath. 3.3.1. Processing theQS Nonce. A requirementReport of Approved Rate If therouters is thatQuick-Start Option has thereceiver can not be ableFunction field set totell, from the QS Nonce itself, which numbers in the QS Nonce were generated by the sender,"1000", then this is a Report of Approved Rate, rather than a Rate Request. The router MAY ignore such an option, andwhich were generated by routers along the path. This makesin any case itharder for the receiver to inferMUST NOT modify thevaluecontents of theoriginal rate request, making it one step harderoption forthe receiver to cheat. Section 9.4 also considers issuesa Report ofreceiver 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 sketchApproved Rate. However, theprocedure and then tightly define it inrouter MAY use thesubsequent subsections. If a TCP sender, say host A, would likeApproved Rate report touse Quick-Start,check that theTCPsenderputsis not lying about the approved rate. If the reported Approved Rate is higher than therequested sendingratein bytes per second, appropriately formatted,that the router actually approved for this connection in the previous round-trip time, then the router may decide to deny future Quick-StartRequest optionrequests 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 theIP headerReport of Approved Rate, theTCP packet, calledrouter can also learn if some of the downstream routers have approved the Quick-Start requestpacket. (We will be somewhat loose in our use of "packet" vs. "segment" in this section.) The Quick-Start Request also includes random valuesforthe QS TTLa smaller rate, and adjust its bandwidth allocations accordingly. From a Report of Approved Rate with a Rate Report of zero, theQS Nonce. When used for initial start-up, the Quick-Start request packetrouter canbe eitherlearn if downstream routers denied theSYN or SYN/ACK packet, as described above.earlier Quick-Start request. 3.4. Therequested rate includes an estimate for the transport and IP header overhead.QS Nonce TheTCP receiver, say host B, returnsQS Nonce gives the Quick-StartResponse option in the TCP header in the responding SYN/ACK packet or ACK packet, calledsender some protection against receivers lying about theQuick-Start response packet, informing host Avalue of theresults of their request. Ifreceived Rate Request. This is particularly important if theacknowledging packet does not contain a Quick-Start Response, or contains a Quick-Start Response withreceiver knows thewrongoriginal valueforof theTTL Diff orRate Request (e.g., when theQS Nonce, then host A MUST assume that its Quick-Start request failed. In this case, host A uses TCP's default congestion control procedure. For initial start-up, host A usessender always requests thedefault initial congestion window. Ifsame value, and thereturning packet containsreceiver has avalid Quick-Start Response, then host A uses the information in the response, along with its measurementlong history of communication with that sender). Without theround-trip time,QS Nonce, there is nothing todetermineprevent theQuick-Start congestion window (QS-cwnd). Quick-Start packets are defined as packets sent as the result of a successful Quick-Start request, upreceiver from reporting back to thetimesender a Rate Request of K, when thefirst Quick-Start packet is acknowledged. In order to use Quick-Start, the TCP host MUST use rate-based pacing to transmit Quick-Start packets at the rate indicatedreceived Rate Request was inthe Quick- Start Response, at the levelfact less than K. This version ofgranularity possible by the sending host. We note thatthelimitations of interrupt timingnonce is based oncomputers 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 sentaQuick-Start Request in the SYN packet,proposal from Guohan Lu [L05]. Initial versions of this document contained an eight-bit QS Nonce, andhost B could also send a Quick-Start Request in the SYN/ACK packet. 4.1. When to Use Quick-Start In addition tosubsequent versions discussed theusepossibility ofQuick-Start when a connection is established, there are several additional points in a connection when a transport protocol may want to issueaRate Request. We first re-iteratefour-bit QS Nonce. Table 2 gives thenotion that Quick-Start is a coarse-grained mechanism. That is, Quick-Start's Rate Requests are not meant to be usedformat forfine-grained control of the transport's sending rate. Rather,thetransport MAY issue a30-bit QS Nonce. Bits Purpose --------- ------------------ Bits 0-1: RateRequest when no information about the appropriate sending rate is available, and the default congestion control mechanisms15 -> 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, using the requirements for "randomness" in the previous paragraph. 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 receiver can not 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 bytes 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.) The Quick-Start Request also includes random values for the QS TTL and the QS Nonce. When used for initial start-up, the Quick-Start request packet can be either the SYN or SYN/ACK packet, as described above. The requested rate includes an estimate for the transport and IP header overhead. The TCP receiver, say host B, returns the Quick-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. 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 sends a Report of Approved Rate. In order to use Quick-Start, the TCP host MUST use rate-based pacing to transmit Quick-Start packets at the rate indicated in the Quick- 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. When to Use Quick-Start 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, as discussed above. (A transport that uses TCP Control Block sharing, the Congestion Manager, or the like 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 networkfor the appropriate rate at whichtosend.see if it can send at a higher rate. (Alternatively, traditional slow-start should be used in this case whenQuick- StartQuick-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 toassess the available capacity ondetermine if thenetwork path.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-StartRateRequest. As a general guideline, a TCP sender SHOULD NOT send a Quick-Start request until it has confirmed that is ready to transmit enough data to use the requested rate over the round-trip time of the connection (or over 100 ms, if the round-trip time is not known). 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. Section 4.6 discusses some of the issues of using Quick-Start at connection initiation, and Section 4.7 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 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure6.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 four bytes. The third byte of theQuick-Start Response option contains a four- bit Reserved field, andQuick-Start Response option contains a four- bit Reserved field, and the four-bit allowed Rate Request, formatted as in the Quick-Start 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). The last four bytes of the TCP option contain the 30-bit QS Nonce and a two-bit Reserved field. We note that the Quick-Start Response Option for TCP contains eight bytes, and the length of the TCP option field is generally at most 40 bytes. Other TCP options that might be used include Time Stamp (ten bytes), Window Scale (three bytes), Maximum Segment Size (four bytes), Selective Acknowledgments Data (at least ten 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 thefour-bit allowedRateRequest, formatted asRequest in the Quick-StartRequest option. The fourth byte ofoption, or to a lower value if the TCPoption contains the TTL Diff.receiver is only willing to allow a lower Rate Request. The TTL Diffcontainsin the Quick-Start Response is set to the difference between the IP TTL value and the QS TTLfields in the received Quick-Start request packet,value ascalculatedgiven inequationsequation (1) or (2) (depending on whether IPv4 or IPv6 is used). Thelast four bytes ofQS Nonce in theTCP option containResponse is set to the received value of the30-bitQS Nonce in the Quick-Start option. The Quick-Start Response will NOT be resent if it is lost in the network. Packet loss is 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 atwo-bit Reserved field. We noteQuick-Start Response in an acknowledgement first checks that the Quick-Start ResponseOption for TCPis valid. The Quick-Start Response is valid if it containseight bytes,the correct value for the TTL Diff, and an equal or lesser value for thelengthRate Request than that transmitted in the Quick-Start Request. In addition, if the received Rate Request is K, then the the rightmost 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 TCPoption field is generally at most 40 bytes. Otherhost MUST use the default TCPoptionscongestion window thatmight beit would have usedinclude Time Stamp (ten bytes), Window Scale (three bytes), Maximum Segment Size (four bytes), Selective Acknowledgments Data (at least ten bytes), and Selective Acknowledgments Permitted (two bytes). 4.3. TCP: Sendingwithout Quick-Start. If the rightmost 2K bits of the QS Nonce do not match those bits in the QS Nonce sent in the Quick-StartResponse An end host, say host B, that receives an IP packet containingRequest, for aQuick-Startreceived Rate Requestpassesof K, then the TCP host MUST NOT send additional Quick-StartRequest, along withrequests during thevalue inlife of theIP TTL field, toconnection. Whether thereceiving TCP layer. IfQuick-Start request was successful or not, the TCP hostis willing to permitMUST send a Report of Approved Rate. If theQuick-Start Request,checks of the TTL Diff and the Rate Request are successful, thena Quick-Start Response option is included inthe TCPheaderhost 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 thecorresponding acknowledgement packet. TheRate Request in bytes per second, T the measured round- trip time in seconds, and H theQuick-Start Response optionestimated 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. When Quick-Start is used at thereceived valuebeginning of a connection, before any packet marks or losses have been reported, theRate Request inTCP host MAY use theQuick-Startreported Rate Requestoption, ortoa lower value ifset theTCP receiver is only willingslow-start threshold toallowalower Rate Request. The TTL Diff in the Quick-Start Response is setdesired value, e.g., to some small multiple of thedifference between the IP TTL value and the QS TTLcongestion window. (The initial valueas given in equation (1) or (2) (depending on whether IPv4 or IPv6 is used). The QS Nonce in the Responseof ssthresh issetallowed to be arbitrarily high, and some TCP implementations use thereceived valuesize of theQS Nonce inadvertised window for ssthresh [RFC2581].) If QS-cwnd is used, theQuick-Start Request option. The Quick-Start Response will NOT be resent ifTCP host sets a flag that it islostinthe network. Packet loss is an indication of congestion on the return path,Quick- Start mode, and while inwhich case it is better not to approveQuick-Start mode the TCP sender MUST use rate-based pacing to pace out Quick-StartRequest. 4.4. TCP: Receiving and Usingpackets at the specified Rate Request. If, during Quick-StartResponse Packet A TCP host, saymode, the TCPhost A, thatsender receives ACKs for packets sentabefore this Quick-StartRequest and receives amode was entered, these ACKs are processed as usual, following the default congestion control mechanisms. Quick-StartResponse inmode ends when the TCP host receives anacknowledgementACK for one of the Quick-Start packets. If the congestion window has not been fully used when the firstchecks thatack arrives ending the Quick-StartResponsemode, then the congestion window isvalid. Thedecreased to the amount that has actually been used so far. This is necessary because when the Quick-Start Response isvalid if it containsreceived, thecorrect valueTCP sender's round-trip-time estimate might be longer than for succeeding round-trip times, e.g., because of delays at routers processing theTTL Diff, and an equalIP QuickStart option, orlesser value forbecause of delays at theRate Request than that transmittedreceiver in responding to the Quick-StartRequest. In addition, if the received RateRequestis K, then thepacket. In this case, an overly-large round-trip-time estimate could have caused therightmost 2K bits ofTCP sender to translate theQS Nonce must match those bitsapproved Quick-Start sending rate in bytes per second into a congestion window that is larger than needed, with theQS Nonce sent inTCP sender receiving an ACK for theQuick-Start Request. If these checks are not successful, thenfirst Quick- Start packet before theQuick-Start request failed, andentire congestion window has been used. Thus, when the TCPhost MUST usesender receives thedefault TCPfirst ACK for a Quick-Start packet, the sender reduces its congestion windowthat it would have used without Quick-Start. Ifto thechecksamount that has actually been used. As an example, a TCP sender with an approved Quick-Start request ofthe TTL DiffR KBps, B-byte packets including headers, and an RTT estimate of T seconds, would translate the Rate Requestare successful, then the TCP host sets its Quick-Startof R KBps to a congestion window(in termsofMSS-sized segments), QS-cwnd, as follows: QS-cwnd = (R * T) / (MSS + H) (3) where RR*T/B packets. The TCP sender would send theRate Request in bytes per second, TQuick-Start packets rate-paced at R KBps. However, if themeasuredactual current round- trip timeinwas T/2 seconds instead of T seconds,and H the estimated TCP/IP header size in bytes (e.g., 40 bytes). Derivation:then the senderis allowedwould begin totransmit 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. Thereceive acknowledgements for Quick-Start packets after T/2 seconds. Following the paragraph above, the TCPhost SHOULD setsender would then reduce its congestion windowcwndfrom R*T/B toQS-cwnd only if QS-cwnd is greater than cwnd; otherwise QS-cwnd is ignored. When Quick-Start is used atR*T/(B*2) packets, thebeginningactual number ofa connection, before any packet marks or losses have been reported, the TCP host MAY use the reported Rate Requestpackets that were needed tosetfill theslow-start threshold topipe at adesired value, e.g., to some small multiple of the congestion window. (The initial valuesending rate ofssthreshR KBps. After Quick-Start mode isallowed to be arbitrarily high,exited andsome TCP implementations usethesize of the advertisedcongestion windowfor ssthresh [RFC2581].) If QS-cwnd is used,adjusted if necessary, the TCPhost sets a flag that it issender 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 inQuick- Start mode,slow-start prior to the Quick-Start request, andwhileno packets were lost or marked since that time, then the sender continues in slow-start after exiting Quick-Startmodemode, as allowed by ssthresh. To add robustness, the TCP sender MUST userate-based pacing to pace out Quick-StartLimited Slow-Start [RFC3742] along with Quick-Start. With Limited Slow-Start, the TCP sender limits the number of packetsatby which thespecified Rate Request. If,congestion window is increased for one window of data during slow-start. 4.5. TCP: Responding to a Loss of a Quick-Startmode,Packet For TCP, we have defined a ``Quick-Start packet'' as one of theTCP sender receives ACKs forpackets sentbefore this Quick-Start mode was entered, these ACKs are processed as usual,in the window immediately following a successful Quick- Start request. After detecting the loss of a Quick-Start packet, TCP MUST revert to the default congestion controlmechanisms. Quick-Start mode ends when the TCP host receives an ACK for one ofprocedures that would have been used if the Quick-Startpackets. If the congestion window hasrequest had not beenfullyapproved. For example, if Quick-Start is usedwhen the first ack arrives endingfor setting theQuick-Start mode, theninitial window, and a packet from thecongestioninitial window isdecreased tolost, then theamountTCP sender MUST then slow-start with the default initial window thathas actuallywould have been usedso far. This is necessary because when theif Quick-StartResponse is received,had not been used. In addition to reverting to theTCP sender's round-trip-time estimate might be longer than for succeeding round-trip times, e.g., because of delays at routers processingdefault congestion control mechanisms, theIP QuickStart option, or because of delayssender MUST take into account that the Quick-Start congestion window was too large. Thus, the sender SHOULD decrease ssthresh to at most half thereceivernumber of Quick-Start packets that were successfully transmitted. Section A.5 discusses possible alternatives in responding to the loss of a Quick-StartRequestpacket.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 windowWe note that ECN [RFC3168] MAY be used with Quick-Start. As islarger than needed,always the case with ECN, theTCP sender receivingsender's congestion control response to anACK for the first Quick- StartECN-marked Quick-Start packetbefore the entire congestion window has been used. Thus, whenis theTCP sender receivessame as thefirst ACK forresponse to a dropped Quick-Start packet, thus reverting to slow start in thesender reduces its congestion windowcase of Quick-Start packets marked as experiencing congestion. 4.6. TCP: A Quick-Start Request for a Larger Initial Window Some of the issues of using Quick-Start are related to theamount that has actually beenspecific scenario in which Quick-Start is used.As an example, aThis section discusses the following issues that arise when Quick-Start is used by TCPsenderto request a larger initial window: (1) interactions withan approvedPath MTU Discovery (PMTUD); and (2) Quick-Start requestof R KBps, B-bytepacketsincluding headers,that are discarded by middleboxes. 4.6.1. Interactions with Path MTU Discovery One issue when Quick-Start is used to request a large initial window concerns the interactions between the large initial window andan RTT estimatePath MTU Discovery. Some ofT seconds, would translatetheRate Requestissues are discussed in RFC 3390: "When larger initial windows are implemented along with Path MTU Discovery [RFC1191], alternatives are to set the "Don't Fragment" (DF) bit in all segments in the initial window, or to set the "Don't Fragment" (DF) bit in one ofR KBpsthe segments. It is an open question as toa congestion windowwhich ofR*T/B packets. The TCPthese two alternatives is best." If the senderwould sendknows theQuick-Start packets rate-paced at R KBps. However, ifPath MTU when theactual current round- trip time was T/2 seconds instead of T seconds,initial window is sent (e.g., from a PMTUD cache or from some other IETF-approved method), then the senderwould begin to receive acknowledgementsshould use that MTU forQuick-Startsegments in the initial window. Unfortunately, the sender doesn't necessarily know the Path MTU when it sends packetsafter T/2 seconds. Followingin theparagraph above,initial window. In this case, theTCPsenderwould then reduce its congestion window from R*T/B to R*T/(B*2) packets,should be conservative in theactualpacket size used. Sending a large number of overly-large packetsthat were needed to fillwith thepipe at aDF bit set is not desirable, but sendingratea large number ofR KBps. After Quick-Start mode is exited andpackets that are fragmented in thecongestionnetwork can be equally undesirable. The sender SHOULD send one large packet in the initial windowadjusted if necessary,with theTCP sender returns to usingDF bit set, and send thedefault congestion control mechanisms, processing further incoming ACKremaining packetsas specified by those congestion control mechanisms. For example, ifin the initial window with a smaller MTU of 576 bytes (or 1280 bytes with IPv6). A second possibility would be for theTCPsenderwas in slow-start priorto delay sending the Quick-Startrequest, and no packets were lost or marked since thatRequest for one round-trip time,thensending thesender continues in slow-start after exitingQuick-Startmode, as allowed by ssthresh. To add robustness, the TCP sender MUST use Limited Slow-Start [RFC3742] alongRequest withQuick-Start. With Limited Slow-Start, the TCP sender limitsthenumberfirst window ofpacketsdata while also doing Path MTU Discovery. 4.6.2. Quick-Start Request Packets that are Discarded bywhich the congestion windowMiddleboxes It isincreasedalways possible forone window of data during slow-start. 4.5. TCP: Responding toaLoss ofTCP SYN packet carrying a Quick-StartPacket For TCP, we have definedrequest to be dropped in the network due to congestion, or to be blocked due to interactions with middleboxes, where a``Quick-Start packet''middlebox is defined asoneany intermediary box performing functions apart from normal, standard functions of an IP router on thepackets sent in the window immediately followingdata path between asuccessful Quick- Start request. After detecting the losssource host and destination host [RFC3234]. Measurement studies ofa Quick-Start packet, TCP MUST revert to the default congestion control proceduresinteractions between transport protocols and middleboxes [MAF04] show thatwould have been usedfor 70% of the web servers investigated, no connection is established if theQuick-Start request had not been approved. For example,TCP SYN packet contains an unknown IP option (and for 43% of the web servers, no connection is established ifQuick-Startthe TCP SYN packet contains an IP TimeStamp Option). In both cases, this isused for settingpresumably due to middleboxes along that path. If theinitial window, andTCP sender doesn't receive a response to the SYN or SYN/ACK packetfromcontaining theinitial window is lost,Quick-Start Request, then the TCP senderMUST then slow-start withSHOULD resend thedefault initial window that would have been used if Quick-Start had not been used. In addition to reverting toSYN or SYN/ACK packet without thedefault congestion control mechanisms,Quick-Start Request. Similarly, if the TCP senderMUST take into account thatreceives a TCP reset in response to the SYN or SYN/ACK packet containing the Quick-Startcongestion window was too large. Thus,Request, then the TCP sender SHOULDdecrease ssthresh to at most halfresend the SYN or SYN/ACK packet without thenumber ofQuick-StartpacketsRequest [RFC3360]. RFC 1122 and 2988 recommend thatwere successfully transmitted. Section A.5 discusses possible alternatives in respondingthe sender should set the initial RTO to three seconds, though many TCP implementations set theloss ofinitial RTO to one second. For aQuick-Start packet. We note that ECN [RFC3168] MAY be usedTCP SYN packet sent withQuick-Start. As is alwaysa Quick- Start request, thecase with ECN,TCP sender SHOULD use an initial RTO of three seconds. In thesender's congestion control responsecase of a retransmission, in addition toan ECN-marked Quick-Startresending the SYN or SYN/ACK packetiswithout thesame asQuick-Start Request, theresponse toTCP sender SHOULD use an RTO of three seconds and adropped Quick-Start packet, thus reverting to slow start indifferent Initial Sequence Number. Using this scheme thecaseTCP sender MUST keep track ofQuick-Startwhen each of the SYN (or SYN/ACK) packetsmarked as experiencing congestion. 4.6. TCP: A Quick-Start Requestwas transmitted. In this way, an acknowledgement fora Larger Initial Window Some oftheissuesretransmitted SYN or SYN/ACK packet can be matched with the SYN or SYN/ACK being acknowledged, and the transmission time ofusing Quick-Start are relatedthe SYN (or SYN/ACK) being acknowledged can be used for an RTT measurement to seed thespecific scenario in which Quick-Start is used. This section discussesRTO. If only thefollowing issues that arise when Quick-Startretransmitted SYN or SYN/ACK isused byacknowledged, the TCPto request a larger initial window: (1) interactions with Path MTU Discovery (PMTUD); and (2) Quick-Start request packetssender can reasonably assume thatare discarded by middleboxes. 4.6.1. Interactionsthe earlier SYN or SYN/ACK withPath MTU Discovery One issue when Quick-Start is used to request a large initial window concernstheinteractions betweenQuick- Start option was dropped by thelarge initial window and Path MTU Discovery. Somenetwork because of theissues are discussed in RFC 3390: "When larger initial windows are implemented along with Path MTU Discovery [RFC1191], alternatives are to setoption and not because of congestion. In this case, the"Don't Fragment" (DF) bit in all segments inTCP sender can refrain from performing TCP's standard congestion control state changes. We note that if theinitial window, or to setTCP SYN packet is using the"Don't Fragment" (DF) bitIP Quick-Start Option for a Quick-Start request, and it is also using bits inone ofthesegments. It is an open question asTCP header towhich of these two alternatives is best." If the sender knowsnegotiate ECN-capability with thePath MTU whenTCP host at theinitial window is sent (e.g., from a PMTUD cache or from someotherIETF-approved method),end, then thesender should use that MTU for segments indrop of a TCP SYN packet could be due to congestion, to a middlebox dropping theinitial window. Unfortunately,packet because of thesender doesn't necessarily knowIP Option, or because of a middlebox dropping thePath MTU when it sends packetspacket because of the information in theinitial window.TCP header negotiating ECN. In this case, the sendershould be conservative incould resend the dropped packetsize used. Sending a large number of overly-large packets withwithout either theDF bit set is not desirable, but sending a large number of packets that are fragmented inQuick- Start or the ECN requests. Alternately, thenetwork can be equally undesirable. ThesenderSHOULD send one largecould resend the dropped packet with only the ECN request in theinitial window withTCP header, resending theDF bit set, and sendTCP SYN packet without either theremaining packets inQuick-Start or the ECN requests if theinitial window with a smaller MTU of 576 bytes (or 1280 bytes with IPv6). Asecondpossibility wouldTCP SYN packet is dropped. The second choice seems reasonable, given that a TCP SYN packet today is more likely to befor the senderblocked due todelay sendingIP Options than due to an ECN request in the TCP header [MAF04]. It is always possible that some middlebox that doesn't drop TCP SYN packets containing Quick-StartRequest foroptions will still drop or delay TCP data packets containing Quick-Start options as Approved Rate reports. This would be oneround-trip time, sendingreason for a TCP sender to report the Approved Rate in a separate control packet, rather than in a data packet. 4.7. TCP: A Quick-Start Requestwithin thefirst windowMiddle ofdata while also doing Path MTU Discovery. 4.6.2. Quick-Start Request Packetsa Connection This section discusses the following issues thatare Discarded by Middleboxes Itarise when Quick- Start isalways possible for aused by TCPSYN packet carrying a Quick-Start requesttobe droppedrequest a larger window in thenetwork due to congestion, or to be blocked due to interactions with middleboxes, where a middlebox is defined as any intermediary box performing functions apart from normal, standard functionsmiddle of connection, for example after anIP router onidle period: (1) determining thedata path between a source host and destination host [RFC3234]. Measurement studies of interactions between transport protocolsrate to request; andmiddleboxes [MAF04] show that for 70% of(2) theweb servers investigated, no connection is establishedresponse if Quick-Start packets are dropped; (1) Determining theTCP SYN packet containsrate to request: In the middle of connection, anunknown IP option (and for 43%easy rule of thumb would be for theweb servers, no connection is established ifTCP sender to determine the largest congestion window that the TCPSYNconnection achieved since the last packetcontains an IP TimeStamp Option). In both cases,drop, to translate thisis presumably duecongestion window tomiddleboxes along that path.a sending rate, and use this rate in the Quick- Start request. If theTCP sender doesn't receive a response torequest is granted, then theSYN or SYN/ACK packet containingsender essentially restarts with its old congestion window from before it was reduced, for example during an idle period. In theQuick-Start Request, thencase of an idle period, theTCPsender SHOULDresendNOT use Quick-Start if theSYN or SYN/ACK packet withoutidle period has been less than an RTO, and the congestion window has not decayed down to less than half of its value at the start of the idle period. Such a use of Quick-StartRequest. Similarly, ifrequires further investigation. A Quick-Start Request sent in theTCP sender receivesmiddle of a TCPresetconnection could be carried either inresponse to the SYN or SYN/ACKa data packetcontaining theor in a pure acknowledgement packet. (2) Response if Quick-StartRequest,packets are dropped: If Quick-Start packets are dropped in the middle of connection, then theTCPsenderSHOULD resendMUST revert to half of theSYNQuick-Start window, orSYN/ACK packet withoutto theQuick-Start Request [RFC3360]. RFC 1122 and 2988 recommendcongestion window that the sendershould setwould have used if theinitial RTO to three seconds, though manyQuick-Start request had not been approved, whichever is smaller. 4.8. An Example Quick-Start Scenario with TCPimplementations setThe following is an example scenario in the case when both hosts request Quick-Start for setting their initialRTOwindows. This is similar toone second. ForFigures 1 and 2 in Section 2.1, except that it illustrates a TCPSYN packet sentconnection witha Quick- Start request, theboth TCP hosts sending Quick-Start Requests. * The TCPsender SHOULD use an initial RTO of three seconds. In the case of a retransmission, in addition to resending theSYNor SYN/ACKpacketwithout thefrom Host A contains a Quick-StartRequest,Request in theTCP sender SHOULD use an RTO of three seconds and a different Initial Sequence Number. Using this schemeIP header. * Routers along theTCP sender MUST keep track of when each offorward path modify theSYN (or SYN/ACKs) was transmitted. In this way, an acknowledgement forQuick-Start Request as appropriate. * Host B receives theretransmitted SYN or SYN/ACK packet can be matched withQuick-Start Request in the SYNor SYN/ACK being acknowledged,packet, and calculates thetransmission time of the SYN (or SYN/ACK) being acknowledged can be used for an RTT measurement to seed the RTO.TTL Diff. IfonlyHost B approves theretransmitted SYN or SYN/ACK is acknowledged,Quick-Start Request, then Host B sends a Quick-Start Response in the TCPsender can reasonably assume thatheader of theearlier SYN orSYN/ACKwith the Quick- Start option was dropped by the network because ofpacket. Host B also sends a Quick-Start Request in theoption and not becauseIP header ofcongestion. In this case,theTCP sender can refrain from performing TCP's standard congestion control state changes. We note that ifSYN/ACK packet. * Routers along theTCP SYN packet is usingreverse path modify theIPQuick-StartOption for aRequest as appropriate. * Host A receives the Quick-Startrequest, and it is also using bitsResponse in theTCP header to negotiate ECN-capability with the TCP host atSYN/ACK packet, and checks theother end,TTL Diff, Rate Request, and QS Nonce for validity. If they are valid, thenthe drop of a TCP SYN packet could be due to congestion,Host A sets its initial congestion window appropriately, and sets up rate-based pacing toa middlebox dropping the packet because of the IP Option, or because of a middlebox dropping the packet because ofbe used with theinformation ininitial window. If theTCP header negotiating ECN.Quick-Start Response is not valid, then Host A uses TCP's default initial window. Inthis case, the sender could resend the dropped packet withouteither case, Host A sends a Report of Approved Rate. Host A also calculates theQuick- Start or the ECN requests. Alternately, the sender could resendTTL Diff for thedropped packet with onlyQuick-Start Request in theECN requestincoming SYN/ACK packet, and sends a Quick-Start Response in the TCPheader, resendingheader of theTCP SYN packet without eitherACK packet. * Host B receives the Quick-StartorResponse in an ACK packet, and checks theECN requests ifTTL Diff, Rate Request, and QS Nonce for validity. If thesecond TCP SYN packet is dropped. The second choice seems reasonable, given that a TCP SYN packet todayQuick-Start Response ismore likelyvalid, then Host B sets its initial congestion window appropriately, and sets up rate-based pacing to beblocked due to IP Options than due to an ECN request inused with its initial window. If theTCP header [MAF04]. 4.7. TCP: AQuick-StartRequest in the MiddleResponse is not valid, then Host B uses TCP's default initial window. In either case, Host B sends a Report ofConnectionApproved Rate. 5. Quick-Start and IPsec AH This sectiondiscusses the following issuesshows thatarise when Quick- StartQuick-Start isused by TCP to request a larger window in the middle of connection, for example aftercompatible with IPsec AH (Authentication Header). AH uses anidle period: (1) determiningIntegrity Check Value (ICV) in therateIPsec Authentication Header torequest;verify both message authentication and(2)integrity [RFC2402,2402bis]. Changes to theresponse ifQuick-Startpackets are dropped; (1) Determiningoption in therateIP header do not affect this AH ICV. The tunnel considerations in Section 6 below apply torequest: In the middle of connection, an easy ruleall IPsec tunnels, regardless ofthumb would be for the TCP sender to determine the largest congestion window thatwhat IPsec headers or processing are used in conjunction with theTCP connection achieved sincetunnel. Because thelast packet drop, to translate this congestion window to a sending rate, and use this rate incontents of theQuick- Start request. IfQuick-Start option can change along therequestpath, it isgranted, thenimportant that these changes not affect thesender essentially restartsIPsec 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 problems withits old congestion window from before it was reduced,existing IPsec AH implementations forexample during an idle period. In the case of an idle period,IPv4. If thesender SHOULD NOT useQuick-Startif the idle period has been less than an RTO,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 thecongestion window has not decayed down to less than half of its value at the start ofoption is mutable; theidle period. Such a use of Quick-Start requires further investigation. (2) Response if Quick-Start packets are dropped: If Quick-Start packets are dropped3rd highest order bit in themiddle of connection, then the sender MUST revert to half ofIANA-allocated option type has theQuick-Start window, orvalue 1 tothe congestion windowindicate that thesender would have used if theQuick-Startrequest had not been approved, whichever is smaller. We noteoption data can change en route. RFC 2402 requires thata packet inthemiddle of a connection carrying a Quick-Start Request might or might not carry aoption datapayload. For example,of any such option be zeroed forTCP,AH ICV computation purposes. Therefore changes to the Quick-StartRequest could be carried by a data packet, or by a pure acknowledgement packet. 4.8. An Example Quick-Start Scenario with TCP The following is an example scenariooption in thecase when both hosts requestIP header do not affect the calculation of the AH ICV. 6. Quick-Startfor setting their initial windows. This is similar to Figures 1 and 2inSection 2.1, except that it illustrates a TCP connection with both TCP hosts sending Quick-Start Requests. * The TCP SYN packet from Host A contains aIP Tunnels This section considers interactions between Quick-StartRequestand IP tunnels, including IPsec [RFC2401,2401bis] and IP in IP [RFC2003]. In the discussion, we use TTL Diff, defined earlier as the difference between the IPheader. * Routers alongTTL and the Quick-Start TTL, mod 256. Recall that the sender considers the Quick-Start request approved only if theforward path modifyvalue of TTL Diff for theQuick-Start Request as appropriate. * Host B receivespacket entering theQuick-Start Request innetwork is theSYN packet, and calculatessame as the value of TTLDiff. If Host B approvesDiff for theQuick-Start Request, then Host B sends a Quick-Start Response inpacket exiting theTCPnetwork. Simple tunnels: IP tunnel modes are generally based on adding a new "outer" IP headerofthat encapsulates theSYN/ACKoriginal or "inner" IP header and its associated packet.Host B also sends a Quick-Start Request inIn many cases, the new "outer" IP headerof the SYN/ACK packet. * Routersmay be added and removed at intermediate points along a connection, enabling thereverse path modifynetwork to establish a tunnel without requiring endpoint participation. We denote tunnels that specify that theQuick-Start Requestouter header be discarded at tunnel egress asappropriate. * Host A receives the Quick-Start Response in the SYN/ACK packet,"simple tunnels", andcheckswe denote tunnels where theTTL Diff, Rate Request, and QS Nonce for validity. If they are valid, then Host A sets its initial congestion window appropriately,egress saves andsets up rate-based pacing touses information from the outer header before discarding it as "non- simple tunnels". An example of a "non-simple tunnel" would beuseda tunnel configured to support ECN, where the egress router might copy the ECN codepoint in the outer header to the inner header before discarding the outer 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 withthe initial window. If theQuick-Start, \ but Not Supporting Quick-StartResponse is\ \__ 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 notvalid, then Host A uses TCP's default initial window. Host A also calculates the TTL Diff forcompatible with Quick-Start' if theQuick-Startuse of a Quick- Start Requestin the incoming SYN/ACK packet, and sendsover such aQuick-Start Response intunnel allows false positives, where the TCPheader of the ACK packet. * Host B receivessender incorrectly believes that the Quick-StartResponse in an ACK packet, and checksRequest was approved by all routers along theTTL Diff, Rate Request, and QS Nonce for validity.path. If the use of Quick-StartResponse is valid, then Host B sets its initial congestion window appropriately, and sets up rate-based pacing to be usedover the tunnel does not cause false positives, we say that the IP tunnel `is compatible withits initial window.Quick-Start'. If theQuick-Start ResponseIP TTL of the inner header isnot valid,decremented during forwarding before tunnel encapsulation takes place, thenHost B uses TCP's default initial window. 5. Quick-Start and IPsec AH This section shows that Quick-Startthe simple tunnel is compatible withIPsec AH (Authentication Header). AH uses an Integrity Check Value (ICV)Quick-Start, with Quick-Start requests being rejected. Section 6.1 describes in more detail theIPsec Authentication Header to verify both message authentication and integrity [RFC2402,2402bis]. Changes toways that a simple tunnel can be compatible with Quick-Start. There are some simple tunnels that are not compatible with Quick- Start, allowing `false positives' where the TCP sender incorrectly believes that the Quick-Startoption inRequest was approved by all routers along theIP header do not affect this AH ICV. The tunnel considerationspath. This is discussed in Section3.6 below apply to all IPsec tunnels, regardless6.2 below. One ofwhat IPsec headers or processing are usedour tasks inconjunction withthetunnel. Becausefuture will be to investigate thecontentsoccurrence of tunnels that are not compatible with Quick-Start, and to track theQuick-Start Request option can change alongextent to which such tunnels are modified over time. The evaluation of thepath, it is importantproblem of false positives from tunnels thatthese changesare not compatible with Quick-Start will affect theIPsec Authentication Header Integrity Check Value (AH ICV). For IPv4, RFC 2402 requires that unrecognized IPv4 options be zeroed for AH ICV computation purposes, soprogression of Quick-Start from Experimental to Proposed Standard, and will affect the degree of deployment of Quick-Start while in Experimental mode. Tunnels that support Quick-Start: We say that an IPOption data changing en route does not cause problems with existing IPsec AH implementations for IPv4. Iftunnel `supports Quick-Start' if it allows routers along the tunnel path to process the Quick-Start Requestoption is recognized, it MUST be treated as a mutable IPv4 option,andhence be completely zeroed for AH ICV calculation purposes. IPv6 option numbers explicitly indicate whethergive feedback, resulting in theoptionappropriate possible acceptance of the Quick-Start request. Some tunnels that are compatible with Quick-Start support Quick-Start, while others do not. We note that a simple tunnel ismutable;not able to support Quick-Start. From a security point of view, the3rd highest order bituse of Quick-Start in theIANA-allocated option type hasouter header of an IP tunnel might raise security concerns because an adversary could tamper with thevalue 1 to indicateQuick-Start information that propagates beyond the tunnel endpoint, or because the Quick-StartRequestOption exposes information to network scanners. Our approach is to make supporting Quick-Start an optiondata can change en route. RFC 2402 requires thatfor IP tunnels. That is, in environments or tunneling protocols where theoption datarisks ofany such option be zeroed for AH ICV computation purposes. Therefore changesusing Quick- Start are judged to outweigh its benefits, the tunnel can simply delete the Quick-Start optioninor zero the Quick-Start rate request and QS TTL fields before encapsulation. The result is that there are two viable options for IPheader do not affecttunnels to be compatible with Quick- Start. The first option is thecalculation ofsimple tunnel described above and in Section 6.1, where theAH ICV. 6.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 inIPSection 6.3, where the tunnel actively supports Quick-Start. 6.1. Simple Tunnels That Are Compatible with Quick-Start This sectionconsiders interactions between Quick-Start and IP tunnels, including IPsec [RFC2401,2401bis] and IP in IP [RFC2003]. In the discussion, we use TTL Diff, defined earlier as the difference betweendescribes theIP TTL andways that a simple tunnel can be compatible with Quick-Start but not support Quick-Start, resulting in the rejection of all Quick-StartTTL, mod 256. Recallrequests that traverse thesender considerstunnel. If theQuick-Start request approved only iftunnel ingress for thevaluesimple 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 Diffforwill be changed, correctly causing thepacket enteringQuick-Start request to be rejected. For a simple tunnel it is preferable if thenetworkQuick-Start Request is not copied to thesame asouter header, saving thevalue of TTL Diff forrouters within thepacket exitingtunnel from unnecessarily processing thenetwork.Quick-Start request. However, the Quick-Start request will be rejected correctly in this case whether or not the Quick-Start Request is copied to the outer header. 6.1.1. Simpletunnels: IP tunnel modesTunnels that aregenerally based on addingAware of Quick-Start If anew "outer" IP header that encapsulatestunnel ingress is aware of Quick-Start, but does not want to support Quick-Start, then theoriginal or "inner" IP headertunnel ingress MUST either zero the Quick-Start rate request, QS TTL, andits associated packet. In many cases,QS Nonce fields or remove thenew "outer" IPQuick-Start option from the inner headermay be added and removed at intermediate points along a connection, enablingbefore encapsulation. Section 6.3 describes thenetwork to establishprocedures for a tunnelwithout requiring endpoint participation. We denote tunnels that specifythat does want to support Quick-Start. Deleting theouter header be discarded at tunnel egress as "simple tunnels", and we denote tunnels whereQuick-Start option or zeroing theegress savesQuick-Start rate request *after decapsulation* also serves to prevent the propagation of Quick-Start information, anduses information fromis compatible with Quick-Start. If the outer headerbefore discarding it as "non- simple tunnels". An example ofdoes not contain a"non-simple tunnel" would beQuick-Start Request, a Quick- Start-aware tunnelconfigured to support ECN, where theegressrouter might copyMUST reject theECN codepoint ininner Quick-Start Request by zeroing theouter header toRate Request field in the innerheader before discardingheader, or by deleting theouter header [RFC3168]. __ Tunnels Compatible withQuick-Start/option. If the tunnel ingress is at a sending host or router where the IP TTL is not decremented prior to encapsulation, and neither tunnel endpoint is aware of Quick-Start, then this allows false positives, described in the section below. 6.2. Simple Tunnels__/ \ \__ TunnelsThat Are Not Compatible with Quick-Start(False Positives!) __ Tunnels Supporting Quick-Start / / Non-Simple Tunnels __/_____ Tunnels Compatible with Quick-Start, \ but Not SupportingSometimes a tunnel implementation that does not support Quick-Start\ \__ Tunnels Not Compatible with Quick-Start? Figure 5: Categoriesis independent ofTunnels. Tunnelsthe TCP sender or a router implementation thatare compatible with Quick-Start: We saysupports Quick-Start. In these cases it is possible thatan IP tunnel `is not compatible with Quick-Start' if the use ofa Quick- Start Requestover such a tunnel allows false positives, wheregets erroneously approved without theTCP sender incorrectly believes thatrouters in theQuick-Start Request wastunnel having individually approvedby all routers alongthepath.request, causing a false positive. Ifthe use of Quick-Start over thea tunneldoes not cause false positives, we sayingress is a separate component from the TCP sender or IP forwarding, it is possible that a packet with a Quick-Start option is encapsulated without the IPtunnel `is compatibleTTL being decremented first, or withQuick-Start'. If theboth IP TTLof the inner header isand QS TTL being decrementedduring forwardingbefore the tunnel encapsulation takesplace, thenplace. If thesimpletunnelis compatible withingress does not know about Quick-Start,witha valid Quick-Startrequests being rejected. Section 6.1 describesRequest with unchanged TTL Diff traverses inmore detailtheways thatinner header, while the outer header most likely does not carry asimpleQuick-Start Request. If the tunnelcanegress also does not support Quick-Start, it remains possible that the Quick- Start Request would becompatiblefalsely approved, because the packet is decapsulated using the Quick-Start request from the inner header, and the value of TTL Diff echoed to the sender remains unchanged. For example, such a scenario can occur withQuick-Start. There are some simple tunnels thata 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-Start obstacles between the client and the VPN gateway won't be seen. This is a particular problem because the path between the client and the VPN gateway is likely to contain the most congested part of the path. Because most VPN clients arenot compatible with with Quick-Start, allowing `false positives'reported to use BITS [H05], we will explore this in more detail. A Bump-In-The-Wire (BITW) is an IPSec encryption implementation where theTCP sender incorrectly believes thatencryption occurs on an outboard processor, offloading the encryption processing overhead from theQuick-Start Request was approved by all routers alonghost or router [RFC2401]. The BITW device is usually IP addressable, which means that thepath. ThisIP TTL isdiscussed in Section 6.2 below. One of our tasks indecremented before thefuture will bepacket is passed toinvestigatetheoccurrence of tunnels that areBITW. If the QS TTL is notcompatible with Quick-Start, and to trackdecremented, then theextent to which such tunnels are modified over time. The evaluationvalue of TTL Diff is changed, and theproblem of false positives from tunnels that are not compatible withQuick-Start request willaffectbe denied. However, if theprogression of Quick-Start from Experimental to Proposed Standard,BITW supports a host andwill affectdoes not have its own IP address, then thedegree of deployment of Quick-Start while in Experimental mode. Tunnels that support Quick-Start: We say that anIPtunnel `supports Quick-Start' if it allows routers alongTTL is not decremented before thetunnel pathpacket is passed from the host toprocesstheQuick-Start RequestBITW, andgive feedback, resulting in the appropriate possible acceptance of the Quick-Start request. Somea false positive could occur. Other tunnels thatare compatible with Quick-Start support Quick-Start, while others do not. We note that a simple tunnel is not ableneed tosupport Quick-Start. From a security point of view, the use of Quick-Start in the outer header of anbe looked at are IPtunnel might raise security concerns because an adversary could tamper withtunnels over non- network protocols, such as IP over TCP and IP over UDP [RFC3948], and tunnels using theQuick-Start information that propagates beyondLayer Two Tunneling Protocol [RFC2661]. Section 9.2 discusses thetunnel endpoint,related issue of non-IP queues, such as layer-two Ethernet orbecauseATM networks, as another instance of possible bottlenecks that do not participate in the Quick-StartOption exposes informationfeedback. 6.3. Tunnels That Support Quick-Start This section discusses tunnels configured tonetwork scanners. Our approach issupport Quick-Start. If the tunnel ingress node chooses tomake supporting Quick-Start an option for IP tunnels. That is, in environments or tunneling protocols wherelocally approve therisks of usingQuick- Startare judged to outweigh its benefits,request, then thetunnel can simply deleteingress node MUST decrement the Quick-Startoption or zeroTTL at theQuick-Start rate requestsame time it decrements the IP TTL, andQS TTL fields before encapsulation. The result is that there are two viable options forMUST copy IPtunnels to be compatible with Quick- Start. The first option is the simple tunnel described aboveTTL andin Section 6.1, wherethetunnel is compatible with Quick-Start but does not support Quick-Start, where allQuick-Startrequests alongoption from thepath will be rejected. The second approach is a Quick-Start- capable mode, described in Section 6.3, whereinner IP header to thetunnel actively supports Quick-Start. 6.1. Simple Tunnels That Are Compatible with Quick-Start This section describesouter header. During encapsulation, theways that a simpletunnelcan be compatible withingress MUST zero the Quick-Startbut not support Quick-Start, resultingrate request field in therejection of all Quick-Start requestsinner header to ensure thattraversethetunnel.Quick-Start request will be rejected if the tunnel egress does not support Quick-Start. If the tunnel ingressfornode does not choose to locally approve thesimple tunnel is at a router,Quick-Start request, then it MUST either delete theIP TTL ofQuick-Start option from the inner headeris generally decremented during forwardingbeforetunnel encapsulation takes place. In this caseencapsulation, or zero the QS TTLDiff will be changed, correctly causingand theQuick-Start request to be rejected. For a simple tunnel it is preferableRate Request fields before encapsulation. Upon decapsulation, if the outer header contains a Quick-StartRequest is not copied tooption, theouter header, savingtunnel egress MUST copy therouters withinIP TTL and thetunnelQuick-Start option fromunnecessarily processingtheQuick-Start request. However,outer IP header to theQuick-Start request will be rejected correctlyinner 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 thiscase whether or notdocument. Now that theQuick-Start RequestRFC for IKEv2 [RFC4306] iscopiedpublished, we plan to specify a modification of IPsec to allow theouter header. 6.1.1. Simple Tunnels that are Awaresupport of Quick-StartIf ato be negotiated; this modification will specify the negotiation between tunnelingress is aware of Quick-Start, but does not wantendpoints to allow or forbid supportQuick-Start, thenfor Quick-Start within the tunnel. This was done for ECN for IPsec tunnels, with IKEv1 [RFC3168, Section 9.2]. This negotiation of Quick-Start capability in an IPsec tunnelingress MUST either zerowill be specified in a separate IPsec document. This document will also include a discussion of theQuick-Start rate request, QS TTL, and QS Nonce fields or removepotential effects of an adversary's modifications of the Quick-Startoption fromfield (as in Sections 18 and 19 of RFC 3168), and of theinner header before encapsulation. Section 6.3 describessecurity considerations of exposing theprocedures for a tunnel that does wantQuick-Start rate request tosupport Quick-Start. Deleting thenetwork scanners. 7. The Quick-Startoption or zeroingMechanism in other Transport Protocols The section earlier specified the use of Quick-Startrate request *after decapsulation* also servesin TCP. In this section, we generalize this topreventgive guidelines for thepropagationuse of Quick-Startinformation, andwith other transport protocols. We also discuss briefly how Quick-Start could be specified for other transport protocols. The general guidelines for Quick-Start in transport protocols are as follows: * Quick-Start iscompatibleonly specified for unicast transport protocols withQuick-Start. If the outer header does not contain aappropriate congestion control mechanisms. Note: Quick-StartRequest,is not aQuick- Start-aware tunnel egress MUST rejectreplacement for standard congestion control techniques, but meant to augment their operation. * A transport-level mechanism is needed for theinnerQuick-StartRequest by resetting the Rate Request field in the inner header, or by deletingresponse from theQuick-Start Request option. Ifreceiver to thetunnel ingress is at a sending host or router wheresender. This response contains theIPRate Request, TTLis not decremented prior to encapsulation,Diff, andneither tunnel endpoint is awareQS Nonce. * The sender checks the validity ofQuick-Start, then this allows false positives, described inthesection below. 6.2. Simple Tunnels That Are Not Compatible withQuick-StartSometimes a tunnel implementation that does not support Quick-Start is independentresponse. * The sender has an estimate of theTCP senderround-trip time, and translates the Quick-Start response into an allowed window or allowed sending rate. The sender sends arouter implementation that supports Quick-Start. In these cases it is possible that a Quick- Start Request gets erroneously approved without the routers inReport of Approved Rate. The sender starts sending Quick-Start packets, rate-paced out at thetunnel having individuallyapproved sending rate. * After therequest, causing a false positive. If a tunnel ingress is a separate component fromsender receives theTCPfirst acknowledgement packet for a Quick-Start packet, no more Quick-Start packets are sent. The sender adjusts its current congestion window orIP forwarding, it is possible that a packetsending rate to be consistent withathe actual amount of data that was transmitted in that round-trip time. * When the last Quick-Startoptionpacket isencapsulated withoutacknowledged, theIP TTL being decremented first, or with both IP TTL and QS TTL being decremented beforesender continues using thetunnel encapsulation takes place.standard congestion control mechanisms of that protocol. * If one of thetunnel ingress does not know about Quick-Start, a validQuick-StartRequest with unchanged TTL Diff traverses inpackets is lost, then theinner header, whilesender reverts to theouter header most likely does not carry a Quick-Start Request. Ifstandard congestion control method of that protocol that would have been used if thetunnel egress also doesQuick-Start request had notsupport Quick-Start, it remains possiblebeen approved. In addition, the sender takes into account the information that theQuick- StartQuick-Start congestion window was too large (e.g., by decreasing ssthresh in TCP). 8. Using Quick-Start 8.1. Determining the Rate to Requestwould be falsely approved, because the packet is decapsulated using the Quick-Start request fromAs discussed in [SAF05], theinner header, anddata sender does not necessarily have information about thevaluesize ofTTL Diff echoed tothesender remains unchanged. Fordata transfer at connection initiation; for example, in request-response protocols sucha scenario can occur with a Bump-In-The-Stack (BITS), an IPSec encryption implementation whereas HTTP, thedata encryption occurs betweenserver doesn't know thenetwork drivers andsize or name of theTCP/IP protocol stack [RFC2401]. As one example, if a remote access VPN client uses a BITS structure, then Quick-Start obstacles betweenrequested object during connection initiation. [SAF05] explores some of theclientperformance implications of overly-large Quick-Start requests, and discusses heuristics that end-nodes could use to size their requests appropriately. For example, theVPN gateway won't be seen. This is a particular problem becausesender might have information about thepath betweenbandwidth of theclient andlast-mile hop, theVPN gateway is likely to containsize of themost congested partlocal socket buffer, or of thepath. Because most VPN clients are reported toTCP receive window, and could useBITS [H05], we will explorethis information inmore detail. A Bump-In-The-Wire (BITW) is an IPSec encryption implementation where the encryption occurs on an outboard processor, offloading the encryption processing overhead from the host or router [RFC2401]. The BITW device is usually IP addressable, which means that the IP TTL is decremented beforedetermining thepacket is passedrate tothe BITW. If the QS TTL isrequest. Web servers that mostly have small objects to transfer might decide notdecremented, then the valueto use Quick-Start at all, since Quick-Start would be ofTTL Diff is changed, and thelittle benefit to them. Quick-Startrequestwill bedenied. However,more effective ifthe BITW supports a host and doesQuick-Start requests are nothave its own IP address, then the IP TTLlarger than necessary; every Quick-Start request that is approved but notdecremented before the packet is passedused (or not fully used) takes away from thehost tobandwidth pool available for granting successive Quick-Start requests. Following Section 4.1, theBITW, andsender SHOULD NOT request afalse positive could occur. Other tunnels that needsending rate larger than it is able tobe looked at are IP tunnels over non- network protocols, such as IP over TCP and IPuse overUDP [RFC3948], and tunnels using the Layer Two Tunneling Protocol [RFC2661]. Section 6.2 discussestherelated issue of non-IP queues, such as layer-two Ethernet or ATM networks, as another instanceround-trip time ofpossible bottlenecks that dothe connection (or over 100 ms, if the round-trip time is notparticipate inknown), except as required to round up theQuick-Start feedback. 6.3. Tunnels That Support Quick-Start Thisdesired sending rate to the next-highest allowable request. 8.2. Deciding the Permitted Rate Request at a Router In this sectiondiscusses tunnels configuredwe briefly outline how a router might decide whether or not tosupport Quick-Start. Ifapprove a Quick-Start Request. The router should ask the following questions: * Has the router's output link been underutilized for some time (e.g., several seconds). * Would the output link remain underutilized if thetunnel ingress node choosesarrival rate was tolocally approveincrease by theQuick- Start request, thenaggregate rate requests that theingress node MUST decrementrouter has approved over theQuick-Start TTL atlast fraction of a second? In order to answer thesame time it decrementslast question, theIP TTL, and MUST copy IP TTLrouter must have some knowledge of the available bandwidth on the output link and of the Quick-Startoption from the inner IP headerbandwidth that could arrive due to recently-approved Quick-Start Requests. In this way, if an underutilized router experiences a flood of Quick-Start requests, theouter header. During encapsulation,router can begin to deny Quick-Start requests while thetunnel ingress MUST zerooutput link is still underutilized. A simple way for theQuick-Start rate request field inrouter to keep track of theinner headerpotential bandwidth from recently-approved requests is toensuremaintain two counters, one for the total aggregate Rate Requests that have been approved in theQuick-Start request will be rejected ifcurrent time interval [T1, T2], and one for thetunnel egress does not support Quick-Start.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 remembering the aggregate approved Quick-Start bandwidth. A possible router algorithm is given in Appendix D, and more discussion of these issues is available in [SAF05].) * If thetunnel ingress node does not chooserouter's output link has been underutilized and the aggregate of the Quick Start Request Rate options granted is low enough tolocallyprevent a near-term bandwidth shortage, then the router could approve the Quick-Startrequest, then it MUST either deleteRequest. Section 10.2 discusses some of the implementation issues in processing Quick-Startoption from the inner header before encapsulation, or zero the QS TTL andrequests at routers. [SAF05] discusses theRate Request fields before encapsulation. Upon decapsulation, ifrange of possible Quick-Start algorithms at theouter header containsrouter for deciding whether to approve a Quick-Startoption,request. In order to explore thetunnel egress MUST copylimits of theIP TTL andpossible functionality at routers, [SAF05] also discusses Extreme Quick-Start mechanisms at routers, where the router would keep per-flow state concerning approved Quick-Startoption fromrequests. 9. Evaluation of Quick-Start 9.1. Benefits of Quick-Start The main benefit of Quick-Start is theouter IP headerfaster start-up for the transport connection itself. For a small TCP transfer of one to five packets, Quick-Start is probably of very little benefit; at best, it might shorten theinner header. IPsec usesconnection lifetime from three to two round-trip times (including theIKE (Internet Key Exchange) Protocolround-trip time forsecurity associations. We doconnection establishment). Similarly, for a very large transfer, where the slow-start phase would have been only a small fraction of the connection lifetime, Quick-Start would be of limited benefit. Quick-Start would notconsidersignificantly shorten theinteractions between Quick- Start and IPsec with IKEv1 [RFC2409] in this document. Whenconnection lifetime, but it might eliminate or at least shorten theRFCstart-up phase. However, forIKEv2 [IKEv2] is published, we will specifymoderate-sized connections in amodification of IPsec towell-provisioned environment, Quick-Start could possibly allow thesupportentire transfer ofQuick-StartM packets to benegotiated; this modification will specifycompleted in one round-trip time (after thenegotiation between tunnel endpoints to allow or forbid supportinitial round-trip time forQuick-Start withinthetunnel. This was done for ECN for IPsec tunnels, with IKEv1 [RFC3168, Section 9.2]. This negotiationSYN exchange), instead ofQuick-Start capabilitythe log_2(M)-2 round-trip times that it would normally take for the data transfer, in anIPsec tunnel will be specified in a separate IPsec document. This document will also include a discussion of the potential effects ofuncongested environments (assuming anadversary's modificationsinitial window of four packets). 9.2. Costs oftheQuick-Startfield (as in Sections 18 and 19This section discusses the costs ofRFC 3168),Quick-Start for the connection andoffor thesecurity considerations of exposingrouters along theQuick- Start rate request to network scanners. 7.path. The cost of having a Quick-StartMechanism in other Transport Protocols The section earlier specifiedpacket dropped: For theuse ofsender the biggest risk in using Quick-Start lies inTCP. In this section, we generalize this to give guidelines fortheusepossibility of suffering from congestion-related losses of the Quick-Startwith other transport protocols. We also discuss briefly how Quick-Start couldpackets. This should bespecified for other transport protocols. The general guidelines foran unlikely situation because routers are expected to approve Quick-Startin transport protocolsRequests only when they areas follows: *significantly 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 the Quick-Start Request was approved by all of the routers along the path. If a Quick-Start packet isonly specified for unicast transport protocols with appropriatedropped, then the sender reverts to the congestion controlmechanisms. Note:mechanisms it would have used if the Quick-Startisrequest had nota replacement for standard congestion control techniques, but meantbeen approved, so the performance cost toaugment their operation. * A transport-level mechanism is needed forthe connection of having a Quick-Startresponse from the receiverpacket dropped is small, compared to thesender. This response containsperformance without Quick-Start. (On theRate Request, TTL Diff,other hand, the performance difference between Quick-Start with a Quick-Start packet dropped andQS Nonce. *Quick- Start with no Quick-Start packet dropped can be considerable.) Added complexity at routers: Thesender checks the validitymain cost oftheQuick-Startresponse. * The sender has an estimateat routers concerns the costs of added complexity. The added complexity at theround-trip time,end-points is moderate, andtranslatesmight easily be outweighed by the benefit of Quick-Startresponse into an allowed window or allowed sending rate.to the end hosts. Thesender starts sending Quick-Start packets, rate-paced outadded complexity at theapproved sending rate. * Afterrouters is also somewhat moderate; it involves estimating thesender receivesunused bandwidth on the output link over the last several seconds, processing thefirst acknowledgement packet for aQuick-Startpacket, no morerequest, and keeping a counter of the aggregate Quick-Startpackets are sent. The sender adjusts its current congestion window or sendingrate approved over the last fraction of a second. However, this added complexity at routers adds to the development cycle, and could prevent the addition of other competing functionality to routers. Thus, careful thought would have to beconsistent withgiven to theactual amountaddition ofdata that was transmittedQuick-Start to IP. The slow path in routers: Another drawback of Quick-Start is thatround-trip time. * Whenpackets containing thelastQuick-Startpacket is acknowledged,Request message might not take thesender continues usingfast path in routers, particularly in thestandard congestion control mechanisms of that protocol. * If onebeginning of Quick-Start's deployment in theQuick-Start packets is lost, thenInternet. This would mean some extra delay for thesender reverts toend hosts, and extra processing burden for thestandard congestion control method of that protocol thatrouters. However, as discussed in Sections 4.1 and 4.6, not all packets wouldhave been used ifcarry the Quick-Startrequest had not been approved.option. In addition, for thesender takes into accountunderutilized links where Quick-Start Requests could actually be approved, or in typical environments where most of theinformation thatpackets belong to large flows, the burden of the Quick-Startcongestion window was too large (e.g., by decreasing ssthreshOption on routers would be considerably reduced. Nevertheless, it is still conceivable, inTCP). 8. Usingthe worst case, that many packets would carry Quick-Start8.1. Determiningrequests; this could slow down theRate to Requestprocessing of Quick-Start packets in routers considerably. As discussed in[SAF05], the data sender does not necessarily have information about the size ofSection 9.6, routers can easily protect against this by enforcing a limit on thedata transferrate atconnection initiation; for example, in request-response protocols such as HTTP, the server doesn't know the size or namewhich Quick-Start requests will be considered. [RW03] and [RW04] contain measurements of therequested object during connection initiation. [SAF05] explores someimpact ofthe performance implicationsIP Option Processing on packet round-trip times. Multiple paths: One limitation ofoverly-largeQuick-Startrequests, and discusses heuristicsis that it presumes thatend-nodes could use to size their requests appropriately. For example, the sender might have information aboutthebandwidthdata packets of a connection will follow thelast-mile hop,same path as thesize ofQuick-Start request packet. If this is not thelocal socket buffer, or ofcase, then theTCP receive window, andconnection coulduse this information in determiningbe sending therate to request. Web servers that mostly have small objects to transfer might decide not to useQuick-Start packets, atall, since Quick-Start would bethe approved rate, along a path that was already congested, or that became congested as a result oflittle benefit to them. Quick-Start will be more effective if Quick-Start requests are not larger than necessary; everythis connection. Thus, Quick-Startrequest thatcould give poor performance when there isapproved but not used (or not fully used) takes away froma routing change immediately after thebandwidth pool available for granting successiveQuick-Startrequests. Following Section 4.1, the sender SHOULD NOTrequesta sending rate larger than itisable to use overapproved, and theround-trip timeQuick-Start data packets follow a different path from that of the original Quick-Start Request. This is, however, similar to what would happen, for a connection(or over 100 ms,with sufficient data, if theround-trip time is not known), except as required to round upconnection's path was changed in the middle of thedesired sending rate toconnection, when thenext-highest allowable request. 8.2. Decidingconnection had already established thePermitted Rate Request at a Router In this section we briefly outline how aallowed initial rate. A routermight decide whether or not tothat uses multipath routing for packets within a single connection MUST NOT approve a Quick-StartRequest. Asrequest. Quick-Start would not perform robustly in anexample,environment with multipath routing, where different packets in a connection routinely follow different paths. In such an environment, therouter could askQuick-Start request and some fraction of thefollowing questions: * Haspackets in therouter's output link beenconnection might take an underutilizedfor some time (e.g., several seconds). * Wouldpath, while theoutput link remain underutilized ifrest of thearrival rate was to increase bypackets take an alternate, congested path. Non-IP queues: A problem of any mechanism for feedback from routers at theaggregate rate requestsIP 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-level routerhas approved over the last fraction ofadjacent to such asecond? In ordernon-IP queue or bottleneck would be configured toanswer this question, the router must have some knowledge of the available bandwidth on the output link and of thereject Quick-Startbandwidthrequests if thatcould arrive due to recently-approvedwas 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-StartRequests. Inwith QoS-enabled Traffic The discussion in thisway, if an underutilized router experiences a flooddocument has largely been of Quick-Startrequests,with default, best-effort traffic. However, Quick-Start could also be used by traffic using some form of differentiated services, and routers could take therouter can begintraffic class into account when deciding whether or not todeny Quick-Start requests whilegrant theoutput linkQuick-Start request. We don't address this context further in this paper, since it isstill underutilized. A simple way for the routerorthogonal tokeep trackthe specification of Quick-Start. 9.4. Protection against Misbehaving Nodes In this section we discuss thepotential bandwidth from recently-approved requests is to maintain two counters, one forprotection against senders, receivers, or colluding middleboxes lying about thetotal aggregate Rate RequestsQuick-Start Request. First, we note thathave been approvedit is not necessarily in thecurrent time interval [T1, T2], for the current time between T1 and 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,sender's ormake requirements for the appropriate time intervals for rememberingreceiver's interest to lie about theaggregate approvedQuick-Startbandwidth. A possible router algorithm is given in Appendix C, and more discussion of these issues is available in [SAF05].) *Request. If therouter's output link has been underutilizedsender sends at too-high of an initial rate, andthe aggregate Quick Start Request Rate options granted is low enough to preventhas anear-term bandwidth shortage, then the router could approvepacket dropped, this does not necessarily improve theQuick-Start Request. Section 10.2 discusses someperformance of theimplementation issues in processingconnection, relative to the case when the Quick-StartrequestsRequest was not approved. 9.4.1. Misbehaving Senders A transport sender could try to transmit data atrouters. [SAF05] discussesa higher rate than that approved in therange of possibleQuick-StartalgorithmsRequest, or transmit atthe router for deciding whether to approvea high rate even without using Quick-Startrequest. In orderat all. The network could use a traffic policer toexploreprotect against such misbehaving senders, for example by dropping packets that exceed thelimitsallowed transmission rate. The required Report of Approved Rate allows traffic policers to check that thepossible functionality at routers, [SAF05] also discusses Extreme Quick-Start mechanisms at routers, whereReport of Approved Rate does not exceed therouter would keep per-flow state concerningRate Request actually approved at that point in the network in the previous Quick-Startrequests. 9. Evaluation of Quick-Start 9.1. Benefits of Quick-StartRequest from that connection. Themain benefitrequired Approved Rate report also allows traffic policers to check that the sender's sending rate does not exceed the rate in the Report ofQuick-StartApproved Rate. If a router or receiver receives an Approved Rate report that is larger than thefaster start-up forRate Request in thetransportQuick-Start request approved for that sender for that connectionitself. For a small TCP transfer of one to five packets,in the previous round-trip time, then the router or receiver could deny future Quick-Start requests from that sender, e.g., by deleting the Quick-Start Request from future packets from that sender. We note that routers are not required to use Approved Rate reports to check if senders are cheating; this isprobably of very little benefit;atbest, it might shortentheconnection lifetime from three to two round-trip times (includingdiscretion of theround-trip time for connection establishment). Similarly, forrouter. If avery large transfer, where the slow-start phase would have been onlyrouter sees asmall fraction of the connection lifetime, Quick-Start would beReport oflimited benefit. Quick-Start wouldApproved Rate, and did notsignificantly shorten the connection lifetime, but it might eliminate or at least shorten the start-up phase. However, for moderate-sized connections in a well-provisioned environment,see an earlier Quick-Startcould possibly allowrequest, then either theentire transfer of M packets tosender could becompleted in one round-trip time (aftercheating, or theinitial round-trip time forconnection's path could have changed since theSYN exchange), instead ofQuick-Start request was sent. In either case, thelog_2(M)-2 round-trip times thatrouter could decide to deny future Quick-Start requests from this sender. In particular, itwould normally takeis reasonable for thedata transfer, in an uncongested environments (assuming an initial window of four packets). 9.2. Costs ofrouter to deny a Quick-StartThis section discussesrequest if either thecosts of Quick-Start forsender is cheating, or if the connectionand for the routers along the path. The cost of havingpath suffers from path changes or multi-pathing. If a router approved a Quick-Startpacket dropped: ForRequest, but does not see a subsequent Approved Rate report, then there are several possibilities: (1) the sender did not send a Report of Approved Rate; (2) thebiggest riskApproved Rate report was dropped in the network; or (3) the Approved Rate report took a different path from the Quick- Start Request. In any of these three cases, the router would be justified inusingdenying future Quick-Startlies in the possibility of sufferingRequests fromcongestion-related lossesthis sender. In any of theQuick-Start packets. This should beabove mentioned cases (i.e., anunlikely situation because routers are expected to approve Quick-Start Requests only when they are significantly underutilized. However, a transient increase in cross-trafficApproved Rate report that is larger than the Rate Request inonethe earlier Quick-Start request; no Approved Rate report because of packet drops, path changes, or therouters,sender's failure to send one), asudden decreasetraffic policer may assume that Quick-Start is not being used appropriately, or is being used inavailable bandwidth on onean inappropriate environment, and take some corresponding action. 9.4.2. Receivers Lying about Whether the Request was Approved One form of misbehavior would be for thelinks, or congestion at a non-IP queue could result in packet losses even whenreceiver to lie to the sender about whether the Quick-Start Request wasapprovedapproved, byall of the routers alongfalsely reporting thepath.TTL Diff and QS Nonce. If a router that understands the Quick-Startpacket is dropped, thenRequest denies thesender reverts torequest by deleting thecongestion control mechanisms it would have used ifrequest or by zeroing the QS TTL and QS Nonce, then the receiver can ``lie" about whether theQuick-Startrequesthas not been approved, sowas approved only by successfully guessing theperformance costvalue of the TTL Diff and QS Nonce to report. 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 QS nonce for a reported rate request of K is 1/(2K). However, if theconnection of having aQuick-Startpacket droppedrequest issmall, compareddenied only by a non-Quick- Start-capable router, or by a router that is unable to zero theperformance without Quick-Start. (OnQS TTL and QS Nonce fields, then theother hand,receiver could lie about whether 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 cost ofQuick-Startat routers concernsRequests were approved by modifying thecosts of added complexity. The added complexity atQS TTL in successive requests received from theend-points is moderate, and might easily be outweighed bysame host. In particular, if thebenefit ofsender does not act on a Quick-StarttoRequest, then theend hosts. The added complexity atreceiver could decrement therouters is also somewhat moderate; it involves estimatingQS TTL by one in theunused bandwidth onnext request received from that host before calculating theoutput link overTTL Diff, and decrement thelast several seconds, processingQS TTL by two in theQuick-Startfollowing received request,and keeping a counteruntil the sender acts on one of theaggregateQuick-Startrate approved over the last fraction ofRequests. Unfortunately, if asecond. However, this added complexity at routers addsrouter doesn't understand Quick-Start, then it is not possible for that router to take an active step such as zeroing thedevelopment cycle,QS TTL andcould prevent the addition of other competing functionality to routers. Thus, careful thought would have to be given to the addition of Quick-StartQS Nonce toIP. The slow pathdeny a request. As a result, the QS TTL is not a fail-safe mechanism for preventing lying by receivers inrouters: Another drawbackthe case ofQuick-Startnon-Quick-Start-capable routers. As we noted above, it isthat packets containing the Quick-Start Request message mightnottake the fast pathnecessarily inrouters,the receiver's interests to lie about whether the rate request was approved, particularly since such lying could result inthe beginning of Quick-Start's deploymentQuick-Start data packets dropped in theInternet. Thisnetwork due to congestion. 9.4.3. Receivers Lying about the Approved Rate A second form of receiver misbehavior wouldmean some extra delaybe for theend hosts, and extra processing burden forreceiver to lie to therouters. However, as discussed in Sections 4.1 and 4.6, not all packets would carrysender about theQuick-StartRate Requestoption. In addition,forthe underutilized links wherean approved Quick-StartRequests could actually be approved, or in typical environments where mostRequest, by increasing the value of thepackets belong to large flows,Rate Request field. However, theburden ofreceiver doesn't necessarily know theQuick-Start Option on routers would be considerably reduced. Nevertheless, it is still conceivable,Rate Request in theworst case, that many packets would carry Quick-Start requests; this could slow down the processing oforiginal Quick-Startpackets in routers considerably. As discussed in Section 9.5, routers can easily protect against thisRequest sent byenforcingthe sender, and alimit onhigher Rate Request reported by therate at which Quick-Start requestsreceiver will only beconsidered. Multiple paths: One limitation of Quick-Start is thatconsidered valid by the sender if itpresumes thatis no higher than the Rate Request originally requested by the sender. For example, if thedata packetssender sends a Quick- Start Request with a Rate Request of X, and the receiver reports receiving aconnection will followQuick-Start Request with a Rate Request of Y > X, then the sender knows that either some router along thesamepathasmalfunctioned (increasing theQuick-Start request packet. If thisRate Request inappropriately), or the receiver isnotlying about thecase, thenRate Request in theconnection could be sendingreceived packet. If the sender sends a Quick-Startpackets, atRequest with a Rate Request of Z, the receiver receives the Quick-Start Request with an approvedrate, along a path that was already congested, or that became congested asRate Request of X, and reports aresultRate Request ofthis connection. This is, however, similar to what would happen,Y, fora connection with sufficient data, ifX < Y <= Z, then theconnection's path was changedreceiver only succeeds in lying to themiddle ofsender about theconnection, whenapproved rate if theconnection had already establishedreceiver successfully reports theallowed initial rate. A router that uses multipath routing for packets within a single connection MUST NOT approve a Quick-Start request. Quick-Start would not perform robustly in an environment with multipath routing, where different packetsrightmost 2Y bits in the QS nonce. If senders often use aconnection routinely follow different paths. In such an environment,configured default value for theQuick-Start request and some fraction ofRate Request, then receivers would often be able to guess thepackets inoriginal Rate Request, and this would make it easier for theconnection might take an underutilized path, whilereceiver to lie about therestvalue of thepackets take an alternate, congested path. As discussed in Section 6.2, Quick-Start could also give poor performance when there is a routing change immediately afterRate Request field. Similarly, if theQuick-Start request is approved,receiver often communicates with a particular sender, and theQuick-Start data packets follow a different path fromsender always uses the same Rate Request for thatofreceiver, then theoriginal Quick-Start Request. However, as noted in Section 6.2, this is similarreceiver might over time be able towhat can happen without Quick-Start when a connection path is changed after the connection had already established a certain sending rate oninfer the originalpath. Non-IP queues: A problemRate Request used by the sender. There are several possible additional forms ofany mechanism for feedback from routers atprotection against receivers lying about theIP level is that there can be queues and bottlenecks invalue of theend-to-end path that are not in IP-level routers. As an example, these include queues in layer-two Ethernet or ATM networks.Rate Request. Onepossibilitypossible additional protection would bethat an IP-level router adjacent to suchfor anon-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 sorouter thatnon-IP queues between IP routers do not end up being the congested bottlenecks. 9.3. Quick-Start with QoS-enabled Traffic The discussiondecreases a Rate Request inthis document has largely been ofa Quick-Startwith default, best-effort traffic.Request to report the decrease directly to the sender. However,Quick-Startthis could lead to many reports back to the sender for a single request, and could also be usedby traffic using somein address- spoofing attacks. A second limited form ofdifferentiated services, and routers could take the traffic class into account when deciding whether or notprotection would be for senders togrant the Quick-Start request. We don't address this context furtheruse some degree of randomization inthis paper, sincethe requested Rate Request, so that it isorthogonaldifficult for receivers to guess thespecification of Quick-Start. 9.4. Protection against Misbehaving Nodes Inoriginal value for the Rate Request. However, thissection we discussis difficult because there is a fairly coarse granularity in theprotection against receivers or colluding middleboxes lying aboutset of rate requests available to theQuick-Start Request. First,sender, and randomizing the initial request only offers limited protection in any case. Again, as wenote thatnoted above, it is not necessarily in the receiver'sinterestinterests to lie about the value of the approved rate request, particularly since such lying could result in Quick-StartRequest. Ifdata packets dropped in thesender sends at too-high ofnetwork due to congestion. 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 aninitial rate,ingress router andhas a packet dropped, this does not necessarily improve the performance of the connection, relativean egress router belonging to thecase whensame Intranet. The ingress router could decrement theQuick-StartRate Requestwas not approved. 9.4.1. Receivers Lying about Whetherat the ingress, with the egress router increasing it again at the egress. The routers between the ingress and egress that approved the decremented rate request might not have been willing to approve theRequest was Approved Onelarger, original request. Another form ofmisbehaviorcollusion would be for thereceiver to lieingress router to inform thesender about whether the Quick-Start Request was approved, by falsely reportingegress router out-of-band of the TTL Diff and QSNonce. If a router that understands the Quick-Start Request deniesNonce for the requestby deletingpacket at therequest or by zeroingingress. This would enable the egress router to modify the QS TTL and QSNonce, thenNonce so that it appeared that all of thereceiver can ``lie" about whetherrouters along therequest waspath had approvedonly by successfully guessingthevalue of the TTL Diff and QS Noncerequest. There does not appear toreport. The chance ofbe any protection against a colluding ingress and egress router. Even if an intermediate router had deleted thereceiver successfully guessingQuick-Start Option from thecorrect value forpacket, theTTL Diff is 1/256, andingress router could have sent thechance ofQuick-Start Option to thereceiver successfully guessingegress router out-of-band, with theQS nonce for a reported rate request of K is 1/(2K). However, ifegress router inserting the Quick-Startrequest is denied only by a non-Quick- Start-capable router, or byOption, with arouter that is unable to zero themodified QS TTLand QS Nonce fields, thefield, back in thereceiver could lie about whetherpacket. However, unlike ECN, there is somewhat less incentive for cooperating ingress and egress routers to collude to falsely modify the Quick-StartRequests wereRequest so that it appears to have been approved bymodifying the QS TTL in successive requests received fromall of thesame host. In particular, ifrouters along thesender does not act onpath. With ECN, aQuick-Start Request, then the receivercolluding ingress router coulddecrementfalsely mark a packet as ECN-capable, with theQS TTL by one incolluding egress router returning thenext request received from that host before calculatingECN field in theTTL Diff,IP header to its original non-ECN-capable codepoint, anddecrementcongested routers along theQS TTLpath could have been fooled into not dropping that packet. This collusion would give an unfair competitive advantage to the traffic protected bytwo inthefollowing received request, untilcolluding ingress and egress routers. In contrast, with Quick-Start, thesender acts on onecollusion of theQuick-Start Requests. Unfortunately, if a router doesn't understand Quick-Start, theningress and egress routers to make itisfalsely appear that a Quick-Start request was approved does notpossible fornecessarily give an advantage to the traffic covered by that collusion. If some routerto take an active step such as zeroingalong theQS TTL and QS Noncepath really does not have enough available bandwidth todeny a request. As a result,approve theQS TTL is not a fail-safe mechanism for preventing lying by receivers inQuick-Start request, then thecaseQuick-Start packets sent as a result ofnon-Quick-Start-capable routers. 9.4.2. Receivers Lying abouttheApproved Rate A second form of misbehavior wouldfalsely-approved request could befordropped in thereceiver to lienetwork, to thesender about the Rate Request for an approved Quick-Start Request, by increasing the valueresulting disadvantage of theRate Request field. However,connection. Thus, while thereceiver doesn'tingress and egress routers could collude to prevent intermediate routers from denying a Quick-Start request, it would not necessarilyknowbe to theRate Request inconnection's advantage for this to happen. In addition, theoriginal Quick-Start Request sent byrouter between thesender,ingress and egress nodes that denied the request could be monitoring connection performance, actively penalizing nodes that seem to be using Quick-Start after ahigherQuick-Start request was denied, or that are reporting an Approved RateRequest reportedhigher than that actually approved by that router. If thereceiver will only be considered valid bycongested router was ECN-capable, and thesender if it is no higher thancolluding ingress and egress routers were lying about ECN-capability as well as about Quick-Start, then theRate Request originally requested byresult could be that thesender. For example, ifQuick-Start request falsely appears to the sendersends a Quick-Start Request with a Rate Request of X,to have been approved, and thereceiver reports receiving aQuick- StartRequest with a Rate Request of Y > X, thenpackets falsely appear to thesender knows that either somecongested routeralong the path malfunctioned (increasing the Rate Request inappropriately), or the receiver is lying aboutto be ECN- capable. In this case, theRate Requestcolluding routers might succeed inthe received packet. If the sender sends a Quick-Start Request withgiving aRate Request of Z, the receiver receivescompetitive advantage to theQuick-Start Request with an approved Rate Request of X,traffic protected by their collusion (if no intermediate router is monitoring to catch such misbehavior). 9.5. Misbehaving Middleboxes andreports a Rate Request of Y, for X < Y <= Z, thenthereceiver only succeedsIP TTL One possible difficulty is that of traffic normalizers [HKP01] or other middleboxes along that path that re-write IP TTLs, inlyingorder tothe sender about the approved rate if the receiver successfully reports the rightmost 2Y bitsfoil other kinds of attacks in theQS nonce.network. Ifsenders often usesuch aconfigured default value fortraffic normalizer re-wrote theRate Request,IP TTL, but did not adjust the Quick-Start TTL by the same amount, thenreceivers would often be able to guesstheoriginal Rate Request, and this would make it easiersender's mechanism for determining if thereceiver to lie about the value ofrequest was approved by all routers along theRate Request field. Similarly, ifpath would no longer be reliable. Re-writing thereceiver often communicates with a particular sender, andIP TTL could result in false positives (with the senderalways uses the same Rate Request forincorrectly believing thatreceiver, thenthereceiver might over time be able to inferQuick- Start request was approved) as well as false negatives (with theoriginal Rate Request used bysender incorrectly believing that thesender. There are several possible additional formsQuick-Start request was denied). 9.6. Attacks on Quick-Start As discussed in [SAF05], Quick-Start is vulnerable to two kinds ofprotection against receivers lying aboutQuick-Start attacks: (1) attacks to increase thevalue ofrouters' processing and state load; and (2) attacks with bogus Quick-Start requests to temporarily tie up available Quick-Start bandwidth, preventing routers from approving Quick-Start requests from other connections. Routers can protect against theRate Request. One possible additional protection would be for a router that decreases a Rate Request infirst kind of attack by applying a simple limit on the rate at which Quick-StartRequest to reportrequests will be considered by thedecrease directlyrouter. The second kind of attack, attacks to tie up thesender. However, this could leadavailable Quick- Start bandwidth, is more difficult tomany reports backdefend against. As discussed in [SAF05]. Quick-Start Requests that are not going tothe sender for a single request, and could alsobeusedused, either because they are from malicious attackers or because they are denied by routers downstream, can result inaddress- spoofing attacks. A second limited form`wasting' potential Quick-Start bandwidth, resulting in routers denying subsequent Quick-Start Requests that if approved would in fact have been used. We note that the likelihood ofprotectionmalicious attacks would befor senders to useminimized significantly when Quick-Start was deployed in a controlled environment such as an Intranet, where there was somedegreeform ofrandomizationcentralized control over the users in therequested Rate Request, sosystem. We also note that this form of attack could potentially make Quick-Start unusable, but itis difficult for receivers to guesswould not do any further damage; in theoriginal valueworst case, the network would function as a network without Quick-Start. [SAF05] considers the potential of Extreme Quick-Start algorithms at routers, which keep per-flow state for Quick-Start connections, in protecting theRate Request. However, this is difficult because thereavailability of Quick-Start bandwidth in the face of frequent overly-larqe Quick-Start requests. 9.7. Simulations with Quick-Start Quick-Start was added to the NS simulator [SH02] by Srikanth Sundarrajan, and additional functionality was added by Pasi Sarolahti. The validation test isa fairly coarse granularityat `test-all-quickstart' in theset`tcl/test' directory in NS. The initial simulation studies from [SH02] show a significant performance improvement using Quick-Start for moderate-sized flows (between 4KB and 128KB) in under-utilized environments. These studies are ofrate requests available tofile transfers, with thesender, and randomizingimprovement measured as theinitial request only offers limited protectionrelative increase inany case. 9.4.3. Collusion between Misbehaving Routers In addition to protecting against misbehaving receivers, itthe overall throughput for the file transfer. The study shows that potential improvement from Quick-Start isnecessary also to protect against misbehaving routers. Consider collusion between an ingress router and an egress router belongingproportional to thesame Intranet. The ingress router could decrementdelay-bandwidth product of theRate Request atpath. The Quick-Start simulations in [SAF05] explore theingress, withfollowing: theegress router increasing it again atpotential benefit of Quick-Start for theegress. The routers betweenconnection; theingressrelative benefits of different router-based algorithms for approving Quick- Start requests; andegress that approved the decremented rate request might not have been willing to approvethelarger, original request. Another formeffectiveness of Quick-Start as a function ofcollusion would be fortheingress router to informsenders' algorithms for choosing theegress router out-of-bandsize of theTTL Diffrate request. 10. Implementation andQS Nonce for the request packet atDeployment Issues This section discusses some of theingress.implementation issues with Quick- Start. Thiswould enablesection also discusses some of theegress routerkey deployment issues, such as the chicken-and-egg deployment problems of mechanisms that have to be deployed in both routers and end nodes in order tomodify the QS TTLwork, andQS Nonce so that it appeared that allthe problems posed by the wide deployment of middleboxes today that block therouters alonguse of known or unknown IP Options. 10.1. Implementation Issues for Sending Quick-Start Requests Section 4.6 discusses some of thepath had approvedissues with deciding therequest. There does not appearinitial sending rate tobe any protection against a colluding ingress and egress router. Even if an intermediate router had deleted therequest. Quick-StartRequest Option from the packet,raises additional issues about theingress router could have sentcommunication between theQuick-Start Request Option totransport protocol and theegress router out-of-band, withapplication, and about theegress router insertinguse of theQuick-Start Request Option,past history witha modified QS TTL field, backQuick-Start in thepacket. However, unlike ECN, thereend node. One possibility issomewhat less incentivethat a protocol implementation could provide an API forcooperating ingress and egress routersapplications tocolludeindicate when they want tofalsely modifyrequest Quick- Start, and what rate they would like to request. In theQuick-Start Request soconventional socket API this could be a socket option thatit appears tois set before a connection is established. Some applications, such those that use TCP for bulk transfers, do not havebeen approved by all ofinterest in therouters alongtransmission rate, but they might know thepath. With ECN, a colluding ingress routeramount of data that can be sent immediately. Based on this, the sender implementation couldfalsely markdecide whether Quick-Start would be useful, and what rate should be requested. Datagram-based real-time streaming applications, on the other hand, may have apacket as ECN-capable, withspecific preference on thecolluding egress router returningtransmission rate and they could indicate theECN field inrequired rate explicitly to theIP headertransport protocol toits original non-ECN-capable codepoint, and congested routers alongbe used in thepath could have been fooled into not droppingQuick-Start Request. We note thatpacket. This collusion would give an unfair competitive advantage towhen Quick-Start is used, thetraffic protected byTCP sender is required to save thecolluding ingressQS Nonce andegress routers. In contrast, with Quick-Start,thecollusion ofTTL Diff when theingress and egress routers to make it falsely appear that aQuick-Start requestwas approved does not necessarily give an advantageis sent, and to implement an additional timer for thetraffic covered by that collusion. If somepaced transmission of Quick-Start packets. 10.2. Implementation Issues for Processing Quick-Start Requests A routeralongor other network host must be able to determine thepath really does not have enough availableapproximate bandwidth of its outbound network interfaces in order toapprove the Quick-Start request, then theprocess incoming Quick-Startpackets sent as a result ofrate requests, including those that originate from thefalsely-approved request couldhost itself. One possibility would bedropped in the network,for hosts to rely on configuration information to determine link bandwidths; this has theresulting disadvantagedrawback ofthe connection. Thus, while the ingress and egress routers could colludenot being robust toprevent intermediate routers from denying a Quick-Start request, iterrors in configuration. Another possibility wouldnot necessarilybeto the connection's advantageforthisnetwork device drivers tohappen. In addition,infer therouter betweenbandwidth for theingressinterface andegress nodes that deniedto communicate this to therequest could be monitoring connection performance, actively penalizing nodes that seemIP layer. Particular issues will arise for wireless links with variable bandwidth, where decisions will have to beusing Quick-Start after a Quick-Start request was denied. If the congested router was ECN-capable, and the colluding ingress and egress routers were lying about ECN-capability as well asmade aboutQuick-Start, thenhow frequently theresult could be thatnetwork host gets updates of the changing bandwidth. It seems appropriate that Quick-Startrequest falsely appears to the senderRequests would be handled particularly conservatively for links with variable bandwidth, tohave beenavoid cases where Quick-Start Requests are approved, the link bandwidth is reduced, and theQuick- Startdata packetsfalsely appear to the congested router tothat are sent end up being dropped. Difficult issues also arise for paths with multi-access links (e.g., Ethernet). Routers with multi-access links should beECN- capable. In this case, the colluding routers might succeedparticularly conservative ingiving a competitive advantage to the traffic protected by their collusion (if no intermediate router is monitoring to catch such misbehavior). 9.4.4. Misbehaving Middleboxes andgranting Quick-Start requests. 10.3. Possible Deployment Scenarios Because of possible problems discussed above concerning using Quick- Start over some network paths, theIP TTL A separate possibility is thatmost realistic initial deployment oftraffic normalizers [HKP01] orQuick-Start would most likely take place in Intranets and othermiddleboxes along that pathcontrolled environments. Quick-Start is most useful on high bandwidth-delay paths thatre-write IP TTLs,are significantly underutilized. The primary initial users of Quick-Start would likely be inorderorganizations that provide network services tofoil other kindstheir users and also have control over a large portion ofattacks inthenetwork. If suchnetwork path. Below are atraffic normalizer re-wrote the IP TTL, but did not adjustfew examples of networking environments where Quick- Start would potentially be useful. These are the environments that might consider an initial deployment of Quick-StartTTL byin thesame amount, thenrouters and end-nodes, where thesender's mechanismincentives fordetermining if the request was approved by allroutersalongto deploy Quick- Start might be thepathmost clear. * Centrally-administrated organizational Intranets: These intranets often have large network capacity, with networks that are underutilized for much of the time. Such Intranets might also include high-bandwidth and high-delay paths to remote sites. In such an environment, Quick-Start wouldno longerbereliable. Re-writingof benefit to users, and there would be a clear incentive for theIP TTLdeployment of Quick-Start in routers. For example, Quick-Start couldresultbe quite useful infalse positives (withhigh- bandwidth networks used for scientific computing. * GPRS: Quick-Start could also be useful in high-delay environments of Cellular Wide-Area Wireless Networks such as thesender incorrectly believing thatGPRS [BW97] and their enhancements and next generations. For example, GPRS EDGE (Enhanced Data for GSM Evolution) is expected to provide wireless bandwidth of up to 384 Kbps (roughly 32 1500-byte packets per second) while theQuick- Start request was approved) as well as false negatives (withGPRS round-trip times range typically from few hundred milliseconds to over a second excluding any possible queueing delays in thesender incorrectly believingnetwork [GPAR02]. In addition, these networks sometimes have variable additional delays due to resource allocation that could be avoided by keeping the connection path constantly utilized, starting from initial slow-start. Thus, Quick-Startrequest was denied). 9.5. Attacks on Quick-Start As discussed in [SAF05], Quick-Start is vulnerable to two kindscould be ofQuick-Start attacks: (1) attacks to increase the routers' processing and state load; and (2) attacks with bogus Quick-Start requestssignificant benefit totemporarily tie up available Quick-Start bandwidth, preventing routers from approving Quick-Start requests from other connections. Routers can protect againstusers in these environments. * Paths over satellite links: Geostationary Orbit (GEO) satellite links have one-way propagation delays on thefirst kindorder ofattack by applying a simple limit on250 ms while therate at which Quick-Start requests willbandwidth can beconsidered by the router. Themeasured in megabits per secondkind[RFC2488]. Because ofattack, attacks to tie uptheavailable Quick- Start bandwidth,considerable bandwidth-delay product on the link, TCP's slow-start ismore difficult to defend against. As discusseda major performance limitation in[SAF05]. Quick-Start Requests that are not going tothe beginning of the connection. A large initial congestion window would beused, either because they are from malicious attackers or because they are denied by routers downstream, can resultuseful to users of such satellite links. 10.4. Would QuickStart packets take the slow path in`wasting' potentialrouters? How much delay would the slow path add to the processing time for Quick-Startbandwidth, resulting inrequest packets? In addition, if QuickStart request packets took the slow path, this could add stress to routers, though routersdenying subsequent Quick-Start Requests that if approved would in fact have been used. We note thatcould always rate-limit thelikelihoodnumber ofmalicious attacks would be minimized significantly when Quick-Start was deployed in a controlled environment such as an Intranet, where there was some formQuickStart request packets they are willing to consider. 10.5. A Comparison with the Deployment Problems ofcentralized control overECN Given theusersglacially slow rate of deployment of ECN in thesystem. We alsoInternet to date [MAF05], it is disconcerting to note thatthis formsome of the deployment problems ofattack could potentially makeQuick-Startunusable, butare even greater than those of ECN. First, unlike ECN, which can be of benefit even if itwould not do any further damage; inis only deployed on one of theworst case,routers along thenetwork would function asend-to-end path, anetwork without Quick-Start. [SAF05] considers the potentialconnection's use ofExtreme Quick-Start algorithms at routers, which keep per-flow state forQuick-Startconnections, in protecting the availabilityrequires its deployment on all ofQuick-Start bandwidth intheface of frequent overly-larqe Quick-Start requests. 9.6. Simulations with Quick-Start Quick-Start was added torouters along theNS simulator [SH02] by Srikanth Sundarrajan, and additional functionality was added by Pasi Sarolahti. The validation test is at `test-all-quickstart'end-to-end path. Second, unlike ECN, which uses an allocated field in the`tcl/test' directory in NS. The initial simulation studies from [SH02] show a significant performance improvement usingIP header, Quick-Startfor moderate-sized flows (between 4KB and 128KB) in under-utilized environments. These studies arerequires the extra complications of an IP Option. However, in spite offile transfers, with the improvement measured asthese issues, there is some hope for therelative increasedeployment of Quick-Start, at least in protected corners of theoverall throughput forInternet, because thefile transfer. The study shows thatpotentialimprovement frombenefits of Quick-Startis proportionalto thedelay-bandwidth productuser are considerably more dramatic than those of ECN. Rather than simply replacing thepath. Theoccasional dropped packet by an ECN-marked packet, Quick-Startsimulations in [SAF05] explore the following:is capable of dramatically increasing thepotential benefitthroughput of connections in underutilized environments. 11. 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 theconnection; the relative benefitsrange ofdifferent router-based algorithmsperformance forapproving Quick- Start requests; andbest-effort traffic in the Internet. However, there are many things that theeffectiveness ofQuick-Startasproposal would not accomplish. Quick-Start is not afunctioncongestion control mechanism, and would not help in making more precise use of thesenders' algorithms for choosing the sizeavailable bandwidth, that is, of achieving therate request. 10. Implementation and Deployment Issues This section discusses somegoal ofthe implementation issueshigh throughput withQuick- Start. This section also discusses some oflow delay and low packet loss rates. Quick-Start would not give routers more control over thekey deployment issues, such asdecrease rates of active connections. In addition, any evaluation of Quick-Start must include a discussion of thechicken-and-egg deployment problemsrelative benefits ofmechanismsapproaches thathave to be deployed in both routers and end nodes in order to work,use no explicit information from routers, andthe problems posed by the wide deploymentofmiddleboxes todayapproaches thatblock theuse more fine- grained feedback from routers as part ofknown or unknown IP Options. 10.1. Implementation Issues for Sending Quick-Start Requests Section 4.6 discusses somea larger congestion control mechanism. We discuss several classes ofthe issues with deciding the initial sending rate to request. Quick-Start raises additional issuesproposals (no explicit feedback from routers; explicit feedback about thecommunication between the transport protocol and the application,initial rate; more fine-grained feedback from routers; andabout the use of the past history with Quick-Startproposals based on lower-than-best-effort service) in theend node.sections below. 11.1. Fast Start-ups without Explicit Information from Routers One possibilityis that a protocol implementation could provide an API for applications to indicate when they want to request Quick- Start, and what rate theywouldlike to request. In the conventional socket API this couldbea socket option that is set before a connection is established. Some applications, such those that use TCPforbulk transfers, do not have interest insenders to use information from thetransmission rate, but they might knowpacket streams to learn about theamount of dataavailable bandwidth, without explicit information from routers. These techniques would not allow a start-up as fast as thatcan be sent immediately. Based on this, the sender implementation could decide whetheravailable from Quick-Startwould be useful, and what rate should be requested. Datagram-based real-time streaming applications, on the other hand, mayin an underutilized environment; one has to havea specific preference on the transmission rate and they could indicate the required rate explicitlysent some packets already to use thetransport protocolpacket stream tobe used inlearn about available bandwidth. However, these techniques could allow a start-up considerably faster than theQuick-Start Request. We notecurrent slow-start. While it seems clear thatwhen Quick-Start is used,approaches *without* explicit feedback from theTCP senderrouters will be strictly less powerful that isrequired to implement an additional timer forpossible *with* explicit feedback, it is also possible that approaches that are more aggressive than slow-start are possible without explicit feedback from routers. Periodic packet streams: [JD02] explores thepaced transmissionuse ofQuick- Start packets. 10.2. Implementation Issues for Processing Quick-Start Requests A router or other network host must be ableperiodic packet streams todetermineestimate theapproximateavailable bandwidth along a path. The idea is that the one-way delays ofits outbound network interfaces in order to process incoming Quick-Starta periodic packet stream show an increasing trend when the stream's raterequests, including those that originate fromis higher than thehost itself. One possibility would be for hosts to rely on configuration information to determine link bandwidths; this hasavailable bandwidth. While [JD02] states that thedrawback ofproposed mechanism does notbeing robust to errorscause significant increases inconfiguration. Another possibility would be fornetworkdevice driversutilization, losses, or delays when done by one flow at a time, the approach could be problematic if conducted concurrently by a number of flows. [JD02] also gives an overview of some of the earlier work on inferring the available bandwidth from packet 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 toinferestimate the available bandwidthforalong theinterface and to communicate thispath. This estimate is then used to dramatically increase theIP layer. Particular issues will arise for wireless links with variable bandwidth, where decisions will have to be made about how frequentlycongestion window during thenetwork host gets updatessecond RTT of data transmission. SPAND: In thechanging bandwidth. It seems appropriate that Quick-Start Requests would be handled particularly conservativelyTCP/SPAND proposal from [ZQK00] forlinks with variable bandwidth, to avoid cases where Quick-Start Requests are approved, the link bandwidth is reduced, and the data packets that are send endspeeding upbeing dropped. 10.3. Possible Deployment Scenarios Because of possible problems discussed above concerning using Quick- Start over someshort data transfers, networkpaths, the most realistic initial deployment of Quick-Start would likely to take place in Intranets and other controlled environments. Quick-Start is most useful on high bandwidth-delay paths that are significantly underutilized. The primary initial users of Quick-Startperformance information wouldlikelybein organizations that provide network servicesshared among many co-located hosts totheir users and also have control over a large portionestimate each connection's fair share of the networkpath. Below are a few examples of networking environments where Quick- Start would potentially be useful. These are the environments that might consider an initial deployment of Quick-Start in the routersresources. Based on such estimation andend-nodes, wheretheincentives for routers to deploy Quick- Start might betransfer size, themost clear. * Centrally-administrated organizational Intranets often have large network capacityTCP sender would determine the optimal initial congestion window size. The design for TCP/SPAND uses a performance gateway that monitors all traffic entering and leaving an organization's network. While continued research on thenetworks are underutilized for mostlimits of thetime. Such Intranets might also include high-bandwidthability of TCP andhigh- delay pathsother transport protocols toremote sites. In such an environment, Quick-Start would belearn ofbenefit to users, and there would be a clear incentive foravailable bandwidth without explicit feedback from thedeploymentrouter seems useful, we note that there are several fundamental advantages ofQuick-Start inexplicit feedback from routers.For example, Quick- Start could be quite useful in high-bandwidth networks used for scientific computing. * Quick-Start could also be useful in high-delay environments(1) Explicit feedback is faster than implicit feedback: One advantage ofCellular Wide-Area Wireless Networks such asexplicit feedback from theGPRS [BW97] and their enhancements and next generations. For example, GPRS EDGE (Enhanced Data for GSM Evolution)routers isexpectedthat it allows the transport sender toprovide wireless bandwidthreliably learn ofup to 384 Kbps (roughly 32 1500-byte packets per second) while the GPRSavailable bandwidth in one round-triptimes range typically from few hundred milliseconds to over atime. (2) Explicit feedback is more reliable than implicit feedback: A secondexcluding any possible queueing delays inadvantage of explicit feedback from thenetwork [GPAR02]. In addition, these networks sometimes have variable additional delays due to resource allocationrouters is thatcould be avoided by keepingtheconnection path constantly utilized, starting fromavailable bandwidth along the path does not necessarily map to the allowed sending rate for an individual flow. As an example, if the TCP sender sends four packets back-to-back in the initialslow-start. Thus, Quick-Start could be of significant benefit to users in these environments. * Geostationary Orbit (GEO) satellite links have one-way propagation delays onwindow, and theorder of 250 ms whileTCP receiver reports that thebandwidthdata packets were received with roughly the same spacing as they were transmitted, does this mean that the flow canbe measuredinfer an underutilized path? And how fast can the flow send inmegabits per second [RFC2488]. Because oftheconsiderable bandwidth-delay productnext round-trip time? Do the results depend on the level of statistical multiplexing at the congested link,TCP's slow-start is a major performance limitation inand on thebeginningnumber of flows attempting a faster start-up at theconnection. Asame time? 11.2. Optimistic Sending without Explicit Information from Routers Another possibility that has been suggested [S02] is for the sender to start with a large initialcongestionwindowwould be useful to users of such satellite links. 10.4. Would QuickStart packets take the slow path in routers? How much delay would the slow path add to the processing time for this packet? Similarly, if QuickStart packets tookwithout explicit permission from theslow path, how much stress would it add torouters and without bandwidth estimation techniques, and forthere to be many more packets ontheslow path, becausefirst packet of thenumber of packets using QuickStart? These are both questionsinitial window tobe explored while experimenting with Quick-Start incontain information such as theInternet. 10.5. A Comparison withsize or sending rate of the initial window. The proposal would be that congested routers would use this information in theDeployment Problemsfirst data packet to drop or delay many or all ofECN Giventheglacially slow rate of deployment of ECNpackets from that initial window. In this way a flow's optimistically-large initial window would not force the router to drop packets from competing flows in theInternetnetwork. Such an approach would seem todate [MAF05], it is disconcertingrequire some mechanism for the sender tonoteensure thatsome ofthedeployment problems of Quick-Start are even greater than thoserouters along the path understood the mechanism for marking the first packet ofECN. First, unlike ECN, which cana large initial window. Obviously there would be a number ofbenefit even if it is only deployed on onequestions to consider about an approach of optimistic sending. (1) Incremental deployment: One question would be therouters along the end-to-end path, a connection's usepotential complications ofQuick-Start requires its deployment on allincremental deployment, where some of the routers along theend-to-end path. Second, unlike ECN, which uses an allocated field inpath might not understand theIP header, Quick-Start requirespacket information describing theextra complications of an IP Option. However, in spiteinitial 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, and many congested links ended up carrying packets that are only going to be dropped downstream. (3) Distributed Denial ofthese issues, there is some hope forService attacks: A third key question would be thedeploymentpotential role ofQuick-Start, at leastoptimistic senders inprotected corners of the Internet, becauseamplifying thepotential benefitsdamage done by a Distributed Denial ofQuick-StartService (DDoS) attack. (4) Performance hits if a packet is dropped: A fourth issue would be to quantify theuser are considerably more dramatic than those of ECN. Rather than simply replacingperformance hit to theoccasional droppedconnection when a packetby an ECN-marked packet, Quick-Startiscapabledropped from one ofdramatically increasingthethroughput of connections in underutilized environments. 11. Related Work The Quick-Start proposal, taken togetherinitial windows. 11.3. Fast Start-ups withHighSpeed TCP [F03] orother Information from Routers There have been several proposals somewhat similar to Quick-Start, where the transportprotocols for high-bandwidth transfers,, could go a significant way towards extendingprotocol collects explicit information from therange of performance for best- effort traffic inrouters along theInternet. However, there are many things thatpath. An IP Option about the free buffer size: In related work, [P00] investigates theQuick-Start proposal would not accomplish. Quick-Start is not a congestion control mechanism, and would not help in making more preciseuse of a slightly different IP option for TCP connections to discover the availablebandwidth,bandwidth along the path. In thatis, of achievingproposal, thegoal of high throughput with low delay and low packet loss rates. Quick-StartIP option wouldnot givequery the routersmore control overalong thedecrease rates of active connections. % One ofpath about theopen questions addressed later in this % document is whethersmallest available free buffer size. Also, the% limited capabilities of Quick-Start are sufficient to warrant % standardization and deployment, or whether more work is % needed first to exploreIP option would have been sent after the initial SYN exchange, when thespace of potential mechanisms. In addition, any evaluation of Quick-Start must include a discussionTCP sender already had an estimate of therelative benefits of approachesround- trip time. The Performance Transparency Protocol: The Performance Transparency Protocol (PTP) includes a proposal for a single PTP packet thatuse no explicitwould collect information fromrouters, and of approaches that use more fine- grained feedback fromroutersas part of a larger congestion control mechanism. We discuss three classes of proposals (no explicit feedback from routers; explicit feedback aboutalong theinitial rate; and more fine-grained feedbackpath fromrouters) inthesections below. 11.1. Fast Start-ups without Explicit Information from Routers One possibility would be for senderssender touse information fromthe receiver [W00]. For example, a single PTP packetstreamscould be used tolearn aboutdetermine theavailable bandwidth, withoutbottleneck bandwidth along a path. ETEN: Additional proposals for end nodes to collect explicit information fromrouters. These techniques would not allowrouters include Explicit Transport Error Notification (ETEN), which includes astart-up as fast as that available from Quick-Start in an underutilized environment; one has to have sent some packets alreadycumulative mechanism tousenotify endpoints of aggregate congestion statistics along thepacket stream to learn about available bandwidth. However, these techniques could allow a start-up considerably faster thanpath [KAPS02]. 11.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 A.6 discusses in more detail thecurrent slow-start. While it seems clear that approaches *without* explicitrelationship between Quick-Start and proposals for more fine-grained per-packet feedback from routers. XCP: Proposals such as XCP for new congestion control mechanisms based on more feedback fromtherouterswill be strictly lessare more powerfulthat is possible *with* explicit feedback, it isthan Quick-Start, but alsopossible that approaches thatare moreaggressivecomplex to understand and more difficult to deploy. XCP routers maintain no per-flow state, but provide more fine- grained feedback to end-nodes thanslow-start are possible without explicitthe one-bit congestion feedback of ECN. The per-packet feedback fromrouters. Periodic packet streams: [JD02] exploresXCP can be positive or negative, and specifies theuse of periodic packet streams to estimateincrease or decrease in theavailable bandwidth along a path.sender's congestion window when this packet is acknowledged. AntiECN: TheideaAntiECN proposal is for a single bit in the packet header that routers could set to indicate that they are underutilized. For each TCP ACK arriving at theone-way delays ofsender indicating that aperiodicpacketstream show an increasing trend when the stream's rate is higher thanhas been received with theavailable bandwidth. While [JD02] states thatAnti-ECN bit set, theproposed mechanism does not cause significant increases in network utilization, losses, or delays when donesender would be able to increase its congestion window by oneflow atpacket, as it would during slow-start. 11.5. Fast Start-ups with Lower-Than-Best-Effort Service There have been proposals for routers to provide atime, the approachLower Effort differentiated service that would be lower than best effort [RFC3662]. Such a service could carry traffic for which delivery is strictly optional, or could carry traffic that is important but that has low priority in terms of time. Because it does not interfere with best-effort traffic, Lower Effort services would beproblematic if conducted concurrentlyused by transport protocols that start-up faster than slow-start. For example, [SGF05] is anumberproposal for the transport sender to use low- priority traffic for much offlows. [JD02] also gives an overviewthe initial traffic, with routers configured to use strict priority queueing. A separate but related issue is that ofsomebelow-best-effort TCP, variants ofthe earlier workTCP that would not rely oninferringLower Effort services in theavailable bandwidth from packet trains. Swift-Start: The Swift Start proposal from [PRAKS02] combines packet-pairnetwork, but would approximate below-best-effort traffic by detecting andpacket-pacing techniques. An initial congestion window of four segments is used to estimate the available bandwidth along the path. This estimate is then usedresponding todramatically increase thecongestionwindow during the second RTT of data transmission. While continued research onsooner that standard TCP. TCP Nice [V02] and TCP Low Priority (TCP-LP) [KK03] are two such proposals for below-best-effort TCP, with thelimitspurpose of allowing TCP connections to use theability ofbandwidth unused by TCP and othertransport protocols to learn of available bandwidth without explicit feedback fromtraffic in a non-intrusive fashion. Both TCP Nice and TCP Low Priority use therouter seems useful, wedefault slow-start mechanisms of TCP. We note thatthere are several fundamental advantages of explicit feedback from routers. (1) Explicit feedbackQuick-Start isfaster than implicit feedback: One advantage of explicit feedbackquite different fromthe routers is that it allows the transport sender to reliably learn of available bandwidth in one round-trip time. (2) Explicit feedback is more reliable than implicit feedback: A second advantageeither a Lower Effort service or a below-best-effort variant ofexplicit feedback from the routersTCP. Unlike these proposals, Quick-Start is intended to be useful for best-effort traffic thatthe availablewishes to receive at least as much bandwidthalongas competing best-effort connections. 12. Security Considerations Sections 9.4 and 9.6 discuss thepath does not necessarily mapsecurity considerations related to Quick-Start. Section 9.4 discusses theallowed sending rate for an individual flow. As an example, ifpotential abuse of Quick- Start by senders or receivers lying about whether theTCP sender sends four packets back-to-back inrequest was approved or about theinitial window,approved rate, andthe TCP receiver reports that the data packets were receivedof routers in collusion to misuse Quick-Start. Section 9.5 discusses potential problems withroughly the same spacing as they were transmitted, does this meantraffic normalizers thatthe flow can infer an underutilized path? And how fast can the flow sendrewrite IP TTLs inthe next round-trip time? Do the results depend on the levelpacket headers. All ofstatistical multiplexingthese problems could result in the sender using a Rate Request that was inappropriately large, or thinking that a request was approved when it was in fact denied by at least one router along thecongested link,path. This inappropriate use of Quick-Start would result in congestion andonan unacceptable level of packet drops along thenumberpath, Such congestion could also be part offlows attemptingafaster start-up at the same time? 11.2. Optimistic Sending without Explicit Information from Routers Another possibility that has been suggested [S02] is for the sender to start withDenial of Service attack. Section 9.6 discusses alarge initial window without explicit permissionpotential attack on the routers' processing and state load from an attack of Quick-Start Requests. Section 9.6 also discusses a potential attack on therouters and withoutavailable Quick-Start bandwidthestimation techniques, andby sending bogus Quick-Start requests for bandwidth that will not in fact be used. Section 4.6.2 discusses thefirst packetpotential problem of packets with Quick- Start Requests dropped by middleboxes along theinitial window to contain information such as the size or sending rate ofpath. As discussed in Section 5, for IPv4 IPsec Authentication Header Integrity Check Value (AH ICV) calculation, theinitial window. The proposal wouldQuick-Start option MUST bethat congested routers would usetreated as a mutable IPv4 option, and hence completely zeroed for AH ICV calculation purposes; thisinformation inis also thefirst data packettreatment required by RFC 2402 for unrecognized IPv4 options. The IPv6 Quick- Start option's IANA-allocated option type indicates that it is a mutable option, hence, according todrop or delay many or allRFC 2402, its option data MUST be zeroed for AH ICV computation purposes. See RFC 2402 for further explanation. Section 6.2 discusses possible problems ofthe packets fromQuick-Start used by connections carried over simple tunnels thatinitial window.are not compatible with Quick-Start. In thiswaycase it is possible that aflow's optimistically-large initial window would not force the router to drop packets from competing flows in the network. Such an approach would seem to require some mechanism forQuick-Start Request is erroneously considered approved by the senderto ensure thatwithout the routersalongin thepath understoodtunnel having individually approved themechanism for markingrequest, causing a false positive. 13. Conclusions We are presenting thefirst packet ofQuick-Start mechanism as a simple, understandable, and incrementally-deployable mechanism that would be sufficient to allow some connections to start up with large initialwindow. Obviouslyrates, or large initial congestion windows, in overprovisioned, high-bandwidth environments. We expect therewouldwill beaan increasing number ofquestions to consider about an approachoverprovisioned, high-bandwidth environments where the Quick-Start mechanism, or another mechanism ofoptimistic sending. (1) Incremental deployment: One question wouldsimilar power, could bethe potential complicationsofincremental deployment, where somesignificant benefit to a wide range of traffic. We are presenting therouters alongQuick-Start mechanism as a request for thepath might not understandcommunity to provide feedback and experimentation on issues relating to Quick- Start. 14. Acknowledgements The authors wish to thank Mark Handley for discussions of these issues. The authors also thank thepacket information describingEnd-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 initialwindow. (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,implementation of Quick-Start in the NS simulator, andmany congested links ended up carrying packets that are only goingfor the initial simulation study. Many thanks tobe dropped downstream. (3) Distributed Denial of Service attacks: A third key question would beDavid 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 Katabi and Vern Paxson for feedback. This draft builds upon thepotential roleconcepts described in [RFC3390], [AHO98], [RFC2415], and [RFC3168]. Some ofoptimistic sendersthe text on Quick-Start inamplifyingtunnels was borrowed directly from RFC 3168. This document is thedamage done by a Distributed Denialdevelopment ofService (DDoS) attack. (4) Performance hits ifapacket is dropped: A fourth issue would be to quantifyproposal originally by Amit Jain for Initial Window Discovery. A. Design Decisions A.1. Alternate Mechanisms for theperformance hit toQuick-Start Request: ICMP and RSVP This document has proposed using an IP Option for theconnection when a packet is droppedQuick-Start Request fromone oftheinitial windows. 11.3. Fast Start-ups with other Information from Routers There have been several proposals somewhat similarsender toQuick-Start, wherethe receiver, and using transportprotocol collects explicit information frommechanisms for therouters alongQuick-Start Response from thepath. An IP Option aboutreceiver back to thefree buffer size:sender. Inrelated work, [P00] investigatesthis section we discuss alternate mechanisms, and consider whether ICMP [RFC792, RFC2463] or RSVP [RFC2205] protocols could be used for delivering theuse ofQuick-Start Request. A.1.1. ICMP Being aslightly different IP optioncontrol protocol used between Internet nodes, one could argue that ICMP is the ideal method forTCP connections to discoverrequesting a permission for faster startup from routers. The ICMP header is above theavailable bandwidth alongIP header. Quick-Start could be accomplished with ICMP as follows: If thepath. In that proposal,ICMP protocol is used to implement Quick-Start, the equivalent of the Quick-Start IP option wouldquerybe carried in the ICMP header of the ICMP Quick-Start Request. The ICMP Quick-Start Request would have to pass by the routersalongon the pathaboutto thesmallest available free buffer size. Also,receiver, possibly using the IP Router Alert optionwould 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) includes a proposal for a single PTP packet[RFC2113]. A router that approves the Quick-Start Request wouldcollect information from routers alongtake thepath fromsame actions as in thesender tocase with the Quick-Start IP Option, and forward thereceiver [W00]. For example, a single PTPpacketcould be usedtodeterminethebottleneck bandwidthnext router alongathe path.ETEN: Additional proposals for end nodes to collect explicit information from routers include Explicit Transport Error Notification (ETEN), which includes a cumulative mechanism to notify endpoints of aggregate congestion statistics alongA router that does not approve thepath [KAPS02]. 11.4. Fast Start-upsQuick- Start Request, even withmore Fine-Grained Feedback from Routers Proposalsa decreased value formore fine-grained congestion-related feedback from routers include XCP [KHR02], MaxNet [MaxNet], and AntiECN marking [K03]. Section A.6 discusses in more detailtherelationship betweenRequested Rate, would delete the ICMP Quick-Start Request, andproposals 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 also are more complex to understand and more difficult to deploy. XCP routers maintain no per-flow state, but provide more fine- grained feedbacksend an ICMP Reply toend-nodes thantheone-bit congestion feedbacksender that the request was not approved. If the ICMP Reply was dropped in the network, and did not reach the receiver, the sender would still know that the request was not approved from the absence ofECN. The per-packetfeedback fromXCP can be positive or negative, and specifiestheincrease or decrease inreceiver. If thesender's congestion window when this packet is acknowledged. AntiECN: The AntiECN proposal is for a single bitICMP Quick-Start request was dropped in thepacket header that routers could setnetwork due toindicate that they are underutilized. For each TCP ACK arriving atcongestion, the senderindicatingwould assume thata packet has been received with the Anti-ECN bit set,thesender would be able to increase its congestion window by one packet, as itrequest was not approved. The ICMP message wouldduring slow-start. 12. Security Considerations Sections 9.4need the source and9.5 discussdestination port numbers for demultiplexing at thesecurity considerations relatedend nodes. If the ICMP Quick-Start Request reached the receiver, the receiver would use transport-level or application-level mechanisms to send a response toQuick-Start. Section 9.4 discussesthepotential abusesender, exactly as with the IP Option. One benefit ofQuick- Startusing ICMP would be that the delivery ofreceivers lying about whethertherequest was approvedTCP SYN packet oraboutother initial packet would not be delayed by IP option processing at routers. A greater advantage is that if middleboxes were blocking packets with Quick-Start Requests, using theapproved rate; of routersQuick- Start Request incollusiona separate ICMP packet would mean that the middlebox behavior would not affect the connection as a whole. (To get this robustness tomisuse Quick- Start; and of potential problemsmiddleboxes withtraffic normalizers that rewriteTCP using an IPTTLs inQuick-Start Option, one would have to have a TCP-level Quick-Start Request packetheaders. All of these problemsthat couldresult inbe sent concurrently but separately from thesender usingTCP SYN packet.) However, there are aRatenumber of disadvantages to using ICMP. Some firewalls and middleboxes may not forward the ICMP Quick-Start Requestthat was inappropriately large, or thinking thatpackets. (If an ICMP Reply packet from arequest was approved when it was in fact denied by at least onerouteralongto thepath. This inappropriate use of Quick-Start would resultsender is dropped incongestion and an unacceptable level of packet drops alongthepath, Such congestion could alsonetwork, the sender would still know that the request was not approved, as stated earlier, so this would not bepartas serious of aDenial of Service attack. Section 9.5 discussesproblem.) In addition, it would be difficult, if not impossible, for apotential attack onrouter in therouters' processing and state load from an attackmiddle ofQuick-Start Requests. Section 9.5 also discusses a potential attack onan IP tunnel to deliver an ICMP Reply packet to theavailable Quick-Start bandwidth by sending bogus Quick-Start requestsactual source, forbandwidth that will notexample when the inner IP header is encrypted as infactIPsec tunnel mode [RFC2401]. Again, however, the ICMP Reply packet would not beused. Section 4.6.2 discussesessential to the correct 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 thepotential problem of packetscontrol information is carried in-band withQuick- Start Requests droppedthe IP packets that can only be altered bymiddleboxes alongthe routers on the connection path.As discussedFinally, as a minor concern, using ICMP would cause a small amount of additional traffic inSection 5, for IPv4 IPsec Authentication Header Integrity Check Value (AH ICV) calculation,theQuick-Start Request option MUSTnetwork, which is not the case when using IP options. A.1.2. RSVP With some modifications RSVP [RFC2205] could betreatedused as amutable IPv4 option, and hence completely zeroedbearer protocol forAH ICV calculation purposes; this is alsocarrying thetreatment required by RFC 2402 for unrecognized IPv4 options. The IPv6Quick-StartRequest option's IANA-allocated option type indicates that it is a mutable option, hence, accordingRequests. Because routers are expected toRFC 2402, its option data MUST be zeroed for AH ICV computation purposes. See RFC 2402 for further explanation. Section 6.2 discusses possible problems ofprocess RSVP packets more extensively than the normal transport protocol IP packets, delivering a Quick-Startused by connections carried over simple tunnels that are not compatiblerate request using an RSVP packet would seem an appealing choice. However, Quick- Start withQuick-Start. In this case it is possible thatRSVP would require a few differences from the conventional usage of RSVP. Quick-StartRequest is erroneously considered approved bywould not require periodical refreshing of soft state, because Quick-Start does not require per- connection state in routers. Quick-Start Requests would be transmitted downstream from the senderwithoutto receiver in the RSVP Path messages, which is different from therouters inconventional RSVP model where thetunnel having individually approvedreservations originate from therequest, causing a false positive. 13. Conclusions We are presentingreceiver. Furthermore, the Quick-Startmechanism as a simple, understandable, and incrementally-deployable mechanism thatResponse would besufficient to allow some connections to start up with large initial rates,sent using the transport-level orlarge initial congestion windows, in overprovisioned, high-bandwidth environments. We expect there will be an increasing numberapplication-level mechanisms instead ofoverprovisioned, high-bandwidth environments whereusing the RSVP Resv message. If RSVP was used for carrying a Quick-Startmechanism, or another mechanism of similar power, couldRequest, a new "Quick- Start Request" class object would beof significant benefitincluded in the RSVP Path message that is sent from the sender toa wide range of traffic. We are presentingreceiver. The object would contain theQuick-Start mechanism as arate requestfor the communityfield in addition toprovide feedbackthe common length andexperimentation on issues relating to Quick- Start. 14. Acknowledgementstype fields. Theauthors wish to thank Mark Handley for discussionsSend_TTL field in the RSVP common header could be used as the equivalent ofthese issues.the QS TTL field. Theauthors also thankQuick-Start capable routers along theEnd-to-End Research Group,path would inspect theTransport Services Working Group, and members of IPAM's program on Large Scale Communication Networks for both positiveQuick-Start Request object in the RSVP Path message, decrement Send_TTL andnegative feedback on this proposal. We thank Srikanth Sundarrajan foradjust the rate request field if needed. If an RSVP router did not understand the Quick-Start Request object, it would reject the entire RSVP message and send an RSVP PathErr message back to the sender. When an RSVP message with theinitial implementation ofQuick-StartinRequest object reaches theNS simulator, and forreceiver, theinitial simulation study. Many thanks to David Black and Joe Touch for extensive feedback on QuickStart and IP tunnels. We also thank Mohammed Ashraf, John Border, Martin Duke, Tom Dunigan, Gorry Fairhurst, John Heidemann, Paul Hyder, Dina Katabi and Vern Paxson, for feedback. This draft builds uponreceiver sends a Quick-Start Reply message in theconceptscorresponding transport protocol header in the same way as described in[RFC3390], [AHO98], [RFC2415], and [RFC3168]. Somethe context of IP options earlier. If thetext on Quick-Start in tunnelsRSVP message with the Quick- Start Request object wasborrowed directly from RFC 3168. This is a modificationdropped along the path, the transport sender would simply proceed with the normal congestion control procedures. Much ofa draft originally by Amit Jain for Initial Window Discovery. A. Design Decisions A.1. Alternate Mechanisms fortheQuick-Start Request: ICMPdiscussion about benefits andRSVP This document has proposeddrawbacks of usingan IP OptionICMP for making the Quick-Start Requestfromalso applies to thesenderRSVP case. If the Quick-Start Request was transmitted in a separate packet instead of as an IP option, the transport protocol packet delivery would not be delayed due to IP option processing at thereceiver,routers, andusingthe initial transportmechanisms forpackets would reach their destination more reliably. The possible disadvantages of using ICMP and RSVP are also expected to be similar: middleboxes in the network may not be able to forward the Quick-StartResponse fromRequest messages, and thereceiver back toIP tunnels might cause problems for processing thesender.Quick-Start Requests. A.2. Alternate Encoding Functions In this section wediscusslook at alternatemechanisms, and consider whether ICMP [RFC792, RFC2463] or RSVP [RFC2205] protocols could be usedencoding functions fordeliveringthe Rate Request field in the Quick-Start Request.A.1.1. ICMP Being a control protocol used between Internet nodes, one could argue that ICMP is the ideal methodThe main requirements forrequestingthis function is that it should have apermissionsufficiently wide range forfaster startup from routers. The ICMP headerthe requested rate. There isaboveno need for overly-fine-grained precision in theIP header. Quick-Start couldrequested rate. Similarly, while it would beaccomplished with ICMP as follows: Ifattractive for theICMP protocolencoding function to be easily computable, it isusedalso possible for end-nodes and routers toimplement Quick-Start,simply store theequivalent oftable giving theQuick-Start IP option would be carried inmapping between theICMP header ofvalue N in theICMP Quick-Start Request. The ICMP Quick-StartRate Requestwould have to pass by the routers on the path tofield, and thereceiver; for now,actual rate request f(N). In this section wedon't address the mechanisms thatconsider possible encoding methods for Rate Request fields of different sizes, including four-bit, eight-bit, and larger Rate Request fields. Linear functions: One possible proposal would beneeded to accomplish this task. A router that approvesfor theQuick-StartRate Requestwould take the same actions asfield to be formatted in bits per second, scaled so that one unit equals M Kbps, for some fixed value of M. Thus, for thecase with the Quick-Start IP Option, and forward the packet tovalue N in thenext router alongRate Request field, thepath. A router that does not approverequested rate would be M*N Kbps. Powers of two: If a granularity of factors of two is sufficient for theQuick-StartRate Request,eventhen the encoding function witha decreased value fortheRequested Rate,most range woulddeletebe for theICMP Quick-Start Request, and send an ICMP Replyrequested rate to be K*2^N, for N thesender that the request was not approved. If the ICMP Reply was droppedvalue in thenetwork,Rate Request field, anddid not reach the receiver, the sender would still know thatfor K some constant. For N=0, the rate requestwas not approved from the absencewould be set to zero, regardless offeedback fromthereceiver. Ifencoding function. For example, for K=40,000 and an eight-bit Rate Request field, theICMP Quick-Startrequestwas dropped in the network duerange would be from 80 Kbps tocongestion, the sender40*2^255 Kbps. This clearly wouldassume that thebe an unnecessarily large requestwas not approved. If the ICMP Quick-Startrange. For a four-bit Rate Requestreachedfield, thereceiver,upper limit on thereceiverrate request is 1.3 Gbps. It seems to us that an upper limit of 1.3 Gbps woulduse transport-level mechanismsbe fine for the Quick-Start rate request, and that connections wishing tosendstart up with aresponsehigher initial sending rate should be encouraged tothe sender, exactlyuse other mechanisms, such aswiththeIP Option. One benefitexplicit reservation ofusing ICMP would be that the deliverybandwidth. If an upper limit ofthe TCP SYN packet or other initial packet would1.3 Gbps was not acceptable, then five or six bits could bedelayed by IP option processing at routers. A greater advantage is that if middleboxes were blocking packets with Quick-Start Requests, usingused for theQuick- StartRate Requestin a separate ICMP packet would mean thatfield. If themiddlebox behavior would not affectgranularity of factors of two was too coarse, then theconnection asencoding function could use awhole. (To get this robustness to middleboxes with TCP using an IP Quick-Start Option, onebase less than two. An alternate form for the encoding function wouldhavebe tohave a TCP-level Quick-Start Request packet that was sent concurrently but separately from the TCP SYN packet.) However, there areuse anumberhybrid ofdisadvantages to using ICMP. Some firewallslinear andmiddleboxes may not forwardexponential functions. A mantissa and exponent representation: Section 4.4 of [B05] suggests a mantissa and exponent representation for theICMPQuick-StartRequest packets. (If an ICMP Reply packet from a router toencoding function. With e and f as thesender is droppedbinary numbers in thenetwork, the sender would still know that the request was not approved, as stated earlier, soexponent and mantissa fields, and with 0 <= f < 1, this wouldnot berepresent the rate (1+f)*2^e. [B05] suggests aproblem.) In addition, it would be difficult, if not impossible,mantissa field fora router in the middlef of 8, 16, or 24 bits, with anIP tunnel to deliver an ICMP Reply packet to the actual source,exponent field forexample when the inner IP header is encrypted as in IPsec tunnel mode [RFC2401]. Again, however, the ICMP Reply packete of 8 bits. This representation wouldnot be essential toallow larger rate requests, with an encoding that is less coarse than thecorrect operation of ICMP Quick-Start. Unauthenticated out-of-band ICMP messages could enable some typespowers-of-two encoding used in this document. Constraints ofattacks by third-party malicious hoststhe transport protocol: We note thatare not possible whenthecontrol informationRate Request iscarried in-band with the IP packets that can only be alteredalso constrained by therouters on the connection path. Finally, as a minor concern, using ICMP would cause a small amountabilities ofadditional traffic in the network, which is notthecase when using IP options. A.1.2. RSVP With some modifications RSVP [RFC2205] could be used as a bearer protocoltransport protocol. For example, forcarrying the Quick-Start Requests. Because routers are expected to process RSVP packets more extensively thanTCP with Window Scaling, thenormal transport protocol IP packets, deliveringmaximum window is at most 2**30 bytes. For aQuick-Start rate request using an RSVP packet would seem an appealing choice. However, Quick- StartTCP connection withRSVPa long, 1 second round-trip time, this wouldrequiregive afew differences from the conventional usagemaximum sending rate ofRSVP.1.07 Gbps. A.3. The Quick-Startwould not require periodical refreshingRequest: Packets or Bytes? One ofsoft state, because Quick-Start does not require per- connection state in routers. Quick-Start Requests would be transmitted downstream fromthesender to receiver in the RSVP Path messages, whichdesign questions isdifferent from the conventional RSVP model wherewhether thereservations originateRate Request field should be in bytes per second or in packets per second. We discuss this separately from thereceiver. Furthermore,perspective of theQuick-Start Response would be sent usingtransport, and from thetransport-level mechanisms insteadperspective ofusingtheRSVP Resv message. If RSVP was used for carrying arouter. For TCP, the results from the Quick-StartRequest,Request are translated into anew "Quick- Start Request" class object would be includedcongestion window in bytes, using theRSVP Path message that is sent from the sender to receiver. The object would containmeasured round-trip time and therate request field in additionMSS. This window applies only to thecommon lengthbytes of data payload, andtype fields. The Send_TTL fielddoes not include the bytes in theRSVP common header could be used asTCP or IP packet headers. Other transport protocols would conceivably use theequivalent ofQuick- Start Request directly in packets per second, or could translate theQS TTL field. TheQuick-Startcapable routers alongRequest to a congestion window in packets. The assumption of this draft is that thepath would inspectrouter only approves the Quick-Start Requestobject inwhen theRSVP Path message, decrement Send_TTL and adjustoutput link is significantly underutilized. For this, therate request field if needed. If an RSVProuterdid not understandcould measure the available bandwidth in bytes per second, or could convert between packets and bytes by some mechanism. If the Quick-Start Requestobject, it would reject the entire RSVP messagewas in bytes per second, andsend an RSVP PathErr message backapplied only to thesender. When an RSVP message withdata payload, then theQuick-Startrouter would have to convert from bytes per second of data payload, to bytes per second of packets on the wire. If the Rate Requestobject reachesfield was in bytes per second and thereceiver,sender ended up using very small packets, this could translate to a significantly larger number in terms of bytes per second on thereceiver sendswire. Therefore, for a Quick-StartReply messageRequest in bytes per second, it makes most sense for this to include thecorrespondingtransportprotocol header in the same way as described in the context ofand IPoptions earlier. Ifheaders as well as theRSVP message withdata payload. Of course, this will be at best a rough approximation on theQuick- Start Request object was dropped alongpart of thepath,sender; thetransporttransport-level senderwould simply proceed withmight not know thenormal congestion control procedures. Muchsize of thediscussion about benefitstransport anddrawbacks of using ICMP for makingIP headers in bytes, and might know nothing at all about the separate headers added in IP tunnels downstream. This rough estimate seems sufficient, however, given the overall lack of fine precision in Quick-StartRequest also applies tofunctionality. It has been suggested that theRSVP case. Ifrouter could possibly use information from theQuick-Start Request was transmittedMSS option ina separatethe TCP packetinsteadheader ofas an IP option,thetransport protocolSYN packetdelivery would not be delayed duetoIP option processing at the routers, andconvert theinitial transportQuick-Start Request from packetswould reach their destination more reliably.per second to bytes per second, or vice versa. Thepossible disadvantages of using ICMP and RSVP areMSS option is defined as the maximum MSS that the TCP sender expects to receive, not the maximum MSS that the TCP sender plans to send [RFC793]. However, it is probably often the case that this MSS alsoexpected to be similar: middleboxesapplies as an upper bound on the MSS used by the TCP sender in sending. We note that thenetwork maysender does notbe able to forwardnecessarily know the Path MTU when the Quick-Start Requestmessages, andis sent, or when theIP tunnels might cause problems for processinginitial window of data is sent. Thus, with IPv4, packets from theQuick-Start Requests. A.2. Alternate Encoding Functions In this section we look at alternate encoding functions forinitial window could end up being fragmented in the network if the "Don't Fragment" (DF) bit is not set [RFC1191]. A Rate Requestfieldinthe Quick-Start Request. The main requirements for this functionbytes per second isthat it should havereasonably robust to fragmentation. Clearly asufficiently wide range for the requested rate. ThereRate Request in packets per second isno need for overly-fine-grained precisionless robust in therequested rate. Similarly, while it would be attractive for the encoding function to be easily computable, it is also possible for end-nodespresence of fragmentation. Interactions between larger initial windows androuters to simply storePath MTU Discovery are discussed in more detail in RFC 3390 [RFC3390]. For a Quick-Start Request in bytes per second, thetable givingtransport senders would have themapping betweenadditional complication of estimating thevalue Nbandwidth usage added by the packet 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. A.4. Quick-Start Semantics: Total Rate or Additional Rate? For a Quick-Start Request sent in theRate Request field, andmiddle of a connection, there are two possible semantics for theactual rate request f(N). In this section we consider both four-bit and eight-bitRate Requestfields. Linear functions:field, as follows: (1) Total Rate: TheQuick-Startrequested Rate Requestcontains an 8-bit fieldis the requested total rate for the connection, including the current rate; or (2) Additional Rate: The requested RateRequest. One possible proposal would be for this field to be formattedRequest is the requested increase inbits per second, scaled so that one unit equals 80 Kbps. Thus,the total rate for that connection, over and above thevalue N incurrent sending rate. When theRateQuick-Start Requestfield,is sent after an idle period, therequestedcurrent sending rate is80,000*N bps. This gives a request range between 80 Kbpszero, and20.48 Mbps. For 1500-byte packets, this corresponds to a request rangethere is no difference between6(1) and1706 packets per second. Powers of two: If(2) above. However, agranularity of factors of two is sufficient for the Rate Request, then the encoding function with the most range wouldQuick-Start Request can also beforsent in therequested ratemiddle of a connection that has not been idle, e.g., after a mobility event, or after an application-limited period when the sender is suddenly ready to send at a much higher rate. In this case, there can beK*2^N, for N the value in the Rate Request field,a significant difference between (1) andfor K some constant. For N=0,(2) above. In this section we consider briefly therate request would be set to zero, regardless oftradeoffs between these two options, and explain why we have chosen theencoding function. For example,`Total Rate' semantics. The Total Rate semantics makes it easier forK=40,000,routers to ``allocate'' therequest range would be from 80 Kbpssame rate to40*2^256 Kbps.all connections. Thisclearly would be an unnecessarily large request range. For a four-bitlends itself to fairness, and improves convergence times between old and new connections. With the Additional RateRequest field,semantics, theupper limit onrouter would not necessarily know therate request is 1.3 Gbps. It is possible that an upper limitcurrent sending rates of1.3 Gbps would be fine fortheQuick-Start rate request,flows requesting additional rates, andthat connections wishing to start up with a higher initial sending rate should be encouragedtherefore would not have sufficient information to useother mechanisms, suchfairness as a metric in granting rate requests. With theexplicit reservation of bandwidth. If an upper limit of 1.3 Gbps is not acceptable, then five bits could be used for theTotal RateRequest field. Ifsemantics, thegranularity of factors of twofairness istoo coarse, thenautomatic; theencoding function could use a base less than two. An alternate formrouter is not granting rate requests for *additional* bandwidth without knowing theencoding function would be to use a hybridcurrent sending rates oflinear and exponential functions. We note thatthe different flows. The Additional RateRequestsemantics alsohaslends itself tobe constrainedgaming by theabilitiesconnection, with senders sending frequent Quick-Start Requests in the hope of gaining a higher rate. If thetransport protocol. For example, for TCP with Window Scaling,router is granting the same maximumwindowrate for all rate requests, then there isat most 2**30 bytes. Forlittle benefit to aTCPconnectionwith a long, 1 second round-trip time, this would give a maximumof sending a rateof 1.07 Gbps. A.3. The Quick-Start Request: Packets or Bytes? One ofrequest over and over again. However, if thedesign questionsrouter iswhethergranting an *additional* rate with each rate request, over and above theRate Request field should becurrent sending rate, then it is inbytes per second ora connection's interest to send as many rate requests as possible, even if very few of them are inpackets per second. We will discussfact granted. Appendix D discusses a Report of Current Sending Rate as one possible function in the Quick-Start Option. However, we have not standardized thisseparately frompossible use at this time. A.5. Alternate Responses to theperspectiveLoss of a Quick-Start Packet Section 4.5 discusses TCP's response to thetransport, and from the perspectiveloss of a Quick-Start packet in therouter. For TCP,initial window. This section discusses several alternate responses. One possible alternative to reverting to theresults fromdefault slow-start after theQuick-Start Request are translated intoloss of acongestion window in bytes, using the measured round-trip time andQuick-Start packet from theMSS. Thisinitial windowapplies onlywould have been to halve thebytes of data payload,congestion window anddoes not include the bytescontinue in congestion avoidance. However, we note that this would not have been a desirable response for either theTCPconnection orIPfor the network as a whole. The packetheaders. Other transport protocols would conceivably useloss in the initial window indicates that Quick- StartRequest directlyfailed inpackets per second, or could translatefinding an appropriate congestion window, meaning that theQuick-Start Request to acongestion window after halving may easily also be wrong. A more moderate alternate would be to continue inpackets. The assumptioncongestion avoidance from a window ofthis draft(W-D)/2, where W isthat the router only approvesthe Quick-StartRequest when the output linkcongestion window, and D issignificantly underutilized. For this,therouter could measurenumber of packets dropped or marked from that window. However, such an approach would implicitly assume that the number of Quick-Start packets delivered is a good indication of the appropriate available bandwidthin bytes per second, or could convert betweenfor that flow, even though other packetsand bytes by some mechanism. If the Quick-Start Request wasfrom that window were dropped inbytes per second, and applied only to the data payload, thentherouternetwork. We believe that such an assumption wouldhave to convert from bytes per second of data payload, to bytes per secondrequire more analysis at this point, particularly in a network with a range ofpackets on the wire. Ifpacket dropping mechanisms at theRate Request field was in bytes per secondrouter, andthe sender ended up using very small packets,we cannot recommend it at thiscould translatetime. Another drawback of approaches that don't revert back to slow-start when asignificantly larger numberQuick-Start packet interms of bytes per second onthewire. Therefore, forinitial window is dropped is that any such approaches could give the TCP receiver an incentive to lie about the Quick-Start request. That is, if the sender reverts to slow-start when a Quick-StartRequest in bytes per second,packet is dropped, then itmakes most sense for thisis generally not toincludethetransport and IP headers as well asreceiver's advantage to report a larger rate request than was actually approved if thedata payload. Of course, this willresult is going to beat bestarough approximation onQuick-Start packet dropped in thepart ofnetwork. However, if thesender;receiver benefits from a larger Quick-Start window even when thetransport-level sender might not knowlarger window results in Quick-Start packets dropped in thesize ofnetwork, then thetransport and IP headers in bytes, and might know nothing at allreceiver has a greater incentive to lie about theseparate headers addedreceived rate request, inIP tunnels downstream. This rough estimate seems sufficient, however, givenan effort to get theoverall lack of fine precision insender to use a larger initial sending rate. A.6. Why Not Include More Functionality? This proposal for Quick-Startfunctionality. It has been suggestedis a rather coarse-grained mechanism thatthe router could possiblywould allow connections to useinformation from the MSS option in the TCP packet header of the SYN packethigher sending rates along underutilized paths, but that does not attempt toconvertprovide a next- generation transport protocol, and does not attempt theQuick-Start Request from packets per second to bytes per second, or vice versa. The MSS option is definedgoal of providing very high throughput with very low delay. As Section 11.4 discusses, there are a number of proposals such as XCP, MaxNet, and AntiECN for more fine-grained per-packet feedback from routers than themaximum MSScurrent congestion control mechanisms, thatthe TCP sender expectsdo attempt these more ambitious goals. Compared toreceive,proposals such as XCP and AntiECN, Quick-Start offers much less control. Quick-Start does notthe maximum MSS that the TCP sender plansattempt tosend [RFC793]. However, it is probably often the case that this MSS also appliesprovide a new congestion control mechanism, but simply to get permission from routers for a higher sending rate at start-up, or after an idle period. Quick-Start can be thought of as anupper bound on the MSS used by the TCP sender in sending. We note"anti-congestion- control" mechanism, thatthe sender does not necessarily know the Path MTUis only of any use when all of the routers along the path are significantly under-utilized. Thus, Quick-StartRequestissent, or when the initial windowofdata is sent. Thus, with IPv4, packets from the initial window could end up being fragmentedno use towards a target of high link utilization, or fairness in a high-utilization scenario, or controlling queueing delay during high-utilization, or anything of thenetwork iflike. At the"Don't Fragment" (DF) bit is not set [RFC1191]. A Rate Request in bytes per second is reasonably robustsame time, Quick-Start would allow larger initial windows than would proposals such as AntiECN, requires less input tofragmentation. Clearly a Rate Request in packets per secondrouters than 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-Start is significantly lessrobustpowerful than proposals for new congestion control mechanisms such as XCP and AntiECN, but as powerful or more powerful in terms of thepresencespecific issue offragmentation. Interactions betweenallowing larger initialwindowswindows, andPath MTU Discovery are discussed in(we think) moredetail in RFC 3390 [RFC3390]. For a Quick-Start Requestamenable to incremental deployment inbytes per second, the transport senders would have the additional complication of estimating the bandwidth usage added bythepacket headers.current Internet. Wehave chosen a Rate Request field in bytes per second rather thando not discuss proposals such as XCP inpackets per second because it seems somewhat more robust, particularly to routers. A.4. Quick-Start Semantics: Total Rate or Additional Rate? Fordetail, but simply note that there are aQuick-Start Request sent in the middlenumber ofa connection,open questions. One question concerns whether thereare two possible semantics for the Rate Request field, as follows: (1) Total Rate: The requested Rate Requestisthe requested total ratea pressing need forthe connection, including the current rate; or (2) Additional Rate: The requested Rate Request is the requested increasemore sophisticated congestion control mechanisms such as XCP in thetotal rate for that connection, over and above the current sending rate. When theInternet. Quick-StartRequest is sent after an idle period, the current sending rateiszero,inherently a rather crude tool that does not deliver assurances about maintaining high link utilization andtherelow queueing delay; Quick-Start isno difference between (1)designed for use in environments that are significantly underutilized, and(2) above. However,addresses the single question of whether aQuick-Start Request can also be senthigher sending rate is allowed. New congestion control 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 themiddleother benefits of more fine-grained congestion control feedback from routers aconnectionpressing requirement? We would argue thathas not been idle, e.g., aftereven if more fine-grained per-packet feedback from routers was implemented, it is reasonable to have amobility event,separate mechanism such as Quick-Start for indicating an allowed initial sending rate, or an allowed total sending rate after anapplication-limited period when the sender is suddenly ready to send at a much higher rate. In this case, there can be a significantidle or underutilized period. One difference between(1) and (2) above. In this section we consider briefly the tradeoffs between these two options,Quick-Start andexplain why we have chosen the `Total Rate' semantics. The Total Rate semantics makes it easiercurrent proposals forrouters to ``allocate'' the same rate to all connections. This lends itselffine- grained per-packet feedback such as XCP is that XCP is designed tofairness, and improves convergence times between old and new connections. With the Additional Rate semantics, the router would not necessarily know the current sending rates ofgive robust performance even in theflows requesting additional rates, and therefore would not have sufficient information to use fairness ascase where different packets within ametricconnection routinely follow different paths. XCP achieves relatively robust performance ingranting rate requests. WiththeTotal Rate semantics,presence of multi-path routing by using per-packet feedback, where thefairnessfeedback carried in a single packet isautomatic;about therouterrelative increase or decrease in the rate or window to take effect when that particular packet is acknowledged, notgrantingabout the allowed sending raterequestsfor*additional* bandwidth without knowingthecurrent sending rates ofconnection as a whole. In contrast, Quick-Start sends a single Quick-Start request, and thedifferent flows. The Additional Rate semantics also lends itselfanswer togaming bythat request gives theconnection, with sendersallowed sendingfrequentrate for an entire window of data. As a result, Quick-StartRequestscould be problematic inthe hopean environment where some fraction ofgainingthe packets in ahigher rate. Ifwindow of data take path A, and therouter is grantingrest of thesame maximum ratepackets take path B; forall rate requests, then there is little benefit to a connectionexample, the Quick-Start Request could have travelled on path A, while half ofsending a rate request over and over again. However, iftherouter is granting an *additional* rate with each rate request, overQuick-Start packets sent in the succeeding round-trip time are routed on path B. There are also differences between Quick-Start andabovesome of thecurrent sending rate, then it isproposals for per-packet feedback ina connection's interestterms of the number of bits of feedback required from the routers tosend as many rate requests as possible, even if very fewthe end-nodes. Quick-Start uses four bits ofthem arefeedback infact granted. For either of these alternatives,the rate request field to indicate the allowed 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 wouldnotberoommore like other proposals such as anti-ECN that use a single bit of feedback from routers toreportindicate that thecurrent sending ratesender can increase as fast as slow-starting, inthe Quick-Start Option using the current minimal format for the Quick-Start Request. Thus, either the Quick- Start Option would have to take more than four bytesresponse toinclude a reportthis particular packet acknowledgement. In general, there is probably considerable power in fine-grained proposals with only two bits of feedback, indicating that thecurrent sending rate,sender should decrease, maintain, or increase thecurrentsending ratewould not be reported to the routers. A.5. Alternate Responses toor window when this packet is acknowledged. However, theLosspower ofaQuick-StartPacket Section 4.5 discusses TCP's responsewould be considerably limited if it was restricted tothe lossonly two bits ofa Quick-Start packet infeedback; it seems likely that determining the initialwindow. This section discusses several alternate responses. One possible alternative to reverting to the default slow-start after the losssending rate fundamentally requires more bits ofa Quick-Start packetfeedback from routers than does theinitial window would have beensteady-state, per-packet feedback tohalveincrease or decrease thecongestion windowsending rate. On a more practical level, one difference between Quick-Start andcontinue in congestion avoidance. However, we noteproposals for per-packet feedback is thatthisthere are fewer open issues with Quick-Start than there wouldnot have beenbe with a new congestion control mechanism. Because Quick-Start is a mechanism for requesting an initial sending rate in an underutilized environment, its fairness issues are less severe than those of adesirable responsegeneral congestion control mechanism. With Quick-Start, there is no need foreithertheconnection or forend nodes to tell thenetwork as a whole. The packet loss inrouters theinitial window indicates that Quick- Start failed in finding an appropriateround-trip time and congestion window,meaningas is done in XCP; all that is needed is for thecongestion window after halving may easily also be wrong. A more moderate alternate would beend nodes tocontinue in congestion avoidance fromreport the requested sending rate. Table 3 provides awindowsummary of(W-D)/2, where W isthe differences between Quick-Startcongestion window,andD is the number of packets droppedproposals 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 to | In addition. | Replacement. congestion ctrl: | | +------------------+----------------------+----------------------+ Frequency: | Start-up, ormarked from that window. However, suchafter | Every packet. | anapproach would implicitly assume that the numberidle period. | +------------------+----------------------+----------------------+ Limitations: | Only useful on | General congestion | underutilized paths.| control mechanism. +------------------+----------------------+----------------------+ Input to routers: | Rate request. |RTT, cwnd, request (XCP) | | None (Anti-ECN). +------------------+----------------------+----------------------+ Bits of feedback: | Four bits for | A few bits would | rate request. | suffice? +------------------+----------------------+----------------------+ Table 3: Differences between Quick-Startpackets delivered is a good indication of the appropriate available bandwidthand Proposals forthat flow, even though other packets from that window were dropped in the network. We believe thatFine-Grained Per-Packet Feedback. A separate question concerns whether mechanisms suchan assumption would require more analysis at this point, particularlyas Quick-Start, ina networkcombination with HighSpeed TCP and other changes in progress, would make arangesignificant contribution towards meeting some of these needs for new congestion control mechanisms. This could be viewed as a positive step towards meeting some ofpacket dropping mechanisms attherouter,more pressing current needs with a simple andwe cannot recommend it at this time. Another drawbackreasonably deployable mechanism, or alternately, as a negative step ofapproachesunnecessarily delaying more fundamental changes. Without answering this question, we would note thatdon't revert backour own approach tends toslow-start when a Quick-Start packet infavor theinitial window is dropped is that any such approaches could giveincremental deployment of relatively simple mechanisms, as long as theTCP receiver an incentive to lie aboutsimple mechanisms are not short-term hacks but mechanisms that lead theQuick-Start request. That is, ifoverall architecture in thesender reverts to slow-start whenfundamentally correct direction. A.7. Alternate Implementations for aQuick-Start packet is dropped, then it is generally not toQuickStart Nonce A.7.1. An Alternate Proposal for thereceiver's advantage to report a larger rate request than was actually approved ifQuickStart Nonce An alternate proposal for theresult is going to be aQuick-Startpacket dropped inNonce from [B05] would be for an n-bit field for thenetwork. However, ifQS Nonce, with thereceiver benefits fromsender generating alarger Quick-Start window evenrandom nonce whenthe larger window results init generates a Quick-Startpackets dropped inRequest. Each router that reduces thenetwork, thenRate 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 receiverhas a greater incentivereturns the QS nonce tolie aboutthereceivedsender. Because the sender knows the original value for the nonce, and the original rate request,in an effort to getthe sender knows the total number of steps s that the rate has been reduced. The sender then hashes the original nonce s times, touse a larger initial sending rate. A.6. Why Not Include More Functionality?check whether the result is the same as the nonce returned by the receiver. This alternate proposal forQuick-Start is a rather coarse-grained mechanism thatthe nonce wouldallow connections to use higher sending rates along underutilized paths, but that does not attempt to provide a next- generation transport protocol, and does not attemptbe considerably more powerful than thegoal of providing very high throughput with very low delay. AsQS nonce described in Section11.4 discusses, there are a number of proposals such as XCP, MaxNet, and AntiECN for3.4, but it would also require morefine-grained per-packet feedbackCPU cycles fromrouters thatthecurrent 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 provide a new congestion control mechanism, but simply to get permission fromroutersforwhen they reduce ahigher sending rate at start-up, or after an idle period.Quick-Startcan be thought of as an "anti-congestion- control" mechanism, that is only of any use when allrequest, and from the sender in verifying the nonce returned by the receiver. As reported in [B05], routers could protect themselves from processor exhaustion attacks by limiting the rate at which they will approve reductions of Quick-Start requests. Both therouters alongFunction field and the Reserved field in thepath are significantly under-utilized. Thus,Quick-StartisOption would allow the extension ofnoQuick-Start to usetowards a targetQuick-Start requests with the alternate proposal for the Quick-Start Nonce, if it was ever desired. A.7.2. The Earlier Request-Approved QuickStart Nonce An earlier version ofhigh link utilization, or fairness inthis document included ahigh-utilization scenario, or controlling queueing delay during high-utilization, or anything ofRequest-Approved QuickStart Nonce (QS Nonce) that was initialized by thelike. Atsender to a non-zero, `random' eight-bit number, along with a QS TTL that was initialized to the sametime, Quick-Start would allow larger initial windows than would proposals suchvalue asAntiECN, requires less input to routers than XCP, andthe TTL in the IP header. The Request-Approved QuickStart Nonce wouldrequire less frequent feedback from routers than any new congestion control mechanism. Thus,have been returned by the transport receiver to the transport sender in the Quick-Startis significantly less powerful than proposals for new congestion control mechanisms such as XCP and AntiECN, but as powerfulResponse. A router could deny the Quick-Start request by failing to decrement the QS TTL field, by zeroing the QS Nonce field, ormore powerful in terms ofby deleting thespecific issueQuick-Start Request from the packet header. The QS Nonce was included to provide some protection against broken downstream routers, or against misbehaving TCP receivers that might be inclined to lie about whether the Rate Request was approved. This protection is now provided by the QS Nonce, by the use ofallowing largera random initialwindows,value for the QS TTL field, and(we think) more amenableby 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 QuickStart Nonce, along with the QS TTL field set toincremental deployment inthecurrent Internet. We do not discuss proposals suchsame value asXCPthe TTL field indetail, but simply note that there arethe IP header, the Quick-Start Request mechanism would have been self-terminating; the Quick-Start Request would terminate at the first participating router after anumbernon-participating router had been encountered on the path. This minimizes unnecessary overhead incurred by routers because ofopen questions. One question concerns whether there is a pressing needoption processing formore sophisticated congestion control mechanisms such as XCP intheInternet.Quick-Start Request. In the current specification, this "self-terminating" property isinherentlyprovided by Quick-Start-capable routers hopefully either deleting the Quick- Start Option or zeroing the Rate Request field when they deny arather crude tool that does not deliver assurances about maintaining high link utilization and low queueing delay; Quick-Start is designed for use in environments that are significantly underutilized, and addressesrequest. Because thesingle question of whethercurrent specification uses ahigher sending rate is allowed. New congestion control mechanisms with more fine-grained feedback fromrandom initial value for the QS TTL, Quick-Start-capable routerscould allow faster startups even in environments with rather high link utilization. Is this a pressing requirement? Arecan't tell if theother benefitsQuick-Start Request is invalid because ofmore fine-grained congestion control feedback fromnon-Quick-Start-capable routers upstream. This is the cost of using apressing requirement? We would arguedesign thateven if more fine-grained per-packet feedback from routers was implemented,makes itis reasonabledifficult for the receiver tohave a separate mechanism such ascheat about the value of the QS TTL. B. Quick-Start with DCCP DCCP is a new transport protocol forindicating an allowed initial sending rate, or an allowed total sending rate after an idle or underutilized period. One difference between Quick-Start and current proposalscongestion-controlled, unreliable datagrams, intended forfine- grained per-packet feedbackapplications such asXCP is that XCP is designed to give robust performance even instreaming media, Internet telephony, and on-line games. In DCCP, thecase where different packets withinapplication has aconnection routinely follow different paths. XCP achieves relatively robust performance inchoice of congestion control mechanisms, with thepresencecurrently-specified Congestion Control Identifiers (CCIDs) being CCID 2 for TCP-like congestion control, and CCID 3 for TFRC, an equation-based form ofmulti-path routing by using per-packet feedback, wherecongestion control. We refer thefeedback carried inreader to [KHF05] for asingle packet is aboutmore detailed description of DCCP, and of therelative increase or decrease incongestion control mechanisms. Because CCID 3 uses a rate-based congestion control mechanism, it raises some new issues about therate or windowuse of Quick-Start with transport protocols. In this document we don't attempt totake effect whenspecify the use of Quick-Start with DCCP. However, we do discuss some of the issues thatparticular packet is acknowledged, not aboutmight arise. In considering theallowed sending rateuse of Quick-Start with CCID 3 forthe connection asrequesting awhole. In contrast, Quick-Start sendshigher initial sending rate, the following questions arise: (1) how does the sender respond if asingleQuick-Startrequest,packet is dropped; and (2) when does theanswer tosender determine thatrequest givesthere has been no feedback from the receiver, and reduce theallowedsendingrate for an entire window of data. Asrate? (1) How does the sender respond if aresult,Quick-Startcould be problematicpacket is dropped: As in TCP, if anenvironment where some fraction of the packets in a window of data take path A, and the rest ofinitial Quick-Start packet is dropped, thepackets take path B; for example,CCID 3 sender should revert to theQuick-Start Request couldcongestion control mechanisms it would havetravelled on path A, while half ofused if the Quick-Startpackets sent inrequest had not been approved. (2) When does thesucceeding round-trip time are routed on path B. There are also differences between Quick-Start and some ofsender decide there has been no feedback from theproposalsreceiver: Unlike TCP, CCID 3 does not use acknowledgements forper-packetevery packet, or for every other packet. In contrast, the CCID 3 receiver sends feedback to the sender roughly once per round-trip time. In CCID 3, the allowed sending rate is halved if no feedback is received from the receiver interms ofat least four round-trip times (when the sender is sending at least one packet every two round-trip times). When a Quick-Start request is used, it would seem necessary to use a smaller time interval, e.g., to reduce thenumber of bits ofsending rate if no feedbackrequiredis received from therouters to the end-nodes. Quick-Start uses four bits of feedbackreceiver in at least two round-trip times. The question also arises of how therate request field to indicate the allowedsendingrate. XCP allocates a byte for per-packet feedback, though there has been discussion of variants of XCP with less per- packet feedback. This wouldrate should bemore like other proposals such as anti-ECN that usereduced after asingle bitperiod of no feedback fromrouters to indicate thatthesender can increase as fast as slow-starting, in response to this particular packet acknowledgement. In general, there is probably considerable power in fine-grained proposalsreceiver. As withonly two bits of feedback, indicating thatTCP, thesender should decrease, maintain, or increasedefault CCID 3 response of halving the sending rateor window when this packetisacknowledged. However, the power of Quick-Start would be considerably limited if it was restrictednot necessarily a sufficient response toonly two bitsthe absence of feedback;it seems likely that determiningan alternative is to reduce theinitialsending ratefundamentally requires more bits of feedback from routers than does the steady-state, per-packet feedbacktoincrease or decreasethe sendingrate. Onrate that would have been used if no Quick-Start request had been approved. That is, if a CCID 3 sender uses amore practical level, one difference betweenQuick-Startand proposals for per-packetrequest, special rules might be required to handle the sender's response to a period of no feedbackis that there are fewer open issues withfrom the receiver regarding the Quick-Start packets. Similarly, in considering the use of Quick-Startthan there would bewitha new congestion control mechanism. For example, for a mechanismCCID 3 for requesting ainitialhigher sending rateinafter anunderutilized environment,idle period, thefairness issues offollowing questions arise: (1) what rate does the sender request; (2) what is the response to ageneral congestion control mechanism go away,packet loss; and (3) when does the sender determine that thereishas been noneed forfeedback from theend nodes to tellreceiver, and therouterssending rate must be reduced? (1) What rate does theround-trip time and congestion window, as is donesender request: As inXCP; all that is neededTCP, there isfor the end nodes to report the requested sending rate. Table 2 providesasummary ofstraightforward answer to thedifferences between Quick-Start and proposals for per-packet congestion control feedback. Proposals for Quick-Start Per-Packet Feedback +------------------+----------------------+----------------------+ Semantics: | Allowed sendingrate| 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. +------------------+----------------------+----------------------+ Input to routers: | Rate request. |RTT, cwnd,request(XCP) | | None (Anti-ECN). +------------------+----------------------+----------------------+ Bits of feedback: | Four bits for | A few bits would | rate request. | suffice? +------------------+----------------------+----------------------+ Table 2: Differences between Quick-Start and Proposals for Fine-Grained Per-Packet Feedback. A separate question concerns whether mechanisms such as Quick-Start, in combination with HighSpeed TCP and other changesthat the CCID 3 sender should use inprogress, would make a significant contribution towards meeting some of these needs for new congestion control mechanisms. This could be viewed asrequesting apositive step of meeting some ofhigher sending rate after an idle period. The sender knows the currentneeds with a simple and reasonably deployable mechanism,loss event rate, either from its own calculations oralternately, as a negative step of unnecessarily delaying more fundamental changes. Without answering this question, we would notefrom feedback from the receiver, and can determine the sending rate allowed by thatour own approach tends to favorloss event rate. This is theincremental deploymentupper bound on the sending rate that should be requested by the CCID 3 sender. A Quick-Start request is useful with CCID 3 when the sender is coming out ofrelatively simple mechanisms,an idle or underutilized period, because in standard operation CCID 3 does not allow the sender to send more than twice aslongfast as thesimple mechanisms are not short-term hacks but mechanisms that lead the overall architecturereceiver has reported received in thefundamentally correct direction. A.7.most recent feedback message. (2) What is the response to loss: TheEarlier QuickStart Nonce An earlier version of this document included a Request-Approved QuickStart Nonce (QS Nonce) that was initialized byresponse to thesenderloss of Quick-Start packets should be toa non-zero, `random' eight-bit number, along with a QS TTL that was initializedreturn to thesame value assending rate that would have been used if Quick-Start had not been requested. (3) When does the sender decide there has been no feedback from theTTLreceiver: As in theIP header. The Request-Approved QuickStart Nonce would have been returned bycase of thetransport receiverinitial sending rate, it would seem prudent to reduce thetransport sendersending rate if no feedback is received from the receiver in at least two round-trip times. It seems likely that in this case, theQuick-Start Response. A router could denysending rate should be reduced to the sending rate that would have been used if no Quick-Start requestby failing to decrement the QS TTL field, by zeroing the QS Nonce field, or by deletinghad been approved. C. Possible Router Algorithm This specification does not tightly define the algorithm a router uses when deciding whether to approve a Quick-Start Rate Requestfrom the packet header. The QS Nonce was included to provide some protection against broken downstream routers,oragainst misbehaving TCP receivers that might be inclined to lie aboutwhethertheand how to reduce a RateRequest was approved. This protectionRequest. A range of algorithms isnow provided by the QS Nonce, bylikely useful in this space and we consider theusealgorithm a particular router uses to be a local policy decision. In addition, we believe that additional experimentation with router algorithms is necessary to have a solid understanding of the dynamics various algorithms impose. However, we provide one particular algorithm in this appendix as an example and as arandom initial valueframework for thinking about additional mechanisms. [SAF05] provides several algorithms routers can use to consider incoming Rate Requests. The decision process involves two algorithms. First, the router needs to track theQS TTL field, andlink utilization over the recent past. Second, this utilization needs to be updated byQuick-Start- capable routers hopefully either deletingthe potential new bandwidth from recent Quick-StartOption or zeroing the QS TTLapprovals, andQS Nonce fields when they deny a request. With the old Request-Approved QuickStart Nonce, alongthen compared with theQS TTL field setrouter's notion of when it is underutilized enough to approve Quick-Start requests (of some size). First, we define thesame value as the TTL field in"peak utilization" estimation technique (from [SAF05]). This mechanism records theIP header,utilization of theQuick-Start Request mechanism would have been self-terminating;link every S seconds and stores theQuick-Start Request would terminate atmost recent N of these measurements. The utilization is then taken as thefirst participating router after a non-participating router had been encountered onhighest utilization of thepath.N samples. Thisminimizes unnecessary overhead incurred by routers becausemethod, therefore, keeps N*S seconds ofoption processing forhistory. This algorithm reacts rapidly to increases in theQuick-Start Request.link utilization. Inthe current specification, this "self-terminating" property[SAF05] S isprovided by Quick-Start-capable routers hopefully either deleting the Quick- Start Option or zeroing the Rate Request field when they deny a request. Because the current specification uses a random initial valueset to 0.15 seconds, and experiments use values for N ranging from 3 to 20. Second, we define theQS TTL, Quick-Start-capable routers can't tell if the"target" algorithm for processing incoming Quick-StartRequest is invalid because of non-Quick-Start-capable routers upstream. This isRate Requests (also from [SAF05]). The algorithm relies on knowing thecostbandwidth ofusing a design that makes it difficult forthereceiver to cheat aboutoutgoing link (which in many cases can be easily configured), thevalueutilization of theQS TTL. B. Quick-Start with DCCP DCCP is a new transport protocol for congestion-controlled, unreliable datagrams, intended for applicationsoutgoing link (from an estimation technique such asstreaming media, Internet telephony,given above) andon-line games. In DCCP, the application has a choicean estimate ofcongestion control mechanisms, withthecurrently-specified Congestion Control Identifiers (CCIDs) being CCID 2 for TCP-like congestion control, and CCID 3potential bandwidth from recent Quick-Start approvals. Tracking the potential bandwidth from recent Quick-Start approvals is another case where local policy dictates how it should be done. The simpliest method, outlined in Section 8.2, is forTFRC, an equation-based form of congestion control. We referthereaderrouter to[KHF05] for a more detailed descriptionkeep track ofDCCP,the aggregate Quick-Start rate requests approved in the most recent two or more time intervals, including the current time interval, and to use the sum of thecongestion control mechanisms. Because CCID 3 uses a rate-based congestion control mechanism, it raises some new issues aboutaggregate rate requests over these time intervals as theuseestimate ofQuick-Start with transport protocols. In this document we don't attempt to specifytheuseapproved Rate Requests. The experiments in [SAF05] keep track ofQuick-Start with DCCP. However, we do discuss somethe aggregate approved Rate Requests over the most recent two time intervals, for intervals of 150~msec. The target algorithm also depends on a threshold (qs_thresh) that is the fraction of theissuesoutgoing link bandwidth thatmight arise. In consideringrepresents theuserouter's notion of "significantly underutilized". If the utilization, augmented by the potential bandwidth from recent Quick- Start approvals, is above this threshold then no Quick-Startwith CCID 3 for requesting a higher initial sending rate,Rate Requests will be approved. If thefollowing questions arise: (1) how doesutilization, again augmented by thesender respond if apotential bandwidth from recent Quick-Startpacketapprovals, isdropped; and (2) when doesless than thesender determinethreshold then Rate Requests can be approved. The Rate Requests will be reduced such thatthere has been no feedback fromthereceiver, and reducebandwidth allocated would not drive thesending rate? (1) How doesutilization to more than thesender respondgiven threshold. The algorithm is: util_bw = bandwidth * utilization; util_bw = util_bw + recent_qs_approvals; ifa Quick-Start packet is dropped: As in TCP,(util_bw < (qs_thresh * bandwidth)) { approved = (qs_thresh * bandwidth) - util_bw; ifan initial(rate_request < approved) approved = rate_request; approved = round_down (approved); recent_qs_approvals += approved; } Also note that given that Rate Requests are fairly coarse, the approved rate should be rounded down when it does not fall exactly on one of the rates allowed by the encoding scheme. Routers that wish to keep close track of the allocated Quick-Startpacket is dropped,bandwidth could use Approved Rate reports to learn when rate requests had been decremented downstream in theCCID 3network, and also to learn when a sendershould revertbegins to use thecongestion control mechanisms it would have used ifapproved Quick-Start request. D. Possible Additional Uses for the Quick-Startrequest had not been approved. (2) When does the sender decide there has been no feedback fromOption The Quick-Start Option contains a four-bit Function field in thereceiver: Unlike TCP, CCID 3 does not use acknowledgements for every packet, orthird byte, enabling additional uses to be defined forevery other packet.the Quick- Start Option. Incontrast,this section we discuss some of theCCID 3 receiver sends feedbackpossible additional uses that have been discussed for Quick-Start. The Function field makes it easy to add new functions for thesender roughly once per round-trip time. In CCID 3, the allowed sending rate is halved if no feedback is received fromQuick- Start Option. Report of Current Sending Rate: A Quick-Start Request with thereceiver`Report of Current Sending Rate' codepoint set inat least four round-trip times (whenthesender is sending at least one packet every two round-trip times). When a Quick-Start request is used, itFunction field wouldseem prudent to use a smaller time interval, e.g.,be using the Rate Request field toreducereport the current estimated sending rateif no feedback is received from the receiverfor that connection. This could accompany a second Quick-Start Request inat least two round-trip times. The question also arises of howthesendingsame packet containing a standard rateshould be reduced afterrequest, for aperiod of no feedback from the receiver. As with TCP,connection that is using Quick-Start to increase its current sending rate. Request to Increase Sending Rate: A codepoint for `Request to Increase Sending Rate' in thedefault CCID 3 response of halvingFunction field would indicate that thesending rateconnection is notnecessarily sufficient; an alternativeidle or just starting up, but is attemmpting toreduce the sending rateuse Quick-Start totheincrease its current sendingrate thatrate. This codepoint wouldhave been used if no Quick-Start request had been approved. That is, if a CCID 3 sender uses a Quick-Start request, special rules might be required to handlenot change thesender's response to a periodsemantics ofno feedback fromthereceiver regardingRate Request field. RTT Estimate: If a codepoint for `RTT Estimate' was used, a field for theQuick-Start packets. Similarly, in consideringRTT Estimate would contain one or more bits giving theusesender's rough estimate ofQuick-Start with CCID 3 for requesting a higher sending rate after an idle period,thefollowing questions arise: (1) what rate doesround-trip time, if known. E.g., the senderrequest; (2) what iscould estimate whether theresponse to a loss; and (3) when doesRTT was greater or less than 200 ms. Alternately, if the senderdetermine that there has been no feedback fromhad an estimate of thereceiver, andRTT when it sends thesending rate must be reduced? (1) What rate doesRate Request, thesender request: As in TCP, there is a straightforward answer totwo-bit Reserved field at therate request thatend of theCCID 3 sender should use in requestingQuick-Start Option could be used for ahigher sending rate after an idle period. The sender knows the current loss event rate, either from its own calculations or from feedback from the receiver, and can determinecoarse-grained encoding of thesending rate allowed byRTT. Informational Request: An Informational Request codepoint in the Function field would indicate thatloss event rate. Thisa request is purely informational, for theupper bound on the sendingsender to find out if a ratethat shouldrequest would berequested by the CCID 3 sender. A Quick-Startapproved, and what size rate requestis useful with CCID 3would be approved, when thesenderInformational Request iscoming out ofsent. For example, anidle or underutilized period, because inInformational Request could be followed one round-trip time later by a standardoperation CCID 3 doesQuick-Start Request. A router approving an Informational Request would notallow the sender to send more that twice as fastconsider this asthe receiver has reported received in the most recent feedback message. (2) What is the responsean approval for Quick-Start bandwidth toloss: The responsebe used, and would not be under any obligation to approve a similar standard Quick-Start Request one round-trip time later. Use Format X for theloss ofRate Request Field: A Quick-Startpackets should be to return tocodepoint for `Use Format X for thesending rate thatRate Request Field' wouldhave beenindicate that an alternate format was being usediffor the Rate Request field. Do Not Decrement: A Do Not Decrement codepoint could be used for a Quick-Starthad not been requested. (3) When doesrequest where the senderdecide there has been no feedback from the receiver: As in the case of the initial sending rate, it would seem prudent to reduce the sending rate if no feedback is received from the receiver in at least two round-trip times. It seems likely that in this case,would rather have thesending rate should be reducedrequest denied than to have thesendingratethat would have beenrequest decremented in the network. This could be used ifno Quick-Startthe sender was only interested in using Quick- Start if the original rate requesthad beenwas approved.C. Possible Router Algorithm This specification does not tightly define the algorithm a router uses when deciding whether to approve a Quick-Start Rate Request or whether and how to reduceE. Feedback from Bob Briscoe [B05] in aRate Request. A rangereview of an earlier version ofalgorithms is likely useful in this space and we considerthealgorithm a particular router uses to be a local policy decision. In addition, we believe that additional experimentation with router algorithms is necessary to haveQuick-Start proposal discussed asolid understandingnumber ofthe dynamics various algorithms impose. However, we provide one particular algorithm in this appendix as an examplepotential problems with Quick-Start, andas a frameworkargued forthinking about additional mechanisms. [SAF05] provides several algorithms routers can use to consider incoming Rate Requests. The decision process involves two algorithms. First, the router needs to track the link utilization overan alternate approach for policing congestion in networks using re-feedback [BJCG+05,BJS05]. However, [B05] didn't oppose therecent past. Second, this utilization needsmove tobe updated by the potential new bandwidth from recentQuick-Startapprovals, and then compared withto experimental status as long as its applicability is made clear. E.1. Potential Deployment Scenarios [B05] argues that because therouter's notion of whensender's trustworthiness is not necessarily verified, Quick-Start, if it isunderutilized enoughremain stateless, should be confined toapproveenvironments where every source is trusted. Section 3.2 of [B05] argues that either (1) Quick-Start should be recommended for deployment only in trusted environments, or (2) Quick-Startrequests (ofcould be recommended for deployment also in untrusted environments, with flow state required at somesize). First,or all routers. Since [B05], wedefine the "peak utilization" estimation technique (from [SAF05]). This mechanism recordshave added theutilizationReport ofthe link every S secondsApproved Rate as a required part of Quick-Start, andstoresdiscussed ways that this could be used by routers or by traffic policers, if desired, to check on themost recent Nuse ofthese measurements. The utilization is then taken asQuick-Start by senders. We also note that senders can send at an initial high rate even in thehighest utilizationabsence of Quick-Start, in theN samples. This method, therefore, keeps N*S seconds of history. This algorithm reacts rapidlycurrent network; that is, in our view, Quick-Start does not change the dangers toincreasesthe network from malicious senders. Thus, while we are clearly not recommending Quick-Start for widespread deployment in thelink utilization. In [SAF05] Sglobal Internet, we also don't feel the need to explicitly restrict its deployment to environments where every source issettrusted, or to0.15 seconds, and experiments use valuesexplicitly 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 trust in senders, sufficient policing mechanisms forN ranging from 3checking for misbehaving nodes, or sufficient oversite to20. Second, we definedisable Quick-Start if it is determined to be causisng problems.. E.2. Misbehaving Senders and Receivers Some of the"target" algorithmcriticisms of Quick-Start in [B05] are criticisms forprocessing incomingmechanisms that allocate rates to senders, but this is not what Quick-StartRate Requests (also from [SAF05]). The algorithm relies on knowing the bandwidthdoes. Quick-Start requests apply to individual connections, not to unique addresses or unique tuples of addresses. Further, theoutgoing link (which in many cases can be easily configured), the utilizationapproval by routers ofthe outgoing link (from an estimation technique such as given above) andQuick-Start requests does not result in anestimateallocation ofthe potentialbandwidthfrom recent Quick-Start approvals. Trackingfor thepotentialsender making that request; the approval by routers does not result in any allocation of bandwidth at all. The state used by routers fromrecent Quick-Startpast Quick- Start approvals isanother case where local policy dictates how it should be done. The simpliest method, outlined in Section 8.2, is forused only to guide the routerto keep trackin its approval or rejection of future Quick-Start requests. We have added text to this document to make this quite explicit. [B05] discusses theaggregatedangers of sender spoofing and identity splitting. Identify splitting would not be a problem with Quick- Start, because Quick-Startraterequestsapproved in the most recent twoapply to individual connections, not to unique addresses or unique tuples of addresses. Because Quick-Start does not allocate rates to senders, sender-spoofing is also not a critical issue (except as it would make it moretime intervals, including the current time interval,difficult for those Quick-Start routers that maintain per-flow state to identify senders that send Quick-Start requests that are not in fact used, due either to malicious requests or due to requests denied downstream). In Section 3.3, [B05] says that "the lack of a secure binding between a request and subsequent traffic means that any other node could send a burst of traffic and claim it requests it, with no-one being able touseprove it didn't." In thesumcurrent Internet, any node can send a burst of traffic any time it would like, even without Quick-Start. However, in theaggregateabsense of Quick-Start, sending at a high raterequests over these time intervalsis not always in the sender's interest, as theestimatepackets that are send might have a high probability ofthe approved Rate Requests. The experimentsbeing dropped in[SAF05] keep track oftheaggregate approved Rate Requests overnetwork, particularly in themost recent two time intervals, for intervalsabsense of150~msec.Quick-Start. Thetarget algorithm also depends on a threshold (qs_thresh) that is the fractionaddition of theoutgoing link bandwidth that represents the router's notionReport of"significantly underutilized". IfApproved Rate to Quick-Start gives traffic policers theutilization, augmented byability to check on some of the potentialbandwidth from recent Quick- Start approvals, is above this threshold then noabuses of Quick-Start, if they so desire. In Section 3.8, [B05] states that "not only do Quick-StartRate Requests will be approved. If the utilization is less than the threshold then Rate Requests will be approved. The Rate Requests willsenders have to bereduced suchtrusted, but also other senders who could claim their data had been authorised by a Quick-Start response when it hadn't (Section 3.3)." In response, we would again clarify that with Quick- Start, thebandwidth allocated would not driveQuick-Start request makes no difference in how theutilization to more thansubsequent Quick-Start data packets are treated at 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; if (rate_request < approved) approved = rate_request; approved = round_down (approved); recent_qs_approvals += approved; } Also note that givenrouter, compared to non-Quick-Start data packets. Thus, a sender's claim thatRate Requestsits data results from a previous Quick-Start request should make no difference in how those data packets arefairly grosstreated at routers. The approval of a Quick-Start request is not a promise by theapproved rate should be rounded down whenrouter that the subsequent data packets will receive differential treatment at the router; itdoes not fall exactly on one ofis only a statement from therates allowed byrouter that theencoding scheme. D. Possible Uses forrouter believes that theReserved Fields TheQuick-StartRequest Option contains a four-bit Reserved field indata packets will not change thefirst four bytes, and a two-bit Reserved field incurrent under-utilized state of thelast four bytes. Inrouter. We have clarified thissection we discuss somein Section 3.3 of this document. E.3. Fairness In its abstract, [B05] says thepossible uses that have been discussed for these Reserved bits. Reporting Approved Rate: A Quick-Start Request withfollowing: "Because traffic variance will always blur theReporting Approved Rate bit set would not be requesting Quick-Start bandwidth, but wouldboundary, we argue that under-utilisation should bereportingtreated as theapproved rateextreme of a spectrum where fairness is always an issue to some extent." The specification for Quick-Startbandwidth that was approved one round-trip time earlier. This could be used by routers to track whichnow says the following: "A router should only approve a Quick-Startrequests were actually approvedrequest if the output link is underutilized, andin use, along withif theapproved rate. Report of Current Sending Rate: A Quick-Start Request withrouter judges that the`Report of Current Sending Rate' bit set wouldoutput link will continue to beusingunderutilized if theRate Request fieldrequest is approved." We changed the quote "for a mechanism for requesting an initial sending rate in an underutilized environment, the fairness issues of a general congestion control mechanism go away" toreportthecurrent estimated sending rate for that connection. This could accompany a secondfollowing: "because Quick-StartRequest in the same packet containingis astandard rate request,mechanism for requesting an initial sending rate in an underutilized environment, its fairness issues are less severe than those of aconnectiongeneral congestion control mechanism." However, we did not add the sentence recommended in Ssection 3.4 of [B05], that "Quick-Start isusingtargeted at an experimental environment where the more intractable issues can be set aside". In particular, we don't agree that Quick-Start needs toincrease its current sending rate. Request to Increase Sending Rate: A bitbe targeted only for`Request to Increase Sending Rate' would indicate that the connection is not idle or just starting up, butenvironments where fairness isattemmpting to use Quick-Start to increase its current sending rate. This bit wouldnotchange the semanticsan issue. E.4. Models of Under-Utilization [B05] states that "One of theRate Request field. RTT Estimate: A field forunder-utilisation assumptions I had in my head while reading theRTT Estimate would containpaper was that any oneor more bits givinghost is generally able to over-fill available capacity, but that, given a high rate, thesender's rough estimate offlow would end quickly." We are sorry that this is theround-trip time, if known. E.g.,model that thesender could estimate whetherauthor inferred from theRTTdraft, but we can give assurances that this `one big flow at a time" model wasgreater*never* the implicit orless than 200 ms. Informational Request: An Informational Request bitexplicit model underlying the Quick-Start design. (We wouldindicatealso note that every version of this document since the first version back in 2002 has discussed router responses when the router experiences arequest is purely informational, forflood of Quick-Start requests.) [B05] also says thesenderfollowing: "By reverse engineering this algorithm, it was possible tofind out ifguess that there was an assumption that host capacity was smaller than the network's, so meeting araterequest in full wouldbe approved, and what size rate requeststill leave a lot of spare capacity for the next request." Again, we wouldbe approved, whenlike to clarify that there has been no such assumption underlying theInformational Request is sent. For example, an Informational Request could be followed one round-trip time later by a standardQuick-StartRequest. A router approving an Informational Request would not consider thisdesign. E.5. Router Algorithms asan approvalLocal 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 forQuick-Start bandwidthinterworking, robustness, fairness etc." While it is possible that experiments will lead tobe used, and wouldan understanding of constraints that are needed on router algorithms, we think it is more likely that there will not beunder any obligation to approveasimilar standard Quick-Start Request one round-trip time later. Use Format Xneed for explicit constraints on router algorithms for accepting or rejecting Quick-Start requests. Our approach is that, while theRate Request Field: AQuick-Startbit for `Use Format X forIETF documentation standardizes the semantics of Quick-Start and theRate Request Field' would indicate that an alternateformatwas beingof the Quick-Start IP Option and the Quick-Start Response TCP Option, the IETF documentation should not and does not standardize the algorithms used at routers forthe Rate Request field. Do Not Decrement: A Do Not Decrement bit could be setapproving or denying Quick-Start request. Appendix D in this document has presented one possible router algorithm for approving or denying Quick-Start requests, but further discussion of the range of possibilities ina Quick- Start request ifrouter algorithms is available elsewhere [SAF05]. As an example, thesender would rather havefairness criteria that routers might apply in granting or denying Quick-Start requests are discussed in [SAF05], but are not discussed in therequest denied thansame detail in this document. This document leaves routers free tohave the rate request decrementedapply any criteria they choose in accepting or denying Quick-Start requests, modulo thenetwork.requirements given in Section 3.3 above. Thiscould be used ifapproach of thesender was only interested in usingQuick-Startif the original rate request was approved. If anyrouter algorithm as a matter ofthese functions werelocal policy is consistent with the approach in RFC 3168 on standardizing Explicit Congestion Notification (ECN). RFC 3168 standardized the semantics of the ECN field, but did not standardize a router's Active Queue Management mechanisms forQuick-Start,deciding when to set thestandardization would also haveCongestion Experienced codepoint in packets. E.6. An Alternate Proposal [B05] proposes an alternate toaddressQuick-Start where endpoints allocate rates to themselves. [B05] argues that adding rate allocation to interior routers is not theissue of backwards compatibilityfundamenally correct direction. [B05] argues for an approach that associates senders with their ingress attachment point, witholder Quick-Startroutersor end-nodesreporting their impairment status back to the sender [BJCG+05, BJS05]. The source declares the impairment thatdoit believes it will accumulate along the path, and routers effectively subtract the local impairment status. If the sender is reporting correctly, and the impairment has notunderstandchanged significantly from one round-trip time to thenewly-added function.next, the reported impairment at the egress router should be close to zero. 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. [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. [RFC2246] T. Dierks and C. Allen, The TLS Protocol, RFC 2246. [RFC2309] B. Braden, D. Clark, J. Crowcroft, B. Davie, S. Deering, D. Estrin, S. Floyd, V. Jacobson, G. Minshall, C. Partridge, L. Peterson, K. Ramakrishnan, S. Shenker, J. Wroclawski, L. Zhang, Recommendations on Queue Management and Congestion Avoidance in the Internet, RFC 2309, April 1998. [RFC2401] S. Kent and R. Atkinson. Security Architecture for the Internet 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. [RFC2415] K. Poduri and K. Nichols. Simulation Studies of Increased Initial TCP Window Size. RFC 2415. September 1998. [RFC2416] T. Shepard and C. Partridge. When TCP Starts Up With Four Packets Into Only Three Buffers. RFC 2416. 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. [RFC2661] W. Townsley, A. Valencia, A. Rubens, G. Pall, G. Zorn, and B. Palter, Layer Two Tunneling Protocol "L2TP", RFC 2661, August 1999. [RFC2960] R. Stewart, et. al. Stream Control Transmission Protocol. RFC 2960, October 2000. [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. [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, December 2005. [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. [FF99] Floyd, S., and Fall, K., Promoting the Use of End-to-End Congestion Control in the Internet, IEEE/ACM Transactions on Networking, August 1999.[F03] Floyd, S., HighSpeed TCP for Large Congestion Windows, RFC 3649, December 2003.[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.[IKEv2] Kaufman, C., (ed.), "Internet Key Exchange (IKEv2) Protocol", draft-ietf-ipsec-ikev2-17.txt, Internet draft (work in progress), September 2004.[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.[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.[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. [L05] Guohan Lu, Nonce in TCP Quick Start, draft, September 2005. URL "http://www.net-glyph.org/~lgh/nonce-usage.pdf". [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.To appear inComputer Communications Review, April 2004. [MaxNet] MaxNet Home Page, URL "http://netlab.caltech.edu/~bartek/maxnet.htm". [PK98] Venkata N. Padmanabhan and Randy H. Katz, TCP Fast Start: A Technique For Speeding Up Web Transfers, IEEE GLOBECOM '98, November 1998. [P00] Joon-Sang Park, Bandwidth Discovery of a TCP Connection, report to John Jeidemann, 2000, private communication. Citation for acknowledgement purposes only. [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, 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, July 2004. [S02] Ion Stoica, private communication, 2002. Citation for acknowledgement purposes only. [SAF05] Pasi Sarolahti, Mark Allman, and Sally Floyd. Evaluating Quick-Start for TCP.Under submission,May 2005. 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 Progress 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. Not publically available; citation for acknowledgement purposes only. [V02] A. Venkataramani, R. Kokku, and M. Dahlin. TCP Nice: A Mechanism for Background Transfers. OSDI 2002. [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://informatik.uibk.ac.at/users/c70370/research/publications/". [W03] Michael Welzl, PMTU-Options: Path MTU Discovery Using Options, expired internet-draft draft-welzl-pmtud-options-01.txt, work-in- progress. February 2003. [ZPS00] Y. Zhang, V. Paxson, and S. Shenker, The Stationarity of Internet Path Properties: Routing, Loss, and Throughput, ACIRI Technical Report, May 2000.E.[ZQK00] Y. Zhang, L. Qiu, and S. Keshav, Speeding Up Short Data Transfers: Theory, Architectural Support, and Simulation Results, NOSSDAV 2000, June 2000. F. IANA Considerations Quick-Start requires an IP Option and a TCP Option.E.1.F.1. IP Option Quick-Start requires that both an IPv4 and an IPv6 Option Number be allocated. The IPv4 Option would have a copied flag of 0, a class field of 00, and the assigned five-bit option number. The IPv6 Option would have the first three bits of "001" [RFC 2460, Section 4.2], with the first two bits indicating that the IPv6 node skip over this option and continue processing the header if it doesn't recognize the option type, and the third bit indicating that the Option Data may change en-route. In both cases the name of the option would be"QSR"QS -Quick-Start Request",Quick-Start", with this document as the reference document.E.2.F.2. TCP Option Quick-Start also requires that a TCP Option Number be allocated. The Length would be 4, and the Meaning would be "Quick-Start Request", with this document as the reference document. AUTHORS' ADDRESSESAmit Jain F5 Networks Email : a.jain@f5.comSally 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) 243-7361 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 Society2005.(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.