draft-briscoe-tsvwg-re-ecn-tcp-07.txt | draft-briscoe-tsvwg-re-ecn-tcp-08.txt | |||
---|---|---|---|---|
Transport Area Working Group B. Briscoe | Transport Area Working Group B. Briscoe | |||
Internet-Draft BT & UCL | Internet-Draft A. Jacquet | |||
Intended status: Standards Track A. Jacquet | Intended status: Standards Track T. Moncaster | |||
Expires: September 4, 2009 T. Moncaster | Expires: April 3, 2010 A. Smith | |||
A. Smith | ||||
BT | BT | |||
March 3, 2009 | September 30, 2009 | |||
Re-ECN: Adding Accountability for Causing Congestion to TCP/IP | Re-ECN: Adding Accountability for Causing Congestion to TCP/IP | |||
draft-briscoe-tsvwg-re-ecn-tcp-07 | draft-briscoe-tsvwg-re-ecn-tcp-08 | |||
Status of This Memo | Status of This Memo | |||
By submitting this Internet-Draft, each author represents that any | This Internet-Draft is submitted to IETF in full conformance with the | |||
applicable patent or other IPR claims of which he or she is aware | provisions of BCP 78 and BCP 79. This document may contain material | |||
have been or will be disclosed, and any of which he or she becomes | from IETF Documents or IETF Contributions published or made publicly | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | 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. | ||||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
Drafts. | Drafts. | |||
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." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on September 4, 2009. | This Internet-Draft will expire on April 3, 2010. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 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 in effect on the date of | Provisions Relating to IETF Documents in effect on the date of | |||
publication of this document (http://trustee.ietf.org/license-info). | publication of this document (http://trustee.ietf.org/license-info). | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 19 | skipping to change at page 2, line 25 | |||
incrementally around unmodified routers. The protocol works by | incrementally around unmodified routers. The protocol works by | |||
arranging an extended ECN field in each packet so that, as it crosses | arranging an extended ECN field in each packet so that, as it crosses | |||
any interface in an internetwork, it will carry a truthful prediction | any interface in an internetwork, it will carry a truthful prediction | |||
of congestion on the remainder of its path. The purpose of this | of congestion on the remainder of its path. The purpose of this | |||
document is to specify the re-ECN protocol at the IP layer and to | document is to specify the re-ECN protocol at the IP layer and to | |||
give guidelines on any consequent changes required to transport | give guidelines on any consequent changes required to transport | |||
protocols. It includes the changes required to TCP both as an | protocols. It includes the changes required to TCP both as an | |||
example and as a specification. It briefly gives examples of | example and as a specification. It briefly gives examples of | |||
mechanisms that can use the protocol to ensure data sources respond | mechanisms that can use the protocol to ensure data sources respond | |||
correctly to congestion,and these are described more fully in a | correctly to congestion,and these are described more fully in a | |||
companion document [re-ecn-motive]. | companion document [I-D.briscoe-tsvwg-re-ecn-tcp-motivation]. | |||
Authors' Statement: Status (to be removed by the RFC Editor) | Authors' Statement: Status (to be removed by the RFC Editor) | |||
Although the re-ECN protocol is intended to make a simple but far- | Although the re-ECN protocol is intended to make a simple but far- | |||
reaching change to the Internet architecture, the most immediate | reaching change to the Internet architecture, the most immediate | |||
priority for the authors is to delay any move of the ECN nonce to | priority for the authors is to delay any move of the ECN nonce to | |||
Proposed Standard status. The argument for this position is | Proposed Standard status. The argument for this position is | |||
developed in Appendix E. | developed in Appendix E. | |||
Changes from previous drafts (to be removed by the RFC Editor) | Changes from previous drafts (to be removed by the RFC Editor) | |||
Full diffs created using the rfcdiff tool are available at | Full diffs from all previous verisons (created using the rfcdiff | |||
<http://www.cs.ucl.ac.uk/staff/B.Briscoe/pubs.html#retcp> | tool) are available at <http://www.bobbriscoe.net/pubs.html#retcp> | |||
From -06 to -07 (current version): | From -07 to -08 (current version): | |||
Minor changes and consistency checks. | ||||
References updated. | ||||
From -06 to -07: | ||||
Major changes made following splitting this protocol document from | Major changes made following splitting this protocol document from | |||
the related motivations document [re-ecn-motive]. | the related motivations document | |||
[I-D.briscoe-tsvwg-re-ecn-tcp-motivation]. | ||||
Significant re-ordering of remaining text. | Significant re-ordering of remaining text. | |||
New terminology introduced for clarity. | New terminology introduced for clarity. | |||
Minor editorial changes throughout. | Minor editorial changes throughout. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
skipping to change at page 3, line 38 | skipping to change at page 3, line 44 | |||
6. Transport Layers . . . . . . . . . . . . . . . . . . . . . . . 21 | 6. Transport Layers . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
6.1. TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 6.1. TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
6.1.1. RECN mode: Full Re-ECN capable transport . . . . . . . 22 | 6.1.1. RECN mode: Full Re-ECN capable transport . . . . . . . 22 | |||
6.1.2. RECN-Co mode: Re-ECT Sender with a RFC3168 | 6.1.2. RECN-Co mode: Re-ECT Sender with a RFC3168 | |||
compliant ECN Receiver . . . . . . . . . . . . . . . . 24 | compliant ECN Receiver . . . . . . . . . . . . . . . . 24 | |||
6.1.3. Capability Negotiation . . . . . . . . . . . . . . . . 26 | 6.1.3. Capability Negotiation . . . . . . . . . . . . . . . . 26 | |||
6.1.4. Extended ECN (EECN) Field Settings during Flow | 6.1.4. Extended ECN (EECN) Field Settings during Flow | |||
Start or after Idle Periods . . . . . . . . . . . . . 27 | Start or after Idle Periods . . . . . . . . . . . . . 27 | |||
6.1.5. Pure ACKS, Retransmissions, Window Probes and | 6.1.5. Pure ACKS, Retransmissions, Window Probes and | |||
Partial ACKs . . . . . . . . . . . . . . . . . . . . . 31 | Partial ACKs . . . . . . . . . . . . . . . . . . . . . 31 | |||
6.2. Other Transports . . . . . . . . . . . . . . . . . . . . . 32 | 6.2. Other Transports . . . . . . . . . . . . . . . . . . . . . 31 | |||
6.2.1. General Guidelines for Adding Re-ECN to Other | 6.2.1. General Guidelines for Adding Re-ECN to Other | |||
Transports . . . . . . . . . . . . . . . . . . . . . . 32 | Transports . . . . . . . . . . . . . . . . . . . . . . 32 | |||
6.2.2. Guidelines for adding Re-ECN to RSVP or NSIS . . . . . 32 | 6.2.2. Guidelines for adding Re-ECN to RSVP or NSIS . . . . . 32 | |||
6.2.3. Guidelines for adding Re-ECN to DCCP . . . . . . . . . 33 | 6.2.3. Guidelines for adding Re-ECN to DCCP . . . . . . . . . 32 | |||
6.2.4. Guidelines for adding Re-ECN to SCTP . . . . . . . . . 33 | 6.2.4. Guidelines for adding Re-ECN to SCTP . . . . . . . . . 33 | |||
7. Incremental Deployment . . . . . . . . . . . . . . . . . . . . 33 | 7. Incremental Deployment . . . . . . . . . . . . . . . . . . . . 33 | |||
8. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 34 | 8. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
8.1. Congestion Notification Integrity . . . . . . . . . . . . 34 | 8.1. Congestion Notification Integrity . . . . . . . . . . . . 34 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 35 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 35 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
11. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 37 | 11. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
13. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 38 | 13. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 38 | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . . 38 | 14.1. Normative References . . . . . . . . . . . . . . . . . . . 38 | |||
14.2. Informative References . . . . . . . . . . . . . . . . . . 39 | 14.2. Informative References . . . . . . . . . . . . . . . . . . 39 | |||
Appendix A. Precise Re-ECN Protocol Operation . . . . . . . . . . 41 | Appendix A. Precise Re-ECN Protocol Operation . . . . . . . . . . 42 | |||
Appendix B. Justification for Two Codepoints Signifying Zero | Appendix B. Justification for Two Codepoints Signifying Zero | |||
Worth Packets . . . . . . . . . . . . . . . . . . . . 43 | Worth Packets . . . . . . . . . . . . . . . . . . . . 44 | |||
Appendix C. ECN Compatibility . . . . . . . . . . . . . . . . . . 44 | Appendix C. ECN Compatibility . . . . . . . . . . . . . . . . . . 45 | |||
Appendix D. Packet Marking with FNE During Flow Start . . . . . . 45 | Appendix D. Packet Marking with FNE During Flow Start . . . . . . 46 | |||
Appendix E. Argument for holding back the ECN nonce . . . . . . . 47 | Appendix E. Argument for holding back the ECN nonce . . . . . . . 48 | |||
Appendix F. Alternative Terminology Used in Other Documents . . . 49 | Appendix F. Alternative Terminology Used in Other Documents . . . 50 | |||
1. Introduction | 1. Introduction | |||
This document aims to provide a complete specification of the | This document provides a complete specification for the addition of | |||
addition of the re-ECN protocol to IP and guidelines on how to add it | the re-ECN protocol to IP and guidelines on how to add it to | |||
to transport layer protocols, including a complete specification of | transport layer protocols, including a complete specification of re- | |||
re-ECN in TCP as an example. The motivation behind this proposal is | ECN in TCP as an example. The motivation behind this proposal is | |||
given in [re-ecn-motive], but we include a brief summary here. | given in [I-D.briscoe-tsvwg-re-ecn-tcp-motivation], but we include a | |||
brief summary here. | ||||
Re-ECN is intended to allow senders to inform the network of the | Re-ECN is intended to allow senders to inform the network of the | |||
level of congestion they expect their flows to see. This information | level of congestion they expect their flows to see. This information | |||
is currently only visible at the transport layer. ECN [RFC3168] | is currently only visible at the transport layer. ECN [RFC3168] | |||
reveals the upstream congestion state of any path by monitoring the | reveals the upstream congestion state of any path by monitoring the | |||
rate of CE marks. The receiver then informs the sender when they | rate of CE marks. The receiver then informs the sender when they | |||
have seen a marked packet. Re-ECN builds on ECN by providing new | have seen a marked packet. Re-ECN builds on ECN by providing new | |||
codepoints that allow the sender to declare the level of congestion | codepoints that allow the sender to declare the level of congestion | |||
they expect on the forward path. It is closely related to ECN and | they expect on the forward path. It is closely related to ECN and | |||
indeed we define a compatability mode to allow a re-ECN sender to | indeed we define a compatability mode to allow a re-ECN sender to | |||
skipping to change at page 5, line 43 | skipping to change at page 5, line 44 | |||
re-ECN can solve are much more recognisable than this rather generic | re-ECN can solve are much more recognisable than this rather generic | |||
statement: mitigating distributed denial of service (DDoS); | statement: mitigating distributed denial of service (DDoS); | |||
simplifying differentiation of quality of service (QoS); policing | simplifying differentiation of quality of service (QoS); policing | |||
compliance to congestion control; and so on. | compliance to congestion control; and so on. | |||
It is important to add a few key points. | It is important to add a few key points. | |||
o In any stnadard network it always takes one round trip before any | o In any stnadard network it always takes one round trip before any | |||
feedback is received. For this reason a sender must make a | feedback is received. For this reason a sender must make a | |||
conservative prediction by transmitting IP packets with a special | conservative prediction by transmitting IP packets with a special | |||
Cautious marking. | Cautious marking when it is unsure of the state of the network. | |||
o It should be noted that the prediction is carried in-band in | o It should be noted that the prediction is carried in-band in | |||
normal data packets and for many transports feedback can be | normal data packets and for many transports feedback can be | |||
carried in the normal acknowledgements or control packets. | carried in the normal acknowledgements or control packets. | |||
o The re-ECN protocol is independent of the transport. In TCP, | o The re-ECN protocol is independent of the transport. In TCP, | |||
acknowledgments are used to convey the feedback from receiver to | acknowledgments are used to convey the feedback from receiver to | |||
sender. This memo concentrates on TCP as an example transport | sender. This memo concentrates on TCP as an example transport | |||
protocol, however the re-ECN protocol is compatible with any | protocol, however the re-ECN protocol is compatible with any | |||
transport where feedback can be sent from receiver to sender. | transport where feedback can be sent from receiver to sender. | |||
skipping to change at page 7, line 19 | skipping to change at page 7, line 21 | |||
We describe here the simplified re-ECN protocol. To simplify the | We describe here the simplified re-ECN protocol. To simplify the | |||
description we assume packets and segments are synonymous. | description we assume packets and segments are synonymous. | |||
Packets are sent from a sender to a receiver. In Figure 1 the queues | Packets are sent from a sender to a receiver. In Figure 1 the queues | |||
(Q1 and Q2) are ECN enabled as per RFC 3168 [RFC3168]. If congestion | (Q1 and Q2) are ECN enabled as per RFC 3168 [RFC3168]. If congestion | |||
occurs then packets are marked with the congestion experienced (CE) | occurs then packets are marked with the congestion experienced (CE) | |||
flag exactly as in the ECN protocol [RFC3168]; the routers do not | flag exactly as in the ECN protocol [RFC3168]; the routers do not | |||
need to be modified and do not need to know the re-ECN protocol. The | need to be modified and do not need to know the re-ECN protocol. The | |||
receiver constantly informs the sender of the current count of | receiver constantly informs the sender of the current count of | |||
Positive packets it has seen. The sender uses this information | Negative packets it has seen. The sender uses this information | |||
determine how many Positive packets it must send into the network. | determine how many Positive packets it must send into the network. | |||
The receiver's aim is to balance the number of bytes that have been | The receiver's aim is to balance the number of bytes that have been | |||
congestion marked with the number of Positive bytes it has sent. | congestion marked with the number of Positive bytes it has sent. | |||
+--------- Feedback----------+ | +--------- Feedback----------+ | |||
| | | | | | |||
v | | v | | |||
+---+ +----+ +----+ +---+ | +---+ +----+ +----+ +---+ | |||
| | | | | | | | | | | | | | | | | | |||
| S |--->| Q1 |--->| Q2 |--->| R | | | S |--->| Q1 |--->| Q2 |--->| R | | |||
skipping to change at page 8, line 4 | skipping to change at page 8, line 6 | |||
is being applied by the sender. | is being applied by the sender. | |||
In general we assume that there will be a policer at the network | In general we assume that there will be a policer at the network | |||
ingress which can rate limit traffic based on the amount of | ingress which can rate limit traffic based on the amount of | |||
congestion declared. | congestion declared. | |||
At the network egress there is a droper which can impose sanctions on | At the network egress there is a droper which can impose sanctions on | |||
flows that incorrectly declare congestion. | flows that incorrectly declare congestion. | |||
Policers and droppers are explained in more detail in | Policers and droppers are explained in more detail in | |||
[I-D.briscoe-tsvwg-re-ecn-tcp-motivation]. | ||||
[re-ecn-motive]. | ||||
4.1.2. Background and Applicability | 4.1.2. Background and Applicability | |||
The re-ECN protocol makes no changes and has no effect on the TCP | The re-ECN protocol makes no changes and has no effect on the TCP | |||
congestion control algorithm or on other rate responses to | congestion control algorithm or on other rate responses to | |||
congestion. re-ECN is not a new congestion control protocol, rather | congestion. Re-ECN is not a new congestion control protocol, rather | |||
it is orthogonal to congestion control itself. Re-ECN is concerned | it is orthogonal to congestion control itself. Re-ECN is concerned | |||
with revealing information about congestion so that users and | with revealing information about congestion so that users and | |||
networks can be held accountable for the congestion they cause, or | networks can be held accountable for the congestion they cause, or | |||
allow to be caused. | allow to be caused. | |||
Re-ECN builds on ECN so we briefly recap the essentials of the ECN | Re-ECN builds on ECN so we briefly recap the essentials of the ECN | |||
protocol [RFC3168]. Two bits in the IP protocol (v4 or v6) are | protocol [RFC3168]. Two bits in the IP protocol (v4 or v6) are | |||
assigned to the ECN field. The sender clears the field to "00" (Not- | assigned to the ECN field. The sender clears the field to "00" (Not- | |||
ECT) if either end-point transport is not ECN-capable. Otherwise it | ECT) if either end-point transport is not ECN-capable. Otherwise it | |||
indicates an ECN-capable transport (ECT) using either of the two | indicates an ECN-capable transport (ECT) using either of the two | |||
skipping to change at page 9, line 35 | skipping to change at page 9, line 36 | |||
defines a new re-ECN extension (RE) flag. We will defer the | defines a new re-ECN extension (RE) flag. We will defer the | |||
definition of the actual position of the RE flag in the IPv4 & v6 | definition of the actual position of the RE flag in the IPv4 & v6 | |||
headers until Section 5. When we don't need to choose between IPv4 | headers until Section 5. When we don't need to choose between IPv4 | |||
and v6 wire protocols it will suffice call it the RE flag. | and v6 wire protocols it will suffice call it the RE flag. | |||
Unlike the ECN field, the RE flag is intended to be set by the sender | Unlike the ECN field, the RE flag is intended to be set by the sender | |||
and SHOULD remain unchanged along the path, although it can be read | and SHOULD remain unchanged along the path, although it can be read | |||
by network elements that understand the re-ECN protocol. It is | by network elements that understand the re-ECN protocol. It is | |||
feasible that a network element MAY change the setting of the RE | feasible that a network element MAY change the setting of the RE | |||
flag, perhaps acting as a proxy for an end-point, but such a protocol | flag, perhaps acting as a proxy for an end-point, but such a protocol | |||
would have to be defined in another specification (e.g. [Re-PCN]). | would have to be defined in another specification | |||
(e.g. [I-D.briscoe-re-pcn-border-cheat]). | ||||
Although the RE flag is a separate, single bit field, it can be read | Although the RE flag is a separate, single bit field, it can be read | |||
as an extension to the two-bit ECN field; the three concatenated bits | as an extension to the two-bit ECN field; the three concatenated bits | |||
in what we will call the extended ECN field (EECN) giving eight | in what we will call the extended ECN field (EECN) giving eight | |||
codepoints. We will use the RFC3168 names of the ECN codepoints to | codepoints. We will use the RFC3168 names of the ECN codepoints to | |||
describe settings of the ECN field when the RE flag setting is "don't | describe settings of the ECN field when the RE flag setting is "don't | |||
care", but we also define the following six extended ECN codepoint | care", but we also define the following six extended ECN codepoint | |||
names for when we need to be more specific. | names for when we need to be more specific. | |||
One of re-ECN's codepoints is an alternative use of the codepoint set | One of re-ECN's codepoints is an alternative use of the codepoint set | |||
aside in RFC3168 for the ECN nonce (ECT(1)). Transports using re-ECN | aside in RFC3168 for the ECN nonce (ECT(1)). Transports using re-ECN | |||
do not need to use the ECN nonce as long as the sender is also | do not need to use the ECN nonce as long as the sender is also | |||
checking for transport protocol compliance | checking for transport protocol compliance [tcp-rcv-cheat]. The case | |||
[I-D.moncaster-tcpm-rcv-cheat]. The case for doing this is given in | for doing this is given in Appendix E. Two re-ECN codepoints are | |||
Appendix E. Two re-ECN codepoints are given compatible uses to those | given compatible uses to those defined in RFC3168 (Not-ECT and CE). | |||
defined in RFC3168 (Not-ECT and CE). The other codepoint used by | The other codepoint used by RFC3168 (ECT(0)) isn't used for re-ECN. | |||
RFC3168 (ECT(0)) isn't used for re-ECN. Altogether this leave one | Altogether this leave one codepoint of the eight unused by ECN or re- | |||
codepoint of the eight unused by ECN or re-ECN and available for | ECN and available for future use. | |||
future use. | ||||
+--------+-------------+-------+-----------+------------------------+ | +--------+-------------+-------+-----------+------------------------+ | |||
| ECN | RFC3168 | RE | EECN | re-ECN meaning | | | ECN | RFC3168 | RE | EECN | re-ECN meaning | | |||
| field | codepoint | flag | codepoint | | | | field | codepoint | flag | codepoint | | | |||
+--------+-------------+-------+-----------+------------------------+ | +--------+-------------+-------+-----------+------------------------+ | |||
| 00 | Not-ECT | 0 | Not-ECT | Not re-ECN-capable | | | 00 | Not-ECT | 0 | Not-ECT | Not re-ECN-capable | | |||
| | | | | transport (Legacy) | | | | | | | transport (Legacy) | | |||
| 00 | --- | 1 | FNE | Feedback not | | | 00 | --- | 1 | FNE | Feedback not | | |||
| | | | | established (Cautious) | | | | | | | established (Cautious) | | |||
| 01 | ECT(1) | 0 | Re-Echo | Re-echoed congestion | | | 01 | ECT(1) | 0 | Re-Echo | Re-echoed congestion | | |||
skipping to change at page 16, line 20 | skipping to change at page 16, line 20 | |||
5.3. Router Forwarding Behaviour | 5.3. Router Forwarding Behaviour | |||
Re-ECN works well without modifying the forwarding behaviour of any | Re-ECN works well without modifying the forwarding behaviour of any | |||
routers. However, below, two OPTIONAL changes to forwarding | routers. However, below, two OPTIONAL changes to forwarding | |||
behaviour are defined which respectively enhance performance and | behaviour are defined which respectively enhance performance and | |||
improve a router's discrimination against flooding attacks. They are | improve a router's discrimination against flooding attacks. They are | |||
both OPTIONAL additions that we propose MAY apply by default to all | both OPTIONAL additions that we propose MAY apply by default to all | |||
Diffserv per-hop scheduling behaviours (PHBs) [RFC2475] and ECN | Diffserv per-hop scheduling behaviours (PHBs) [RFC2475] and ECN | |||
marking behaviours [RFC3168]. Specifications for PHBs MAY define | marking behaviours [RFC3168]. Specifications for PHBs MAY define | |||
different forwarding behaviours from this default, but this is not | different forwarding behaviours from this default, but this is not | |||
required. [Re-PCN] is one example. | required. [I-D.briscoe-re-pcn-border-cheat] is one example. | |||
FNE indicates ECT: | FNE indicates ECT: | |||
The FNE codepoint tells a router to assume that the packet was | The FNE codepoint tells a router to assume that the packet was | |||
sent by an ECN-capable transport (see Section 5.4). Therefore an | sent by an ECN-capable transport (see Section 5.4). Therefore an | |||
FNE packet MAY be marked rather than dropped. Note that the FNE | FNE packet MAY be marked rather than dropped. Note that the FNE | |||
codepoint has been intentionally chosen so that, to RFC3168 | codepoint has been intentionally chosen so that, to RFC3168 | |||
compliant routers (which do not inspect the RE flag) an FNE packet | compliant routers (which do not inspect the RE flag) an FNE packet | |||
appears to be Not-ECT so it will be dropped by legacy AQM | appears to be Not-ECT so it will be dropped by legacy AQM | |||
algorithms. | algorithms. | |||
A network operator MUST NOT configure a queue to ECN mark rather | A network operator MUST NOT configure a queue to ECN mark rather | |||
than drop FNE packets unless it can guarantee that FNE packets | than drop FNE packets unless it can guarantee that FNE packets | |||
will be rate limited, either locally or upstream. The ingress | will be rate limited, either locally or upstream. The ingress | |||
policers discussed in [re-ecn-motive] would count as rate limiters | policers discussed in [I-D.briscoe-tsvwg-re-ecn-tcp-motivation] | |||
for this purpose. | would count as rate limiters for this purpose. | |||
Preferential Drop: If a re-ECN capable router queue experiences very | Preferential Drop: If a re-ECN capable router queue experiences very | |||
high load so that it has to drop arriving packets (e.g. a DoS | high load so that it has to drop arriving packets (e.g. a DoS | |||
attack), it MAY preferentially drop packets within the same | attack), it MAY preferentially drop packets within the same | |||
Diffserv PHB using the preference order for extended ECN | Diffserv PHB using the preference order for extended ECN | |||
codepoints given in Table 3. Preferential dropping can be | codepoints given in Table 3. Preferential dropping can be | |||
difficult to implement on some hardware, but if feasible it would | difficult to implement on some hardware, but if feasible it would | |||
discriminate against attack traffic if done as part of the overall | discriminate against attack traffic if done as part of the overall | |||
policing framework of [re-ecn-motive]. If nowhere else, routers | policing framework of [I-D.briscoe-tsvwg-re-ecn-tcp-motivation]. | |||
at the egress of a network SHOULD implement preferential drop | If nowhere else, routers at the egress of a network SHOULD | |||
(stronger than the MAY above). For simplicity, preferences 4 & 5 | implement preferential drop (stronger than the MAY above). For | |||
MAY be merged into one preference level. | simplicity, preferences 4 & 5 MAY be merged into one preference | |||
level. | ||||
+-------+-----+------------+-------+------------+-------------------+ | +-------+-----+------------+-------+------------+-------------------+ | |||
| ECN | RE | Extended | Worth | Drop Pref | Re-ECN meaning | | | ECN | RE | Extended | Worth | Drop Pref | Re-ECN meaning | | |||
| field | bit | ECN | | (1 = drop | | | | field | bit | ECN | | (1 = drop | | | |||
| | | codepoint | | 1st) | | | | | | codepoint | | 1st) | | | |||
+-------+-----+------------+-------+------------+-------------------+ | +-------+-----+------------+-------+------------+-------------------+ | |||
| 01 | 0 | Re-Echo | +1 | 5/4 | Re-echoed | | | 01 | 0 | Re-Echo | +1 | 5/4 | Re-echoed | | |||
| | | | | | congestion and | | | | | | | | congestion and | | |||
| | | | | | RECT | | | | | | | | RECT | | |||
| 00 | 1 | FNE | +1 | 4 | Feedback not | | | 00 | 1 | FNE | +1 | 4 | Feedback not | | |||
skipping to change at page 17, line 36 | skipping to change at page 17, line 36 | |||
| | | | | | Re-ECN-capable | | | | | | | | Re-ECN-capable | | |||
| | | | | | transport | | | | | | | | transport | | |||
+-------+-----+------------+-------+------------+-------------------+ | +-------+-----+------------+-------+------------+-------------------+ | |||
Table 3: Drop Preference of EECN Codepoints (Sorted by `Worth') | Table 3: Drop Preference of EECN Codepoints (Sorted by `Worth') | |||
The above drop preferences are arranged to preserve packets with | The above drop preferences are arranged to preserve packets with | |||
more positive worth (Section 4.4), given senders of positive | more positive worth (Section 4.4), given senders of positive | |||
packets must have honestly declared downstream congestion. A full | packets must have honestly declared downstream congestion. A full | |||
treatment of this is provided in the companion document desribing | treatment of this is provided in the companion document desribing | |||
the motivation and architecture for re-ECN [re-ecn-motive] | the motivation and architecture for re-ECN | |||
particularly when the application of re-ECN to protect against | [I-D.briscoe-tsvwg-re-ecn-tcp-motivation] particularly when the | |||
DDoS attacks is described. | application of re-ECN to protect against DDoS attacks is | |||
described. | ||||
5.4. Justification for Setting the First SYN to FNE | 5.4. Justification for Setting the First SYN to FNE | |||
the initial SYN MUST be set to FNE by Re-ECT client A (Section 6.1.4) | the initial SYN MUST be set to FNE by Re-ECT client A (Section 6.1.4) | |||
and (Section 5.3) says a queue MAY optionally treat an FNE packet as | and (Section 5.3) says a queue MAY optionally treat an FNE packet as | |||
ECN capable, so an initial SYN may be marked CE(-1) rather than | ECN capable, so an initial SYN may be marked CE(-1) rather than | |||
dropped. This seems dangerous, because the sender has not yet | dropped. This seems dangerous, because the sender has not yet | |||
established whether the receiver is a RFC3168 one that does not | established whether the receiver is a RFC3168 one that does not | |||
understand congestion marking. It also seems to allow malicious | understand congestion marking. It also seems to allow malicious | |||
senders to take advantage of ECN marking to avoid so much drop when | senders to take advantage of ECN marking to avoid so much drop when | |||
skipping to change at page 19, line 19 | skipping to change at page 19, line 19 | |||
not aware of. Otherwise, spoof messages could be sent by malicious | not aware of. Otherwise, spoof messages could be sent by malicious | |||
sources to slow down a sender (c.f. ICMP source quench). | sources to slow down a sender (c.f. ICMP source quench). | |||
However, the need for this message type is not yet confirmed, as we | However, the need for this message type is not yet confirmed, as we | |||
are considering how to prevent it being used by malicious senders to | are considering how to prevent it being used by malicious senders to | |||
scan for droppers and to test their threshold settings. {ToDo: | scan for droppers and to test their threshold settings. {ToDo: | |||
Complete this section.} | Complete this section.} | |||
5.5.2. Rate Response Control | 5.5.2. Rate Response Control | |||
As discussed in [re-ecn-motive] the sender's access operator will be | As discussed in [I-D.briscoe-tsvwg-re-ecn-tcp-motivation] the | |||
expected to use bulk per-user policing, but they might choose to | sender's access operator will be expected to use bulk per-user | |||
introduce a per-flow policer. In cases where operators do introduce | policing, but they might choose to introduce a per-flow policer. In | |||
per-flow policing, there may be a need for a sender to send a request | cases where operators do introduce per-flow policing, there may be a | |||
to the ingress policer asking for permission to apply a non-default | need for a sender to send a request to the ingress policer asking for | |||
response to congestion (where TCP-friendly is assumed to be the | permission to apply a non-default response to congestion (where TCP- | |||
default). This would require the sender to know what message | friendly is assumed to be the default). This would require the | |||
format(s) to use and to be able to discover how to address the | sender to know what message format(s) to use and to be able to | |||
policer. The required control protocol(s) are outside the scope of | discover how to address the policer. The required control | |||
this document, but will require definition elsewhere. | protocol(s) are outside the scope of this document, but will require | |||
definition elsewhere. | ||||
The policer is likely to be local to the sender and inline, probably | The policer is likely to be local to the sender and inline, probably | |||
at the ingress interface to the internetwork. So, discovery should | at the ingress interface to the internetwork. So, discovery should | |||
not be hard. A variety of control protocols already exist for some | not be hard. A variety of control protocols already exist for some | |||
widely used rate-responses to congestion. For instance DCCP | widely used rate-responses to congestion. For instance DCCP | |||
congestion control identifiers (CCIDs [RFC4340]) fulfil this role and | congestion control identifiers (CCIDs [RFC4340]) fulfil this role and | |||
so does QoS signalling (e.g. and RSVP request for controlled load | so does QoS signalling (e.g. and RSVP request for controlled load | |||
service is equivalent to a request for no rate response to | service is equivalent to a request for no rate response to | |||
congestion, but with admission control). | congestion, but with admission control). | |||
5.6. IP in IP Tunnels | 5.6. IP in IP Tunnels | |||
For re-ECN to work correctly through IP in IP tunnels, it needs | For re-ECN to work correctly through IP in IP tunnels, it needs | |||
slightly different tunnel handling to regular ECN [RFC3168]. | slightly different tunnel handling to regular ECN [RFC3168]. | |||
Currently there is some incosistency between how the handling of IP | Currently there is some incosistency between how the handling of IP | |||
in IP tunnels is defined in [RFC3168] and how it is defined in | in IP tunnels is defined in [RFC3168] and how it is defined in | |||
[RFC4301], but re-ECN would work fine with the IPsec behaviour. This | [RFC4301], but re-ECN would work fine with the IPsec behaviour. This | |||
inconsistency is addressed in a new Internet Draft [ECN-tunnel] that | inconsistency is addressed in a new Internet Draft | |||
proposes to update RFC3168 tunnel behaviour to bring it into line | [I-D.ietf-tsvwg-ecn-tunnel] that proposes to update RFC3168 tunnel | |||
with IPsec. Ideally, for re-ECN to work through a tunnel, the tunnel | behaviour to bring it into line with IPsec. Ideally, for re-ECN to | |||
entry should copy both the RE flag and the ECN field from the inner | work through a tunnel, the tunnel entry should copy both the RE flag | |||
to the outer IP header. Then at the tunnel exit, any congestion | and the ECN field from the inner to the outer IP header. Then at the | |||
marking of the outer ECN field should overwrite the inner ECN field | tunnel exit, any congestion marking of the outer ECN field should | |||
(unless the inner field is Not-ECT in which case an alarm should be | overwrite the inner ECN field (unless the inner field is Not-ECT in | |||
raised). The RE flag shouldn't change along a path, so the outer RE | which case an alarm should be raised). The RE flag shouldn't change | |||
flag should be the same as the inner. If it isn't a management alarm | along a path, so the outer RE flag should be the same as the inner. | |||
should be raised. This behaviour is the same as the full- | If it isn't a management alarm should be raised. This behaviour is | |||
functionality variant of [RFC3168] at tunnel exit, but different at | the same as the full-functionality variant of [RFC3168] at tunnel | |||
tunnel entry. | exit, but different at tunnel entry. | |||
If tunnels are left as they are specified in [RFC3168], whether the | If tunnels are left as they are specified in [RFC3168], whether the | |||
limited or full-functionality variants are used, a problem arises | limited or full-functionality variants are used, a problem arises | |||
with re-ECN if a tunnel crosses an inter-domain boundary, because the | with re-ECN if a tunnel crosses an inter-domain boundary, because the | |||
difference between positive and negative markings will not be | difference between positive and negative markings will not be | |||
correctly accounted for. In a limited functionality ECN tunnel, the | correctly accounted for. In a limited functionality ECN tunnel, the | |||
flow will appear to be RFC3168 compliant traffic, and therefore may | flow will appear to be RFC3168 compliant traffic, and therefore may | |||
be wrongly rate limited. In a full-functionality ECN tunnel, the | be wrongly rate limited. In a full-functionality ECN tunnel, the | |||
result will depend whether the tunnel entry copies the inner RE flag | result will depend whether the tunnel entry copies the inner RE flag | |||
to the outer header or the RE flag in the outer header is always | to the outer header or the RE flag in the outer header is always | |||
cleared. If the former, the flow will tend to be too positive when | cleared. If the former, the flow will tend to be too positive when | |||
accounted for at borders. If the latter, it will be too negative. | accounted for at borders. If the latter, it will be too negative. | |||
If the rules set out in [ECN-tunnel] are followed then this will not | If the rules set out in [I-D.ietf-tsvwg-ecn-tunnel] are followed then | |||
be an issue. | this will not be an issue. | |||
5.7. Non-Issues | 5.7. Non-Issues | |||
The following issues might seem to cause unfavourable interactions | The following issues might seem to cause unfavourable interactions | |||
with re-ECN, but we will explain why they don't: | with re-ECN, but we will explain why they don't: | |||
o Various link layers support explicit congestion notification, such | o Various link layers support explicit congestion notification, such | |||
as Frame Relay and ATM. Explicit congestion notification is | as Frame Relay and ATM. Explicit congestion notification is | |||
proposed to be added to other link layers, such as Ethernet | proposed to be added to other link layers, such as Ethernet | |||
(802.3ar Ethernet congestion management) and MPLS [RFC5129]; | (802.3ar Ethernet congestion management) and MPLS [RFC5129]; | |||
skipping to change at page 28, line 22 | skipping to change at page 28, line 20 | |||
responding to a SYN from a Re-ECT client or from a client that is | responding to a SYN from a Re-ECT client or from a client that is | |||
merely ECN-capable. This is because FNE indicates the transport is | merely ECN-capable. This is because FNE indicates the transport is | |||
ECN capable. | ECN capable. | |||
The original ECN specification [RFC3168] required SYNs and SYN ACKs | The original ECN specification [RFC3168] required SYNs and SYN ACKs | |||
to use the Not-ECT codepoint of the ECN field. The aim was to | to use the Not-ECT codepoint of the ECN field. The aim was to | |||
prevent well-known DoS attacks such as SYN flooding being able to | prevent well-known DoS attacks such as SYN flooding being able to | |||
gain from the advantage that ECN capability afforded over drop at | gain from the advantage that ECN capability afforded over drop at | |||
ECN-capable routers. | ECN-capable routers. | |||
For a SYN ACK, Kuzmanovic [I-D.ietf-tcpm-ecnsyn] has shown that this | For a SYN ACK, Kuzmanovic [RFC5562] has shown that this caution was | |||
caution was unnecessary, and proposes to allow a SYN ACK to be ECN- | unnecessary, and proposes to allow a SYN ACK to be ECN-capable to | |||
capable to improve performance. By stipulating the FNE codepoint for | improve performance. By stipulating the FNE codepoint for the | |||
the initial SYN, we comply with RFC3168 in word but not in spirit, | initial SYN, we comply with RFC3168 in word but not in spirit, | |||
because we have indeed set the ECN field to Not-ECT, but we have | because we have indeed set the ECN field to Not-ECT, but we have | |||
extended the ECN field with another bit. And it will be seen | extended the ECN field with another bit. And it will be seen | |||
(Section 5.3) that we have defined one setting of that bit to mean an | (Section 5.3) that we have defined one setting of that bit to mean an | |||
ECN-capable transport. Therefore, by proposing that the FNE | ECN-capable transport. Therefore, by proposing that the FNE | |||
codepoint MUST be used on the initial SYN of a connection, we have | codepoint MUST be used on the initial SYN of a connection, we have | |||
gone further by proposing to make the initial SYN ECN-capable too. | gone further by proposing to make the initial SYN ECN-capable too. | |||
Section 5.4 justifies deciding to make the initial SYN ECN-capable. | Section 5.4 justifies deciding to make the initial SYN ECN-capable. | |||
Once a TCP half connection is in RECN mode or RECN-Co mode, FNE will | Once a TCP half connection is in RECN mode or RECN-Co mode, FNE will | |||
have already been set on the initial SYN and possibly the SYN ACK as | have already been set on the initial SYN and possibly the SYN ACK as | |||
skipping to change at page 32, line 41 | skipping to change at page 32, line 38 | |||
o UDP fire and forget (e.g. DNS) | o UDP fire and forget (e.g. DNS) | |||
o UDP streaming with no feedback | o UDP streaming with no feedback | |||
o UDP streaming with feedback | o UDP streaming with feedback | |||
} | } | |||
6.2.2. Guidelines for adding Re-ECN to RSVP or NSIS | 6.2.2. Guidelines for adding Re-ECN to RSVP or NSIS | |||
A separate I-D has been submitted [Re-PCN] describing how re-ECN can | A separate I-D has been submitted [I-D.briscoe-re-pcn-border-cheat] | |||
be used in an edge-to-edge rather than end-to-end scenario. It can | describing how re-ECN can be used in an edge-to-edge rather than end- | |||
then be used by downstream networks to police whether upstream | to-end scenario. It can then be used by downstream networks to | |||
networks are blocking new flow reservations when downstream | police whether upstream networks are blocking new flow reservations | |||
congestion is too high, even though the congestion is in other | when downstream congestion is too high, even though the congestion is | |||
operators' downstream networks. This relates to current IETF work on | in other operators' downstream networks. This relates to current | |||
Admission Control over Diffserv using Pre-Congestion Notification | IETF work on Admission Control over Diffserv using Pre-Congestion | |||
(PCN) [PCN-arch]. | Notification (PCN) [RFC5559]. | |||
6.2.3. Guidelines for adding Re-ECN to DCCP | 6.2.3. Guidelines for adding Re-ECN to DCCP | |||
Beside adjusting the initial features negotiation sequence, operating | Beside adjusting the initial features negotiation sequence, operating | |||
re-ECN in DCCP [RFC4340] could be achieved by defining a new option | re-ECN in DCCP [RFC4340] could be achieved by defining a new option | |||
to be added to acknowledgments, that would include a multibit field | to be added to acknowledgments, that would include a multibit field | |||
where the destination could copy its ECC. | where the destination could copy its ECC. | |||
6.2.4. Guidelines for adding Re-ECN to SCTP | 6.2.4. Guidelines for adding Re-ECN to SCTP | |||
skipping to change at page 38, line 26 | skipping to change at page 38, line 20 | |||
13. Comments Solicited | 13. Comments Solicited | |||
Comments and questions are encouraged and very welcome. They can be | Comments and questions are encouraged and very welcome. They can be | |||
addressed to the IETF Transport Area working group's mailing list | addressed to the IETF Transport Area working group's mailing list | |||
<tsvwg@ietf.org>, and/or to the authors. | <tsvwg@ietf.org>, and/or to the authors. | |||
14. References | 14. References | |||
14.1. Normative References | 14.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in | [RFC2119] Bradner, S., "Key words | |||
RFCs to Indicate Requirement Levels", | for use in RFCs to | |||
BCP 14, RFC 2119, March 1997. | Indicate Requirement | |||
Levels", BCP 14, RFC 2119, | ||||
March 1997. | ||||
[RFC2581] Allman, M., Paxson, V., and W. | [RFC2581] Allman, M., Paxson, V., | |||
Stevens, "TCP Congestion Control", | and W. Stevens, "TCP | |||
RFC 2581, April 1999. | Congestion Control", | |||
RFC 2581, April 1999. | ||||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. | [RFC3168] Ramakrishnan, K., Floyd, | |||
Black, "The Addition of Explicit | S., and D. Black, "The | |||
Congestion Notification (ECN) to IP", | Addition of Explicit | |||
RFC 3168, September 2001. | Congestion Notification | |||
(ECN) to IP", RFC 3168, | ||||
September 2001. | ||||
[RFC3390] Allman, M., Floyd, S., and C. | [RFC3390] Allman, M., Floyd, S., and | |||
Partridge, "Increasing TCP's Initial | C. Partridge, "Increasing | |||
Window", RFC 3390, October 2002. | TCP's Initial Window", | |||
RFC 3390, October 2002. | ||||
[RFC4340] Kohler, E., Handley, M., and S. | [RFC4340] Kohler, E., Handley, M., | |||
Floyd, "Datagram Congestion Control | and S. Floyd, "Datagram | |||
Protocol (DCCP)", RFC 4340, | Congestion Control | |||
March 2006. | Protocol (DCCP)", | |||
RFC 4340, March 2006. | ||||
[RFC4341] Floyd, S. and E. Kohler, "Profile for | [RFC4341] Floyd, S. and E. Kohler, | |||
Datagram Congestion Control Protocol | "Profile for Datagram | |||
(DCCP) Congestion Control ID 2: TCP- | Congestion Control | |||
like Congestion Control", RFC 4341, | Protocol (DCCP) Congestion | |||
March 2006. | Control ID 2: TCP-like | |||
Congestion Control", | ||||
RFC 4341, March 2006. | ||||
[RFC4342] Floyd, S., Kohler, E., and J. Padhye, | [RFC4342] Floyd, S., Kohler, E., and | |||
"Profile for Datagram Congestion | J. Padhye, "Profile for | |||
Control Protocol (DCCP) Congestion | Datagram Congestion | |||
Control ID 3: TCP-Friendly Rate | Control Protocol (DCCP) | |||
Control (TFRC)", RFC 4342, | Congestion Control ID 3: | |||
March 2006. | TCP-Friendly Rate Control | |||
(TFRC)", RFC 4342, | ||||
March 2006. | ||||
[RFC4960] Stewart, R., "Stream Control | [RFC4960] Stewart, R., "Stream | |||
Transmission Protocol", RFC 4960, | Control Transmission | |||
September 2007. | Protocol", RFC 4960, | |||
September 2007. | ||||
14.2. Informative References | 14.2. Informative References | |||
[ARI05] Adams, J., Roberts, L., and A. | [ARI05] Adams, J., Roberts, L., | |||
IJsselmuiden, "Changing the Internet | and A. IJsselmuiden, | |||
to Support Real-Time Content Supply | "Changing the Internet to | |||
from a Large Fraction of Broadband | Support Real-Time Content | |||
Residential Users", BT Technology | Supply from a Large | |||
Journal (BTTJ) 23(2), April 2005. | Fraction of Broadband | |||
Residential Users", BT | ||||
Technology Journal | ||||
(BTTJ) 23(2), April 2005. | ||||
[ECN-tunnel] Briscoe, B., "Layered Encapsulation | [I-D.briscoe-re-pcn-border-cheat] Briscoe, B., "Emulating | |||
of Congestion Notification", | Border Flow Policing using | |||
draft-briscoe-tsvwg-ecn-tunnel-00 | Re-PCN on Bulk Data", draf | |||
(work in progress), June 2007. | t-briscoe-re-pcn-border- | |||
cheat-02 (work in | ||||
progress), September 2008. | ||||
[I-D.ietf-tcpm-ecnsyn] Kuzmanovic, A., "Adding Explicit | [I-D.briscoe-tsvwg-re-ecn-tcp-motivation] Briscoe, B., Jacquet, A., | |||
Congestion Notification (ECN) | Moncaster, T., and A. | |||
Capability to TCP's SYN/ACK | Smith, "Re-ECN: A | |||
Packets", draft-ietf-tcpm-ecnsyn-05 | Framework for adding | |||
(work in progress), February 2008. | Congestion Accountability | |||
to TCP/IP", draft-briscoe- | ||||
tsvwg-re-ecn-tcp- | ||||
motivation-01 (work in | ||||
progress), September 2009. | ||||
[I-D.moncaster-tcpm-rcv-cheat] Moncaster, T., "A TCP Test to Allow | [I-D.ietf-tsvwg-ecn-tunnel] Briscoe, B., "Tunnelling | |||
Senders to Identify Receiver Non- | of Explicit Congestion | |||
Compliance", | Notification", draft-ietf- | |||
draft-moncaster-tcpm-rcv-cheat-02 | tsvwg-ecn-tunnel-03 (work | |||
(work in progress), November 2007. | in progress), July 2009. | |||
[PCN-arch] Eardley, P., Babiarz, J., Chan, K., | [RFC2309] Braden, B., Clark, D., | |||
Charny, A., Geib, R., Karagiannis, | Crowcroft, J., Davie, B., | |||
G., Menth, M., and T. Tsou, "Pre- | Deering, S., Estrin, D., | |||
Congestion Notification | Floyd, S., Jacobson, V., | |||
Architecture", | Minshall, G., Partridge, | |||
draft-ietf-pcn-architecture-03 (work | C., Peterson, L., | |||
in progress), February 2008. | Ramakrishnan, K., Shenker, | |||
S., Wroclawski, J., and L. | ||||
Zhang, "Recommendations on | ||||
Queue Management and | ||||
Congestion Avoidance in | ||||
the Internet", RFC 2309, | ||||
April 1998. | ||||
[RFC2309] Braden, B., Clark, D., Crowcroft, J., | [RFC2475] Blake, S., Black, D., | |||
Davie, B., Deering, S., Estrin, D., | Carlson, M., Davies, E., | |||
Floyd, S., Jacobson, V., Minshall, | Wang, Z., and W. Weiss, | |||
G., Partridge, C., Peterson, L., | "An Architecture for | |||
Ramakrishnan, K., Shenker, S., | Differentiated Services", | |||
Wroclawski, J., and L. Zhang, | RFC 2475, December 1998. | |||
"Recommendations on Queue Management | ||||
and Congestion Avoidance in the | ||||
Internet", RFC 2309, April 1998. | ||||
[RFC2475] Blake, S., Black, D., Carlson, M., | [RFC2988] Paxson, V. and M. Allman, | |||
Davies, E., Wang, Z., and W. Weiss, | "Computing TCP's | |||
"An Architecture for Differentiated | Retransmission Timer", | |||
Services", RFC 2475, December 1998. | RFC 2988, November 2000. | |||
[RFC2988] Paxson, V. and M. Allman, "Computing | [RFC3124] Balakrishnan, H. and S. | |||
TCP's Retransmission Timer", | Seshan, "The Congestion | |||
RFC 2988, November 2000. | Manager", RFC 3124, | |||
June 2001. | ||||
[RFC3124] Balakrishnan, H. and S. Seshan, "The | [RFC3514] Bellovin, S., "The | |||
Congestion Manager", RFC 3124, | Security Flag in the IPv4 | |||
June 2001. | Header", RFC 3514, April 1 | |||
2003. | ||||
[RFC3514] Bellovin, S., "The Security Flag in | [RFC3540] Spring, N., Wetherall, D., | |||
the IPv4 Header", RFC 3514, | and D. Ely, "Robust | |||
April 2003. | Explicit Congestion | |||
Notification (ECN) | ||||
Signaling with Nonces", | ||||
RFC 3540, June 2003. | ||||
[RFC3540] Spring, N., Wetherall, D., and D. | [RFC4301] Kent, S. and K. Seo, | |||
Ely, "Robust Explicit Congestion | "Security Architecture for | |||
Notification (ECN) Signaling with | the Internet Protocol", | |||
Nonces", RFC 3540, June 2003. | RFC 4301, December 2005. | |||
[RFC4301] Kent, S. and K. Seo, "Security | [RFC4302] Kent, S., "IP | |||
Architecture for the Internet | Authentication Header", | |||
Protocol", RFC 4301, December 2005. | RFC 4302, December 2005. | |||
[RFC4302] Kent, S., "IP Authentication Header", | [RFC4305] Eastlake, D., | |||
RFC 4302, December 2005. | "Cryptographic Algorithm | |||
Implementation | ||||
Requirements for | ||||
Encapsulating Security | ||||
Payload (ESP) and | ||||
Authentication Header | ||||
(AH)", RFC 4305, | ||||
December 2005. | ||||
[RFC4305] Eastlake, D., "Cryptographic | [RFC5129] Davie, B., Briscoe, B., | |||
Algorithm Implementation Requirements | and J. Tay, "Explicit | |||
for Encapsulating Security Payload | Congestion Marking in | |||
(ESP) and Authentication Header | MPLS", RFC 5129, | |||
(AH)", RFC 4305, December 2005. | January 2008. | |||
[RFC5129] Davie, B., Briscoe, B., and J. Tay, | [RFC5559] Eardley, P., "Pre- | |||
"Explicit Congestion Marking in | Congestion Notification | |||
MPLS", RFC 5129, January 2008. | (PCN) Architecture", | |||
RFC 5559, June 2009. | ||||
[Re-PCN] Briscoe, B., "Emulating Border Flow | [RFC5562] Kuzmanovic, A., Mondal, | |||
Policing using Re-ECN on Bulk Data", | A., Floyd, S., and K. | |||
draft-briscoe-re-pcn-border-cheat-01 | Ramakrishnan, "Adding | |||
(work in progress), February 2008. | Explicit Congestion | |||
Notification (ECN) | ||||
Capability to TCP's SYN/ | ||||
ACK Packets", RFC 5562, | ||||
June 2009. | ||||
[Re-fb] Briscoe, B., Jacquet, A., Di Cairano- | [Re-fb] Briscoe, B., Jacquet, A., | |||
Gilfedder, C., Salvatori, A., | Di Cairano-Gilfedder, C., | |||
Soppera, A., and M. Koyabe, "Policing | Salvatori, A., Soppera, | |||
Congestion Response in an | A., and M. Koyabe, | |||
Internetwork Using Re-Feedback", ACM | "Policing Congestion | |||
SIGCOMM CCR 35(4)277--288, | Response in an | |||
August 2005, <http://www.acm.org/ | Internetwork Using Re- | |||
sigs/sigcomm/sigcomm2005/ | Feedback", ACM SIGCOMM | |||
techprog.html#session8>. | CCR 35(4)277--288, | |||
August 2005, <http:// | ||||
www.acm.org/sigs/sigcomm/ | ||||
sigcomm2005/ | ||||
techprog.html#session8>. | ||||
[Savage99] Savage, S., Cardwell, N., Wetherall, | [Savage99] Savage, S., Cardwell, N., | |||
D., and T. Anderson, "TCP congestion | Wetherall, D., and T. | |||
control with a misbehaving receiver", | Anderson, "TCP congestion | |||
ACM SIGCOMM CCR 29(5), October 1999, | control with a misbehaving | |||
<http://citeseer.ist.psu.edu/ | receiver", ACM SIGCOMM | |||
savage99tcp.html>. | CCR 29(5), October 1999, < | |||
http:// | ||||
citeseer.ist.psu.edu/ | ||||
savage99tcp.html>. | ||||
[Steps_DoS] Handley, M. and A. Greenhalgh, "Steps | [Steps_DoS] Handley, M. and A. | |||
towards a DoS-resistant Internet | Greenhalgh, "Steps towards | |||
Architecture", Proc. ACM SIGCOMM | a DoS-resistant Internet | |||
workshop on Future directions in | Architecture", Proc. ACM | |||
network architecture (FDNA'04) pp | SIGCOMM workshop on Future | |||
49--56, August 2004. | directions in network | |||
architecture (FDNA'04) pp | ||||
49--56, August 2004. | ||||
[re-ecn-motive] Briscoe, B., "Re-ECN: The Motivation | [tcp-rcv-cheat] Moncaster, T., Briscoe, | |||
for Adding Congestion Accountability | B., and A. Jacquet, "A TCP | |||
to TCP/IP", draft-briscoe-tsvwg-re- | Test to Allow Senders to | |||
ecn-tcp-motivation-00 (work in | Identify Receiver Non- | |||
progress), February 2009. | Compliance", draft- | |||
moncaster-tcpm-rcv-cheat- | ||||
02 (work in progress), | ||||
November 2007. | ||||
Appendix A. Precise Re-ECN Protocol Operation | Appendix A. Precise Re-ECN Protocol Operation | |||
{ToDo: fix this} | {ToDo: fix this} | |||
The protocol operation in the middle described in Section 4.3 was an | The protocol operation in the middle described in Section 4.3 was an | |||
approximation. In fact, standard ECN router marking combines 1% and | approximation. In fact, standard ECN router marking combines 1% and | |||
2% marking into slightly less than 3% whole-path marking, because | 2% marking into slightly less than 3% whole-path marking, because | |||
routers deliberately mark CE whether or not it has already been | routers deliberately mark CE whether or not it has already been | |||
marked by another router upstream. So the combined marking fraction | marked by another router upstream. So the combined marking fraction | |||
skipping to change at page 50, line 24 | skipping to change at page 51, line 8 | |||
| Currently Unused | --CU-- | Currently unused | | | Currently Unused | --CU-- | Currently unused | | |||
| | | | | | | | | | |||
| Legacy | Not-ECT | White | | | Legacy | Not-ECT | White | | |||
+-------------------+---------------+-------------------------------+ | +-------------------+---------------+-------------------------------+ | |||
Table 7: Alternative re-ECN Terminology | Table 7: Alternative re-ECN Terminology | |||
Authors' Addresses | Authors' Addresses | |||
Bob Briscoe | Bob Briscoe | |||
BT & UCL | BT | |||
B54/77, Adastral Park | B54/77, Adastral Park | |||
Martlesham Heath | Martlesham Heath | |||
Ipswich IP5 3RE | Ipswich IP5 3RE | |||
UK | UK | |||
Phone: +44 1473 645196 | Phone: +44 1473 645196 | |||
EMail: bob.briscoe@bt.com | EMail: bob.briscoe@bt.com | |||
URI: http://www.cs.ucl.ac.uk/staff/B.Briscoe/ | URI: http://www.cs.ucl.ac.uk/staff/B.Briscoe/ | |||
Arnaud Jacquet | Arnaud Jacquet | |||
skipping to change at page 52, line 4 | skipping to change at line 2392 | |||
Alan Smith | Alan Smith | |||
BT | BT | |||
B54/76, Adastral Park | B54/76, Adastral Park | |||
Martlesham Heath | Martlesham Heath | |||
Ipswich IP5 3RE | Ipswich IP5 3RE | |||
UK | UK | |||
Phone: +44 1473 640404 | Phone: +44 1473 640404 | |||
EMail: alan.p.smith@bt.com | EMail: alan.p.smith@bt.com | |||
Full Copyright Statement | ||||
Copyright (C) The IETF Trust (2009). | ||||
This document is subject to the rights, licenses and restrictions | ||||
contained in BCP 78, and except as set forth therein, the authors | ||||
retain all their rights. | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | ||||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | ||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | ||||
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Intellectual Property | ||||
The IETF takes no position regarding the validity or scope of any | ||||
Intellectual Property Rights or other rights that might be claimed to | ||||
pertain to the implementation or use of the technology described in | ||||
this document or the extent to which any license under such rights | ||||
might or might not be available; nor does it represent that it has | ||||
made any independent effort to identify any such rights. Information | ||||
on the procedures with respect to rights in RFC documents can be | ||||
found in BCP 78 and BCP 79. | ||||
Copies of IPR disclosures made to the IETF Secretariat and any | ||||
assurances of licenses to be made available, or the result of an | ||||
attempt made to obtain a general license or permission for the use of | ||||
such proprietary rights by implementers or users of this | ||||
specification can be obtained from the IETF on-line IPR repository at | ||||
http://www.ietf.org/ipr. | ||||
The IETF invites any interested party to bring to its attention any | ||||
copyrights, patents or patent applications, or other proprietary | ||||
rights that may cover technology that may be required to implement | ||||
this standard. Please address the information to the IETF at | ||||
ietf-ipr@ietf.org. | ||||
Acknowledgements | ||||
Funding for the RFC Editor function is provided by the IETF | ||||
Administrative Support Activity (IASA). This document was produced | ||||
using xml2rfc v1.32 (of http://xml.resource.org/) from a source in | ||||
RFC-2629 XML format. | ||||
End of changes. 60 change blocks. | ||||
216 lines changed or deleted | 287 lines changed or added | |||
This html diff was produced by rfcdiff 1.37a. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |