draft-ietf-aqm-recommendation-04.txt   draft-ietf-aqm-recommendation-05.txt 
Network Working Group F. Baker, Ed. Network Working Group F. Baker, Ed.
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Obsoletes: 2309 (if approved) G. Fairhurst, Ed. Obsoletes: 2309 (if approved) G. Fairhurst, Ed.
Intended status: Best Current Practice University of Aberdeen Intended status: Best Current Practice University of Aberdeen
Expires: November 15, 2014 May 14, 2014 Expires: December 24, 2014 June 24, 2014
IETF Recommendations Regarding Active Queue Management IETF Recommendations Regarding Active Queue Management
draft-ietf-aqm-recommendation-04 draft-ietf-aqm-recommendation-05
Abstract Abstract
This memo presents recommendations to the Internet community This memo presents recommendations to the Internet community
concerning measures to improve and preserve Internet performance. It concerning measures to improve and preserve Internet performance. It
presents a strong recommendation for testing, standardization, and presents a strong recommendation for testing, standardization, and
widespread deployment of active queue management (AQM) in network widespread deployment of active queue management (AQM) in network
devices, to improve the performance of today's Internet. It also devices, to improve the performance of today's Internet. It also
urges a concerted effort of research, measurement, and ultimate urges a concerted effort of research, measurement, and ultimate
deployment of AQM mechanisms to protect the Internet from flows that deployment of AQM mechanisms to protect the Internet from flows that
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 15, 2014. This Internet-Draft will expire on December 18, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 17 skipping to change at page 2, line 17
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4
2. The Need For Active Queue Management . . . . . . . . . . . . 4 2. The Need For Active Queue Management . . . . . . . . . . . . 4
2.1. AQM and Multiple Queues . . . . . . . . . . . . . . . . . 7 2.1. AQM and Multiple Queues . . . . . . . . . . . . . . . . . 8
2.2. AQM and Explicit Congestion Marking (ECN) . . . . . . . . 8 2.2. AQM and Explicit Congestion Marking (ECN) . . . . . . . . 8
2.3. AQM and Buffer Size . . . . . . . . . . . . . . . . . . . 8 2.3. AQM and Buffer Size . . . . . . . . . . . . . . . . . . . 9
3. Managing Aggressive Flows . . . . . . . . . . . . . . . . . . 8 3. Managing Aggressive Flows . . . . . . . . . . . . . . . . . . 9
4. Conclusions and Recommendations . . . . . . . . . . . . . . . 11 4. Conclusions and Recommendations . . . . . . . . . . . . . . . 12
4.1. Operational deployments SHOULD use AQM procedures . . . . 12 4.1. Operational deployments SHOULD use AQM procedures . . . . 13
4.2. Signaling to the transport endpoints . . . . . . . . . . 12 4.2. Signaling to the transport endpoints . . . . . . . . . . 13
4.2.1. AQM and ECN . . . . . . . . . . . . . . . . . . . . . 13 4.2.1. AQM and ECN . . . . . . . . . . . . . . . . . . . . . 14
4.3. AQM algorithms deployed SHOULD NOT require operational 4.3. AQM algorithms deployed SHOULD NOT require operational
tuning . . . . . . . . . . . . . . . . . . . . . . . . . 15 tuning . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4. AQM algorithms SHOULD respond to measured congestion, not 4.4. AQM algorithms SHOULD respond to measured congestion, not
application profiles. . . . . . . . . . . . . . . . . . . 16 application profiles. . . . . . . . . . . . . . . . . . . 17
4.5. AQM algorithms SHOULD NOT be dependent on specific 4.5. AQM algorithms SHOULD NOT be dependent on specific
transport protocol behaviours . . . . . . . . . . . . . . 17 transport protocol behaviours . . . . . . . . . . . . . . 17
4.6. Interactions with congestion control algorithms . . . . . 17 4.6. Interactions with congestion control algorithms . . . . . 18
4.7. The need for further research . . . . . . . . . . . . . . 18 4.7. The need for further research . . . . . . . . . . . . . . 19
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20
7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 19 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 20
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.1. Normative References . . . . . . . . . . . . . . . . . . 20 9.1. Normative References . . . . . . . . . . . . . . . . . . 21
9.2. Informative References . . . . . . . . . . . . . . . . . 21 9.2. Informative References . . . . . . . . . . . . . . . . . 22
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 24 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
The Internet protocol architecture is based on a connectionless end- The Internet protocol architecture is based on a connectionless end-
to-end packet service using the Internet Protocol, whether IPv4 to-end packet service using the Internet Protocol, whether IPv4
[RFC0791] or IPv6 [RFC2460]. The advantages of its connectionless [RFC0791] or IPv6 [RFC2460]. The advantages of its connectionless
design: flexibility and robustness, have been amply demonstrated. design: flexibility and robustness, have been amply demonstrated.
However, these advantages are not without cost: careful design is However, these advantages are not without cost: careful design is
required to provide good service under heavy load. In fact, lack of required to provide good service under heavy load. In fact, lack of
attention to the dynamics of packet forwarding can result in severe attention to the dynamics of packet forwarding can result in severe
skipping to change at page 3, line 22 skipping to change at page 3, line 22
the Transport Control Protocol (TCP) [RFC0768] [RFC1122]. These the Transport Control Protocol (TCP) [RFC0768] [RFC1122]. These
mechanisms operate in Internet hosts to cause TCP connections to mechanisms operate in Internet hosts to cause TCP connections to
"back off" during congestion. We say that TCP flows are "responsive" "back off" during congestion. We say that TCP flows are "responsive"
to congestion signals (i.e., marked or dropped packets) from the to congestion signals (i.e., marked or dropped packets) from the
network. It is primarily these TCP congestion avoidance algorithms network. It is primarily these TCP congestion avoidance algorithms
that prevent the congestive collapse of today's Internet. Similar that prevent the congestive collapse of today's Internet. Similar
algorithms are specified for other non-TCP transports. algorithms are specified for other non-TCP transports.
However, that is not the end of the story. Considerable research has However, that is not the end of the story. Considerable research has
been done on Internet dynamics since 1988, and the Internet has been done on Internet dynamics since 1988, and the Internet has
grown. It has become clear that the TCP congestion avoidance grown. It has become clear that the congestion avoidance mechanisms
mechanisms [RFC5681], while necessary and powerful, are not [RFC5681], while necessary and powerful, are not sufficient to
sufficient to provide good service in all circumstances. Basically, provide good service in all circumstances. Basically, there is a
there is a limit to how much control can be accomplished from the limit to how much control can be accomplished from the edges of the
edges of the network. Some mechanisms are needed in the network network. Some mechanisms are needed in the network devices to
devices to complement the endpoint congestion avoidance mechanisms. complement the endpoint congestion avoidance mechanisms. These
These mechanisms may be implemented in network devices that include mechanisms may be implemented in network devices that include
routers, switches, and other network middleboxes. routers, switches, and other network middleboxes.
It is useful to distinguish between two classes of algorithms related It is useful to distinguish between two classes of algorithms related
to congestion control: "queue management" versus "scheduling" to congestion control: "queue management" versus "scheduling"
algorithms. To a rough approximation, queue management algorithms algorithms. To a rough approximation, queue management algorithms
manage the length of packet queues by marking or dropping packets manage the length of packet queues by marking or dropping packets
when necessary or appropriate, while scheduling algorithms determine when necessary or appropriate, while scheduling algorithms determine
which packet to send next and are used primarily to manage the which packet to send next and are used primarily to manage the
allocation of bandwidth among flows. While these two mechanisms are allocation of bandwidth among flows. While these two mechanisms are
closely related, they address different performance issues and closely related, they address different performance issues and
skipping to change at page 4, line 11 skipping to change at page 4, line 11
characteristics. This document does not recommend any of them in characteristics. This document does not recommend any of them in
particular, but does make recommendations that ideally would affect particular, but does make recommendations that ideally would affect
the choice of procedure used in a given implementation. the choice of procedure used in a given implementation.
The second issue, discussed in Section 3 of this memo, is the The second issue, discussed in Section 3 of this memo, is the
potential for future congestive collapse of the Internet due to flows potential for future congestive collapse of the Internet due to flows
that are unresponsive, or not sufficiently responsive, to congestion that are unresponsive, or not sufficiently responsive, to congestion
indications. Unfortunately, while scheduling can mitigate some of indications. Unfortunately, while scheduling can mitigate some of
the side-effects of sharing a network queue with an unresponsive the side-effects of sharing a network queue with an unresponsive
flow, there is currently no consensus solution to controlling the flow, there is currently no consensus solution to controlling the
congestion caused by such aggressive flows; significant research and congestion caused by such aggressive flows. Methods such as
engineering will be required before any solution will be available. congestion exposure (ConEx) [RFC6789] offer a framework [CONEX] that
It is imperative that this work be energetically pursued, to ensure can update network devices to alleviate these effcects. Significant
the future stability of the Internet. research and engineering will be required before any solution will be
available. It is imperative that work to mitigate the impact of
unresponsive flows is energetically pursued, to ensure the future
stability of the Internet.
Section 4 concludes the memo with a set of recommendations to the Section 4 concludes the memo with a set of recommendations to the
Internet community concerning these topics. Internet community concerning these topics.
The discussion in this memo applies to "best-effort" traffic, which The discussion in this memo applies to "best-effort" traffic, which
is to say, traffic generated by applications that accept the is to say, traffic generated by applications that accept the
occasional loss, duplication, or reordering of traffic in flight. It occasional loss, duplication, or reordering of traffic in flight. It
also applies to other traffic, such as real-time traffic that can also applies to other traffic, such as real-time traffic that can
adapt its sending rate to reduce loss and/or delay. It is most adapt its sending rate to reduce loss and/or delay. It is most
effective when the adaption occurs on time scales of a single Round effective when the adaption occurs on time scales of a single Round
skipping to change at page 4, line 42 skipping to change at page 4, line 45
the AQM discussion within the IETF[AQM-WG]. the AQM discussion within the IETF[AQM-WG].
1.1. Requirements Language 1.1. Requirements Language
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 [RFC2119]. document are to be interpreted as described in [RFC2119].
2. The Need For Active Queue Management 2. The Need For Active Queue Management
Active Queue Management (AQM) is a method that allows network devices
to control the queue length or the mean time that a packet spends in
a queue. Although AQM can be applied across a range of deployment
enviroments, the recommendations in this document are directed to use
in the general Internet. It is expected that the principles and
guidance are also applicable to a wide range of environments, but may
require tuning for specific types of link/network (e.g. to
accommodate the traffic patterns found in data centres, the
challenges of wireless infrastructure, or the higher delay
encountered on satellite Internet links). The remainder of this
section identifies the need for AQM and the advantages of deploying
the method.
The traditional technique for managing the queue length in a network The traditional technique for managing the queue length in a network
device is to set a maximum length (in terms of packets) for each device is to set a maximum length (in terms of packets) for each
queue, accept packets for the queue until the maximum length is queue, accept packets for the queue until the maximum length is
reached, then reject (drop) subsequent incoming packets until the reached, then reject (drop) subsequent incoming packets until the
queue decreases because a packet from the queue has been transmitted. queue decreases because a packet from the queue has been transmitted.
This technique is known as "tail drop", since the packet that arrived This technique is known as "tail drop", since the packet that arrived
most recently (i.e., the one on the tail of the queue) is dropped most recently (i.e., the one on the tail of the queue) is dropped
when the queue is full. This method has served the Internet well for when the queue is full. This method has served the Internet well for
years, but it has two important drawbacks: years, but it has two important drawbacks:
1. Lock-Out 1. Full Queues
In some situations tail drop allows a single connection or a few
flows to monopolize the queue space starving other connection
preventing them from getting room in the queue. This "lock-out"
phenomenon is often the result of synchronization or other timing
effects.
2. Full Queues
The tail drop discipline allows queues to maintain a full (or, The tail drop discipline allows queues to maintain a full (or,
almost full) status for long periods of time, since tail drop almost full) status for long periods of time, since tail drop
signals congestion (via a packet drop) only when the queue has signals congestion (via a packet drop) only when the queue has
become full. It is important to reduce the steady-state queue become full. It is important to reduce the steady-state queue
size, and this is perhaps the most important goal for queue size, and this is perhaps the most important goal for queue
management. management.
The naive assumption might be that there is a simple tradeoff The naive assumption might be that there is a simple tradeoff
between delay and throughput, and that the recommendation that between delay and throughput, and that the recommendation that
skipping to change at page 5, line 45 skipping to change at page 6, line 7
silence. This is essential to permit transmission of bursts of silence. This is essential to permit transmission of bursts of
data. Normally small queues are preferred in network devices, data. Normally small queues are preferred in network devices,
with sufficient queue capacity to absorb the bursts. The with sufficient queue capacity to absorb the bursts. The
counter-intuitive result is that maintaining normally-small counter-intuitive result is that maintaining normally-small
queues can result in higher throughput as well as lower end-to- queues can result in higher throughput as well as lower end-to-
end delay. In summary, queue limits should not reflect the end delay. In summary, queue limits should not reflect the
steady state queues we want to be maintained in the network; steady state queues we want to be maintained in the network;
instead, they should reflect the size of bursts that a network instead, they should reflect the size of bursts that a network
device needs to absorb. device needs to absorb.
Besides tail drop, two alternative queue disciplines that can be 2. Lock-Out
applied when a queue becomes full are "random drop on full" or "head
drop on full". When a new packet arrives at a full queue using the In some situations tail drop allows a single connection or a few
random drop on full discipline, the network device drops a randomly flows to monopolize the queue space starving other connection
selected packet from the queue (which can be an expensive operation, preventing them from getting room in the queue.
since it naively requires an O(N) walk through the packet queue).
When a new packet arrives at a full queue using the head drop on full 3. Control loop synchronisation
discipline, the network device drops the packet at the front of the
queue [Lakshman96]. Both of these solve the lock-out problem, but Congestion control, like other end-to-end mechanisms, introduces
neither solves the full-queues problem described above. a control loop between hosts. Sessions that share a common network
bottleneck can therefore become synchronised, introducing
periodic disruption (e.g. jitter/loss). "lock-out" is often also
the result of synchronization or other timing effects.
Besides tail drop, two alternative queue management disciplines that
can be applied when a queue becomes full are "random drop on full" or
"head drop on full". When a new packet arrives at a full queue using
the random drop on full discipline, the network device drops a
randomly selected packet from the queue (which can be an expensive
operation, since it naively requires an O(N) walk through the packet
queue). When a new packet arrives at a full queue using the head
drop on full discipline, the network device drops the packet at the
front of the queue [Lakshman96]. Both of these solve the lock-out
problem, but neither solves the full-queues problem described above.
We know in general how to solve the full-queues problem for We know in general how to solve the full-queues problem for
"responsive" flows, i.e., those flows that throttle back in response "responsive" flows, i.e., those flows that throttle back in response
to congestion notification. In the current Internet, dropped packets to congestion notification. In the current Internet, dropped packets
provide a critical mechanism indicating congestion notification to provide a critical mechanism indicating congestion notification to
hosts. The solution to the full-queues problem is for network hosts. The solution to the full-queues problem is for network
devices to drop packets before a queue becomes full, so that hosts devices to drop packets before a queue becomes full, so that hosts
can respond to congestion before buffers overflow. We call such a can respond to congestion before buffers overflow. We call such a
proactive approach AQM. By dropping packets before buffers overflow, proactive approach AQM. By dropping packets before buffers overflow,
AQM allows network devices to control when and how many packets to AQM allows network devices to control when and how many packets to
skipping to change at page 7, line 27 skipping to change at page 7, line 50
benefit "increased fairness", because general fairness among benefit "increased fairness", because general fairness among
flows requires per-flow state, which is not provided by queue flows requires per-flow state, which is not provided by queue
management. For example, in a network device using AQM with only management. For example, in a network device using AQM with only
FIFO scheduling, two TCP flows may receive very different share FIFO scheduling, two TCP flows may receive very different share
of the network capacity simply because they have different round- of the network capacity simply because they have different round-
trip times [Floyd91], and a flow that does not use congestion trip times [Floyd91], and a flow that does not use congestion
control may receive more capacity than a flow that does. AQM can control may receive more capacity than a flow that does. AQM can
therefore be combined with a scheduling mechanism that divides therefore be combined with a scheduling mechanism that divides
network traffic between multiple queues (section 2.1). network traffic between multiple queues (section 2.1).
4. Reduce the probability of control loop synchronisation
The probability of network control loop synchronisation can be
reduced by introducing randomness in the AQM functions used by
network devices that trigger congestion avoidance at the sending
host.
2.1. AQM and Multiple Queues 2.1. AQM and Multiple Queues
A network device may use per-flow or per-class queuing with a A network device may use per-flow or per-class queuing with a
scheduling algorithm to either prioritise certain applications or scheduling algorithm to either prioritise certain applications or
classes of traffic, or to provide isolation between different traffic classes of traffic, or to provide isolation between different traffic
flows within a common class. For example, a router may maintain per- flows within a common class. For example, a router may maintain per-
flow state to achieve general fairness by a per-flow scheduling flow state to achieve general fairness by a per-flow scheduling
algorithm such as various forms of Fair Queueing (FQ) [Dem90], algorithm such as various forms of Fair Queueing (FQ) [Dem90],
including Weighted Fair Queuing (WFQ), Stochastic Fairness Queueing including Weighted Fair Queuing (WFQ), Stochastic Fairness Queueing
(SFQ) [McK90] Deficit Round Robin (DRR) [Shr96] and/or a Class-Based (SFQ) [McK90] Deficit Round Robin (DRR) [Shr96] and/or a Class-Based
skipping to change at page 8, line 16 skipping to change at page 8, line 46
In short, scheduling algorithms and queue management should be seen In short, scheduling algorithms and queue management should be seen
as complementary, not as replacements for each other. as complementary, not as replacements for each other.
2.2. AQM and Explicit Congestion Marking (ECN) 2.2. AQM and Explicit Congestion Marking (ECN)
An AQM method may use Explicit Congestion Notification (ECN) An AQM method may use Explicit Congestion Notification (ECN)
[RFC3168] instead of dropping to mark packets under mild or moderate [RFC3168] instead of dropping to mark packets under mild or moderate
congestion. ECN-marking can allow a network device to signal congestion. ECN-marking can allow a network device to signal
congestion at a point before a transport experiences congestion loss congestion at a point before a transport experiences congestion loss
or additional queuing delay [ECN-Benefit]. Section 4.2.1provides or additional queuing delay [ECN-Benefit]. Section 4.2.1 describes
recommendations on the use of ECN with AQM. some of the benefits of using ECN with AQM.
2.3. AQM and Buffer Size 2.3. AQM and Buffer Size
It is important to differentiate the choice of buffer size for a It is important to differentiate the choice of buffer size for a
queue in a switch/router or other network device, and the queue in a switch/router or other network device, and the
threshold(s) and other parameters that determine how and when an AQM threshold(s) and other parameters that determine how and when an AQM
algorithm operates. One the one hand, the optimum buffer size is a algorithm operates. One the one hand, the optimum buffer size is a
function of operational requirements and should generally be sized to function of operational requirements and should generally be sized to
be sufficient to buffer the largest normal traffic burst that is be sufficient to buffer the largest normal traffic burst that is
expected. This size depends on the number and burstiness of traffic expected. This size depends on the number and burstiness of traffic
arriving at the queue and the rate at which traffic leaves the queue. arriving at the queue and the rate at which traffic leaves the queue.
Different types of traffic and deployment scenarios will lead to Different types of traffic and deployment scenarios will lead to
different requirements. AQM frees a designer from having to the different requirements.
limit buffer space to achieve acceptable performance, allowing
allocation of sufficient buffering to satisfy the needs of the AQM frees a designer from having to the limit buffer space to achieve
particular traffic pattern. On the other hand, the choice of AQM acceptable performance, allowing allocation of sufficient buffering
algorithm and associated parameters is a function of the way in which to satisfy the needs of the particular traffic pattern. On the other
congestion is experienced and the required reaction to achieve hand, the choice of AQM algorithm and associated parameters is a
acceptable performance. This latter topic is the primary topic of function of the way in which congestion is experienced and the
the following sections. required reaction to achieve acceptable performance. This latter
topic is the primary topic of the following sections.
3. Managing Aggressive Flows 3. Managing Aggressive Flows
One of the keys to the success of the Internet has been the One of the keys to the success of the Internet has been the
congestion avoidance mechanisms of TCP. Because TCP "backs off" congestion avoidance mechanisms of TCP. Because TCP "backs off"
during congestion, a large number of TCP connections can share a during congestion, a large number of TCP connections can share a
single, congested link in such a way that link bandwidth is shared single, congested link in such a way that link bandwidth is shared
reasonably equitably among similarly situated flows. The equitable reasonably equitably among similarly situated flows. The equitable
sharing of bandwidth among flows depends on all flows running sharing of bandwidth among flows depends on all flows running
compatible congestion avoidance algorithms, i.e., methods conformant compatible congestion avoidance algorithms, i.e., methods conformant
skipping to change at page 9, line 47 skipping to change at page 10, line 33
transport. If no action is taken, such unresponsive flows could transport. If no action is taken, such unresponsive flows could
lead to a new congestive collapse [RFC2309]. lead to a new congestive collapse [RFC2309].
In general, UDP-based applications need to incorporate effective In general, UDP-based applications need to incorporate effective
congestion avoidance mechanisms [RFC5405]. Further research and congestion avoidance mechanisms [RFC5405]. Further research and
development of ways to accomplish congestion avoidance for development of ways to accomplish congestion avoidance for
presently unresponsive applications continue to be important. presently unresponsive applications continue to be important.
Network devices need to be able to protect themselves against Network devices need to be able to protect themselves against
unresponsive flows, and mechanisms to accomplish this must be unresponsive flows, and mechanisms to accomplish this must be
developed and deployed. Deployment of such mechanisms would developed and deployed. Deployment of such mechanisms would
provide an incentive for all applications to become responsive by provide an incentive for all applications to become responsive by
either using a congestion-controlled transport (e.g. TCP, SCTP either using a congestion-controlled transport (e.g. TCP, SCTP
[RFC4960] and DCCP [RFC4340].) or by incorporating their own [RFC4960] and DCCP [RFC4340].) or by incorporating their own
congestion control in the application [RFC5405]. congestion control in the application [RFC5405].
Lastly, some applications (e.g. current web browsers) open a Lastly, some applications (e.g. current web browsers) open a
large numbers of short TCP flows for a single session. This can large numbers of short TCP flows for a single session. This can
lead to each individual flow spending the majority of time in the lead to each individual flow spending the majority of time in the
exponential TCP slow start phase, rather than in TCP congestion exponential TCP slow start phase, rather than in TCP congestion
avoidance. The resulting traffic aggregate can therefore be much avoidance. The resulting traffic aggregate can therefore be much
less responsive than a single standard TCP flow. less responsive than a single standard TCP flow.
3. Non-TCP-friendly Transport Protocols 3. Non-TCP-friendly Transport Protocols
skipping to change at page 11, line 9 skipping to change at page 11, line 44
of current conditions and for further research into the ways of of current conditions and for further research into the ways of
managing such flows. This raises many difficult issues in managing such flows. This raises many difficult issues in
identifying and isolating unresponsive or non-TCP-friendly flows at identifying and isolating unresponsive or non-TCP-friendly flows at
an acceptable overhead cost. Finally, there is as yet little an acceptable overhead cost. Finally, there is as yet little
measurement or simulation evidence available about the rate at which measurement or simulation evidence available about the rate at which
these threats are likely to be realized, or about the expected these threats are likely to be realized, or about the expected
benefit of algorithms for managing such flows. benefit of algorithms for managing such flows.
Another topic requiring consideration is the appropriate Another topic requiring consideration is the appropriate
granugranularity of a "flow" when considering a queue management granugranularity of a "flow" when considering a queue management
method. There are a few "natural" answers: 1) a transport (e.g. TCP method. There are a few "natural" answers: 1) a transport (e.g. TCP
or UDP) flow (source address/port, destination address/port, or UDP) flow (source address/port, destination address/port,
protocol); 2) Differentiated Services Code Point, DSCP; 3) a source/ protocol); 2) Differentiated Services Code Point, DSCP; 3) a source/
destination host pair (IP address); 4) a given source host or a given destination host pair (IP address); 4) a given source host or a given
destination host, or various combinations of the above. destination host, or various combinations of the above.
The source/destination host pair gives an appropriate granularity in The source/destination host pair gives an appropriate granularity in
many circumstances, However, different vendors/providers use many circumstances, However, different vendors/providers use
different granularities for defining a flow (as a way of different granularities for defining a flow (as a way of
"distinguishing" themselves from one another), and different "distinguishing" themselves from one another), and different
granularities may be chosen for different places in the network. It granularities may be chosen for different places in the network. It
skipping to change at page 12, line 44 skipping to change at page 13, line 27
queuing, and fair queuing, is often effective in networks to help a queuing, and fair queuing, is often effective in networks to help a
network serve the needs of a range of applications. Network network serve the needs of a range of applications. Network
operators can use these methods to manage traffic passing a choke operators can use these methods to manage traffic passing a choke
point. This is discussed in [RFC2474] and [RFC2475]. When point. This is discussed in [RFC2474] and [RFC2475]. When
scheduling is used AQM should be applied across the classes or flows scheduling is used AQM should be applied across the classes or flows
as well as within each class or flow: as well as within each class or flow:
o AQM mechanisms need to control the overall queue sizes, to ensure o AQM mechanisms need to control the overall queue sizes, to ensure
that arriving bursts can be accommodated without dropping packets. that arriving bursts can be accommodated without dropping packets.
o AQM mechanisms need to allow combination with other mechanisms,
such as scheduling, to allow implementation of polices for
providing fairness between different flows.
o AQM should be used to control the queue size for each individual o AQM should be used to control the queue size for each individual
flow or class, so that they do not experience unnecessarily high flow or class, so that they do not experience unnecessarily high
delay. delay.
4.2. Signaling to the transport endpoints 4.2. Signaling to the transport endpoints
There are a number of ways a network device may signal to the end There are a number of ways a network device may signal to the end
point that the network is becoming congested and trigger a reduction point that the network is becoming congested and trigger a reduction
in rate. The signalling methods include: in rate. The signalling methods include:
skipping to change at page 13, line 28 skipping to change at page 14, line 16
reported RTT and increased latency can trigger a sender to adjust its reported RTT and increased latency can trigger a sender to adjust its
rate. Methods such as Low Extra Delay Background Transport (LEDBAT) rate. Methods such as Low Extra Delay Background Transport (LEDBAT)
[RFC6817] assume increased latency as a primary signal of congestion. [RFC6817] assume increased latency as a primary signal of congestion.
Appropriate use of delay-based methods and the implications of AQM Appropriate use of delay-based methods and the implications of AQM
presently remains an area for further research. presently remains an area for further research.
It is essential that all Internet hosts respond to loss [RFC5681], It is essential that all Internet hosts respond to loss [RFC5681],
[RFC5405][RFC4960][RFC4340]. Packet dropping by network devices that [RFC5405][RFC4960][RFC4340]. Packet dropping by network devices that
are under load has two effects: It protects the network, which is the are under load has two effects: It protects the network, which is the
primary reason that network devices drop packets. The detection of primary reason that network devices drop packets. The detection of
loss also provides a signal to a reliable transport (e.g. TCP, SCTP) loss also provides a signal to a reliable transport (e.g. TCP, SCTP)
that there is potential congestion using a pragmatic heuristic; "when that there is potential congestion using a pragmatic heuristic; "when
the network discards a message in flight, it may imply the presence the network discards a message in flight, it may imply the presence
of faulty equipment or media in a path, and it may imply the presence of faulty equipment or media in a path, and it may imply the presence
of congestion. To be conservative, a transport must assume it may be of congestion. To be conservative, a transport must assume it may be
the latter." Unreliable transports (e.g. using UDP) need to the latter." Unreliable transports (e.g. using UDP) need to
similarly react to loss [RFC5405] similarly react to loss [RFC5405]
Network devices SHOULD use an AQM algorithm to determine the packets Network devices SHOULD use an AQM algorithm to determine the packets
that are marked or discarded due to congestion. that are marked or discarded due to congestion. Procedures for
dropping or marking packets within the network need to avoid
increasing synchronisation events, and hence randomness SHOULD be
introduced in the algorithms that generate these congestion signals
to the endpoints.
Loss also has an effect on the efficiency of a flow and can Loss also has an effect on the efficiency of a flow and can
significantly impact some classes of application. In reliable significantly impact some classes of application. In reliable
transports the dropped data must be subsequently retransmitted. transports the dropped data must be subsequently retransmitted.
While other applications/transports may adapt to the absence of lost While other applications/transports may adapt to the absence of lost
data, this still implies inefficient use of available capacity and data, this still implies inefficient use of available capacity and
the dropped traffic can affect other flows. Hence, congestion the dropped traffic can affect other flows. Hence, congestion
signalling by loss is not entirely positive; it is a necessary evil. signalling by loss is not entirely positive; it is a necessary evil.
4.2.1. AQM and ECN 4.2.1. AQM and ECN
skipping to change at page 16, line 16 skipping to change at page 17, line 11
recommended for general Internet deployment by the IETF need to be recommended for general Internet deployment by the IETF need to be
designed so that they do not require operational (especially manual) designed so that they do not require operational (especially manual)
configuration or tuning. configuration or tuning.
4.4. AQM algorithms SHOULD respond to measured congestion, not 4.4. AQM algorithms SHOULD respond to measured congestion, not
application profiles. application profiles.
Not all applications transmit packets of the same size. Although Not all applications transmit packets of the same size. Although
applications may be characterized by particular profiles of packet applications may be characterized by particular profiles of packet
size this should not be used as the basis for AQM (see next section). size this should not be used as the basis for AQM (see next section).
Other methods exist, e.g. Differentiated Services queueing, Pre- Other methods exist, e.g. Differentiated Services queueing, Pre-
Congestion Notification (PCN) [RFC5559], that can be used to Congestion Notification (PCN) [RFC5559], that can be used to
differentiate and police classes of application. Network devices may differentiate and police classes of application. Network devices may
combine AQM with these traffic classification mechanisms and perform combine AQM with these traffic classification mechanisms and perform
AQM only on specific queues within a network device. AQM only on specific queues within a network device.
An AQM algorithm should not deliberately try to prejudice the size of An AQM algorithm should not deliberately try to prejudice the size of
packet that performs best (i.e. Preferentially drop/mark based only packet that performs best (i.e. Preferentially drop/mark based only
on packet size). Procedures for selecting packets to mark/drop on packet size). Procedures for selecting packets to mark/drop
SHOULD observe the actual or projected time that a packet is in a SHOULD observe the actual or projected time that a packet is in a
queue (bytes at a rate being an analog to time). When an AQM queue (bytes at a rate being an analog to time). When an AQM
algorithm decides whether to drop (or mark) a packet, it is algorithm decides whether to drop (or mark) a packet, it is
RECOMMENDED that the size of the particular packet should not be RECOMMENDED that the size of the particular packet should not be
taken into account [Byte-pkt]. taken into account [Byte-pkt].
Applications (or transports) generally know the packet size that they Applications (or transports) generally know the packet size that they
are using and can hence make their judgments about whether to use are using and can hence make their judgments about whether to use
small or large packets based on the data they wish to send and the small or large packets based on the data they wish to send and the
skipping to change at page 16, line 45 skipping to change at page 17, line 40
parameter. When a transport or application responds to a dropped or parameter. When a transport or application responds to a dropped or
marked packet, the size of the rate reduction should be proportionate marked packet, the size of the rate reduction should be proportionate
to the size of the packet that was sent [Byte-pkt]. to the size of the packet that was sent [Byte-pkt].
AQM-enabled system MAY instantiate different instances of an AQM AQM-enabled system MAY instantiate different instances of an AQM
algorithm to be applied within the same traffic class. Traffic algorithm to be applied within the same traffic class. Traffic
classes may be differentiated based on an Access Control List (ACL), classes may be differentiated based on an Access Control List (ACL),
the packet Differentiated Services Code Point (DSCP) [RFC5559], the packet Differentiated Services Code Point (DSCP) [RFC5559],
enabling use of the ECN field (i.e. any of ECT(0), ECT(1) or enabling use of the ECN field (i.e. any of ECT(0), ECT(1) or
CE)[RFC3168] [RFC4774], a multi-field (MF) classifier that combines CE)[RFC3168] [RFC4774], a multi-field (MF) classifier that combines
the values of a set of protocol fields (e.g. IP address, transport, the values of a set of protocol fields (e.g. IP address, transport,
ports) or an equivalent codepoint at a lower layer. This ports) or an equivalent codepoint at a lower layer. This
recommendation goes beyond what is defined in RFC 3168, by allowing recommendation goes beyond what is defined in RFC 3168, by allowing
that an implementation MAY use more than one instance of an AQM that an implementation MAY use more than one instance of an AQM
algorithm to handle both ECN-capable and non-ECN-capable packets. algorithm to handle both ECN-capable and non-ECN-capable packets.
4.5. AQM algorithms SHOULD NOT be dependent on specific transport 4.5. AQM algorithms SHOULD NOT be dependent on specific transport
protocol behaviours protocol behaviours
In deploying AQM, network devices need to support a range of Internet In deploying AQM, network devices need to support a range of Internet
traffic and SHOULD NOT make implicit assumptions about the traffic and SHOULD NOT make implicit assumptions about the
skipping to change at page 21, line 13 skipping to change at page 22, line 9
Notification", RFC 6040, November 2010. Notification", RFC 6040, November 2010.
[RFC6679] Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P., [RFC6679] Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P.,
and K. Carlberg, "Explicit Congestion Notification (ECN) and K. Carlberg, "Explicit Congestion Notification (ECN)
for RTP over UDP", RFC 6679, August 2012. for RTP over UDP", RFC 6679, August 2012.
9.2. Informative References 9.2. Informative References
[AQM-WG] "IETF AQM WG", . [AQM-WG] "IETF AQM WG", .
[CONEX] Mathis, M. and B. Briscoe, "The Benefits to Applications
of using Explicit Congestion Notification (ECN)", IETF
(Work-in-Progress) draft-ietf-conex-abstract-mech, March
2014.
[Choi04] Sprint ATL, Burlingame, CA, , , , and , "Analysis of [Choi04] Sprint ATL, Burlingame, CA, , , , and , "Analysis of
Point-To-Point Packet Delay In an Operational Network", Point-To-Point Packet Delay In an Operational Network",
March 2004. March 2004.
[Dem90] Demers, A., Keshav, S., and S. Shenker, "Analysis and [Dem90] Demers, A., Keshav, S., and S. Shenker, "Analysis and
Simulation of a Fair Queueing Algorithm, Internetworking: Simulation of a Fair Queueing Algorithm, Internetworking:
Research and Experience", SIGCOMM Symposium proceedings on Research and Experience", SIGCOMM Symposium proceedings on
Communications architectures and protocols , 1990. Communications architectures and protocols , 1990.
[ECN-Benefit] [ECN-Benefit]
skipping to change at page 22, line 12 skipping to change at page 23, line 12
Front Strategy in TCP Over ATM and Its Interworking with Front Strategy in TCP Over ATM and Its Interworking with
Other Control Features", IEEE Infocomm , 1996. Other Control Features", IEEE Infocomm , 1996.
[Leland94] [Leland94]
Leland, W., Taqqu, M., Willinger, W., and D. Wilson, "On Leland, W., Taqqu, M., Willinger, W., and D. Wilson, "On
the Self-Similar Nature of Ethernet Traffic (Extended the Self-Similar Nature of Ethernet Traffic (Extended
Version)", IEEE/ACM Transactions on Networking , February Version)", IEEE/ACM Transactions on Networking , February
1994. 1994.
[McK90] McKenney, PE. and G. Varghese, "Stochastic Fairness [McK90] McKenney, PE. and G. Varghese, "Stochastic Fairness
Queuing", http://www2.rdrop.com/~paulmck/scalability/paper Queuing",
/sfq.2002.06.04.pdf , 1990. http://www2.rdrop.com/~paulmck/scalability/paper/
sfq.2002.06.04.pdf , 1990.
[Nic12] Nichols, K., "Controlling Queue Delay", Communications of [Nic12] Nichols, K., "Controlling Queue Delay", Communications of
the ACM Vol. 55 No. 11, July, 2012, pp.42-50. , July 2002. the ACM Vol. 55 No. 11, July, 2012, pp.42-50. , July 2002.
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
August 1980. August 1980.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September
1981. 1981.
skipping to change at page 23, line 31 skipping to change at page 24, line 31
Friendly Rate Control (TFRC): Protocol Specification", RFC Friendly Rate Control (TFRC): Protocol Specification", RFC
5348, September 2008. 5348, September 2008.
[RFC5559] Eardley, P., "Pre-Congestion Notification (PCN) [RFC5559] Eardley, P., "Pre-Congestion Notification (PCN)
Architecture", RFC 5559, June 2009. Architecture", RFC 5559, June 2009.
[RFC6057] Bastian, C., Klieber, T., Livingood, J., Mills, J., and R. [RFC6057] Bastian, C., Klieber, T., Livingood, J., Mills, J., and R.
Woundy, "Comcast's Protocol-Agnostic Congestion Management Woundy, "Comcast's Protocol-Agnostic Congestion Management
System", RFC 6057, December 2010. System", RFC 6057, December 2010.
[RFC6789] Briscoe, B., Woundy, R., and A. Cooper, "Congestion
Exposure (ConEx) Concepts and Use Cases", RFC 6789,
December 2012.
[RFC6817] Shalunov, S., Hazel, G., Iyengar, J., and M. Kuehlewind, [RFC6817] Shalunov, S., Hazel, G., Iyengar, J., and M. Kuehlewind,
"Low Extra Delay Background Transport (LEDBAT)", RFC 6817, "Low Extra Delay Background Transport (LEDBAT)", RFC 6817,
December 2012. December 2012.
[Shr96] Shreedhar, M. and G. Varghese, "Efficient Fair Queueing [Shr96] Shreedhar, M. and G. Varghese, "Efficient Fair Queueing
Using Deficit Round Robin", IEEE/ACM Transactions on Using Deficit Round Robin", IEEE/ACM Transactions on
Networking Vol 4, No. 3 , July 1996. Networking Vol 4, No. 3 , July 1996.
[Sto97] Stoica, I. and H. Zhang, "A Hierarchical Fair Service [Sto97] Stoica, I. and H. Zhang, "A Hierarchical Fair Service
Curve algorithm for Link sharing, real-time and priority Curve algorithm for Link sharing, real-time and priority
skipping to change at page 24, line 38 skipping to change at page 25, line 38
-01 WG Draft - Updated transport recommendations; revised deployment -01 WG Draft - Updated transport recommendations; revised deployment
configuration section; numerous minor edits. configuration section; numerous minor edits.
Jan 2014 - Feedback from WG. Jan 2014 - Feedback from WG.
-02 WG Draft - Minor edits Feb 2014 - Mainly language fixes. -02 WG Draft - Minor edits Feb 2014 - Mainly language fixes.
-03 WG Draft - Minor edits Feb 2013 - Comments from David Collier- -03 WG Draft - Minor edits Feb 2013 - Comments from David Collier-
Brown and David Taht. Brown and David Taht.
-04 WG Draft - Minor edits May 3013 - Comments during WGLC: Provided -04 WG Draft - Minor edits May 2014 - Comments during WGLC: Provided
some introductory subsections to help people (with subsections and some introductory subsections to help people (with subsections and
better text). - Written more on the role scheduling. - Clarified better text). - Written more on the role scheduling. - Clarified
that ECN mark threshold needs to be configurable. - Reworked your that ECN mark threshold needs to be configurable. - Reworked your
"knee" para. Various updates in response to feedback. "knee" para. Various updates in response to feedback.
-05 WG Draft - Minor edits June 2014 - New text added to address
further comments, and improve introduction - adding context,
reference to Conex, linking between sections, added text on
synchronisation.
Authors' Addresses Authors' Addresses
Fred Baker (editor) Fred Baker (editor)
Cisco Systems Cisco Systems
Santa Barbara, California 93117 Santa Barbara, California 93117
USA USA
Email: fred@cisco.com Email: fred@cisco.com
Godred Fairhurst (editor) Godred Fairhurst (editor)
University of Aberdeen University of Aberdeen
School of Engineering School of Engineering
Fraser Noble Building Fraser Noble Building
Aberdeen, Scotland AB24 3UE Aberdeen, Scotland AB24 3UE
UK UK
Email: gorry@erg.abdn.ac.uk Email: gorry@erg.abdn.ac.uk
URI: http://www.erg.abdn.ac.uk URI: http://www.erg.abdn.ac.uk
 End of changes. 29 change blocks. 
71 lines changed or deleted 125 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/