draft-irtf-iccrg-welzl-congestion-control-open-research-01.txt | draft-irtf-iccrg-welzl-congestion-control-open-research-02.txt | |||
---|---|---|---|---|
Network Working Group Michael Welzl | Network Working Group Michael Welzl | |||
Internet Draft Dimitri Papadimitriou | Internet Draft Dimitri Papadimitriou | |||
Document: draft-irtf-iccrg-wetzl- Editors | Document: draft-irtf-iccrg-welzl- Editors | |||
congestion-control-open-research-01.txt | congestion-control-open-research-02.txt | |||
Michael Scharf | Michael Scharf | |||
Bob Briscoe | Bob Briscoe | |||
Open Research Issues in Internet Congestion Control | Open Research Issues in Internet Congestion Control | |||
draft-irtf-iccrg-welzl-congestion-control-open-research-01.txt | draft-irtf-iccrg-welzl-congestion-control-open-research-02.txt | |||
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 other | Task Force (IETF), its areas, and its working groups. Note that other | |||
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 October 2008. | This Internet-Draft will expire on January 30, 2009. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The IETF Trust (2008). | Copyright (C) The IETF Trust (2008). | |||
Abstract | Abstract | |||
This document describes some of the open problems in Internet | This document describes some of the open problems in Internet | |||
congestion control that are known today. This includes several new | congestion control that are known today. This includes several new | |||
challenges that are becoming important as the network grows, as well | challenges that are becoming important as the network grows, as well | |||
skipping to change at page 2, line 19 | skipping to change at page 2, line 19 | |||
Conventions used in this document | Conventions used in this document | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC-2119 [i]. | document are to be interpreted as described in RFC-2119 [i]. | |||
Table of Contents | Table of Contents | |||
1. Introduction...................................................3 | 1. Introduction...................................................3 | |||
2. Global Challenges – Overview...................................4 | 2. Global Challenges..............................................4 | |||
2.1 Heterogeneity..............................................4 | 2.1 Heterogeneity..............................................4 | |||
2.2 Stability..................................................6 | ||||
2.3 Fairness...................................................7 | ||||
3. Detailed Challenges............................................8 | 3. Detailed Challenges............................................8 | |||
3.1 Challenge 1: Router Support................................8 | 3.1 Challenge 1: Router Support................................8 | |||
3.2 Challenge 2: Corruption Loss..............................11 | 3.2 Challenge 2: Corruption Loss..............................12 | |||
3.3 Challenge 3: Small Packets................................13 | 3.3 Challenge 3: Small Packets................................14 | |||
3.4 Challenge 4: Pseudo-Wires.................................17 | 3.4 Challenge 4: Pseudo-Wires.................................18 | |||
3.5 Challenge 5: Multi-domain Congestion Control..............18 | 3.5 Challenge 5: Multi-domain Congestion Control..............20 | |||
3.6 Challenge 6: Precedence for Elastic Traffic...............19 | 3.6 Challenge 6: Precedence for Elastic Traffic...............21 | |||
3.7 Challenge 7: Misbehaving Senders and Receivers............20 | 3.7 Challenge 7: Misbehaving Senders and Receivers............22 | |||
3.8 Other challenges..........................................21 | 3.8 Other challenges..........................................23 | |||
4. Security Considerations.......................................24 | 4. Security Considerations.......................................25 | |||
5. Contributors..................................................24 | 5. Contributors..................................................26 | |||
6. References....................................................24 | 6. References....................................................26 | |||
7.1 Normative References.........................................24 | 6.1 Normative References.........................................26 | |||
Acknowledgments...............................................30 | Acknowledgments...............................................32 | |||
1. Introduction | 1. Introduction | |||
This document describes some of the open research topics in the | This document describes some of the open research topics in the | |||
domain of Internet congestion control that are known today. We begin | domain of Internet congestion control that are known today. We begin | |||
by reviewing some proposed definitions of congestion and congestion | by reviewing some proposed definitions of congestion and congestion | |||
control based on current understandings. | control based on current understandings. | |||
Congestion can be defined as the reduction in utility due to overload | Congestion can be defined as the reduction in utility due to overload | |||
in networks that support both spatial and temporal multiplexing, but | in networks that support both spatial and temporal multiplexing, but | |||
no reservation [Keshav]. Congestion control is a (typically | no reservation [Keshav]. Congestion control is a (typically | |||
distributed) algorithm to share network resources among competing | distributed) algorithm to share network resources among competing | |||
traffic sources. Two components of distributed congestion control | traffic sources. Two components of distributed congestion control | |||
have been defined: the primal and the dual [Kelly98]. Primal | have been defined in the context of prima-dual modeling [Kelly98]. | |||
congestion control refers to the algorithm executed by the traffic | Primal congestion control refers to the algorithm executed by the | |||
sources algorithm for controlling their sending rates or window | traffic sources algorithm for controlling their sending rates or | |||
sizes. This normally a closed-loop control, where this operation | window sizes. This is normally a closed-loop control, where this | |||
depends on feedback. TCP algorithms fall in the "primal" category. | operation depends on feedback. TCP algorithms fall in this category. | |||
Dual congestion control is implemented by the routers through | Dual congestion control is implemented by the routers through | |||
gathering information about the traffic traversing them. A dual | gathering information about the traffic traversing them. A dual | |||
congestion control algorithm updates, implicitly or explicitly, a | congestion control algorithm updates, implicitly or explicitly, a | |||
congestion measure and sends it back, implicitly or explicitly, to | congestion measure and sends it back, implicitly or explicitly, to | |||
the traffic sources that use that link. Queue management algorithms | the traffic sources that use that link. Queue management algorithms | |||
such as Random Early Detection (RED) [Floyd93] or Random Exponential | such as Random Early Detection (RED) [Floyd93] or Random Exponential | |||
Marking (REM) [Ath01] fall in the "dual" category. | Marking (REM) [Ath01] fall in the "dual" category. | |||
Congestion control provides for a fundamental set of mechanisms for | Congestion control provides for a fundamental set of mechanisms for | |||
maintaining the stability and efficiency of the Internet. Congestion | maintaining the stability and efficiency of the Internet. Congestion | |||
skipping to change at page 3, line 46 | skipping to change at page 3, line 46 | |||
algorithms [Jacobson88] [RFC2581] are used by the Internet transport | algorithms [Jacobson88] [RFC2581] are used by the Internet transport | |||
protocol TCP [RFC4614]. They have been proven to be highly successful | protocol TCP [RFC4614]. They have been proven to be highly successful | |||
over many years but have begun to reach their limits, as the | over many years but have begun to reach their limits, as the | |||
heterogeneity of both the data link and physical layer and | heterogeneity of both the data link and physical layer and | |||
applications are pulling TCP congestion control (which performs | applications are pulling TCP congestion control (which performs | |||
poorly as the bandwidth or delay increases) outside of its natural | poorly as the bandwidth or delay increases) outside of its natural | |||
operating regime. A side effect of these deficits is that there is an | operating regime. A side effect of these deficits is that there is an | |||
increasing share of hosts that use non-standardized congestion | increasing share of hosts that use non-standardized congestion | |||
control enhancements (for instance, many Linux distributions have | control enhancements (for instance, many Linux distributions have | |||
been shipped with "CUBIC" as default TCP congestion control | been shipped with "CUBIC" as default TCP congestion control | |||
mechanism.) | mechanism). | |||
While the original Jacobson algorithm requires no congestion-related | While the original Jacobson algorithm requires no congestion-related | |||
state in routers, more recent modifications have departed from the | state in routers, more recent modifications have departed from the | |||
strict application of the end-to-end / transparency principle. Active | strict application of the end-to-end principle [Saltzer84]. Active | |||
Queue Management (AQM) in routers, e.g., RED and all its variants, | Queue Management (AQM) in routers, e.g., RED and its variants such as | |||
xCHOKE [Pan00], RED with In/Out (RIO) [Clark98], improves performance | xCHOKE [Pan00], RED with In/Out (RIO) [Clark98], improves performance | |||
by keeping queues small (implicit feedback via dropped packets), | by keeping queues small (implicit feedback via dropped packets), | |||
while Explicit Congestion Notification (ECN) [Floyd94] [RFC3168] | while Explicit Congestion Notification (ECN) [Floyd94] [RFC3168] | |||
passes one bit of congestion information back to senders when an AQM | passes one bit of congestion information back to senders when an AQM | |||
would normally drop a packet. These measures do improve performance, | would normally drop a packet. These measures do improve performance, | |||
but there is a limit to how much can be accomplished without more | but there is a limit to how much can be accomplished without more | |||
information from routers. The requirement of extreme scalability | information from routers. The requirement of extreme scalability | |||
together with robustness has been a difficult hurdle to accelerating | together with robustness has been a difficult hurdle to accelerating | |||
information flow. Primal-Dual TCP/AQM distributed algorithm stability | information flow. Primal-Dual TCP/AQM distributed algorithm stability | |||
and equilibrium properties have been extensively studied (cf. [Low02] | and equilibrium properties have been extensively studied (cf. [Low02] | |||
skipping to change at page 5, line 31 | skipping to change at page 5, line 31 | |||
algorithms raise fairness issues, and they may be less robust in | algorithms raise fairness issues, and they may be less robust in | |||
certain situations for which they have not been designed. Up to now, | certain situations for which they have not been designed. Up to now, | |||
there is still no common agreement in the IETF on which algorithm and | there is still no common agreement in the IETF on which algorithm and | |||
protocol to choose. | protocol to choose. | |||
It is always possible to tune congestion control parameters based on | It is always possible to tune congestion control parameters based on | |||
some knowledge about the environment and the application scenario. | some knowledge about the environment and the application scenario. | |||
However, the fundamental question is whether it is possible to define | However, the fundamental question is whether it is possible to define | |||
one congestion control mechanism that operates reasonable well in the | one congestion control mechanism that operates reasonable well in the | |||
whole range of scenarios that exist in the Internet. Hence, it is an | whole range of scenarios that exist in the Internet. Hence, it is an | |||
important research question how such a "unified" congestion control | important research question how new Internet congestion control | |||
would have to be designed, and which maximum degree of dynamics it | mechanisms would have to be designed, which maximum degree of | |||
could efficiently handle. | dynamics it could efficiently handle, and whether it could keep the | |||
genererality of the existing end-to-end solutions. | ||||
Some improvements of congestion control could be realized by simple | ||||
changes of single functions in end-system or network components. | ||||
However, new mechanism can also require a fundamental redesign of the | ||||
overall network architecture, and they may even affect the design of | ||||
Internet applications. This can imply significant interoperability | ||||
and backward compatibility challenges and/or create network | ||||
accessibility obstacles. In particular, networks and/or applications | ||||
that do not use or support a new congestion control mechanism could | ||||
be penalized by a significantly worse performance compared to what | ||||
they would get if everybody used the existing mechanisms (cf. the | ||||
discussion on fairness in section 2.3). [RFC5033] defines several | ||||
criteria to evaluate the appropriateness of a new congestion control | ||||
mechanism. However, the fundamental question is how much performance | ||||
deterioration is acceptable for "legacy" applications. This tradeoff | ||||
between performance and cost has to be very carefully examined for | ||||
all new congestion control schemes. | ||||
2.2 Stability | 2.2 Stability | |||
Control theory, which is a mathematical tool for describing dynamic | Control theory, which is a mathematical tool for describing dynamic | |||
systems, lends itself to modeling congestion control - TCP is a | systems, lends itself to modeling congestion control - TCP is a | |||
perfect example of a typical "closed loop" system that can be | perfect example of a typical "closed loop" system that can be | |||
described in control theoretic terms. In control theory, there is a | described in control theoretic terms. In control theory, there is a | |||
mathematically defined notion of system stability. In a stable | mathematically defined notion of system stability. In a stable | |||
system, for any bounded input over any amount of time, the output | system, for any bounded input over any amount of time, the output | |||
will also be bounded. For congestion control, what is actually meant | will also be bounded. For congestion control, what is actually meant | |||
skipping to change at page 6, line 10 | skipping to change at page 6, line 30 | |||
heterogeneous RTTs into account. It has therefore become common | heterogeneous RTTs into account. It has therefore become common | |||
practice to model simpler cases and leave the more complicated | practice to model simpler cases and leave the more complicated | |||
(realistic) situations for simulations. Clearly, if a mechanism is | (realistic) situations for simulations. Clearly, if a mechanism is | |||
not stable in a simple scenario, it is generally useless; this method | not stable in a simple scenario, it is generally useless; this method | |||
therefore helps to eliminate faulty congestion control candidates at | therefore helps to eliminate faulty congestion control candidates at | |||
an early stage. | an early stage. | |||
Some fundamental facts, which are known from control theory are | Some fundamental facts, which are known from control theory are | |||
useful as guidelines when designing a congestion control mechanism. | useful as guidelines when designing a congestion control mechanism. | |||
For instance, a controller should only be fed a system state that | For instance, a controller should only be fed a system state that | |||
reflects its output. A (low-pass) filter function should be | reflects its output. A (low-pass) filter function should be used in | |||
used in order to pass only states to the controller that are | order to pass only states to the controller that are expected to last | |||
expected to last long enough for its action to be meaningful | long enough for its action to be meaningful [Jain88]. Action should | |||
[Jain88]. Action should be carried out whenever such feedback | be carried out whenever such feedback arrives, as it is a fundamental | |||
arrives, as it is a fundamental principle of control that the control | principle of control that the control frequency should be equal to | |||
frequency should be equal to the feedback frequency. Reacting faster | the feedback frequency. Reacting faster leads to oscillations and | |||
leads to oscillations and instability while reacting slower makes the | instability while reacting slower makes the system tardy [Jain90]. | |||
system tardy [Jain90]. | ||||
TCP stability can be attributed to two key aspects which were | TCP stability can be attributed to two key aspects which were | |||
introduced in [Jacobson88]: the AIMD control law during congestion | introduced in [Jacobson88]: the AIMD control law during congestion | |||
avoidance, which is based on a simple, vector based analysis of two | avoidance, which is based on a simple, vector based analysis of two | |||
controllers sharing one resource with synchronous RTTs [Chiu89], and | controllers sharing one resource with synchronous RTTs [Chiu89], and | |||
the "conservation of packets principle", which, once the control has | the "conservation of packets principle", which, once the control has | |||
reached "steady state", tries to maintain an equal amount of packets | reached "steady state", tries to maintain an equal amount of packets | |||
in flight at any time by only sending a packet into the network when | in flight at any time by only sending a packet into the network when | |||
a packet has left the network (as indicated by an ACK arriving at the | a packet has left the network (as indicated by an ACK arriving at the | |||
sender). The latter aspect has guided many decisions regarding | sender). The latter aspect has guided many decisions regarding | |||
changes that were made to TCP over the years. | changes that were made to TCP over the years. | |||
The reasoning in [Jacobson88] assumes all senders to be acting at the | The reasoning in [Jacobson88] assumes all senders to be acting at the | |||
same time. The stability of TCP under more realistic network | same time. The stability of TCP under more realistic network | |||
conditions has been investigated in a large number of ensuing works, | conditions has been investigated in a large number of ensuing works, | |||
leading to no clear conclusion that TCP would also be asymptotically | leading to no clear conclusion that TCP would also be asymptotically | |||
stable under arbitrary network conditions. | stable under arbitrary network conditions. The stability impact of | |||
Slow Start (which can be significant as short-lived HTTP flows often | ||||
never leave this phase) is also not entirely clear. | ||||
2.3 Fairness | 2.3 Fairness | |||
Recently, the way the Internet community reasons about fairness has | Recently, the way the Internet community reasons about fairness has | |||
been called into deep questioning [Bri07]. Much of the community has | been called into deep questioning [Bri07]. Much of the community has | |||
taken fairness to mean approximate equality between the rates of | taken fairness to mean approximate equality between the rates of | |||
flows (flow rate fairness) that experience equivalent path congestion | flows (flow rate fairness) that experience equivalent path congestion | |||
as with TCP [RFC2581] and TFRC [RFC3448]. [RFC3714] depicts the | as with TCP [RFC2581] and TFRC [RFC3448]. [RFC3714] depicts the | |||
resulting situation as "The Amorphous Problem of Fairness". | resulting situation as "The Amorphous Problem of Fairness". | |||
A parallel tradition has been built on [Kelly98] where, as long as | A parallel tradition has been built on [Kelly98] where, as long as | |||
each user is accountable for the cost their rate causes to others | each user is accountable for the cost their rate causes to others | |||
[MKMV95], the set of rates that everyone chooses is deemed fair (cost | [MKMV95], the set of rates that everyone chooses is deemed fair (cost | |||
fairness)---because with any other set of choices people would lose | fairness) - because with any other set of choices people would lose | |||
more value than they gained overall. | more value than they gained overall. | |||
In comparison, the debate between max-min, proportional and TCP | In comparison, the debate between max-min, proportional and TCP | |||
fairness is about mere details. These three all share the assumption | fairness is about mere details. These three all share the assumption | |||
that equal flow rates are desirable; they merely differ in the second | that equal flow rates are desirable; they merely differ in the second | |||
order issue of how to share out excess capacity in a network of many | order issue of how to share out excess capacity in a network of many | |||
bottlenecks. In contrast, cost fairness should lead to extremely | bottlenecks. In contrast, cost fairness should lead to extremely | |||
unequal flow rates by design. Equivalently, equal flow rates would | unequal flow rates by design. Equivalently, equal flow rates would | |||
typically be considered extremely unfair. | typically be considered extremely unfair. | |||
The two traditional approaches are not protocol options that can each | The two traditional approaches are not protocol options that can each | |||
be followed in different parts of a network. They result in research | be followed in different parts of a network. They result in research | |||
agendas and issues that are different in their respective objectives | agendas and issues that are different in their respective objectives | |||
resulting in different set of open issues. | resulting in different set of open issues. | |||
If we assume TCP-friendliness as a goal with flow rate as the metric, | If we assume TCP-friendliness as a goal with flow rate as the metric, | |||
open issues would be: | open issues would be: | |||
- Should rate fairness depend on the packet rate or the bit rate? | - Should rate fairness depend on the packet rate or the bit rate? | |||
- Should flow rate depend on RTT (as in TCP) or whether only flow | - Should the flow rate depend on RTT (as in TCP) or should only flow | |||
dynamics should depend on RTT (e.g. as in Fast TCP [Jin04])? | dynamics depend on RTT (e.g. as in Fast TCP [Jin04])? | |||
- How to estimate whether a particular flow start strategy is fair, | ||||
- How to estimate whether a particular flow start strategy is fair? | or whether a particular fast recovery strategy after a reduction in | |||
Whether a particular fast recovery strategy after a reduction in | ||||
rate due to congestion is fair? | rate due to congestion is fair? | |||
- If an application needs still smoother flows than TFRC, or it needs | - How should we judge what is reasonably fair if an application | |||
to burst occasionally, or any other application behavior, how | needs, for example, even smoother flows than TFRC, or it needs to | |||
should to judge what is reasonably fair? | burst occasionally, or with any other application behavior? | |||
- During brief congestion bursts (e.g. due to new flow arrivals) how | - During brief congestion bursts (e.g. due to new flow arrivals) how | |||
to judge at what point it becomes unfair for some flows to continue | to judge at what point it becomes unfair for some flows to continue | |||
at a smooth rate while others reduce their rate? | at a smooth rate while others reduce their rate? | |||
- Which mechanism(s) should be used to enforce approximate flow rate | ||||
- Which mechanism(s) to enforce approximate flow rate fairness? | fairness? | |||
- How can we introduce some degree of fairness that takes account of | - How can we introduce some degree of fairness that takes account of | |||
flow duration? Large number of flows over separate paths (e.g. via | flow duration? | |||
an overlay)? | - How to judge the fairness of applications using a large number of | |||
flows over separate paths (e.g. via an overlay)? | ||||
If we assume cost fairness as a goal with congestion volume as the | If we assume cost fairness as a goal with congestion volume as the | |||
metric, open issues would be: | metric, open issues would be: | |||
- Can one application's sensitivity to instantaneous congestion | - Can one application's sensitivity to instantaneous congestion | |||
really be protected by longer-term accountability of competing | really be protected by longer-term accountability of competing | |||
applications? | applications? | |||
- Which protocol mechanism(s) to give accountability for causing | - Which protocol mechanism(s) should give accountability for causing | |||
congestion? | congestion? | |||
- How to design one or two generic transport protocols (such as to | - How to design one or two generic transport protocols (such as to | |||
TCP, UDP, etc.) with the addition of application policy control? | TCP, UDP, etc.) with the addition of application policy control? | |||
- Which policy enforcement by networks and interactions between | - Which policy enforcement should be used by networks and which | |||
application policy and network policy enforcement? | interactions between application policy and network policy | |||
- Competition with flows aiming for rate equality (e.g. TCP); | enforcement? | |||
- How to design a new policy enforcement framework that will | ||||
appropriately compete with existing flows aiming for rate equality | ||||
(e.g. TCP)? | ||||
The question of how to reason about fairness is a pre-requisite to | The question of how to reason about fairness is a pre-requisite to | |||
agreeing the research agenda. However, that question does not require | agreeing on the research agenda. However, that question does not | |||
more research in itself, it is merely a debate that needs to be | require more research in itself, it is merely a debate that needs to | |||
resolved by studying existing research and by assessing how bad | be resolved by studying existing research and by assessing how bad | |||
fairness problems could become if they are not addressed rigorously. | fairness problems could become if they are not addressed rigorously. | |||
3. Detailed Challenges | 3. Detailed Challenges | |||
3.1 Challenge 1: Router Support | 3.1 Challenge 1: Router Support | |||
Routers can be involved in congestion control in two ways: first, | Routers can be involved in congestion control in two ways: first, | |||
they can implicitly optimize their functions, such as queue | they can implicitly optimize their functions, such as queue | |||
management and scheduling strategies, in order to support the | management and scheduling strategies, in order to support the | |||
operation of an end-to-end congestion control. | operation of an end-to-end congestion control. Second, routers can | |||
participate in congestion control via explicit notification | ||||
mechanisms. | ||||
Various approaches have been proposed and also deployed, such as | In the first category, various approaches have been proposed and also | |||
different AQM techniques. Even though these implicit techniques are | deployed, such as different AQM techniques. Even though these | |||
known to improve network performance during congestion phases, they | implicit techniques are known to improve network performance during | |||
are still only partly deployed in the Internet. This may be due to | congestion phases, they are still only partly deployed in the | |||
the fact that finding optimal and robust parameterizations for these | Internet. This may be due to the fact that finding optimal and robust | |||
mechanisms is a non-trivial problem. Indeed, the problem with various | parameterizations for these mechanisms is a non-trivial problem. | |||
AQM schemes is the difficulty to identify correct values of the | Indeed, the problem with various AQM schemes is the difficulty to | |||
parameter set that affects the performance of the queuing scheme (due | identify correct values of the parameter set that affects the | |||
to variation in the number of sources, the capacity and the feedback | performance of the queuing scheme (due to variation in the number of | |||
delay) [Fioriu00] [Hollot01] [Zhang03]. Many AQM schemes (RED, REM, | sources, the capacity and the feedback delay) [Fioriu00] [Hollot01] | |||
BLUE, PI-Controller but also Adaptive Virtual Queue (AVQ)) do not | [Zhang03]. Many AQM schemes (RED, REM, BLUE, PI-Controller but also | |||
define a systematic rule for setting their parameters. | Adaptive Virtual Queue (AVQ)) do not define a systematic rule for | |||
setting their parameters. | ||||
Second, routers can participate in congestion control via explicit | By using explicit feedback from the network, connection endpoints can | |||
notification mechanisms. By such feedback from the network, | obtain more accurate information about the current network | |||
connection endpoints can obtain more accurate information about the | characteristics on the path. This allows endpoints to make more | |||
current network characteristics on the path. This allows endpoints to | precise decisions that can better prevent packet loss and that can | |||
make more precise decisions that can better prevent packet loss and | also improve fairness among different flows. Examples for explicit | |||
that can also improve fairness among different flows. Examples for | router feedback include Explicit Congestion Notification (ECN) | |||
explicit router feedback include Explicit Congestion Notification | [RFC3168], Quick-Start [RFC4782], the eXplicit Control Protocol (XCP) | |||
(ECN) [RFC3168], Quick-Start [RFC4782], and eXplicit Control Protocol | [Katabi02] [Falk07], the Rate Control Protocol (RCP) [Dukk06], and | |||
(XCP) [Katabi02] [Falk07]. | CADPC/PTP [Welzl03]. | |||
As the per-flow bandwidth-delay product increases, TCP becomes | Explicit router feedback can address some of the inherent | |||
inefficient and prone to instability, regardless of the queuing | shortcomings of TCP. For instance, XCP has been developed to overcome | |||
scheme. XCP is a well-known scheme that has been developed to address | the inefficiency, unfairness and instability that TCP suffers from | |||
these issues with per-packet feedback. By decoupling resource | when the per-flow bandwidth-delay product increases. By decoupling | |||
utilization/congestion control from fairness control, XCP outperforms | resource utilization/congestion control from fairness control, XCP | |||
TCP in conventional and high bandwidth-delay environments, and | achieves fair bandwidth allocation, high utilization, a small | |||
remains efficient, fair, scalable, and stable regardless of the link | standing queue size, and near-zero packet drops, with both steady and | |||
capacity, the round trip time (RTT), and the number of sources. XCP | highly varying traffic. Importantly, XCP does not maintain any per- | |||
aims at achieving fair bandwidth allocation, high utilization, a | flow state in routers and requires few CPU cycles per packet, hence | |||
small standing queue size, and near-zero packet drops, with both | making it potentially applicable in high-speed routers. However, XCP | |||
steady and highly varying traffic. Importantly, XCP does not maintain | is still subject to research: as [Andrew05] has pointed out, XCP is | |||
any per-flow state in routers and requires few CPU cycles per packet, | locally stable but globally unstable when the maximum RTT of a flow | |||
hence making it potentially applicable in high-speed routers. | is much larger than the mean RTT. This instability can be removed by | |||
However, XCP is still subject to research efforts: [Andrew05] has | changing the update strategy for the estimation interval, but this | |||
recently pointed out cases where XCP is locally stable but globally | makes the system vulnerable to erroneous RTT advertisements. The | |||
unstable (when the maximum RTT of a flow is much larger than the mean | authors of [PAP02] have shown that, when flows with different RTTs | |||
RTT). This instability can be removed by setting the estimation | are applied, XCP sometimes discriminates among heterogeneous traffic | |||
interval to be the maximum observed RTT rather than the mean RTT. | flows, even if XCP is generally fair to different flows. [Low05] | |||
Nevertheless, this makes the system vulnerable to erroneous RTT | provides for a complete characterization of the XCP equilibrium | |||
advertisements. The authors of [PAP02] have shown that, when flows | properties. | |||
with different RTTs are applied, XCP sometimes discriminates among | ||||
heterogeneous traffic flows, even if XCP is generally fair to | ||||
different flows even if they belong to significantly heterogeneous | ||||
flows. [Low05] provides for a complete characterization of the XCP | ||||
equilibrium properties. | ||||
In general, such router support raises many issues that have not been | Several other explicit router feedback schemes have been developed | |||
with different design objectives. For instance, RCP uses a per-packet | ||||
feedback similar to XCP. Different to XCP, RCP focuses on the | ||||
reduction of flow completion times and therefore tolerates larger | ||||
instantaneous queue sizes [Dukk06]. | ||||
Both implicit and explicit router support should be considered in the | ||||
context of the end-to-end argument [Saltzer84], which is one of the | ||||
key design principles of the Internet. It suggests that functions | ||||
that can be realized both in the end-systems and in the network | ||||
should be implemented in the end-systems. This principle ensures that | ||||
the network provides a general service and that remains as simple as | ||||
possible (any additional complexity is placed above the IP layer, | ||||
i.e., at the edges) so as to ensure reliability and robustness. In | ||||
particular, this means that Internet protocols should not rely on the | ||||
maintenance of applicative state (i.e., information about the state | ||||
of the end-to-end communication) inside the network [RFC1958] and | ||||
that the network state (e.g. routing state) maintained by the | ||||
Internet shall minimize its interaction with the states maintained at | ||||
the end-points/hosts. | ||||
However, as discussed for instance in [Moors02], congestion control | ||||
cannot be realized as a pure end-to-end function only. Congestion is | ||||
an inherent network phenomenon and can only be resolved efficiently | ||||
by some cooperation of end-systems and the network. Congestion | ||||
control in today's Internet protocols follows the end-to-end design | ||||
principle insofar as only minimal feedback from the network is used | ||||
(e. g., packet loss and delay). The end-systems only decide how to | ||||
react and how to avoid congestion. The crux is that, on the one hand, | ||||
there would be substantial benefit by further assistance from the | ||||
network, but, on the other hand, such router support could lead to | ||||
duplication of functions, which might even harmfully interact with | ||||
end-to-end protocol mechanisms. The different requirements of | ||||
applications (cf. the fairness discussion in Section 2.3) call for a | ||||
variety of different congestion control approaches, but putting such | ||||
application-specific behavior inside the network should be avoided, | ||||
as such design would clearly be at odds with the end-to-end design | ||||
principle. | ||||
The end-to-end argument is generally regarded as a key ingredient for | ||||
ensuring a scalable network design. In order to ensure that new | ||||
congestion control mechanisms are scalable, violating this principle | ||||
must therefore be avoided. | ||||
In general, router support raises many issues that have not been | ||||
completely solved yet. | completely solved yet. | |||
3.1.1 Performance and robustness | 3.1.1 Performance and robustness | |||
Congestion control is subject to some tradeoffs: on one hand, it must | Congestion control is subject to some tradeoffs: on one hand, it must | |||
allow high link utilizations and fair resource sharing but on the | allow high link utilizations and fair resource sharing but on the | |||
other hand, the algorithms must also be robust and conservative in | other hand, the algorithms must also be robust and conservative in | |||
particular during congestion phases. | particular during congestion phases. | |||
Router support can help to improve performance and fairness, but it | Router support can help to improve performance and fairness, but it | |||
skipping to change at page 9, line 43 | skipping to change at page 11, line 11 | |||
congestion can delay feedback signals. Also, the measurement of | congestion can delay feedback signals. Also, the measurement of | |||
parameters such as RTTs or data rates may contain estimation errors. | parameters such as RTTs or data rates may contain estimation errors. | |||
Even though there has been significant progress in providing | Even though there has been significant progress in providing | |||
fundamental theoretical models for such effects, research has not | fundamental theoretical models for such effects, research has not | |||
completely explored the whole problem space yet. | completely explored the whole problem space yet. | |||
Open questions are: | Open questions are: | |||
- How much can routers theoretically improve performance in the | - How much can routers theoretically improve performance in the | |||
complete range of communication scenarios that exists in the | complete range of communication scenarios that exists in the | |||
Internet? | Internet without damaging or impacting end-to-end mechanisms | |||
already in place? | ||||
- Is it possible to design robust mechanisms that offer significant | - Is it possible to design robust mechanisms that offer significant | |||
benefits without additional risks? | benefits without additional risks? | |||
- What is the minimum support that is needed from routers in order | - What is the minimum support that is needed from routers in order | |||
to achieve significantly better performance than with end-to-end | to achieve significantly better performance than with end-to-end | |||
mechanisms? | mechanisms? | |||
3.1.2 Granularity of router functions | 3.1.2 Granularity of router functions | |||
skipping to change at page 10, line 36 | skipping to change at page 12, line 4 | |||
- How can additional processing efforts be kept at a minimum? | - How can additional processing efforts be kept at a minimum? | |||
3.1.3 Information acquisition | 3.1.3 Information acquisition | |||
In order to support congestion control, routers have to obtain at | In order to support congestion control, routers have to obtain at | |||
least a subset of the following information. Obtaining that | least a subset of the following information. Obtaining that | |||
information may result in complex tasks. | information may result in complex tasks. | |||
1. Capacity of (outgoing) links | 1. Capacity of (outgoing) links | |||
Link characteristics depend on the realization of lower protocol | Link characteristics depend on the realization of lower protocol | |||
layers. Routers do not necessarily know the link layer network | layers. Routers do not necessarily know the link layer network | |||
topology and link capacities, and these are not always constant (e. | topology and link capacities, and these are not always constant (e. | |||
g., on shared wireless links). Difficulties also arise when using IP- | g., on shared wireless links). Depending on the network technology, | |||
in-IP tunnels [RFC 2003] or MPLS [RFC3031] [RFC3032]. In these cases, | there can be queues or bottlenecks that are not directly visible at | |||
link information could be determined by cross-layer information | the IP layer. Difficulties also arise when using IP-in-IP tunnels | |||
exchange, but this requires link layer technology specific | [RFC 2003] or MPLS [RFC3031] [RFC3032]. In these cases, link | |||
interfaces. An alternative could be online measurements, but this can | information could be determined by cross-layer information exchange, | |||
cause significant additional network overhead. | but this requires link layer technology specific interfaces. An | |||
alternative could be online measurements, but this can cause | ||||
significant additional network overhead. | ||||
2. Traffic carried over (outgoing) links | 2. Traffic carried over (outgoing) links | |||
Accurate online measurement of data rates is challenging when traffic | Accurate online measurement of data rates is challenging when traffic | |||
is bursty. For instance, measuring a "current link load" requires | is bursty. For instance, measuring a "current link load" requires | |||
defining the right measurement interval/ sampling interval. This is a | defining the right measurement interval/ sampling interval. This is a | |||
challenge for proposals that require knowledge e.g. about the current | challenge for proposals that require knowledge e.g. about the current | |||
link utilization. | link utilization. | |||
3. Internal buffer statistics | 3. Internal buffer statistics | |||
skipping to change at page 11, line 48 | skipping to change at page 13, line 18 | |||
networks, packets can be dropped because of corruption, rendering the | networks, packets can be dropped because of corruption, rendering the | |||
typical reaction of a congestion control mechanism inappropriate. | typical reaction of a congestion control mechanism inappropriate. | |||
TCP over wireless and satellite is a topic that has been investigated | TCP over wireless and satellite is a topic that has been investigated | |||
for a long time [Krishnan04]. There are some proposals where the | for a long time [Krishnan04]. There are some proposals where the | |||
congestion control mechanism would react as if a packet had not been | congestion control mechanism would react as if a packet had not been | |||
dropped in the presence of corruption (cf. TCP HACK [BALAN01]), but | dropped in the presence of corruption (cf. TCP HACK [BALAN01]), but | |||
discussions in the IETF have shown that there is no agreement that | discussions in the IETF have shown that there is no agreement that | |||
this type of reaction is appropriate. For instance, it has been said | this type of reaction is appropriate. For instance, it has been said | |||
that congestion can manifest itself as corruption on shared wireless | that congestion can manifest itself as corruption on shared wireless | |||
links, and in any case it is questionable whether a source that sends | links, and it is questionable whether a source that sends packets | |||
packets that are continuously impaired by link noise should keep | that are continuously impaired by link noise should keep sending at a | |||
sending at a high rate. | high rate. | |||
Generally, two questions must be addressed when designing congestion | Generally, two questions must be addressed when designing congestion | |||
control mechanism that takes corruption into account: | control mechanism that takes corruption into account: | |||
1. How is corruption detected? | 1. How is corruption detected? | |||
2. What should be the reaction? | 2. What should be the reaction? | |||
In addition to question 1 above, it may be useful to consider | In addition to question 1 above, it may be useful to consider | |||
detecting the reason for corruption, but this has not yet been done | detecting the reason for corruption, but this has not yet been done | |||
skipping to change at page 12, line 44 | skipping to change at page 14, line 14 | |||
The idea of having a transport endpoint detect and accordingly react | The idea of having a transport endpoint detect and accordingly react | |||
to corruption poses a number of interesting questions regarding | to corruption poses a number of interesting questions regarding | |||
cross-layer interactions. As IP is designed to operate over arbitrary | cross-layer interactions. As IP is designed to operate over arbitrary | |||
link layers, it is therefore difficult to design a congestion control | link layers, it is therefore difficult to design a congestion control | |||
mechanism on top of it, which appropriately reacts to corruption - | mechanism on top of it, which appropriately reacts to corruption - | |||
especially as the specific data link layers that are in use along an | especially as the specific data link layers that are in use along an | |||
end-to-end path are typically unknown to entities at the transport | end-to-end path are typically unknown to entities at the transport | |||
layer. | layer. | |||
The IETF has not yet specified how a congestion control mechanism | While the IETF has not yet specified how a congestion control | |||
should react to corruption. | mechanism should react to corruption, proposals exist in the | |||
literature. For instance, TCP Westwood sets the congestion window | ||||
equal to the measured bandwidth at time of congestion in response to | ||||
three DupACKs or a timeout. This measurement is obtained by counting | ||||
and filtering the ACK rate. This setting provides a significant | ||||
goodput improvement in noisy channels because the "blind" by half | ||||
window reduction of standard TCP is avoided, i.e. the window is not | ||||
reduced by too much [Mascolo01]. | ||||
Open questions concerning corruption loss include: | Open questions concerning corruption loss include: | |||
- How should corruption loss be detected? | - How should corruption loss be detected? | |||
- How should a source react when it is known that corruption has | - How should a source react when it is known that corruption has | |||
occurred? | occurred? | |||
3.3 Challenge 3: Small Packets | 3.3 Challenge 3: Small Packets | |||
Over past years, the performance of TCP congestion avoidance | Over past years, the performance of TCP congestion avoidance | |||
algorithms has been extensively studied. The square root formula of | algorithms has been extensively studied. The well known "square root | |||
[Padye98] provides the performance of the TCP congestion avoidance | formula" provides the performance of the TCP congestion avoidance | |||
algorithm for TCP Reno [RFC2581]. The PKFT model enhances the square | algorithm for TCP Reno [RFC2581]. [Padhye98] enhances the model to | |||
root formula to account for timeouts, receiver window, and delayed | account for timeouts, receiver window, and delayed ACKs. | |||
ACKs. This formula validated by many experiments is insensitive to | ||||
the TCP flavor. However, large portion of TCP flows are short-lived | ||||
short-transfers, for which delay is dominated by slow-start. | ||||
For the sake of the present discussion, we will assume that the TCP | For the sake of the present discussion, we will assume that the TCP | |||
throughput is expressed using the simplified SQRT formula. Using this | throughput is expressed using the simplified formula. Using this | |||
formula, the TCP throughput is inversely proportional to the RTT and | formula, the TCP throughput is proportional to the packet size and | |||
the square root of the drop probability: | inversely proportional to the RTT and the square root of the drop | |||
probability: | ||||
MSS 1 | MSS 1 | |||
B ~ C --- ------- | B ~ C --- ------- | |||
RTT sqrt(p) | RTT sqrt(p) | |||
where | where | |||
MSS is the TCP segment size (in bytes) | MSS is the TCP segment size (in bytes) | |||
RTT is the end-to-end round trip time of the TCP connection (in | RTT is the end-to-end round trip time of the TCP connection (in | |||
seconds) | seconds) | |||
p is the packet drop probability | p is the packet drop probability | |||
Observing that TCP is not suited for applications such as streaming | Neglecting the fact that the TCP rate linearly depends on it, | |||
media (since reliable in-order delivery and congestion control can | choosing the ideal packet size is a trade-off between high throughput | |||
cause arbitrarily long delays), the Datagram Congestion Control | (the larger a packet, the smaller the relative header overhead) and | |||
Protocol (DCCP) [RFC4340] has been designed. DCCP enables unreliable | low delay (the smaller a packet, the shorter the time that is needed | |||
but congestion-controlled datagram flow transmission avoiding the | until it is filled with data). Observing that TCP is not suited for | |||
arbitrary delays associated with TCP. DCCP is intended for | applications such as streaming media (since reliable in-order | |||
delivery and congestion control can cause arbitrarily long delays), | ||||
this trade-off has not usually been considered for TCP applications, | ||||
and the influence of the packet size on the sending rate is not | ||||
typically seen as a significant issue. | ||||
The situation is different for the Datagram Congestion Control | ||||
Protocol (DCCP) [RFC4340], which has been designed to enable | ||||
unreliable but congestion-controlled datagram transmission, avoiding | ||||
the arbitrary delays associated with TCP. DCCP is intended for | ||||
applications such as streaming media that can benefit from control | applications such as streaming media that can benefit from control | |||
over the tradeoffs between delay and reliable in-order delivery. | over the tradeoffs between delay and reliable in-order delivery. | |||
DCCP provides for a choice of modular congestion control mechanisms. | DCCP provides for a choice of modular congestion control mechanisms. | |||
DCCP uses Congestion Control Identifiers (CCIDs) to specify the | DCCP uses Congestion Control Identifiers (CCIDs) to specify the | |||
congestion control mechanism. Three profiles are currently specified: | congestion control mechanism. Three profiles are currently specified: | |||
- DCCP Congestion Control ID 2 (CCID 2) [RFC4341]: | - DCCP Congestion Control ID 2 (CCID 2) [RFC4341]: | |||
TCP-like Congestion Control. CCID 2 sends data using a close | TCP-like Congestion Control. CCID 2 sends data using a close | |||
variant of TCP's congestion control mechanisms, incorporating a | variant of TCP's congestion control mechanisms, incorporating a | |||
variant of SACK [RFC2018, RFC3517]. CCID 2 is suitable for senders | variant of SACK [RFC2018, RFC3517]. CCID 2 is suitable for senders | |||
skipping to change at page 14, line 18 | skipping to change at page 15, line 50 | |||
for bandwidth with TCP flows, but has a much lower variation of | for bandwidth with TCP flows, but has a much lower variation of | |||
throughput over time compared with TCP, making it more suitable for | throughput over time compared with TCP, making it more suitable for | |||
applications such as streaming media where a relatively smooth | applications such as streaming media where a relatively smooth | |||
sending rate is of importance. CCID 3 is appropriate for flows that | sending rate is of importance. CCID 3 is appropriate for flows that | |||
would prefer to minimize abrupt changes in the sending rate, | would prefer to minimize abrupt changes in the sending rate, | |||
including streaming media applications with small or moderate | including streaming media applications with small or moderate | |||
receiver buffering before playback. | receiver buffering before playback. | |||
- DCCP Congestion Control ID 4 [draft-ietf-ccid4-02.txt]: | - DCCP Congestion Control ID 4 [draft-ietf-ccid4-02.txt]: | |||
TFRC Small Packets (TFRC-SP) [RFC4828], a variant of TFRC | TFRC Small Packets (TFRC-SP) [RFC4828], a variant of TFRC | |||
mechanism has been designed for applications that exchange small | mechanism has been designed for applications that exchange small | |||
packets. The objective of TFRC-SP is to achieve the same | packets. The objective of TFRC-SP is to achieve the same bandwidth | |||
bandwidth in bps (bits per second) as a TCP flow using packets of | in bps (bits per second) as a TCP flow using packets of up to 1500 | |||
up to 1500 bytes. TFRC-SP enforces a minimum interval of 10 ms | bytes. TFRC-SP enforces a minimum interval of 10 ms between data | |||
between data packets to prevent a single flow from sending small | packets to prevent a single flow from sending small packets | |||
packets arbitrarily frequently. TFRC is a congestion control | arbitrarily frequently. TFRC is a congestion control mechanism for | |||
mechanism for unicast flows operating in a best-effort Internet | unicast flows operating in a best-effort Internet environment, and | |||
environment, and is designed for DCCP that controls the sending | is designed for DCCP that controls the sending rate based on a | |||
rate based on a stochastic Markov model for TCP Reno. CCID 4 has | stochastic Markov model for TCP Reno. CCID 4 has been designed to | |||
been designed to be used either by applications that use a small | be used either by applications that use a small fixed segment size, | |||
fixed segment size, or by applications that change their sending | or by applications that change their sending rate by varying the | |||
rate by varying the segment size. Because CCID 4 is intended for | segment size. Because CCID 4 is intended for applications that use | |||
applications that use a fixed small segment size, or that vary | a fixed small segment size, or that vary their segment size in | |||
their segment size in response to congestion, the transmit rate | response to congestion, the transmit rate derived from the TCP | |||
derived from the TCP throughput equation is reduced by a factor | throughput equation is reduced by a factor that accounts for packet | |||
that accounts for packet header size, as specified in [RFC4828]. | header size, as specified in [RFC4828]. | |||
The resulting open questions are: | The resulting open questions are: | |||
- Assess and experiment TFRC-SP variant: in some stable and | - How does TFRC-SP operate under various network conditions? | |||
unstable conditions, it appears that the congestion control | ||||
mechanisms for small packets must be further enhanced, tightly | ||||
coordinated, and controlled over wide-area networks. | ||||
- How to design congestion control so as to scale with packet | - How to design congestion control so as to scale with packet | |||
size (dependency of congestion algorithm on packet size)? Early | size (dependency of congestion algorithm on packet size)? Early | |||
assessment shows that packet size dependency should remain at | assessment shows that packet size dependency should remain at | |||
the transport layer. | the transport layer. | |||
Today, many network resources are designed so that packet processing | Today, many network resources are designed so that packet processing | |||
cannot be overloaded even for incoming loads at the maximum bit-rate | cannot be overloaded even for incoming loads at the maximum bit-rate | |||
of the line. If packet processing can handle sustained load r [packet | of the line. If packet processing can handle sustained load r [packet | |||
per second] and the minimum packet size is h [bit] (i.e. packet | per second] and the minimum packet size is h [bit] (i.e. packet | |||
headers with no payload), then a line rate of x [bit per second] will | headers with no payload), then a line rate of x [bit per second] will | |||
never be able to overload packet processing as long as x =< r.h. | never be able to overload packet processing as long as x <= r.h. | |||
However, realistic equipment is often designed to only cope with a | However, realistic equipment is often designed to only cope with a | |||
near-worst-case workload with a few larger packets in the mix, rather | near-worst-case workload with a few larger packets in the mix, rather | |||
than the worst-cast of all minimum size packets. In this case, x = | than the worst-cast of all minimum size packets. In this case, x = | |||
r.(h + e) for some small value of e. | r.(h + e) for some small value of e. | |||
Therefore, it is likely that most congestion seen on today's Internet | Therefore, it is likely that most congestion seen on today's Internet | |||
is due to an excess of bits rather than packets, although packet- | is due to an excess of bits rather than packets, although packet- | |||
congestion is not impossible for runs of small packets (e.g. TCP ACKs | congestion is not impossible for runs of small packets (e.g. TCP ACKs | |||
or DoS attacks with small UDP datagrams). | or DoS attacks with small UDP datagrams). | |||
This observation raises additional open issues: | This observation raises additional open issues: | |||
o) Will bit congestion remain prevalent? | - Will bit congestion remain prevalent? | |||
Being able to assume that congestion is generally due to excess bits | Being able to assume that congestion is generally due to excess bits | |||
not excess packets is a useful simplifying assumption in the design | not excess packets is a useful simplifying assumption in the design | |||
of congestion control protocols. Can we rely on this assumption into | of congestion control protocols. Can we rely on this assumption into | |||
the future? | the future? | |||
Over the last three decades, performance gains have mainly been | Over the last three decades, performance gains have mainly been | |||
through increased packet rates, not bigger packets. But if bigger | through increased packet rates, not bigger packets. But if bigger | |||
maximum segment sizes become more prevalent, tiny segments (e.g. | maximum segment sizes become more prevalent, tiny segments (e.g. | |||
ACKs) will still continue to be widely used---a widening /range/ of | ||||
ACKs) will still continue to be widely used - a widening range of | ||||
packet sizes. | packet sizes. | |||
The open question is thus whether packet processing rates (r) will | The open question is thus whether or not packet processing rates (r) | |||
keep up with growth in transmission rates (x). A superficial look at | will keep up with growth in transmission rates (x). A superficial | |||
Moore's Law type trends would suggest that processing (r) will | look at Moore's Law type trends would suggest that processing (r) | |||
continue to outstrip growth in transmission (x). But predictions | will continue to outstrip growth in transmission (x). But predictions | |||
based on actual knowledge of technology futures would be useful. | based on actual knowledge of technology futures would be useful. | |||
Another open question is whether there are likely to be more small | Another open question is whether there are likely to be more small | |||
packets in the average packet mix. If the answers to either of these | packets in the average packet mix. If the answers to either of these | |||
questions predict that packet congestion could become prevalent, | questions predict that packet congestion could become prevalent, | |||
congestion control protocols will have to be more complicated. | congestion control protocols will have to be more complicated. | |||
o) Confusable Causes of Drop | - Confusable Causes of Drop | |||
There is a considerable body of research on how to distinguish | There is a considerable body of research on how to distinguish | |||
whether packet drops are due to transmission corruption or to | whether packet drops are due to transmission corruption or to | |||
congestion. But the full list of confusable causes of drop is longer | congestion. But the full list of confusable causes of drop is longer | |||
and includes transmission loss, congestion loss (bit congestion and | and includes transmission loss, congestion loss (bit congestion and | |||
packet congestion), and policing loss | packet congestion), and policing loss. | |||
If congestion is due to excess bits, the bit rate should be reduced. | If congestion is due to excess bits, the bit rate should be reduced. | |||
If congestion is due to excess packets, the packet rate can be | If congestion is due to excess packets, the packet rate can be | |||
reduced without reducing the bit rate---by using larger packets. | reduced without reducing the bit rate - by using larger packets. | |||
However, if the transport cannot tell which of these causes led to a | However, if the transport cannot tell which of these causes led to a | |||
specific drop, its only safe response is to reduce bit rate. This is | specific drop, its only safe response is to reduce the bit rate. This | |||
why the Internet would be more complicated if packet-congestion were | is why the Internet would be more complicated if packet congestion | |||
prevalent, as reducing the bit rate also reduces the packet rate | were prevalent, as reducing the bit rate normally also reduces the | |||
(except in perverse cases), while reducing the packet rate doesn't | packet rate, while reducing the packet rate doesn't necessarily | |||
necessarily reduce the bit rate. | reduce the bit rate. | |||
Given distinguishing between transmission loss and congestion is | Given distinguishing between transmission loss and congestion is | |||
already an open issue (Section 3.2), if that problem is ever solved, | already an open issue (Section 3.2), if that problem is ever solved, | |||
a further open issue would be whether to standardize a solution that | a further open issue would be whether to standardize a solution that | |||
distinguishes all the above causes of drop, not just two of them. | distinguishes all the above causes of drop, not just two of them. | |||
Nonetheless, even if we find a way for network equipment to | Nonetheless, even if we find a way for network equipment to | |||
explicitly distinguish which sort of drop has occurred, we will never | explicitly distinguish which sort of drop has occurred, we will never | |||
be able to assume that such a smart AQM solution is deployed at every | be able to assume that such a smart AQM solution is deployed at every | |||
congestible resource throughout the Internet---at every higher layer | congestible resource throughout the Internet - at every higher layer | |||
device like firewalls, proxies, servers and at every lower layer | device like firewalls, proxies, servers and at every lower layer | |||
device like low-end home hubs, DSLAMs, WLAN cards, cellular base- | device like low-end home hubs, DSLAMs, WLAN cards, cellular base- | |||
stations and so on. Thus, transport protocols will always have to | stations and so on. Thus, transport protocols will always have to | |||
cope with drops due to unguessable causes, so we should always treat | cope with drops due to unguessable causes, so we should always treat | |||
AQM smarts as an optimization, not a given. | AQM smarts as an optimization, not a given. | |||
o) What does a congestion notification on a packet of a certain size | - What does a congestion notification on a packet of a certain size | |||
mean? | mean? | |||
The open issue here is whether a loss or explicit congestion mark | The open issue here is whether a loss or explicit congestion mark | |||
should be interpreted as a single congestion event irrespective of | should be interpreted as a single congestion event irrespective of | |||
the size of the packet lost or marked, or whether the strength of the | the size of the packet lost or marked, or whether the strength of the | |||
congestion notification is weighted by the size of the packet. This | congestion notification is weighted by the size of the packet. This | |||
issue is discussed at length in [Bri08], along with other aspects of | issue is discussed at length in [Bri08], along with other aspects of | |||
packet size and congestion control. | packet size and congestion control. | |||
[Bri08] makes the strong recommendation that network equipment should | [Bri08] makes the strong recommendation that network equipment should | |||
drop or mark packets with a probability independent of each specific | drop or mark packets with a probability independent of each specific | |||
packet's size, while congestion controls should respond to dropped or | packet's size, while congestion controls should respond to dropped or | |||
skipping to change at page 16, line 36 | skipping to change at page 18, line 17 | |||
congestion notification is weighted by the size of the packet. This | congestion notification is weighted by the size of the packet. This | |||
issue is discussed at length in [Bri08], along with other aspects of | issue is discussed at length in [Bri08], along with other aspects of | |||
packet size and congestion control. | packet size and congestion control. | |||
[Bri08] makes the strong recommendation that network equipment should | [Bri08] makes the strong recommendation that network equipment should | |||
drop or mark packets with a probability independent of each specific | drop or mark packets with a probability independent of each specific | |||
packet's size, while congestion controls should respond to dropped or | packet's size, while congestion controls should respond to dropped or | |||
marked packets in proportion to the packet's size. This issue is | marked packets in proportion to the packet's size. This issue is | |||
deferred to the Transport Area Working Group. | deferred to the Transport Area Working Group. | |||
o) Packet Size and Congestion Control Protocol Design | - Packet Size and Congestion Control Protocol Design | |||
If the above recommendation is correct---that the packet size of a | If the above recommendation is correct - that the packet size of a | |||
congestion notification should be taken into account when the | congestion notification should be taken into account when the | |||
transport reads, not when the network writes the notification---it | transport reads, not when the network writes the notification - it | |||
opens up a significant program of protocol engineering and re- | opens up a significant program of protocol engineering and re- | |||
engineering. Indeed, TCP does not take packet size into account when | engineering. Indeed, TCP does not take packet size into account when | |||
responding to losses or ECN. At present this is not a pressing | responding to losses or ECN. At present this is not a pressing | |||
problem because use of 1500B data segments is very prevalent for TCP | problem because use of 1500B data segments is very prevalent for TCP | |||
and the range of alternative segment sizes is not large. However, we | and the range of alternative segment sizes is not large. However, we | |||
should design the Internet's protocols so they will scale with packet | should design the Internet's protocols so they will scale with packet | |||
size, so an open issue is whether we should evolve TCP, or expect new | size, so an open issue is whether we should evolve TCP, or expect new | |||
protocols to take over. | protocols to take over. | |||
As we continue to standardize new congestion control protocols, we | As we continue to standardize new congestion control protocols, we | |||
skipping to change at page 18, line 34 | skipping to change at page 20, line 18 | |||
responsive and efficient congestion control technique in order to | responsive and efficient congestion control technique in order to | |||
prevent impacting normally behaving Internet traffic. However, it is | prevent impacting normally behaving Internet traffic. However, it is | |||
still an open question how the corresponding mechanisms in the data | still an open question how the corresponding mechanisms in the data | |||
and control planes have to be designed. | and control planes have to be designed. | |||
3.5 Challenge 5: Multi-domain Congestion Control | 3.5 Challenge 5: Multi-domain Congestion Control | |||
Transport protocols such as TCP operate over the Internet that is | Transport protocols such as TCP operate over the Internet that is | |||
divided into autonomous systems. These systems are characterized by | divided into autonomous systems. These systems are characterized by | |||
their heterogeneity as IP networks are realized by a multitude of | their heterogeneity as IP networks are realized by a multitude of | |||
technologies. Variety of conditions and their variations leads to | technologies. The variety of conditions and their variations leads to | |||
correlation effects between policers that regulate traffic against | correlation effects between policers that regulate traffic against | |||
certain conformance criteria. | certain conformance criteria. | |||
With the advent of techniques allowing for early detection of | With the advent of techniques allowing for early detection of | |||
congestion, packet loss is no longer the sole metric of congestion. | congestion, packet loss is no longer the sole metric of congestion. | |||
ECN (Explicit Congestion Notification) marks packets - set by active | ECN (Explicit Congestion Notification) marks packets - set by active | |||
queue management techniques - to convey congestion information trying | queue management techniques - to convey congestion information trying | |||
to prevent packet losses (packet loss and the number of packets | to prevent packet losses (packet loss and the number of packets | |||
marked gives an indication of the level of congestion). Using TCP | marked gives an indication of the level of congestion). Using TCP | |||
ACKs to feed back that information allows the hosts to realign their | ACKs to feed back that information allows the hosts to realign their | |||
skipping to change at page 19, line 35 | skipping to change at page 21, line 19 | |||
exchange some limited amount of information about their internal | exchange some limited amount of information about their internal | |||
state (topology hiding principle), even though having more precise | state (topology hiding principle), even though having more precise | |||
information could be highly beneficial for congestion control. The | information could be highly beneficial for congestion control. The | |||
future evolution of the Internet inter-domain operation has to show | future evolution of the Internet inter-domain operation has to show | |||
whether more multi-domain information exchange can be realized. | whether more multi-domain information exchange can be realized. | |||
3.6 Challenge 6: Precedence for Elastic Traffic | 3.6 Challenge 6: Precedence for Elastic Traffic | |||
Traffic initiated by so-called elastic applications adapt to the | Traffic initiated by so-called elastic applications adapt to the | |||
available bandwidth using feedback about the state of the network. | available bandwidth using feedback about the state of the network. | |||
There are two types of flows: short-lived flows and flows with an | For all these flows the application dynamically adjusts the data | |||
expected average throughput. For all those flows the application | generation rate. Examples encompass short-lived elastic traffic | |||
dynamically adjusts the data generation rate. Examples of short-lived | including HTTP and instant messaging traffic as well as long file | |||
elastic traffic include HTTP and instant messaging traffic. Examples | transfers with FTP. In brief, elastic data applications can show | |||
of average throughput requiring elastic traffic are FTP and email. In | extremely different requirements and traffic characteristics. | |||
brief, elastic data applications can show extremely different | ||||
requirements and traffic characteristics. | ||||
The idea to distinguish several classes of best-effort traffic types | The idea to distinguish several classes of best-effort traffic types | |||
is rather old, since it would be beneficial to address the relative | is rather old, since it would be beneficial to address the relative | |||
delay sensitivities of different elastic applications. The notion of | delay sensitivities of different elastic applications. The notion of | |||
traffic precedence was already introduced in [RFC791], and it was | traffic precedence was already introduced in [RFC791], and it was | |||
broadly defined as "An independent measure of the importance of this | broadly defined as "An independent measure of the importance of this | |||
datagram." | datagram." | |||
For instance, low precedence traffic should experience lower average | For instance, low precedence traffic should experience lower average | |||
throughput than higher precedence traffic. Several questions arise | throughput than higher precedence traffic. Several questions arise | |||
here: what is the meaning of "relative"? What is the role of the | here: what is the meaning of "relative"? What is the role of the | |||
Transport Layer? | Transport Layer? | |||
The preferential treatment of higher precedence traffic with | The preferential treatment of higher precedence traffic with | |||
appropriate congestion control mechanisms is still an open issue that | appropriate congestion control mechanisms is still an open issue that | |||
may, depending on the proposed solution, impact both the host and the | may, depending on the proposed solution, impact both the host and the | |||
network precedence awareness, and thereby congestion control. | network precedence awareness, and thereby congestion control. | |||
[RFC2990] points out that interactions between congestion control and | ||||
DiffServ [RFC2475] have yet to be addressed, and this statement is | ||||
still valid at the time of writing. | ||||
TODO: | There is also still work to be performed regarding lower precedence | |||
- Discuss existing work on low-priority flows – why isn't this stuff | traffic – data transfers which are useful, yet not important enough | |||
used? That's an open issue, interesting things could be done with it! | to significantly impair any other traffic. Examples of applications | |||
that could make use of such traffic are web caches and web browsers | ||||
- Discuss DiffServ [RFC2474] [RFC2475] related aspects with | (e.g. for pre-fetching) as well as peer-to-peer applications. There | |||
congestion control. | are proposals for achieving low precedence on a pure end-to-end basis | |||
(e.g. TCP-LP [Kuzmanovic]), and there is a specification for | ||||
achieving it via router mechanisms [RFC3662]. It seems, however, that | ||||
such traffic is still hardly used, and sending lower precedence data | ||||
is not yet a common service on the Internet. | ||||
3.7 Challenge 7: Misbehaving Senders and Receivers | 3.7 Challenge 7: Misbehaving Senders and Receivers | |||
In the current Internet architecture, congestion control depends on | In the current Internet architecture, congestion control depends on | |||
parties acting against their own interests. It is not in a receiver's | parties acting against their own interests. It is not in a receiver's | |||
interest to honestly return feedback about congestion on the path, | interest to honestly return feedback about congestion on the path, | |||
effectively requesting a slower transfer. It is not in the sender's | effectively requesting a slower transfer. It is not in the sender's | |||
interest to reduce its rate in response to congestion if it can rely | interest to reduce its rate in response to congestion if it can rely | |||
on others to do so. Additionally, networks may have strategic reasons | on others to do so. Additionally, networks may have strategic reasons | |||
to make other networks appear congested. | to make other networks appear congested. | |||
skipping to change at page 21, line 26 | skipping to change at page 23, line 14 | |||
Note also that self-restraint is disappearing from the Internet. So, | Note also that self-restraint is disappearing from the Internet. So, | |||
it may no longer be sufficient to rely on developers/users | it may no longer be sufficient to rely on developers/users | |||
voluntarily submitting themselves to congestion control. As main | voluntarily submitting themselves to congestion control. As main | |||
consequence, mechanisms to enforce fairness (see Section 2.3) need to | consequence, mechanisms to enforce fairness (see Section 2.3) need to | |||
have more emphasis within the research agenda. | have more emphasis within the research agenda. | |||
3.8 Other challenges | 3.8 Other challenges | |||
This section provides additional challenges and open research issues | This section provides additional challenges and open research issues | |||
that are not (at this point in time) deemed sufficiently large or of | that are not (at this point in time) deemed very large or of | |||
different nature compared to the main challenges depicted since so | different nature compared to the main challenges depicted since so | |||
far. | far. | |||
Note that this section may be complemented in future release of this | Note that this section may be complemented in future release of this | |||
document by topics discussed during the last ICCRG meeting co-located | document by topics discussed during the last ICCRG meeting, co- | |||
with PFLDNet 2008 International Workshop. Topics of interest include | located with PFLDNet 2008 International Workshop. Topics of interest | |||
but not limited to multipath congestion control and congestion | include multipath congestion control, and congestion control for | |||
control for multimedia codecs that only support certain set of data | multimedia codecs that only support certain set of data rates. | |||
rates. | ||||
3.8.1 RTT estimation | 3.8.1 RTT estimation | |||
Several congestion control schemes have to precisely know the round- | Several congestion control schemes have to precisely know the round- | |||
trip time (RTT) of a path. The RTT is a measure of the current delay | trip time (RTT) of a path. The RTT is a measure of the current delay | |||
on a network. It is defined as the delay between the sending of a | on a network. It is defined as the delay between the sending of a | |||
packet and the reception of a corresponding response, which is echoed | packet and the reception of a corresponding response, which is echoed | |||
back immediately by receiver upon receipt of the packet. This | back immediately by receiver upon receipt of the packet. This | |||
corresponds to the sum of the one-way delay of the packet and the | corresponds to the sum of the one-way delay of the packet and the | |||
(potentially different) one-way delay of the response. Furthermore, | (potentially different) one-way delay of the response. Furthermore, | |||
skipping to change at page 23, line 16 | skipping to change at page 24, line 52 | |||
frequent RTT measurements with timestamps, certain implementations | frequent RTT measurements with timestamps, certain implementations | |||
modify the weight factors (e. g., [SK02]). There are also proposals | modify the weight factors (e. g., [SK02]). There are also proposals | |||
for more sophisticated estimators, such as Kalman filters or | for more sophisticated estimators, such as Kalman filters or | |||
estimators that utilize mainly peak values. | estimators that utilize mainly peak values. | |||
However, open questions concerning RTT estimation in the Internet | However, open questions concerning RTT estimation in the Internet | |||
remain: | remain: | |||
- Optimal measurement frequency: Currently, there is no common | - Optimal measurement frequency: Currently, there is no common | |||
understanding of the right time scale of RTT measurement. In | understanding of the right time scale of RTT measurement. In | |||
particular, the implications of rather frequent measurements (e. g., | particular, the necessity of rather frequent measurements | |||
per packet) are not well understood. There is some empirical evidence | (e.g., per packet) is not well understood. There is some empirical | |||
that frequent sampling may not have a significant benefit [Allman99]. | evidence that such frequent sampling may not have a significant | |||
benefit [Allman99]. | ||||
- Filter design: A closely related question is how to design good | - Filter design: A closely related question is how to design good | |||
filters for the measured samples. The existing algorithms are known | filters for the measured samples. The existing algorithms are known | |||
to be robust, but they are far from being perfect. The fundamental | to be robust, but they are far from being perfect. The fundamental | |||
problem is that there is no single set of RTT values that could | problem is that there is no single set of RTT values that could | |||
characterize the Internet as a whole, i. e., it is hard to define a | characterize the Internet as a whole, i. e., it is hard to define a | |||
design target. | design target. | |||
- Default values: RTT estimators can fail in certain scenarios, e. | - Default values: RTT estimators can fail in certain scenarios, e. | |||
g., when any feedback is missing. In this case, default values have | g., when any feedback is missing. In this case, default values have | |||
skipping to change at page 24, line 21 | skipping to change at page 26, line 9 | |||
4. Security Considerations | 4. Security Considerations | |||
Misbehavior may be driven by pure malice, or malice may in turn be | Misbehavior may be driven by pure malice, or malice may in turn be | |||
driven by wider selfish interests, e.g. using distributed denial of | driven by wider selfish interests, e.g. using distributed denial of | |||
service (DDoS) attacks to gain rewards by extortion [RFC4948]. DDoS | service (DDoS) attacks to gain rewards by extortion [RFC4948]. DDoS | |||
attacks are possible both because of vulnerabilities in operating | attacks are possible both because of vulnerabilities in operating | |||
systems and because the Internet delivers packets without requiring | systems and because the Internet delivers packets without requiring | |||
congestion control. | congestion control. | |||
To date, compliance with congestion control rules and being fair | ||||
requires end points to cooperate. The possibility of uncooperative | ||||
behavior can be regarded as a security issue; its implications are | ||||
discussed throughout these documents in a scattered fashion. | ||||
Currently the focus of the research agenda against denial of service | Currently the focus of the research agenda against denial of service | |||
is about identifying attack packets, attacking machines and networks | is about identifying attack packets, attacking machines and networks | |||
hosting them, with a particular focus on mitigating source address | hosting them, with a particular focus on mitigating source address | |||
spoofing. But if mechanisms to enforce congestion control fairness | spoofing. But if mechanisms to enforce congestion control fairness | |||
were robust to both selfishness and malice [Bri06] they would also | were robust to both selfishness and malice [Bri06] they would also | |||
naturally mitigate denial of service, which can be considered (from | naturally mitigate denial of service, which can be considered (from | |||
the perspective of well-behaving Internet user) as a congestion | the perspective of well-behaving Internet user) as a congestion | |||
control enforcement problem. | control enforcement problem. | |||
5. Contributors | 5. Contributors | |||
This document is the result of a collective effort to which the | This document is the result of a collective effort to which the | |||
following people have contributed: | following people have contributed: | |||
Dimitri Papadimitriou <Dimitri.Papadimitriou@alcatel-lucent.be> | Dimitri Papadimitriou <dimitri.papadimitriou@alcatel-lucent.be> | |||
Michael Welzl <michael.welzl@uibk.ac.at> | Michael Welzl <michael.welzl@uibk.ac.at> | |||
Wesley Eddy <weddy@grc.nasa.gov> | Wesley Eddy <weddy@grc.nasa.gov> | |||
Bela Berde <bela.berde@gmx.de> | Bela Berde <bela.berde@gmx.de> | |||
Paulo Loureiro <loureiro.pjg@gmail.com> | Paulo Loureiro <loureiro.pjg@gmail.com> | |||
Chris Christou <christou_chris@bah.com> | Chris Christou <christou_chris@bah.com> | |||
Michael Scharf <michael.scharf@ikr.uni-stuttgart.de> | Michael Scharf <michael.scharf@ikr.uni-stuttgart.de> | |||
6. References | 6. References | |||
6.1 Normative References | 6.1 Normative References | |||
skipping to change at page 25, line 11 | skipping to change at page 27, line 5 | |||
[RFC793] Postel, J., "Transmission Control Protocol", STD 7, | [RFC793] Postel, J., "Transmission Control Protocol", STD 7, | |||
RFC793, September 1981. | RFC793, September 1981. | |||
[RFC896] Nagle, J., "Congestion Control in IP/TCP", RFC 896, | [RFC896] Nagle, J., "Congestion Control in IP/TCP", RFC 896, | |||
January 1984. | January 1984. | |||
[RFC1323] Jacobson, V., Braden, R., Borman, D., "TCP Extensions for | [RFC1323] Jacobson, V., Braden, R., Borman, D., "TCP Extensions for | |||
High Performance", RFC 1323, May 1992. | High Performance", RFC 1323, May 1992. | |||
[RFC1958] B. Carpenter, Ed., “Architectural Principles of the | ||||
[RFC2309] Braden, B., et al., "Recommendations on queue management | [RFC2309] Braden, B., et al., "Recommendations on queue management | |||
and congestion avoidance in the Internet", RFC 2309, | and congestion avoidance in the Internet", RFC 2309, | |||
April 1998. | April 1998. | |||
[RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 1633, | [RFC2003] Perkins, C., "IP Encapsulation within IP", RFC 1633, | |||
October 1996. | October 1996. | |||
[RFC2474] Nichols, K., Blake, S. Baker, F. and D. Black, | [RFC2474] Nichols, K., Blake, S. Baker, F. and D. Black, | |||
"Definition of the Differentiated Services Field (DS | "Definition of the Differentiated Services Field (DS | |||
Field) in the IPv4 and IPv6 Headers", RFC 2474, December | Field) in the IPv4 and IPv6 Headers", RFC 2474, December | |||
skipping to change at page 25, line 36 | skipping to change at page 27, line 31 | |||
[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. | |||
[RFC2988] Paxson, V. and Allman, M., "Computing TCP's | [RFC2988] Paxson, V. and Allman, M., "Computing TCP's | |||
Retransmission Timer", RFC 2988, Nov. 2000 | Retransmission Timer", RFC 2988, Nov. 2000 | |||
[RFC2990] Huston, G., "Next Steps for the IP QoS Architecture", | ||||
RFC 2990, November 2000. | ||||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
of Explicit Congestion Notification (ECN) to IP", | of Explicit Congestion Notification (ECN) to IP", | |||
RFC 3168, September 2001. | RFC 3168, September 2001. | |||
[RFC3448] Handley, M., Floyd, S., Padhye, J., and J. Widmer, "TCP | [RFC3448] Handley, M., Floyd, S., Padhye, J., and J. Widmer, "TCP | |||
Friendly Rate Control (TFRC): Protocol Specification", | Friendly Rate Control (TFRC): Protocol Specification", | |||
RFC 3448, January 2003. | RFC 3448, January 2003. | |||
[RFC3540] N. Spring, D. Wetherall, "Robust Explicit Congestion | [RFC3540] N. Spring, D. Wetherall, "Robust Explicit Congestion | |||
Notification (ECN) Signaling with Nonces", RFC 3540, June | Notification (ECN) Signaling with Nonces", RFC 3540, June | |||
2003. | 2003. | |||
[RFC3662] Roland Bless, Kathleen Nichols, Klaus Wehrle, "A Lower | ||||
Effort Per-Domain Behavior for Differentiated Services", | ||||
RFC 3662, December 2003. | ||||
[RFC3714] S. Floyd, Ed., J. Kempf, Ed. "IAB Concerns Regarding | [RFC3714] S. Floyd, Ed., J. Kempf, Ed. "IAB Concerns Regarding | |||
Congestion Control for Voice Traffic in the Internet", | Congestion Control for Voice Traffic in the Internet", | |||
RFC 3714, March 2004. | RFC 3714, March 2004. | |||
[RFC3985] Bryant, S. and P. Pate, "Pseudo Wire Emulation Edge-to- | [RFC3985] Bryant, S. and P. Pate, "Pseudo Wire Emulation Edge-to- | |||
Edge (PWE3) Architecture", RFC 3985, March 2005. | Edge (PWE3) Architecture", RFC 3985, March 2005. | |||
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram | [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram | |||
Congestion Control Protocol (DCCP)", RFC 4340, March | Congestion Control Protocol (DCCP)", RFC 4340, March | |||
2006. | 2006. | |||
skipping to change at page 26, line 33 | skipping to change at page 28, line 40 | |||
Roadmap for Transmission Control Protocol (TCP) | Roadmap for Transmission Control Protocol (TCP) | |||
Specification Documents", RFC 4614, September 2006. | Specification Documents", RFC 4614, September 2006. | |||
[RFC4782] Floyd, S., Allman, M., Jain, A., and P. Sarolahti, | [RFC4782] Floyd, S., Allman, M., Jain, A., and P. Sarolahti, | |||
"Quick-Start for TCP and IP", RFC 4782, Jan. 2007. | "Quick-Start for TCP and IP", RFC 4782, Jan. 2007. | |||
[RFC4948] L. Andersson, E. Davies, L. Zhang, "Report from the IAB | [RFC4948] L. Andersson, E. Davies, L. Zhang, "Report from the IAB | |||
workshop on Unwanted Traffic March 9-10, 2006", RFC 4948, | workshop on Unwanted Traffic March 9-10, 2006", RFC 4948, | |||
August 2007. | August 2007. | |||
[RFC5033] S. Floyd, M. Allman, "Specifying New Congestion Control | ||||
Algorithms ", RFC 5033, Aug. 2007. | ||||
6.2 Informative References | 6.2 Informative References | |||
[Allman99] Allman, M. and V. Paxson, "On Estimating End-to-End | [Allman99] Allman, M. and V. Paxson, "On Estimating End-to-End | |||
Network Path Properties", Proc. SIGCOMM, Sept. 99. | Network Path Properties", Proc. SIGCOMM, Sept. 99. | |||
[Andrew00] L. Andrew, B. Wydrowski and S. Low, "An Example of | [Andrew00] L. Andrew, B. Wydrowski and S. Low, "An Example of | |||
Instability in XCP", Manuscript available at | Instability in XCP", Manuscript available at | |||
<http://netlab.caltech.edu/maxnet/XCP_instability.pdf> | <http://netlab.caltech.edu/maxnet/XCP_instability.pdf> | |||
[Ath01] S. Athuraliya, S. Low, V. Li, and Q. Yin, "REM: Active | [Ath01] S. Athuraliya, S. Low, V. Li, and Q. Yin, "REM: Active | |||
queue management", IEEE Network Magazine, vol.15, no.3, | queue management", IEEE Network Magazine, vol.15, no.3, | |||
pp. 48-53, May 2001. | pp. 48-53, May 2001. | |||
[BALAN01] Balan, R. K., Lee, B.P., Kumar, K.R.R., Jacob, L., Seah, | [BALAN01] Balan, R. K., Lee, B.P., Kumar, K.R.R., Jacob, L., Seah, | |||
W.K.G., Ananda, A.L., "TCP HACK: TCP Header Checksum | W.K.G., Ananda, A.L., "TCP HACK: TCP Header Checksum | |||
Option to Improve Performance over Lossy Links", | Option to Improve Performance over Lossy Links", | |||
Proceedings of IEEE Infocom, Anchorage, Alaska, April | Proceedings of IEEE Infocom, Anchorage, Alaska, April | |||
2001. | 2001. | |||
skipping to change at page 27, line 11 | skipping to change at page 29, line 20 | |||
Option to Improve Performance over Lossy Links", | Option to Improve Performance over Lossy Links", | |||
Proceedings of IEEE Infocom, Anchorage, Alaska, April | Proceedings of IEEE Infocom, Anchorage, Alaska, April | |||
2001. | 2001. | |||
[Bonald00] T. Bonald, M. May, and J.-C. Bolot, "Analytic Evaluation | [Bonald00] T. Bonald, M. May, and J.-C. Bolot, "Analytic Evaluation | |||
of RED Performance," In Proceedings of IEEE INFOCOM, Tel | of RED Performance," In Proceedings of IEEE INFOCOM, Tel | |||
Aviv, Israel, March 2000. | Aviv, Israel, March 2000. | |||
[Bri07] Bob Briscoe, "Flow Rate Fairness: Dismantling a Religion" | [Bri07] Bob Briscoe, "Flow Rate Fairness: Dismantling a Religion" | |||
ACM SIGCOMM Computer Communication Review 37(2) 63--74 | ACM SIGCOMM Computer Communication Review 37(2) 63--74 | |||
(April 2007). | (April 2007) | |||
[Bri06] Bob Briscoe, "Using Self-interest to Prevent Malice; | [Bri06] Bob Briscoe, "Using Self-interest to Prevent Malice; | |||
Fixing the Denial of Service Flaw of the Internet," | Fixing the Denial of Service Flaw of the Internet," | |||
Workshop on the Economics of Securing the Information | Workshop on the Economics of Securing the Information | |||
Infrastructure (Oct 2006) | Infrastructure (Oct 2006) | |||
<http://wesii.econinfosec.org/draft.php?paper_id=19> | <http://wesii.econinfosec.org/draft.php?paper_id=19> | |||
[Chester04] Chesterfield, J., Chakravorty, R., Banerjee, S., | [Chester04] Chesterfield, J., Chakravorty, R., Banerjee, S., | |||
Rodriguez, P., Pratt, I. and Crowcroft, J., "Transport | Rodriguez, P., Pratt, I. and Crowcroft, J., "Transport | |||
level optimisations for streaming media over wide-area | level optimisations for streaming media over wide-area | |||
skipping to change at page 27, line 33 | skipping to change at page 29, line 42 | |||
[Chiu89] D. M. Chiu and R. Jain, "Analysis of the increase and | [Chiu89] D. M. Chiu and R. Jain, "Analysis of the increase and | |||
decrease algorithms for congestion avoidance in computer | decrease algorithms for congestion avoidance in computer | |||
networks", Computer Networks and ISDN Systems, vol. 17, | networks", Computer Networks and ISDN Systems, vol. 17, | |||
pp. 1-14, 1989. | pp. 1-14, 1989. | |||
[Clark98] D. Clark and W. Fang, "Explicit Allocation of Best-Effort | [Clark98] D. Clark and W. Fang, "Explicit Allocation of Best-Effort | |||
Packet Delivery Service," IEEE/ACM Transactions on | Packet Delivery Service," IEEE/ACM Transactions on | |||
Networking, vol.6, no.4, pp.362-373, August 1998 | Networking, vol.6, no.4, pp.362-373, August 1998 | |||
[Dukki06] N. Dukkipati and N. McKeown, "Why Flow-Completion Time is | ||||
the Right Metric for Congestion Control" ACM SIGCOMM | ||||
Computer Communication Review Volume 36, issue 1, Jan. | ||||
2006. | ||||
[Floyd93] S. Floyd and V. Jacobson, “Random early detection | [Floyd93] S. Floyd and V. Jacobson, “Random early detection | |||
gateways for congestion avoidance,” IEEE/ACM Trans. on | gateways for congestion avoidance,” IEEE/ACM Trans. on | |||
Networking, vol.1, no.4, pp. 397-413, Aug. 1993. | Networking, vol.1, no.4, pp. 397-413, Aug. 1993. | |||
[Falk07] A. Falk et al "Specification for the Explicit Control | [Falk07] A. Falk et al "Specification for the Explicit Control | |||
Protocol (XCP)", Work in Progress, draft-falk-xcp-spec- | Protocol (XCP)", Work in Progress, draft-falk-xcp-spec- | |||
03.txt, July 2007. | 03.txt, July 2007. | |||
[Firoiu00] V. Firoiu and M. Borden, "A Study of Active Queue | [Firoiu00] V. Firoiu and M. Borden, "A Study of Active Queue | |||
Management for Congestion Control," In Proceedings of | Management for Congestion Control," In Proceedings of | |||
skipping to change at page 28, line 42 | skipping to change at page 31, line 10 | |||
[Keshav] S. Keshav, "What is congestion and what is congestion | [Keshav] S. Keshav, "What is congestion and what is congestion | |||
control", Presentation at IRTF ICCRG Workshop, Pfldnet | control", Presentation at IRTF ICCRG Workshop, Pfldnet | |||
2007, (Los Angeles), California, February 2007. | 2007, (Los Angeles), California, February 2007. | |||
[Krishnan04] R. Krishnan, J. Sterbenz, W. Eddy, C. Partridge, and M. | [Krishnan04] R. Krishnan, J. Sterbenz, W. Eddy, C. Partridge, and M. | |||
Allman, "Explicit Transport Error Notification (ETEN) for | Allman, "Explicit Transport Error Notification (ETEN) for | |||
Error-Prone Wireless and Satellite Networks", Computer | Error-Prone Wireless and Satellite Networks", Computer | |||
Networks, vol.46, no.3, October 2004. | Networks, vol.46, no.3, October 2004. | |||
[Kuzmanovic] A. Kuzmanovic and E. W. Knightly, "TCP-LP: A Distributed | ||||
Algorithm for Low Priority Data Transfer", Proceedings of | ||||
IEEE INFOCOM 2003, San Francisco, CA, April 2003. | ||||
[Low05] S. Low, L. Andrew and B. Wydrowski. "Understanding XCP: | [Low05] S. Low, L. Andrew and B. Wydrowski. "Understanding XCP: | |||
equilibrium and fairness", Proceedings of IEEE Infocom, | equilibrium and fairness", Proceedings of IEEE Infocom, | |||
Miami, USA, March 2005. | Miami, USA, March 2005. | |||
[Low03.2] S. Low, F. Paganini, J. Wang, and J. Doyle, "Linear | [Low03.2] S. Low, F. Paganini, J. Wang, and J. Doyle, "Linear | |||
stability of TCP/RED and a scalable control", Computer | stability of TCP/RED and a scalable control", Computer | |||
Networks Journal, vol.43, no.5, pp.633-647, December | Networks Journal, vol.43, no.5, pp.633-647, December | |||
2003. | 2003. | |||
[Low03.1] S. Low, "A duality model of TCP and queue management | [Low03.1] S. Low, "A duality model of TCP and queue management | |||
algorithms", IEEE/ACM Trans. on Networking, vol.11, no.4, | algorithms", IEEE/ACM Trans. on Networking, vol.11, no.4, | |||
pp.525–536, August 2003. | pp.525–536, August 2003. | |||
[Low02] S. Low, F. Paganini, J. Wang, S. Adlakha, and J. C. | [Low02] S. Low, F. Paganini, J. Wang, S. Adlakha, and J. C. | |||
Doyle, "Dynamics of TCP/RED and a Scalable Control", | Doyle, "Dynamics of TCP/RED and a Scalable Control", | |||
Proceedings of IEEE Infocom, New York, USA, June 2002. | Proceedings of IEEE Infocom, New York, USA, June 2002. | |||
[Mascolo01] Saverio Mascolo, Claudio Casetti, Mario Gerla, M. Y. | ||||
Sanadidi, Ren Wang, "TCP westwood: Bandwidth estimation | ||||
for enhanced transport over wireless links", Proceedings | ||||
of MOBICOM 2001, pp. 287-297. | ||||
[Moors02] T. Moors, “A critical review of "End-to-end arguments in | ||||
system design"”, Proc. International Conference on | ||||
Communications (ICC), Apr./May 2002. | ||||
[MKMV95] MacKie-Mason, J. and H. Varian, "Pricing Congestible | [MKMV95] MacKie-Mason, J. and H. Varian, "Pricing Congestible | |||
Network Resources", IEEE Journal on Selected Areas in | Network Resources", IEEE Journal on Selected Areas in | |||
Communications, `Advances in the Fundamentals of | Communications, `Advances in the Fundamentals of | |||
Networking' 13(7)1141--1149, 1995, <http:// | Networking' 13(7)1141--1149, 1995, <http:// | |||
www.sims.berkeley.edu/~hal/Papers/ | www.sims.berkeley.edu/~hal/Papers/ | |||
pricing-congestible.pdf>. | pricing-congestible.pdf>. | |||
[Padye98] Padhye, J., Firoiu, V., Towsley, D., Kurose, J., Modeling | [Padhye98] Padhye, J., Firoiu, V., Towsley, D., Kurose, J., Modeling | |||
TCP Throughput: A Simple Model and Its Empirical | TCP Throughput: A Simple Model and Its Empirical | |||
Validation, UMASS CMPSCI Tech Report TR98-008, Feb. 1998. | Validation, UMASS CMPSCI Tech Report TR98-008, Feb. 1998. | |||
[Pan00] R. Pan, B. Prabhakar, and K. Psounis, "CHOKe: a stateless | [Pan00] R. Pan, B. Prabhakar, and K. Psounis, "CHOKe: a stateless | |||
AQM scheme for approximating fair bandwidth allocation", | AQM scheme for approximating fair bandwidth allocation", | |||
In Proceedings of IEEE Infocom, Tel Aviv, Israel, March | In Proceedings of IEEE Infocom, Tel Aviv, Israel, March | |||
2000. | 2000. | |||
[Rossi06] Rossi, M., "Evaluating TCP with Corruption Notification | [Rossi06] Rossi, M., "Evaluating TCP with Corruption Notification | |||
in an IEEE 802.11 Wireless LAN", master thesis, | in an IEEE 802.11 Wireless LAN", master thesis, | |||
University of Innsbruck, November 2006. Available from | University of Innsbruck, November 2006. Available from | |||
http://www.welzl.at/research/projects/corruption/ | http://www.welzl.at/research/projects/corruption/ | |||
[Sarola02] Sarolahti, P. and Kuznetsov, A., "Congestion Control in | [Sarola02] Sarolahti, P. and Kuznetsov, A., "Congestion Control in | |||
Linux TCP", "Proc. USENIX Annual Technical Conference", | Linux TCP", "Proc. USENIX Annual Technical Conference", | |||
June 2002. | ||||
[Savage99] Savage, S., Wetherall, D., and T. Anderson, "TCP | [Savage99] Savage, S., Wetherall, D., and T. Anderson, "TCP | |||
Congestion Control with a Misbehaving Receiver," in ACM | Congestion Control with a Misbehaving Receiver," in ACM | |||
SIGCOMM Computer Communication Review (1999). | SIGCOMM Computer Communication Review (1999). | |||
[Saltzer84] Saltzer, J., Reed, D., and Clark, D. D. | ||||
End-to-end arguments in system design. ACM | ||||
Transactions on Computer Systems 2, 4 (Nov. 1984). | ||||
[TRILOGY] "Trilogy Project", European Commission Seventh Framework | [TRILOGY] "Trilogy Project", European Commission Seventh Framework | |||
Program Contract Number: INFSO-ICT-216372 | Program Contract Number: INFSO-ICT-216372 | |||
<http://www.trilogy-project.org> | <http://www.trilogy-project.org> | |||
[Welzl03] M. Welzl, "Scalable Performance Signalling and Congestion | ||||
Avoidance", Springer, August 2003. ISBN 1-4020-7570-7. | ||||
[Welzl08] M. Welzl, M. Rossi, A. Fumagalli, and M. Tacca, " TCP/IP | [Welzl08] M. Welzl, M. Rossi, A. Fumagalli, and M. Tacca, " TCP/IP | |||
over IEEE 802.11b WLAN: the Challenge of Harnessing | over IEEE 802.11b WLAN: the Challenge of Harnessing | |||
Known-Corrupt Data", In Proceedings of IEEE ICC 2008, 19- | Known-Corrupt Data", In Proceedings of IEEE ICC 2008, 19- | |||
23 May 2008, Beijing, China. | 23 May 2008, Beijing, China. | |||
[Zhang03] H. Zhang, C. Hollot, D. Towsley, and V. Misra. "A Self- | [Zhang03] H. Zhang, C. Hollot, D. Towsley, and V. Misra. "A Self- | |||
Tuning Structure for Adaptation in TCP/AQM Networks", | Tuning Structure for Adaptation in TCP/AQM Networks", | |||
SIGMETRICS’03, June 10–14, 2003, San Diego, California, | SIGMETRICS’03, June 10–14, 2003, San Diego, California, | |||
USA. | USA. | |||
End of changes. 72 change blocks. | ||||
202 lines changed or deleted | 327 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/ |