<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
 which is available here: http://xml2rfc.tools.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. -->
<!-- http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml-->
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2309 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2309.xml">
<!ENTITY RFC2481 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2481.xml">
<!ENTITY RFC3168 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml">
<!ENTITY RFC3649 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3649.xml">
<!ENTITY RFC3742 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3742.xml">
<!ENTITY RFC3758 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3758.xml">
<!ENTITY RFC4340 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4340.xml">
<!ENTITY RFC4774 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4774.xml">
<!ENTITY RFC5562 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5562.xml">
<!ENTITY RFC5670 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5670.xml">
<!ENTITY RFC5681 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5681.xml">
<!ENTITY RFC5696 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5696.xml">
<!ENTITY RFC6040 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6040.xml">
<!ENTITY RFC6679 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6679.xml">
<!ENTITY RFC6789 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6789.xml">
<!ENTITY RFC7713 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7713.xml">
<!ENTITY RFC7567 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7567.xml">
<!ENTITY RFC8033 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8033.xml">
<!ENTITY RFC8087 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8087.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
<!ENTITY I-D.ietf-tcpm-accurate-ecn SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tcpm-accurate-ecn-01.xml">
<!ENTITY I-D.ietf-tcpm-dctcp SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tcpm-dctcp-02.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.tools.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="no" ?>
<!-- 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="exp" docName="draft-ietf-tcpm-alternativebackoff-ecn-01"
     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="ABE">TCP Alternative Backoff with ECN (ABE)</title>

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

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

    <author fullname="Naeem Khademi" initials="N." surname="Khademi">
      <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>

        <email>naeemk@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>

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

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

    <author fullname="Grenville Armitage" initials="G." surname="Armitage">
      <organization abbrev="Swinburne University of Technology">Centre for
      Advanced Internet Architectures</organization>

      <address>
        <postal>
          <street>Swinburne University of Technology</street>

          <street>PO Box 218</street>

          <street>John Street, Hawthorn</street>

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

          <code>3122</code>

          <city>Victoria</city>

          <region></region>

          <country>Australia</country>
        </postal>

        <email>garmitage@swin.edu.au</email>

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

    <author fullname="Godred Fairhurst" initials="G." surname="Fairhurst">
      <organization>University of Aberdeen</organization>

      <address>
        <postal>
          <street>School of Engineering, Fraser Noble Building</street>

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

          <code>AB24 3UE</code>

          <city>Aberdeen</city>

          <region></region>

          <country>UK</country>
        </postal>

        <email>gorry@erg.abdn.ac.uk</email>

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

    <date year="2017" />

    <!-- Meta-data Declarations -->

    <area>Transport</area>

    <workgroup></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>ecn, aqm, sctp, tcp</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>Recent Active Queue Management (AQM) mechanisms instantiate shallow
      buffers with burst tolerance to minimise the time that packets spend
      enqueued at a bottleneck. However, shallow buffering can cause
      noticeable performance degradation when TCP is used over a network path
      with a large bandwidth-delay-product. Traditional methods rely on
      detecting network congestion through reported loss of transport packets.
      Explicit Congestion Notification (ECN) instead allows a router to
      directly signal incipient congestion. A sending endpoint can distinguish
      when congestion is signalled via ECN, rather than by packet loss. An
      ECN signal indicates that an AQM mechanism has done its job, and
      therefore the bottleneck network queue is likely to be shallow. This
      document therefore proposes an update to the TCP sender-side ECN
      reaction in congestion avoidance to reduce the FlightSize by a smaller
      amount than the congestion control algorithm's reaction to loss. Future
      versions of this document will also describe a corresponding method for
      the Stream Control Transmission Protocol (SCTP).</t>
    </abstract>
  </front>

  <middle>
    <section anchor="sec-def" title="Definitions">
      <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>Explicit Congestion Notification (ECN) <xref target="RFC3168"></xref>
      makes it possible for an Active Queue Management (AQM) mechanism to
      signal the presence of incipient congestion without incurring packet
      loss. This lets the network deliver some packets to an application that
      would have been dropped if the application or transport did not support
      ECN. This packet loss reduction is the most obvious benefit of ECN, but
      it is often relatively modest. There are also significant other benefits
      from deploying ECN <xref target="RFC8087"></xref>, including
      reduced end-to-end network latency.</t>

      <t>The rules for ECN were originally written to be very conservative,
      and required the congestion control algorithms of ECN-capable transport
      protocols to treat ECN congestion signals exactly the same as they would
      treat a packet loss <xref target="RFC3168"></xref>.</t>

      <t>Research has demonstrated the benefits of reducing network delays due
      to excessive buffering <xref target="BUFFERBLOAT"></xref>; this has led
      to the creation of new AQM mechanisms like PIE <xref
      target="RFC8033"></xref> and CoDel <xref target="CODEL2012"></xref>
      <xref target="I-D.CoDel"></xref>, which avoid causing the bloated queues
      that are common with a simple tail-drop behaviour (also known as a
      First-In First-Out, FIFO, queue).</t>

      <t>These AQM mechanisms instantiate short queues that are designed to
      tolerate packet bursts. However, congestion control mechanisms cannot
      always utilise a bottleneck link well where there are short queues. For
      example, to allow a single TCP connection to fully utilise a network
      path, the queue at the bottleneck link must be able to compensate for
      TCP halving the "FlightSize" and "ssthresh" variables in response to a
      lost packet <xref target="RFC5681"></xref>. This requires the bottleneck
      queue to be able to store at least an end-to-end bandwidth-delay
      product (BDP) of data, which effectively doubles both the amount of data
      that can be in flight and the round-trip time (RTT) experience using the
      network path.</t>

      <t>Modern AQM mechanisms can use ECN to signal the early signs of
      impending queue buildup long before a tail-drop queue would be
      forced to resort to dropping packets. It is
      therefore appropriate for the transport protocol congestion control
      algorithm to have a more measured response when an early-warning signal
      of congestion is received in the form of an ECN CE-marked packet.
      Recognizing these changes in modern AQM practices, more recent rules
      have relaxed the strict requirement that ECN signals be treated
      identically to packet loss <xref target="I-D.ECN-exp"></xref>. Following
      these newer, more flexible rules, this document defines a new
      sender-side-only congestion control response, called "ABE" (Alternative
      Backoff with ECN). ABE improves the performance when routers use shallow
      buffered AQM mechanisms.</t>
    </section>

    <section title="Specification">
      <t>This specification describes an update to the congestion control
      algorithm of an ECN-capable TCP transport protocol. It allows a TCP
      stack to update the TCP sender response when it receives feedback
      indicating reception of a CE-marked packet. It RECOMMENDS that a TCP
      sender multiplies the FlightSize by 0.8 and reduces the slow start
      threshold (ssthresh) in congestion avoidance following
      reception of a TCP segment that sets the ECN-Echo flag (defined in <xref
      target="RFC3168"/>).</t>
    </section>

    <section anchor="sec-rationale" title="Discussion">
      <t>Much of the technical background to this congestion control response
      can be found in a research paper <xref target="ABE2017"></xref>. This
      paper used a mix of experiments, theory and simulations with standard
      NewReno and CUBIC to evaluate the technique. It examined the impact of
      enabling ECN and letting individual TCP senders back off by a reduced
      amount in reaction to the receiver that reports ECN CE-marks from
      AQM-enabled bottlenecks. The technique was shown to present
      "...significant performance gains in lightly-multiplexed scenarios,
      without losing the delay-reduction benefits of deploying CoDel or
      PIE". <!-- <xref target="I-D.CoDel"></xref>
                                                 <xref target="RFC8033"/>.-->
      The
      performance improvement is achieved when reacting to ECN-Echo in
      congestion avoidance by multiplying FlightSize and sstthresh with a
      value in the range [0.7..0.85].</t>

      <section anchor="sec-rationale-why"
               title="Why Use ECN to Vary the Degree of Backoff?">
        <t>The classic rule-of-thumb dictates that a network path needs to
        provide a BDP of bottleneck buffering if a TCP connection wishes to
        optimise path utilisation. A single TCP bulk transfer running through
        such a bottleneck will have increased its congestion window (cwnd) up
        to 2*BDP by the time that packet loss occurs. When packet loss is
        detected (regarded as a notification of congestion), Standard TCP
        halves the FlightSize and ssthresh <xref target="RFC5681"></xref>,
        which causes the TCP congestion control to go back to allowing only a
        BDP of packets in flight -- just sufficient to maintain 100%
        utilisation of the bottleneck on the network path.</t>

        <t>AQM mechanisms such as CoDel <xref target="I-D.CoDel"></xref> and PIE
        <xref target="RFC8033"></xref> set a delay target in routers and use
        congestion notifications to constrain the queuing delays experienced
        by packets, rather than in response to impending or actual bottleneck
        buffer exhaustion. With current default delay targets, CoDel and PIE
        both effectively emulate a shallow buffered bottleneck (section II,
        <xref target="ABE2017"></xref>) while also allowing short traffic
        bursts into the queue. This provides acceptable performance for TCP
        connections over a path with a low BDP, or in highly multiplexed
        scenarios (many concurrent transport connections). However, it
        interacts badly for a lightly-multiplexed case (few concurrent
        connections) over a path with a large BDP. Conventional TCP backoff in
        such cases leads to gaps in packet transmission and under-utilisation
        of the path.</t>

        <t>Instead of discarding packets, an AQM mechanism is allowed to mark
        ECN-capable packets with an ECN CE-mark. The reception of a CE-mark not
        only indicates congestion on the network path, it also indicates that
        an AQM mechanism exists at the bottleneck along the path, and hence
        the CE-mark likely came from a bottleneck with a shallow queue.
        Reacting differently to an ECN CE-mark than to packet loss can then
        yield the benefit of a reduced back-off, as with CUBIC <xref
        target="I-D.CUBIC"></xref>, when queues are short, yet it can avoid
        generating excessive delay when queues are long. Using ECN can also be
        advantageous for several other reasons <xref
        target="RFC8087"></xref>.</t>

        <t>The idea of reacting differently to loss and detection of an ECN
        CE-mark pre-dates this document. For example, previous research
        proposed using ECN CE-marks to modify TCP congestion control behaviour
        via a larger multiplicative decrease factor in conjunction with a
        smaller additive increase factor <xref target="ICC2002"></xref>.
        The goal of this former work was to
        operate across AQM bottlenecks using Random Early Detection (RED) that
        were not necessarily configured to emulate a shallow queue
        (<xref target="RFC7567"></xref> notes the
        current status of RED as an AQM method.)</t>
      </section>

      <section anchor="sec-rationale-scope"
               title="Focus on ECN as Defined in RFC3168">
        <t>Some transport protocol mechanisms rely on ECN semantics that
        differ from the original ECN definition <xref target="RFC3168"></xref>
        -- for example, Congestion Exposure (ConEx) <xref
        target="RFC7713"></xref> and Datacenter TCP (DCTCP) <xref
        target="I-D.ietf-tcpm-dctcp"></xref> need more accurate ECN
        information than that offered by the original feedback method.
        Other mechanisms (e.g., <xref target="I-D.ietf-tcpm-accurate-ecn"></xref>)
        allow the sender to adjust the rate more frequently than once each
        path RTT. Use of these mechanisms is out of the scope of the current
        document.</t>
      </section>

      <section anchor="sec-rationale-multiplier"
               title="Discussion: Choice of ABE Multiplier">
        <t>ABE decouples the reaction of a TCP sender to loss and ECN CE-marks
        when in the congestion avoidance phase. The description respectively
        uses beta_{loss} and beta_{ecn} to refer to the multiplicative
        decrease factors applied in response to packet loss, and in response
        to a receiver indicating that an ECN CE-mark was received on an
        ECN-enabled TCP connection. For non-ECN-enabled TCP connections, no
        ECN CE-marks are received and only beta_{loss} applies.</t>

        <t>In other words, in response to detected loss: <list>
            <t>FlightSize_(n+1) = FlightSize_n * beta_{loss}</t>
          </list> and in response to an indication of a received ECN CE-mark:
        <list>
            <t>FlightSize_(n+1) = FlightSize_n * beta_{ecn}</t>
          </list>where FlightSize is the amount of outstanding data in the
        network, upper-bounded by the sender's cwnd and the receiver's
        advertised window (rwnd) <xref target="RFC5681"></xref>. The higher
        the values of beta_{loss} and beta_{ecn}, the less aggressive the
        response of any individual backoff event.</t>

        <t>The appropriate choice for beta_{loss} and beta_{ecn} values is a
        balancing act between path utilisation and draining the bottleneck
        queue. More aggressive backoff (smaller beta_*) risks underutilising
        the path, while less aggressive backoff (larger beta_*) can result in
        slower draining of the bottleneck queue.</t>

        <t>The Internet has already been running with at least two different
        beta_{loss} values for several years: the standard value is 0.5 <xref
        target="RFC5681"></xref>, and the Linux implementation of CUBIC <xref target="I-D.CUBIC"/> has
        used a multiplier of 0.7 since kernel version 2.6.25 released in 2008.
        ABE proposes no change to beta_{loss} used by current TCP
        implementations.</t>

        <t>beta_{ecn} depends on how the response of a TCP connection to
        shallow AQM marking thresholds is optimised. beta_{loss} reflects the
        preferred response of each congestion control algorithm when faced
        with exhaustion of buffers (of unknown depth) signalled by packet
        loss. Consequently, for any given TCP congestion control algorithm the
        choice of beta_{ecn} is likely to be algorithm-specific, rather than a
        constant multiple of the algorithm's existing beta_{loss}.</t>

        <t>A range of tests (section IV, <xref target="ABE2017"></xref>) with
        NewReno and CUBIC over CoDel and PIE in lightly-multiplexed scenarios
        have explored this choice of parameter. The results of these tests
        indicate that CUBIC connections benefit from beta_{ecn} of 0.85 (cf.
        beta_{loss} = 0.7), and NewReno connections see improvements with
        beta_{ecn} in the range 0.7 to 0.85 (cf. beta_{loss} = 0.5).</t>
      </section>
    </section>

    <section title="Status of the Update">
      <t><!--
                Statement on why EXP
                
                -->This update is a sender-side only change. Like other
      changes to congestion-control algorithms, it does not require any change
      to the TCP receiver or to network devices. It does not require any
      ABE-specific changes in routers or the use of Accurate ECN feedback
      <xref target="I-D.ietf-tcpm-accurate-ecn"></xref> by a receiver.</t>

      <t>The currently published ECN specification requires that the
      congestion control response to a CE-marked packet is the same as the
      response to a dropped packet <xref target="RFC3168"></xref>. The
      specification is currently being updated to allow for specifications
      that do not follow this rule <xref target="I-D.ECN-exp"></xref>. The
      present specification defines such an experiment and has thus been
      assigned an Experimental status before being proposed as a
      Standards-Track update.</t>

      <t>The purpose of the Internet experiment is to collect experience with
      deployment of ABE, and confirm the safety in deployed networks using
      this update to TCP congestion control.</t>

      <t>When used with bottlenecks that do not support ECN-marking the
      specification does not modify the transport protocol.</t>

      <t>To evaluate the benefit, this experiment therefore requires support
      in AQM routers (except to enable an ECN-marking mechanism <xref
      target="RFC3168"></xref> <xref target="RFC7567"></xref>) for ECN-marking
      of packets carrying the ECN Capable Transport, ECT(0), codepoint <xref
      target="RFC3168"></xref>.</t>

      <t>If the method is only deployed by some senders, and not by others,
      the senders that use this method can gain some advantage, possibly at
      the expense of other flows that do not use this updated method. Because
      this advantage applies only to ECN-marked packets and not to loss
      indications, the new method cannot lead to congestion collapse.</t>

      <t>The result of this Internet experiment will be reported by
      presentation to the TCPM WG (or IESG) or an implementation report at the
      end of the experiment.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Authors N. Khademi, M. Welzl and G. Fairhurst were part-funded by the
      European Community under its Seventh Framework Programme through the
      Reducing Internet Transport Latency (RITE) project (ICT-317700). The
      views expressed are solely those of the authors.</t>

      <t>The authors would like to thank Stuart Cheshire for many suggestions
      when revising the draft, and the following people for their
      contributions to <xref target="ABE2017"></xref>: Chamil Kulatunga, David
      Ros, Stein Gjessing, Sebastian Zander. Thanks also to (in alphabetical
      order) Bob Briscoe, Markku Kojo, John Leslie, Dave Taht and the TCPM
      working group for providing valuable feedback on this document.</t>

      <t>The authors would finally like to thank everyone who provided
      feedback on the congestion control behaviour specified in this update
      received from the IRTF Internet Congestion Control Research Group
      (ICCRG).</t>
    </section>

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

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

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

    <section anchor="Implementation" title="Implementation Status">
      <t>ABE is implemented as a patch for Linux and FreeBSD. It is meant for
      research and available for download from
      http://heim.ifi.uio.no/naeemk/research/ABE/ This code was used to
      produce the test results that are reported in <xref
      target="ABE2017"></xref>.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The described method is a sender-side only transport change, and does
      not change the protocol messages exchanged. The security considerations
      for ECN <xref target="RFC3168"></xref> therefore still apply.</t>

      <t>This is a change to TCP congestion control with ECN that will
      typically lead to a change in the capacity achieved when flows share a
      network bottleneck. This could result in some flows receiving more than
      their fair share of capacity. Similar unfairness in the way that
      capacity is shared is also exhibited by other congestion control
      mechanisms that have been in use in the Internet for many years (e.g.,
      CUBIC <xref target="I-D.CUBIC"></xref>). Unfairness may also be a result
      of other factors, including the round trip time experienced by a flow.
      ABE applies only when ECN-marked packets are received,
      not when packets are lost, hence use of ABE cannot lead
      to congestion collapse.</t>
    </section>

    <section title="Revision Information">
      <t>XX RFC ED - PLEASE REMOVE THIS SECTION XXX</t>

      <t>-01. Text improved, mainly incorporating comments from Stuart
      Cheshire. The reference to a technical report has been updated
      to a published version of the tests <xref target="ABE2017"></xref>. Used
      "AQM Mechanism" throughout in place of other alternatives, and more
      consistent use of technical language and clarification on the intended
      purpose of the experiments required by EXP status. There was no change
      to the technical content.</t>

      <t>-00. draft-ietf-tcpm-alternativebackoff-ecn-00 replaces
      draft-khademi-tcpm-alternativebackoff-ecn-01. Text describing the nature
      of the experiment was added.</t>

      <t>Individual draft -01. This I-D now refers to
      draft-black-tsvwg-ecn-experimentation-02, which replaces
      draft-khademi-tsvwg-ecn-response-00 to make a broader update to RFC3168
      for the sake of allowing experiments. As a result, some of the
      motivating and discussing text that was moved from
      draft-khademi-alternativebackoff-ecn-03 to
      draft-khademi-tsvwg-ecn-response-00 has now been re-inserted here.</t>

      <t>Individual draft -00. draft-khademi-tsvwg-ecn-response-00 and
      draft-khademi-tcpm-alternativebackoff-ecn-00 replace
      draft-khademi-alternativebackoff-ecn-03, following discussion in the
      TSVWG and TCPM working groups.</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">
      <reference anchor="I-D.ECN-exp">
        <front>
          <title>Explicit Congestion Notification (ECN)
          Experimentation</title>

          <author fullname="D. Black" initials="D." surname="Black"></author>

          <date month="April" year="2017" />
        </front>

        <seriesInfo name="Internet-draft, IETF work-in-progress"
                    value="draft-ietf-tsvwg-ecn-experimentation-02" />
      </reference>

      &RFC2119;

      &RFC3168;

      &RFC5681;

      &RFC7567;
    </references>

    <references title="Informative References">
      <!--
             <reference anchor="ABE2015"
                target="http://caia.swin.edu.au/reports/150710A/CAIA-TR-150710A.pdf">
                <front>
                    <title>Alternative Backoff: Achieving Low Latency and High
                        Throughput with ECN and AQM</title>
                    
                    <author fullname="N. Khademi" initials="N." surname="Khademi"></author>
                    
                    <author fullname="M. Welzl" initials="M." surname="Welzl"></author>
                    
                    <author fullname="G. Armitage" initials="G." surname="Armitage"></author>
                    
                    <author fullname="C. Kulatunga" initials="C." surname="Kulatunga"></author>
                    
                    <author fullname="D. Ros" initials="D." surname="Ros"></author>
                    
                    <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"></author>
                    
                    <author fullname="S. Gjessing" initials="S." surname="Gjessing"></author>
                    
                    <author fullname="S. Zander" initials="S." surname="Zander"></author>
                    
                    <date month="July" year="2015" />
                </front>
                
                <seriesInfo name="CAIA Technical Report CAIA-TR-150710A,"
                value="Swinburne University of Technology" />
            </reference>
             -->

      <reference anchor="ABE2017">
        <front>
          <title>Alternative Backoff: Achieving Low Latency and High
          Throughput with ECN and AQM</title>

          <author fullname="N. Khademi" initials="N." surname="Khademi"></author>

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

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

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

          <author fullname="S. Zander" initials="S." surname="Zander"></author>

          <author fullname="D. Ros" initials="D." surname="Ros"></author>

          <date month="June" year="2017" />
        </front>

        <seriesInfo name="IFIP NETWORKING 2017," value="Stockholm, Sweden" />
      </reference>

      <reference anchor="BUFFERBLOAT"
                 target="https://www.bufferbloat.net/projects/bloat/wiki/Introduction/">
        <front>
          <title>Bufferbloat project</title>

          <author></author>

          <date />
        </front>
      </reference>

      <reference anchor="I-D.CUBIC">
        <front>
          <title>CUBIC for Fast Long-Distance Networks</title>

          <author fullname="I. Rhee" initials="I." surname="Rhee"></author>

          <author fullname="L. Xu" initials="L." surname="Xu"></author>

          <author fullname="S. Ha" initials="S." surname="Ha"></author>

          <author fullname="A. Zimmermann" initials="A." surname="Zimmermann"></author>

          <author fullname="L. Eggert" initials="L." surname="Eggert"></author>

          <author fullname="R. Scheffenegger" initials="R."
                  surname="Scheffenegger"></author>

          <date month="February" year="2017" />
        </front>

        <seriesInfo name="Internet-draft, IETF work-in-progress"
                    value="draft-ietf-tcpm-cubic-04" />
      </reference>

      &RFC8087;

      <reference anchor="I-D.CoDel">
        <front>
          <title>Controlled Delay Active Queue Management</title>

          <author fullname="K. Nichols" initials="K." surname="Nichols"></author>

          <author fullname="V. Jacobson" initials="V." surname="Jacobson"></author>

          <author fullname="A. McGregor" initials="V." surname="McGregor"></author>

          <author fullname="J. Iyengar" initials="J." surname="Iyengar"></author>

          <date month="March" year="2017" />
        </front>

        <seriesInfo name="Internet-draft, IETF work-in-progress"
                    value="draft-ietf-aqm-codel-07" />
      </reference>

      &RFC8033;

      <reference anchor="ICC2002"
                 target="http://dx.doi.org/10.1109/ICC.2002.997262">
        <front>
          <title>TCP Increase/Decrease Behavior with Explicit Congestion
          Notification (ECN)</title>

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

          <author fullname="S. Fahmy" initials="S." surname="Fahmy"></author>

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

        <seriesInfo name="IEEE ICC" value="2002, New York, New York, USA" />
      </reference>

      <reference anchor="CODEL2012"
                 target="http://queue.acm.org/detail.cfm?id=2209336">
        <front>
          <title>Controlling Queue Delay</title>

          <author fullname="Kathleen Nichols" initials="K" surname="Nichols">
            <organization></organization>
          </author>

          <author fullname="Van Jacobson" initials="V" surname="Jacobson">
            <organization>Google, Inc</organization>
          </author>

          <!--<workgroup>Communications of the ACM Vol. 55 No. 11, July, 2012, pp.  42-50.</workgroup>-->

          <date month="July" year="2012" />

          <abstract>
            <t></t>
          </abstract>
        </front>

        <format octets="" target="http://queue.acm.org/detail.cfm?id=2209336"
                type="PDF" />
      </reference>

      &RFC7713;

      &I-D.ietf-tcpm-dctcp;

      &I-D.ietf-tcpm-accurate-ecn;
    </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>
