| < 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/ | ||||