| < draft-ietf-conex-abstract-mech-04bis.txt | draft-ietf-conex-abstract-mech-04bis-BB-editorial.txt > | |||
|---|---|---|---|---|
| Congestion Exposure (ConEx) Working M. Mathis | Congestion Exposure (ConEx) M. Mathis | |||
| Group Google, Inc | Working Group Google, Inc | |||
| Internet-Draft B. Briscoe | Internet-Draft B. Briscoe | |||
| Intended status: Informational BT | Intended status: Informational BT | |||
| Expires: September 13, 2012 March 12, 2012 | Expires: January 16, 2013 July 15, 2012 | |||
| Congestion Exposure (ConEx) Concepts and Abstract Mechanism | Congestion Exposure (ConEx) Concepts and Abstract Mechanism | |||
| draft-ietf-conex-abstract-mech-04bis | draft-ietf-conex-abstract-mech-04bis | |||
| Abstract | Abstract | |||
| This document describes an abstract mechanism by which senders inform | This document describes an abstract mechanism by which senders inform | |||
| the network about the congestion encountered by packets earlier in | the network about the congestion encountered by packets earlier in | |||
| the same flow. Today, network elements at any layer may signal | the same flow. Today, network elements at any layer may signal | |||
| congestion to the receiver by dropping packets or by ECN markings, | congestion to the receiver by dropping packets or by ECN markings, | |||
| skipping to change at page 1, line 44 | skipping to change at page 1, line 44 | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 13, 2012. | This Internet-Draft will expire on January 16, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 4, line 9 | skipping to change at page 4, line 9 | |||
| In both cases the congestion signals follow the route indicated in | In both cases the congestion signals follow the route indicated in | |||
| Figure 1. A congested network device sends a signal in the data | Figure 1. A congested network device sends a signal in the data | |||
| stream on the forward path to the transport receiver, the receiver | stream on the forward path to the transport receiver, the receiver | |||
| passes it back to the sender through transport level feedback, and | passes it back to the sender through transport level feedback, and | |||
| the sender makes some congestion control adjustment. | the sender makes some congestion control adjustment. | |||
| This document extends the capabilities of the Internet protocol suite | This document extends the capabilities of the Internet protocol suite | |||
| with the addition of a new Congestion Exposure signal. To a first | with the addition of a new Congestion Exposure signal. To a first | |||
| approximation this signal, also shown in Figure 1, relays the | approximation this signal, also shown in Figure 1, relays the | |||
| congestion information from the transport sender back through the | congestion information from the transport sender back through the | |||
| internetwork layer where it is visible to all internetwork layer | internetwork layer where it is visible to any interested internetwork | |||
| devices along the forward path. This document frames the engineering | layer devices along the forward path. This document frames the | |||
| problem of designing the ConEx signal. The requirements are | engineering problem of designing the ConEx signal. The requirements | |||
| described in Section 3 and some example encoding are presented in | are described in Section 3 and some example encoding are presented in | |||
| Section 4. Section 5 describes all of the protocol components. | Section 4. Section 5 describes all of the protocol components. | |||
| This new signal is expressly designed to support a variety of new | This new signal is expressly designed to support a variety of new | |||
| policy mechanisms that might be used to instrument, monitor or manage | policy mechanisms that might be used to instrument, monitor or manage | |||
| traffic. The policy devices are not shown in Figure 1 but might be | traffic. The policy devices are not shown in Figure 1 but might be | |||
| placed anywhere along the forward data path. They are described in | placed anywhere along the forward data path. They are described in | |||
| Section 5.4 | Section 5.4 | |||
| ,---------. ,---------. | ,---------. ,---------. | |||
| |Transport| |Transport| | |Transport| |Transport| | |||
| skipping to change at page 5, line 8 | skipping to change at page 5, line 8 | |||
| respectively. | respectively. | |||
| Figure 1 | Figure 1 | |||
| Since the policy devices can affect how traffic is treated it is | Since the policy devices can affect how traffic is treated it is | |||
| assumed that there is an intrinsic motivation for users, applications | assumed that there is an intrinsic motivation for users, applications | |||
| or operating systems to understate the congestion that they are | or operating systems to understate the congestion that they are | |||
| causing. It is important to be able to audit ConEx signals, and to | causing. It is important to be able to audit ConEx signals, and to | |||
| be able apply sufficient sanction to discourage cheating of | be able apply sufficient sanction to discourage cheating of | |||
| congestion policies. The general approach to auditing is to count | congestion policies. The general approach to auditing is to count | |||
| and compare congestion signals and ConEx signals on the forward path. | signals on the forward path to check that there are never less ConEx | |||
| Many ConEx design constraints come from the need to assure that the | signals than actual congestion signals. Many ConEx design | |||
| audit function is sufficiently robust. The audit function is | constraints come from the need to assure that the audit function is | |||
| described in Section 5.5, however significant portions of this | sufficiently robust. The audit function is described in Section 5.5, | |||
| document (and prior research[Refb-dis]) is motivated by issues | however significant portions of this document (and prior | |||
| relating to the audit function and making it robust. | research[Refb-dis]) is motivated by issues relating to the audit | |||
| function and making it robust. | ||||
| The congestion and ConEx signals shown in Figure 1 represent a series | The congestion and ConEx signals shown in Figure 1 represent a series | |||
| of discrete events: ECN marks or lost packets, carried by the forward | of discrete events: ECN marks or lost packets, carried by the forward | |||
| data stream and fed back into the Internetwork layer. The policy and | data stream and fed back into the Internetwork layer. The policy and | |||
| audit functions are most likely to act on the accumulated values of | audit functions are most likely to act on the accumulated values of | |||
| these signals, for which we use the term "volume". For example | these signals, for which we use the term "volume". For example | |||
| traffic volume is the total number of bytes delivered, optionally | traffic volume is the total number of bytes delivered, optionally | |||
| over a specified time interval and over some aggregate of traffic | over a specified time interval and over some aggregate of traffic | |||
| (e.g. all traffic from a site). While loss-volume is the total | (e.g. all traffic from a site). While loss-volume is the total | |||
| amount of bytes discarded from some aggregate over an interval. The | amount of bytes discarded from some aggregate over an interval. The | |||
| term congestion-volume is defined precisely in | term congestion-volume is defined precisely in | |||
| [I-D.ietf-conex-concepts-uses]. Note that volume per unit time is a | [I-D.ietf-conex-concepts-uses]. Note that volume per unit time is | |||
| rate. | (average) rate. | |||
| One of the design goals of the ConEx protocol is that none of the | One of the design goals of the ConEx protocol is that none of the | |||
| important policy mechanisms requires per flow state, and that policy | important policy mechanisms requires per flow state, and that policy | |||
| mechanisms can be implemented for heavily aggregated traffic in the | mechanisms can be implemented for heavily aggregated traffic in the | |||
| core of the Internet with complexity akin to accumulating marking | core of the Internet with complexity akin to accumulating marking | |||
| volumes per logical link. Ideally it would also be possible to audit | volumes per logical link. Ideally it would also be possible to audit | |||
| ConEx signals without per flow state, however this is not always | ConEx signals without per flow state, however this is not always | |||
| possible. Since auditing can be done near the edges of the network | possible. Since auditing can be done near the edges of the network | |||
| where traffic is less aggregated, per flow state is more easily | where traffic is less aggregated, per flow state is more easily | |||
| tolerated. Also, the flow-state required for audit creates itself as | tolerated. Also, the flow-state required for audit creates itself as | |||
| skipping to change at page 6, line 23 | skipping to change at page 6, line 24 | |||
| To be successful the ConEx protocol must have the property that the | To be successful the ConEx protocol must have the property that the | |||
| relevant stakeholders each have the incentive to unilaterally start | relevant stakeholders each have the incentive to unilaterally start | |||
| on each stage of partial deployment, which in turn creates incentives | on each stage of partial deployment, which in turn creates incentives | |||
| for further deployment. Furthermore, legacy systems that will never | for further deployment. Furthermore, legacy systems that will never | |||
| be upgraded do not become a barrier to deploying ConEx. Issues | be upgraded do not become a barrier to deploying ConEx. Issues | |||
| relating to partial deployment are described in Section 6. | relating to partial deployment are described in Section 6. | |||
| Note that ConEx signals are not intended to be used for fine-grained | Note that ConEx signals are not intended to be used for fine-grained | |||
| congestion control. They are anticipated to be most useful at longer | congestion control. They are anticipated to be most useful at longer | |||
| time scales, for example the total congestion caused by a user might | time scales, for example the total congestion caused by a user might | |||
| be serve as an input to higher level policy or accountability | serve as an input to higher level policy or accountability functions, | |||
| functions, designed to create incentives for improving user behavior, | designed to create incentives for improving user behavior, such as | |||
| such as choosing to send large quantities of data at off peak times, | choosing to send large quantities of data at off-peak times, at lower | |||
| at lower data rates or with less aggressive protocols such as | data rates or with less aggressive protocols such as LEDBAT | |||
| LEDBAT[I-D.ietf-ledbat-congestion] (see | [I-D.ietf-ledbat-congestion] (see [I-D.ietf-conex-concepts-uses]). | |||
| [I-D.ietf-conex-concepts-uses]). | ||||
| Ultimately ConEx signals have the potential to provide a mechanism to | Ultimately ConEx signals have the potential to provide a mechanism to | |||
| regulate global Internet congestion. From the earliest days of | regulate global Internet congestion. From the earliest days of | |||
| congestion control research there has been a concern that there is no | congestion control research there has been a concern that there is no | |||
| mechanism to prevent transport designers from incrementally making | mechanism to prevent transport designers from incrementally making | |||
| protocols more aggressive without bound and spiraling to a "tragedy | protocols more aggressive without bound and spiraling to a "tragedy | |||
| of the commons" Internet congestion collapse. The "TCP friendly" | of the commons" Internet congestion collapse. The "TCP friendly" | |||
| paradigm was created in part to forestall this failure. However, it | paradigm was created in part to forestall this failure. However, it | |||
| no longer commands any authority because it has little to say about | no longer commands any authority because it has little to say about | |||
| the Internet of today, which has moved beyond the scaling range of | the Internet of today, which has moved beyond the scaling range of | |||
| standard TCP. As a consequence, many transports and applications are | standard TCP [RFC5681]. As a consequence, many transports and | |||
| opening arbitrarily large numbers of connections or using arbitrary | applications are opening arbitrarily large numbers of connections or | |||
| levels of aggressiveness. ConEx represents a recognition that the | using arbitrary levels of aggressiveness. ConEx represents a | |||
| IETF cannot regulate this space directly because it concerns the | recognition that the IETF cannot regulate this space directly because | |||
| behaviour of users and applications, not individual transport | it concerns the behaviour of users and applications, not individual | |||
| protocols. Instead the IETF can give network operators the protocol | transport protocols. Instead the IETF can give network operators the | |||
| tools to arbitrate the space themselves, with better bulk traffic | protocol tools to arbitrate the space themselves, with better bulk | |||
| management. This in turn should create incentives for users, and | traffic management. This in turn should create incentives for users, | |||
| designers of application and of transport protocols to be more | and designers of application and of transport protocols to be more | |||
| mindful about contributing to congesting. | mindful about contributing to congesting. | |||
| 2.1. Terminology | 2.1. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| ConEx signals in IP packet headers from the sender to the network: | ConEx signals in IP packet headers from the sender to the network: | |||
| Not-ConEx: The transport is not ConEx-capable. | Not-ConEx: The transport (or at least this packet) is not ConEx- | |||
| capable. | ||||
| ConEx-Capable: The transport is ConEx-Capable. This is the opposite | ConEx-Capable: The transport is ConEx-Capable. This is the opposite | |||
| of Not-ConEx. | of Not-ConEx. | |||
| ConEx Signal: A packet sent by a ConEx Capable transport. It | ConEx Signal: A packet sent by a ConEx Capable transport. It | |||
| carries at least one of the following signals: | carries at least one of the following signals: | |||
| Re-Echo-Loss: The transport has experienced a loss. | Re-Echo-Loss: The transport has experienced a loss. | |||
| Re-Echo-ECN: The transport has experienced an ECN mark. | Re-Echo-ECN: The transport has experienced an ECN mark. | |||
| Credit: The transport is building up credit to allow for any | Credit: The transport is building up credit to allow for any | |||
| future delay in expected ConEx signals (see Section 5.5.1) | future delay in expected ConEx signals (see Section 5.5.1) | |||
| ConEx-Not-Marked: The transport is ConEx-capable but is signaling | ConEx-Not-Marked: The transport is ConEx-capable but is signaling | |||
| none of Re-Echo-Loss, Re-Echo-ECN or Credit. | none of Re-Echo-Loss, Re-Echo-ECN or Credit. | |||
| skipping to change at page 8, line 14 | skipping to change at page 8, line 14 | |||
| c. The ConEx signal SHOULD be timely. There will be a minimum delay | c. The ConEx signal SHOULD be timely. There will be a minimum delay | |||
| of one RTT, and often longer if the transport protocol sends | of one RTT, and often longer if the transport protocol sends | |||
| infrequent feedback (consider RTCP [RFC3550] for example). This | infrequent feedback (consider RTCP [RFC3550] for example). This | |||
| delay complicates auditing, and SHOULD be minimized. | delay complicates auditing, and SHOULD be minimized. | |||
| d. The ConEx signal SHOULD be accurate and auditable. The general | d. The ConEx signal SHOULD be accurate and auditable. The general | |||
| approach is to observe the volume of congestion signals and ConEx | approach is to observe the volume of congestion signals and ConEx | |||
| signals on the forward data path and verify that the ConEx | signals on the forward data path and verify that the ConEx | |||
| signals do not under-represent the congestion signals (see | signals do not under-represent the congestion signals (see | |||
| Section 5.5). The simplest mechanism to compensate for the round | Section 5.5). The simplest mechanism to compensate for the round | |||
| trip delay between the signals is to include a "credit" signal to | trip delay between the signals is for the sender to include a | |||
| cover the yet to be observed congestion that might occur during | "credit" signal to cover the yet to be observed congestion that | |||
| this delay. (see Section 5.5.1 for details). Furthermore, the | might occur during this delay. (see Section 5.5.1 for details). | |||
| ConEx signals for packet loss and ECN marking SHOULD have | Furthermore, the ConEx signals for packet loss and ECN marking | |||
| distinct encodings because they are likely to require different | SHOULD have distinct encodings because they are likely to require | |||
| auditing techniques. | different auditing techniques. | |||
| It is already known implementing ConEx signals is likely to entail | It is already known that implementing ConEx signals is likely to | |||
| some compromises, and therefore all the requirements above are | entail some compromises, and therefore all the requirements above are | |||
| expressed with the keyword 'SHOULD' rather than 'MUST'. The only | expressed with the keyword 'SHOULD' rather than 'MUST'. The only | |||
| mandatory requirement is that a concrete protocol description MUST | mandatory requirement is that a concrete protocol description MUST | |||
| give sound reasoning if it chooses not to meet some requirement. | give sound reasoning if it chooses not to meet some requirement. | |||
| 3.2. Requirements for the Audit Function | 3.2. Requirements for the Audit Function | |||
| The role and constraints on the audit function are described in | The role and constraints on the audit function are described in | |||
| Section 5.5. There is no intention to standardise the audit | Section 5.5. There is no intention to standardise the audit | |||
| function. However, it is necessary to lay down the following | function. However, it is necessary to lay down the following | |||
| normative constraints on audit behaviour so that transport designers | normative constraints on audit behaviour so that transport designers | |||
| skipping to change at page 9, line 43 | skipping to change at page 9, line 43 | |||
| conversions or accounting; | conversions or accounting; | |||
| D. If the units are bytes a definition of which headers are | D. If the units are bytes a definition of which headers are | |||
| included in the size of the packet; | included in the size of the packet; | |||
| E. How tunnels should propagate the ConEx encoding; | E. How tunnels should propagate the ConEx encoding; | |||
| F. Whether the encoding fields are mutable or not, to ensure that | F. Whether the encoding fields are mutable or not, to ensure that | |||
| header authentication, checksum calculation, etc. process them | header authentication, checksum calculation, etc. process them | |||
| correctly. | correctly. | |||
| G. Definition of any extensibility; | G. Definition of any extensibility; | |||
| H. Backward and forward compatibility and potential migration | H. Backward and forward compatibility and potential migration | |||
| strategies; | strategies; | |||
| I. Any (hopefully optional) modification to data-plane forwarding | I. Any (optional) modification to data-plane forwarding dependent | |||
| dependent on the encoding (e.g. preferential discard, | on the encoding (e.g. preferential discard, interaction with | |||
| interaction with Diffserv, ECN etc.); | Diffserv, ECN etc.); | |||
| J. Any warning or error messages relevant to the encoding. | J. Any warning or error messages relevant to the encoding. | |||
| Transport Layer: | Transport Layer: | |||
| A. A specification of any required changes to congestion feedback | A. A specification of any required changes to congestion feedback | |||
| in particular transport protocols. | in particular transport protocols. | |||
| B. A specification (or minimally a recommendation) for how a | B. A specification (or minimally a recommendation) for how a | |||
| transport should estimate credits at the beginning of a new | transport should estimate credits at the beginning of a new | |||
| connection. | connection. | |||
| C. @@@More TBA, incl ops & management@@@ | C. @@@More TBA, incl ops & management@@@ | |||
| Security: | Security: | |||
| skipping to change at page 11, line 21 | skipping to change at page 11, line 21 | |||
| disincentives for deployment. | disincentives for deployment. | |||
| Nonetheless, this Naive encoding does present a clear mental model of | Nonetheless, this Naive encoding does present a clear mental model of | |||
| how the ConEx protocol might function under various uses. It is | how the ConEx protocol might function under various uses. It is | |||
| useful for thought experiments where it can be stipulated that all | useful for thought experiments where it can be stipulated that all | |||
| participants are honest and it does illustrate some of the incentives | participants are honest and it does illustrate some of the incentives | |||
| that might be introduced by ConEx. | that might be introduced by ConEx. | |||
| 4.2. Null Encoding | 4.2. Null Encoding | |||
| In limited contexts is possible to implement ConEx like functions | In limited contexts it is possible to implement ConEx-like functions | |||
| without any signals at all by measuring rest-of-path congestion | without any signals at all by measuring rest-of-path congestion | |||
| directly from TCP headers. The algorithm is to keep at least one RTT | directly from TCP headers. The algorithm is to keep at least one RTT | |||
| of past TCP headers and matching each new header against the history | of past TCP headers and matching each new header against the history | |||
| to count duplicate data. | to count duplicate data. | |||
| This could implement many ConEx policies, without any explicit | This could implement many ConEx policies, without any explicit | |||
| protocol. It is fairly easy to implement, at least at low rate (e.g. | protocol. It is fairly easy to implement, at least at low rate (e.g. | |||
| in a software based edge router). However, it would only be useful | in a software based edge router). However, it would only be useful | |||
| in cases where the network operator can see the TCP headers. This is | in cases where the network operator can see the TCP headers. This is | |||
| currently (2012) the vast majority of traffic because UDP, IPSEC and | currently (2012) the vast majority of traffic because UDP, IPSEC and | |||
| VPN tunnels are used far less than SSL or TLS over TCP/IP, which do | VPN tunnels are used far less than SSL or TLS over TCP/IP, which do | |||
| not hide TCP sequence numbers from network devices. However, anyone | not hide TCP sequence numbers from network devices. However, anyone | |||
| specifically intending to avoid the attention of a congestion policy | specifically intending to avoid the attention of a congestion policy | |||
| device would only have to hide their TCP headers from the network | device would only have to hide their TCP headers from the network | |||
| operator (e.g. by using a VPN tunnel). | operator (e.g. by using a VPN tunnel). | |||
| 4.3. ECN Based Encoding | 4.3. ECN Based Encoding | |||
| The re-ECN specification [I-D.briscoe-tsvwg-re-ecn-tcp] presents an | The re-ECN specification [I-D.briscoe-conex-re-ecn-tcp] presents an | |||
| IPv4 implementation of ConEx that was tightly integrated with ECN | encoding of ConEx in IPv4 and IPv6 that was tightly integrated with | |||
| encoding in order to fit into the IPv4 header. ConEx and ECN are | the ECN encoding in order to fit into the IPv4 header. ConEx and ECN | |||
| orthogonal signals in the sense that any individual packet may need | are orthogonal signals in the sense that any individual packet may | |||
| to represent any one of the 4 possible combinations of signal values. | need to represent any one of the 4 possible combinations of signal | |||
| Ideally their encoding should be entirely independent. However, | values. Ideally their encoding should be entirely independent. | |||
| given the limited number of header bit and/or code points, these | However, given the limited number of header bits and/or code points, | |||
| signals had to partially share code points. | re-ECN chooses to partially share code points between ConEx and ECN | |||
| and to re-echo both loss and ECN with just one codepoint. | ||||
| The central theme of the re-ECN work was an audit mechanism that | The central theme of the re-ECN work is an audit mechanism that | |||
| provides sufficient disincentives against misrepresenting congestion | provides sufficient disincentives against misrepresenting congestion | |||
| [I-D.briscoe-tsvwg-re-ecn-motiv]. It is analyzed extensively in | ||||
| [I-D.briscoe-conex-re-ecn-motiv]. It is analyzed extensively in | ||||
| Briscoe's PhD dissertation [Refb-dis]. For a tutorial background on | Briscoe's PhD dissertation [Refb-dis]. For a tutorial background on | |||
| re-ECN motivation and techniques, see [Re-fb, FairerFaster]. | re-ECN motivation and techniques, see [Re-fb, FairerFaster]. | |||
| Re-ECN is an example of one chosen set of compromises attempting to | Re-ECN is an example of one chosen set of compromises attempting to | |||
| meet the requirements of Section 3. The present document takes a | meet the requirements of Section 3. The present document takes a | |||
| step back, aiming to state the ideal requirements in order to allow | step back, aiming to state the ideal requirements in order to allow | |||
| the Internet community to assess whether different compromises might | the Internet community to assess whether different compromises might | |||
| be better. | be better. | |||
| The problem with Re-ECN is that it requires that receivers be ECN | The problem with Re-ECN is that it requires that receivers be ECN | |||
| enabled in addition to sender changes. Newer encodings overcome this | enabled in addition to sender changes. Newer encodings | |||
| problem by being able to represent both loss and ECN based | [I-D.ietf-conex-destopt] overcome this problem by being able to | |||
| congestion, and assuming that both signals must be supported | represent loss and ECN based congestion separately. | |||
| indefinitely. | ||||
| 4.4. Independent Bits | 4.4. Independent Bits | |||
| This encoding involves flag bits, each of which the sender can set | This encoding involves flag bits, each of which the sender can set | |||
| independently to indicate to the network one of the following four | independently to indicate to the network one of the following four | |||
| signals: | signals: | |||
| ConEx (Not-ConEx) The transport is (or is not) using ConEx with this | ConEx (Not-ConEx) The transport is (or is not) using ConEx with this | |||
| packet (the protocol MUST be arranged so that legacy transport | packet (the protocol MUST be arranged so that legacy transport | |||
| senders implicitly send Not-ConEx) | senders implicitly send Not-ConEx) | |||
| Re-Echo-Loss (Not-Re-Echo-Loss) The transport has (or has not) | Re-Echo-Loss (Not-Re-Echo-Loss) The transport has (or has not) | |||
| skipping to change at page 13, line 51 | skipping to change at page 13, line 51 | |||
| [I-D.ietf-tsvwg-byte-pkt-congest] advises that congestion indications | [I-D.ietf-tsvwg-byte-pkt-congest] advises that congestion indications | |||
| SHOULD be interpreted in units of bytes when responding to | SHOULD be interpreted in units of bytes when responding to | |||
| congestion, at least on today's Internet. In any TCP implementation | congestion, at least on today's Internet. In any TCP implementation | |||
| this is simple to achieve for varying size packets, given TCP SACK | this is simple to achieve for varying size packets, given TCP SACK | |||
| tracks losses in bytes. If an encoding is specified in units of | tracks losses in bytes. If an encoding is specified in units of | |||
| bytes, the encoding SHOULD also specify which headers to include in | bytes, the encoding SHOULD also specify which headers to include in | |||
| the size of a packet. | the size of a packet. | |||
| 5. Congestion Exposure Components | 5. Congestion Exposure Components | |||
| The components shown in Figure 1 are described in more detail. | The components shown in Figure 1 as well as policy and audit are | |||
| described in more detail. | ||||
| 5.1. Network Devices (Not modified) | 5.1. Network Devices (Not modified) | |||
| Congestion signals originate from network devices as they do today. | Congestion signals originate from network devices as they do today. | |||
| A congested router, switch or other network device can discard or ECN | A congested router, switch or other network device can discard or ECN | |||
| mark packets when it is congested. | mark packets when it is congested. | |||
| 5.2. Modified Senders | 5.2. Modified Senders | |||
| The sending transport needs to be modified to send Congestion | The sending transport needs to be modified to send Congestion | |||
| Exposure Signals in response to congestion feedback signals (For | Exposure Signals in response to congestion feedback signals (e.g. for | |||
| example see [I-D.ietf-conex-tcp-modifications]). We want to permit | the case of a TCP transport see [I-D.ietf-conex-tcp-modifications]). | |||
| ConEx without ECN (e.g. if the receiver does not support ECN). | We want to permit ConEx without ECN (e.g. if the receiver does not | |||
| However, we want to encourage a ConEx sender to at least attempt to | support ECN). However, we want to encourage a ConEx sender to at | |||
| negotiate ECN, because it is believed that ConEx without ECN is | least attempt to negotiate ECN, because it is believed that ConEx | |||
| harder to audit, and thus potentially exposed to fraud. Since honest | without ECN is harder to audit, and thus potentially exposed to | |||
| users have the potential to benefit from stronger mechanisms to | cheating. Since honest users have the potential to benefit from | |||
| manage traffic they have an incentive to deploy ConEx and ECN | stronger mechanisms to manage traffic they have an incentive to | |||
| together. This incentive is not sufficient to prevent a dishonest | deploy ConEx and ECN together. This incentive is not sufficient to | |||
| user from constructing (or configuring) a sender that enables ConEx | prevent a dishonest user from constructing (or configuring) a sender | |||
| after choosing not to negotiate ECN, but is should be sufficient to | that enables ConEx after choosing not to negotiate ECN, but is should | |||
| prevent this from being the sustained default case for any | be sufficient to prevent this from being the sustained default case | |||
| significant pool of users. | for any significant pool of users. | |||
| Permitting ConEx without ECN is necessary to facilitate bootstrapping | Permitting ConEx without ECN is necessary to facilitate bootstrapping | |||
| other parts of ConEx deployment. | other parts of ConEx deployment. | |||
| 5.3. Receivers (Optionally Modified) | 5.3. Receivers (Optionally Modified) | |||
| Any receiving transport may already feedback sufficiently useful | Any receiving transport may already feedback sufficiently useful | |||
| signals to the sender so that it does not need to be altered. | signals to the sender so that it does not need to be altered. | |||
| If the transport receiver does not support ECN, then it's native loss | If the transport receiver does not support ECN, then it's native loss | |||
| skipping to change at page 14, line 50 | skipping to change at page 14, line 50 | |||
| A traditional ECN implementation (RFC 3168 for TCP) signals | A traditional ECN implementation (RFC 3168 for TCP) signals | |||
| congestion no more than once per round trip. The sender may require | congestion no more than once per round trip. The sender may require | |||
| more precise feedback from the receiver otherwise it is at risk of | more precise feedback from the receiver otherwise it is at risk of | |||
| appearing to be understating its ConEx Signals. | appearing to be understating its ConEx Signals. | |||
| Ideally, ConEx should be added to a transport like TCP without | Ideally, ConEx should be added to a transport like TCP without | |||
| mandatory modifications to the receiver. But an optional | mandatory modifications to the receiver. But an optional | |||
| modification to the receiver could be recommended for precision (see | modification to the receiver could be recommended for precision (see | |||
| [I-D.kuehlewind-tcpm-accurate-ecn]). This was the approach taken | [I-D.kuehlewind-tcpm-accurate-ecn]). This was the approach taken | |||
| when adding re-ECN to TCP [I-D.briscoe-tsvwg-re-ecn-tcp]. | when adding re-ECN to TCP [I-D.briscoe-conex-re-ecn-tcp]. | |||
| 5.4. Policy Devices | 5.4. Policy Devices | |||
| Policy devices are characterised by a need to be configured with a | Policy devices are characterised by a need to be configured with a | |||
| policy related to the users or neighboring networks being served. In | policy related to the users or neighboring networks being served. In | |||
| contrast, the auditing devices referred to in the previous section | contrast, auditing devices solely enforce compliance with the ConEx | |||
| primarily enforce compliance with the ConEx protocol and do not need | protocol and do not need to be configured with any client-specific | |||
| to be configured with any client-specific policy. | policy. | |||
| 5.4.1. Congestion Monitoring Devices | 5.4.1. Congestion Monitoring Devices | |||
| Policy devices can typically be decomposed into two functions i) | Policy devices can typically be decomposed into two functions i) | |||
| monitoring the ConEx signal to compare it with a policy then ii) | monitoring the ConEx signal to compare it with a policy then ii) | |||
| acting in some way on the result. Various actions might be invoked | acting in some way on the result. Various actions might be invoked | |||
| against 'out of contract' traffic, such as policing (see | against 'out of contract' traffic, such as policing (see | |||
| Section 5.4.3), re-routing, or downgrading the class of service. | Section 5.4.3), re-routing, or downgrading the class of service. | |||
| Alternatively a policy device might not act directly on the traffic, | Alternatively a policy device might not act directly on the traffic, | |||
| skipping to change at page 15, line 34 | skipping to change at page 15, line 34 | |||
| capacity upgrades, penalty clauses in contracts, levy charges based | capacity upgrades, penalty clauses in contracts, levy charges based | |||
| on congestion, or merely send warnings to clients who are causing | on congestion, or merely send warnings to clients who are causing | |||
| excessive congestion. | excessive congestion. | |||
| Nonetheless, whatever action is invoked, the congestion monitoring | Nonetheless, whatever action is invoked, the congestion monitoring | |||
| function will always be a necessary part of any policy device. | function will always be a necessary part of any policy device. | |||
| 5.4.2. Rest-of-Path Congestion Monitoring | 5.4.2. Rest-of-Path Congestion Monitoring | |||
| ConEx signals indicate the level of congestion along a whole path | ConEx signals indicate the level of congestion along a whole path | |||
| from source to destination. In contrast when ECN signals are | from source to destination. In contrast, ECN signals monitored in | |||
| monitored in the middle of a network, they indicate the level of | the middle of a network indicate the level of congestion experienced | |||
| congestion experienced so far on the path. | so far on the path (of course, only in ECN-capable traffic). | |||
| If a monitor in the middle of a network (e.g. at a network border) | If a monitor in the middle of a network (e.g. at a network border) | |||
| measures both of these signals, it can subtract the level of ECN | measures both of these signals, it can subtract the level of ECN | |||
| (path so far) from the level of ConEx (whole path) to derive a | (path so far) from the level of ConEx (whole path) to derive a | |||
| measure of the congestion that packets are likely to experience | measure of the congestion that packets are likely to experience | |||
| between the monitoring point and their destination (rest-of-path | between the monitoring point and their destination (rest-of-path | |||
| congestion). | congestion). | |||
| It will often be preferable for policy devices to monitor rest-of- | It will often be preferable for policy devices to monitor rest-of- | |||
| path congestion if they can, because it is a measure of the | path congestion if they can, because it is a measure of the | |||
| downstream congestion that the policy device can directly influence | downstream congestion that the policy device can directly influence | |||
| by controlling the traffic passing through it. | by controlling the traffic passing through it. | |||
| 5.4.3. Congestion Policers | 5.4.3. Congestion Policers | |||
| A congestion policer can be implemented in a very similar way to a | A congestion policer can be implemented in a very similar way to a | |||
| bit-rate policer, but its effect can be focused solely on traffic | bit-rate policer, but its effect can be focused solely on traffic of | |||
| causing congestion downstream, which ConEx signals make visible. | users causing congestion downstream, which ConEx signals make | |||
| Without ConEx signals, the only way to mitigate congestion is to | visible. Without ConEx signals, the only way to mitigate congestion | |||
| blindly limit traffic bit-rate, on the assumption that high bit-rate | is to blindly limit traffic bit-rate, on the assumption that high | |||
| is more likely to cause congestion. | bit-rate is more likely to cause congestion. | |||
| A congestion policer monitors all ConEx traffic entering a network, | A congestion policer monitors all ConEx traffic entering a network, | |||
| or some identifiable subset. Using ConEx signals (and preferably | or some identifiable subset. Using ConEx signals (and preferably | |||
| subtracting ECN signals to yield rest-of-path congestion), it | subtracting ECN signals to yield rest-of-path congestion), it | |||
| measures the amount of congestion that this traffic is contributing | measures the amount of congestion that this traffic is contributing | |||
| somewhere downstream. If this exceeds a policy-configured | somewhere downstream. If this persistently exceeds a policy- | |||
| 'congestion-bit-rate' the congestion policer can limit all the | configured 'congestion-bit-rate' the congestion policer can limit all | |||
| monitored ConEx traffic. | the monitored ConEx traffic. | |||
| A congestion policer can be implemented by a simple token bucket. | A congestion policer can be implemented by a simple token bucket | |||
| But unlike a bit-rate policer, it removes a token only when it | applied to an aggregate. But unlike a bit-rate policer, it removes | |||
| forwards a packet that is ConEx-Marked, effectively treating Not- | tokens only when it forwards packets that are ConEx-Marked, | |||
| ConEx-Marked packets as invisible. Consequently, because tokens give | effectively treating Not-ConEx-Marked packets as invisible. | |||
| the right to send congested bits, the fill-rate of the token bucket | Consequently, because tokens give the right to send congested bits, | |||
| will represent the allowed congestion-bit-rate. This should provide | the fill-rate of the token bucket will represent the allowed | |||
| sufficient traffic management without having to additionally | congestion-bit-rate. This should provide sufficient traffic | |||
| constrain the straight bit-rate at all. See [CongPol] for details. | management without having to additionally constrain the straight bit- | |||
| rate at all. See [CongPol] for details. | ||||
| Note that the policing action is to introduce a throttle (delay | Note that the policing action is to introduce a throttle (delay | |||
| through traffic) immediately upstream of the congestion policer. | through traffic) immediately upstream of the congestion policer. | |||
| This throttle is likely to include a queue with its own AQM, which | This throttle could include a queue with its own AQM, which | |||
| potentially increases the whole path congestion. In effect the | potentially increases the whole path congestion. In effect the | |||
| congestion policer has moved the congestion earlier in the path, to | congestion policer has moved the congestion earlier in the path, and | |||
| protect downstream resources by reducing the congestion in the rest | focused it on one user to protect downstream resources by reducing | |||
| of the path. | the congestion in the rest of the path. | |||
| 5.5. Audit | 5.5. Audit | |||
| The most critical aspect of ConEx is the capability to support robust | The most critical aspect of ConEx is the capability to support robust | |||
| auditing. It can be assumed that there will be an intrinsic | auditing. It can be assumed that there will be an intrinsic | |||
| motivation for users to understate the congestion that they are | motivation for users to understate the congestion that they are | |||
| causing. Without strong audit functions the ConEx signal is likely | causing. Without strong audit functions the ConEx signal is likely | |||
| to become inaccurate to the point being useless. The most important | to become inaccurate to the point of being useless. The most | |||
| feature of an encoding design is likely to be the robustness of the | important feature of an encoding design is likely to be the | |||
| auditing it supports. | robustness of the auditing it supports. | |||
| The general approach is to compare the volume of ConEx signals to | The general approach is to compare the volume of ConEx signals to | |||
| direct measures of actual congestion volume. The technique described | direct measures of actual congestion volume. The credit approach | |||
| in Section 5.5.1 can be used to guarantee that this is a strict | described in Section 5.5.1 can be used to guarantee that this is a | |||
| bound: if the actual congestion exceeds the ConEx signal, then some | strict bound: if the actual congestion exceeds the ConEx signal, then | |||
| congestion was understated and some sanction should be applied to the | some congestion was understated and some sanction should be applied | |||
| traffic. Although sanctions are beyond the scope of this document, | to the traffic. Although sanctions are beyond the scope of this | |||
| an example sanction might be to throttle the traffic immediately | document, an example sanction might be to throttle the traffic | |||
| upstream of the auditor to prevent the user from getting any | immediately upstream of the auditor to prevent the user from getting | |||
| advantage by understating congestion. Such a throttle would likely | any advantage by understating congestion. Such a throttle would | |||
| include some combination of delaying, ECN marking or dropping | likely include some combination of delaying or dropping traffic. | |||
| traffic. | ||||
| This document does not preclude "statistical auditing", where the | This document does not preclude "statistical auditing", where the | |||
| audit function indicates some sort of probability that a particular | audit function indicates some sort of probability that a particular | |||
| flow is under reporting congestion, however this design choice | flow is under-reporting congestion, however this design choice | |||
| greatly complicates designing an appropriate sanction, due to the | greatly complicates designing an appropriate sanction, due to the | |||
| possibility of a false hit. | possibility of a false hit. | |||
| To facilitate ConEx deployment, not-ConEx traffic might be treated as | To facilitate ConEx deployment, not-ConEx traffic might be treated as | |||
| a special case of understating congestion, but with a different | a special case of understating congestion, but with a different | |||
| sanction. For example an ISP might apply a data rate cap to not- | sanction. For example an ISP might apply a data rate cap to not- | |||
| ConEx traffic, while applying a congestion volume cap to ConEx marked | ConEx traffic, while applying a congestion volume cap to ConEx marked | |||
| traffic. With suitable parameters this is likely to give ConEx | traffic. With suitable parameters this is likely to give ConEx | |||
| marked traffic a much larger share of the network during off peak | marked traffic a much larger share of the network during off peak | |||
| hours. (Note that in this example the ConEx auditor is also acting | hours. (Note that in this example the ConEx auditor is also acting | |||
| as a ConEx policy device.) Another option to facilitate deployment | as a ConEx policy device.) Another option to facilitate deployment | |||
| is for the auditor to act as a ConEx proxy, and insert ConEx signals | is for the auditor to act as a ConEx proxy, and insert ConEx signals | |||
| in packets in behalf of the sender. Such a device is outside of the | in packets on behalf of the sender. Such a device is outside of the | |||
| scope of this document, but nonetheless potentially useful for | scope of this document, but nonetheless potentially useful for | |||
| supporting ConEx for legacy systems. | supporting ConEx for legacy systems. | |||
| Auditing can be distributed and redundant. One flow may be audited | Auditing can be distributed and redundant. One flow may be audited | |||
| in multiple places, using multiple techniques. Some audit techniques | in multiple places, using multiple techniques. Some audit techniques | |||
| do not require any per flow state and can be applied to aggregate | do not require any per flow state and can be applied to aggregate | |||
| traffic. These might be able to detect the presence of understated | traffic. These might be able to detect the presence of understated | |||
| congestion at large scale and support recursively hunting for | congestion at large scale and support recursively hunting for | |||
| individual flows that are understating their congestion. Even at | individual flows that are understating their congestion. Even at | |||
| large scales, flows can be randomly selected for individual auditing. | large scales, flows can be randomly selected for individual auditing. | |||
| The auditing function should be able to trigger sufficient sanction | The auditing function should be able to trigger sufficient sanction | |||
| to discourage understating congestion[Salvatori05]. This potentially | to discourage understating congestion [Salvatori05]. This | |||
| requires designing the sanction in consort with the policy functions, | potentially requires designing the sanction in concert with the | |||
| even though they might be implemented in different parts of the | policy functions, even though they might be implemented in different | |||
| network. Note that in the future it might prove to be desirable to | parts of the network. Note that in the future it might prove to be | |||
| provide advise on uniformly implementing sanctions, because | desirable to provide advice on uniformly implementing sanctions, | |||
| insufficient sanctions impairs the ability to implement policy | because insufficient sanctions impairs the ability to implement | |||
| elsewhere in the network. | policy elsewhere in the network. | |||
| Some of the audit algorithms require per flow state. This cost is | Some of the audit algorithms require per flow state. This cost is | |||
| expected to be tolerable, because these techniques are most apropos | expected to be tolerable, because these techniques are most apropos | |||
| near the edges of the network, where traffic is generally much less | near the edges of the network, where traffic is generally much less | |||
| aggregated, so the state need not overwhelm any one device. Sampling | aggregated, so the state need not overwhelm any one device. Sampling | |||
| techniques can also be used to bound the total auditing memory | techniques can also be used to bound the total auditing memory | |||
| footprint, although the implementer must be wary of "identifier white | footprint, although the implementer must be wary of "identifier white | |||
| washing" attacks to hide cheating connection among chaff. | washing when caught" tactics where a source cheats until caught by | |||
| sampling, then simply discards that flow ID and starts cheating with | ||||
| a new one. | ||||
| At some point in the future, when ConEx is built into all transport | At some point in the future, when ConEx is built into all transport | |||
| protocol implementations, it may not be necessary to audit all | protocol implementations, it may not be necessary to audit all | |||
| traffic all the time. Auditing might be needed only to identify | traffic all the time. Auditing might be needed only to identify | |||
| rogue actors and prevent them from gaining any long term advantage by | rogue actors and prevent them from gaining any long term advantage by | |||
| cheating. | cheating. | |||
| A ConEx auditor might use one of the following techniques: | A ConEx auditor might use one of the following techniques: | |||
| ECN Auditing: Directly observe and compare the volume of ECN and | ECN Auditing: Directly observe and compare the volume of ECN and | |||
| ConEx marks. Since the volume of ECN marks rises monotonically | ConEx marks. Since the volume of ECN marks rises monotonically | |||
| skipping to change at page 18, line 32 | skipping to change at page 18, line 34 | |||
| TCP-specific loss auditing: For non-encrypted standard TCP traffic | TCP-specific loss auditing: For non-encrypted standard TCP traffic | |||
| on a single path, an auditor could measure losses by detecting | on a single path, an auditor could measure losses by detecting | |||
| retransmissions, which appear as duplicate sequence numbers | retransmissions, which appear as duplicate sequence numbers | |||
| upstream of the loss and out of order data downstream of the loss. | upstream of the loss and out of order data downstream of the loss. | |||
| Since some reordering is present in the Internet, such a loss | Since some reordering is present in the Internet, such a loss | |||
| estimator would be most accurate near the sender. | estimator would be most accurate near the sender. | |||
| Predominant bottleneck loss auditing: For networks designed so that | Predominant bottleneck loss auditing: For networks designed so that | |||
| losses predominantly occur due to Active Queue Management under | losses predominantly occur due to Active Queue Management under | |||
| the control of one IP-aware node on the path, the auditor could be | the control of one IP-aware node on the path, the auditor could be | |||
| located at this bottleneck. It could simply compare ConEx Signals | located at this bottleneck. It could simply compare ConEx Signals | |||
| with actual local packet discards (or ECN marks). This is a good | with actual local packet discards (and ECN marks). This is a good | |||
| model for most consumer access networks where audit accuracy could | model for most consumer access networks where audit accuracy could | |||
| well be sufficient even if losses occasionally occur elsewhere in | well be sufficient even if losses occasionally occur elsewhere in | |||
| the network. | the network. | |||
| Although the auditor at the predominant bottleneck would not be | Although the auditor at the predominant bottleneck would not be | |||
| able to count losses at other nodes, transports would not know | able to count losses at other nodes, transports would not know | |||
| where losses were occurring either. Therefore a transport would | where losses were occurring either. Therefore a transport would | |||
| not know which losses it could cheat and which ones it couldn't | not know which losses it could cheat and which ones it couldn't | |||
| without getting caught. | without getting caught. | |||
| skipping to change at page 19, line 15 | skipping to change at page 19, line 17 | |||
| ConEx. | ConEx. | |||
| In addition, other audit techniques may be identified in the future. | In addition, other audit techniques may be identified in the future. | |||
| 5.5.1. Using Credit to Simplify Audit | 5.5.1. Using Credit to Simplify Audit | |||
| At the audit function, there will be an inherent delay of at least | At the audit function, there will be an inherent delay of at least | |||
| one round trip between a congestion signal and the subsequent ConEx | one round trip between a congestion signal and the subsequent ConEx | |||
| signal it triggers, as shown in Figure 1. However, the audit | signal it triggers, as shown in Figure 1. However, the audit | |||
| function cannot be expected to wait for a round trip to check that | function cannot be expected to wait for a round trip to check that | |||
| one signal balances the other, because that requires excessive state | one signal balances the other, because that requires excessive state | |||
| and the auditor can't easily determine the RTT of each transport. | and the auditor can't easily determine the RTT of each flow. | |||
| The simplest mechanism to compensate for the round trip delay between | The simplest mechanism to compensate for the round trip delay between | |||
| the signals is to have the sender include a "credit" signal to cover | the signals is to have the sender include a "credit" signal to cover | |||
| the yet to be observed congestion that might occur during this delay. | the yet to be observed congestion that might occur during this delay. | |||
| The transport signals sufficient credit in advance to cover | The transport signals sufficient credit in advance to cover | |||
| congestion expected during its feedback delay. Then, the audit | congestion expected during its feedback delay. Then, the audit | |||
| function does not need to make allowance for round trip delays that | function does not need to make allowance for round trip delays that | |||
| it cannot quantify. This design choice correctly makes the transport | it cannot quantify. This design choice correctly makes the transport | |||
| responsible for both minimizing feedback delay and for the risk that | responsible for both minimizing feedback delay and for the risk that | |||
| packets in flight will cause congestion to others before the source | packets in flight will cause congestion to others before the source | |||
| skipping to change at page 20, line 46 | skipping to change at page 20, line 46 | |||
| This greater freedom acts as an inducement for the source to | This greater freedom acts as an inducement for the source to | |||
| volunteer ConEx information. | volunteer ConEx information. | |||
| Receivers: A ConEx source should be able to work without a modified | Receivers: A ConEx source should be able to work without a modified | |||
| receiver. However, without sufficiently precise congestion | receiver. However, without sufficiently precise congestion | |||
| feedback from the receiver, the source may have to conservatively | feedback from the receiver, the source may have to conservatively | |||
| send extra ConEx markings in order to avoid understating | send extra ConEx markings in order to avoid understating | |||
| congestion. The need for more precise receiver feedback is not | congestion. The need for more precise receiver feedback is not | |||
| exclusive to ConEx, for instance Data Centre TCP (DCTCP [DCTCP]) | exclusive to ConEx, for instance Data Centre TCP (DCTCP [DCTCP]) | |||
| uses precise feedback to good effect. Nonetheless, if a receiver | uses precise feedback to good effect. Nonetheless, if a receiver | |||
| offers precise feedback, it will be best if ConEx uses it (see | offers precise feedback, it will be best if ConEx uses it (see | |||
| Section 5.3). | Section 5.3) and [I-D.kuehlewind-tcpm-accurate-ecn]. | |||
| Proxies: Although it was stated above that ConEx requires a | Proxies: Although it was stated above that ConEx requires a | |||
| modification to the source, ConEx signals could theoretically be | modification to the source, ConEx signals could theoretically be | |||
| introduced by a proxy for the source, as long as it can intercept | introduced by a proxy for the source, as long as it can intercept | |||
| feedback from the receiver. Similarly, more precise feedback | feedback from the receiver. Similarly, more precise feedback | |||
| could thoretically be provided by a proxy for the receiver rather | could thoretically be provided by a proxy for the receiver rather | |||
| than modifying the receiver itself. | than modifying the receiver itself. | |||
| Queues: No modification to queues is needed for ConEx. | Forwarding: No modification to forwarding or queuing is needed for | |||
| ConEx. | ||||
| However, once ConEx is deployed, it is possible that a queue | However, once ConEx is deployed, it is possible that a queue | |||
| implementation could take advantage of the ConEx information in | implementation could optionally take advantage of the ConEx | |||
| packets. For instance, it has been suggested | information in packets. For instance, it has been suggested | |||
| [I-D.briscoe-tsvwg-re-ecn-tcp] that a queue would be more robust | [I-D.briscoe-conex-re-ecn-tcp] that a queue would be more robust | |||
| against flooding if it preferentially discarded Not-ConEx packets | against flooding if it preferentially discarded Not-ConEx packets | |||
| then Not-Marked ConEx packets. | then Not-Marked ConEx packets. | |||
| A ConEx sender re-echoes congestion whether the queues signaling | A ConEx sender re-echoes congestion whether the queues signaling | |||
| congestion are ECN-enabled or not. Nonetheless, auditing works | congestion are ECN-enabled or not. Nonetheless, auditing works | |||
| best if most congestion is indicated by ECN rather than loss (see | best if most congestion is indicated by ECN rather than loss (see | |||
| Section 3). Also, monitoring rest-of-path congestion is not | Section 3). Also, monitoring rest-of-path congestion is not | |||
| accurate if there are congested non-ECN queues upstream of the | accurate if there are congested non-ECN queues upstream of the | |||
| monitoring point (Section 5.4.2). | monitoring point (Section 5.4.2). | |||
| Networks: If a subset of traffic sources (or proxies) use ConEx | Networks: If a subset of traffic sources (or proxies) use ConEx | |||
| skipping to change at page 21, line 37 | skipping to change at page 21, line 38 | |||
| ConEx marked packets may safely traverse a network that ignores | ConEx marked packets may safely traverse a network that ignores | |||
| them. Networks MUST NOT change ConEx marked packets to Not-ConEx. | them. Networks MUST NOT change ConEx marked packets to Not-ConEx. | |||
| If necessary, endpoints SHOULD be able to detect if a network is | If necessary, endpoints SHOULD be able to detect if a network is | |||
| removing ConEx signals. | removing ConEx signals. | |||
| An operator can deploy policy devices (Section 5.4) wherever | An operator can deploy policy devices (Section 5.4) wherever | |||
| traffic enters its network, in order to monitor the downstream | traffic enters its network, in order to monitor the downstream | |||
| congestion that incoming traffic contributes to, and control it if | congestion that incoming traffic contributes to, and control it if | |||
| necessary. See [I-D.ietf-conex-concepts-uses] for further | necessary. See [I-D.ietf-conex-concepts-uses] for further | |||
| discussion of deployment incentives for networks and scenarios | discussion of deployment incentives for networks and scenarios | |||
| where some networks use ConEx-based policy devices and other | where some networks use ConEx-based policy devices and others | |||
| don't. | don't. | |||
| An operator can deploy audit devices Section 5.5 unilaterally | An operator can deploy audit devices (Section 5.5) unilaterally | |||
| within its own network to verify that traffic sources are not | within its own network to verify that traffic sources are not | |||
| understating ConEx information. From the viewpoint of one network | understating ConEx information. From the viewpoint of one network | |||
| operator (say N_a), it only cares that the level of ConEx | operator (say N_a), it only cares that the level of ConEx | |||
| signaling is sufficient to cover congestion in its own network. | signaling is sufficient to cover congestion in its own network. | |||
| If traffic continues into a congested downstream network (say | If traffic continues into a congested downstream network (say | |||
| N_b), it is of no concern to the first network (N_a) if the end- | N_b), it is of no concern to the first network (N_a) if the end- | |||
| to-end ConEx signaling is insufficient to cover the congestion in | to-end ConEx signaling is insufficient to cover the congestion in | |||
| N_b as well. This is N-b's concern, and N_b can both detect such | N_b as well. This is N_b's concern, and N_b can both detect such | |||
| anomalous traffic and deal with it using ConEx-based policy | anomalous traffic and deal with it using ConEx-based policy | |||
| devices (Section 5.4). | devices (Section 5.4). | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This memo includes no request to IANA. | This memo includes no request to IANA. | |||
| Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
| RFC. | RFC. | |||
| skipping to change at page 23, line 33 | skipping to change at page 23, line 33 | |||
| www.statslab.cam.ac.uk/~frank/ | www.statslab.cam.ac.uk/~frank/ | |||
| evol.html>. | evol.html>. | |||
| [FairerFaster] Briscoe, B., "A Fairer, Faster | [FairerFaster] Briscoe, B., "A Fairer, Faster | |||
| Internet Protocol", IEEE | Internet Protocol", IEEE | |||
| Spectrum Dec 2008:38--43, | Spectrum Dec 2008:38--43, | |||
| December 2008, <http:// | December 2008, <http:// | |||
| bobbriscoe.net/projects/ | bobbriscoe.net/projects/ | |||
| refb/#fairfastip>. | refb/#fairfastip>. | |||
| [I-D.briscoe-tsvwg-re-ecn-motiv] Briscoe, B., Jacquet, A., | [I-D.briscoe-conex-re-ecn-motiv] Briscoe, B., Jacquet, A., | |||
| Moncaster, T., and A. Smith, "Re- | Moncaster, T., and A. Smith, "Re- | |||
| ECN: A Framework for adding | ECN: A Framework for adding | |||
| Congestion Accountability to | Congestion Accountability to | |||
| TCP/IP", draft-briscoe-tsvwg-re- | TCP/IP", draft-briscoe-conex-re- | |||
| ecn-tcp-motivation-02 (work in | ecn-motiv-00 (work in progress), | |||
| progress), October 2010. | April 2012. | |||
| [I-D.briscoe-tsvwg-re-ecn-tcp] Briscoe, B., Jacquet, A., | [I-D.briscoe-conex-re-ecn-tcp] Briscoe, B., Jacquet, A., | |||
| Moncaster, T., and A. Smith, "Re- | Moncaster, T., and A. Smith, "Re- | |||
| ECN: Adding Accountability for | ECN: Adding Accountability for | |||
| Causing Congestion to TCP/IP", | Causing Congestion to TCP/IP", | |||
| draft-briscoe-tsvwg-re-ecn-tcp-09 | draft-briscoe-conex-re-ecn-tcp-00 | |||
| (work in progress), October 2010. | (work in progress), April 2012. | |||
| [I-D.ietf-conex-concepts-uses] Briscoe, B., Woundy, R., and A. | [I-D.ietf-conex-concepts-uses] Briscoe, B., Woundy, R., and A. | |||
| Cooper, "ConEx Concepts and Use | Cooper, "ConEx Concepts and Use | |||
| Cases", | Cases", | |||
| draft-ietf-conex-concepts-uses-04 | draft-ietf-conex-concepts-uses-03 | |||
| (work in progress), March 2012. | (work in progress), October 2011. | |||
| [I-D.ietf-conex-destopt] Krishnan, S., Kuehlewind, M., and | [I-D.ietf-conex-destopt] Krishnan, S., Kuehlewind, M., and | |||
| C. Ucendo, "IPv6 Destination | C. Ucendo, "IPv6 Destination | |||
| Option for Conex", | Option for Conex", | |||
| draft-ietf-conex-destopt-02 (work | draft-ietf-conex-destopt-01 (work | |||
| in progress), March 2012. | in progress), October 2011. | |||
| [I-D.ietf-conex-tcp-modifications] Kuehlewind, M. and R. | [I-D.ietf-conex-tcp-modifications] Kuehlewind, M. and R. | |||
| Scheffenegger, "TCP modifications | Scheffenegger, "TCP modifications | |||
| for Congestion Exposure", draft- | for Congestion Exposure", draft- | |||
| ietf-conex-tcp-modifications-00 | ietf-conex-tcp-modifications-02 | |||
| (work in progress), | (work in progress), May 2012. | |||
| December 2011. | ||||
| [I-D.ietf-ledbat-congestion] Shalunov, S., Hazel, G., Iyengar, | [I-D.ietf-ledbat-congestion] Shalunov, S., Hazel, G., Iyengar, | |||
| J., and M. Kuehlewind, "Low Extra | J., and M. Kuehlewind, "Low Extra | |||
| Delay Background Transport | Delay Background Transport | |||
| (LEDBAT)", | (LEDBAT)", | |||
| draft-ietf-ledbat-congestion-09 | draft-ietf-ledbat-congestion-06 | |||
| (work in progress), October 2011. | (work in progress), May 2011. | |||
| [I-D.ietf-tsvwg-byte-pkt-congest] Briscoe, B. and J. Manner, "Byte | [I-D.ietf-tsvwg-byte-pkt-congest] Briscoe, B. and J. Manner, "Byte | |||
| and Packet Congestion | and Packet Congestion | |||
| Notification", draft-ietf-tsvwg- | Notification", draft-ietf-tsvwg- | |||
| byte-pkt-congest-07 (work in | byte-pkt-congest-07 (work in | |||
| progress), February 2012. | progress), February 2012. | |||
| [I-D.kuehlewind-tcpm-accurate-ecn] Kuehlewind, M. and R. | [I-D.kuehlewind-tcpm-accurate-ecn] Kuehlewind, M. and R. | |||
| Scheffenegger, "Accurate ECN | Scheffenegger, "Accurate ECN | |||
| Feedback in TCP", draft- | Feedback Option in TCP", draft- | |||
| kuehlewind-tcpm-accurate-ecn-00 | kuehlewind-tcpm-accurate-ecn- | |||
| (work in progress), | option-01 (work in progress), | |||
| December 2011. | July 2012. | |||
| [RFC3448] Handley, M., Floyd, S., Padhye, | [RFC3448] Handley, M., Floyd, S., Padhye, | |||
| J., and J. Widmer, "TCP Friendly | J., and J. Widmer, "TCP Friendly | |||
| Rate Control (TFRC): Protocol | Rate Control (TFRC): Protocol | |||
| Specification", RFC 3448, | Specification", RFC 3448, | |||
| January 2003. | January 2003. | |||
| [RFC3514] Bellovin, S., "The Security Flag | [RFC3514] Bellovin, S., "The Security Flag | |||
| in the IPv4 Header", RFC 3514, | in the IPv4 Header", RFC 3514, | |||
| April 1 2003. | April 2003. | |||
| [RFC3550] Schulzrinne, H., Casner, S., | [RFC3550] Schulzrinne, H., Casner, S., | |||
| Frederick, R., and V. Jacobson, | Frederick, R., and V. Jacobson, | |||
| "RTP: A Transport Protocol for | "RTP: A Transport Protocol for | |||
| Real-Time Applications", STD 64, | Real-Time Applications", STD 64, | |||
| RFC 3550, July 2003. | RFC 3550, July 2003. | |||
| [RFC5681] Allman, M., Paxson, V., and E. | ||||
| Blanton, "TCP Congestion | ||||
| Control", RFC 5681, | ||||
| September 2009. | ||||
| [Re-fb] Briscoe, B., Jacquet, A., Di | [Re-fb] Briscoe, B., Jacquet, A., Di | |||
| Cairano-Gilfedder, C., Salvatori, | Cairano-Gilfedder, C., Salvatori, | |||
| A., Soppera, A., and M. Koyabe, | A., Soppera, A., and M. Koyabe, | |||
| "Policing Congestion Response in | "Policing Congestion Response in | |||
| an Internetwork Using Re- | an Internetwork Using Re- | |||
| Feedback", ACM SIGCOMM | Feedback", ACM SIGCOMM | |||
| CCR 35(4)277--288, August 2005, < | CCR 35(4)277--288, August 2005, < | |||
| http://www.acm.org/sigs/sigcomm/ | http://www.acm.org/sigs/sigcomm/ | |||
| sigcomm2005/ | sigcomm2005/ | |||
| techprog.html#session8>. | techprog.html#session8>. | |||
| End of changes. 52 change blocks. | ||||
| 153 lines changed or deleted | 163 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/  | ||||