Network Working Group                                         R. Stewart
Internet-Draft                                            Adara Networks
Intended status: Standards Track                               M. Tuexen
Expires: July 19, 2014                  Muenster Univ. of Appl. Sciences
                                                        January 15, 2014


                            Quick Start Plus
                     draft-stewart-tsvwg-qsp-03.txt

Abstract

   This document describes an extension to Quick Start including the
   missing Stream Control Transmission Protocol (SCTP) QuickStart chunk
   types and procedures so that SCTP may also use the QuickStart
   extension.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on July 19, 2014.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Stewart & Tuexen          Expires July 19, 2014                 [Page 1]


Internet-Draft                     QSP                      January 2014


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions . . . . . . . . . . . . . . . . . . . . . . . . .   2
   3.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Data Format . . . . . . . . . . . . . . . . . . . . . . . . .   3
     4.1.  Quick Start Extended IP option  . . . . . . . . . . . . .   3
     4.2.  Quick Start Echo (133) for SCTP . . . . . . . . . . . . .   4
   5.  Procedures  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     5.1.  Quick Start Added Procedures  . . . . . . . . . . . . . .   5
     5.2.  SCTP QSE Receiver Procedures  . . . . . . . . . . . . . .   6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
     9.1.  Normative references  . . . . . . . . . . . . . . . . . .   7
     9.2.  Informational References  . . . . . . . . . . . . . . . .   7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   QuickStart [RFC4782] was introduced as an expermental RFC in 2007.
   This document attempts to address several issues in QuickStart
   including granularity of request, active router participation in
   quick start besides setup, and the lack of QuickStart for SCTP
   [RFC4960].  In order to address these issues this document specifies:

   *  An extended format for QuickStart that allows a more finegrained
      rate to be specified by the router.

   *  A new code QuickStart Function Code to allow a router to initiate
      a rate change to a transport endpoint.

   *  Chunk format's and handling procedures for SCTP's use of
      QuickStart.

   Note that with few exceptions this document does not change the
   general procedures laid out in [RFC4782] readers unfamiliar with that
   document are encouraged to read it before reading this document.

2.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].






Stewart & Tuexen          Expires July 19, 2014                 [Page 2]


Internet-Draft                     QSP                      January 2014


3.  Terminology

   All integer fields defined in this document MUST be transmitted in
   network byte order, unless otherwise stated.

4.  Data Format

4.1.  Quick Start Extended IP option


        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=12    | Func. | Rate  |   QS TTL      |
       |               |               | 1100  | Upper |               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        QS Nonce                           |R|1|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Rate Lower                            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Option: 8 bits

      As defined in [RFC4782].

   Length: 8 bits

      Contains the value 12 to indicate the new extended option.  If the
      field contains the value 8, then the shorter classic version of
      the rate is used per [RFC4782].

   Function: 4 bits

      Contains the values 0000 or 1000 as defined in [RFC4782] or the
      new value 1100 which indicates that a router is adjusting the rate
      and should be treated the same as a request 0000 (i.e. echoed by
      the destination endpoint in an appropriate transport option back
      to the sender of the packet).

   Rate: 4 bits

      In the extended form, these four bits are the upper bits of the
      rate being requested (or set).  The combined rate field yeilds a
      36 bit integer indicating the number of kilobits per second that
      is being requested or authorized.

   QS TTL: 8 bits



Stewart & Tuexen          Expires July 19, 2014                 [Page 3]


Internet-Draft                     QSP                      January 2014


      As defined in [RFC4782].

   QS Nonce: 30 bits

      As defined in [RFC4782].

   Reserved: 1 bits

      This bit is reserved and SHOULD be set to 0 on transmit and
      ignored upon reception.

   E bit: 1 bits

      This bit is set to 1 to indicate that the extended form of the
      option is present.  This can also be verified by confirming that
      the length field is set to 12.

   Rate Lower: 32 bits

      This field holds the lower 32 bits of the rate.  This field is
      combined with the 4 bit Rate Upper field to yeild a 36 bit rate in
      kilo-bits per second.

4.2.  Quick Start Echo (133) for SCTP


        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Chunk Type=133| Flags=00000000|    Chunk Length = 12 or 16    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |       QuickStart Option as copied from IP options field       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Chunk Flags: 8 bits

      Set to all zeros on transmit and ignored on receipt.

      This parameter contains the exact copy of the IP options field
      received on the incoming packet that caused this chunk to be sent.
      The chunk is normally added to the next outgoing packet (often
      times a SACK or DATA chunk).








Stewart & Tuexen          Expires July 19, 2014                 [Page 4]


Internet-Draft                     QSP                      January 2014


5.  Procedures

5.1.  Quick Start Added Procedures

   Procedures for the extended form of Quickstart are identical to those
   defined in [RFC4782].  The only two differences are as follows.

   First when presented with the extended version of QuickStart the
   receiver of the IP option must combine the two Rate fields defined to
   extract the rate information being requested (or authorized).  The
   handling of the rate by a router is still done as previously, i.e.
   examine the rate, decrement the TTL and possibly lower the rate
   (these procedures do not change and remain the same).  For an
   endpoint receiving a QuickStart option in the extended form, the
   transport option is also increased by four bytes and the entire
   option is copied and sent to the peer endpoint if the arriving
   Function Code is either 0000 or the new 1100.

   Secondly both endpoints and routers may receive the new function code
   1100.  When such a function code arrives, it should be treated the
   same as a function code 0000 in classic QuickStart i.e. it is treated
   as a rate request.  If a router is receiving this code, it again
   looks to see if it needs to lower the rate, decrements the TTL and
   possibly updates the rate and nonce fields.  Transport endpoints
   receiving this Function code echo the complete 12 byte option within
   there transport specific manner to the peer transport endpoint (i.e.
   the sender of the arriving packet that contains the Quickstart
   option).

   The sender of the 1100 function code, however is not a transport
   endpoint requesting a rate.  Instead this option may be inserted by
   any router on the path to adjust the rate of a flow passing through
   it.  The router MUST have flow state and MUST have previously seen a
   QuickStart Rate Request (Func 0000) and a subsequent Quickstart Rate
   Report (Func 1000) from that flow before inserting this option.  In
   other words the router MUST know that the flow supports QuickStart
   and that all downstream routers also support QuickStart.  Furthermore
   the router must know if the extended form of QuickStart is in use by
   the flow or as an alternative use the non-extended format.  This is
   determined based on if the initial QuickStart Rate Request which was
   received is in the extended format (aka 12 bytes with the E bit set)
   or in the old original format (aka 8 bytes with two reserved bits set
   to zero).

   When a Router inserts the 1100 funtion code, the router MUST use the
   last saved QS Nonce and TTL's that were seen when the flow originally
   sent its QuickStart Rate Request.  The router MUST adjust the TTL so
   that the difference between the original packets Rate Requests TTL is



Stewart & Tuexen          Expires July 19, 2014                 [Page 5]


Internet-Draft                     QSP                      January 2014


   present in the packet being inserted.  The router should also adjust
   the proper field in the nonce per [RFC4782] to reflect which rate
   range the router was adjusting the flow to.  This allows the endpoint
   to validate both the Nonce and the TTL in the same manner in which it
   would if it had sent the IP option as a rate request.

5.2.  SCTP QSE Receiver Procedures

   Proceedures for SCTP are identical with those associated with TCP and
   can be found within [RFC4782].  The key difference is the method in
   which the Response Option is carried in SCTP.  SCTP does not use
   options, instead a new chunk is defined that carries either the
   traditional QuickStart option, or the extended form.

   At SCTP association startup the two endpoint exchange an INIT and
   INIT-ACK chunk as defined in [RFC4960].  During this exchange both
   endpoints MUST include a Supported Extensions chunk as defined in
   [RFC5061].  Both endpoints MUST indicate support for the new QSE
   chunk type.  If both endpoints do not indicate this then the use of
   QuickStart is not enabled for this SCTP association.  If both
   endpoints do indicate the support of QuickStart, then the next packet
   out (usually the Cookie-Echo or Cookie-Ack) SHOULD include an IP
   option requesting a rate.  Note the endpoint SHOULD use the extended
   format.  The fields are initialized the same as defined in [RFC4782]
   with the exception that if the extended format is used, the rate is
   an exact 36 bit value representing the requested rate.

   Upon receiving a packet with an IP option indicating either Function
   0000 or Function 1100, the SCTP endpoint MUST include in the next
   outgoing packet (most likely a SACK or DATA chunk) the QSE chunk with
   a copy of the IP option that arrived.

   When receiving a QSE chunk, an endpoint follows the procedures in
   [RFC4960] validating the TTL difference and the nonce before setting
   the local cwnd to the new rate.  Any validation failure, for example
   if there is a TTL difference indicating that not all routers
   participated in the QuickStart exchange, then the endpoint MUST NOT
   use the QuickStart procedures to change the cwnd.

   Note that because IP options are not always passed correctly by
   routers and middle boxes, an endpoint SHOULD be prepared to disable
   the use of QuickStart if the initial transmissions of the IP option
   is not acknowledged (e.g. the endpoint sends a COOKIE-ECHO with the
   QS IP option and the retransmit timer fires due to the lack of a
   COOKIE-ACK response from the endpoint).






Stewart & Tuexen          Expires July 19, 2014                 [Page 6]


Internet-Draft                     QSP                      January 2014


6.  Security Considerations

   [RFC4782] defines the security considerations for Quickstart.  These
   same consideration that are described for TCP are applicable to this
   document.

7.  IANA Considerations

   Nothing requested.

8.  Acknowledgements

9.  References

9.1.  Normative references

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC4782]  Floyd, S., Allman, M., Jain, A., and P. Sarolahti, "Quick-
              Start for TCP and IP", RFC 4782, January 2007.

   [RFC4960]  Stewart, R., "Stream Control Transmission Protocol", RFC
              4960, September 2007.

   [RFC5061]  Stewart, R., Xie, Q., Tuexen, M., Maruyama, S., and M.
              Kozuka, "Stream Control Transmission Protocol (SCTP)
              Dynamic Address Reconfiguration", RFC 5061, September
              2007.

9.2.  Informational References

   [RFC2481]  Ramakrishnan, K. and S. Floyd, "A Proposal to add Explicit
              Congestion Notification (ECN) to IP", RFC 2481, January
              1999.

   [RFC2960]  Stewart, R., Xie, Q., Morneault, K., Sharp, C.,
              Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M.,
              Zhang, L., and V. Paxson, "Stream Control Transmission
              Protocol", RFC 2960, October 2000.

Authors' Addresses









Stewart & Tuexen          Expires July 19, 2014                 [Page 7]


Internet-Draft                     QSP                      January 2014


   Randall R. Stewart
   Adara Networks
   Chapin, SC  29036
   USA

   Email: randall@lakerest.net


   Michael Tuexen
   Muenster University of Applied Sciences
   Stegerwaldstr. 39
   48565 Steinfurt
   Germany

   Email: tuexen@fh-muenster.de




































Stewart & Tuexen          Expires July 19, 2014                 [Page 8]