< draft-moncaster-conex-concepts-uses-01.txt | draft-moncaster-conex-concepts-uses-02.txt > | |||
---|---|---|---|---|
CONEX B. Briscoe | CONEX B. Briscoe | |||
Internet-Draft BT | Internet-Draft BT | |||
Intended status: Informational R. Woundy | Intended status: Informational R. Woundy | |||
Expires: January 13, 2011 Comcast | Expires: April 28, 2011 Comcast | |||
T. Moncaster, Ed. | T. Moncaster, Ed. | |||
Moncaster.com | Moncaster.com | |||
J. Leslie, Ed. | J. Leslie, Ed. | |||
JLC.net | JLC.net | |||
July 12, 2010 | October 25, 2010 | |||
ConEx Concepts and Use Cases | ConEx Concepts and Use Cases | |||
draft-moncaster-conex-concepts-uses-01 | draft-moncaster-conex-concepts-uses-02 | |||
Abstract | Abstract | |||
Internet Service Providers (ISPs) are facing problems where localized | Internet Service Providers (operators) are facing problems where | |||
congestion prevents full utilization of the path between sender and | localized congestion prevents full utilization of the path between | |||
receiver at today's "broadband" speeds. ISPs desire to control this | sender and receiver at today's "broadband" speeds. Operators desire | |||
congestion, which often appears to be caused by a small number of | to control this congestion, which often appears to be caused by a | |||
users consuming a large amount of bandwidth. Building out more | small number of users consuming a large amount of bandwidth. | |||
capacity along all of the path to handle this congestion can be | Building out more capacity along all of the path to handle this | |||
expensive and may not result in improvements for all users so network | congestion can be expensive and may not result in improvements for | |||
operators have sought other ways to manage congestion. The current | all users so network operators have sought other ways to manage | |||
mechanisms all suffer from difficulty measuring the congestion (as | congestion. The current mechanisms all suffer from difficulty | |||
distinguished from the total traffic). | measuring the congestion (as distinguished from the total traffic). | |||
The ConEx Working Group is designing a mechanism to make congestion | The ConEx Working Group is designing a mechanism to make congestion | |||
along any path visible at the Internet Layer. This document | along any path visible at the Internet Layer. This document | |||
describes example cases where this mechanism would be useful. | describes example cases where this mechanism would be useful. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at 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 January 13, 2011. | This Internet-Draft will expire on April 28, 2011. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Existing Approaches to Congestion Management . . . . . . . . . 7 | 3. Congestion Management . . . . . . . . . . . . . . . . . . . . 6 | |||
3.1. Existing Approaches . . . . . . . . . . . . . . . . . . . 7 | ||||
4. Exposing Congestion . . . . . . . . . . . . . . . . . . . . . 8 | 4. Exposing Congestion . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. ECN - a Step in the Right Direction . . . . . . . . . . . 9 | 4.1. ECN - a Step in the Right Direction . . . . . . . . . . . 9 | |||
5. Requirements for ConEx . . . . . . . . . . . . . . . . . . . . 10 | 5. ConEx Use Cases . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
5.1. ConEx Issues . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1. ConEx as a basis for traffic management . . . . . . . . . 10 | |||
6. A Possible Congestion Exposure Mechanism . . . . . . . . . . . 11 | 5.2. ConEx to incentivise scavenger transports . . . . . . . . 10 | |||
7. ConEx Architectural Elements . . . . . . . . . . . . . . . . . 12 | 5.3. ConEx to mitigate DDoS . . . . . . . . . . . . . . . . . . 11 | |||
7.1. ConEx Monitoring . . . . . . . . . . . . . . . . . . . . . 13 | 5.4. Accounting for Congestion Volume . . . . . . . . . . . . . 11 | |||
7.1.1. Edge Monitoring . . . . . . . . . . . . . . . . . . . 13 | 5.5. ConEx as a form of differential QoS . . . . . . . . . . . 12 | |||
7.1.2. Border Monitoring . . . . . . . . . . . . . . . . . . 15 | 5.6. Partial vs. Full Deployment . . . . . . . . . . . . . . . 12 | |||
7.2. ConEx Policing . . . . . . . . . . . . . . . . . . . . . . 15 | 6. Other issues . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
7.2.1. Egress Policing . . . . . . . . . . . . . . . . . . . 16 | 6.1. Congestion as a Commercial Secret . . . . . . . . . . . . 13 | |||
7.2.2. Ingress Policing . . . . . . . . . . . . . . . . . . . 17 | 6.2. Information Security . . . . . . . . . . . . . . . . . . . 14 | |||
7.2.3. Border Policing . . . . . . . . . . . . . . . . . . . 18 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
8. ConEx Use Cases . . . . . . . . . . . . . . . . . . . . . . . 19 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
8.1. ConEx as a basis for traffic management . . . . . . . . . 19 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
8.2. ConEx to incentivise scavenger transports . . . . . . . . 19 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
8.3. ConEx to mitigate DDoS . . . . . . . . . . . . . . . . . . 20 | 10.1. Normative References . . . . . . . . . . . . . . . . . . . 16 | |||
8.4. Accounting for Congestion Volume . . . . . . . . . . . . . 20 | 10.2. Informative References . . . . . . . . . . . . . . . . . . 16 | |||
8.5. ConEx as a form of differential QoS . . . . . . . . . . . 21 | Appendix A. ConEx Architectural Elements . . . . . . . . . . . . 20 | |||
8.6. Partial vs. Full Deployment . . . . . . . . . . . . . . . 22 | A.1. ConEx Monitoring . . . . . . . . . . . . . . . . . . . . . 20 | |||
9. Other issues . . . . . . . . . . . . . . . . . . . . . . . . . 23 | A.1.1. Edge Monitoring . . . . . . . . . . . . . . . . . . . 21 | |||
9.1. Congestion as a Commercial Secret . . . . . . . . . . . . 23 | A.1.2. Border Monitoring . . . . . . . . . . . . . . . . . . 22 | |||
9.2. Information Security . . . . . . . . . . . . . . . . . . . 24 | A.2. ConEx Policing . . . . . . . . . . . . . . . . . . . . . . 22 | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | A.2.1. Egress Policing . . . . . . . . . . . . . . . . . . . 23 | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | A.2.2. Ingress Policing . . . . . . . . . . . . . . . . . . . 24 | |||
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 25 | A.2.3. Border Policing . . . . . . . . . . . . . . . . . . . 25 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | ||||
13.1. Normative References . . . . . . . . . . . . . . . . . . . 25 | ||||
13.2. Informative References . . . . . . . . . . . . . . . . . . 26 | ||||
1. Introduction | 1. Introduction | |||
The growth of "always on" broadband connections, coupled with the | The growth of "always on" broadband connections, coupled with the | |||
steady increase in access speeds [OfCom], have caused unforeseen | steady increase in access speeds [OfCom], have caused unforeseen | |||
problems for network operators and users alike. Users are | problems for network operators and users alike. Users are | |||
increasingly seeing congestion at peak times and changes in usage | increasingly seeing congestion at peak times and changes in usage | |||
patterns (with the growth of real-time streaming) simply serve to | patterns (with the growth of real-time streaming) simply serve to | |||
exacerbate this. Operators want all their users to see a good | exacerbate this. Operators want all their users to see a good | |||
service but are unable to see where congestion problems originate. | service but are unable to see where congestion problems originate. | |||
But congestion results from sharing network capacity with others, not | But congestion results from sharing network capacity with others, not | |||
merely from using it. In general, today's "DSL" and cable-internet | merely from using it. In general, today's "DSL" and cable-internet | |||
users cannot "cause" congestion in the absence of competing traffic. | users cannot "cause" congestion in the absence of competing traffic. | |||
(Wireless ISPs and cellular internet have different tradeoffs which | (Wireless operators and cellular internet have different tradeoffs | |||
we will not discuss here.) | which we will not discuss here.) | |||
Congestion generally results from the interaction of traffic from an | Congestion generally results from the interaction of traffic from one | |||
ISPs own subscribers with traffic from other users. The tools | network operator's users with traffic from other users. The tools | |||
currently available don't allow an operator to identify which traffic | currently available don't allow an operator to identify which traffic | |||
contributes most to the congestion and so they are powerless to | contributes most to the congestion and so they are powerless to | |||
properly control it. | properly control it. | |||
While building out more capacity to handle increased traffic is | While building out more capacity to handle increased traffic is | |||
always good, the expense and lead-time can be prohibitive, especially | always good, the expense and lead-time can be prohibitive, especially | |||
for network operators that charge flat-rate feeds to subscribers and | for network operators that charge flat-rate feeds to subscribers and | |||
are thus unable to charge heavier users more for causing more | are thus unable to charge heavier users more for causing more | |||
congestion [BB-incentive]. For an operator facing congestion caused | congestion [BB-incentive]. For an operator facing congestion caused | |||
by other operators' networks, building out its own capacity is | by other operators' networks, building out its own capacity is | |||
unlikely to solve the congestion problem. Operators are thus facing | unlikely to solve the congestion problem. Operators are thus facing | |||
increased pressure to find effective solutions to dealing with the | increased pressure to find effective solutions to dealing with the | |||
increasing bandwidth demands of all users. | increasing bandwidth demands of all users. | |||
The growth of "scavenger" behaviour (e.g. [LEDBAT]) helps to reduce | The growth of "scavenger" behaviour (e.g. [LEDBAT]) helps to reduce | |||
congestion, but can actually make the ISPs problem less tractable. | congestion, but can actually make the problem less tractable. These | |||
These users are trying to make good use of the capacity of the path | users are trying to make good use of the capacity of the path while | |||
while minimising their own costs. Thus, users of such services may | minimising their own costs. Thus, users of such services may show | |||
show very heavy total traffic up until the moment congestion is | very heavy total traffic up until the moment congestion is detected | |||
detected (at the Transport Layer), but then will immediately back | (at the Transport Layer), but then will immediately back off. | |||
off. ISP monitoring (at the Internet Layer) cannot detect this | Monitoring (at the Internet Layer) cannot detect this congestion | |||
congestion avoidance if the congestion in question is in a different | avoidance if the congestion in question is in a different domain | |||
domain further along the path; and must treat such users as | further along the path; and must treat such users as congestion- | |||
congestion-causing users. | causing users. | |||
The ConEx working group proposes that Internet Protocol (IP) packets | The ConEx working group proposes that Internet Protocol (IP) packets | |||
have two "congestion" fields. The exact protocol details of these | will carry additional ConEx information. The exact protocol details | |||
fields are for another document, but we expect them to provide | are not described in this document, but the ConEx information will be | |||
measures of "congestion so far" and "congestion still expected". | sufficient to allow any node in the network to see how much | |||
congestion is attributable to a given traffic flow. See | ||||
[ConEx-Abstract-Mech] for further details. | ||||
Changes from previous drafts (to be removed by the RFC Editor): | Changes from previous drafts (to be removed by the RFC Editor): | |||
From -01 to -02: | ||||
Updated document to take account of the new Abstract Mechanism | ||||
draft [ConEx-Abstract-Mech]. PLEASE NOTE: As that draft develops, | ||||
it is envisaged that more material will be able to be removed from | ||||
this document, leaving this document free to concentrate on actual | ||||
use cases for ConEx. | ||||
Updated the definitions section. | ||||
Removed sections on Requirements and Mechanism. | ||||
Moved section on ConEx Architectural Elements to appendix. | ||||
Minor changes throughout. | ||||
From -00 to -01: | From -00 to -01: | |||
Changed end of Abstract to better reflect new title | Changed end of Abstract to better reflect new title | |||
Created new section describing the architectural elements of ConEx | Created new section describing the architectural elements of ConEx | |||
Section 7. Added Edge Monitors and Border Monitors (other | Appendix A. Added Edge Monitors and Border Monitors (other | |||
elements are Ingress, Egress and Border Policers). | elements are Ingress, Egress and Border Policers). | |||
Extensive re-write of Section 8 partly in response to suggestions | Extensive re-write of Section 5 partly in response to suggestions | |||
from Dirk Kutscher | from Dirk Kutscher | |||
Improved layout of Section 2 and added definitions of Whole Path | Improved layout of Section 2 and added definitions of Whole Path | |||
Congestion, ConEx-Enabled and ECN-Enabled. Re-wrote definition of | Congestion, ConEx-Enabled and ECN-Enabled. Re-wrote definition of | |||
Congestion Volume. Renamed Ingress and Egress Router to Ingress | Congestion Volume. Renamed Ingress and Egress Router to Ingress | |||
and Egress Node as these nodes may not actually be routers. | and Egress Node as these nodes may not actually be routers. | |||
Improved document structure. Merged sections on Exposing | Improved document structure. Merged sections on Exposing | |||
Congestion and ECN. | Congestion and ECN. | |||
Added new section on ConEx requirements Section 5 with a ConEx | Added new section on ConEx requirements with a ConEx Issues | |||
Issues subsection Section 5.1. Text for these came from the start | subsection. Text for these came from the start of the old ConEx | |||
of the old ConEx Use Cases section | Use Cases section | |||
Added a sub-section on Partial vs Full Deployment Section 8.6 | Added a sub-section on Partial vs Full Deployment Section 5.6 | |||
Added a discussion on ConEx as a Business Secret Section 9.1 | Added a discussion on ConEx as a Business Secret Section 6.1 | |||
From draft-conex-mechanism-00 to | From draft-conex-mechanism-00 to | |||
draft-moncaster-conex-concepts-uses-00: | draft-moncaster-conex-concepts-uses-00: | |||
Changed filename to draft-moncaster-conex-concepts-uses. | Changed filename to draft-moncaster-conex-concepts-uses. | |||
Changed title to ConEx Concepts and Use Cases. | Changed title to ConEx Concepts and Use Cases. | |||
Chose uniform capitalisation of ConEx. | Chose uniform capitalisation of ConEx. | |||
Moved definition of Congestion Volume to list of definitions. | Moved definition of Congestion Volume to list of definitions. | |||
Clarified Section 6. Changed section title. | Clarified mechanism section. Changed section title. | |||
Modified text relating to conex-aware policing and policers (which | Modified text relating to conex-aware policing and policers (which | |||
are NOT defined terms). | are NOT defined terms). | |||
Re-worded bullet on distinguishing ConEx and non-ConEx traffic in | Re-worded bullet on distinguishing ConEx and non-ConEx traffic in | |||
Section 8. | Section 5. | |||
2. Definitions | 2. Definitions | |||
ConEx expects to build on Explicit Congestion Notification (ECN) | In this section we define a number of terms that are used throughout | |||
[RFC3168] where it is available. Hence we use the term "congestion" | the document. The key definition is that of congestion, which has a | |||
in a manner consistent with ECN, namely that congestion occurs before | number of meanings depending on context. The definition we use in | |||
any packet is dropped. In this section we define a number of terms | this document is based on the definition in [Padhye] where congestion | |||
that are used throughout the document. | is viewed as a probability that a packet will be dropped. This list | |||
of definitions is supplementary to that in [ConEx-Abstract-Mech]. | ||||
Congestion: Congestion is a measure of the probability that a given | Congestion: Congestion is a measure of the probability that a packet | |||
packet will be ECN-marked or dropped as it traverses the network. | will be marked or dropped as it traverses a queue. | |||
At any given router it is a function of the queue state at that | ||||
router. Congestion is added in a combinatorial manner, that is, | ||||
routers ignore the congestion a packet has already seen when they | ||||
decide whether to mark it or not. | ||||
Congestion Volume: Congestion volume is defined as the congestion a | flow: a series of packets from a single sender to a single receiver | |||
packet experiences, multiplied by the size of that packet. It can | that are treated by that sender as belonging to a single stream | |||
be expressed as the volume of bytes that have been ECN-marked or | for the purposes of congestion control. NB in general this is not | |||
dropped. By extension, the Congestion Rate would be the | the same as the aggregate of all traffic between the sender and | |||
transmission rate multiplied by the congestion level. | receiver. | |||
Upstream Congestion: The congestion that has already been | Congestion-rate: For any granularity of traffic (packet, flow, | |||
experienced by a packet as it travels along its path. In other | aggregate, etc.), the instantaneous rate of traffic discarded or | |||
words at any point on the path, it is the congestion between the | marked due to congestion. Conceptually, the instantaneous bit- | |||
source of the packet and that point. | rate of the traffic multiplied by the instantaneous congestion it | |||
is experiencing. | ||||
Downstream Congestion: The congestion that a packet still has to | Congestion-volume: For any granularity of traffic (packet, flow, | |||
experience on the remainder of its path. In other words at any | aggregate, etc.), the volume of bytes dropped or marked in a given | |||
point it is the congestion still to be experienced as the packet | period of time. Conceptually, congestion-rate multipled by time. | |||
travels between that point and its destination. | ||||
Whole Path Congestion: The total congestion that a packet | Upstream Congestion: the accumulated level of congestion experienced | |||
experiences between the ingress to the network and the egress. | by a traffic flow thus far along its path. In other words, at any | |||
point the Upstream Congestion is the accmulated level of | ||||
congestion the traffic flow has experienced as it travels from the | ||||
sender to that point. At the receiver this is equivalent to the | ||||
end-to-end congestion level that (usually) is reported back to the | ||||
sender. | ||||
Network Ingress: The Network Ingress is the first node a packet | Downstream Congestion: the level of congestion a flow of traffic is | |||
traverses that is outside the source's own network. In a domestic | expected to experience on the remainder of its path. In other | |||
network that will be the first node downstream from the home | words, at any point the Downstream Congestion is the level of | |||
access equipment. In a business network it may be the first | congestion the traffic flow is yet to experience as it travels | |||
router downstream of the firewall. | from that point to the receiver. | |||
Network Egress: The Network Egress is the last node a packet | Ingress: the first node a packet traverses that is outside the | |||
traverses before it enters the destination network. | source's own network. In a domestic network that will be the | |||
first node downstream from the home access equipment. In an | ||||
enterprise network this is the provider edge router. | ||||
ConEx-Enabled: Any piece of equipment (end-system, router, tunnel | Egress: the last node a packet traverses before reaching the | |||
end-point, firewall, policer, etc) that fully implements the ConEx | receiver's network. | |||
protocol. | ||||
ECN-enabled: Any router that fully enables Explicit Congestion | ConEx-enabled: Any piece of equipment (end-system, router, tunnel | |||
Notification (ECN) as defined in [RFC3168] and any relevant | end-point, firewall, policer, etc) that complies with the core | |||
updates to that standard. | ConEx protocol, which is to be defined by the ConEx working group. | |||
By extension a ConEx-enabled network is a network whose edge nodes | ||||
are all ConEx-enabled. | ||||
3. Existing Approaches to Congestion Management | 3. Congestion Management | |||
A number of ISPs already use some form of traffic management. | Since 1988 the Internet architecture has made congestion management | |||
Generally this is an attempt to control the peak-time congestion | the responsibility of the end-systems. The network signals | |||
within their network and to better apportion shared network resources | congestion to the receiver, the receiver feeds this back to the | |||
between customers. Even ISPs that don't impose such traffic | sender and the sender is expected to try and reduce the traffic it | |||
management (such as those in Germany) may have caps on the capacity | sends. | |||
they allow for Best Effort traffic in their backhaul. | ||||
These attempts to control congestion have usually focused on the peak | Any network that is persistently highly congested is inefficient. | |||
hours and aim to rate limit heavy users during that time. For | However the total absence of congestion is equally bad as it means | |||
example, users who have consumed a certain amount of bandwidth during | there is spare capacity in the network that hasn't been used. The | |||
the last 24 hours may be elected to have their traffic shaped once | long-standing aim of congestion control has been to find the point | |||
the total traffic reaches a given level in certain nodes within the | where these two things are in balance. | |||
operator's network. | ||||
Over recent years, some network operators have come to the view that | ||||
end-system congestion management is insufficient. Because of the | ||||
heuristics used by TCP, a relatively small number of end-machines can | ||||
get a disproportionately high share of network resources. They have | ||||
sought to "correct" this perceived problem by using middleboxes that | ||||
try and reduce traffic that is causing congestion or by artificially | ||||
starving some traffic classes to create stronger congestion signals. | ||||
3.1. Existing Approaches | ||||
The authors have chosen not to exhaustively list current approaches | The authors have chosen not to exhaustively list current approaches | |||
to congestion management. Broadly these approaches can be divided | to congestion management. Broadly these approaches can be divided | |||
into those that happen at Layer 3 of the OSI model and those that use | into those that happen at Layer 3 of the OSI model and those that use | |||
information gathered from higher layers. In general these approaches | information gathered from higher layers. In general these approaches | |||
attempt to find a "proxy" measure for congestion. Layer 3 approaches | attempt to find a "proxy" measure for congestion. Layer 3 approaches | |||
include: | include: | |||
o Volume accounting -- the overall volume of traffic a given user or | o Volume accounting -- the overall volume of traffic a given user or | |||
network sends is measured. Users may be subject to an absolute | network sends is measured. Users may be subject to an absolute | |||
skipping to change at page 8, line 7 | skipping to change at page 7, line 33 | |||
for inter-network billing. | for inter-network billing. | |||
Higher layer approaches include: | Higher layer approaches include: | |||
o Bottleneck rate policing -- bottleneck flow rate policers aim to | o Bottleneck rate policing -- bottleneck flow rate policers aim to | |||
share the available capacity at a given bottleneck between all | share the available capacity at a given bottleneck between all | |||
concurrent users. | concurrent users. | |||
o DPI and application rate policing -- deep packet inspection and | o DPI and application rate policing -- deep packet inspection and | |||
other techniques can be used to determine what application a given | other techniques can be used to determine what application a given | |||
traffic flow is associated with. ISPs may then use this | traffic flow is associated with. Operators may then use this | |||
information to rate-limit or otherwise sanction certain | information to rate-limit or otherwise sanction certain | |||
applications at peak hours. | applications at peak hours. | |||
All of these current approaches suffer from some general limitations. | All of these current approaches suffer from some general limitations. | |||
First, they introduce performance uncertainty. Flat-rate pricing | First, they introduce performance uncertainty. Flat-rate pricing | |||
plans are popular because users appreciate the certainty of having | plans are popular because users appreciate the certainty of having | |||
their monthly bill amount remain the same for each billing period, | their monthly bill amount remain the same for each billing period, | |||
allowing them to plan their costs accordingly. But while flat-rate | allowing them to plan their costs accordingly. But while flat-rate | |||
pricing avoids billing uncertainty, it creates performance | pricing avoids billing uncertainty, it creates performance | |||
uncertainty: users cannot know whether the performance of their | uncertainty: users cannot know whether the performance of their | |||
skipping to change at page 9, line 5 | skipping to change at page 8, line 32 | |||
and conversely that their traffic impacts you. So if there is no | and conversely that their traffic impacts you. So if there is no | |||
congestion there need not be any restriction on the amount a user can | congestion there need not be any restriction on the amount a user can | |||
send; restrictions only need to apply when others are sending traffic | send; restrictions only need to apply when others are sending traffic | |||
such that there is congestion. | such that there is congestion. | |||
For example, an application intending to transfer large amounts of | For example, an application intending to transfer large amounts of | |||
data could use a congestion control mechanism like [LEDBAT] to reduce | data could use a congestion control mechanism like [LEDBAT] to reduce | |||
its transmission rate before any competing TCP flows do, by detecting | its transmission rate before any competing TCP flows do, by detecting | |||
an increase in end-to-end delay (as a measure of impending | an increase in end-to-end delay (as a measure of impending | |||
congestion). However such techniques rely on voluntary, altruistic | congestion). However such techniques rely on voluntary, altruistic | |||
action by end users and their application providers. ISPs can | action by end users and their application providers. Operators can | |||
neither enforce their use nor avoid penalizing them for congestion | neither enforce their use nor avoid penalizing them for congestion | |||
they avoid. | they avoid. | |||
The Internet was designed so that end-hosts detect and control | The Internet was designed so that end-hosts detect and control | |||
congestion. We argue that congestion needs to be visible to network | congestion. We argue that congestion needs to be visible to network | |||
nodes as well, not just to the end hosts. More specifically, a | nodes as well, not just to the end hosts. More specifically, a | |||
network needs to be able to measure how much congestion any | network needs to be able to measure how much congestion any | |||
particular traffic expects to cause between the monitoring point in | particular traffic expects to cause between the monitoring point in | |||
the network and the destination ("rest-of-path congestion"). This | the network and the destination ("rest-of-path congestion"). This | |||
would be a new capability. Today a network can use Explicit | would be a new capability. Today a network can use Explicit | |||
skipping to change at page 9, line 31 | skipping to change at page 9, line 10 | |||
uses of traditional TCP and UDP applications. | uses of traditional TCP and UDP applications. | |||
So we propose a new approach which we call Congestion Exposure. We | So we propose a new approach which we call Congestion Exposure. We | |||
propose that congestion information should be made visible at the IP | propose that congestion information should be made visible at the IP | |||
layer, so that any network node can measure the contribution to | layer, so that any network node can measure the contribution to | |||
congestion of an aggregate of traffic as easily as straight volume | congestion of an aggregate of traffic as easily as straight volume | |||
can be measured today. Once the information is exposed in this way, | can be measured today. Once the information is exposed in this way, | |||
it is then possible to use it to measure the true impact of any | it is then possible to use it to measure the true impact of any | |||
traffic on the network. | traffic on the network. | |||
In general, congestion exposure gives ISPs a principled way to hold | In general, congestion exposure gives operators a principled way to | |||
their customers accountable for the impact on others of their network | hold their customers accountable for the impact on others of their | |||
usage and reward them for choosing congestion-sensitive applications. | network usage and reward them for choosing congestion-sensitive | |||
applications. | ||||
4.1. ECN - a Step in the Right Direction | 4.1. ECN - a Step in the Right Direction | |||
Explicit Congestion Notification [RFC3168] allows routers to | Explicit Congestion Notification [RFC3168] allows routers to | |||
explicitly tell end-hosts that they are approaching the point of | explicitly tell end-hosts that they are approaching the point of | |||
congestion. ECN builds on Active Queue Mechanisms such as random | congestion. ECN builds on Active Queue Mechanisms such as random | |||
early discard (RED) [RFC2309] by allowing the router to mark a packet | early discard (RED) [RFC2309] by allowing the router to mark a packet | |||
with a Congestion Experienced (CE) codepoint, rather than dropping | with a Congestion Experienced (CE) codepoint, rather than dropping | |||
it. The probability of a packet being marked increases with the | it. The probability of a packet being marked increases with the | |||
length of the queue and thus the rate of CE marks is a guide to the | length of the queue and thus the rate of CE marks is a guide to the | |||
skipping to change at page 10, line 16 | skipping to change at page 9, line 44 | |||
receiver can only indirectly influence incoming congestion, by | receiver can only indirectly influence incoming congestion, by | |||
politely asking the sender to control it. A receiver cannot make a | politely asking the sender to control it. A receiver cannot make a | |||
sender install an adaptive codec, or install LEDBAT instead of TCP | sender install an adaptive codec, or install LEDBAT instead of TCP | |||
congestion-control. And a receiver cannot cause an attacker to stop | congestion-control. And a receiver cannot cause an attacker to stop | |||
flooding it with traffic. | flooding it with traffic. | |||
What is needed is knowledge of the downstream congestion level, for | What is needed is knowledge of the downstream congestion level, for | |||
which you need additional information that is still concealed from | which you need additional information that is still concealed from | |||
the network. | the network. | |||
5. Requirements for ConEx | 5. ConEx Use Cases | |||
This document is intended to highlight some of the possible uses for | ||||
a congestion exposure mechanism such as the one being proposed by the | ||||
ConEx working group. The actual ConEx mechanism will be defined in | ||||
another document. | ||||
In this section we set out some basic requirements for any ConEx | ||||
mechanism. We are not saying this is an exhaustive list of those | ||||
requirements. This list is simply to allow readers to make a | ||||
realistic assessment of the feasibility and utility of the use cases | ||||
set out in Section 8. | ||||
The three key requirements are | ||||
1. Timeliness of information. The limitations of current network | ||||
design gives a minimum delay of 1 round trip time (RTT) for | ||||
congestion information to circulate the network. It is important | ||||
that the conex mechanism operates on similar timescales to ensure | ||||
the congestion information it exposes is as up to date as | ||||
possible. Stale congestion information is useless since | ||||
congestion levels can fluctuate widely over relatively short | ||||
timescales. | ||||
2. Accuracy of information. In order to be useful, congestion | ||||
information has to be sufficiently accurate for the purposes for | ||||
which it is to be used. In general the main purposes are | ||||
monitoring congestion and controlling congestion. As a minimum, | ||||
conex should equal the accuracy required for current TCP | ||||
implementations. A unary signal such as that provided by ECN is | ||||
sufficient though a more precise signal may be desirable. | ||||
3. Visibility of information. In order to be useful conex | ||||
information should be visible at every point in the network. In | ||||
today's networks that means it must be visible at the IP layer. | ||||
5.1. ConEx Issues | ||||
If ConEx information is to be useful, it has to be accurate (within | ||||
the limitations of the available feedback). This raises three issues | ||||
that need to be addressed: | ||||
Distinguishing ConEx traffic from non-ConEx traffic: An ISP may | ||||
reasonably choose to do nothing different with ConEx traffic. | ||||
Alternatively they might want to incentivise it in order to give | ||||
it marginally better service. | ||||
Over-declaring congestion: ConEx relies on the sender accurately | ||||
declaring the congestion they expect to see. During TCP slow- | ||||
start a sender is unable to predict the level of congestion they | ||||
will experience and it is advisable to declare that expect to see | ||||
some congestion on the first packet. However it is important to | ||||
be cautious when over-declaring congestion lest you erode trust in | ||||
the system. We do not initially propose any mechanism to deal | ||||
with this issue. | ||||
Under-declaring congestion: ConEx requires the sender to set the | ||||
downstream congestion field in each packet to their best estimate | ||||
of what they expect the whole path congestion to be. If this | ||||
expected congestion level is to be used for traffic management | ||||
(see use cases) then it benefits the user to under-declare. | ||||
Mechanisms are needed to prevent this happening. | ||||
There are three approaches that may work (individually or in | ||||
combination): | ||||
* An ingress router can monitor a user's feedback to see what | ||||
their reported congestion level actually is. | ||||
* If the congestion field carries the actual congestion value | ||||
then a ConEx-Enabled Policer could potentially drop any packet | ||||
with a downstream-congestion value of zero or less. | ||||
* An egress router can actively monitor some or all flows to | ||||
check that they are complying with the requirement that the | ||||
downstream congestion value should be zero or (slightly | ||||
positive) when it reaches the egress. | ||||
6. A Possible Congestion Exposure Mechanism | ||||
One possible protocol is based on a concept known as re-feedback | ||||
[Re-Feedback], and builds on existing active queue management | ||||
techniques like RED [RFC2309] and ECN [RFC3168] that network elements | ||||
can already use to measure and expose congestion. The protocol is | ||||
described in more detail in [Fairer-faster], but we summarise it | ||||
below. | ||||
In this protocol packets have two Congestion fields in their IP | ||||
header: | ||||
o An Upstream Congestion field to record the congestion already | ||||
experienced along the path. Routers indicate their current | ||||
congestion level by updating this field in every packet. As the | ||||
packet traverses the network it builds up a record of the overall | ||||
congestion along its path in this field. This data is sent back | ||||
to the sender who uses it to determine its transmission rate. | ||||
This can be achieved by using the existing ECN field [RFC3168]. | ||||
o A whole-path congestion field that uses re-feedback to record the | ||||
total congestion expected along the path. The sender does this by | ||||
re-inserting the current Congestion level for the path into this | ||||
field for every packet it transmits. | ||||
Thus at any node downstream of the sender you can see the Upstream | ||||
Congestion for the packet and the whole path congestion (with a time | ||||
lag of one round-trip-time (RTT)) and can calculate the Downstream | ||||
Congestion by subtracting the Upstream from the Whole Path | ||||
Congestion. | ||||
So congestion exposure can be achieved by coupling congestion | ||||
notification from routers with the re-insertion of this information | ||||
by the sender. This establishes information symmetry between users | ||||
and network providers. | ||||
7. ConEx Architectural Elements | ||||
ConEx is a simple concept that has revolutionary implications. It is | ||||
that rare thing -- a truly disruptive technology, and as such it is | ||||
hard to imagine the variety of uses it may be put to. Before even | ||||
thinking what it might be used for we need to address the issue of | ||||
how it can be used. This section describes four architectural | ||||
elements that can be placed in the network and which utilise ConEx | ||||
information to monitor or control traffic flows. | ||||
In the following we are assuming the most abstract version of the | ||||
ConEx mechanism, namely that every packet carries two congestion | ||||
fields, one for upstream congestion and one for downstream. | ||||
Section 6 outlines one possible approach for this. | ||||
7.1. ConEx Monitoring | ||||
One of the most useful things ConEx provides is the ability to | ||||
monitor (and control) the amount of congestion entering or leaving a | ||||
network. With ConEx, each packet carries sufficient information to | ||||
work out the Upstream, Downstream and Total Congestion Volume that | ||||
packet is responsible for. This allows the overall Congestion Volume | ||||
to be calculated at any point in the network. In effect this gives a | ||||
measure of how much excess traffic has been sent that was above the | ||||
instantaneous transmission capacity of the network. A 1 Gbps router | ||||
that is 0.1% congested implies that there is 1 Mbps of excess traffic | ||||
at that point in time. | ||||
The figure below shows 2 conceptual pieces of network equipment that | ||||
utilise ConEx information in order to monitor the flow of congestion | ||||
through the network. The Border Monitor sits at the border between | ||||
two networks, while the Edge Monitor sits at the ingress or egress to | ||||
the Internetwork. | ||||
,---. ,---. | ||||
,-----. / \ ,------. / \ ,------. ,-----. | ||||
| Src |--( Net A )-| B.M. |-( Net B )--| E.M. |--| Dst | | ||||
'-----` \ / '------` \ / '------` '-----` | ||||
'---` ^ '---` ^ | ||||
Border Monitor Edge Monitor | ||||
NB, the Edge Monitor could also be at the Src end of the network | ||||
Figure 1: Ingress, egress and border monitors | ||||
Note: In the tables below ECN-enabled and ConEx-Enabled are as | ||||
defined in Section 2. | ||||
7.1.1. Edge Monitoring | ||||
+------------+----------------+----------------+--------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+----------------+----------------+--------------------+ | ||||
| Sender | Yes, if ECN is | Yes, must be | Must be receiving | | ||||
| | used as basis | sending ConEx | congestion | | ||||
| | for congestion | information | feedback | | ||||
| | signal | | | | ||||
| Sender's | ECN would be | Should | NB, it doesn't | | ||||
| Network | beneficial | understand | have to be fully | | ||||
| | | ConEx markings | ConEx-Enabled | | ||||
| Core | ECN would be | Needn't | ConEx markings | | ||||
| Network | beneficial | understand | must get through | | ||||
| | | ConEx | the network | | ||||
| Receiver's | ECN would be | Should | Deosn't have to be | | ||||
| Network | beneficial | understand | fully | | ||||
| | | ConEx markings | ConEx-Enabled | | ||||
| Receiver | Only needed if | Should | Has to feedback | | ||||
| | network is | understand | the congestion it | | ||||
| | ECN-Enabled | ConEx | sees (either ECN | | ||||
| | | | or drop) | | ||||
+------------+----------------+----------------+--------------------+ | ||||
Table 1: Requirements for Edge Monitoring | ||||
Edge Monitors are ideally positioned to verify the accuracy of ConEx | ||||
markings. If there is an imbalance between the expected congestion | ||||
and the actual congestion then this will show up at the egress. Edge | ||||
Monitors can also be used by an operator to measure the service a | ||||
given customer is receiving by monitoring how much congestion their | ||||
traffic is causing. This may allow them to take pre-emptive action | ||||
if they detect any anomalies. | ||||
7.1.2. Border Monitoring | ||||
+------------+-----------------+-----------------+------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+-----------------+-----------------+------------------+ | ||||
| Sender | Must be | Yes, must be | Must receive | | ||||
| | ECN-enabled if | sending ConEx | accurate | | ||||
| | any of the | information | congestion | | ||||
| | network is | | feedback | | ||||
| Sender's | ECN should be | Should | Ideally would be | | ||||
| Network | enabled | understand | ConEx-Enabled | | ||||
| | | ConEx markings | | | ||||
| Core | ECN should be | Should | Ideally would be | | ||||
| Network | enabled | understand | ConEx-Enabled | | ||||
| | | ConEx markings | | | ||||
| Receiver's | ECN should be | Should | Ideally would be | | ||||
| Network | enabled | understand | ConEx-Enabled | | ||||
| | | ConEx markings | | | ||||
| Receiver | Must be | Must be ConEx | Receiver has to | | ||||
| | ECN-enabled if | enabled | feedback the | | ||||
| | any of the | | congestion it | | ||||
| | network is | | sees | | ||||
+------------+-----------------+-----------------+------------------+ | ||||
Table 2: Requirements for Border Monitoring | ||||
At any border between 2 networks, the operator can see the total | ||||
Congestion Volume that is being forwarded into its network by the | ||||
neighbouring network. A Border Monitor is able to measure the bulk | ||||
congestion markings and establish the flow of Congestion Volume each | ||||
way across the border. This could be used as the basis for inter- | ||||
network settlements. It also provides information to target upgrades | ||||
to where they are actually needed and might help to identify network | ||||
problems. Border Monitoring really needs the majority of the network | ||||
to be ECN-Enabled in order to provide the necessary Upstream | ||||
Congestion signal. Clearly the greatest benefit comes when there is | ||||
also ConEx deployment in the nnetwork. However, as long as the | ||||
sender is sending accurate ConEx information and the majority of the | ||||
network is ECN-enabled, border monitoring will work. | ||||
7.2. ConEx Policing | ||||
As shown above, ConEx gives an easy method of measuring Congestion | ||||
Volume. This information can be used as a control metric for making | ||||
traffic management decisions (such as deciding which traffic to | ||||
prioritise) or to identify and block sources of persistent and | ||||
damaging congestion. Simple policer mechanisms, such as those | ||||
described in [Policing-freedom] and [re-ecn-motive], can control the | ||||
overall congestion volume traversing a network. Ingress Policing | ||||
typically happens at the Ingress Node, Egress Policing typically | ||||
happens at the Egress Node and Border Policing can happen at any | ||||
border between two networks. The current charter concentrates on use | ||||
cases employing Egress Policers. | ||||
,---. ,---. | ||||
+-----+ +------+ / \ +------+ / \ +------+ +-----+ | ||||
| Src |--| I.P. |--( Net A )-| B.P. |-( Net B )--| E.P. |--| Dst | | ||||
+-----+ +------+ \ / +------+ \ / +------+ +-----+ | ||||
^ '---` ^ '---` ^ | ||||
Ingress Policer Border Policer Egress Policer | ||||
Figure 2: Ingress, egress and border policers | ||||
7.2.1. Egress Policing | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Sender | The sender | Must be | Must be receiving | | ||||
| | should be | ConEx-Enabled | congestion feedback | | ||||
| | ECN-enabled | | | | ||||
| | if any of | | | | ||||
| | the network | | | | ||||
| | is | | | | ||||
| Sender's | ECN is | ConEx is | ConEx would enable | | ||||
| Network | optional but | optional | them to do Ingress | | ||||
| | beneficial | | Policing (see later) | | ||||
| Core | ECN is | Not needed | ConEx marks must | | ||||
| Network | optional but | | survive crossing the | | ||||
| | beneficial | | network | | ||||
| Receiver's | ECN is | Must fully | Each receiver needs | | ||||
| Network | optional but | understand | an Egress Policer | | ||||
| | beneficial | ConEx | | | ||||
| Receiver | Should be | Should | Must feedback the | | ||||
| | ECN-enabled | understand | congestion it sees. | | ||||
| | if any of | ConEx | ConEx may have a | | ||||
| | the network | | compatibility mode | | ||||
| | is | | if the receiver is | | ||||
| | | | not ConEx-Enabled | | ||||
+------------+--------------+----------------+----------------------+ | ||||
Table 3: Egress Policer Requirements | ||||
An Egress Policer allows an ISP to monitor the Congestion Volume a | ||||
user's traffic has caused throughout the network, and then use this | ||||
to prioritise the traffic accordingly. By itself, such a policer | ||||
cannot tell how much of this congestion was caused in the ISP's own | ||||
network, but it will identify which users are the "heaviest" in terms | ||||
of the congestion they have caused. Assuming the ConEx information | ||||
is accurate then the Egress Policer will be able to see how much | ||||
congestion exists between it and the final destination (what you | ||||
might call "last-mile" congestion). There are a number of strategies | ||||
that could be used to determine how traffic is treated by an Egress | ||||
Policer. Obviously traffic that is not ConEx enabled needs to | ||||
receive some form of "default" treatment. Traffic that is ConEx | ||||
enabled may have under-declared congestion in which case it would be | ||||
reasonable to give it a low scheduling priority. Traffic that | ||||
appears to be over-declaring congestion may be simply a result of | ||||
especially high "last-mile" congestion, in which case the ISP may | ||||
want to upgrade the access capacity, or may want to try and reduce | ||||
the volume of traffic. Where the ISP knows what the "last-mile" | ||||
congestion is (for instance if it is able to measure several users | ||||
sharing that same capacity) then any remaining over-declared | ||||
congestion might be seen as a signal that the sender wishes to | ||||
prioritise this traffic. | ||||
7.2.2. Ingress Policing | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Sender | Should be | Must be | Must be receiving | | ||||
| | ECN-enabled | ConEx-enabled | congestion feedback | | ||||
| Sender's | ECN is | Must | | | ||||
| Network | optional but | understand | | | ||||
| | beneficial | ConEx | | | ||||
| Core | ECN is | Needn't | ConEx markings must | | ||||
| Network | optional but | understand | survive crossing the | | ||||
| | beneficial | ConEx | network | | ||||
| Receiver's | ECN is | Needn't | ConEx markings must | | ||||
| Network | optional but | understand | survive crossing the | | ||||
| | beneficial | ConEx | network | | ||||
| Receiver | Should be | Should be | Must feedback the | | ||||
| | ECN-enabled | ConEx-Enabled | congestion it sees. | | ||||
| | if any of | | ConEx may have a | | ||||
| | the network | | compatibility mode | | ||||
| | is | | if the receiver is | | ||||
| | | | not ConEx-Enabled | | ||||
+------------+--------------+----------------+----------------------+ | ||||
Table 4: Ingress Policer Requirements | ||||
At the Network Ingress, an ISP can police the amount of congestion a | ||||
user is causing by limiting the congestion volume they send into the | ||||
network. One system that achieves this is described in | ||||
[Policing-freedom]. This uses a modified token bucket to limit the | ||||
congestion rate being sent rather than the overall rate. Such | ||||
ingress policing is relatively simple as it requires no flow state. | ||||
Furthermore, unlike many mechanisms, it treats all a user's packets | ||||
equally. | ||||
7.2.3. Border Policing | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Sender | ECN should | Must be | Must receive | | ||||
| | be enabled | ConEx-enabled | accurate congestion | | ||||
| | | | feedback | | ||||
| Sender's | ECN is | Must be | | | ||||
| Network | optional but | ConEx-enabled | | | ||||
| | beneficial | | | | ||||
| Core | ECN is | Should be | Must be | | ||||
| Network | optional but | ConEx-Enabled | ConEx-Enabled if it | | ||||
| | beneficial | | is doing the | | ||||
| | | | policing. At a | | ||||
| | | | minimum must pass | | ||||
| | | | ConEx markings | | ||||
| | | | unaltered | | ||||
| Receiver's | ECN is | Should be | At a minimum must | | ||||
| Network | optional but | ConEx-Enabled | pass ConEx markings | | ||||
| | beneficial | | unaltered | | ||||
| Receiver | Should be | Should be | Must feedback the | | ||||
| | ECN-Enabled | ConEx-Enabled | congestion it sees. | | ||||
| | if any of | | ConEx may have a | | ||||
| | the network | | compatibility mode | | ||||
| | is | | if the receiver is | | ||||
| | | | not ConEx-Enabled | | ||||
+------------+--------------+----------------+----------------------+ | ||||
Table 5: Border Policer Requirements | ||||
A Border Policer will allow an operator to directly control the | ||||
congestion that it allows into its network. Normally we would expect | ||||
the controls to be related to some form of contractual obligation | ||||
between the two parties. However, such Policing could also be used | ||||
to mitigate some effects of Distributed Denial of Service (see | ||||
Section 8.3). In effect a Border Policer encourages the network | ||||
upstream to take responsibility for congestion it will cause | ||||
downstream and could be seen as an incentive for that network to | ||||
participate in ConEx (e.g. install Ingress Policers) | ||||
8. ConEx Use Cases | ||||
This section sets out some of the use cases for ConEx. These use | This section sets out some of the use cases for ConEx. These use | |||
cases rely on some of the conceptual network elements (policers and | cases rely on some of the conceptual elements described in | |||
monitors) described in Section 7 above. The authors don't claim this | [ConEx-Abstract-Mech] and Appendix A. The authors don't claim this | |||
is an exhaustive list of use cases, nor that these have equal merit. | is an exhaustive list of use cases, nor that these have equal merit. | |||
In most cases ConEx is not the only solution to achieve these. But | In most cases ConEx is not the only solution to achieve these. But | |||
these use cases represent a consensus among people that have been | these use cases represent a consensus among people that have been | |||
working on this approach for some years. | working on this approach for some years. | |||
8.1. ConEx as a basis for traffic management | 5.1. ConEx as a basis for traffic management | |||
Currently many ISPs impose some form of traffic management at peak | Currently many operators impose some form of traffic management at | |||
hours. This is a simple economic necessity -- the only reason the | peak hours. This is a simple economic necessity -- the only reason | |||
Internet works as a commercial concern is that ISPs are able to rely | the Internet works as a commercial concern is that operators are able | |||
on statistical multiplexing to share their expensive core network | to rely on statistical multiplexing to share their expensive core | |||
between large numbers of customers. In order to ensure all customers | network between large numbers of customers. In order to ensure all | |||
get some chance to access the network, the "heaviest" customers will | customers get some chance to access the network, the "heaviest" | |||
be subjected to some form of traffic management at peak times | customers will be subjected to some form of traffic management at | |||
(typically a rate cap for certain types of traffic) [Fair-use]. | peak times (typically a rate cap for certain types of traffic) | |||
Often this traffic management is done with expensive flow aware | [Fair-use]. Often this traffic management is done with expensive | |||
devices such as DPI boxes or flow-aware routers. | flow aware devices such as DPI boxes or flow-aware routers. | |||
ConEx offers a better approach that will actually target the users | ConEx offers a better approach that will actually target the users | |||
that are causing the congestion. By using Ingress or Egress | that are causing the congestion. By using Ingress or Egress | |||
Policers, an ISP can identify which users are causing the greatest | Policers, an ISP can identify which users are causing the greatest | |||
Congestion Volume throughout the network. This can then be used as | Congestion Volume throughout the network. This can then be used as | |||
the basis for traffic management decisions. The Ingress Policer | the basis for traffic management decisions. The Ingress Policer | |||
described in [Policing-freedom] is one interesting approach that | described in [Policing-freedom] is one interesting approach that | |||
gives the user a congestion volume limit. So long as they stay | gives the user a congestion volume limit. So long as they stay | |||
within their limit then their traffic is unaffected. Once they | within their limit then their traffic is unaffected. Once they | |||
exceed that limit then their traffic will be blocked temporarily. | exceed that limit then their traffic will be blocked temporarily. | |||
8.2. ConEx to incentivise scavenger transports | 5.2. ConEx to incentivise scavenger transports | |||
Recent work proposes a new approach for QoS where traffic is provided | Recent work proposes a new approach for QoS where traffic is provided | |||
with a less than best effort or "scavenger" quality of service. The | with a less than best effort or "scavenger" quality of service. The | |||
idea is that low priority but high volume traffic such as OS updates, | idea is that low priority but high volume traffic such as OS updates, | |||
P2P file transfers and view-later TV programs should be allowed to | P2P file transfers and view-later TV programs should be allowed to | |||
use any spare network capacity, but should rapidly get out of the way | use any spare network capacity, but should rapidly get out of the way | |||
if a higher priority or interactive application starts up. One | if a higher priority or interactive application starts up. One | |||
solution being actively explored is LEDBAT which proposes a new | solution being actively explored is LEDBAT which proposes a new | |||
congestion control algorithm that is less aggressive in seeking out | congestion control algorithm that is less aggressive in seeking out | |||
bandwidth than TCP. | bandwidth than TCP. | |||
At present most ISPs assume a strong correlation between the volume | At present most operators assume a strong correlation between the | |||
of a flow and the impact that flow causes in the network. This | volume of a flow and the impact that flow causes in the network. | |||
assumption has been eroded by the growth of interactive streaming | This assumption has been eroded by the growth of interactive | |||
which behaves in an inelastic manner and hence can cause high | streaming which behaves in an inelastic manner and hence can cause | |||
congestion at relatively low data volumes. Currently LEDBAT-like | high congestion at relatively low data volumes. Currently LEDBAT- | |||
transports get no incentive from the ISP since they still transfer | like transports get no incentive from the ISP since they still | |||
large volumes of data and may reach high transfer speeds if the | transfer large volumes of data and may reach high transfer speeds if | |||
network is uncongested. Consequently the only current incentive for | the network is uncongested. Consequently the only current incentive | |||
LEDBAT is that it can reduce self-congestion effects. | for LEDBAT is that it can reduce self-congestion effects. | |||
If the ISP has deployed a ConEx-aware ingress policer then they are | If the ISP has deployed a ConEx-aware Ingress Policer then they are | |||
able to incentivise the use of LEDBAT because a user will be policed | able to incentivise the use of LEDBAT because a user will be policed | |||
according to the overall congestion volume their traffic generates, | according to the overall congestion volume their traffic generates, | |||
not the rate or data volume. If all background file transfers are | not the rate or data volume. If all background file transfers are | |||
only generating a low level of congestion, then the sender has more | only generating a low level of congestion, then the sender has more | |||
"congestion budget" to "spend" on their interactive applications. It | "congestion budget" to "spend" on their interactive applications. It | |||
can be shown [Kelly] that this approach improves social welfare -- in | can be shown [Kelly] that this approach improves social welfare -- in | |||
other words if you limit the congestion that all users can generate | other words if you limit the congestion that all users can generate | |||
then everyone benefits from a better service. | then everyone benefits from a better service. | |||
8.3. ConEx to mitigate DDoS | 5.3. ConEx to mitigate DDoS | |||
DDoS relies on subverting innocent end users and getting them to send | DDoS relies on subverting innocent end users and getting them to send | |||
flood traffic to a given destination. This is intended to cause a | flood traffic to a given destination. This is intended to cause a | |||
rapid increase in congestion in the immediate vicinity of that | rapid increase in congestion in the immediate vicinity of that | |||
destination. If it fails to do this then it can't be called Denial | destination. If it fails to do this then it can't be called Denial | |||
of Service. If the ingress ISP has deployed Ingress Policers, that | of Service. If the ingress ISP has deployed Ingress Policers, that | |||
ISP will effectively limit how much DDoS traffic enters the 'net. If | ISP will effectively limit how much DDoS traffic enters the 'net. If | |||
any ISP along the path has deployed Border Monitors then they will be | any ISP along the path has deployed Border Monitors then they will be | |||
able to detect a sharp rise in Congestion Volume and if they have | able to detect a sharp rise in Congestion Volume and if they have | |||
Border Policers they will be able to "turn off" this traffic. If the | Border Policers they will be able to "turn off" this traffic. If the | |||
skipping to change at page 20, line 47 | skipping to change at page 11, line 35 | |||
will be able to detect which traffic is causing problems. If the | will be able to detect which traffic is causing problems. If the | |||
compromised user tries to use the 'net during the DDoS attack, they | compromised user tries to use the 'net during the DDoS attack, they | |||
will quickly become aware that something is wrong, and their ISP can | will quickly become aware that something is wrong, and their ISP can | |||
show the evidence that their computer has become zombified. | show the evidence that their computer has become zombified. | |||
DDoS is a genuine problem and so far there is no perfect solution. | DDoS is a genuine problem and so far there is no perfect solution. | |||
ConEx does serve to raise the bar somewhat and can avoid the need for | ConEx does serve to raise the bar somewhat and can avoid the need for | |||
some of the more draconian measures that are currently used to | some of the more draconian measures that are currently used to | |||
control DDoS. More details of this can be found in [Malice]. | control DDoS. More details of this can be found in [Malice]. | |||
8.4. Accounting for Congestion Volume | 5.4. Accounting for Congestion Volume | |||
Accountability was one of the original design goals for the Internet | Accountability was one of the original design goals for the Internet | |||
[Design-Philosophy]. At the time it was ranked low because the | [Design-Philosophy]. At the time it was ranked low because the | |||
network was non-commercial and it was assumed users had the best | network was non-commercial and it was assumed users had the best | |||
interests of the network at heart. Nowadays users generally treat | interests of the network at heart. Nowadays users generally treat | |||
the network as a commodity and the Internet has become highly | the network as a commodity and the Internet has become highly | |||
commercialised. This causes problems for ISPs and others which they | commercialised. This causes problems for operators and others which | |||
have tried to solve and often leads to a tragedy of the commons where | they have tried to solve and often leads to a tragedy of the commons | |||
users end up fighting each other for scarce peak capacity. | where users end up fighting each other for scarce peak capacity. | |||
The most elegant solution would be to introduce an Internet-wide | The most elegant solution would be to introduce an Internet-wide | |||
system of accountability where every actor in the network is held to | system of accountability where every actor in the network is held to | |||
account for the impact they have on others. If Policers are placed | account for the impact they have on others. If Policers are placed | |||
at every Network Ingress or Egress and Border Monitors at every | at every Network Ingress or Egress and Border Monitors at every | |||
border, then you have the basis for a system of congestion | border, then you have the basis for a system of congestion | |||
accounting. Simply by controlling the overall Congestion Volume each | accounting. Simply by controlling the overall Congestion Volume each | |||
end-system or stub-network can send you ensure everyone gets a better | end-system or stub-network can send you ensure everyone gets a better | |||
service. | service. | |||
8.5. ConEx as a form of differential QoS | 5.5. ConEx as a form of differential QoS | |||
Most QoS approaches require the active participation of routers to | Most QoS approaches require the active participation of routers to | |||
control the delay and loss characteristics for the traffic. For | control the delay and loss characteristics for the traffic. For | |||
real-time interactive traffic it is clear that low delay (and | real-time interactive traffic it is clear that low delay (and | |||
predictable jitter) are critical, and thus these probably always need | predictable jitter) are critical, and thus these probably always need | |||
different treatment at a router. However if low loss is the issue | different treatment at a router. However if low loss is the issue | |||
then ConEx offers an alternative approach. | then ConEx offers an alternative approach. | |||
Assuming the ingress ISP has deployed a ConEx Ingress Policer, then | Assuming the ingress ISP has deployed a ConEx Ingress Policer, then | |||
the only control on a user's traffic is dependent on the congestion | the only control on a user's traffic is dependent on the congestion | |||
skipping to change at page 22, line 5 | skipping to change at page 12, line 39 | |||
there are strong economic pressures to maintain a high enough data | there are strong economic pressures to maintain a high enough data | |||
rate (as that will directly influence the Quality of Experience the | rate (as that will directly influence the Quality of Experience the | |||
end-user receives. This approach removes the need for bandwidth | end-user receives. This approach removes the need for bandwidth | |||
brokers to establish QoS sessions, by removing the need to coordinate | brokers to establish QoS sessions, by removing the need to coordinate | |||
requests from multiple sources to pre-allocate bandwidth, as well as | requests from multiple sources to pre-allocate bandwidth, as well as | |||
to coordinate which allocations to revoke when bandwidth predictions | to coordinate which allocations to revoke when bandwidth predictions | |||
turn out to be wrong. There is also no need to "rate-police" at the | turn out to be wrong. There is also no need to "rate-police" at the | |||
boundaries on a per-flow basis, removing the need to keep per-flow | boundaries on a per-flow basis, removing the need to keep per-flow | |||
state (which in turn makes this approach more scalable). | state (which in turn makes this approach more scalable). | |||
8.6. Partial vs. Full Deployment | 5.6. Partial vs. Full Deployment | |||
In a fully-deployed ConEx-enabled internet, [QoS-Models] shows that | In a fully-deployed ConEx-enabled internet, [QoS-Models] shows that | |||
ISP settlements based on congestion volume can allocate money to | ISP settlements based on congestion volume can allocate money to | |||
where upgrades are needed. Fully-deployed implies that ConEx-marked | where upgrades are needed. Fully-deployed implies that ConEx-marked | |||
packets which have not exhausted their expected congestion would go | packets which have not exhausted their expected congestion would go | |||
through a congested path in preference to non-ConEx packets, with | through a congested path in preference to non-ConEx packets, with | |||
money changing hands to justify that priority. | money changing hands to justify that priority. | |||
In a partial deployment, routers that ignore ConEx markings and let | In a partial deployment, routers that ignore ConEx markings and let | |||
them pass unaltered are no problem unless they become congested and | them pass unaltered are no problem unless they become congested and | |||
skipping to change at page 23, line 9 | skipping to change at page 13, line 45 | |||
aggressively than TCP for any elastic traffic. Indeed they will | aggressively than TCP for any elastic traffic. Indeed they will | |||
actually have an incentive to use fully weighted congestion controls | actually have an incentive to use fully weighted congestion controls | |||
that allow traffic to cause congestion in proportion to its priority. | that allow traffic to cause congestion in proportion to its priority. | |||
Traffic which backs off more aggressively than TCP will see | Traffic which backs off more aggressively than TCP will see | |||
congestion charges remain the same (or even drop) as congestion | congestion charges remain the same (or even drop) as congestion | |||
increases; traffic which backs off less aggressively will see charges | increases; traffic which backs off less aggressively will see charges | |||
rise, but the user may be prepared to accept this if it is high- | rise, but the user may be prepared to accept this if it is high- | |||
priority traffic; traffic which backs off not at all will see charges | priority traffic; traffic which backs off not at all will see charges | |||
rise dramatically. | rise dramatically. | |||
9. Other issues | 6. Other issues | |||
9.1. Congestion as a Commercial Secret | 6.1. Congestion as a Commercial Secret | |||
Network operators have long viewed the congestion levels in their | Network operators have long viewed the congestion levels in their | |||
network as a business secret. In some ways this harks back to the | network as a business secret. In some ways this harks back to the | |||
days of fixed-line telecommunications where congestion manifested as | days of fixed-line telecommunications where congestion manifested as | |||
failed connections or dropped calls. But even in modern data-centric | failed connections or dropped calls. But even in modern data-centric | |||
packet networks congestion is viewed as a secret not to be shared | packet networks congestion is viewed as a secret not to be shared | |||
with competitors. It can be debated whether this view is sensible, | with competitors. It can be debated whether this view is sensible, | |||
but it may make operators uneasy about deploying ConEx. The | but it may make operators uneasy about deploying ConEx. The | |||
following two examples highlight some of the arguments used: | following two examples highlight some of the arguments used: | |||
o An ISP buys backhaul capacity from an operator. Most ISPs want | o An ISP buys backhaul capacity from an operator. Most operators | |||
their customers to get a decent service and so they want the | want their customers to get a decent service and so they want the | |||
backhaul to be relatively uncongested. If there is competition, | backhaul to be relatively uncongested. If there is competition, | |||
operators will seek to reassure their customers (the ISPs) that | operators will seek to reassure their customers (the operators) | |||
their network is not congested in order to attract their custom. | that their network is not congested in order to attract their | |||
Some operators may see ConEx as a threat since it will enable | custom. Some operators may see ConEx as a threat since it will | |||
those ISPs to see the actual congestion in their network. On the | enable those operators to see the actual congestion in their | |||
other hand, operators with low congestion could use ConEx to show | network. On the other hand, operators with low congestion could | |||
how well their network performs, and so might have an incentive to | use ConEx to show how well their network performs, and so might | |||
enable it. | have an incentive to enable it. | |||
o ISPs would like to be part of the lucrative content provision | o Operators would like to be part of the lucrative content provision | |||
market. Currently the ISP can gain a competitive edge as it can | market. Currently the ISP can gain a competitive edge as it can | |||
put its own content in a higher QoS class, whereas traffic from | put its own content in a higher QoS class, whereas traffic from | |||
content providers has to use the Best Effort class. The ISP may | content providers has to use the Best Effort class. The ISP may | |||
take the view that if they can conceal the congestion level in | take the view that if they can conceal the congestion level in | |||
their Best Effort class this will make it harder for the content | their Best Effort class this will make it harder for the content | |||
provider to maintain a good level of QoS. But in reality the | provider to maintain a good level of QoS. But in reality the | |||
Content Provider will just use the feedback mechanisms in | Content Provider will just use the feedback mechanisms in | |||
streaming protocols such as Adobe Flash to monitor the congestion. | streaming protocols such as Adobe Flash to monitor the congestion. | |||
Of course some might say that the idea of keeping congestion secret | Of course some might say that the idea of keeping congestion secret | |||
is silly. After all, end-hosts already have knowledge of the | is silly. After all, end-hosts already have knowledge of the | |||
congestion throughout the network, albeit only along specific paths, | congestion throughout the network, albeit only along specific paths, | |||
and ISPs can work out that there is persistent congestion as their | and operators can work out that there is persistent congestion as | |||
customers will be suffering degraded network performance. | their customers will be suffering degraded network performance. | |||
9.2. Information Security | 6.2. Information Security | |||
make a source believe it has seen more congestion than it has | make a source believe it has seen more congestion than it has | |||
hijack a user's identity and make it appear they are dishonest at an | hijack a user's identity and make it appear they are dishonest at an | |||
egress policer | egress policer | |||
clear or otherwise tamper with the ConEx markings | clear or otherwise tamper with the ConEx markings | |||
... | ... | |||
{ToDo} Write these up properly... | {ToDo} Write these up properly... | |||
10. Security Considerations | 7. Security Considerations | |||
This document proposes a mechanism tagging onto Explicit Congestion | This document proposes a mechanism tagging onto Explicit Congestion | |||
Notification [RFC3168], and inherits the security issues listed | Notification [RFC3168], and inherits the security issues listed | |||
therein. The additional issues from ConEx markings relate to the | therein. The additional issues from ConEx markings relate to the | |||
degree of trust each forwarding point places in the ConEx markings it | degree of trust each forwarding point places in the ConEx markings it | |||
receives, which is a business decision mostly orthogonal to the | receives, which is a business decision mostly orthogonal to the | |||
markings themselves. | markings themselves. | |||
One expected use of exposed congestion information is to hold the | One expected use of exposed congestion information is to hold the | |||
end-to-end transport and the network accountable to each other. The | end-to-end transport and the network accountable to each other. The | |||
skipping to change at page 25, line 30 | skipping to change at page 16, line 15 | |||
congestion. This will be a particular problem with sources of | congestion. This will be a particular problem with sources of | |||
flooding attacks. "Policing" mechanisms have been proposed to | flooding attacks. "Policing" mechanisms have been proposed to | |||
deal with this. | deal with this. | |||
In addition there are potential problems from source spoofing. A | In addition there are potential problems from source spoofing. A | |||
malicious sender can pretend to be another user by spoofing the | malicious sender can pretend to be another user by spoofing the | |||
source address. Congestion Exposure allows for "Policers" and | source address. Congestion Exposure allows for "Policers" and | |||
"Traffic Shapers" so as to be robust against injection of false | "Traffic Shapers" so as to be robust against injection of false | |||
congestion information into the forward path. | congestion information into the forward path. | |||
11. IANA Considerations | 8. IANA Considerations | |||
This document does not require actions by IANA. | This document does not require actions by IANA. | |||
12. Acknowledgments | 9. Acknowledgments | |||
Bob Briscoe is partly funded by Trilogy, a research project (ICT- | Bob Briscoe is partly funded by Trilogy, a research project (ICT- | |||
216372) supported by the European Community under its Seventh | 216372) supported by the European Community under its Seventh | |||
Framework Programme. The views expressed here are those of the | Framework Programme. The views expressed here are those of the | |||
author only. | author only. | |||
The authors would like to thank Contributing Authors Bernard Aboba, | The authors would like to thank Contributing Authors Bernard Aboba, | |||
Joao Taveira Araujo, Louise Burness, Alissa Cooper, Philip Eardley, | Joao Taveira Araujo, Louise Burness, Alissa Cooper, Philip Eardley, | |||
Michael Menth, and Hannes Tschofenig for their inputs to this | Michael Menth, and Hannes Tschofenig for their inputs to this | |||
document. Useful feedback was also provided by Dirk Kutscher. | document. Useful feedback was also provided by Dirk Kutscher. | |||
13. References | 10. References | |||
13.1. Normative References | 10.1. Normative References | |||
[RFC3168] Ramakrishnan, K., Floyd, | [RFC3168] Ramakrishnan, K., Floyd, | |||
S., and D. Black, "The | S., and D. Black, "The | |||
Addition of Explicit | Addition of Explicit | |||
Congestion Notification | Congestion Notification | |||
(ECN) to IP", RFC 3168, | (ECN) to IP", RFC 3168, | |||
September 2001. | September 2001. | |||
13.2. Informative References | 10.2. Informative References | |||
[BB-incentive] MIT Communications Futures | [BB-incentive] MIT Communications Futures | |||
Program (CFP) and | Program (CFP) and | |||
Cambridge University | Cambridge University | |||
Communications Research | Communications Research | |||
Network, "The Broadband | Network, "The Broadband | |||
Incentive Problem", | Incentive Problem", | |||
September 2005. | September 2005. | |||
[ConEx-Abstract-Mech] Briscoe, B., "Congestion | ||||
Exposure (ConEx) Concepts | ||||
and Abstract Mechanism", d | ||||
raft-mathis-conex- | ||||
abstract-mech-00 (work in | ||||
progress), October 2010. | ||||
[Design-Philosophy] Clarke, D., "The Design | [Design-Philosophy] Clarke, D., "The Design | |||
Philosophy of the DARPA | Philosophy of the DARPA | |||
Internet Protocols", 1988. | Internet Protocols", 1988. | |||
[Fair-use] Broadband Choices, "Truth | [Fair-use] Broadband Choices, "Truth | |||
about 'fair usage' | about 'fair usage' | |||
broadband", 2009. | broadband", 2009. | |||
[Fairer-faster] Briscoe, B., "A Fairer | [Fairer-faster] Briscoe, B., "A Fairer | |||
Faster Internet Protocol", | Faster Internet Protocol", | |||
skipping to change at page 27, line 36 | skipping to change at page 18, line 30 | |||
<http:// | <http:// | |||
wesii.econinfosec.org/ | wesii.econinfosec.org/ | |||
draft.php?paper_id=19>. | draft.php?paper_id=19>. | |||
[OfCom] Ofcom: Office of | [OfCom] Ofcom: Office of | |||
Communications, "UK | Communications, "UK | |||
Broadband Speeds 2008: | Broadband Speeds 2008: | |||
Research report", | Research report", | |||
January 2009. | January 2009. | |||
[Padhye] Padhye, J., Firoiu, V., | ||||
Towsley, D., and J. | ||||
Kurose, "Modeling TCP | ||||
Throughput: A Simple Model | ||||
and its Empirical | ||||
Validation", ACM SIGCOMM | ||||
Computer Communications | ||||
Review Vol 28(4), pages | ||||
303-314, May 1998. | ||||
[Policing-freedom] Briscoe, B., Jacquet, A., | [Policing-freedom] Briscoe, B., Jacquet, A., | |||
and T. Moncaster, | and T. Moncaster, | |||
"Policing Freedom to Use | "Policing Freedom to Use | |||
the Internet Resource | the Internet Resource | |||
Pool", RE-Arch 2008 hosted | Pool", RE-Arch 2008 hosted | |||
at the 2008 CoNEXT | at the 2008 CoNEXT | |||
conference , | conference , | |||
December 2008. | December 2008. | |||
[QoS-Models] Briscoe, B. and S. Rudkin, | [QoS-Models] Briscoe, B. and S. Rudkin, | |||
skipping to change at page 29, line 5 | skipping to change at page 20, line 6 | |||
[re-ecn-motive] Briscoe, B., Jacquet, A., | [re-ecn-motive] Briscoe, B., Jacquet, A., | |||
Moncaster, T., and A. | Moncaster, T., and A. | |||
Smith, "Re-ECN: A | Smith, "Re-ECN: A | |||
Framework for adding | Framework for adding | |||
Congestion Accountability | Congestion Accountability | |||
to TCP/IP", draft-briscoe- | to TCP/IP", draft-briscoe- | |||
tsvwg-re-ecn-tcp- | tsvwg-re-ecn-tcp- | |||
motivation-01 (work in | motivation-01 (work in | |||
progress), September 2009. | progress), September 2009. | |||
Appendix A. ConEx Architectural Elements | ||||
ConEx is a simple concept that has revolutionary implications. It is | ||||
that rare thing -- a truly disruptive technology, and as such it is | ||||
hard to imagine the variety of uses it may be put to. Before even | ||||
thinking what it might be used for we need to address the issue of | ||||
how it can be used. This section describes four architectural | ||||
elements that can be placed in the network and which utilise ConEx | ||||
information to monitor or control traffic flows. | ||||
In the following we are assuming the most abstract version of the | ||||
ConEx mechanism, namely that every packet carries two congestion | ||||
fields, one for upstream congestion and one for downstream. | ||||
[ConEx-Abstract-Mech] outlines one possible approach for this. | ||||
A.1. ConEx Monitoring | ||||
One of the most useful things ConEx provides is the ability to | ||||
monitor (and control) the amount of congestion entering or leaving a | ||||
network. With ConEx, each packet carries sufficient information to | ||||
work out the Upstream, Downstream and Total Congestion Volume that | ||||
packet is responsible for. This allows the overall Congestion Volume | ||||
to be calculated at any point in the network. In effect this gives a | ||||
measure of how much excess traffic has been sent that was above the | ||||
instantaneous transmission capacity of the network. A 1 Gbps router | ||||
that is 0.1% congested implies that there is 1 Mbps of excess traffic | ||||
at that point in time. | ||||
The figure below shows 2 conceptual pieces of network equipment that | ||||
utilise ConEx information in order to monitor the flow of congestion | ||||
through the network. The Border Monitor sits at the border between | ||||
two networks, while the Edge Monitor sits at the Ingress or Egress to | ||||
the Internetwork. | ||||
,---. ,---. | ||||
,-----. / \ ,------. / \ ,------. ,-----. | ||||
| Src |--( Net A )-| B.M. |-( Net B )--| E.M. |--| Dst | | ||||
'-----` \ / '------` \ / '------` '-----` | ||||
'---` ^ '---` ^ | ||||
Border Monitor Edge Monitor | ||||
NB, the Edge Monitor could also be at the Src end of the network | ||||
Figure 1: Ingress, egress and border monitors | ||||
Note: In the tables below, ConEx-Enabled is as defined in Section 2 | ||||
and ECN-enabled means any router that fully enables Explicit | ||||
Congestion Notification (ECN) as defined in [RFC3168] and any | ||||
relevant updates to that standard. | ||||
A.1.1. Edge Monitoring | ||||
+------------+----------------+----------------+--------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+----------------+----------------+--------------------+ | ||||
| Sender | Yes, if ECN is | Yes, must be | Must be receiving | | ||||
| | used as basis | sending ConEx | congestion | | ||||
| | for congestion | information | feedback | | ||||
| | signal | | | | ||||
| Sender's | ECN would be | Should | NB, it doesn't | | ||||
| Network | beneficial | understand | have to be fully | | ||||
| | | ConEx markings | ConEx-Enabled | | ||||
| Core | ECN would be | Needn't | ConEx markings | | ||||
| Network | beneficial | understand | must get through | | ||||
| | | ConEx | the network | | ||||
| Receiver's | ECN would be | Should | Deosn't have to be | | ||||
| Network | beneficial | understand | fully | | ||||
| | | ConEx markings | ConEx-Enabled | | ||||
| Receiver | Only needed if | Should | Has to feedback | | ||||
| | network is | understand | the congestion it | | ||||
| | ECN-Enabled | ConEx | sees (either ECN | | ||||
| | | | or drop) | | ||||
+------------+----------------+----------------+--------------------+ | ||||
Table 1: Requirements for Edge Monitoring | ||||
Edge Monitors are ideally positioned to verify the accuracy of ConEx | ||||
markings. If there is an imbalance between the expected congestion | ||||
and the actual congestion then this will show up at the egress. Edge | ||||
Monitors can also be used by an operator to measure the service a | ||||
given customer is receiving by monitoring how much congestion their | ||||
traffic is causing. This may allow them to take pre-emptive action | ||||
if they detect any anomalies. | ||||
A.1.2. Border Monitoring | ||||
+------------+-----------------+-----------------+------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+-----------------+-----------------+------------------+ | ||||
| Sender | Must be | Yes, must be | Must receive | | ||||
| | ECN-enabled if | sending ConEx | accurate | | ||||
| | any of the | information | congestion | | ||||
| | network is | | feedback | | ||||
| Sender's | ECN should be | Should | Ideally would be | | ||||
| Network | enabled | understand | ConEx-Enabled | | ||||
| | | ConEx markings | | | ||||
| Core | ECN should be | Should | Ideally would be | | ||||
| Network | enabled | understand | ConEx-Enabled | | ||||
| | | ConEx markings | | | ||||
| Receiver's | ECN should be | Should | Ideally would be | | ||||
| Network | enabled | understand | ConEx-Enabled | | ||||
| | | ConEx markings | | | ||||
| Receiver | Must be | Must be ConEx | Receiver has to | | ||||
| | ECN-enabled if | enabled | feedback the | | ||||
| | any of the | | congestion it | | ||||
| | network is | | sees | | ||||
+------------+-----------------+-----------------+------------------+ | ||||
Table 2: Requirements for Border Monitoring | ||||
At any border between 2 networks, the operator can see the total | ||||
Congestion Volume that is being forwarded into its network by the | ||||
neighbouring network. A Border Monitor is able to measure the bulk | ||||
congestion markings and establish the flow of Congestion Volume each | ||||
way across the border. This could be used as the basis for inter- | ||||
network settlements. It also provides information to target upgrades | ||||
to where they are actually needed and might help to identify network | ||||
problems. Border Monitoring really needs the majority of the network | ||||
to be ECN-Enabled in order to provide the necessary Upstream | ||||
Congestion signal. Clearly the greatest benefit comes when there is | ||||
also ConEx deployment in the nnetwork. However, as long as the | ||||
sender is sending accurate ConEx information and the majority of the | ||||
network is ECN-enabled, border monitoring will work. | ||||
A.2. ConEx Policing | ||||
As shown above, ConEx gives an easy method of measuring Congestion | ||||
Volume. This information can be used as a control metric for making | ||||
traffic management decisions (such as deciding which traffic to | ||||
prioritise) or to identify and block sources of persistent and | ||||
damaging congestion. Simple policer mechanisms, such as those | ||||
described in [Policing-freedom] and [re-ecn-motive], can control the | ||||
overall congestion volume traversing a network. Ingress Policing | ||||
typically happens at the Ingress Node, Egress Policing typically | ||||
happens at the Egress Node and Border Policing can happen at any | ||||
border between two networks. The current charter concentrates on use | ||||
cases employing Egress Policers. | ||||
,---. ,---. | ||||
+-----+ +------+ / \ +------+ / \ +------+ +-----+ | ||||
| Src |--| I.P. |--( Net A )-| B.P. |-( Net B )--| E.P. |--| Dst | | ||||
+-----+ +------+ \ / +------+ \ / +------+ +-----+ | ||||
^ '---` ^ '---` ^ | ||||
Ingress Policer Border Policer Egress Policer | ||||
Figure 2: Ingress, egress and border policers | ||||
A.2.1. Egress Policing | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Sender | The sender | Must be | Must be receiving | | ||||
| | should be | ConEx-Enabled | congestion feedback | | ||||
| | ECN-enabled | | | | ||||
| | if any of | | | | ||||
| | the network | | | | ||||
| | is | | | | ||||
| Sender's | ECN is | ConEx is | ConEx would enable | | ||||
| Network | optional but | optional | them to do Ingress | | ||||
| | beneficial | | Policing (see later) | | ||||
| Core | ECN is | Not needed | ConEx marks must | | ||||
| Network | optional but | | survive crossing the | | ||||
| | beneficial | | network | | ||||
| Receiver's | ECN is | Must fully | Each receiver needs | | ||||
| Network | optional but | understand | an Egress Policer | | ||||
| | beneficial | ConEx | | | ||||
| Receiver | Should be | Should | Must feedback the | | ||||
| | ECN-enabled | understand | congestion it sees. | | ||||
| | if any of | ConEx | ConEx may have a | | ||||
| | the network | | compatibility mode | | ||||
| | is | | if the receiver is | | ||||
| | | | not ConEx-Enabled | | ||||
+------------+--------------+----------------+----------------------+ | ||||
Table 3: Egress Policer Requirements | ||||
An Egress Policer allows an ISP to monitor the Congestion Volume a | ||||
user's traffic has caused throughout the network, and then use this | ||||
to prioritise the traffic accordingly. By itself, such a policer | ||||
cannot tell how much of this congestion was caused in the ISP's own | ||||
network, but it will identify which users are the "heaviest" in terms | ||||
of the congestion they have caused. Assuming the ConEx information | ||||
is accurate then the Egress Policer will be able to see how much | ||||
congestion exists between it and the final destination (what you | ||||
might call "last-mile" congestion). There are a number of strategies | ||||
that could be used to determine how traffic is treated by an Egress | ||||
Policer. Obviously traffic that is not ConEx enabled needs to | ||||
receive some form of "default" treatment. Traffic that is ConEx | ||||
enabled may have under-declared congestion in which case it would be | ||||
reasonable to give it a low scheduling priority. Traffic that | ||||
appears to be over-declaring congestion may be simply a result of | ||||
especially high "last-mile" congestion, in which case the ISP may | ||||
want to upgrade the access capacity, or may want to try and reduce | ||||
the volume of traffic. Where the ISP knows what the "last-mile" | ||||
congestion is (for instance if it is able to measure several users | ||||
sharing that same capacity) then any remaining over-declared | ||||
congestion might be seen as a signal that the sender wishes to | ||||
prioritise this traffic. | ||||
A.2.2. Ingress Policing | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Sender | Should be | Must be | Must be receiving | | ||||
| | ECN-enabled | ConEx-enabled | congestion feedback | | ||||
| Sender's | ECN is | Must | | | ||||
| Network | optional but | understand | | | ||||
| | beneficial | ConEx | | | ||||
| Core | ECN is | Needn't | ConEx markings must | | ||||
| Network | optional but | understand | survive crossing the | | ||||
| | beneficial | ConEx | network | | ||||
| Receiver's | ECN is | Needn't | ConEx markings must | | ||||
| Network | optional but | understand | survive crossing the | | ||||
| | beneficial | ConEx | network | | ||||
| Receiver | Should be | Should be | Must feedback the | | ||||
| | ECN-enabled | ConEx-Enabled | congestion it sees. | | ||||
| | if any of | | ConEx may have a | | ||||
| | the network | | compatibility mode | | ||||
| | is | | if the receiver is | | ||||
| | | | not ConEx-Enabled | | ||||
+------------+--------------+----------------+----------------------+ | ||||
Table 4: Ingress Policer Requirements | ||||
At the Network Ingress, an ISP can police the amount of congestion a | ||||
user is causing by limiting the congestion volume they send into the | ||||
network. One system that achieves this is described in | ||||
[Policing-freedom]. This uses a modified token bucket to limit the | ||||
congestion rate being sent rather than the overall rate. Such | ||||
Ingress policing is relatively simple as it requires no flow state. | ||||
Furthermore, unlike many mechanisms, it treats all a user's packets | ||||
equally. | ||||
A.2.3. Border Policing | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Network | ECN-Enabled? | ConEx-Enabled? | Notes | | ||||
| Element | | | | | ||||
+------------+--------------+----------------+----------------------+ | ||||
| Sender | ECN should | Must be | Must receive | | ||||
| | be enabled | ConEx-enabled | accurate congestion | | ||||
| | | | feedback | | ||||
| Sender's | ECN is | Must be | | | ||||
| Network | optional but | ConEx-enabled | | | ||||
| | beneficial | | | | ||||
| Core | ECN is | Should be | Must be | | ||||
| Network | optional but | ConEx-Enabled | ConEx-Enabled if it | | ||||
| | beneficial | | is doing the | | ||||
| | | | policing. At a | | ||||
| | | | minimum must pass | | ||||
| | | | ConEx markings | | ||||
| | | | unaltered | | ||||
| Receiver's | ECN is | Should be | At a minimum must | | ||||
| Network | optional but | ConEx-Enabled | pass ConEx markings | | ||||
| | beneficial | | unaltered | | ||||
| Receiver | Should be | Should be | Must feedback the | | ||||
| | ECN-Enabled | ConEx-Enabled | congestion it sees. | | ||||
| | if any of | | ConEx may have a | | ||||
| | the network | | compatibility mode | | ||||
| | is | | if the receiver is | | ||||
| | | | not ConEx-Enabled | | ||||
+------------+--------------+----------------+----------------------+ | ||||
Table 5: Border Policer Requirements | ||||
A Border Policer will allow an operator to directly control the | ||||
congestion that it allows into its network. Normally we would expect | ||||
the controls to be related to some form of contractual obligation | ||||
between the two parties. However, such Policing could also be used | ||||
to mitigate some effects of Distributed Denial of Service (see | ||||
Section 5.3). In effect a Border Policer encourages the network | ||||
upstream to take responsibility for congestion it will cause | ||||
downstream and could be seen as an incentive for that network to | ||||
participate in ConEx (e.g. install Ingress Policers) | ||||
Authors' Addresses | Authors' Addresses | |||
Bob Briscoe | Bob Briscoe | |||
BT | 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 | |||
End of changes. 63 change blocks. | ||||
570 lines changed or deleted | 506 lines changed or added | |||
This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |