draft-ietf-tcpm-alternativebackoff-ecn-03.txt | draft-ietf-tcpm-alternativebackoff-ecn-04.txt | |||
---|---|---|---|---|
Network Working Group N. Khademi | Network Working Group N. Khademi | |||
Internet-Draft M. Welzl | Internet-Draft M. Welzl | |||
Intended status: Experimental University of Oslo | Intended status: Experimental University of Oslo | |||
Expires: May 3, 2018 G. Armitage | Expires: May 19, 2018 G. Armitage | |||
Swinburne University of Technology | Swinburne University of Technology | |||
G. Fairhurst | G. Fairhurst | |||
University of Aberdeen | University of Aberdeen | |||
October 30, 2017 | November 15, 2017 | |||
TCP Alternative Backoff with ECN (ABE) | TCP Alternative Backoff with ECN (ABE) | |||
draft-ietf-tcpm-alternativebackoff-ecn-03 | draft-ietf-tcpm-alternativebackoff-ecn-04 | |||
Abstract | Abstract | |||
Recent Active Queue Management (AQM) mechanisms allow for burst | Recent Active Queue Management (AQM) mechanisms allow for burst | |||
tolerance while enforcing short queues to minimise the time that | tolerance while enforcing short queues to minimise the time that | |||
packets spend enqueued at a bottleneck. This can cause noticeable | packets spend enqueued at a bottleneck. This can cause noticeable | |||
performance degradation for TCP connections traversing such a | performance degradation for TCP connections traversing such a | |||
bottleneck, especially if they are only a few or their bandwidth- | bottleneck, especially if they are only a few or their bandwidth- | |||
delay-product is large. An Explicit Congestion Notification (ECN) | delay-product is large. An Explicit Congestion Notification (ECN) | |||
signal indicates that an AQM mechanism is used at the bottleneck, and | signal indicates that an AQM mechanism is used at the bottleneck, and | |||
therefore the bottleneck network queue is likely to be short. This | therefore the bottleneck network queue is likely to be short. This | |||
document therefore proposes an update to the TCP sender-side ECN | document therefore proposes an update to the TCP sender-side ECN | |||
reaction in congestion avoidance to reduce the Congestion Window | reaction in congestion avoidance to reduce the Congestion Window | |||
(cwnd) by a smaller amount than the congestion control algorithm's | (cwnd) by a smaller amount than the congestion control algorithm's | |||
reaction to loss. | reaction to inferred packet loss. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 3, 2018. | This Internet-Draft will expire on May 19, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
skipping to change at page 2, line 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
3. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4.1. Why Use ECN to Vary the Degree of Backoff? . . . . . . . 4 | 4.1. Why Use ECN to Vary the Degree of Backoff? . . . . . . . 4 | |||
4.2. Focus on ECN as Defined in RFC3168 . . . . . . . . . . . 5 | 4.2. Focus on ECN as Defined in RFC3168 . . . . . . . . . . . 5 | |||
4.3. Choice of ABE Multiplier . . . . . . . . . . . . . . . . 6 | 4.3. Choice of ABE Multiplier . . . . . . . . . . . . . . . . 5 | |||
5. ABE Requirements . . . . . . . . . . . . . . . . . . . . . . 7 | 5. ABE Requirements . . . . . . . . . . . . . . . . . . . . . . 7 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
10. Revision Information . . . . . . . . . . . . . . . . . . . . 9 | 10. Revision Information . . . . . . . . . . . . . . . . . . . . 9 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 10 | 11.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
1. Definitions | 1. Definitions | |||
skipping to change at page 3, line 12 ¶ | skipping to change at page 3, line 12 ¶ | |||
network deliver some packets to an application that would have been | network deliver some packets to an application that would have been | |||
dropped if the application or transport did not support ECN. This | dropped if the application or transport did not support ECN. This | |||
packet loss reduction is the most obvious benefit of ECN, but it is | packet loss reduction is the most obvious benefit of ECN, but it is | |||
often relatively modest. There are also significant other benefits | often relatively modest. There are also significant other benefits | |||
from deploying ECN [RFC8087], including reduced end-to-end network | from deploying ECN [RFC8087], including reduced end-to-end network | |||
latency. | latency. | |||
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 required the congestion control algorithms of ECN-capable | |||
transport protocols to treat ECN congestion signals exactly the same | transport protocols to treat ECN congestion signals exactly the same | |||
as they would treat a packet loss [RFC3168]. | as they would treat an inferred packet loss [RFC3168]. | |||
Research has demonstrated the benefits of reducing network delays | Research has demonstrated the benefits of reducing network delays | |||
that are caused by interaction of loss-based TCP congestion control | that are caused by interaction of loss-based TCP congestion control | |||
and excessive buffering [BUFFERBLOAT]. There are two main approaches | and excessive buffering [BUFFERBLOAT]. This has led to the creation | |||
to reduce such delay: (1) to use a congestion control mechanism that | of new AQM mechanisms like PIE [RFC8033] and CoDel | |||
reacts to the changes in end-to-end delay (i.e. delay-based) instead | [CODEL2012][I-D.CoDel], which prevent bloated queues that are common | |||
of or in addition to loss or ECN signal (2) or to use AQM mechanisms | with unmanaged and excessively large buffers deployed across the | |||
like PIE [RFC8033] and CoDel [CODEL2012] [I-D.CoDel], which avoid | Internet [BUFFERBLOAT]. | |||
causing bloated queues that are common with a simple tail-drop | ||||
behaviour (also known as a First-In First-Out, FIFO, queue). The | ||||
delay-based approach suffers from poor performance when competing | ||||
with flows using loss-based TCP congestion control mechanisms and is | ||||
out of scope of this document. | ||||
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 | However, currently used loss-based congestion control mechanisms | |||
cannot always utilise a bottleneck link well where there are short | cannot always utilise a bottleneck link well where there are short | |||
queues. For example, to allow a single TCP connection to fully | queues. For example, a TCP sender must be able to store at least an | |||
utilise a network path, the queue at the bottleneck link must be able | end-to-end bandwidth-delay product (BDP) worth of data at the | |||
to compensate for TCP reducing the "cwnd" and "ssthresh" variables in | bottleneck buffer if it is to maintain full path utilisation in the | |||
response to a lost packet [RFC5681]. This requires the bottleneck | face of loss-induced reduction of cwnd [RFC5681], which effectively | |||
buffer to be able to store at least an end-to-end bandwidth-delay | doubles the amount of data that can be in flight, the maximum round- | |||
product (BDP) of data, which effectively doubles both the amount of | trip time (RTT) experience, and the path's effective RTT using the | |||
data that can be in flight and the maximum round-trip time (RTT) | network path. | |||
experience using the network path. | ||||
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 an early-warning signal of congestion is | measured response when an early-warning signal of congestion is | |||
received in the form of an ECN CE-marked packet. Recognizing these | received in the form of an ECN CE-marked packet. Recognizing these | |||
changes in modern AQM practices, more recent rules have relaxed the | changes in modern AQM practices, more recent rules have relaxed the | |||
strict requirement that ECN signals be treated identically to packet | strict requirement that ECN signals be treated identically to | |||
loss [I-D.ECN-exp]. Following these newer, more flexible rules, this | inferred packet loss [I-D.ECN-exp]. Following these newer, more | |||
document defines a new sender-side-only congestion control response, | flexible rules, this document defines a new sender-side-only | |||
called "ABE" (Alternative Backoff with ECN). ABE improves the | congestion control response, called "ABE" (Alternative Backoff with | |||
performance when routers use AQM controlled buffers that allow for | ECN). ABE improves TCP's average throughput when routers use AQM | |||
short queues only. | controlled buffers that allow for short queues only. | |||
3. Specification | 3. Specification | |||
This specification describes an update to the congestion control | This specification describes an update to the congestion control | |||
algorithm of an ECN-capable TCP transport protocol. It allows a TCP | algorithm of an ECN-capable TCP transport protocol. It allows a TCP | |||
stack to update the TCP sender response when it receives feedback | stack to update the TCP sender response when it receives feedback | |||
indicating reception of a CE-marked packet. It RECOMMENDS that a TCP | indicating reception of a CE-marked packet (ECN-signalled congestion | |||
hereafter) per Equation 4 of [RFC5681]. It RECOMMENDS that a TCP | ||||
sender multiplies the slow start threshold (ssthresh) by 0.8 times of | sender multiplies the slow start threshold (ssthresh) by 0.8 times of | |||
the FlightSize (with its minimum value set to 2 * SMSS) and reduces | the FlightSize (with its minimum value set to 2 * SMSS) and reduces | |||
the cwnd in congestion avoidance following reception of a TCP segment | the cwnd in congestion avoidance following reception of a TCP segment | |||
that sets the ECN-Echo flag (defined in [RFC3168]). While this | that sets the ECN-Echo flag (defined in [RFC3168]). While this | |||
specification concerns TCP, other transports also support a per-RTT | specification concerns TCP, other transports also support a per-RTT | |||
response to ECN. The method defined in this document is also | response to ECN. The method defined in this document is also | |||
applicable for such transports. | applicable for such transports. | |||
4. Discussion | 4. Discussion | |||
Much of the technical background to this congestion control response | Much of the technical background to ABE can be found in a research | |||
can be found in a research paper [ABE2017]. This paper used a mix of | paper [ABE2017]. This paper used a mix of experiments, theory and | |||
experiments, theory and simulations with standard NewReno and CUBIC | simulations with standard NewReno and CUBIC to evaluate the | |||
to evaluate the technique. It examined the impact of enabling ECN | technique. The technique was shown to present "...significant | |||
and letting individual TCP senders back off by a reduced amount in | performance gains in lightly-multiplexed [few concurrent flows] | |||
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 [few concurrent connections] | ||||
scenarios, without losing the delay-reduction benefits of deploying | scenarios, without losing the delay-reduction benefits of deploying | |||
CoDel or PIE". The performance improvement is achieved when reacting | CoDel or PIE". The performance improvement is achieved when reacting | |||
to ECN-Echo in congestion avoidance by multiplying cwnd and ssthresh | to ECN-Echo in congestion avoidance by multiplying cwnd and ssthresh | |||
with a value in the range [0.7..0.85]. | with a value in the range [0.7,0.85]. | |||
4.1. Why Use ECN to Vary the Degree of Backoff? | 4.1. Why Use ECN to Vary the Degree of Backoff? | |||
The classic rule-of-thumb dictates that a network path needs to | The classic rule-of-thumb dictates that a network path needs to | |||
provide a BDP of bottleneck buffering if a TCP connection wishes to | provide a BDP of bottleneck buffering if a TCP connection wishes to | |||
optimise path utilisation. A single TCP bulk transfer running | optimise path utilisation. A single TCP bulk transfer running | |||
through such a bottleneck will have increased its congestion window | through such a bottleneck will have increased its congestion window | |||
(cwnd) up to 2*BDP by the time that packet loss occurs. When packet | (cwnd) up to 2*BDP by the time that packet loss occurs. When packet | |||
loss is detected using the retransmission timer and the given packet | loss is inferred using the retransmission timer and the given packet | |||
has not yet been resent by way of the retransmission timer (regarded | has not yet been resent by way of the retransmission timer (regarded | |||
as a notification of congestion), Standard TCP sets the ssthresh to | as a notification of congestion), Standard TCP sets the ssthresh to | |||
the maximum of half of the FlightSize and 2*SMSS [RFC5681], which | the maximum of half of the FlightSize and 2*SMSS [RFC5681], which | |||
causes the TCP congestion control to go back to allowing only a BDP | causes the TCP congestion control to go back to allowing only a BDP | |||
of packets in flight -- just sufficient to maintain 100% utilisation | of packets in flight -- just sufficient to maintain 100% utilisation | |||
of the bottleneck on the network path. | of the bottleneck on the network path. | |||
AQM mechanisms such as CoDel [I-D.CoDel] and PIE [RFC8033] set a | AQM mechanisms such as CoDel [I-D.CoDel] and PIE [RFC8033] set a | |||
delay target in routers and use congestion notifications to constrain | delay target in routers and use congestion notifications to constrain | |||
the queuing delays experienced by packets, rather than in response to | the 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, [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 | |||
connections). However, in a lightly-multiplexed case over a path | flows). However, in a lightly-multiplexed case over a path with a | |||
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 under-utilisation 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 a CE-mark | |||
not only indicates congestion on the network path, it also indicates | feedback not only indicates congestion on the network path, it also | |||
that an AQM mechanism exists at the bottleneck along the path, and | indicates that an AQM mechanism exists at the bottleneck along the | |||
hence the CE-mark likely came from a bottleneck with a controlled | path, and hence the CE-mark likely came from a bottleneck with a | |||
short queue. Reacting differently to an ECN CE-mark than to packet | controlled short queue. Reacting differently to an ECN-signalled | |||
loss can then yield the benefit of a reduced back-off, as with CUBIC | congestion than to an inferred packet loss can then yield the benefit | |||
[I-D.CUBIC], when queues are short, yet it can avoid generating | of a reduced back-off when queues are short. Using ECN can also be | |||
excessive delay when queues are long. Using ECN can also be | ||||
advantageous for several other reasons [RFC8087]. | advantageous for several other reasons [RFC8087]. | |||
The idea of reacting differently to loss and detection of an ECN CE- | The idea of reacting differently to inferred packet loss and | |||
mark pre-dates this document. For example, previous research | detection of an ECN-signalled congestion pre-dates this document. | |||
proposed using ECN CE-marks to modify TCP congestion control | For example, previous research proposed using ECN CE-marked feedback | |||
behaviour via a larger multiplicative decrease factor in conjunction | to modify TCP congestion control behaviour via a larger | |||
with a smaller additive increase factor [ICC2002]. The goal of this | multiplicative decrease factor in conjunction with a smaller additive | |||
former work was to operate across AQM bottlenecks using Random Early | increase factor [ICC2002]. The goal of this former work was to | |||
Detection (RED) that were not necessarily configured to emulate a | operate across AQM bottlenecks using Random Early Detection (RED) | |||
short queue ([RFC7567] notes the current status of RED as an AQM | that were not necessarily configured to emulate a short queue | |||
method.) | ([RFC7567] notes the current status of RED as an AQM method.) | |||
4.2. Focus on ECN as Defined in RFC3168 | 4.2. Focus on ECN as Defined in RFC3168 | |||
Some transport protocol mechanisms rely on ECN semantics that differ | Some transport protocol mechanisms rely on ECN semantics that differ | |||
from the original ECN definition [RFC3168] -- for example, Congestion | from the original ECN definition [RFC3168] -- for example, Congestion | |||
Exposure (ConEx) [RFC7713] and Datacenter TCP (DCTCP) | Exposure (ConEx) [RFC7713] and Datacenter TCP (DCTCP) | |||
[I-D.ietf-tcpm-dctcp] need more accurate ECN information than that | [I-D.ietf-tcpm-dctcp] need more accurate ECN information than that | |||
offered by the original feedback method. Other mechanisms (e.g., | offered by the original feedback method. Other mechanisms (e.g., | |||
[I-D.ietf-tcpm-accurate-ecn]) allow the sender to adjust the rate | [I-D.ietf-tcpm-accurate-ecn]) allow the sender to adjust the rate | |||
more frequently than once each path RTT. Use of these mechanisms is | more frequently than once each path RTT. Use of these mechanisms is | |||
out of the scope of the current document. | out of scope for this document. | |||
4.3. Choice of ABE Multiplier | 4.3. Choice of ABE Multiplier | |||
ABE decouples the reaction of a TCP sender to loss and ECN CE-marks | ABE decouples the reaction of a TCP sender to inferred packet loss | |||
when in the congestion avoidance phase by differentiating the scaling | and ECN-signalled congestion when in the congestion avoidance phase | |||
factor used in Equation 4 in Section 3.1 of [RFC5681]. The | by differentiating the scaling factor used in Equation 4 in | |||
description respectively uses beta_{loss} and beta_{ecn} to refer to | Section 3.1 of [RFC5681]. The description respectively uses | |||
the multiplicative decrease factors applied in response to packet | beta_{loss} and beta_{ecn} to refer to the multiplicative decrease | |||
loss, and in response to a receiver indicating that an ECN CE-mark | factors applied in response to inferred packet loss, and in response | |||
was received on an ECN-enabled TCP connection. For non-ECN-enabled | to a receiver indicating ECN-signalled congestion. For non-ECN- | |||
TCP connections, no ECN CE-marks are received and only beta_{loss} | enabled TCP connections, only beta_{loss} applies. | |||
applies. | ||||
In other words, in response to detected 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 a received ECN CE-mark: | 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 | |||
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 sender's cwnd and the receiver's advertised | upper-bounded by the smaller of the sender's cwnd and the receiver's | |||
window (rwnd) [RFC5681]. The higher the values of beta_{loss} and | advertised window (rwnd) [RFC5681]. The higher the values of | |||
beta_{ecn}, the less aggressive the response of any individual | beta_{loss} and beta_{ecn}, the less aggressive the response of any | |||
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 underutilising | |||
the path, while less aggressive backoff (larger beta_*) can result in | the path, while less aggressive backoff (larger beta_*) can result in | |||
slower draining of the bottleneck queue. | 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 [I-D.CUBIC] has used | [RFC5681], and the Linux implementation of CUBIC [I-D.CUBIC] has used | |||
skipping to change at page 7, line 24 ¶ | skipping to change at page 7, line 13 ¶ | |||
0.7 to 0.85 (cf. beta_{loss} = 0.5). | 0.7 to 0.85 (cf. beta_{loss} = 0.5). | |||
5. ABE Requirements | 5. ABE 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. | [I-D.ietf-tcpm-accurate-ecn] by a receiver. | |||
The currently published ECN specification requires that the | RFC 3168 states that the congestion control response to an ECN- | |||
congestion control response to a CE-marked packet is the same as the | signalled congestion is the same as the response to a dropped packet | |||
response to a dropped packet [RFC3168]. The specification is | [RFC3168]. [I-D.ECN-exp] updates this specification to allow systems | |||
currently being updated to allow for specifications that do not | to provide a different behaviour when they experience ECN-signalled | |||
follow this rule [I-D.ECN-exp]. The present specification defines | congestion rather than packet loss. The present specification | |||
such an experiment and has thus been assigned an Experimental status | defines such an experiment and has thus been assigned an Experimental | |||
before being proposed as a Standards-Track update. | status before being proposed as a Standards-Track 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 the safety in deployed networks using | deployment of ABE, and confirm the safety in deployed networks using | |||
this update to TCP congestion control. | this update to TCP 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. | |||
To evaluate the benefit, this experiment therefore requires support | To evaluate the benefit, this experiment therefore requires support | |||
in AQM routers (except to enable an ECN-marking mechanism [RFC3168] | in AQM routers (except to enable an ECN-marking mechanism [RFC3168] | |||
[RFC7567]) for ECN-marking of packets carrying the ECN Capable | [RFC7567]) for ECN-marking of packets carrying the ECN Capable | |||
Transport, ECT(0), codepoint [RFC3168]. | Transport, ECT(0), codepoint [RFC3168]. | |||
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 that use this method can gain some advantage, possibly at | |||
the expense of other flows that do not use this updated method. | the expense of other flows that do not use this updated method. | |||
Because this advantage applies only to ECN-marked packets and not to | Because this advantage applies only to ECN-marked packets and not to | |||
loss indications, the new method cannot lead to congestion collapse. | packet loss indications, in the worst-case (e.g., an ABE-compliant | |||
TCP sender using beta_{ecn} = 1.0) the ECN-capable bottleneck will | ||||
still fall back to dropping packets, and the result is no different | ||||
than if the TCP sender was using traditional loss-based congestion | ||||
control. | ||||
The result of this Internet experiment will be reported by | The result of this Internet experiment will be reported by | |||
presentation to the TCPM WG (or IESG) or an implementation report at | presentation to the TCPM WG (or IESG) or an implementation report at | |||
the end of the experiment. | the end of the experiment. | |||
6. Acknowledgements | 6. Acknowledgements | |||
Authors N. Khademi, M. Welzl and G. Fairhurst were part-funded by | Authors N. Khademi, M. Welzl and G. Fairhurst were part-funded by | |||
the European Community under its Seventh Framework Programme through | the European Community under its Seventh Framework Programme through | |||
the Reducing Internet Transport Latency (RITE) project (ICT-317700). | the Reducing Internet Transport Latency (RITE) project (ICT-317700). | |||
skipping to change at page 9, line 15 ¶ | skipping to change at page 9, line 9 ¶ | |||
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 [I-D.CUBIC]). Unfairness may also be a result of other | (e.g., CUBIC [I-D.CUBIC]). 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, hence use of ABE cannot lead to congestion collapse. | |||
10. Revision Information | 10. Revision Information | |||
XX RFC ED - PLEASE REMOVE THIS SECTION XXX | XX RFC ED - PLEASE REMOVE THIS SECTION XXX | |||
-04. Incorporates review comments from Larence Stewart and the | ||||
remaining comments from Roland Bless. References are updated. | ||||
-03. Several review comments from Roland Bless are addressed. | -03. Several review comments from Roland Bless are addressed. | |||
Consistent terminology and equations. Clarification on the scope of | Consistent terminology and equations. Clarification on the scope of | |||
recommended beta_{ecn} value. | recommended beta_{ecn} value. | |||
-02. Corrected the equations in Section 4.3. Updated the | -02. Corrected the equations in Section 4.3. Updated the | |||
affiliations. Lower bound for cwnd is defined. A recommendation for | affiliations. Lower bound for cwnd is defined. A recommendation for | |||
window-based transport protocols is changed to cover all transport | window-based transport protocols is changed to cover all transport | |||
protocols that implement a congestion control reduction to an ECN | protocols that implement a congestion control reduction to an ECN | |||
congestion signal. Added text about ABE's FreeBSD mainline kernel | congestion signal. Added text about ABE's FreeBSD mainline kernel | |||
status including a reference to the FreeBSD code review page. | status including a reference to the FreeBSD code review page. | |||
skipping to change at page 10, line 12 ¶ | skipping to change at page 10, line 12 ¶ | |||
alternativebackoff-ecn-03, following discussion in the TSVWG and TCPM | alternativebackoff-ecn-03, following discussion in the TSVWG and TCPM | |||
working groups. | working groups. | |||
11. References | 11. References | |||
11.1. Normative References | 11.1. Normative References | |||
[I-D.ECN-exp] | [I-D.ECN-exp] | |||
Black, D., "Explicit Congestion Notification (ECN) | Black, D., "Explicit Congestion Notification (ECN) | |||
Experimentation", Internet-draft, IETF work-in-progress | Experimentation", Internet-draft, IETF work-in-progress | |||
draft-ietf-tsvwg-ecn-experimentation-06, September 2017. | draft-ietf-tsvwg-ecn-experimentation-08, November 2017. | |||
[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 10, line 45 ¶ | skipping to change at page 10, line 45 ¶ | |||
[ABE-FreeBSD] | [ABE-FreeBSD] | |||
"ABE patch review in FreeBSD", | "ABE patch review in FreeBSD", | |||
<https://reviews.freebsd.org/D11616>. | <https://reviews.freebsd.org/D11616>. | |||
[ABE2017] Khademi, N., Armitage, G., Welzl, M., Fairhurst, G., | [ABE2017] Khademi, N., Armitage, G., Welzl, M., Fairhurst, G., | |||
Zander, S., and D. Ros, "Alternative Backoff: Achieving | Zander, S., 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 2017, Stockholm, Sweden, June 2017. | |||
[BUFFERBLOAT] | [BUFFERBLOAT] | |||
"Bufferbloat project", | Gettys, J. and K. Nichols, "Bufferbloat: Dark Buffers in | |||
<https://www.bufferbloat.net/projects/bloat/wiki/ | the Internet", November 2011. | |||
Introduction/>. | ||||
[CODEL2012] | [CODEL2012] | |||
Nichols, K. and V. Jacobson, "Controlling Queue Delay", | Nichols, K. and V. Jacobson, "Controlling Queue Delay", | |||
July 2012, <http://queue.acm.org/detail.cfm?id=2209336>. | July 2012, <http://queue.acm.org/detail.cfm?id=2209336>. | |||
[I-D.CoDel] | [I-D.CoDel] | |||
Nichols, K., Jacobson, V., McGregor, V., and J. Iyengar, | Nichols, K., Jacobson, V., McGregor, V., and J. Iyengar, | |||
"Controlled Delay Active Queue Management", Internet- | "Controlled Delay Active Queue Management", Internet- | |||
draft, IETF work-in-progress draft-ietf-aqm-codel-09, | draft, IETF work-in-progress draft-ietf-aqm-codel-10, | |||
September 2017. | October 2017. | |||
[I-D.CUBIC] | [I-D.CUBIC] | |||
Rhee, I., Xu, L., Ha, S., Zimmermann, A., Eggert, L., and | 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", | |||
Internet-draft, IETF work-in-progress draft-ietf-tcpm- | Internet-draft, IETF work-in-progress draft-ietf-tcpm- | |||
cubic-06, September 2017. | cubic-07, November 2017. | |||
[I-D.ietf-tcpm-accurate-ecn] | [I-D.ietf-tcpm-accurate-ecn] | |||
Briscoe, B., Kuehlewind, M., and R. Scheffenegger, "More | Briscoe, B., Kuehlewind, M., and R. Scheffenegger, "More | |||
Accurate ECN Feedback in TCP", draft-ietf-tcpm-accurate- | Accurate ECN Feedback in TCP", draft-ietf-tcpm-accurate- | |||
ecn-03 (work in progress), May 2017. | ecn-03 (work in progress), May 2017. | |||
[I-D.ietf-tcpm-dctcp] | [I-D.ietf-tcpm-dctcp] | |||
Bensley, S., Thaler, D., Balasubramanian, P., Eggert, L., | Bensley, S., Thaler, D., Balasubramanian, P., Eggert, L., | |||
and G. Judd, "Datacenter TCP (DCTCP): TCP Congestion | and G. Judd, "Datacenter TCP (DCTCP): TCP Congestion | |||
Control for Datacenters", draft-ietf-tcpm-dctcp-10 (work | Control for Datacenters", draft-ietf-tcpm-dctcp-10 (work | |||
End of changes. 30 change blocks. | ||||
92 lines changed or deleted | 88 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |