Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation
Loosening the rules on Explicit Congestion Notification so it can be experimented with.
Black, D., "Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation", RFC 8311, DOI 10.17487/RFC8311, January 2018, <https://www.rfc-editor.org/info/rfc8311>.
@misc{rfc8311,
series = {Request for Comments},
number = 8311,
howpublished = {RFC 8311},
publisher = {RFC Editor},
doi = {10.17487/RFC8311},
url = {https://www.rfc-editor.org/info/rfc8311},
author = {D. Black},
title = {{Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation}},
pagetotal = 20,
year = 2018,
month = jan,
} RFC text
Contents
Internet Engineering Task Force (IETF) D. Black
Request for Comments: 8311 Dell EMC
Updates: 3168, 4341, 4342, 5622, 6679 January 2018
Category: Standards Track
ISSN: 2070-1721
Relaxing Restrictions on
Explicit Congestion Notification (ECN) Experimentation
Abstract
This memo updates RFC 3168, which specifies Explicit Congestion
Notification (ECN) as an alternative to packet drops for indicating
network congestion to endpoints. It relaxes restrictions in RFC 3168
that hinder experimentation towards benefits beyond just removal of
loss. This memo summarizes the anticipated areas of experimentation
and updates RFC 3168 to enable experimentation in these areas. An
Experimental RFC in the IETF document stream is required to take
advantage of any of these enabling updates. In addition, this memo
makes related updates to the ECN specifications for RTP in RFC 6679
and for the Datagram Congestion Control Protocol (DCCP) in RFCs 4341,
4342, and 5622. This memo also records the conclusion of the ECN
nonce experiment in RFC 3540 and provides the rationale for
reclassification of RFC 3540 from Experimental to Historic; this
reclassification enables new experimental use of the ECT(1)
codepoint.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
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/rfc8311.
Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. ECN Terminology . . . . . . . . . . . . . . . . . . . . . 4
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4
2. ECN Experimentation: Overview . . . . . . . . . . . . . . . . 5
2.1. Effective Congestion Control is Required . . . . . . . . 6
2.2. Network Considerations for ECN Experimentation . . . . . 6
2.3. Operational and Management Considerations . . . . . . . . 7
3. ECN Nonce and RFC 3540 . . . . . . . . . . . . . . . . . . . 8
4. Updates to RFC 3168 . . . . . . . . . . . . . . . . . . . . . 9
4.1. Congestion Response Differences . . . . . . . . . . . . . 9
4.2. Congestion Marking Differences . . . . . . . . . . . . . 10
4.3. TCP Control Packets and Retransmissions . . . . . . . . . 13
5. ECN for RTP Updates to RFC 6679 . . . . . . . . . . . . . . . 14
6. ECN for DCCP Updates to RFCs 4341, 4342, and 5622 . . . . . . 16
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.1. Normative References . . . . . . . . . . . . . . . . . . 17
9.2. Informative References . . . . . . . . . . . . . . . . . 18
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 20
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction
This memo updates RFC 3168 [RFC3168], which specifies Explicit
Congestion Notification (ECN) as an alternative to packet drops for
indicating network congestion to endpoints. It relaxes restrictions
in RFC 3168 that hinder experimentation towards benefits beyond just
removal of loss. This memo summarizes the proposed areas of
experimentation and updates RFC 3168 to enable experimentation in
these areas. An Experimental RFC in the IETF document stream
[RFC4844] is required to take advantage of any of these enabling
updates. Putting all of these updates into a single document enables
experimentation to proceed without requiring a standards process
exception for each Experimental RFC that needs changes to RFC 3168, a
Proposed Standard RFC.
There is no need for this memo to update RFC 3168 to simplify
standardization of protocols and mechanisms that are documented in
Standards Track RFCs, as any Standards Track RFC can update RFC 3168
directly without either relying on updates in this memo or using a
standards process exception.
In addition, this memo makes related updates to the ECN specification
for RTP [RFC6679] and for three DCCP profiles ([RFC4341], [RFC4342],
and [RFC5622]) for the same reason. Each experiment is still
required to be documented in one or more separate RFCs, but use of
Experimental RFCs for this purpose does not require a process
exception to modify any of these Proposed Standard RFCs when the
modification falls within the bounds established by this memo (RFC
5622 is an Experimental RFC; it is modified by this memo for
consistency with modifications to the other two DCCP RFCs).
Some of the anticipated experimentation includes use of the ECT(1)
codepoint that was dedicated to the ECN nonce experiment in RFC 3540
[RFC3540]. This memo records the conclusion of the ECN nonce
experiment and provides the explanation for reclassification of RFC
3540 from Experimental to Historic in order to enable new
experimental use of the ECT(1) codepoint.
1.1. ECN Terminology
ECT: ECN-Capable Transport. One of the two codepoints, ECT(0) or
ECT(1), in the ECN field [RFC3168] of the IP header (v4 or v6).
An ECN-capable sender sets one of these to indicate that both
transport endpoints support ECN.
Not-ECT: The ECN codepoint set by senders that indicates that the
transport is not ECN capable.
CE: Congestion Experienced. The ECN codepoint that an intermediate
node sets to indicate congestion. A node sets an increasing
proportion of ECT packets to Congestion Experienced (CE) as the
level of congestion increases.
1.2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. ECN Experimentation: Overview
Three areas of ECN experimentation are covered by this memo; the
cited documents should be consulted for the detailed goals and
rationale of each proposed experiment:
Congestion Response Differences: An ECN congestion indication
communicates a higher likelihood than a dropped packet that a
short queue exists at the network bottleneck node [TCP-ABE]. This
difference suggests that for congestion indicated by ECN, a
different sender congestion response (e.g., sender backs off by a
smaller amount) may be appropriate by comparison to the sender
response to congestion indicated by loss. Two examples of
proposed sender congestion response changes are described in
[TCP-ABE] and [ECN-L4S] -- the proposal in the latter document
couples the sender congestion response change to Congestion
Marking Differences functionality (see next paragraph). These
changes are at variance with the requirement in RFC 3168 that a
sender's congestion control response to ECN congestion indications
be the same as to drops. IETF approval, e.g., via an Experimental
RFC in the IETF document stream, is required for any sender
congestion response used in this area of experimentation. See
Section 4.1 for further discussion.
Congestion Marking Differences: Congestion marking at network nodes
can be configured to maintain very shallow queues in conjunction
with a different sender response to congestion indications (CE
marks), e.g., as proposed in [ECN-L4S]. The traffic involved
needs to be identified by the senders to the network nodes in
order to avoid damage to other network traffic whose senders do
not expect the more frequent congestion marking used to maintain
very shallow queues. Use of different ECN codepoints,
specifically ECT(0) and ECT(1), is a promising means of traffic
identification for this purpose, but that technique is at variance
with the requirement in RFC 3168 that traffic marked as ECT(0) not
receive different treatment in the network by comparison to
traffic marked as ECT(1). IETF approval, e.g., via an
Experimental RFC in the IETF document stream, is required for any
differences in congestion marking or sender congestion response
used in this area of experimentation. See Section 4.2 for further
discussion.
TCP Control Packets and Retransmissions: RFC 3168 limits the use of
ECN with TCP to data packets, excluding retransmissions. With the
successful deployment of ECN in large portions of the Internet,
there is interest in extending the benefits of ECN to TCP control
packets (e.g., SYNs) and retransmitted packets, e.g., as proposed
in [ECN-TCP]. This is at variance with RFC 3168's prohibition of
ECN for TCP control packets and retransmitted packets. See
Section 4.3 for further discussion.
The scope of this memo is limited to these three areas of
experimentation. This memo expresses no view on the likely outcomes
of the proposed experiments and does not specify the experiments in
detail. Additional experiments in these areas are possible, e.g., on
use of ECN to support deployment of a protocol similar to Data Center
TCP (DCTCP) [RFC8257] beyond DCTCP's current applicability that is
limited to data center environments. The purpose of this memo is to
remove constraints in Standards Track RFCs that stand in the way of
these areas of experimentation.
2.1. Effective Congestion Control is Required
Congestion control remains an important aspect of the Internet
architecture [RFC2914]. Any Experimental RFC in the IETF document
stream that takes advantage of this memo's updates to any RFC is
required to discuss the congestion control implications of the
experiment(s) in order to provide assurance that deployment of the
experiment(s) does not pose a congestion-based threat to the
operation of the Internet.
2.2. Network Considerations for ECN Experimentation
ECN functionality [RFC3168] is becoming widely deployed in the
Internet and is being designed into additional protocols such as
Transparent Interconnection of Lots of Links (TRILL) [ECN-TRILL].
ECN experiments are expected to coexist with deployed ECN
functionality, with the responsibility for that coexistence falling
primarily upon designers of experimental changes to ECN. In
addition, protocol designers and implementers, as well as network
operators, may desire to anticipate and/or support ECN experiments.
The following guidelines will help avoid conflicts with the areas of
ECN experimentation enabled by this memo:
1. Forwarding behavior as described in RFC 3168 remains the
preferred approach for routers that are not involved in ECN
experiments, in particular continuing to treat the ECT(0) and
ECT(1) codepoints as equivalent, as specified in Section 4.2
below.
2. Network nodes that forward packets SHOULD NOT assume that the ECN
CE codepoint indicates that the packet would have been dropped if
ECN were not in use. This is because Congestion Response
Differences experiments employ different congestion responses to
dropped packets by comparison to receipt of CE-marked packets
(see Section 4.1 below), so CE-marked packets SHOULD NOT be
arbitrarily dropped. A corresponding difference in congestion
responses already occurs when the ECN field is used for
Pre-Congestion Notification (PCN) [RFC6660].
3. A network node MUST NOT originate traffic marked with ECT(1)
unless the network node is participating in a Congestion Marking
Differences experiment that uses ECT(1), as specified in
Section 4.2 below.
Some ECN experiments use ECN with packets where ECN has not been used
previously, specifically TCP control packets and retransmissions; see
Section 4.3 below. The new middlebox behavior requirements in that
section are of particular importance. In general, any system or
protocol that inspects or monitors network traffic SHOULD be prepared
to encounter ECN usage on packets and traffic that currently do not
use ECN.
ECN field handling requirements for tunnel encapsulation and
decapsulation are specified in [RFC6040], which is in the process of
being updated by [ECN-SHIM]. Related guidance for encapsulations
whose outer headers are not IP headers can be found in [ECN-ENCAP].
These requirements and guidance apply to all traffic, including
traffic that is part of any ECN experiment.
2.3. Operational and Management Considerations
Changes in network traffic behavior that result from ECN
experimentation are likely to impact network operations and
management. Designers of ECN experiments are expected to anticipate
possible impacts and consider how they may be dealt with. Specific
topics to consider include possible network management changes or
extensions, monitoring of the experimental deployment, collection of
data for evaluation of the experiment, and possible interactions with
other protocols, particularly protocols that encapsulate network
traffic.
For further discussion, see [RFC5706]; the questions in Appendix A of
RFC 5706 provide a concise survey of some important aspects to
consider.
3. ECN Nonce and RFC 3540
As specified in RFC 3168, ECN uses two ECN-Capable Transport (ECT)
codepoints, ECT(0) and ECT(1), to indicate that a packet supports
ECN. RFC 3168 assigned the second codepoint, ECT(1), to support ECN
nonce functionality that discourages receivers from exploiting ECN to
improve their throughput at the expense of other network users. That
ECN nonce functionality is fully specified in RFC 3540 [RFC3540].
This section explains why RFC 3540 has been reclassified from
Experimental to Historic and makes associated updates to RFC 3168.
While the ECN nonce works as specified, and has been deployed in
limited environments, widespread usage in the Internet has not
materialized. A study of the ECN behavior of the top one million web
servers using 2014 data [Trammell15] found that after ECN was
negotiated, none of the 581,711 IPv4 servers tested were using both
ECT codepoints, which would have been a possible sign of ECN nonce
usage. Of the 17,028 IPv6 servers tested, four set both ECT(0) and
ECT(1) on data packets. This might have been evidence of use of the
ECN nonce by these four servers, but it might equally have been due
to erroneous re-marking of the ECN field by a middlebox or router.
With the emergence of new experimental functionality that depends on
use of the ECT(1) codepoint for other purposes, continuing to reserve
that codepoint for the ECN nonce experiment is no longer justified.
In addition, other approaches to discouraging receivers from
exploiting ECN have emerged; see Appendix B.1 of [ECN-L4S].
Therefore, in support of ECN experimentation with the ECT(1)
codepoint, this memo:
o Declares that the ECN nonce experiment [RFC3540] has concluded and
notes the absence of widespread deployment.
o Updates RFC 3168 [RFC3168] to remove discussion of the ECN nonce
and use of ECT(1) for that nonce.
The four primary updates to RFC 3168 that remove discussion of the
ECN nonce and use of ECT(1) for that nonce are as follows:
1. The removal of the paragraph in Section 5 that immediately
follows Figure 1; this paragraph discusses the ECN nonce as the
motivation for two ECT codepoints.
2. The removal of Section 11.2, "A Discussion of the ECN nonce", in
its entirety.
3. The removal of the last paragraph of Section 12, which states
that ECT(1) may be used as part of the implementation of the ECN
nonce.
4. The removal of the first two paragraphs of Section 20.2, which
discuss the ECN nonce and alternatives. No changes are made to
the rest of Section 20.2, which discusses alternative uses for
the fourth ECN codepoint.
In addition, other less-substantive changes to RFC 3168 are required
to remove all other mentions of the ECN nonce and to remove
implications that ECT(1) is intended for use by the ECN nonce; these
specific text updates are omitted for brevity.
4. Updates to RFC 3168
The following subsections specify updates to RFC 3168 to enable the
three areas of experimentation summarized in Section 2.
4.1. Congestion Response Differences
RFC 3168 specifies that senders respond identically to packet drops
and ECN congestion indications. ECN congestion indications are
predominately originated by Active Queue Management (AQM) mechanisms
in intermediate buffers. AQM mechanisms are usually configured to
maintain shorter queue lengths than non-AQM-based mechanisms,
particularly non-AQM drop-based mechanisms such as tail-drop, as AQM
mechanisms indicate congestion before the queue overflows. While the
occurrence of loss does not easily enable the receiver to determine
if AQM is used, the receipt of an ECN CE mark conveys a strong
likelihood that AQM was used to manage the bottleneck queue. Hence,
an ECN congestion indication communicates a higher likelihood than a
dropped packet that a short queue exists at the network bottleneck
node [TCP-ABE]. This difference suggests that for congestion
indicated by ECN, a different sender congestion response (e.g.,
sender backs off by a smaller amount) may be appropriate by
comparison to the sender response to congestion indicated by loss.
However, Section 5 of RFC 3168 specifies that:
Upon the receipt by an ECN-Capable transport of a single CE
packet, the congestion control algorithms followed at the end-
systems MUST be essentially the same as the congestion control
response to a *single* dropped packet.
This memo updates this text from RFC 3168 to allow the congestion
control response (including the TCP Sender's congestion control
response) to a CE-marked packet to differ from the response to a
dropped packet, provided that the changes from RFC 3168 are
documented in an Experimental RFC in the IETF document stream. The
specific change to RFC 3168 is to insert the words "unless otherwise
specified by an Experimental RFC in the IETF document stream" at the
end of the sentence quoted above.
RFC 4774 [RFC4774] quotes the above text from RFC 3168 as background,
but it does not impose requirements based on that text. Therefore,
no update to RFC 4774 is required to enable this area of
experimentation.
Section 6.1.2 of RFC 3168 specifies that:
If the sender receives an ECN-Echo (ECE) ACK packet (that is, an
ACK packet with the ECN-Echo flag set in the TCP header), then the
sender knows that congestion was encountered in the network on the
path from the sender to the receiver. The indication of
congestion should be treated just as a congestion loss in
non-ECN-Capable TCP. That is, the TCP source halves the
congestion window "cwnd" and reduces the slow start threshold
"ssthresh".
This memo also updates this text from RFC 3168 to allow the
congestion control response (including the TCP Sender's congestion
control response) to a CE-marked packet to differ from the response
to a dropped packet, provided that the changes from RFC 3168 are
documented in an Experimental RFC in the IETF document stream. The
specific change to RFC 3168 is to insert the words "Unless otherwise
specified by an Experimental RFC in the IETF document stream" at the
beginning of the second sentence quoted above.
4.2. Congestion Marking Differences
Taken to its limit, an AQM algorithm that uses ECN congestion
indications can be configured to maintain very shallow queues,
thereby reducing network latency by comparison to maintaining a
larger queue. Significantly more aggressive sender responses to ECN
are needed to make effective use of such very shallow queues;
"Datacenter TCP (DCTCP)" [RFC8257] provides an example. In this
case, separate network node treatments are essential, both to prevent
the aggressive low-latency traffic from starving conventional traffic
(if present) and to prevent any conventional traffic disruption to
any lower-latency service that uses the very shallow queues. Use of
different ECN codepoints is a promising means of identifying these
two classes of traffic to network nodes; hence, this area of
experimentation is based on the use of the ECT(1) codepoint to
request ECN congestion marking behavior in the network that differs
from ECT(0). It is essential that any such change in ECN congestion
marking behavior be counterbalanced by use of a different IETF-
approved congestion response to CE marks at the sender, e.g., as
proposed in [ECN-L4S].
Section 5 of RFC 3168 specifies that "Routers treat the ECT(0) and
ECT(1) codepoints as equivalent."
This memo updates RFC 3168 to allow routers to treat the ECT(0) and
ECT(1) codepoints differently, provided that the changes from RFC
3168 are documented in an Experimental RFC in the IETF document
stream. The specific change to RFC 3168 is to insert the words
"unless otherwise specified by an Experimental RFC in the IETF
document stream" at the end of the above sentence.
When an AQM is configured to use ECN congestion indications to
maintain a very shallow queue, congestion indications are marked on
packets that would not have been dropped if ECN was not in use.
Section 5 of RFC 3168 specifies that:
For a router, the CE codepoint of an ECN-Capable packet SHOULD
only be set if the router would otherwise have dropped the packet
as an indication of congestion to the end nodes. When the
router's buffer is not yet full and the router is prepared to drop
a packet to inform end nodes of incipient congestion, the router
should first check to see if the ECT codepoint is set in that
packet's IP header. If so, then instead of dropping the packet,
the router MAY instead set the CE codepoint in the IP header.
This memo updates RFC 3168 to allow congestion indications that are
not equivalent to drops, provided that the changes from RFC 3168 are
documented in an Experimental RFC in the IETF document stream. The
specific change is to change "For a router" to "Unless otherwise
specified by an Experimental RFC in the IETF document stream" at the
beginning of the first sentence of the above paragraph.
A larger update to RFC 3168 is necessary to enable sender usage of
ECT(1) to request network congestion marking behavior that maintains
very shallow queues at network nodes. When using loss as a
congestion signal, the number of signals provided should be reduced
to a minimum; hence, only the presence or absence of congestion is
communicated. In contrast, ECN can provide a richer signal, e.g., to
indicate the current level of congestion, without the disadvantage of
a larger number of packet losses. A proposed experiment in this
area, Low Latency Low Loss Scalable throughput (L4S) [ECN-L4S],
significantly increases the CE marking probability for traffic marked
as ECT(1) in a fashion that would interact badly with existing sender
congestion response functionality because that functionality assumes
that the network marks ECT packets as frequently as it would drop
Not-ECT packets. If network traffic that uses such a conventional
sender congestion response were to encounter L4S's increased marking
probability (and hence rate) at a network bottleneck queue, the
resulting traffic throughput is likely to be much less than intended
for the level of congestion at the bottleneck queue.
This memo updates RFC 3168 to remove that interaction for ECT(1).
The specific update to Section 5 of RFC 3168 is to replace the
following two paragraphs:
Senders are free to use either the ECT(0) or the ECT(1) codepoint
to indicate ECT, on a packet-by-packet basis.
The use of both the two codepoints for ECT, ECT(0) and ECT(1), is
motivated primarily by the desire to allow mechanisms for the data
sender to verify that network elements are not erasing the CE
codepoint, and that data receivers are properly reporting to the
sender the receipt of packets with the CE codepoint set, as
required by the transport protocol. Guidelines for the senders
and receivers to differentiate between the ECT(0) and ECT(1)
codepoints will be addressed in separate documents, for each
transport protocol. In particular, this document does not address
mechanisms for TCP end-nodes to differentiate between the ECT(0)
and ECT(1) codepoints. Protocols and senders that only require a
single ECT codepoint SHOULD use ECT(0).
with this paragraph:
Protocols and senders MUST use the ECT(0) codepoint to indicate
ECT unless otherwise specified by an Experimental RFC in the IETF
document stream. Protocols and senders MUST NOT use the ECT(1)
codepoint to indicate ECT unless otherwise specified by an
Experimental RFC in the IETF document stream. Guidelines for
senders and receivers to differentiate between the ECT(0) and
ECT(1) codepoints will be addressed in separate documents, for
each transport protocol. In particular, this document does not
address mechanisms for TCP end-nodes to differentiate between the
ECT(0) and ECT(1) codepoints.
Congestion Marking Differences experiments SHOULD modify the network
behavior for traffic marked as ECT(1) rather than ECT(0) if network
behavior for only one ECT codepoint is modified. Congestion Marking
Differences experiments MUST NOT modify the network behavior for
traffic marked as ECT(0) in a fashion that requires changes to the
sender congestion response to obtain desired network behavior. If a
Congestion Marking Differences experiment modifies the network
behavior for traffic marked as ECT(1), e.g., CE-marking behavior, in
a fashion that requires changes to the sender congestion response to
obtain desired network behavior, then the Experimental RFC in the
IETF document stream for that experiment MUST specify:
o The sender congestion response to CE marking in the network, and
o Router behavior changes, or the absence thereof, in forwarding CE-
marked packets that are part of the experiment.
In addition, this memo updates RFC 3168 to remove discussion of the
ECN nonce, as noted in Section 3 above.
4.3. TCP Control Packets and Retransmissions
With the successful use of ECN for traffic in large portions of the
Internet, there is interest in extending the benefits of ECN to TCP
control packets (e.g., SYNs) and retransmitted packets, e.g., as
proposed by ECN++ [ECN-TCP].
RFC 3168 prohibits use of ECN for TCP control packets and
retransmitted packets in a number of places:
o Section 5.2: "To ensure the reliable delivery of the congestion
indication of the CE codepoint, an ECT codepoint MUST NOT be set
in a packet unless the loss of that packet in the network would be
detected by the end nodes and interpreted as an indication of
congestion."
o Section 6.1.1: "A host MUST NOT set ECT on SYN or SYN-ACK packets"
o Section 6.1.4: "...pure acknowledgement packets (e.g., packets
that do not contain any accompanying data) MUST be sent with the
not-ECT codepoint."
o Section 6.1.5: "This document specifies ECN-capable TCP
implementations MUST NOT set either ECT codepoint (ECT(0) or
ECT(1)) in the IP header for retransmitted data packets, and that
the TCP data receiver SHOULD ignore the ECN field on arriving data
packets that are outside of the receiver's current window."
o Section 6.1.6: "...the TCP data sender MUST NOT set either an ECT
codepoint or the CWR bit on window probe packets.
This memo updates RFC 3168 to allow the use of ECT codepoints on SYN
and SYN-ACK packets, pure acknowledgement packets, window probe
packets, and retransmissions of packets that were originally sent
with an ECT codepoint, provided that the changes from RFC 3168 are
documented in an Experimental RFC in the IETF document stream. The
specific change to RFC 3168 is to insert the words "unless otherwise
specified by an Experimental RFC in the IETF document stream" at the
end of each sentence quoted above.
In addition, beyond requiring TCP senders not to set ECT on TCP
control packets and retransmitted packets, RFC 3168 is silent on
whether it is appropriate for a network element, e.g., a firewall, to
discard such a packet as invalid. For this area of ECN
experimentation to be useful, middleboxes ought not to do that;
therefore, RFC 3168 is updated by adding the following text to the
end of Section 6.1.1.1 on Middlebox Issues:
Unless otherwise specified by an Experimental RFC in the IETF
document stream, middleboxes SHOULD NOT discard TCP control
packets and retransmitted TCP packets solely because the ECN field
in the IP header does not contain Not-ECT. An exception to this
requirement occurs in responding to an attack that uses ECN
codepoints other than Not-ECT. For example, as part of the
response, it may be appropriate to drop ECT-marked TCP SYN packets
with higher probability than TCP SYN packets marked with Not-ECT.
Any such exceptional discarding of TCP control packets and
retransmitted TCP packets in response to an attack MUST NOT be
done routinely in the absence of an attack and SHOULD only be done
if it is determined that the use of ECN is contributing to the
attack.
5. ECN for RTP Updates to RFC 6679
RFC 6679 [RFC6679] specifies use of ECN for RTP traffic; it allows
use of both the ECT(0) and ECT(1) codepoints and provides the
following guidance on use of these codepoints in Section 7.3.1:
The sender SHOULD mark packets as ECT(0) unless the receiver
expresses a preference for ECT(1) or for a random ECT value using
the "ect" parameter in the "a=ecn-capable-rtp:" attribute.
The Congestion Marking Differences area of experimentation increases
the potential consequences of using ECT(1) instead of ECT(0); hence,
the above guidance is updated by adding the following two sentences:
Random ECT values MUST NOT be used, as that may expose RTP to
differences in network treatment of traffic marked with ECT(1) and
ECT(0) and differences in associated endpoint congestion
responses. In addition, ECT(0) MUST be used unless otherwise
specified in an Experimental RFC in the IETF document stream.
Section 7.3.3 of RFC 6679 specifies RTP's response to receipt of
CE-marked packets as being identical to the response to dropped
packets:
The reception of RTP packets with ECN-CE marks in the IP header is
a notification that congestion is being experienced. The default
reaction on the reception of these ECN-CE-marked packets MUST be
to provide the congestion control algorithm with a congestion
notification that triggers the algorithm to react as if packet
loss had occurred. There should be no difference in congestion
response if ECN-CE marks or packet drops are detected.
In support of Congestion Response Differences experimentation, this
memo updates this text in a fashion similar to RFC 3168 to allow the
RTP congestion control response to a CE-marked packet to differ from
the response to a dropped packet, provided that the changes from RFC
6679 are documented in an Experimental RFC in the IETF document
stream. The specific change to RFC 6679 is to insert the words
"Unless otherwise specified by an Experimental RFC in the IETF
document stream" and reformat the last two sentences to be subject to
that condition; that is:
The reception of RTP packets with ECN-CE marks in the IP header is
a notification that congestion is being experienced. Unless
otherwise specified by an Experimental RFC in the IETF document
stream:
* The default reaction on the reception of these ECN-CE-marked
packets MUST be to provide the congestion control algorithm
with a congestion notification that triggers the algorithm to
react as if packet loss had occurred.
* There should be no difference in congestion response if ECN-CE
marks or packet drops are detected.
The second sentence of the immediately following paragraph in
Section 7.3.3 of RFC 6679 requires a related update:
Other reactions to ECN-CE may be specified in the future,
following IETF Review. Detailed designs of such alternative
reactions MUST be specified in a Standards Track RFC and be
reviewed to ensure they are safe for deployment under any
restrictions specified.
The update is to change "Standards Track RFC" to "Standards Track RFC
or Experimental RFC in the IETF document stream" for consistency with
the first update.
6. ECN for DCCP Updates to RFCs 4341, 4342, and 5622
The specifications of the three DCCP Congestion Control IDs (CCIDs),
2 [RFC4341], 3 [RFC4342], and 4 [RFC5622], contain broadly the same
wording as follows:
each DCCP-Data and DCCP-DataAck packet is sent as ECN Capable with
either the ECT(0) or the ECT(1) codepoint set.
This memo updates these sentences in each of the three RFCs as
follows:
each DCCP-Data and DCCP-DataAck packet is sent as ECN Capable.
Unless otherwise specified by an Experimental RFC in the IETF
document stream, such DCCP senders MUST set the ECT(0) codepoint.
In support of Congestion Marking Differences experimentation (as
noted in Section 3), this memo also updates all three of these RFCs
to remove discussion of the ECN nonce. The specific text updates are
omitted for brevity.
7. IANA Considerations
To reflect the reclassification of RFC 3540 as Historic, IANA has
updated the "Transmission Control Protocol (TCP) Header Flags"
registry <https://www.iana.org/assignments/tcp-header-flags> to
remove the registration of bit 7 as the NS (Nonce Sum) bit and add an
annotation to the registry to state that bit 7 was used by Historic
RFC 3540 as the NS (Nonce Sum) bit but is now Reserved.
8. Security Considerations
As a process memo that only relaxes restrictions on experimentation,
there are no protocol security considerations, as security
considerations for any experiments that take advantage of the relaxed
restrictions are discussed in the documents that propose the
experiments.
However, effective congestion control is crucial to the continued
operation of the Internet; hence, this memo places the responsibility
for not breaking Internet congestion control on the experiments and
the experimenters who propose them. This responsibility includes the
requirement to discuss congestion control implications in an
Experimental RFC in the IETF document stream for each experiment, as
stated in Section 2.1; review of that discussion by the IETF
community and the IESG prior to RFC publication is intended to
provide assurance that each experiment does not break Internet
congestion control.
See Appendix C.1 of [ECN-L4S] for discussion of alternatives to the
ECN nonce.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41,
RFC 2914, DOI 10.17487/RFC2914, September 2000,
<https://www.rfc-editor.org/info/rfc2914>.
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
of Explicit Congestion Notification (ECN) to IP",
RFC 3168, DOI 10.17487/RFC3168, September 2001,
<https://www.rfc-editor.org/info/rfc3168>.
[RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust Explicit
Congestion Notification (ECN) Signaling with Nonces",
RFC 3540, DOI 10.17487/RFC3540, June 2003,
<https://www.rfc-editor.org/info/rfc3540>.
[RFC4341] Floyd, S. and E. Kohler, "Profile for Datagram Congestion
Control Protocol (DCCP) Congestion Control ID 2: TCP-like
Congestion Control", RFC 4341, DOI 10.17487/RFC4341, March
2006, <https://www.rfc-editor.org/info/rfc4341>.
[RFC4342] Floyd, S., Kohler, E., and J. Padhye, "Profile for
Datagram Congestion Control Protocol (DCCP) Congestion
Control ID 3: TCP-Friendly Rate Control (TFRC)", RFC 4342,
DOI 10.17487/RFC4342, March 2006,
<https://www.rfc-editor.org/info/rfc4342>.
[RFC5622] Floyd, S. and E. Kohler, "Profile for Datagram Congestion
Control Protocol (DCCP) Congestion ID 4: TCP-Friendly Rate
Control for Small Packets (TFRC-SP)", RFC 5622,
DOI 10.17487/RFC5622, August 2009,
<https://www.rfc-editor.org/info/rfc5622>.
[RFC6679] Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P.,
and K. Carlberg, "Explicit Congestion Notification (ECN)
for RTP over UDP", RFC 6679, DOI 10.17487/RFC6679, August
2012, <https://www.rfc-editor.org/info/rfc6679>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
9.2. Informative References
[ECN-ENCAP]
Briscoe, B., Kaippallimalil, J., and P. Thaler,
"Guidelines for Adding Congestion Notification to
Protocols that Encapsulate IP", Work in Progress,
draft-ietf-tsvwg-ecn-encap-guidelines-09, July 2017.
[ECN-EXPERIMENT]
Khademi, N., Welzl, M., Armitage, G., and G. Fairhurst,
"Updating the Explicit Congestion Notification (ECN)
Specification to Allow IETF Experimentation", Work in
Progress, draft-khademi-tsvwg-ecn-response-01, July 2016.
[ECN-L4S] Schepper, K. and B. Briscoe, "Identifying Modified
Explicit Congestion Notification (ECN) Semantics for
Ultra-Low Queuing Delay", Work in Progress,
draft-ietf-tsvwg-ecn-l4s-id-01, October 2017.
[ECN-SHIM] Briscoe, B., "Propagating Explicit Congestion Notification
Across IP Tunnel Headers Separated by a Shim", Work in
Progress, draft-ietf-tsvwg-rfc6040update-shim-05, November
2017.
[ECN-TCP] Bagnulo, M. and B. Briscoe, "ECN++: Adding Explicit
Congestion Notification (ECN) to TCP Control Packets",
Work in Progress, draft-ietf-tcpm-generalized-ecn-02,
October 2017.
[ECN-TRILL]
Eastlake, D. and B. Briscoe, "TRILL: ECN (Explicit
Congestion Notification) Support", Work in Progress,
draft-ietf-trill-ecn-support-04, November 2017.
[RFC4774] Floyd, S., "Specifying Alternate Semantics for the
Explicit Congestion Notification (ECN) Field", BCP 124,
RFC 4774, DOI 10.17487/RFC4774, November 2006,
<https://www.rfc-editor.org/info/rfc4774>.
[RFC4844] Daigle, L., Ed. and Internet Architecture Board, "The RFC
Series and RFC Editor", RFC 4844, DOI 10.17487/RFC4844,
July 2007, <https://www.rfc-editor.org/info/rfc4844>.
[RFC5706] Harrington, D., "Guidelines for Considering Operations and
Management of New Protocols and Protocol Extensions",
RFC 5706, DOI 10.17487/RFC5706, November 2009,
<https://www.rfc-editor.org/info/rfc5706>.
[RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion
Notification", RFC 6040, DOI 10.17487/RFC6040, November
2010, <https://www.rfc-editor.org/info/rfc6040>.
[RFC6660] Briscoe, B., Moncaster, T., and M. Menth, "Encoding Three
Pre-Congestion Notification (PCN) States in the IP Header
Using a Single Diffserv Codepoint (DSCP)", RFC 6660,
DOI 10.17487/RFC6660, July 2012,
<https://www.rfc-editor.org/info/rfc6660>.
[RFC8257] Bensley, S., Thaler, D., Balasubramanian, P., Eggert, L.,
and G. Judd, "Data Center TCP (DCTCP): TCP Congestion
Control for Data Centers", RFC 8257, DOI 10.17487/RFC8257,
October 2017, <https://www.rfc-editor.org/info/rfc8257>.
[TCP-ABE] Khademi, N., Welzl, M., Armitage, G., and G. Fairhurst,
"TCP Alternative Backoff with ECN (ABE)", Work in
Progress, draft-ietf-tcpm-alternativebackoff-ecn-05,
December 2017.
[Trammell15]
Trammell, B., Kuehlewind, M., Boppart, D., Learmonth, I.,
Fairhurst, G., and R. Scheffenegger, "Enabling Internet-
Wide Deployment of Explicit Congestion Notification", In
Conference Proceedings of Passive and Active Measurement
(PAM), pp. 193-205, March 2015,
<https://doi.org/10.1007/978-3-319-15509-8_15>.
Acknowledgements
The content of this specification, including the specific portions of
RFC 3168 that are updated, draws heavily from [ECN-EXPERIMENT], whose
authors are gratefully acknowledged. The authors of the documents
describing the experiments have motivated the production of this memo
-- their interest in innovation is welcome and heartily acknowledged.
Colin Perkins suggested updating RFC 6679 on RTP and provided
guidance on where to make the updates.
This specification improved as a result of comments from a number of
reviewers, including Ben Campbell, Brian Carpenter, Benoit Claise,
Spencer Dawkins, Gorry Fairhurst, Sue Hares, Ingemar Johansson, Naeem
Khademi, Mirja Kuehlewind, Karen Nielsen, Hilarie Orman, Eric
Rescorla, Adam Roach, and Michael Welzl. Bob Briscoe's thorough
review of multiple draft versions of this memo resulted in numerous
improvements including addition of the updates to the DCCP RFCs.
Author's Address
David Black
Dell EMC
176 South Street
Hopkinton, MA 01748
United States of America
Email: david.black@dell.com
ISO Plain Language
On this page
§1Why the ECN Rules Blocked Experiments
Explicit Congestion Notification, specified in RFC 3168, is an alternative to packet drops for telling endpoints that the network is congested. This memo relaxes restrictions in RFC 3168 that hinder experimentation towards benefits beyond just the removal of loss.
The restriction that mattered was procedural as much as technical. RFC 3168 is a Proposed Standard, and changing it normally needs the full standards process. The memo puts all of the enabling changes in one place so that an experiment can proceed without needing a process exception for each Experimental RFC that wants to change RFC 3168. Any experiment still has to be described in its own Experimental RFC, but as long as the change stays inside the bounds this memo sets, no exception is needed.
There is no need for this route when a mechanism is documented in a Standards Track RFC, since such an RFC can update RFC 3168 directly. The memo also makes related updates to the ECN specification for RTP in RFC 6679 and for three DCCP profiles, RFC 4341, RFC 4342 and RFC 5622, for the same reason. RFC 5622 is itself an Experimental RFC, and it is modified here only for consistency with the other two.
One of the anticipated experiments uses the ECT(1) codepoint that had been dedicated to the ECN nonce experiment in RFC 3540. The memo records the conclusion of that experiment and gives the reason for reclassifying RFC 3540 from Experimental to Historic, which frees the codepoint for new experimental use.
The rules for ECN were written as fixed requirements. Changing them meant going through the full standards process every time. This memo takes the three most limiting rules and turns them into defaults that an experiment may override.
§2Three Areas of Experimentation
The memo covers three areas, and points to other documents for the detailed goals and rationale of each. It expresses no view on the likely outcome of the experiments and does not specify them in detail.
Congestion Response Differences. An ECN congestion indication tells the receiver that a short queue exists at the bottleneck with higher likelihood than a dropped packet does. That suggests a different sender response may be appropriate, such as backing off by a smaller amount than it would for a loss. This is at variance with the requirement in RFC 3168 that a sender's congestion response to ECN congestion indications be the same as to drops.
Congestion Marking Differences. Congestion marking at network nodes can be configured to keep very shallow queues, together with a different sender response to the marks, as proposed in the Low Latency Low Loss Scalable throughput work. The traffic involved has to be identified by the senders to the network nodes, to avoid harming other traffic whose senders do not expect the more frequent marking. Using the two codepoints differently, ECT(0) and ECT(1), is a promising way to identify that traffic, but it is at variance with the requirement in RFC 3168 that traffic marked ECT(0) not receive different treatment in the network than traffic marked ECT(1).
TCP control packets and retransmissions. RFC 3168 limits the use of ECN with TCP to data packets and excludes retransmissions. With ECN deployed in large parts of the Internet, there is interest in extending the benefits to TCP control packets such as SYNs and to retransmitted packets, as proposed by ECN++. This is at variance with RFC 3168's prohibition of ECN for those packets.
The scope of the memo is limited to these three areas. Additional experiments in them are possible, for example on using ECN to support a protocol similar to Data Center TCP beyond its current applicability in data centre environments. The stated purpose is to remove the constraints in Standards Track RFCs that stand in the way.
Three experiments are unblocked. A sender may react differently to a congestion mark than to a loss. Routers may mark the two ECN codepoints differently, so that one kind of traffic can get very short queues. And ECN may be used on connection requests and retransmissions, which used to be excluded.
- Not-ECTNot-ECT — Set by senders whose transport does not support ECN.
- ECT(0)ECN-Capable Transport 0 — Set by a sender whose transport supports ECN. Senders must use it unless an Experimental RFC says otherwise.
- ECT(1)ECN-Capable Transport 1 — The second capable codepoint. Senders must not use it unless an Experimental RFC says otherwise.
- CECongestion Experienced — Set by an intermediate node to say that congestion was seen.
- Congestion response differencesA sender may react less strongly to a congestion mark than to a lost packet, because a mark suggests a short queue rather than an overflow.
- Congestion marking differencesRouters may mark traffic marked ECT(1) more often than traffic marked ECT(0), which lets them keep very short queues.
- TCP control packets and retransmissionsECN may be used on SYN and SYN-ACK packets, pure acknowledgements, window probes and retransmissions.
§2.2Network and Operational Considerations
ECN is becoming widely deployed and is being designed into further protocols. Experiments are expected to coexist with the deployed ECN functionality, and the responsibility for that coexistence falls mainly on the designers of the experimental changes. The memo gives three guidelines to avoid conflicts.
First, the forwarding behaviour described in RFC 3168 remains the preferred approach for routers that are not taking part in an ECN experiment, in particular continuing to treat ECT(0) and ECT(1) as equivalent. Second, a network node must not assume that the CE codepoint means the packet would have been dropped if ECN were not in use. Congestion Response Differences experiments use different congestion responses to dropped packets than to CE-marked packets, so CE-marked packets should not be arbitrarily dropped. A corresponding difference in congestion responses already happens when the ECN field carries Pre-Congestion Notification. Third, a network node must not originate traffic marked ECT(1) unless it is taking part in a Congestion Marking Differences experiment that uses ECT(1).
Some experiments use ECN on packets where it has not been used before, specifically TCP control packets and retransmissions, and the new middlebox behaviour requirements there are of particular importance. In general, any system or protocol that inspects or monitors network traffic should be prepared to encounter ECN usage on packets and traffic that currently do not use it.
ECN field handling requirements for tunnel encapsulation and decapsulation are specified in RFC 6040, which is itself being updated, and related guidance for encapsulations whose outer headers are not IP headers is given elsewhere. Those requirements apply to all traffic, including traffic that is part of any ECN experiment.
Changes in traffic behaviour are likely to affect network operations and management. Designers of ECN experiments are expected to anticipate the effects and consider how to deal with them. The topics to consider include possible network management changes or extensions, monitoring of the experimental deployment, collecting data for evaluation, and possible interactions with other protocols, particularly ones that encapsulate network traffic. The RFC points to RFC 5706 for more.
Networks that are not part of an experiment keep their current behaviour. A router must also stop assuming that a marked packet would have been dropped, because the whole point of the experiment is that the sender reacts differently to the two cases.
- Routers keep treating both marks the sameForwarding behaviour from RFC 3168 stays the preferred approach for routers not taking part in an experiment.
- A mark is not a dropA router must not assume that a CE-marked packet would have been dropped, because CE-marked packets should not be dropped arbitrarily.
- Do not originate ECT(1)A network node must not originate traffic marked ECT(1) unless it is taking part in a marking experiment.
- Expect ECN in new placesSystems that inspect traffic should be prepared to meet ECN on packets that do not use it today.
§3The ECN Nonce and RFC 3540
RFC 3168 uses two ECN-Capable Transport codepoints, ECT(0) and ECT(1), to say that a packet supports ECN. The second codepoint, ECT(1), was assigned to support the ECN nonce functionality, which discourages receivers from exploiting ECN to improve their own throughput at the expense of other users. That functionality was fully specified in RFC 3540.
The nonce worked as specified and had been deployed in limited environments, but widespread use did not materialise. A study of the ECN behaviour of the top one million web servers, using 2014 data, found that after ECN was negotiated none of the 581,711 IPv4 servers tested were using both ECT codepoints, which would have been a sign of nonce use. Of the 17,028 IPv6 servers tested, four set both ECT(0) and ECT(1) on data packets. That might have been evidence of nonce use, but it might equally have come from a middlebox or router re-marking the ECN field incorrectly.
With new experimental functionality that depends on ECT(1) for other purposes, continuing to reserve the codepoint for the nonce is no longer justified, and other approaches to discouraging receivers from exploiting ECN have emerged. The memo therefore declares the ECN nonce experiment concluded, notes the absence of widespread deployment, and updates RFC 3168 to remove the discussion of the nonce and of the use of ECT(1) for it.
Four changes to RFC 3168 do that work: removing the paragraph in Section 5 that follows Figure 1, which gave the nonce as the motivation for two codepoints; removing Section 11.2 in its entirety; removing the last paragraph of Section 12, which said ECT(1) might be used as part of an ECN nonce implementation; and removing the first two paragraphs of Section 20.2, which discuss the nonce and alternatives. The rest of Section 20.2, which discusses alternative uses for the fourth ECN codepoint, is left alone.
The ECN nonce was an idea for stopping a receiver from cheating on congestion signalling. It worked, but nobody used it. Measurement of the top million web servers found almost no sign of it, so the codepoint it had reserved is now free for other experiments.
- 2001RFC 3168 reserves ECT(1) for the ECN nonceRFC 3168
- 2003RFC 3540 specifies the ECN nonceRFC 3540
- 2014A study of the top one million web servers finds no widespread nonce use
- 2018RFC 8311 reclassifies RFC 3540 as Historic and frees ECT(1)RFC 8311
§4The Updates to RFC 3168
Each update takes the same shape. The original sentence in RFC 3168 keeps its force, and a short clause is added saying that an Experimental RFC in the IETF document stream may say otherwise. Nothing changes until such a document appears.
For Congestion Response Differences, the change allows the congestion control response to a CE-marked packet to differ from the response to a dropped packet, provided the change is documented in an Experimental RFC. This is applied to the requirement that a sender's congestion control response to a single CE packet must be essentially the same as to a single dropped packet, and to the rule that on receiving an ECN-Echo acknowledgement the TCP source halves the congestion window and reduces the slow start threshold. No update to RFC 4774 is needed, because it quotes the text as background and imposes no requirement on it.
For Congestion Marking Differences, several changes are needed. Routers are allowed to treat ECT(0) and ECT(1) differently, again only if an Experimental RFC says so. The rule that a router should set the CE codepoint only if it would otherwise have dropped the packet is changed so that congestion indications which are not equivalent to drops are allowed. A larger update replaces the two paragraphs that let senders use either codepoint freely and explain why two codepoints exist: in their place, protocols and senders must use ECT(0) unless an Experimental RFC says otherwise, and must not use ECT(1) unless an Experimental RFC says otherwise.
The memo also states that a Congestion Marking Differences experiment should modify the network behaviour for traffic marked ECT(1) rather than ECT(0) if only one codepoint's behaviour is changed, and must not modify the behaviour for ECT(0) traffic in a way that requires changes to the sender congestion response. If an experiment does change ECT(1) behaviour in a way that needs a matching sender change, the Experimental RFC must state both the sender congestion response to CE marking and the router behaviour changes, or the absence of them.
For TCP control packets and retransmissions, the change allows ECT codepoints on SYN and SYN-ACK packets, pure acknowledgement packets, window probe packets, and retransmissions of packets that were originally sent with an ECT codepoint, again provided an Experimental RFC says so. This removes the prohibition in RFC 3168's Section 5.2, that an ECT codepoint must not be set in a packet unless the loss of that packet would be detected by the end nodes and interpreted as congestion, and the prohibitions in Sections 6.1.1, 6.1.4, 6.1.5 and 6.1.6.
RFC 3168 is silent on whether a network element such as a firewall may discard such a packet as invalid. The memo adds text saying that middleboxes should not discard TCP control packets and retransmitted TCP packets solely because the ECN field does not contain Not-ECT. There is an exception for responding to an attack that uses codepoints other than Not-ECT, for example dropping ECT-marked TCP SYN packets with higher probability than SYN packets marked Not-ECT, but such discarding must not be done routinely in the absence of an attack and should only be done if the use of ECN is contributing to it.
Every change works the same way: the old rule stays, and a note says an experiment may override it. Nothing changes in practice until someone publishes such an experiment.
| Aspect | RFC 3168 said | Now possible |
|---|---|---|
| Sender reaction to a congestion mark | The same as for a dropped packet | May differ, if an Experimental RFC says so |
| Routers treating ECT(0) and ECT(1) | Equivalent | May differ, if an Experimental RFC says so |
| When a router may set the CE mark | Only if the packet would have been dropped | Also when it would not have been |
| ECT on TCP control packets and retransmissions | Prohibited | Allowed, if an Experimental RFC says so |
| ECT codepoint a sender uses | Either ECT(0) or ECT(1) | ECT(0), unless an Experimental RFC says otherwise |
§5The Same Changes for RTP and DCCP
The ECN rules for RTP in RFC 6679 get the same treatment. That document lets a sender use either codepoint and says it should mark packets ECT(0) unless the receiver asks for ECT(1) or for a random ECT value using the ect parameter in the a=ecn-capable-rtp: attribute. Because the Congestion Marking Differences work raises the consequences of using ECT(1), two sentences are added: random ECT values must not be used, since that may expose RTP to differences in network treatment between the two codepoints and to the associated endpoint congestion responses, and ECT(0) must be used unless an Experimental RFC says otherwise.
The RTP response to a CE-marked packet is also relaxed. RFC 6679 said the reception of CE-marked packets must produce a congestion notification that makes the algorithm react as if packet loss had occurred, and that there should be no difference in congestion response between CE marks and packet drops. Those two sentences become conditional on an Experimental RFC saying otherwise, and a following sentence that allowed other reactions to be specified in future is changed to allow a Standards Track RFC or an Experimental RFC.
The three DCCP congestion control specifications, for congestion control IDs 2, 3 and 4, all contain the same wording: each DCCP-Data and DCCP-DataAck packet is sent as ECN Capable with either the ECT(0) or the ECT(1) codepoint set. The memo replaces that with wording that keeps the ECN Capable requirement but says that such senders must set ECT(0) unless an Experimental RFC says otherwise. All three RFCs also lose their discussion of the ECN nonce.
The same rule is applied to the other two protocols that use ECN. RTP and DCCP senders may use the second codepoint only when an experiment says so, and for now they should use the first.
§8Security Considerations
As a process memo that only relaxes restrictions on experimentation, the document has no protocol security considerations of its own. The security considerations of any experiment that takes advantage of the relaxed restrictions belong in the documents that propose those experiments.
The memo does place one responsibility on experimenters. Effective congestion control is crucial to the continued operation of the Internet, so the responsibility for not breaking Internet congestion control falls on the experiments and on the people proposing them. That responsibility includes the requirement that an Experimental RFC discusses the congestion control implications of the experiment, and review of that discussion by the IETF community and the IESG before publication is intended to give assurance that each experiment does not break Internet congestion control.
The memo adds no security rules of its own. It does insist that each experiment explains how it will not break congestion control for everyone else, and that the review process checks that explanation.