draft-ietf-tcpm-alternativebackoff-ecn-12.txt   rfc8511.txt 
Network Working Group N. Khademi Internet Engineering Task Force (IETF) N. Khademi
Internet-Draft M. Welzl Request for Comments: 8511 M. Welzl
Intended status: Experimental University of Oslo Category: Experimental University of Oslo
Expires: March 18, 2019 G. Armitage ISSN: 2070-1721 G. Armitage
Netflix Netflix
G. Fairhurst G. Fairhurst
University of Aberdeen University of Aberdeen
September 14, 2018 December 2018
TCP Alternative Backoff with ECN (ABE) TCP Alternative Backoff with ECN (ABE)
draft-ietf-tcpm-alternativebackoff-ecn-12
Abstract Abstract
Active Queue Management (AQM) mechanisms allow for burst tolerance Active Queue Management (AQM) mechanisms allow for burst tolerance
while enforcing short queues to minimise the time that packets spend while enforcing short queues to minimise the time that packets spend
enqueued at a bottleneck. This can cause noticeable performance enqueued at a bottleneck. This can cause noticeable performance
degradation for TCP connections traversing such a bottleneck, degradation for TCP connections traversing such a bottleneck,
especially if there are only a few flows or their bandwidth-delay- especially if there are only a few flows or their bandwidth-delay
product is large. The reception of a Congestion Experienced (CE) ECN product (BDP) is large. The reception of a Congestion Experienced
mark indicates that an AQM mechanism is used at the bottleneck, and (CE) Explicit Congestion Notification (ECN) mark indicates that an
therefore the bottleneck network queue is likely to be short. AQM mechanism is used at the bottleneck, and the bottleneck network
Feedback of this signal allows the TCP sender-side ECN reaction in queue is therefore likely to be short. Feedback of this signal
congestion avoidance to reduce the Congestion Window (cwnd) by a allows the TCP sender-side ECN reaction in congestion avoidance to
smaller amount than the congestion control algorithm's reaction to reduce the Congestion Window (cwnd) by a smaller amount than the
inferred packet loss. This specification therefore defines an congestion control algorithm's reaction to inferred packet loss.
experimental change to the TCP reaction specified in RFC3168, as Therefore, this specification defines an experimental change to the
permitted by RFC 8311. TCP reaction specified in RFC 3168, as permitted by RFC 8311.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for examination, experimental implementation, and
evaluation.
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 https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document defines an Experimental Protocol for the Internet
and may be updated, replaced, or obsoleted by other documents at any community. This document is a product of the Internet Engineering
time. It is inappropriate to use Internet-Drafts as reference Task Force (IETF). It represents the consensus of the IETF
material or to cite them other than as "work in progress." community. It has received public review and has been approved for
publication by the Internet Engineering Steering Group (IESG). Not
all documents approved by the IESG are candidates for any level of
Internet Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on March 18, 2019. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8511.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Choice of ABE Multiplier . . . . . . . . . . . . . . . . 4 3.1. Choice of ABE Multiplier . . . . . . . . . . . . . . . . 4
4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Why Use ECN to Vary the Degree of Backoff? . . . . . . . 6 4.1. Rationale for Using ECN to Vary the Degree of Backoff . . 6
4.2. An RTT-based response to indicated congestion . . . . . . 7 4.2. An RTT-Based Response to Indicated Congestion . . . . . . 7
5. ABE Deployment Requirements . . . . . . . . . . . . . . . . . 7 5. ABE Deployment Requirements . . . . . . . . . . . . . . . . . 7
6. ABE Experiment Goals . . . . . . . . . . . . . . . . . . . . 8 6. ABE Experiment Goals . . . . . . . . . . . . . . . . . . . . 8
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 8. Security Considerations . . . . . . . . . . . . . . . . . . . 8
9. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
10. Security Considerations . . . . . . . . . . . . . . . . . . . 9 9.1. Normative References . . . . . . . . . . . . . . . . . . 9
11. Revision Information . . . . . . . . . . . . . . . . . . . . 9 9.2. Informative References . . . . . . . . . . . . . . . . . 9
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 11
12.1. Normative References . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
12.2. Informative References . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
Explicit Congestion Notification (ECN) [RFC3168] makes it possible Explicit Congestion Notification (ECN) [RFC3168] makes it possible
for an Active Queue Management (AQM) mechanism to signal the presence for an Active Queue Management (AQM) mechanism to signal the presence
of incipient congestion without necessarily incurring packet loss. of incipient congestion without necessarily incurring packet loss.
This lets the network deliver some packets to an application that This lets the network deliver some packets to an application that
would have been dropped if the application or transport did not would have been dropped if the application or transport did not
support ECN. This packet loss reduction is the most obvious benefit support ECN. This packet loss reduction is the most obvious benefit
of ECN, but it is often relatively modest. Other benefits of of ECN, but it is often relatively modest. Other benefits of
deploying ECN have been documented in RFC8087 [RFC8087]. deploying ECN have been documented in [RFC8087].
The rules for ECN were originally written to be very conservative, The rules for ECN were originally written to be very conservative,
and required the congestion control algorithms of ECN-Capable and they required the congestion control algorithms of ECN-Capable
transport protocols to treat indications of congestion signalled by Transport (ECT) protocols to treat indications of congestion
ECN exactly the same as they would treat an inferred packet loss signalled by ECN exactly the same as they would treat an inferred
[RFC3168]. Research has demonstrated the benefits of reducing packet loss [RFC3168]. Research has demonstrated the benefits of
network delays that are caused by interaction of loss-based TCP reducing network delays that are caused by interaction of loss-based
congestion control and excessive buffering [BUFFERBLOAT]. This has TCP congestion control and excessive buffering [BUFFERBLOAT]. This
led to the creation of AQM mechanisms like Proportional Integral has led to the creation of AQM mechanisms like Proportional Integral
Controller Enhanced (PIE) [RFC8033] and Controlling Queue Delay Controller Enhanced (PIE) [RFC8033] and Controlling Queue Delay
(CoDel) [CODEL2012][RFC8289], which prevent bloated queues that are (CoDel) [RFC8289], which prevent bloated queues that are common with
common with unmanaged and excessively large buffers deployed across unmanaged and excessively large buffers deployed across the Internet
the Internet [BUFFERBLOAT]. [BUFFERBLOAT].
The AQM mechanisms mentioned above aim to keep a sustained queue The AQM mechanisms mentioned above aim to keep a sustained queue
short while tolerating transient (short-term) packet bursts. short while tolerating transient (short-term) packet bursts.
However, currently used loss-based congestion control mechanisms are However, currently used loss-based congestion control mechanisms are
not always able to effectively utilise a bottleneck link where there not always able to effectively utilise a bottleneck link where there
are short queues. For example, a TCP sender using the Reno are short queues. For example, a TCP sender using the Reno
congestion control needs to be able to store at least an end-to-end congestion control needs to be able to store at least an end-to-end
bandwidth-delay product (BDP) worth of data at the bottleneck buffer bandwidth-delay product (BDP) worth of data at the bottleneck buffer
if it is to maintain full path utilisation in the face of loss- if it is to maintain full path utilisation in the face of loss-
induced reduction of the congestion window (cwnd) [RFC5681]. This induced reduction of the congestion window (cwnd) [RFC5681]. This
amount of buffering effectively doubles the amount of data that can amount of buffering effectively doubles the amount of data that can
be in flight and the maximum round-trip time (RTT) experienced by the be in flight and the maximum round-trip time (RTT) experienced by the
TCP sender. TCP sender.
Modern AQM mechanisms can use ECN to signal the early signs of Modern AQM mechanisms can use ECN to signal the early signs of
impending queue buildup long before a tail-drop queue would be forced impending queue buildup long before a tail-drop queue would be forced
to resort to dropping packets. It is therefore appropriate for the to resort to dropping packets. It is therefore appropriate for the
transport protocol congestion control algorithm to have a more transport protocol congestion control algorithm to have a more
measured response when it receives an indication with an early- measured response when it receives an indication with an early
warning of congestion after the remote endpoint receives an ECN CE- warning of congestion after the remote endpoint receives an ECN
marked packet. Recognizing these changes in modern AQM practices, CE-marked packet. Recognizing these changes in modern AQM practices,
the strict requirement that ECN CE signals be treated identically to the strict requirement that ECN CE signals be treated identically to
inferred packet loss has been relaxed [RFC8311]. This document inferred packet loss has been relaxed [RFC8311]. This document
therefore defines a new sender-side-only congestion control response, therefore defines a new sender-side-only congestion control response
called "ABE" (Alternative Backoff with ECN). ABE improves TCP's called "ABE" (Alternative Backoff with ECN). ABE improves TCP's
average throughput when routers use AQM controlled buffers that allow average throughput when routers use AQM-controlled buffers that allow
only for short queues. only for short queues.
2. Definitions 2. Definitions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 RFC 2119 [RFC2119] [RFC8174] when, and only when, they appear in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
all capitals, as shown here. capitals, as shown here.
3. Specification 3. Specification
This specification changes the congestion control algorithm of an This specification changes the congestion control algorithm of an
ECN-Capable TCP transport protocol by changing the TCP sender ECN-Capable TCP transport protocol by changing the TCP-sender
response to feedback from the TCP receiver that indicates reception response to feedback from the TCP receiver that indicates the
of a CE-marked packet, i.e., receipt of a packet with the ECN-Echo reception of a CE-marked packet, i.e., receipt of a packet with the
flag (defined in [RFC3168]) set, following the process defined in ECN-Echo flag (defined in [RFC3168]) set, following the process
[RFC8311]. defined in [RFC8311].
The TCP sender response is currently specified in section 6.1.2 of The TCP-sender response is currently specified in Section 6.1.2 of
the ECN specification [RFC3168], updated by [RFC8311]: the ECN specification [RFC3168] and has been slightly updated by
Section 4.1 of [RFC8311] to read as:
The indication of congestion should be treated just as a The indication of congestion should be treated just as a
congestion loss in non-ECN-Capable TCP. That is, the TCP source congestion loss in non-ECN-Capable TCP. That is, the TCP source
halves the congestion window "cwnd" and reduces the slow start halves the congestion window "cwnd" and reduces the slow start
threshold "ssthresh", unless otherwise specified by an threshold "ssthresh", unless otherwise specified by an
Experimental RFC in the IETF document stream. Experimental RFC in the IETF document stream.
Following publication of RFC 8311, this document specifies a sender- As permitted by RFC 8311, this document specifies a sender-side
side change to TCP: change to TCP where receipt of a packet with the ECN-Echo flag SHOULD
trigger the TCP source to set the slow start threshold (ssthresh) to
Receipt of a packet with the ECN-Echo flag SHOULD trigger the TCP 0.8 times the FlightSize, with a lower bound of 2 * SMSS applied to
source to set the slow start threshold (ssthresh) to 0.8 times the the result (where SMSS stands for Sender Maximum Segment Size)). As
FlightSize, with a lower bound of 2 * SMSS applied to the result. in [RFC5681], the TCP sender also reduces the cwnd value to no more
As in [RFC5681], the TCP sender also reduces the cwnd value to no than the new ssthresh value. Section 6.1.2 of RFC 3168 provides
more than the new ssthresh value. RFC 3168 section 6.1.2 provides guidance on setting a cwnd less than 2 * SMSS.
guidance on setting a cwnd less than 2 * SMSS.
3.1. Choice of ABE Multiplier 3.1. Choice of ABE Multiplier
ABE decouples the reaction of a TCP sender to inferred packet loss ABE decouples the reaction of a TCP sender to inferred packet loss
and indication of ECN-signalled congestion in the congestion from the indication of ECN-signalled congestion in the congestion
avoidance phase. To achieve this, ABE uses a different scaling avoidance phase. To achieve this, ABE uses a different scaling
factor in Equation 4 in Section 3.1 of [RFC5681]. The description factor for Equation 4 in Section 3.1 of [RFC5681]. The description
respectively uses beta_{loss} and beta_{ecn} to refer to the respectively uses beta_{loss} and beta_{ecn} to refer to the
multiplicative decrease factors applied in response to inferred multiplicative decrease factors applied in response to inferred
packet loss, and in response to a receiver indicating ECN-signalled packet loss, and in response to a receiver indicating ECN-signalled
congestion. For non-ECN-enabled TCP connections, only beta_{loss} congestion. For non-ECN-enabled TCP connections, only beta_{loss}
applies. applies.
In other words, in response to inferred packet loss: In other words, in response to inferred packet loss:
ssthresh = max (FlightSize * beta_{loss}, 2 * SMSS) ssthresh = max (FlightSize * beta_{loss}, 2 * SMSS)
skipping to change at page 5, line 4 skipping to change at page 5, line 15
congestion. For non-ECN-enabled TCP connections, only beta_{loss} congestion. For non-ECN-enabled TCP connections, only beta_{loss}
applies. applies.
In other words, in response to inferred packet loss: In other words, in response to inferred packet loss:
ssthresh = max (FlightSize * beta_{loss}, 2 * SMSS) ssthresh = max (FlightSize * beta_{loss}, 2 * SMSS)
and in response to an indication of an ECN-signalled congestion: and in response to an indication of an ECN-signalled congestion:
ssthresh = max (FlightSize * beta_{ecn}, 2 * SMSS) ssthresh = max (FlightSize * beta_{ecn}, 2 * SMSS)
and and
cwnd = ssthresh cwnd = ssthresh
(If ssthresh == 2 * SMSS, RFC 3168 section 6.1.2 provides guidance (If ssthresh == 2 * SMSS, Section 6.1.2 of RFC 3168 provides
on setting a cwnd lower than 2 * SMSS.) guidance on setting a cwnd lower than 2 * SMSS.)
where FlightSize is the amount of outstanding data in the network, where FlightSize is the amount of outstanding data in the network,
upper-bounded by the smaller of the sender's cwnd and the receiver's upper-bounded by the smaller of the sender's cwnd and the receiver's
advertised window (rwnd) [RFC5681]. The higher the values of advertised window (rwnd) [RFC5681]. The higher the values of
beta_{loss} and beta_{ecn}, the less aggressive the response of any beta_{loss} and beta_{ecn}, the less aggressive the response of any
individual backoff event. individual backoff event.
The appropriate choice for beta_{loss} and beta_{ecn} values is a The appropriate choice for beta_{loss} and beta_{ecn} values is a
balancing act between path utilisation and draining the bottleneck balancing act between path utilisation and draining the bottleneck
queue. More aggressive backoff (smaller beta_*) risks underutilising queue. More aggressive backoff (smaller beta_*) risks the
the path, while less aggressive backoff (larger beta_*) can result in underutilisation of the path, while less-aggressive backoff (larger
slower draining of the bottleneck queue. beta_*) can result in slower draining of the bottleneck queue.
The Internet has already been running with at least two different The Internet has already been running with at least two different
beta_{loss} values for several years: the standard value is 0.5 beta_{loss} values for several years: the standard value is 0.5
[RFC5681], and the Linux implementation of CUBIC [RFC8312] has used a [RFC5681], and the Linux implementation of CUBIC [RFC8312] has used a
multiplier of 0.7 since kernel version 2.6.25 released in 2008. ABE multiplier of 0.7 since kernel version 2.6.25 released in 2008. ABE
does not change the value of beta_{loss} used by current TCP does not change the value of beta_{loss} used by current TCP
implementations. implementations.
The recommendation in this document specifies a value of The recommendation in this document specifies a value of
beta_{ecn}=0.8. This recommended beta_{ecn} value is only applicable beta_{ecn}=0.8. This recommended beta_{ecn} value is only applicable
for the standard TCP congestion control [RFC5681]. The selection of for the standard TCP congestion control [RFC5681]. The selection of
beta_{ecn} enables tuning the response of a TCP connection to shallow beta_{ecn} enables tuning the response of a TCP connection to shallow
AQM marking thresholds. beta_{loss} characterizes the response of a AQM-marking thresholds. beta_{loss} characterizes the response of a
congestion control algorithm to packet loss, i.e., exhaustion of congestion control algorithm to packet loss, i.e., exhaustion of
buffers (of unknown depth). Different values for beta_{loss} have buffers (of unknown depth). Different values for beta_{loss} have
been suggested for TCP congestion control algorithms. Consequently, been suggested for TCP congestion control algorithms. Consequently,
beta_{ecn} is likely to be an algorithm-specific parameter rather beta_{ecn} is likely to be an algorithm-specific parameter rather
than a constant multiple of the algorithm's existing beta_{loss}. than a constant multiple of the algorithm's existing beta_{loss}.
A range of tests (section IV, [ABE2017]) with NewReno and CUBIC over A range of tests (Section IV of [ABE2017]) with NewReno and CUBIC
CoDel and PIE in lightly-multiplexed scenarios have explored this over CoDel and PIE in lightly multiplexed scenarios have explored
choice of parameter. The results of these tests indicate that CUBIC this choice of parameter. The results of these tests indicate that
connections benefit from beta_{ecn} of 0.85 (cf. beta_{loss} = 0.7), CUBIC connections benefit from beta_{ecn} of 0.85 (cf. beta_{loss} =
and NewReno connections see improvements with beta_{ecn} in the range 0.7), and NewReno connections see improvements with beta_{ecn} in the
0.7 to 0.85 (cf. beta_{loss} = 0.5). range 0.7 to 0.85 (cf. beta_{loss} = 0.5).
4. Discussion 4. Discussion
Much of the technical background to ABE can be found in a research Much of the technical background for ABE can be found in [ABE2017],
paper [ABE2017]. This paper used a mix of experiments, theory and which uses a mix of experiments, theory, and simulations with NewReno
simulations with NewReno [RFC5681] and CUBIC [RFC8312] to evaluate [RFC5681] and CUBIC [RFC8312] to evaluate its performance. ABE was
the technique. The technique was shown to present "...significant shown to present significant performance gains in lightly-multiplexed
performance gains in lightly-multiplexed [few concurrent flows] (few concurrent flows) scenarios, without losing the delay-reduction
scenarios, without losing the delay-reduction benefits of deploying benefits of deploying CoDel or PIE. The performance improvement is
CoDel or PIE". The performance improvement is achieved when reacting achieved when reacting to ECN-Echo in congestion avoidance (when
to ECN-Echo in congestion avoidance (when ssthresh > cwnd) by ssthresh > cwnd) by multiplying cwnd and ssthresh with a value in the
multiplying cwnd and ssthresh with a value in the range [0.7,0.85]. range [0.7,0.85]. Applying ABE when cwnd is smaller than or equal to
Applying ABE when cwnd <= ssthresh is not currently recommended, but ssthresh is not currently recommended, but its use in that scenario
may benefit from additional attention, experimentation and may benefit from additional attention, experimentation, and
specification. specification.
4.1. Why Use ECN to Vary the Degree of Backoff? 4.1. Rationale for Using ECN to Vary the Degree of Backoff
AQM mechanisms such as CoDel [RFC8289] and PIE [RFC8033] set a delay AQM mechanisms such as CoDel [RFC8289] and PIE [RFC8033] set a delay
target in routers and use congestion notifications to constrain the target in routers and use congestion notifications to constrain the
queuing delays experienced by packets, rather than in response to queuing delays experienced by packets rather than in response to
impending or actual bottleneck buffer exhaustion. With current impending or actual bottleneck buffer exhaustion. With current
default delay targets, CoDel and PIE both effectively emulate a default delay targets, CoDel and PIE both effectively emulate a
bottleneck with a short queue (section II, [ABE2017]) while also bottleneck with a short queue (Section II of [ABE2017]) while also
allowing short traffic bursts into the queue. This provides allowing short traffic bursts into the queue. This provides
acceptable performance for TCP connections over a path with a low acceptable performance for TCP connections over a path with a low
BDP, or in highly multiplexed scenarios (many concurrent transport BDP, or in highly multiplexed scenarios (many concurrent transport
flows). However, in a lightly-multiplexed case over a path with a flows). However, in a lightly multiplexed case over a path with a
large BDP, conventional TCP backoff leads to gaps in packet large BDP, conventional TCP backoff leads to gaps in packet
transmission and under-utilisation of the path. transmission and underutilisation of the path.
Instead of discarding packets, an AQM mechanism is allowed to mark 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 ECN-Capable packets with an ECN CE mark. The reception of CE-mark
feedback not only indicates congestion on the network path, it also feedback not only indicates congestion on the network path, it also
indicates that an AQM mechanism exists at the bottleneck along the indicates that an AQM mechanism exists at the bottleneck along the
path, and hence the CE-mark likely came from a bottleneck with a path. Therefore, the CE mark likely came from a bottleneck with a
controlled short queue. Reacting differently to an ECN-signalled controlled short queue. Reacting differently to an ECN-signalled
congestion than to an inferred packet loss can then yield the benefit congestion than to an inferred packet loss can then yield the benefit
of a reduced back-off when queues are short. Using ECN can also be of a reduced backoff when queues are short. Using ECN can also be
advantageous for several other reasons [RFC8087]. advantageous for several other reasons [RFC8087].
The idea of reacting differently to inferred packet loss and The idea of reacting differently to inferred packet loss and
detection of an ECN-signalled congestion pre-dates this detection of an ECN-signalled congestion predates this specification,
specification. For example, previous research proposed using ECN CE- e.g., previous research proposed using ECN CE-marked feedback to
marked feedback to modify TCP congestion control behaviour via a modify TCP congestion control behaviour via a larger multiplicative
larger multiplicative decrease factor in conjunction with a smaller decrease factor in conjunction with a smaller additive increase
additive increase factor [ICC2002]. The goal of this former work was factor [ICC2002]. The goal of this former work was to operate across
to operate across AQM bottlenecks using Random Early Detection (RED) AQM bottlenecks (using Random Early Detection (RED)) that were not
that were not necessarily configured to emulate a short queue (The necessarily configured to emulate a short queue. (The current usage
current usage of RED as an Internet AQM method is limited [RFC7567]). of RED as an Internet AQM method is limited [RFC7567].)
4.2. An RTT-based response to indicated congestion 4.2. An RTT-Based Response to Indicated Congestion
This specification applies to the use of ECN feedback as defined in This specification applies to the use of ECN feedback as defined in
[RFC3168], which specifies a response to indicated congestion that is [RFC3168], which specifies a response to indicated congestion that is
no more frequent that once per path round trip time. Since ABE no more frequent than once per path round-trip time. Since ABE
responds to indicated congestion once per RTT, it therefore does not responds to indicated congestion once per RTT, it does not respond to
respond to any further loss within the same RTT, because an ABE any further loss within the same RTT because an ABE sender has
sender has already reduced the congestion window. If congestion already reduced the congestion window. If congestion persists after
persists after such reduction, ABE continues to reduce the congestion such reduction, ABE continues to reduce the congestion window in each
window in each consecutive RTT. This consecutive reduction can consecutive RTT. This consecutive reduction can protect the network
protect the network against long-standing unfairness in the case of against long-standing unfairness in the case of AQM algorithms that
AQM algorithms that do not keep a small average queue length. The do not keep a small average queue length. The mechanism does not
mechanism does not rely on Accurate ECN rely on Accurate ECN [ACC-ECN-FEEDBACK].
([I-D.ietf-tcpm-accurate-ecn]).
In contrast, transport protocol mechanisms can also be designed to In contrast, transport protocol mechanisms can also be designed to
utilise more frequent and detailed ECN feedback (e.g., Accurate ECN utilise more frequent and detailed ECN feedback (e.g., Accurate ECN
[I-D.ietf-tcpm-accurate-ecn]), which then permit a congestion control [ACC-ECN-FEEDBACK]), which then permit a congestion control response
response that adjusts the sending rate more frequently. Datacenter that adjusts the sending rate more frequently. Data Center TCP
TCP (DCTCP) [RFC8257] is an example of this approach. (DCTCP) [RFC8257] is an example of this approach.
5. ABE Deployment Requirements 5. ABE Deployment Requirements
This update is a sender-side only change. Like other changes to This update is a sender-side-only change. Like other changes to
congestion control algorithms, it does not require any change to the congestion control algorithms, it does not require any change to the
TCP receiver or to network devices. It does not require any ABE- TCP receiver or to network devices. It does not require any ABE-
specific changes in routers or the use of Accurate ECN feedback specific changes in routers or the use of Accurate ECN feedback
[I-D.ietf-tcpm-accurate-ecn] by a receiver. [ACC-ECN-FEEDBACK] by a receiver.
If the method is only deployed by some senders, and not by others, 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 senders using it can gain some advantage, possibly at the expense
the expense of other flows that do not use this updated method. of other flows that do not use this updated method. Because this
Because this advantage applies only to ECN-marked packets and not to advantage applies only to ECN-marked packets and not to packet-loss
packet loss indications, an ECN-Capable bottleneck will still fall indications, an ECN-Capable bottleneck will still fall back to
back to dropping packets if an TCP sender using ABE is too dropping packets if a TCP sender using ABE is too aggressive. The
aggressive, and the result is no different than if the TCP sender was result is no different than if the TCP sender were using traditional
using traditional loss-based congestion control. loss-based congestion control.
When used with bottlenecks that do not support ECN-marking the When used with bottlenecks that do not support ECN marking, the
specification does not modify the transport protocol. specification does not modify the transport protocol.
6. ABE Experiment Goals 6. ABE Experiment Goals
[RFC3168] states that the congestion control response following an [RFC3168] states that the congestion control response following an
indication of ECN-signalled congestion is the same as the response to indication of ECN-signalled congestion is the same as the response to
a dropped packet. [RFC8311] updates this specification to allow a dropped packet. [RFC8311] updates this specification to allow
systems to provide a different behaviour when they experience ECN- systems to provide a different behaviour when they experience ECN-
signalled congestion rather than packet loss. The present signalled congestion rather than packet loss. The present
specification defines such an experiment and has thus been assigned specification defines such an experiment and is an Experimental RFC.
an Experimental status before being proposed as a Standards-Track We expect to propose it as a Standards-Track document in the future.
update.
The purpose of the Internet experiment is to collect experience with The purpose of the Internet experiment is to collect experience with
deployment of ABE, and confirm acceptable safety in deployed networks the deployment of ABE and confirm acceptable safety in deployed
that use this update to TCP congestion control. To evaluate ABE, networks that use this update to TCP congestion control. To evaluate
this experiment therefore requires support in AQM routers for ECN- ABE, this experiment requires support in AQM routers for the ECN-
marking of packets carrying the ECN-Capable Transport, ECT(0), marking of packets carrying the ECN-Capable Transport codepoint
codepoint [RFC3168]. ECT(0) [RFC3168].
The result of this Internet experiment ought to include an The result of this Internet experiment ought to include an
investigation of the implications of experiencing an ECN-CE mark investigation of the implications of experiencing an ECN-CE mark
followed by loss within the same RTT. At the end of the experiment, followed by loss within the same RTT. At the end of the experiment,
this will be reported to the TCPM WG or the IESG. this will be reported to the TCPM Working Group or the IESG.
7. Acknowledgements
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.
Author G. Armitage performed most of his work on this document while
employed by Swinburne University of Technology, Melbourne, Australia.
The authors would like to thank Stuart Cheshire for many suggestions
when revising the draft, and the following people for their
contributions to [ABE2017]: Chamil Kulatunga, David Ros, Stein
Gjessing, Sebastian Zander. Thanks also to (in alphabetical order)
Roland Bless, Bob Briscoe, David Black, Markku Kojo, John Leslie,
Lawrence Stewart, Dave Taht and the TCPM Working Group for providing
valuable feedback on this document.
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).
8. IANA Considerations
XX RFC ED - PLEASE REMOVE THIS SECTION XXX
This document includes no request to IANA. ABE is implemented as a patch for Linux and FreeBSD. This is meant
for research and experimentation and is available for download at
<https://heim.ifi.uio.no/michawe/research/abe/>. This code was used
to produce the test results that are reported in [ABE2017]. The
FreeBSD code was committed to the mainline kernel on March 19, 2018
[ABE-REVISION].
9. Implementation Status 7. IANA Considerations
ABE is implemented as a patch for Linux and FreeBSD. This is meant This document has no IANA actions.
for research and available for download from
http://heim.ifi.uio.no/michawe/research/abe/. This code was used to
produce the test results that are reported in [ABE2017]. The FreeBSD
code has been committed to the mainline kernel on March 19, 2018
[ABE-FreeBSD].
10. Security Considerations 8. Security Considerations
The described method is a sender-side only transport change, and does The described method is a sender-side-only transport change, and it
not change the protocol messages exchanged. The security does not change the protocol messages exchanged. Therefore, the
considerations for ECN [RFC3168] therefore still apply. security considerations for ECN [RFC3168] still apply.
This is a change to TCP congestion control with ECN that will This is a change to TCP congestion control with ECN that will
typically lead to a change in the capacity achieved when flows share typically lead to a change in the capacity achieved when flows share
a network bottleneck. This could result in some flows receiving more a network bottleneck. This could result in some flows receiving more
than their fair share of capacity. Similar unfairness in the way than their fair share of capacity. Similar unfairness in the way
that capacity is shared is also exhibited by other congestion control that capacity is shared is also exhibited by other congestion control
mechanisms that have been in use in the Internet for many years mechanisms that have been in use in the Internet for many years
(e.g., CUBIC [RFC8312]). Unfairness may also be a result of other (e.g., CUBIC [RFC8312]). Unfairness may also be a result of other
factors, including the round trip time experienced by a flow. ABE factors, including the round-trip time experienced by a flow. ABE
applies only when ECN-marked packets are received, not when packets applies only when ECN-marked packets are received, not when packets
are lost, hence use of ABE cannot lead to congestion collapse. are lost. Therefore, use of ABE cannot lead to congestion collapse.
11. Revision Information
XX RFC ED - PLEASE REMOVE THIS SECTION XXX
-12. Corrections from Adam Roach; Benjamin Kaduk; & Ben Campbell
-10. Incorported changes following the Gen-ART review by Russ
Housley. Correction to URL.
-09. Changed to "Following publication of RFC 8311, this document
specifies a sender-side change to TCP:"
-08. Addressed comments from AD review on the document structure,
and relationship to existing RFCs.
-07. Addressed comments following WGLC.
o Updated Reference citations.
o Removed paragraph containing a wrong statement related to timeout
in section 4.1.
o Discuss what happens when cwnd <= ssthresh.
o Added text on Concern about lower bound of 2*SMSS.
-06. Addressed Michael Scharf's comments.
-05. Refined the description of the experiment based on feedback at
IETF-100. Incorporated comments from David Black.
-04. Incorporates review comments from Lawrence Stewart and the
remaining comments from Roland Bless. References are updated.
-03. Several review comments from Roland Bless are addressed.
Consistent terminology and equations. Clarification on the scope of
recommended beta_{ecn} value.
-02. Corrected the equations in Section 3.1. Updated the
affiliations. Lower bound for cwnd is defined. A recommendation for
window-based transport protocols is changed to cover all transport
protocols that implement a congestion control reduction to an ECN
congestion signal. Added text about ABE's FreeBSD mainline kernel
status including a reference to the FreeBSD code review page.
References are updated.
-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 [ABE2017]. 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.
-00. draft-ietf-tcpm-alternativebackoff-ecn-00 replaces draft-
khademi-tcpm-alternativebackoff-ecn-01. Text describing the nature
of the experiment was added.
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 RFC 3168 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.
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.
12. References 9. References
12.1. Normative References 9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP", of Explicit Congestion Notification (ECN) to IP",
RFC 3168, DOI 10.17487/RFC3168, September 2001, RFC 3168, DOI 10.17487/RFC3168, September 2001,
<https://www.rfc-editor.org/info/rfc3168>. <https://www.rfc-editor.org/info/rfc3168>.
skipping to change at page 11, line 47 skipping to change at page 9, line 46
[RFC8257] Bensley, S., Thaler, D., Balasubramanian, P., Eggert, L., [RFC8257] Bensley, S., Thaler, D., Balasubramanian, P., Eggert, L.,
and G. Judd, "Data Center TCP (DCTCP): TCP Congestion and G. Judd, "Data Center TCP (DCTCP): TCP Congestion
Control for Data Centers", RFC 8257, DOI 10.17487/RFC8257, Control for Data Centers", RFC 8257, DOI 10.17487/RFC8257,
October 2017, <https://www.rfc-editor.org/info/rfc8257>. October 2017, <https://www.rfc-editor.org/info/rfc8257>.
[RFC8311] Black, D., "Relaxing Restrictions on Explicit Congestion [RFC8311] Black, D., "Relaxing Restrictions on Explicit Congestion
Notification (ECN) Experimentation", RFC 8311, Notification (ECN) Experimentation", RFC 8311,
DOI 10.17487/RFC8311, January 2018, DOI 10.17487/RFC8311, January 2018,
<https://www.rfc-editor.org/info/rfc8311>. <https://www.rfc-editor.org/info/rfc8311>.
12.2. Informative References 9.2. Informative References
[ABE-FreeBSD] [ABE-REVISION]
"ABE patch review in FreeBSD", Stewart, L., "ABE patch review in FreeBSD",
<https://svnweb.freebsd.org/ Revision 331214, March 2018, <https://svnweb.freebsd.org/
base?view=revision&revision=331214>. base?view=revision&revision=331214>.
[ABE2017] Khademi, N., Armitage, G., Welzl, M., Fairhurst, G., [ABE2017] Khademi, N., Armitage, G., Welzl, M., Zander, S.,
Zander, S., and D. Ros, "Alternative Backoff: Achieving Fairhurst, G., and D. Ros, "Alternative backoff: Achieving
Low Latency and High Throughput with ECN and AQM", IFIP low latency and high throughput with ECN and AQM", IFIP
NETWORKING 2017, Stockholm, Sweden, June 2017. Networking Conference and Workshops Stockholm, Sweden,
DOI 10.23919/IFIPNetworking.2017.8264863, June 2017.
[ACC-ECN-FEEDBACK]
Briscoe, B., Kuehlewind, M., and R. Scheffenegger, "More
Accurate ECN Feedback in TCP", Work in Progress,
draft-ietf-tcpm-accurate-ecn-07, July 2018.
[BUFFERBLOAT] [BUFFERBLOAT]
Gettys, J. and K. Nichols, "Bufferbloat: Dark Buffers in Gettys, J. and K. Nichols, "Bufferbloat: Dark Buffers in
the Internet", ACM Queue 9, 11, DOI the Internet", ACM Queue, Volume 9, Issue 11,
10.1145/2063166.2071893; DOI 10.1145/2063166.2071893, November 2011,
https://queue.acm.org/detail.cfm?id=2071893", November <https://queue.acm.org/detail.cfm?id=2071893>.
2011.
[CODEL2012]
Nichols, K. and V. Jacobson, "Controlling Queue Delay",
July 2012, <http://queue.acm.org/detail.cfm?id=2209336>.
[I-D.ietf-tcpm-accurate-ecn]
Briscoe, B., Kuehlewind, M., and R. Scheffenegger, "More
Accurate ECN Feedback in TCP", draft-ietf-tcpm-accurate-
ecn-06 (work in progress), March 2018.
[ICC2002] Kwon, M. and S. Fahmy, "TCP Increase/Decrease Behavior [ICC2002] Kwon, M. and S. Fahmy, "TCP increase/decrease behavior
with Explicit Congestion Notification (ECN)", IEEE with explicit congestion notification (ECN)", 2002 IEEE
ICC 2002, New York, New York, USA, May 2002, International Conference on Communications Conference
Proceedings, ICC 2002, Cat. No.02CH37333,
DOI 10.1109/ICC.2002.997262, May 2002,
<http://dx.doi.org/10.1109/ICC.2002.997262>. <http://dx.doi.org/10.1109/ICC.2002.997262>.
[RFC8033] Pan, R., Natarajan, P., Baker, F., and G. White, [RFC8033] Pan, R., Natarajan, P., Baker, F., and G. White,
"Proportional Integral Controller Enhanced (PIE): A "Proportional Integral Controller Enhanced (PIE): A
Lightweight Control Scheme to Address the Bufferbloat Lightweight Control Scheme to Address the Bufferbloat
Problem", RFC 8033, DOI 10.17487/RFC8033, February 2017, Problem", RFC 8033, DOI 10.17487/RFC8033, February 2017,
<https://www.rfc-editor.org/info/rfc8033>. <https://www.rfc-editor.org/info/rfc8033>.
[RFC8087] Fairhurst, G. and M. Welzl, "The Benefits of Using [RFC8087] Fairhurst, G. and M. Welzl, "The Benefits of Using
Explicit Congestion Notification (ECN)", RFC 8087, Explicit Congestion Notification (ECN)", RFC 8087,
skipping to change at page 13, line 5 skipping to change at page 11, line 5
[RFC8289] Nichols, K., Jacobson, V., McGregor, A., Ed., and J. [RFC8289] Nichols, K., Jacobson, V., McGregor, A., Ed., and J.
Iyengar, Ed., "Controlled Delay Active Queue Management", Iyengar, Ed., "Controlled Delay Active Queue Management",
RFC 8289, DOI 10.17487/RFC8289, January 2018, RFC 8289, DOI 10.17487/RFC8289, January 2018,
<https://www.rfc-editor.org/info/rfc8289>. <https://www.rfc-editor.org/info/rfc8289>.
[RFC8312] Rhee, I., Xu, L., Ha, S., Zimmermann, A., Eggert, L., and [RFC8312] Rhee, I., Xu, L., Ha, S., Zimmermann, A., Eggert, L., and
R. Scheffenegger, "CUBIC for Fast Long-Distance Networks", R. Scheffenegger, "CUBIC for Fast Long-Distance Networks",
RFC 8312, DOI 10.17487/RFC8312, February 2018, RFC 8312, DOI 10.17487/RFC8312, February 2018,
<https://www.rfc-editor.org/info/rfc8312>. <https://www.rfc-editor.org/info/rfc8312>.
Acknowledgements
Authors N. Khademi, M. Welzl, and G. Fairhurst were partly 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.
Author G. Armitage performed most of his work on this document while
employed by Swinburne University of Technology, Melbourne, Australia.
The authors would like to thank Stuart Cheshire for many suggestions
when revising this document. They would also like to thank the
following people for their contributions to [ABE2017]: Chamil
Kulatunga, David Ros, Stein Gjessing, and Sebastian Zander. Thanks
also to (in alphabetical order) David Black, Roland Bless, Bob
Briscoe, Markku Kojo, John Leslie, Lawrence Stewart, and the TCPM
Working Group for providing valuable feedback on this document.
Finally, the authors would like to thank everyone who provided
feedback on the congestion control behaviour specified in this
document that was received from the IRTF Internet Congestion Control
Research Group (ICCRG).
Authors' Addresses Authors' Addresses
Naeem Khademi Naeem Khademi
University of Oslo University of Oslo
PO Box 1080 Blindern PO Box 1080 Blindern
Oslo N-0316 Oslo N-0316
Norway Norway
Email: naeemk@ifi.uio.no Email: naeemk@ifi.uio.no
skipping to change at page 13, line 32 skipping to change at page 12, line 32
Grenville Armitage Grenville Armitage
Netflix Inc. Netflix Inc.
Email: garmitage@netflix.com Email: garmitage@netflix.com
Godred Fairhurst Godred Fairhurst
University of Aberdeen University of Aberdeen
School of Engineering, Fraser Noble Building School of Engineering, Fraser Noble Building
Aberdeen AB24 3UE Aberdeen AB24 3UE
UK United Kingdom
Email: gorry@erg.abdn.ac.uk Email: gorry@erg.abdn.ac.uk
 End of changes. 63 change blocks. 
289 lines changed or deleted 209 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/