<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
 which is available here: http://xml2rfc.ietf.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced. 
An alternate method (rfc include) is described in the references. -->
<!--<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
 -->
<!-- http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml-->
<!ENTITY RFC2309 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2309.xml">
<!ENTITY RFC2481 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2481.xml">
<!ENTITY RFC3168 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml">
<!ENTITY RFC3649 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3649.xml">
<!ENTITY RFC3742 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3742.xml">
<!ENTITY RFC3758 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3758.xml">
<!ENTITY RFC4340 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4340.xml">
<!ENTITY RFC4774 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4774.xml">
<!ENTITY RFC5562 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5562.xml">
<!ENTITY RFC5670 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5670.xml">
<!ENTITY RFC5681 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5681.xml">
<!ENTITY RFC5696 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5696.xml">
<!ENTITY RFC6040 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6040.xml">
<!ENTITY RFC6679 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6679.xml">
<!ENTITY RFC6789 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6789.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
 please see http://xml2rfc.ietf.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
 (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
 (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="yes" ?>
<!-- do not keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt"?>
<rfc category="info" docName="draft-gjessing-taps-minset-00"
     ipr="trust200902">
  <!--	noModificationTrust200902 noDerivativesTrust200902 pre5378Trust200902">-->

  <!-- updates="6298"> -->

  <!-- ipr="full3978"> -->

  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <!-- <title abbrev="Abbreviated Title">Coupled congestion control</title> -->

    <title abbrev="Minimal TAPS Transport Services">A Minimal Set of Transport Services for TAPS Systems</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->


      <author fullname="Stein Gjessing" initials="S." surname="Gjessing">
          <organization>University of Oslo</organization>
          
          <address>
              <postal>
                  <street>PO Box 1080 Blindern</street>
                  
                  <!-- Reorder these if your country does things differently -->
                  
                  <code>N-0316</code>
                  
                  <city>Oslo</city>
                  
                  <region></region>
                  
                  <country>Norway</country>
              </postal>
              
              <phone>+47 22 85 24 44</phone>
              
              <email>steing@ifi.uio.no</email>
              
              <!-- uri and facsimile elements may also be added -->
          </address>
      </author>

      
      <author fullname="Michael Welzl" initials="M." surname="Welzl">
      <organization>University of Oslo</organization>

      <address>
        <postal>
          <street>PO Box 1080 Blindern</street>

          <!-- Reorder these if your country does things differently -->

          <code>N-0316</code>

          <city>Oslo</city>

          <region></region>

          <country>Norway</country>
        </postal>

        <phone>+47 22 85 24 20</phone>

        <email>michawe@ifi.uio.no</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <!-- <date day="06" month="June" year="2015" /> -->
    <date year="2015" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
         in the current day and month for you. If the year is not the current one, it is 
         necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
         purpose of calculating the expiry date).  With drafts it is normally sufficient to 
         specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Transport</area>

    <workgroup>TAPS</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
         If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>taps, transport services</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This draft will eventually recommend a minimal set of IETF Transport Services offered by end systems supporting TAPS, and give guidance on choosing among the available mechanisms and protocols. As a starting point for discussion, it currently only gives an overview of some ways to categorize the set of transport services in the first TAPS document (version 4: draft-ietf-taps-transports-04), assuming that the eventual minimal set of transport services will be based on a similar form of categorization.</t>
    </abstract>
  </front>

  <middle>
    <!--    <section title="Definitions" anchor='sec-def'>
         <t>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 <xref
         target="RFC2119">RFC 2119</xref>.</t>
         
         <t><list style="hanging" hangIndent="6">
         <t hangText="Wha'ever:">
         <vspace />
         Wha'ever is short for Whatever.</t>
         </list></t>
         
         </section>
         -->

    <section anchor="sec-intro" title="Introduction">
      <t>An application has an intended usage and demands for transport services, and the task of any system that implements TAPS is to offer these services to its applications, i.e. the applications running on top of TAPS, without binding an application to a particular transport protocol.</t>

<t>The present draft is based on <xref target="TAPS1"></xref> and follows the same terminology (also listed below). We include an "inversion" (in the database sense) of <xref target="TAPS1"></xref>, in that, based on the lists of protocol components in <xref target="TAPS1"></xref> we list all protocol features, and for each feature, we list the Transport Protocols that support this feature (as a component). The resulting list is very long. If the list of Transport Services that a TAPS system offers to applications was a simple copy of this list, the resulting system would be very hard to use. It is therefore necessary to minimize the number of services that are offered. We begin this by grouping these transport features.</t>

<t>The groups of features offered to applications are divided as follows:
  <list style="numbers">
  <t>functional vs. non-functional</t>
  <t>static vs. initialization vs. dynamic</t>
  <t>single-sided vs. both-sided</t>
  </list>
</t>

<t>Because QoS is out of scope of TAPS, this document assumes a "best effort" service model [RFC5290, RFC7305]. Applications using a TAPS system can therefore not make any assumptions about e.g. the time it will take to send a message. There are however certain requirements that are strictly kept by transport protocols today, and a TAPS system.
</t>

<t>Functional features use components that cannot be used without the application knowing about them, or else they violate assumptions that might cause the application to break. Components implementing non-functional features may be used without involving the application. For example, unordered message delivery is a functional feature: it cannot be used without the application knowing about it because the application's assumption could be that messages arrive in-order, and in this case unordered delivery could cause the application to break. Multihoming and data bundling (Nagle in TCP) are non-functional features: if a TAPS system autonomously decides to enable or disable them, an application will not break (but a TAPS system may be able to communicate more efficiently if the application is in control of this feature).
</t>

<t>If a transport protocol offers a feature that can not be changed or opted out, this feature is called static in this protocol. An application uses a static feature either because it has requested it (and TAPS decide to fulfill this request by a protocol that has a component that implements this feature as static), or the static feature is offered to the application implicitly because TAPS chooses a protocol that implements it. For example, if an application chooses byte-stream-oriented delivery, it automatically also gets reliable delivery. 
</t>

<t>Initialization features can be chosen when communication begins but not adjusted later; this assumes that a TAPS system does not change protocols during a communication session. Examples of initialization features are flow control and congestion control. 
</t>

<t>Dynamic features are changeable during runtime. An example of a dynamic feature is data bundling (Nagle in TCP).
</t>

<t>Single-sided features can be provided via components that are implemented only on the side where they applications requests the Transport Service. An example of a single-sided feature is data bundling (Nagle in TCP). Both-sided features can only be provided via components that are implemented on both sides. An example is error detection (checksum). Possibly certain features could benefit from, but do not need to be, implemented on both sides. Since the point of categorization is to determine the minimal set of Transport Services that a TAPS system must provide, the essential property of such features is that they *can* be implemented on only one side.</t>
      </section>

      <section title="Terminology (as defined by draft-ietf-taps-transports-04)">

<t>The following terms are defined throughout this document, and in
subsequent documents produced by TAPS describing the composition and
decomposition of transport services.</t>

<t><list style="hanging">
  <t hangText='Transport Service Feature:'>
  a specific end-to-end feature that a transport service provides to its
clients. Examples include confidentiality, reliable delivery, ordered
delivery, message-versus-stream orientation, etc.</t>
  <t hangText='Transport Service:'>
  a set of transport service features, without an association to any given
framing protocol, which provides a complete service to an application.</t>
  <t hangText='Transport Protocol:'>
  an implementation that provides one or more different transport services
using a specific framing and header format on the wire.</t>
  <t hangText='Transport Protocol Component:'>
  an implementation of a transport service feature within a protocol.</t>
  <t hangText='Transport Service Instance:'>
  an arrangement of transport protocols with a selected set of features
and configuration parameters that implements a single transport service,
e.g. a protocol stack (RTP over UDP).</t>
  <t hangText='Application:'>
  an entity that uses the transport layer for end-to-end delivery data
across the network (this may also be an upper layer protocol or tunnel
encapsulation).</t>
</list></t>

    </section>

    <section anchor="featurelist" title="A list of all features in the considered IETF Transport Protocols">
      <t>
      <xref target="TAPS1"></xref> provides a list of known IETF transport protocols and transport protocols frameworks. Here all features from <xref target="TAPS1"></xref> are listed:</t>

<t>
<list style="symbols">
<t>
   unicast:      TCP    SCTP    UDP-Lite    DCCP    NORM</t>
<t>IPv6 multicast and anycast:              UDP</t>
<t>IPv4 broadcast, multicast and anycast:   UDP       UDP-Lite</t>
<t>multicast:  NORM</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>unidirectional:   UDP</t>
<t>bidirectional:      TCP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>message-oriented delivery:      SCTP      UDP    UDP-Lite    DCCP</t>
<t>byte-stream-oriented delivery:   TCP  </t>

</list><vspace blankLines='1' /><list style="symbols">
<t>user message fragmentation and reassembly:      SCTP</t>
<t>IPv6 jumbograms:         UDP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>connection setup with feature negotiation and application-to-port
      mapping:    TCP     SCTP      DCCP</t>
  
</list><vspace blankLines='1' /><list style="symbols">
<t>port multiplexing:     TCP    SCTP     UDP     UDP-Lite   DCCP</t>
<t>port multiplexing (UDP ports):    NORM    </t>
<t>2-tuple endpoints:     UDP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>transport layer multihoming for resilience:      SCTP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>transport layer mobility:     SCTP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>non-reliable delivery:  UDP-Lite   DCCP</t>
<t>reliable delivery:     TCP      NORM</t>
<t>reliable or partially reliable delivery:    SCTP</t>
<t>drop notification:    DCCP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>ordered delivery:                      DCCP</t>
<t>ordered delivery for each byte stream:    TCP</t>
<t>ordered delivery for each byte or message stream:   NORM</t>
<t>ordered and unordered delivery within a stream (of messages):    SCTP</t>
<t>unordered delivery:   UDP-Lite     UDP</t>
<t>unordered delivery of in-memory data or file bulk content objects:   NORM</t>
<t>object-oriented delivery of discrete data or file items:    NORM</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>partial integrity protection:     UDP-Lite    DCCP</t>
<t>checksum optional:         UDP</t>
<t>error detection (checksum):       TCP      UDP</t>
<t>error detection (UDP checksum):    NORM</t>
<t>strong error detection (CRC32C):      SCTP</t>
<t>packet erasure coding (both proactively and as part of ARQ):    NORM</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>flow control:          TCP    SCTP</t>
<t>flow control (slow receiver function):   DCCP</t>
<t>flow control (timer-based and/or ack-based):    NORM</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>segmentation:        TCP   NORM</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>stream-oriented delivery in a single stream:     TCP      NORM</t>
<t>support for multiple concurrent streams:         SCTP</t>
<t>support for stream scheduling prioritization:    SCTP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>data bundling (Nagle's algorithm):         TCP    NORM</t>
<t>user message bundling:                 SCTP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>congestion control:    TCP      SCTP   NORM</t>
<t>no congestion control:   UDP</t>

</list><vspace blankLines='1' /><list style="symbols">
<t>timestamps:    DCCP</t>
</list>

      </t>

    </section>


    <section anchor="featuregrouping" title="Grouping of the features">

<t>This section presents a grouping of the features from <xref target="TAPS1"></xref> according to the three categories: functional vs. non-functional; static vs. initialization vs. dynamic; one-sided vs. two-sided.
</t>

<t>
The current version only includes the functional vs. non-functional categorization. The other categories will be included in future versions.
</t>

<section anchor="functionalornot" title="Functional vs. non-functional">

<section anchor="functional" title="Functional features">

<t>What is delivered (delivery type):<vspace blankLines='1' />
<list style="symbols">
<t>message-oriented delivery:      SCTP      UDP    UDP-Lite    DCCP</t>
<t>byte-stream-oriented delivery:   TCP  </t>
<t>object-oriented delivery of discrete data or file items:    NORM</t>
</list></t>

<t><vspace blankLines='1' />Reliability of delivery:
<vspace blankLines='1' /><list style="symbols">
<t>non-reliable delivery:       UDP   UDP-Lite   DCCP</t>
<t>reliable delivery:           TCP      NORM</t>
<t>reliable or partially reliable delivery:    SCTP</t>
<t>drop notification:           DCCP</t>
</list></t>

<t><vspace blankLines='1' />Direction of communication:
<vspace blankLines='1' /><list style="symbols">
<t>unidirectional:    UDP</t>
<t>bidirectional:     TCP</t>
</list></t>

<t><vspace blankLines='1' />Ordered or unordered delivery:
<vspace blankLines='1' /><list style="symbols">
<t>ordered delivery:                      DCCP</t>
<t>ordered delivery for each byte stream:    TCP</t>
<t>ordered delivery for each byte or message stream:   NORM</t>
<t>ordered and unordered delivery within a stream (of messages):    SCTP</t>
<t>unordered delivery:       UDP-Lite     UDP</t>
<t>unordered delivery of in-memory data or file bulk content objects:   NORM</t>
</list></t>

<t><vspace blankLines='1' />Unicast, anycast, multicast or broadcast:
<vspace blankLines='1' /><list style="symbols">
<t>unicast:     TCP    SCTP  UDP   UDP-Lite    DCCP    NORM</t>
<t>IPv6 multicast and anycast:              UDP</t>
<t>IPv4 broadcast, multicast and anycast:   UDP       UDP-Lite</t>
<t>multicast:    NORM</t>
</list></t>

</section>

<section anchor="nonfunctional" title="Non-functional features">
<t>These are features that the application can optionally specify. If a feature is not specified by the application it is undefined, i.e. the TAPS system may choose an implementation of any of the features listed.</t>

<t>Congestion control:
<vspace blankLines='1' /><list style="symbols">
<t>congestion control:         TCP      SCTP   NORM</t>
<t>no congestion control:      UDP</t>
</list></t>

<t><vspace blankLines='1' />Resilience:
<vspace blankLines='1' /><list style="symbols">
<t>multihoming:             SCTP</t>
<t>no resilience:              UDP UDP-lite  TCP </t>
</list></t>

<t><vspace blankLines='1' />Connection oriented (or not):
<vspace blankLines='1' /><list style="symbols">
<t>connection oriented:          TCP  DCCP  SCTP</t>
<t>not connection oriented:      UDP   UDP-Lite</t>
</list></t>

<t><vspace blankLines='1' />Message sizes and fragmentation:
<vspace blankLines='1' /><list style="symbols">
<t>user message fragmentation and reassembly:      SCTP</t>
<t>IPv6 jumbograms:         UDP</t>
</list></t>

<t><vspace blankLines='1' />Setup negotiation:
<vspace blankLines='1' /><list style="symbols">
<t>connection setup with feature negotiation and application-to-port
      mapping:    TCP     SCTP      DCCP</t>
</list></t>

<t><vspace blankLines='1' />Flow control:
<vspace blankLines='1' /><list style="symbols">
<t>flow control:          TCP    SCTP</t>
<t>flow control (slow receiver function):   DCCP</t>
<t>flow control (timer-based and/or ack-based):    NORM</t>
<t>no flow control:     UDP</t>
</list></t>

<t><vspace blankLines='1' />Multiplexing:
<vspace blankLines='1' /><list style="symbols">
<t>multistreaming:     SCTP</t>
<t>port multiplexing:     TCP    SCTP     UDP     UDP-Lite   DCCP</t>
<t>port multiplexing (UDP ports):    NORM</t>
<t>2-tuple endpoints:     UDP</t>
</list></t>

<t><vspace blankLines='1' />Transport layer mobility:
<vspace blankLines='1' /><list style="symbols">
<t>transport layer mobility:     SCTP</t>
</list></t>

<t><vspace blankLines='1' />Error detection, protection, FEC and integrity (divided into more groups?):
<vspace blankLines='1' /><list style="symbols">
<t>partial integrity protection:     UDP-Lite    DCCP</t>
<t>checksum optional:         UDP</t>
<t>error detection (checksum):       TCP      UDP</t>
<t>error detection (UDP checksum):    NORM</t>
<t>strong error detection (CRC32C):      SCTP</t>
<t>packet erasure coding (both proactively and as part of ARQ):    NORM</t>
<t>content privacy to in-path devices: ? (intro of <xref target="TAPS1"></xref>)</t>
</list></t>

<t><vspace blankLines='1' />Streams:
<vspace blankLines='1' /><list style="symbols">
<t>stream-oriented delivery in a single stream:     TCP      NORM</t>
<t>support for multiple concurrent streams:         SCTP</t>
<t>support for stream scheduling prioritization:    SCTP</t>
</list></t>

<t><vspace blankLines='1' />Bundling:
<vspace blankLines='1' /><list style="symbols">
<t>data bundling (Nagle's algorithm):         TCP    NORM</t>
<t>user message bundling:                     SCTP</t>
</list></t>


</section>



</section>

    <section anchor="unseencomponents" title="Components from draft-ietf-taps-transports-04 that are not specified or seen by the applications">

<t>Segmentation:
<vspace blankLines='1' /><list style="symbols">
   <t>segmentation:        TCP   NORM</t>
</list></t>

<t><vspace blankLines='1' />Timestamps:
<vspace blankLines='1' /><list style="symbols">
<t>timestamps:    DCCP</t>
<t>Service Codes:   DCCP</t>
</list></t>


</section>

</section>


    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>This work has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 644334 (NEAT). The views expressed are solely those of the author(s).</t>

    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>XX RFC ED - PLEASE REMOVE THIS SECTION XXX</t>

      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>Security will be considered in future versions of this document.</t>
    </section>

  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
         1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
         2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
         (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
         
         Both are cited textually in the same manner: by using xref elements.
         If you use the PI option, xml2rfc will, by default, try to find included files in the same
         directory as the including file. You can also define the XML_LIBRARY environment variable
         with a value containing a set of directories to search.  These can be either in the local
         filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--      &RFC2119;
             -->

      <reference anchor="TAPS1" target="">
        <front>
          <title>Services provided by IETF transport protocols and congestion control mechanisms</title>

          <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"></author>

          <author fullname="B. Trammell" initials="B." surname="Trammell"></author>

          <author fullname="M. Kuehlewind" initials="M." surname="Kuehlewind"></author>

          <date month="May" year="2015" />
        </front>

        <seriesInfo name="Internet-draft"
                    value="draft-ietf-taps-transports-04" />
      </reference>
      

    </references>


    <!--        
         <section anchor="sec-internal" title="Internal comments">
         <t>This is a place for taking notes.</t>
         
         <t>It's interesting that our document proposes almost exactly what RFC3168 mentions in sec. 20.2: "   A second possible use for the fourth ECN codepoint would have been to
         give the router two separate codepoints for the indication of
         congestion, CE(0) and CE(1), for mild and severe congestion
         respectively.  While this could be useful in some cases, this
         certainly does not seem a compelling requirement at this point.  If
         there was judged to be a compelling need for this, the complications
         of incremental deployment would most likely necessitate more that
         just one codepoint for this function.".</t>
         
         
         </section>
         -->

    <!-- Change Log
         v00 2006-03-15  EBD   Initial version
         
         -->
  </back>
</rfc>
