| draft-briscoe-tsvwg-relax-fairness-00.txt | draft-briscoe-tsvwg-relax-fairness-01.txt | |||
|---|---|---|---|---|
| Transport Area Working Group B. Briscoe | Transport Area Working Group B. Briscoe | |||
| Internet-Draft BT & UCL | Internet-Draft BT & UCL | |||
| Intended status: Informational T. Moncaster | Intended status: Informational T. Moncaster | |||
| Expires: May 15, 2008 L. Burness | Expires: January 15, 2009 L. Burness | |||
| BT | BT | |||
| November 12, 2007 | July 14, 2008 | |||
| Problem Statement: We Don't Have To Do Fairness Ourselves | Problem Statement: Transport Protocols Don't Have To Do Fairness | |||
| draft-briscoe-tsvwg-relax-fairness-00 | draft-briscoe-tsvwg-relax-fairness-01 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 36 | skipping to change at page 1, line 36 | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on May 15, 2008. | This Internet-Draft will expire on January 15, 2009. | |||
| Copyright Notice | ||||
| Copyright (C) The IETF Trust (2007). | ||||
| Abstract | Abstract | |||
| Nowadays resource sharing on the Internet is largely a result of what | The Internet is an amazing achievement - any of the thousand million | |||
| applications, users and operators do at run-time, rather than what | hosts can freely use any of the resources anywhere on the public | |||
| the IETF designs into transport protocols at design-time. The IETF | network. At least that was the original theory. Recently issues | |||
| now needs to recognise this trend and consider how to allow resource | with how these resources are shared among these hosts have come to | |||
| sharing to be properly controlled at run-time. | the fore. Applications are innocently exploring the limits of | |||
| protocol design to get larger shares of available bandwidth. | ||||
| Requirements Language | Increasingly we are seeing ISPs imposing restrictions on heavier | |||
| usage in order to try to preserve the level of service they can offer | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | to lighter customers. We believe that these are symptoms of an | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | underlying problem: fair resource sharing is an issue that can only | |||
| document are to be interpreted as described in [RFC2119]. | be resolved at run-time, but for years attempts have been made to | |||
| solve it at design time. In this document we show that fairness is | ||||
| not the preserve of transport protocols, rather the design of such | ||||
| protocols should be such that fairness can be controlled between | ||||
| users and ISPs at run-time. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. What Problem? . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. What Problem? . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1. Two Incompatible Partial Worldviews . . . . . . . . . . . 4 | 2.1. Two Incompatible Cultures . . . . . . . . . . . . . . . . 5 | |||
| 2.1.1. Overlooked Degrees of Freedom . . . . . . . . . . . . 7 | 2.1.1. Overlooked Degrees of Freedom . . . . . . . . . . . . 7 | |||
| 2.2. Average Rates are a Run-Time Issue . . . . . . . . . . . . 8 | 2.2. Average Rates are a Run-Time Issue . . . . . . . . . . . . 9 | |||
| 2.3. Protocol Dynamics is the Design-Time Issue . . . . . . . . 9 | 2.3. Protocol Dynamics is the Design-Time Issue . . . . . . . . 9 | |||
| 3. Concrete Consequences of Unfairness . . . . . . . . . . . . . 10 | 3. Concrete Consequences of Unfairness . . . . . . . . . . . . . 11 | |||
| 3.1. Higher Investment Risk . . . . . . . . . . . . . . . . . . 11 | 3.1. Higher Investment Risk . . . . . . . . . . . . . . . . . . 11 | |||
| 3.2. Losing Voluntarism . . . . . . . . . . . . . . . . . . . . 12 | 3.2. Losing Voluntarism . . . . . . . . . . . . . . . . . . . . 12 | |||
| 3.3. Networks using DPI to make Choices for Users . . . . . . . 13 | 3.3. Networks using Deep Packet Inspection to make Choices | |||
| 3.4. Starvation during Anomalies and Emergencies . . . . . . . 14 | for Users . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 3.4. Starvation during Anomalies and Emergencies . . . . . . . 15 | |||
| 5. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 4. IANA considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 7. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 15 | 6. Summary and Next Steps . . . . . . . . . . . . . . . . . . . . 16 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 15 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 16 | 9. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 17 | ||||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 17 | ||||
| Editorial Comments . . . . . . . . . . . . . . . . . . . . . . . . | Editorial Comments . . . . . . . . . . . . . . . . . . . . . . . . | |||
| Appendix A. Example Scenario . . . . . . . . . . . . . . . . . . 19 | Appendix A. Example Scenario . . . . . . . . . . . . . . . . . . 21 | |||
| A.1. Base Scenario . . . . . . . . . . . . . . . . . . . . . . 19 | A.1. Base Scenario . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| A.2. Compounding Overlooked Degrees of Freedom . . . . . . . . 20 | A.2. Compounding Overlooked Degrees of Freedom . . . . . . . . 22 | |||
| A.3. Hybrid Users . . . . . . . . . . . . . . . . . . . . . . . 21 | A.3. Hybrid Users . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| A.4. Upgrading Makes Most Users Worse Off . . . . . . . . . . . 21 | A.4. Upgrading Makes Most Users Worse Off . . . . . . . . . . . 23 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 25 | Intellectual Property and Copyright Statements . . . . . . . . . . 27 | |||
| Changes from previous drafts (to be removed by the RFC Editor) | ||||
| From -00 to -01: | ||||
| * Abstract re-written. | ||||
| * Language changes throughout to highlight that the problem is | ||||
| not P2P users, or P2P app developers. Rather the problem is | ||||
| the idea that the IETF can handle fairness itself at design | ||||
| time through the design of its transport protocols. | ||||
| * New "Summary and Next Steps" section added. | ||||
| 1. Introduction | 1. Introduction | |||
| The strength of the Internet is that any of the thousand million or | The strength of the Internet is that any of the thousand million or | |||
| so hosts may use nearly any network resource on the whole public | so hosts may use nearly any network resource on the whole public | |||
| Internet without asking, whether in access or core networks, wireless | Internet without asking, whether in access or core networks, wireless | |||
| or fixed, local or remote. The question of how each resource is | or fixed, local or remote. The question of how each resource is | |||
| shared is generally delegated to the congestion control algorithms | shared is generally delegated to the congestion control algorithms | |||
| available on each endpoint, most often TCP. | available on each endpoint, most often TCP. | |||
| We (the IETF) aim to ensure reasonably fair sharing of the congested | We (the IETF) aim to ensure reasonably fair sharing of the congested | |||
| resources of the Internet [RFC2914]. Specifically, the TCP algorithm | resources of the Internet [RFC2914]. Specifically, the TCP algorithm | |||
| aims to ensure every flow gets a roughly equal share of each | aims to ensure every flow gets a roughly equal share of each | |||
| bottleneck, measured in packets per round trip time [RFC2581]. But | bottleneck, measured in packets per round trip time [RFC2581]. But | |||
| our efforts have become distorted by unfair use of protocols we | our efforts have become distorted by people using the protocols we | |||
| intended to be fair, and further by the attempts of operators to | wrote to be fair in new ways we never predicted. This distortion has | |||
| correct the situation. The problem is we aim to control fairness at | been increased further by the attempts of operators to correct the | |||
| protocol design-time, but resource shares are now primarily | situation. To be crystal clear, we are categorically not saying | |||
| determined at run-time--as the outcome of a tussle between users, app | users are causing the problem. Nor should application developers be | |||
| developers and operators. | blamed. Both should be able to expect the Internet to deal with | |||
| fairness if it is a problem. The problem is with us at the IETF. We | ||||
| aim to control fairness at protocol design-time, but resource shares | ||||
| are now primarily determined at run-time--as the outcome of a tussle | ||||
| between users, application developers and operators. | ||||
| For instance, about 35% of total traffic currently seen (Sep'07) at a | For instance, about 35% of total traffic currently seen (Sep'07) at a | |||
| core node on the public wireline Internet is p2p file-sharing {ToDo: | core node on the public wireline Internet is p2p file-sharing {ToDo: | |||
| Add ref}. Even though file-sharing generally uses TCP, it uses the | Add ref}. Of course, sharing files is not a problem in itself--it's | |||
| well-known trick of opening multiple connections--currently around | cool. But even though file-sharing generally uses TCP, it uses the | |||
| 100 actively transferring over different paths is not uncommon. A | well-known technique of opening multiple connections--currently | |||
| competing Web application might open a couple of flows at a time, but | around 10-100 actively transferring over different paths is not | |||
| perhaps only actively transfer data 1-10% of the time (its activity | uncommon. A competing Web application might open a couple of flows | |||
| factor). Combining 50x less flows and 10-100x lower activity factor | at a time, but perhaps only actively transfer data 1-10% of the time | |||
| means the traffic intensity from the Web app can be 500-5,000x less. | (its activity factor). Combining 5-50x less flows and 10-100x lower | |||
| However, despite being so much lighter on the network, it gets 50x | activity factor means the traffic intensity from the Web app can be | |||
| less bit rate through the bottleneck. | 50-5,000x less. However, despite being so much lighter on the | |||
| network, it gets 5-50x less bit rate through the bottleneck. Even if | ||||
| a file-sharing application only opens 10 flows, its significantly | ||||
| higher activity factor still makes its traffic intensity very high. | ||||
| The design-time approach worked well enough during the early days of | The design-time approach worked well enough during the early days of | |||
| the Internet, because most users' activity factors and numbers of | the Internet, because most users' activity factors and numbers of | |||
| flows were in proportion to their access link rate. But, now the | flows were in proportion to their access link rate. But, now the | |||
| Internet has to support a jostling mix of different attitudes to | Internet has to support a jostling mix of different attitudes to | |||
| resource sharing: carelessness, unwitting self-interest, active self- | resource sharing: carelessness, unwitting self-interest, active self- | |||
| interest, malice and sometimes even a little consideration for | interest, malice and sometimes even a little consideration for | |||
| others. So although TCP sets an important baseline, it is no longer | others. So although TCP sets an important baseline, it is no longer | |||
| the main determinant of how resources are shared between users at | the main determinant of how overall resources are shared between | |||
| run-time. | users at run-time. | |||
| Just because we can no longer control resource sharing at design | Just because we can no longer control resource sharing at design | |||
| time, we aren't saying it isn't important. In Section 3, we show | time, we aren't saying it isn't important. In Section 3, we show | |||
| that badly skewed resource sharing has serious concrete knock-on | that badly skewed resource sharing has serious concrete knock-on | |||
| effects that are of great concern to the health of the Internet. | effects that are of great concern to the health of the Internet. | |||
| And we are not saying the IETF is powerless to do anything to help. | And we are not saying the IETF is powerless to do anything to help. | |||
| However, our role must now be to create the run-time _framework_ | ||||
| However, our role must now be to create the run-time _policy | within which users and operators can control relative resource | |||
| framework_ within which users and operators can control relative | shares. So the debate is not about the IETF choosing between TCP- | |||
| resource shares. So the debate is not about the IETF choosing | friendliness, max-min fairness, cost fairness or any other sort of | |||
| between TCP-friendliness, max-min fairness, cost fairness or any | fairness, because whatever we decide at design-time won't be strong | |||
| other sort of fairness, because whatever we decide at design-time | enough to change what happens at run-time. We need to focus on | |||
| won't be strong enough to change what happens at run-time. We need | giving principled and enforceable control to users and operators, so | |||
| to focus on giving principled and enforceable control to users and | they can agree between themselves which fair use policy they want | |||
| operators, so they can agree between themselves which fair use policy | locally [Rate_fair_Dis]. | |||
| they want locally [Rate_fair_Dis]. | ||||
| The requirements for this resource sharing framework will be the | The requirements for this resource sharing framework will be the | |||
| subject of a future document, but the most important role of the IETF | subject of a future document, but the most important role of the IETF | |||
| is to promote _understanding_ of the sorts of resource sharing that | is to promote _understanding_ of the sorts of resource sharing that | |||
| users and operators will want to use at run-time and to resolve the | users and operators will want to use at run-time and to resolve the | |||
| misconceptions and differences between them (Section 2.1). | misconceptions and differences between them (Section 2.1). | |||
| We are in an era where new congestion control requirements often | We are in an era where new congestion control requirements often | |||
| involve starting more aggressively than TCP or going faster than TCP, | involve starting more aggressively than TCP or going faster than TCP, | |||
| or not responding to congestion as quickly as TCP. By shifting | or not responding to congestion as quickly as TCP. By shifting | |||
| skipping to change at page 4, line 36 | skipping to change at page 5, line 8 | |||
| meet the objectives of these more demanding applications. But we can | meet the objectives of these more demanding applications. But we can | |||
| still quantify, minimise and constrain the effect on others due to | still quantify, minimise and constrain the effect on others due to | |||
| faster average rate and different dynamics (Section 2.3). We can say | faster average rate and different dynamics (Section 2.3). We can say | |||
| now that the framework will have to encompass and endorse the | now that the framework will have to encompass and endorse the | |||
| practice of opening multiple flows, for instance. But alongside | practice of opening multiple flows, for instance. But alongside | |||
| recognition of such freedoms will come constraints, in order to | recognition of such freedoms will come constraints, in order to | |||
| balance the side-effects on other users over time. | balance the side-effects on other users over time. | |||
| 2. What Problem? | 2. What Problem? | |||
| 2.1. Two Incompatible Partial Worldviews | 2.1. Two Incompatible Cultures | |||
| When looking at the current Internet, some people see a massive | When looking at the current Internet, some people see a massive | |||
| fairness problem, while others think there's hardly a problem at all. | fairness problem, while others think there's hardly a problem at all. | |||
| This is because two divergent ways of reasoning about resource | This is because two divergent ways of reasoning about resource | |||
| sharing have developed in the industry: | sharing have developed in the industry: | |||
| o IETF guidelines on fair sharing of congested resources | o IETF guidelines on fair sharing of congested resources | |||
| [RFC2357],[RFC2309],[RFC2914] have recommended that flows | [RFC2357],[RFC2309],[RFC2914] have recommended that flows | |||
| experiencing the same congested path should aim to achieve broadly | experiencing the same congested path should aim to achieve broadly | |||
| equal window sizes, as TCP does [RFC2581]. We will characterise | equal window sizes, as TCP does [RFC2581]. We will term this the | |||
| this as the "flow rate equality" worldview, shared by the IETF and | "flow rate equality" culture, generally shared by the IETF and | |||
| large parts of the networking research community.[Note_Window] | large parts of the networking research community.[Note_Window] | |||
| o Network operators and Internet users tend to reason about the | o Network operators and Internet users tend to reason about the | |||
| problem of resources sharing very differently. Nowadays they do | problem of resources sharing very differently. Nowadays they do | |||
| not generally concern themselves with the rates of individual | not generally concern themselves with the rates of individual | |||
| flows. Instead they think in terms of the volume of data that | flows. Instead they think in terms of the volume of data that | |||
| different users transfer over a period [Res_p2p]. We will term | different users transfer over a period [Res_p2p]. We will term | |||
| this the "volume accounting" worldview. They do not believe | this the "volume accounting" culture. They do not believe volume | |||
| volume over a period (traffic intensity) is a measure of | over a period (traffic intensity) is a measure of unfairness in | |||
| unfairness in itself, but they believe it should be _taken into | itself, but they believe it should be _taken into account_ when | |||
| account_ when deciding whether relative bit rates are fair. | deciding whether relative bit rates are fair. | |||
| The most obvious distinction between the two worldviews is that flow | The most obvious distinction between the two cultures is that flow | |||
| rate equality is between _flows_, whereas volume accounting shares | rate equality is between _flows_, whereas volume accounting shares | |||
| resources between _users_. The IETF understands well that fairness | resources between _users_. The IETF understands well that fairness | |||
| is actually between users, but generally considers flow fairness to | is actually between users, but generally considers flow fairness to | |||
| be a reasonable approximation as long as users aren't opening too | be a reasonable approximation, assuming that users won't open too | |||
| many flows. | many flows. | |||
| However, there is a second much more subtle distinction. The flow | However, there is a second much more subtle distinction. The flow | |||
| rate equality worldview discusses fair resource sharing in terms of | rate equality culture discusses fair resource sharing in terms of bit | |||
| bit rates, but operators and users reason about fair bit rates in the | rates, but operators and users reason about fair bit rates in the | |||
| context of byte volume over a period. Given bit rate is an | context of byte volume over a period. Given bit rate is an | |||
| instantaneous metric, it may aid understanding to convert 'volume | instantaneous metric, it may aid understanding to convert 'volume | |||
| over a period' into an instantaneous metric too. The relevant metric | over a period' into an instantaneous metric too. The relevant metric | |||
| is traffic intensity, which like traffic rate is an instantaneous | is traffic intensity, which like traffic rate is an instantaneous | |||
| metric, but it takes account of likely activity _over time_. The | metric, but it takes account of likely activity _over time_. The | |||
| traffic intensity from one user is the product of two metrics: i) the | traffic intensity from one user is the product of two metrics: i) the | |||
| user's desired bit rate when active and ii) how often they are active | user's desired bit rate when active and ii) how often they are active | |||
| over a period (their activity factor). | over a period (their activity factor). | |||
| Operators have to provision capacity based on the aggregate traffic | Operators have to provision capacity based on the aggregate traffic | |||
| intensity from all users over the busy period. And many users think | intensity from all users over the busy period. And many users think | |||
| in terms of how much volume they can transfer over a period. So, | in terms of how much volume they can transfer over a period. So, | |||
| because traffic intensity is equivalent to 'volume over a period', | because traffic intensity is equivalent to 'volume over a period', | |||
| both operators and users often effectively share the same worldview. | both operators and users often effectively share the same culture. | |||
| To further aid understanding, Appendix A presents an example scenario | To further aid understanding, Appendix A presents an example scenario | |||
| where heavy users compete for a bottleneck with light users. It has | where heavy users compete for a bottleneck with light users. It has | |||
| enough similarities to the current Internet to be relevant, but it | enough similarities to the current Internet to be relevant, but it | |||
| has been stripped to its bare essentials to allow the main issues to | has been stripped to its bare essentials to allow the main issues to | |||
| be grasped. | be grasped. | |||
| The base scenario in Appendix A.1 starts with the light users having | The base scenario in Appendix A.1 starts with the light users having | |||
| TCP connections open for less of the time than heavy users (a lower | TCP connections open for less of the time than heavy users (a lower | |||
| activity factor). But, when they are active, they open as many | activity factor). But, when they are active, they open as many | |||
| connections as heavy users. It shows that users with a lower | connections as heavy users. It shows that users with a lower | |||
| activity factor transfer less volume of traffic through the | activity factor transfer less volume of traffic through the | |||
| bottleneck over a period because, even though TCP gives roughly equal | bottleneck over a period because, even though TCP gives roughly equal | |||
| rate to each flow, the heavy users' flows are present more of the | rate to each flow, the heavy users' flows are present more of the | |||
| time. | time. | |||
| The volume accounting view is _not_ that it is unfair for some users | The volume accounting culture is _not_ that it is unfair for some | |||
| to transfer more volume than others--afterall the lighter users have | users to transfer more volume than others--afterall the lighter users | |||
| less traffic that they want to send. However, they believe it is | have less traffic that they want to send. However, they believe it | |||
| reasonable for users who put a heavier load on the system to be given | is reasonable for users who put a heavier load on the system to be | |||
| less bottleneck bit rate than lighter users. | given less bottleneck bit rate than lighter users when those lighter | |||
| users are active. | ||||
| Appendix A.2 continues the example, giving the heavy users the added | Appendix A.2 continues the example, giving the heavy users the added | |||
| advantage of using 50x multiple flows, just as they do on the current | advantage of using 10x multiple flows, just as they can on the | |||
| Internet. When multiple flows are compounded with their higher | current Internet. When multiple flows are compounded with their | |||
| activity factors, they can get 500-2,000x greater traffic intensity | higher activity factors, they can get 100-500x greater traffic | |||
| through the bottleneck. | intensity through the bottleneck. | |||
| Certainly, the flow rate equality worldview recognises that opening | Certainly, the flow rate equality culture recognises that opening 10x | |||
| 50x more flows than other users starts to become a serious fairness | more flows than other users starts to become a serious fairness | |||
| problem, because some users get 50x more bit rate through a | problem, because some users get 10x more bit rate through a | |||
| bottleneck than others. But the volume accounting worldview sees | bottleneck than others. But the volume accounting culture sees this | |||
| this as a much bigger problem. They first see 2,000x heavier use of | as a much bigger problem. They first see 500x heavier use of the | |||
| the bottleneck over time, then they judge that _also_ getting 50x | bottleneck over time, then they judge that _also_ getting 10x greater | |||
| greater bit rate seems seriously unfair. | bit rate seems seriously unfair. | |||
| But are these numbers realistic? Attended use of something like the | But are these numbers realistic? Attended use of something like the | |||
| Web might typically have an activity factor of 1-10%, while | Web might typically have an activity factor of 1-10%, while | |||
| unattended apps approach 100%. A Web browser might typically open | unattended apps approach 100%. A Web browser might typically open | |||
| two TCPs when active [RFC2616], while a p2p file-sharing app on a | two TCPs when active [RFC2616], while a p2p file-sharing app on a DSL | |||
| 512kbps upstream DSL line actively uses anything from 40-500 | line rated 512kbps upstream can actively use anything from 40-500 | |||
| connections [az-calc]. Heavy users generally compound the two | _downstream_ connections [az-calc]. This doesn't happen in the early | |||
| factors together (10-100x greater activity factor and 20-250x more | stages of a swarm when all peers are uploading as well as | |||
| connections), achieving anything from 200x to 25,000x greater traffic | downloading. But once a popular swarm matures (a number of peers | |||
| intensity through a bottleneck than light users. | have the whole object and become 'seeders'), file-sharing | |||
| applications release their reciprocity restrictions on numbers of | ||||
| active downloads and these high numbers of connections become common. | ||||
| The above question of what size the different worldviews think | However, such high numbers of connections are not essential to our | |||
| resource shares _should_ be is separate from the question of whether | arguments, given activity factors are also high. In our examples we | |||
| to _enforce_ them and how to (see Section 3.2). Within the volume | conservatively assume that these applications open about 10 flows | |||
| accounting worldview, many operators (particularly in Europe) already | each. Heavy users generally compound the two factors together (10- | |||
| limit the bit rate of their heaviest users at peak times in order to | 100x greater activity factor and 10-250x more connections), achieving | |||
| protect the experience of the majority of their | anything from 100x to 25,000x greater traffic intensity through a | |||
| bottleneck than light users. | ||||
| It is important to stress here that the majority of the people using | ||||
| such applications don't intend to use network resources unfairly, | ||||
| they are simply using novel applications that give them faster bulk | ||||
| downloads. Users and their application developers are entitled to | ||||
| assume that the Internet sorts out fairness. So if they find they | ||||
| can do something, they are entitled to assume they should be doing | ||||
| it. | ||||
| The above question of what size the different cultures think resource | ||||
| shares _should_ be is separate from the question of whether to | ||||
| _enforce_ them and how to enforce them (see Section 3.2). Within the | ||||
| volume accounting culture, many operators (particularly in Europe) | ||||
| already limit the bit rate of their heaviest users at peak times in | ||||
| order to protect the experience of the majority of their | ||||
| customers.[Note_Neutral] But, enforcement is a separate question. | customers.[Note_Neutral] But, enforcement is a separate question. | |||
| Although prevalent use of TCP seems to be continuing without any | Although prevalent use of TCP seems to be continuing without any | |||
| enforcement, even the flow rate equality worldview generally accepts | enforcement, even the flow rate equality culture generally accepts | |||
| that opening excessive multiple connections can't be solved | that opening excessive multiple connections can't be solved | |||
| voluntarily. Quoting RFC2914, "...instead of a spiral of | voluntarily. Quoting RFC2914, "...instead of a spiral of | |||
| increasingly aggressive transport protocols, we ... have a spiral of | increasingly aggressive transport protocols, we ... have a spiral of | |||
| increasingly ... aggressive applications"). | increasingly ... aggressive applications"). | |||
| To summarise so far, one industry worldview aims for equal flow | To summarise so far, one industry culture aims for equal flow rates, | |||
| rates, while the other prefers an outcome with very unequal flow | while the other prefers an outcome with potentially very unequal flow | |||
| rates. Even though they both share the same intentions of fairer | rates. Even though they both share the same intentions of fairer | |||
| resource sharing, the two worldviews have developed subgoals that are | resource sharing, the two cultures have developed subgoals that are | |||
| fundamentally at odds. | fundamentally at odds. | |||
| 2.1.1. Overlooked Degrees of Freedom | 2.1.1. Overlooked Degrees of Freedom | |||
| So which worldview is correct? Actually, our reason for pointing out | So which culture is correct? Actually, our reason for pointing out | |||
| these divergent worldviews is to show that both contain valuable | the difference is to show that both contain valuable insights, but | |||
| insights, but that each also highlights weaknesses in the other. | that each also highlights weaknesses in the other. Given our | |||
| Given our audience is the IETF, we have tried to explain the volume | audience is the IETF, we have tried to explain the volume accounting | |||
| accounting worldview in terms of flow rate equality, but volume | culture in terms of flow rate equality, but volume accounting is by | |||
| accounting is by no means rigorous or complete itself. Table 1 | no means rigorous or complete itself. Table 1 identifies the three | |||
| identifies the three degrees of freedom of resource sharing that are | degrees of freedom of resource sharing that are missing in one or the | |||
| missing in one or the other of the two worldviews. | other of the two cultures. | |||
| +----------------------+--------------------+-------------------+ | +----------------------+--------------------+-------------------+ | |||
| | Degree of Freedom | Flow Rate Equality | Volume Accounting | | | Degree of Freedom | Flow Rate Equality | Volume Accounting | | |||
| +----------------------+--------------------+-------------------+ | +----------------------+--------------------+-------------------+ | |||
| | Activity factor | X | Y | | | Activity factor | X | Y | | |||
| | Multiple flows | X | Y | | | Multiple flows | X | Y | | |||
| | Congestion variation | Y | X | | | Congestion variation | Y | X | | |||
| +----------------------+--------------------+-------------------+ | +----------------------+--------------------+-------------------+ | |||
| Y = yes and X = no. | ||||
| Table 1: Resource Sharing Degrees of Freedom Encompassed by Different | Table 1: Resource Sharing Degrees of Freedom Encompassed by Different | |||
| Worldviews; Y = yes and X = no. | Cultures | |||
| Activity factor: We have already pointed out how flow rate equality | Activity factor: We have already pointed out how flow rate equality | |||
| does not take different activity factors into account. On the | does not take different activity factors into account. On the | |||
| other hand, volume accounting naturally takes the on-off activity | other hand, volume accounting naturally takes the on-off activity | |||
| of flows into account, because in the process of counting volume | of flows into account, because in the process of counting volume | |||
| over time, the off periods are naturally excluded. | over time, the off periods are naturally excluded. | |||
| Multiple flows: Similarly, it is well-known [RFC2309] [RFC2914] that | Multiple flows: Similarly, it is well-known [RFC2309] [RFC2914] that | |||
| flow rate equality does not make allowance for multiple flows, | flow rate equality does not make allowance for multiple flows, | |||
| whereas counting volume naturally includes all flows from a user, | whereas counting volume naturally includes all flows from a user, | |||
| whether they terminate at the same remote endpoint or many | whether they terminate at the same remote endpoint or many | |||
| different ones. | different ones. | |||
| Congestion variation: Flow rate equality, of course, takes full | Congestion variation: Flow rate equality, of course, takes full | |||
| account of how congested different bottlenecks are at different | account of how congested different bottlenecks are at different | |||
| times, ensuring that the same volume must be squeezed out over a | times, ensuring that the same volume must be squeezed out over a | |||
| longer duration, the more flows it competes with. However, volume | longer duration, the more flows it competes with. However, volume | |||
| accounting doesn't recognise that congestion can vary by orders of | accounting doesn't recognise that congestion can vary by orders of | |||
| magnitude, making it fairly useless for encouraging congestion | magnitude, making it fairly useless for encouraging congestion | |||
| control. The best it can do is only count volume during a 'peak | control. The best it can do is only count volume during a 'peak | |||
| period', effectively considering congestion as either 1 everywhere | period', effectively considering congestion as either 1 during | |||
| during this time or 0 everywhere otherwise. | this time or 0 at all others times. | |||
| These clearly aren't just problems of detail. Having each overlooked | These clearly aren't just problems of detail. Having each overlooked | |||
| whole dimensions of the problem, both worldviews seem to require a | whole dimensions of the problem, both cultures seem to require a | |||
| fundamental rethink. In a future document defining the requirements | fundamental rethink. In a future document defining the requirements | |||
| for a new resource sharing framework, we plan to unify both | for a new resource sharing framework, we plan to unify both cultures. | |||
| worldviews. But, in the present problem statement, it is sufficient | But, in the present problem statement, it is sufficient to register | |||
| to register that we need to reconcile the fundamentally contradictory | that we need to reconcile the fundamentally contradictory views that | |||
| worldviews that the industry has developed about resource sharing. | the industry has developed about resource sharing. | |||
| 2.2. Average Rates are a Run-Time Issue | 2.2. Average Rates are a Run-Time Issue | |||
| A less obvious difference between the two worldviews is that flow | A less obvious difference between the two cultures is that flow rate | |||
| rate equality tries to control resource shares at design-time, while | equality tries to control resource shares at design-time, while | |||
| volume accounting controls resource shares once the run-time | volume accounting controls resource shares once the run-time | |||
| situation is known. Also the volume accounting worldview actually | situation is known. Also the volume accounting culture actually | |||
| involves two separate functions: passive monitoring and active | involves two separate functions: passive monitoring and active | |||
| intervention. So, importantly, the run-time questions of whether to | intervention. So, importantly, the run-time questions of whether to | |||
| and how to intervene can depend on policy. | and how to intervene can depend on policy. | |||
| The "spiral of increasingly aggressive applications" [RFC2914] has | The "spiral of increasingly aggressive applications" [RFC2914] has | |||
| shifted the resource sharing problem out of the IETF's design-time | shifted the resource sharing problem out of the IETF's design-time | |||
| space, making flow rate equality insufficient (or perhaps even | space, making flow rate equality insufficient in technical and in | |||
| inappropriate) in technical and in policy terms: | policy terms: | |||
| Technical: At design time, it is impossible to know whether a | Technical: At design time, it is impossible to know whether a | |||
| congestion control will be fair at run-time without knowing more | congestion control will be fair at run-time without knowing more | |||
| about the run-time situation it will be used in--how long flow | about the run-time situation it will be used in--how active flows | |||
| durations will be and whether users will open multiple flows. | will be and whether users will open multiple flows. | |||
| Policy: At design time, we cannot (and should not) prejudge the | Policy: At design time, we cannot (and should not) prejudge the | |||
| 'fair use' policy that has been agreed between users and their | 'fair use' policy that has been agreed between users and their | |||
| network operators. | network operators. | |||
| A transport protocol can no longer be made 'fair' at design time--it | A transport protocol can no longer be made 'fair' at design time--it | |||
| all now depends how 'unfairly' it is used at run-time, and what has | all now depends how it is used at run-time, and what has been agreed | |||
| been agreed as 'unfair'. | as 'unfair' between users and their ISP. | |||
| However, we are not saying that volume accounting is the answer. It | However, we are not saying that volume accounting is the answer. It | |||
| just gives us the insight that resource sharing has to be controlled | just gives us the insight that resource sharing has to be controlled | |||
| at run-time by policy, not at design-time by the IETF. Volume | at run-time by policy, not at design-time by the IETF. Volume | |||
| accounting would be more useful if it took a more precise approach to | accounting would be more useful if it took a more precise approach to | |||
| congestion than either 'everything is congested' or 'nothing is | congestion than either 'everything is congested' or 'nothing is | |||
| congested'. | congested'. | |||
| What operators and users need from the IETF is a framework to judge | What operators and users need from the IETF is a framework to judge | |||
| and to control resource sharing at run-time. It needs to work across | and to control resource sharing at run-time. It needs to work across | |||
| all a user's flows (like volume accounting). It needs to take | all a user's flows (like volume accounting). It needs to take | |||
| account of idle periods over time (like volume accounting). And it | account of idle periods over time (like volume accounting). And it | |||
| needs to take account of congestion variation (like flow rate | needs to take account of congestion variation (like flow rate | |||
| equality). | equality). | |||
| 2.3. Protocol Dynamics is the Design-Time Issue | 2.3. Protocol Dynamics is the Design-Time Issue | |||
| Although fairness is a run-time issue, at protocol design-time it | Although fairness is a run-time issue, at protocol design-time it | |||
| requires more from the IETF than just a policy control framework. | requires more from the IETF than just a control framework. Policy | |||
| Policy can control the _average_ amount of congestion that a | can control the _average_ amount of congestion that a particular | |||
| particular application causes, but the Internet also needs the | application causes, but the Internet also needs the collective | |||
| collective expertise of the IETF and the IRTF to standardise best | expertise of the IETF and the IRTF to standardise best practice in | |||
| practice in the _dynamics_ of transport protocols. The IETF has a | the _dynamics_ of transport protocols. The IETF has a duty to | |||
| duty to provide standard transports with a response to congestion | provide standard transports with a response to congestion that is | |||
| that is always safe and robust. But the hard part is to keep the | always safe and robust. But the hard part is to keep the network | |||
| network safe while still meeting the needs of more demanding | safe while still meeting the needs of more demanding applications | |||
| applications (e.g. high speed transfer of data objects or media | (e.g. high speed transfer of data objects or media streaming that can | |||
| streaming that can adapt its rate but not too abruptly). | adapt its rate but only smoothly). | |||
| If we assume for a moment that we will have a framework to judge and | If we assume for a moment that we will have a framework to judge and | |||
| control _average_ rates, we will still need a framework to assess | control _average_ rates, we will still need a framework to assess | |||
| which proposed congestion controls make the trade-off between | which proposed congestion controls make the trade-off between | |||
| achieving the task effectively and minimising congestion caused to | achieving the task effectively and minimising congestion caused to | |||
| others, during _dynamics_: | others, during _dynamics_: | |||
| o The faster a new flow accelerates the more packets it will have in | o The faster a new flow accelerates the more packets it will have in | |||
| flight when it detects its first loss, potentially leading many | flight when it detects its first loss, potentially leading many | |||
| other flows to experience a long burst of losses as queues | other flows to experience a long burst of losses as queues | |||
| skipping to change at page 9, line 47 | skipping to change at page 10, line 40 | |||
| o Transports like TCP-friendly rate control [proprietary media | o Transports like TCP-friendly rate control [proprietary media | |||
| players], [RFC3448], [RFC4828] are designed to respond more | players], [RFC3448], [RFC4828] are designed to respond more | |||
| smoothly to congestion than TCP. But even if a TFRC flow has the | smoothly to congestion than TCP. But even if a TFRC flow has the | |||
| same average bit rate as a TCP flow, the more sluggish it is, the | same average bit rate as a TCP flow, the more sluggish it is, the | |||
| more congestion it will cause [Rate_fair_Dis]. How do we decide | more congestion it will cause [Rate_fair_Dis]. How do we decide | |||
| how much smoother we should go? How large a proportion of | how much smoother we should go? How large a proportion of | |||
| Internet traffic could we allow to be unresponsive to congestion | Internet traffic could we allow to be unresponsive to congestion | |||
| over long durations, before we were at risk of causing growing | over long durations, before we were at risk of causing growing | |||
| periods of congestion collapse [RFC2914]?[Note_Collapse] | periods of congestion collapse [RFC2914]?[Note_Collapse] | |||
| o TFRC has been proposed as a possible way for aggregates of flows | o Pseudo-wire emulations may contain flows that cannot, or do not | |||
| crossing the public Internet to respond to congestion (pseudo-wire | want to respond quickly to congestion themselves. TFRC has been | |||
| emulations may contain flows that cannot, or do not want to | proposed as a possible way for aggregates of flows crossing the | |||
| respond quickly to congestion themselves) | public Internet to respond to congestion | |||
| [I-D.rosen-pwe3-congestion], | [I-D.ietf-pwe3-congestion-frmwk], | |||
| [I-D.ietf-capwap-protocol-specification], [TSV_CAPWAP_issues]. | [I-D.ietf-capwap-protocol-specification], [TSV_CAPWAP_issues]. | |||
| But it doesn't make any sense to insist that, wherever flows are | But it doesn't make any sense to insist that, wherever flows are | |||
| aggregated together into one identifiable bundle, the whole bundle | aggregated together into one identifiable bundle, the whole bundle | |||
| of perhaps hundreds of flows must keep to the same mean rate as a | of perhaps hundreds of flows must keep to the same mean rate as a | |||
| single TCP flow. | single TCP flow. | |||
| In view of the continual demand for alternate congestion controls, | In view of the continual demand for alternate congestion controls, | |||
| the IETF has recently agreed a new process for standardising them | the IETF has recently agreed a new process for standardising them | |||
| [ion-tsv-alt-cc]. The IETF will use the expertise of the IRTF | [ion-tsv-alt-cc]. The IETF will use the expertise of the IRTF | |||
| Internet congestion control research group, governed by agreed | Internet congestion control research group, governed by agreed | |||
| general guidelines for the design of new congestion controls | general guidelines for the design of new congestion controls | |||
| skipping to change at page 10, line 25 | skipping to change at page 11, line 18 | |||
| [RFC5033]. However, in writing those guidelines it proved very | [RFC5033]. However, in writing those guidelines it proved very | |||
| difficult to give any specific guidance on where a line could be | difficult to give any specific guidance on where a line could be | |||
| drawn between fair and unfair protocols. The best we could do were | drawn between fair and unfair protocols. The best we could do were | |||
| phrases like, "Alternate congestion controllers that have a | phrases like, "Alternate congestion controllers that have a | |||
| significantly negative impact on traffic using standard congestion | significantly negative impact on traffic using standard congestion | |||
| control may be suspect..." and "In environments with multiple | control may be suspect..." and "In environments with multiple | |||
| competing flows all using the same alternate congestion control | competing flows all using the same alternate congestion control | |||
| algorithm, the proposal should explore how bandwidth is shared among | algorithm, the proposal should explore how bandwidth is shared among | |||
| the competing flows." | the competing flows." | |||
| Once we have agreed that average behaviour should be a policy issue, | Once we have agreed that average behaviour should be a run-time | |||
| we can focus on the dynamic behaviour of congestion controls, which | issue, we can focus on the dynamic behaviour of congestion controls, | |||
| is where the important standards issues lie, such as preventing | which is where the important standards issues lie, such as preventing | |||
| congestion collapse or preventing new flows causing bursts of | congestion collapse or preventing new flows causing bursts of | |||
| congestion by unnecessarily overrunning as they seek out the | congestion by unnecessarily overrunning as they seek out the | |||
| operating point of their path. | operating point of their path. | |||
| As always, the IETF will not want to standardise aspects where | As always, the IETF will not want to standardise aspects where | |||
| implementers can gain an edge over their competitors, but we must set | implementers can gain an edge over their competitors, but we must set | |||
| standards to prevent serious harm to the stability and usefulness of | standards to prevent serious harm to the stability and usefulness of | |||
| the Internet, and to make transports available that avoid causing | the Internet, and to make transports available that avoid causing | |||
| _unnecessary_ congestion in the course of achieving any particular | _unnecessary_ congestion in the course of achieving any particular | |||
| application objective. | application objective. | |||
| 3. Concrete Consequences of Unfairness | 3. Concrete Consequences of Unfairness | |||
| People have different levels of tolerance for unfairness. Even when | People have different levels of tolerance for unfairness. Even when | |||
| we agree how to measure fairness, there are a range of views on how | we agree how to measure fairness, there are a range of views on how | |||
| unfair the situation needs to get before the IETF should do anything | unfair the situation needs to get before the IETF should do anything | |||
| about it. Nonetheless, lack of fairness can lead to more concretely | about it. Nonetheless, lack of fairness can lead to more concretely | |||
| pathological knock-on effects. Even if we don't particularly care if | pathological knock-on effects. Even if we don't particularly care if | |||
| some users get more than their fair share and others less, we should | some users get more than their "fair" share and others less, we | |||
| care about the more concrete knock-on effects below. | should care about the more concrete knock-on effects below. | |||
| 3.1. Higher Investment Risk | 3.1. Higher Investment Risk | |||
| Some users want more Internet capacity to transfer large volumes of | Some users want more Internet capacity to transfer large volumes of | |||
| data, while others want more capacity to be able to interact more | data, while others want more capacity to be able to interact more | |||
| quickly with other sites and other users. We have called these heavy | quickly with other sites and other users. We have called these heavy | |||
| and light users, although of course, many users are mix of the two in | and light users, although of course, many users are mix of the two in | |||
| differing proportions. | differing proportions. | |||
| We have shown that heavy users can use applications that open | We have shown that heavy users can use applications that open | |||
| skipping to change at page 11, line 38 | skipping to change at page 12, line 28 | |||
| 30kbps. Ultimately, extreme unfairness in the sharing of capacity | 30kbps. Ultimately, extreme unfairness in the sharing of capacity | |||
| tends to drive operators to stop investing in capacity. Because all | tends to drive operators to stop investing in capacity. Because all | |||
| the light users, who experience so little of the benefit, won't be | the light users, who experience so little of the benefit, won't be | |||
| prepared to pay an equal share to recover the costs--the ISP risks | prepared to pay an equal share to recover the costs--the ISP risks | |||
| losing them to a 'fairer' competitor. | losing them to a 'fairer' competitor. | |||
| But there seems to be plenty of evidence that operators around the | But there seems to be plenty of evidence that operators around the | |||
| world are still investing in capacity growth despite the prevalence | world are still investing in capacity growth despite the prevalence | |||
| of TCP. How can this be, if flow rate equality makes investment so | of TCP. How can this be, if flow rate equality makes investment so | |||
| risky? One explanation, particularly in parts of Asia, is that some | risky? One explanation, particularly in parts of Asia, is that some | |||
| investments are Governernment subsidised. In the US, the explanation | investments are Governernment subsidised, in other words, the | |||
| is probably more down to weak competition. In Europe, the main | government is carrying the risk of any investment, not the operators. | |||
| explanation is that many commercial operators haven't allowed their | In the US, the explanation is probably more down to weak | |||
| networks to become as unfair as the above example--they have made | competition--most end-users have 2 or fewer ISPs to choose from and | |||
| resource sharing fairer by _overriding_ TCP's flow rate equality. | so there is no pressure brought to bear on the ISPs to invest in new | |||
| capacity. In Europe, the main explanation is that many commercial | ||||
| operators haven't allowed their networks to become as unfair as the | ||||
| above example--they have made resource sharing fairer by _overriding_ | ||||
| TCP's flow rate equality. | ||||
| Competitive operators in many countries limit the volume transferred | Competitive operators in many countries limit the volume transferred | |||
| by heavy users, particularly at peak times. They have effectively | by heavy users, particularly at peak times. They have effectively | |||
| overriden flow rate equality to achieve a different allocation of | overriden flow rate equality to achieve a different allocation of | |||
| resources that they believe is better for the majority of their | resources that they believe is better for the majority of their | |||
| customers (and consequently better for their competitive position). | customers (and consequently better for their competitive position). | |||
| Typically these operators use a combination of tiered pricing of | ||||
| volume caps and throttling of the heaviest so-called 'unlimited' | ||||
| users at peak times. In this way they have removed some of the | ||||
| investment risk that would otherwise have resulted if flow rate | ||||
| equality had been relied on to share congested resources. | ||||
| 3.2. Losing Voluntarism | 3.2. Losing Voluntarism | |||
| Throughout the early years of the Internet, flow rate equality | Throughout the early years of the Internet, flow rate equality | |||
| resulted in approximate fairness that most people considered | resulted in approximate fairness that most people considered | |||
| sufficient. This was because most users' traffic during peak hours | sufficient. This was because most users' traffic during peak hours | |||
| tended to correlate with their access rate. Those who bought high | tended to correlate with their access rate. Those who bought high | |||
| capacity access also generally sent more traffic at peak times (e.g. | capacity access also generally sent more traffic at peak times (e.g. | |||
| heavy users or server farms). | heavy users or server farms). | |||
| skipping to change at page 12, line 33 | skipping to change at page 13, line 23 | |||
| Of course, more access traffic requires more shared capacity at | Of course, more access traffic requires more shared capacity at | |||
| relevant network bottlenecks. But if we rely on TCP to share out | relevant network bottlenecks. But if we rely on TCP to share out | |||
| these bottlenecks, we have seen how those who just desire more can | these bottlenecks, we have seen how those who just desire more can | |||
| swamp those who require more (Section 3.1). | swamp those who require more (Section 3.1). | |||
| Some operators have continued to provision sufficiently excessive | Some operators have continued to provision sufficiently excessive | |||
| shared capacity and just passed the cost on to all their customers. | shared capacity and just passed the cost on to all their customers. | |||
| But many operators have found that those customers who don't actually | But many operators have found that those customers who don't actually | |||
| require all that shared infrastructure would rather not have to pay | require all that shared infrastructure would rather not have to pay | |||
| towards its cost. So, to avoid losing customers, they have | towards its cost. So, to avoid losing customers, they have | |||
| introduced tiered volume limits (this hasn't happened in the US yet | introduced tiered volume limits. It is well known that many users | |||
| though). It is well known that many users are averse to | are averse to unpredictable charges [PMP] (S.5), so many now choose | |||
| unpredictable charges [PMP] (S.5), so many now choose ISPs who limit | ISPs who limit their volume (with suitable override facilities) | |||
| their volume (with suitable override facilities) rather than charge | rather than charge more when they use more. | |||
| more when they use more. | ||||
| Thus, we are seeing a move away from voluntary restraint (within peak | Thus, we are seeing a move away from voluntary restraint (within peak | |||
| access rates) towards a preference for enforced fairness, as long as | access rates) towards a preference for enforced fairness, as long as | |||
| the user stays in overall control. This has implications on the | the user stays in overall control. This has implications on the | |||
| Internet infrastructure that the IETF needs to recognise and address. | Internet infrastructure that the IETF needs to recognise and address. | |||
| Effectively, parts of the best effort Internet are becoming like the | Effectively, parts of the best effort Internet are becoming like the | |||
| other Diffserv classes, with traffic policers and traffic | other Diffserv classes, with traffic policers and traffic | |||
| conditioning agreements (TCAs [RFC2475]), albeit volume-based rather | conditioning agreements (TCAs [RFC2475]), albeit volume-based rather | |||
| than rate and burst-based TCAs. (In fact, the addition of congestion | than rate and burst-based TCAs. | |||
| accounting or policing need not be confined to just the best effort | ||||
| class.) | ||||
| We are not saying that the Internet _requires_ fairness enforcement, | We are not saying that the Internet _requires_ fairness enforcement, | |||
| merely that it has become prevalent. We need to acknowledge the | merely that it has become prevalent. We need to acknowledge the | |||
| trend towards enforcement to ensure that it does not introduce | trend towards enforcement to ensure that it does not introduce | |||
| unnecessary complexity into the basic functioning of the Internet, | unnecessary complexity into the basic functioning of the Internet, | |||
| and that our current approach to fairness (embedded in endpoint | and that our current approach to fairness (embedded in endpoint | |||
| congestion control) remains compatible with this changing world. For | congestion control) remains compatible with this changing world. For | |||
| instance, when a rate policer introduces drops, are they equivalent | instance, when a rate policer introduces drops, are they equivalent | |||
| to drops due to congestion? are they equivalent to drops when you | to drops due to congestion? are they equivalent to drops when you | |||
| exceed your own access rate? do we need to tell the difference? | exceed your own access rate? do we need to tell the difference? | |||
| 3.3. Networks using DPI to make Choices for Users | 3.3. Networks using Deep Packet Inspection to make Choices for Users | |||
| We have seen how network operators might well believe it is in their | We have seen how network operators might well believe it is in their | |||
| customers' interests to override the resource sharing decisions of | customers' interests to override the resource sharing decisions of | |||
| TCP. They seem to have sound reasons for throttling their heaviest | TCP. They seem to have sound reasons for throttling their heaviest | |||
| users at peak times. But this is leading to a far more controversial | users at peak times. But this is leading to a far more controversial | |||
| side-effect: network operators have started making performance | side-effect: network operators have started making performance | |||
| choices between _applications_ on behalf of their customers. | choices between _applications_ on behalf of their customers. | |||
| Once operators start throttling heavy users, they hit a problem. | Once operators start throttling heavy users, they hit a problem. | |||
| Most heavy volume users are actually a mix of the two types | Most heavy volume users are actually a mix of the two types | |||
| skipping to change at page 15, line 19 | skipping to change at page 16, line 8 | |||
| congestion accountability framework in {ToDo: ref sister doc} | congestion accountability framework in {ToDo: ref sister doc} | |||
| provides such control, while also allowing different controls | provides such control, while also allowing different controls | |||
| (including no control at all) in normal circumstances. For instance | (including no control at all) in normal circumstances. For instance | |||
| an ISP might normally allow its customers to pay to override any | an ISP might normally allow its customers to pay to override any | |||
| usage limits. But during a disaster it might suspend this right. | usage limits. But during a disaster it might suspend this right. | |||
| Then users would get only the shares they had established before the | Then users would get only the shares they had established before the | |||
| disaster broke out (the ISP would thus also avoid accusations of | disaster broke out (the ISP would thus also avoid accusations of | |||
| profiteering from people's misery). Whatever, it is not for the IETF | profiteering from people's misery). Whatever, it is not for the IETF | |||
| to embed answers to questions like these in our protocols. | to embed answers to questions like these in our protocols. | |||
| 4. Security Considerations | 4. IANA considerations | |||
| {ToDo:} | This document makes no request to IANA. | |||
| 5. Conclusions | 5. Security Considerations | |||
| {ToDo:} | {ToDo:} | |||
| 6. Acknowledgements | 6. Summary and Next Steps | |||
| Arnaud Jacquet, Phil Eardley. | Over recent years the Internet has evolved from being a friendly | |||
| cooperative academic research network to a fully-fledged commercial | ||||
| resource which is central to much of modern life. One of the side | ||||
| effects of this has been an increasing hostility between ISPs and | ||||
| some of their more enterprising users. At the same time those users | ||||
| are also directly impacting on the user experience of others. As we | ||||
| have seen, one of the impacts of this problem is that ISPs have a | ||||
| reduced incentive to invest in new capacity and this leads to a | ||||
| stagnation of the Internet. Everyone is agreed that this is a bad | ||||
| thing but there is much debate about how best to solve the problem. | ||||
| Currently many operators are imposing a partial solution through the | ||||
| use of DPI. | ||||
| 7. Comments Solicited | Our view is that the root of the problem is the long-held mis- | |||
| apprehension that fairness needs to be controlled by transport layer | ||||
| protocols at design time. However fairness is only determined by how | ||||
| these prtotocols are actually used at run-time. Instead, we suggest | ||||
| that it would be better to design protocols such that fairness can be | ||||
| achieved as a result of a tussle [Tussle1] at run-time between the | ||||
| different end-hosts and networks that are vying for the limited | ||||
| bandwidth available in the network . | ||||
| Many possible solutions to this problem have been suggested, some of | ||||
| which are already being used in the Internet. Some of these are | ||||
| summarised and referenced in [p2pi_summary] However the majority of | ||||
| these solutions fail to address the problem fully and some may even | ||||
| serve to make the problem worse in the long term. Further work is | ||||
| needed to better identify the requirements for a robust solution and | ||||
| to properly assess how the proposed solutions measure up against | ||||
| these requirements. This draft doesn't seek to address this, it | ||||
| merely seeks to highlight the drawbacks in the status quo. | ||||
| 7. Conclusions | ||||
| This document has contrasted the flow rate fairness and volume | ||||
| accounting cultures that have grown up in the Internet. We have | ||||
| shown that neither culture fully address the three degrees of freedom | ||||
| of resource that must be used to decide on fair allocation between | ||||
| users. We suggest that one of the main reasons for this failure has | ||||
| been the misapprehnsion that it is up to the transport protocols to | ||||
| decide the fair allocation of resources between users. We suggest | ||||
| that such run-time decisions should actually be left to other | ||||
| mechanisms--the role of the transport protocols should be that of | ||||
| enabler for those mechanisms. | ||||
| 8. Acknowledgements | ||||
| Arnaud Jacquet, Phil Eardley, Hannes Tschofenig, Iljitsch van | ||||
| Beijnum, Robb Topolski. | ||||
| 9. Comments Solicited | ||||
| Comments and questions are encouraged and very welcome. They can be | Comments and questions are encouraged and very welcome. They can be | |||
| addressed to the IETF Transport Area working group mailing list | addressed to the IETF Transport Area working group mailing list | |||
| <tsvwg@ietf.org>, and/or to the authors. | <tsvwg@ietf.org>, and/or to the authors. | |||
| 8. References | 10. References | |||
| 8.1. Normative References | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | 10.1. Normative References | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | ||||
| [RFC2309] Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering, | [RFC2309] Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering, | |||
| S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G., | S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G., | |||
| Partridge, C., Peterson, L., Ramakrishnan, K., Shenker, | Partridge, C., Peterson, L., Ramakrishnan, K., Shenker, | |||
| S., Wroclawski, J., and L. Zhang, "Recommendations on | S., Wroclawski, J., and L. Zhang, "Recommendations on | |||
| Queue Management and Congestion Avoidance in the | Queue Management and Congestion Avoidance in the | |||
| Internet", RFC 2309, April 1998. | Internet", RFC 2309, April 1998. | |||
| [RFC2581] Allman, M., Paxson, V., and W. Stevens, "TCP Congestion | [RFC2581] Allman, M., Paxson, V., and W. Stevens, "TCP Congestion | |||
| Control", RFC 2581, April 1999. | Control", RFC 2581, April 1999. | |||
| [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, | |||
| RFC 2914, September 2000. | RFC 2914, September 2000. | |||
| 8.2. Informative References | 10.2. Informative References | |||
| [AppVsTask] | [AppVsTask] | |||
| Bouch, A., Sasse, M., and H. DeMeer, "Of packets and | Bouch, A., Sasse, M., and H. DeMeer, "Of packets and | |||
| people: A user-centred approach to Quality of Service", | people: A user-centred approach to Quality of Service", | |||
| Proc. IEEE/IFIP Proc. International Workshop on QoS | Proc. IEEE/IFIP Proc. International Workshop on QoS | |||
| (IWQoS'00) , May 2000, | (IWQoS'00) , May 2000, | |||
| <http://www.cs.ucl.ac.uk/staff/A.Bouch/42-171796908.ps>. | <http://www.cs.ucl.ac.uk/staff/A.Bouch/42-171796908.ps>. | |||
| [FAST] Jin, C., Wei, D., and S. Low, "FAST TCP: Motivation, | [FAST] Jin, C., Wei, D., and S. Low, "FAST TCP: Motivation, | |||
| Architecture, Algorithms, and Performance", Proc. IEEE | Architecture, Algorithms, and Performance", Proc. IEEE | |||
| skipping to change at page 16, line 36 | skipping to change at page 18, line 23 | |||
| <http://www.ieee-infocom.org/2004/Papers/52_2.PDF>. | <http://www.ieee-infocom.org/2004/Papers/52_2.PDF>. | |||
| [Hengchun_quake] | [Hengchun_quake] | |||
| Wikipedia, "2006 Hengchun earthquake", Wikipedia Web page | Wikipedia, "2006 Hengchun earthquake", Wikipedia Web page | |||
| (accessed Oct'07) , 2006, | (accessed Oct'07) , 2006, | |||
| <http://en.wikipedia.org/wiki/2006_Hengchun_earthquake>. | <http://en.wikipedia.org/wiki/2006_Hengchun_earthquake>. | |||
| [I-D.floyd-tsvwg-besteffort] | [I-D.floyd-tsvwg-besteffort] | |||
| Floyd, S. and M. Allman, "Comments on the Usefulness of | Floyd, S. and M. Allman, "Comments on the Usefulness of | |||
| Simple Best-Effort Traffic", | Simple Best-Effort Traffic", | |||
| draft-floyd-tsvwg-besteffort-01 (work in progress), | draft-floyd-tsvwg-besteffort-04 (work in progress), | |||
| August 2007. | May 2008. | |||
| [I-D.ietf-capwap-protocol-specification] | [I-D.ietf-capwap-protocol-specification] | |||
| Calhoun, P., "CAPWAP Protocol Specification", | Calhoun, P., "CAPWAP Protocol Specification", | |||
| draft-ietf-capwap-protocol-specification-07 (work in | draft-ietf-capwap-protocol-specification-07 (work in | |||
| progress), June 2007. | progress), June 2007. | |||
| [I-D.rosen-pwe3-congestion] | [I-D.ietf-pwe3-congestion-frmwk] | |||
| Rosen, E., "Pseudowire Congestion Control Framework", | Bryant, S., Davie, B., Martini, L., and E. Rosen, | |||
| draft-rosen-pwe3-congestion-04 (work in progress), | "Pseudowire Congestion Control Framework", | |||
| October 2006. | draft-ietf-pwe3-congestion-frmwk-01 (work in progress), | |||
| May 2008. | ||||
| [PMP] Odlyzko, A., "A modest proposal for preventing Internet | [PMP] Odlyzko, A., "A modest proposal for preventing Internet | |||
| congestion", AT&T technical report TR 97.35.1, | congestion", AT&T technical report TR 97.35.1, | |||
| September 1997, | September 1997, | |||
| <http://www.dtc.umn.edu/~odlyzko/doc/modest.proposal.pdf>. | <http://www.dtc.umn.edu/~odlyzko/doc/modest.proposal.pdf>. | |||
| [RFC1958] Carpenter, B., "Architectural Principles of the Internet", | [RFC1958] Carpenter, B., "Architectural Principles of the Internet", | |||
| RFC 1958, June 1996. | RFC 1958, June 1996. | |||
| [RFC2357] Mankin, A., Romanov, A., Bradner, S., and V. Paxson, "IETF | [RFC2357] Mankin, A., Romanov, A., Bradner, S., and V. Paxson, "IETF | |||
| skipping to change at page 18, line 8 | skipping to change at page 19, line 44 | |||
| [Res_p2p] Cho, K., Fukuda, K., Esaki, H., and A. Kato, "The Impact | [Res_p2p] Cho, K., Fukuda, K., Esaki, H., and A. Kato, "The Impact | |||
| and Implications of the Growth in Residential User-to-User | and Implications of the Growth in Residential User-to-User | |||
| Traffic", ACM SIGCOMM CCR 36(4)207--218, October 2006, | Traffic", ACM SIGCOMM CCR 36(4)207--218, October 2006, | |||
| <http://doi.acm.org/10.1145/1151659.1159938>. | <http://doi.acm.org/10.1145/1151659.1159938>. | |||
| [TSV_CAPWAP_issues] | [TSV_CAPWAP_issues] | |||
| Borman, D. and IESG, "Transport Issues in CAPWAP", In | Borman, D. and IESG, "Transport Issues in CAPWAP", In | |||
| Proc. IETF-69 CAPWAP w-g, July 2007, <http:// | Proc. IETF-69 CAPWAP w-g, July 2007, <http:// | |||
| www3.ietf.org/proceedings/07jul/slides/capwap-1.pdf>. | www3.ietf.org/proceedings/07jul/slides/capwap-1.pdf>. | |||
| [Tussle1] Clark, D., Sollins, K., Wroclawski, J., and R. Braden, | ||||
| "Tussle in Cyberspace: Defining Tomorrow's Internet", | ||||
| IEEE/ACM Transactions on Networking Vol 13, issue 3, | ||||
| June 2005, | ||||
| <http://portal.acm.org/citation.cfm?id=1074047.1074049>. | ||||
| [az-calc] Infinite-Source, "Azureus U/L settings calculator", Web | [az-calc] Infinite-Source, "Azureus U/L settings calculator", Web | |||
| page (accessed Oct'07) , 2007, | page (accessed Oct'07) , 2007, | |||
| <http://infinite-source.de/az/az-calc.html>. | <http://infinite-source.de/az/az-calc.html>. | |||
| [ion-tsv-alt-cc] | [ion-tsv-alt-cc] | |||
| "Experimental Specification of New Congestion Control | "Experimental Specification of New Congestion Control | |||
| Algorithms", July 2007, | Algorithms", July 2007, | |||
| <http://www.ietf.org/IESG/content/ions/ | <http://www.ietf.org/IESG/content/ions/ | |||
| ion-tsv-alt-cc.txt>. | ion-tsv-alt-cc.txt>. | |||
| [p2pi_summary] | ||||
| Arkko, J., "Incentives and Deployment Considerations for | ||||
| P2PI Solutions", draft-arkko-p2pi-incentives-00 (work in | ||||
| progress), May 2008. | ||||
| Editorial Comments | Editorial Comments | |||
| [Note_Collapse] Some would say that it is not a congestion | [Note_Collapse] Some would say that it is not a congestion | |||
| collapse if congestion control automatically | collapse if congestion control automatically | |||
| recovers the situation after a while. However, | recovers the situation after a while. However, | |||
| even though lack of autorecovery would be truly | even though lack of autorecovery would be truly | |||
| devastating, it isn't part of the definition | devastating, it isn't part of the definition | |||
| [RFC2914]. | [RFC2914]. | |||
| [Note_Earthquake] On 26 Dec 2006, the Hengchun earthquake caused | [Note_Earthquake] On 26 Dec 2006, the Hengchun earthquake caused | |||
| skipping to change at page 18, line 50 | skipping to change at page 20, line 48 | |||
| the expense of video downloads and gaming traffic | the expense of video downloads and gaming traffic | |||
| . | . | |||
| [Note_Neutral] Enforcement of /overall/ traffic limits within an | [Note_Neutral] Enforcement of /overall/ traffic limits within an | |||
| agreed acceptable use policy is a completely | agreed acceptable use policy is a completely | |||
| different question to that of whether operators | different question to that of whether operators | |||
| should disciminate against /specific/ applications | should disciminate against /specific/ applications | |||
| or service providers (but they are confusible& | or service providers (but they are confusible& | |||
| mdash;see the section on DPI. | mdash;see the section on DPI. | |||
| [Note_Window] Within the flow rate equality worldview, there are | [Note_Window] Within the flow rate equality culture, there are | |||
| differences in views over whether window sizes | differences in views over whether window sizes | |||
| should be compared in packets or bytes, and | should be compared in packets or bytes, and | |||
| whether a longer round trip time (RTT) should | whether a longer round trip time (RTT) should | |||
| reduce the target rate or merely slow down how | reduce the target rate or merely slow down how | |||
| quickly the rate changes in order to reach a | quickly the rate changes in order to reach a | |||
| target rate that is independent of RTT [FAST]. | target rate that is independent of RTT [FAST]. | |||
| However, although these details are important, | However, although these details are important, | |||
| they are merely minor internal differences within | they are merely minor internal differences within | |||
| the flow rate equality worldview when compared | the flow rate equality culture when compared | |||
| against the differences with volume accounting. | against the differences with volume accounting. | |||
| Appendix A. Example Scenario | Appendix A. Example Scenario | |||
| A.1. Base Scenario | A.1. Base Scenario | |||
| We will consider 100 users all sharing a link from the Internet with | We will consider 100 users all sharing a link from the Internet with | |||
| 2Mbps downstream access capacity. Eighty bought their line for | 2Mbps downstream access capacity. Eighty bought their line for | |||
| occasional flurries of activity like browsing the Web, booking their | occasional flurries of activity like browsing the Web, booking their | |||
| travel arrangements or reading their email. The other twenty bought | travel arrangements or reading their email. The other twenty bought | |||
| it mainly for unattended volume transfer of large files. We will | it mainly for unattended volume transfer of large files. We will | |||
| call these two types of use attended (or light) and unattended (or | call these two types of use attended (or light) and unattended (or | |||
| heavy). Ignoring the odd UDP packet, we will assume all these | heavy). Ignoring the odd UDP packet, we will assume all these | |||
| applications use TCP congestion control, and that all flows have | applications use TCP congestion control, and that all flows have | |||
| approximately equal round trip times. | approximately equal round trip times. | |||
| Imagine the network operator has provisioned the shared link for a | Imagine the network operator has provisioned the shared link for a | |||
| contention ratio of 20:1, ie 100x2Mbps/20 = 10Mbps. For simplicity, | contention ratio of 20:1, ie 100x2Mbps/20 = 10Mbps. Flows from the | |||
| we assume a 16hr 'day' and that the attended use is only in the | eighty attended users come and go with about 1 in 10 actively | |||
| 'day', while unattended use is always present, having the night to | downloading at any one time (a downstream activity factor of 10%). | |||
| itself. | To start with, we will further assume that, when active, every user | |||
| has approximately the same number of flows open, whether attended or | ||||
| During the 'day', flows from the sixty attended users come and go | unattended. So, once all flows have stabilised, at any instant TCP | |||
| with about 1 in 10 actively downloading flows at any one time (a | will ensure every user (when active) gets about 10Mbps/(80*10% + | |||
| downstream activity factor of 10%). To start with, we will further | 20*100%) = 357kbps of the bottleneck. | |||
| assume that, when active, every user has approximately the same | ||||
| number of flows open, whether attended or unattended. So, once all | ||||
| flows have stabilised, at any instant TCP will ensure every user | ||||
| (when active) gets about 10Mbps/(80*10% + 20*100%) = 357kbps of the | ||||
| bottleneck. | ||||
| Table 2 tabulates the salient features of this scenario. Also the | Table 2 tabulates the salient features of this scenario. Also the | |||
| rightmost column shows the volume transferred per user during the | rightmost column shows the volume transferred per user and for | |||
| day, and for completeness the bottom row shows the aggregate. | completeness the bottom row shows the aggregate. | |||
| +------------+----------+------------+--------------+---------------+ | +------------+----------+------------+--------------+---------------+ | |||
| | Type of | No. of | Activ- ity | Day rate | Day volume | | | Type of | No. of | Activ- ity | Day rate | Day volume | | |||
| | use | users | factor | /user (16hr) | /user (16hr) | | | use | users | factor | /user (16hr) | /user (16hr) | | |||
| +------------+----------+------------+--------------+---------------+ | +------------+----------+------------+--------------+---------------+ | |||
| | Attended | 80 | 10% | 357kbps | 257MB | | | Attended | 80 | 10% | 357kbps | 386MB | | |||
| | Unattended | 20 | 100% | 357kbps | 2570MB | | | Unattended | 20 | 100% | 357kbps | 3857MB | | |||
| | | | | | | | | | | | | | | |||
| | Aggregate | 100 | | 10Mbps | 72GB | | | Aggregate | 100 | | 10Mbps | 108GB | | |||
| +------------+----------+------------+--------------+---------------+ | +------------+----------+------------+--------------+---------------+ | |||
| Table 2: Base Scenario assuming 100% utilisation of 10Mbps bottleneck | Table 2: Base Scenario assuming 100% utilisation of 10Mbps bottleneck | |||
| and each user runs approx. equal numbers of flows with equal RTTs. | and each user runs approx. equal numbers of flows with equal RTTs. | |||
| This scenario is not meant to be an accurate model of the current | This scenario is not meant to be an accurate model of the current | |||
| Internet, for instance: | Internet, for instance: | |||
| o Utilisation is never 100%. | o Utilisation is never 100%. | |||
| o Upstream not downstream constrains most p2p apps on DSL (but not | o Upstream not downstream constrains most p2p apps on DSL (but not | |||
| all fixed & wireless access technologies). | all fixed & wireless access technologies). Most DSL links are | |||
| highly asymmetric with the upstream bandwidth often only equalling | ||||
| about 10% of the downstream. This means that, unless a file is | ||||
| widely available, the limitation on downloading it is not your own | ||||
| downlink, rather it is the combined uplinks of those users from | ||||
| whom you are downloading. | ||||
| o The activity factor of 10% in our base example scenario is perhaps | o The activity factor of 10% in our base example scenario is perhaps | |||
| an optimistic estimate for attended use over a 16hr peak period. | an optimistic estimate for attended use over a day. It is likely | |||
| 1% is just as likely for many users (before file-sharing became | that most users will only be active for a peak period during the | |||
| popular, DSL networks were provisioned for a contention ratio of | day. 1-2% is just as likely for many users (before file-sharing | |||
| about 25:1, aiming to handle a peak average activity factor of 4% | became popular, DSL networks were provisioned for a contention | |||
| across all user types). | ratio of about 25:1, aiming to handle a peak average activity | |||
| factor of 4% across all user types). | ||||
| o And rather than falling into two neat categories, users sit on a | o And rather than falling into two neat categories, real users sit | |||
| wide spectrum that extends to far more extreme types in both | on a wide spectrum that extends to far more extreme types in both | |||
| directions, while in between there are users who mix both types in | directions, while in between there are users who mix both types in | |||
| different proportions [Res_p2p]. | different proportions [Res_p2p]. | |||
| But the scenario has merely been chosen because it makes it simple to | But the scenario has merely been chosen because it makes it simple to | |||
| grasp the main issues while still retaining some similarity to the | grasp the main issues while still retaining some similarity to the | |||
| real Internet. We will also develop the scenario as we go, to add | real Internet. | |||
| more realism (e.g. adding mixed user types). | ||||
| A.2. Compounding Overlooked Degrees of Freedom | A.2. Compounding Overlooked Degrees of Freedom | |||
| Table 3 extends the base scenario of Appendix A to compound | Table 3 extends the base scenario of Appendix A to compound | |||
| differences in average activity factor with differences in average | differences in average activity factor with differences in average | |||
| numbers of active flows. | numbers of active flows. | |||
| During the 'day' at any instant we assume on average that attended | At any instant we assume on average that attended use results in 2 | |||
| use results in 2 flows per user (which are still only open 10% of the | flows per user (which are still only open 10% of the time), while | |||
| time), while unattended use results in 100 flows per user open | unattended use results in 12 flows per user open continuously. So at | |||
| continuously. So at any one time 2016 flows are active, 16 from | any one time 256 flows are active, 16 from attended use (10%*80=8 | |||
| attended use (10%*80=8 users at any one time * 2 flows) and 2000 from | users at any one time * 2 flows) and 240 from unattended use (20 | |||
| unattended use (20 users * 100 flows). TCP will ensure each of the 8 | users * 12 flows). TCP will ensure each of the 8 light users who are | |||
| users who are active at any one time gets about 2*10Mbps/2016 = | active at any one time gets about 2*10Mbps/256 = 78kbps of the | |||
| 9.9kbps of the bottleneck, while each of the 20 unattended users gets | bottleneck, while each of the 20 heavy users gets about 10*10Mbps/256 | |||
| about 100*10Mbps/2016 = 496kbps. This ignores flow start up effects, | = 469kbps. This ignores flow start up effects, which will tend to | |||
| which will tend to make matters even worse for attended use, given | make matters even worse for attended use, given TCP's slow start | |||
| briefer flows start more often. | mechanisms. | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+--------------+-----------+----------+ | |||
| | Type of | No. | Activ- | Ave | Day rate | Day | | | Type of | No. | Activ- | Ave | Day rate | Day | | |||
| | use | of | ity | simultaneous | /user | volume | | | use | of | ity | simultaneous | /user | volume | | |||
| | | users | factor | flows /user | (16hr) | /user | | | | users | factor | flows /user | (16hr) | /user | | |||
| | | | | | | (16hr) | | | | | | | | (16hr) | | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+--------------+-----------+----------+ | |||
| | Attended | 80 | 10% | 2 | 9.9kbps | 7.1MB | | | Attended | 80 | 10% | 2 | 78.1kbps | 84MB | | |||
| | Unattended | 20 | 100% | 100 | 496kbps | 3.6GB | | | Unattended | 20 | 100% | 12 | 469kbps | 5.1GB | | |||
| | | | | | | | | | | | | | | | | |||
| | Aggregate | 100 | | 2016 | 10Mbps | 72GB | | | Aggregate | 100 | | 256 | 10Mbps | 108GB | | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+--------------+-----------+----------+ | |||
| Table 3: Compounded scenario with attentive users less frequently | Table 3: Compounded scenario with attentive users less frequently | |||
| active and running less flows than unattentive users, assuming 100% | active and running less flows than unattentive users, assuming 100% | |||
| utilisation of 10Mbps bottleneck and all equal RTTs. | utilisation of 10Mbps bottleneck and all equal RTTs. | |||
| A.3. Hybrid Users | A.3. Hybrid Users | |||
| {ToDo:} | {ToDo:} | |||
| A.4. Upgrading Makes Most Users Worse Off | A.4. Upgrading Makes Most Users Worse Off | |||
| Now that the light users are only getting 9.9kbps from their 2Mbps | Now that the light users are only getting 78kbps from their 2Mbps | |||
| lines, the operator needs to consider upgrading their bottleneck (and | lines, the operator needs to consider upgrading their bottleneck (and | |||
| all the other access bottlenecks for its other customers), so it does | all the other access bottlenecks for its other customers), so it does | |||
| a market survey. The operator finds that fifty of the eighty light | a market survey. The operator finds that fifty of the eighty light | |||
| users and ten of the twenty heavy users are willing to pay more to | users and ten of the twenty heavy users are willing to pay more to | |||
| get an extra 500kbps each at the bottleneck. (Note that by making a | get an extra 500kbps each at the bottleneck. (Note that by making a | |||
| smaller proportion of the heavy users willing to pay more we haven't | smaller proportion of the heavy users willing to pay more we haven't | |||
| weighted the argument in our favour--in fact our argument would have | weighted the argument in our favour--in fact our argument would have | |||
| been even stronger the other way round.) | been even stronger the other way round.) | |||
| To satisfy the sixty users who are willing to pay for a 500kbps | To satisfy the sixty users who are willing to pay for a 500kbps | |||
| upgrade will require a 60*500kbps = 30Mbps upgrade to the bottleneck | upgrade will require a 60*500kbps = 30Mbps upgrade to the bottleneck | |||
| and proportionate upgrades deeper into the network, which will cost | and proportionate upgrades deeper into the network, which will cost | |||
| the ISP an extra $120 per month (say). The outcome is shown in | the ISP an extra $120 per month (say). The outcome is shown in | |||
| Table 4. Because the bottleneck has grown from 10Mbps to 40Mbps, the | Table 4. Because the bottleneck has grown from 10Mbps to 40Mbps, the | |||
| bit rates in the whole scenario essentially scale up by 4x. However, | bit rates in the whole scenario essentially scale up by 4x. However, | |||
| also notice that the total volume sent by the light users has not | also notice that the total volume sent by the light users has not | |||
| grown by 4x. Although they can send at 4x the bit rate, which means | grown by 4x. Although they can send at 4x the bit rate, which means | |||
| they get more done and therefore transfer more volume, they don't | they get more done and therefore transfer more volume, they only have | |||
| have 4x more volume to transfer--they let their machines idle for | about 100Mb they want transfer--they let their machines idle for | |||
| longer between transfers reflected in their activity factor having | longer between transfers reflected in their activity factor having | |||
| reduced from 10% to 4%. More bit rate was what they wanted, not more | reduced from 10% to 3%. More bit rate was what they wanted, not more | |||
| volume particularly. | volume particularly. | |||
| Let's assume the operator increases the monthly fee of all 100 | Let's assume the operator increases the monthly fee of all 100 | |||
| customers by $1.20 to pay for the $120 upgrade. The light users had | customers by $1.20 to pay for the $120 upgrade. The light users had | |||
| a 9.9kbps share of the bottleneck. They've all paid their share of | a 9.9kbps share of the bottleneck. They've all paid their share of | |||
| the upgrade, but they've only got 30kbps more than they had--nothing | the upgrade, but they've only got 30kbps more than they had--nothing | |||
| like the 500kbps upgrade most of them wanted and thought they were | like the 500kbps upgrade most of them wanted and thought they were | |||
| paying for. TCP has caused each heavy user to increase the bit rate | paying for. TCP has caused each heavy user to increase the bit rate | |||
| of its flows by 4x too, and each has 50x more flows for 25x more of | of its flows by 4x too, and each has 50x more flows for 25x more of | |||
| the time, so they use up most of the newly provisioned capacity even | the time, so they use up most of the newly provisioned capacity even | |||
| skipping to change at page 22, line 34 | skipping to change at page 24, line 38 | |||
| its 10Mbps bottlenecks. Then the cost of the upgrade on our example | its 10Mbps bottlenecks. Then the cost of the upgrade on our example | |||
| network will have to be shared over 60 not 100 customers, requiring | network will have to be shared over 60 not 100 customers, requiring | |||
| each to pay $2/month extra, rather than $1.20. | each to pay $2/month extra, rather than $1.20. | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+---------------+----------+----------+ | |||
| | Type of | No. | Activ- | Ave | Day rate | Day | | | Type of | No. | Activ- | Ave | Day rate | Day | | |||
| | use | of | ity | simultaneous | /user | volume | | | use | of | ity | simultaneous | /user | volume | | |||
| | | users | factor | flows /user | (16hr) | /user | | | | users | factor | flows /user | (16hr) | /user | | |||
| | | | | | | (16hr) | | | | | | | | (16hr) | | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+---------------+----------+----------+ | |||
| | Attended | 80 | 4% | 2 | 40kbps | 11MB | | | Attended | 80 | 3% | 2 | 327kbps | 106MB | | |||
| | Unattended | 20 | 100% | 100 | 2.0Mbps | 14GB | | | Unattended | 20 | 100% | 12 | 2.0Mbps | 21GB | | |||
| | | | | | | | | | | | | | | | | |||
| | Aggregate | 100 | | 2006.4 | 40Mbps | 288GB | | | Aggregate | 100 | | 244.8 | 40Mbps | 432GB | | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+---------------+----------+----------+ | |||
| Table 4: Scenario with bottleneck upgraded to 40Mbps, but otherwise | Table 4: Scenario with bottleneck upgraded to 40Mbps, but otherwise | |||
| unchanged from compounded scenario. | unchanged from compounded scenario. | |||
| But perhaps losing a greater proportion of the heavy users will help? | But perhaps losing a greater proportion of the heavy users will help? | |||
| Table 5 shows the resulting shares of the bottleneck once all the | Table 5 shows the resulting shares of the bottleneck once all the | |||
| cost sensitive customers have drifted away. Bit rates have increased | cost sensitive customers have drifted away. Bit rates have increased | |||
| by another 2x, mainly because there are 2x fewer heavy users. But | by another 2x, mainly because there are 2x fewer heavy users. This | |||
| that still only gives the light users 80kbps when they wanted | gives the light users the extra 500kbps they wanted, but they still | |||
| 500kbps--and, to rub salt in their wounds, their monthly fees have | get far short of the 2.5Mbps they might expect and their monthly fees | |||
| increased by $2 in all. The remaining 10 heavy users are probably | have increased by $2 in all. The remaining 10 heavy users are | |||
| happy enough though. For the extra $2/month they get to transfer 8x | probably happy enough though. For the extra $2/month they get to | |||
| more volume each (and they still have the night to themselves). | transfer 8x more volume each. | |||
| We have shown how the operator might lose those customers who didn't | We have shown how the operator might lose those customers who didn't | |||
| want to pay. But it also risks losing all fifty of those valuable | want to pay. But it also risks losing all fifty of those valuable | |||
| light customers who were willing to pay, and who did pay, but who | light customers who were willing to pay, and who did pay, but who | |||
| hardly got any benefit. In this situation, a rational operator will | hardly got any benefit. In this situation, a rational operator will | |||
| eventually have no choice but to stop investing in capacity, | eventually have no choice but to stop investing in capacity, | |||
| otherwise it will only be left with ten customers. | otherwise it will only be left with ten customers. | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+---------------+----------+----------+ | |||
| | Type of | No. | Activ- | Ave | Day rate | Day | | | Type of | No. | Activ- | Ave | Day rate | Day | | |||
| | use | of | ity | simultaneous | /user | volume | | | use | of | ity | simultaneous | /user | volume | | |||
| | | users | factor | flows /user | (16hr) | /user | | | | users | factor | flows /user | (16hr) | /user | | |||
| | | | | | | (16hr) | | | | | | | | (16hr) | | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+---------------+----------+----------+ | |||
| | Attended | 50 | 2.5% | 2 | 80kbps | 14MB | | | Attended | 50 | 1.5% | 2 | 660kbps | 106MB | | |||
| | Unattended | 10 | 100% | 100 | 4.0Mbps | 29GB | | | Unattended | 10 | 100% | 12 | 4.0Mbps | 43GB | | |||
| | | | | | | | | | | | | | | | | |||
| | Aggregate | 60 | | 1002.5 | 40Mbps | 288GB | | | Aggregate | 60 | | 121.5 | 40Mbps | 432GB | | |||
| +------------+-------+--------+---------------+----------+----------+ | +------------+-------+--------+---------------+----------+----------+ | |||
| Table 5: Scenario with bottleneck upgraded to 40Mbps, but having lost | Table 5: Scenario with bottleneck upgraded to 40Mbps, but having lost | |||
| customers due to extra cost; otherwise unchanged from compounded | customers due to extra cost; otherwise unchanged from compounded | |||
| scenario. | scenario. | |||
| We hope the above examples have clearly illustrated two main points: | We hope the above examples have clearly illustrated two main points: | |||
| o Rate equality at design time doesn't prevent extreme unfairness at | o Rate equality at design time doesn't prevent extreme unfairness at | |||
| run time; | run time; | |||
| o If extreme unfairness is not corrected, capacity investment tends | o If extreme unfairness is not corrected, capacity investment tends | |||
| to stop--a concrete consequence of unfairness that affects | to slow--a concrete consequence of unfairness that affects | |||
| everyone. | everyone. | |||
| Finally, note that configuration guidelines for typical p2p | Finally, note that configuration guidelines for typical p2p | |||
| applications (e.g. BitTorrent calculator [az-calc]), advise a | applications (e.g. BitTorrent calculator [az-calc]), advise a | |||
| maximum number of open connections that increases roughly linearly | maximum number of open connections that increases roughly linearly | |||
| with upstream capacity. | with upstream capacity. | |||
| Authors' Addresses | Authors' Addresses | |||
| Bob Briscoe | Bob Briscoe | |||
| skipping to change at page 25, line 7 | skipping to change at page 27, line 7 | |||
| Martlesham Heath | Martlesham Heath | |||
| Ipswich IP5 3RE | Ipswich IP5 3RE | |||
| UK | UK | |||
| Phone: +44 1473 646504 | Phone: +44 1473 646504 | |||
| Email: Louise.Burness@bt.com | Email: Louise.Burness@bt.com | |||
| URI: http://research.bt.com/networks/LouiseBurness.html | URI: http://research.bt.com/networks/LouiseBurness.html | |||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2008). | |||
| This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
| contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
| retain all their rights. | retain all their rights. | |||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | |||
| THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | |||
| OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | |||
| skipping to change at page 25, line 45 | skipping to change at page 27, line 45 | |||
| such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
| specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
| http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
| rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
| this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
| ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
| Acknowledgments | Acknowledgment | |||
| Funding for the RFC Editor function is provided by the IETF | This document was produced using xml2rfc v1.33 (of | |||
| Administrative Support Activity (IASA). This document was produced | http://xml.resource.org/) from a source in RFC-2629 XML format. | |||
| using xml2rfc v1.32 (of http://xml.resource.org/) from a source in | ||||
| RFC-2629 XML format. | ||||
| End of changes. 89 change blocks. | ||||
| 260 lines changed or deleted | 355 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||