Network Working Group F.J. Baker Internet-Draft Cisco Systems Updates: 2309 (if approved) March 13, 2013 Intended status: Best Current Practice Expires: September 14, 2013 IETF Recommendations Regarding Active Queue Management draft-baker-tsvwg-aqm-recommendation-00 Abstract Fifteen years after the IAB issued its recommendations regarding congestion control in RFC 2309, a major issue in the community is the issue that RFC addresses: Buffer bloat. It may be time to update the recommendation. Note to IESG RFC Editor: this note should be removed on publication. IESG: RFC 2309 is an IAB Recommendation, but is an Informational document rather than BCP. Since this document targets BCP status, idnits considers the normative reference to it as a down-reference. In the opinion of the author, both it and this document should be BCPs. Please adjust the status of RFC 2309. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on September 14, 2013. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. Baker Expires September 14, 2013 [Page 1] Internet-Draft AQM Recommendations March 2013 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2. Specific Recommendations . . . . . . . . . . . . . . . . . . 3 2.1. Operational deployments SHOULD use AQM procedures . . . . 4 2.2. Signaling to the endpoints of a session . . . . . . . . . 4 2.3. AQM algorithms deployed SHOULD NOT require operational tuning . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4. AQM algorithms deployed SHOULD be effective on all common Internet traffic . . . . . . . . . . . . . . . . . . . . 5 2.5. TCP and SCTP congestion control algorithms SHOULD maximize their use of available bandwidth without incurring loss or undue round trip delay . . . . . . . . 5 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 4.1. Privacy Considerations . . . . . . . . . . . . . . . . . 6 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 6. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 6 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 7.1. Normative References . . . . . . . . . . . . . . . . . . 6 7.2. Informative References . . . . . . . . . . . . . . . . . 6 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction Baker Expires September 14, 2013 [Page 2] Internet-Draft AQM Recommendations March 2013 Active Queue Management (AQM) procedures are a class of procedures that are used to manage queue depth. Every queue in a network is finite, if for no other reason because even virtual memory is finite. Tail-drop queue management procedures are widely implemented and well known for their issues; since common congestion control algorithms used in TCP [RFC0793] attempt to maximize the amount of data the keep outstanding (to maximize bandwidth usage), the effect of "fill the queue until it is full and then drop something" is to fill network queues, maximizing both end to end delay and variation in delay. AQM procedures have been developed as a means of signaling earlier, enabling the network to keep its buffers relatively empty and available to store large bursts of data momentarily in the normal case. There are a number of AQM procedures in the literature. The prototypical one is Random Early Detection (RED). Other alternatives include Blue, Adaptive Virtual Queue (AVQ), Controlling Queue Delay (Codel), Proportional Integral controller Enhanced (PIE), and no doubt a variety of others. This document makes no recommendation on those procedures per se; if an operator or implementor finds one useful, they should use it. This document does, however, attempt to give guidance on how such a choice might be made. The question is how best, and where best, to use them. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 2. Specific Recommendations The IETF, in discussion, has developed a set of specific recommendations regarding the implementation and operational use of AQM procedures. These include: 1. Operational deployments SHOULD use AQM procedures. 2. Deployed AQM SHOULD use ECN as well as loss, and set thresholds to mark traffic earlier than it is lost. 3. AQM algorithms deployed SHOULD NOT require operational (especially manual) tuning. 4. AQM algorithms deployed SHOULD be effective on all common Internet traffic, including traffic that uses TCP, SCTP, UDP, and DCCP as transports. Baker Expires September 14, 2013 [Page 3] Internet-Draft AQM Recommendations March 2013 5. TCP and SCTP congestion control algorithms SHOULD maximize their use of available bandwidth without incurring loss or undue round trip delay when possible. 2.1. Operational deployments SHOULD use AQM procedures This is the recommendation of [RFC2309], which is recomended reading. In short, AQM procedures are designed to minimize delay induced in the network by queues which have filled due to the behavior of hosts trying to send data to other hosts. Marking and loss behaviors signal to the senders of data that network buffers are becoming unnecessarily full, and they would do well to moderate their behavior. 2.2. Signaling to the endpoints of a session Means of signaling to an endpoint regarding its effect on the network and how it might consider adapting include, at least: o Delaying data segments in flight, such as in a queue, which affects Ack Clocking and as a result the transmission of new data. o Marking traffic, such as using Explicit Congestion Control[RFC3168] [RFC4301] [RFC4774] [RFC6040] o Dropping traffic in transit. The use of advanced scheduling mechanisms, such as priority queuing, classful queuing, and fair queuing, is often effective in networks to help a network to serve the needs of an application. It can be used to manage traffic passing a choke point. This is discussed in [RFC2474] and [RFC2475]. They are used operationally when an operator considers it important to do so. Loss has two effects. It protects the network, which is the primary reason the network imposes it. Its use as a signal to TCP or SCTP is a pragmatic heuristic; "when 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 congestion. Presume the latter." However, it also has an effect on the efficiency of the data flow. The data in question must be retransmitted, or its absence must otherwise be adapted to by the application in question, which implies at least inefficient use of available bandwidth and may affect other data flows. Hence, loss is not entirely positive; it is a necessary evil. Baker Expires September 14, 2013 [Page 4] Internet-Draft AQM Recommendations March 2013 Explicit Congestion Control, however, communicates information about network congestion that is assuredly about congestion, and avoids the unintended consequences of loss. Hence, network communication to the host regarding the moderation of its traffic flow SHOULD include both ECN and loss, with ECN being triggered earlier than loss. In this way, congestion control can be achieved in the general case without loss, and loss remains the backup when needed. 2.3. AQM algorithms deployed SHOULD NOT require operational tuning A number of algorithms have been proposed. Many require some form of tuning or initial condition, which makes them difficult to use operationally. Hence, self-tuning algorithms are to be preferred. 2.4. AQM algorithms deployed SHOULD be effective on all common Internet traffic AQM algorithms often target TCP [RFC0793], as it is by far the predominant transport in the Internet today. However, we have significant use of UDP [RFC0768] in voice and video services, and find utility in SCTP [RFC4960] and DCCP [RFC4340]. Hence, AQM algorithms that are effective with all of those transports and the applications that use them are to be preferred. 2.5. TCP and SCTP congestion control algorithms SHOULD maximize their use of available bandwidth without incurring loss or undue round trip delay The terms "knee" and "cliff" area defined by [JAIN]. They respectively refer to the minimum and maximum values of the effective window that have the effect of maximizing transmission rate in a congestion control algorithm such as is used by TCP or SCTP. For the sender of data, exceeding the cliff is ineffective, as it (by definition) induces loss; operating at a point close to the cliff has a negative impact on other traffic and applications, triggering operator activities such as discussed in [RFC6057]. Operating below the knee is also ineffective, as it fails to use available network capacity. If the objective is to deliver data from its source to its recipient in the least possible time, as a result, the behavior of any TCP/SCTP congestion control algorithm SHOULD be to seek and use effective window values at or above the knee and well below the cliff. 3. IANA Considerations Baker Expires September 14, 2013 [Page 5] Internet-Draft AQM Recommendations March 2013 This memo asks the IANA for no new parameters. 4. Security Considerations This document, by itself, presents no new security issues. 4.1. Privacy Considerations This document, by itself, presents no new privacy issues. 5. Acknowledgements 6. Change Log Initial Version: March 2013 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2309] Braden, B., Clark, D.D., Crowcroft, J., Davie, B., Deering, S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G., Partridge, C., Peterson, L., Ramakrishnan, K.K., Shenker, S., Wroclawski, J., and L. Zhang, "Recommendations on Queue Management and Congestion Avoidance in the Internet", RFC 2309, April 1998. [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of Explicit Congestion Notification (ECN) to IP", RFC 3168, September 2001. [RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005. [RFC4774] Floyd, S., "Specifying Alternate Semantics for the Explicit Congestion Notification (ECN) Field", BCP 124, RFC 4774, November 2006. [RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion Notification", RFC 6040, November 2010. 7.2. Informative References Baker Expires September 14, 2013 [Page 6] Internet-Draft AQM Recommendations March 2013 [JAIN] Jain, Raj., Ramakrishnan, KK., and Chiu. Dah-Ming, "Congestion avoidance scheme for computer networks", US Patent Office 5377327, December 1994. [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August 1980. [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, RFC 793, September 1981. [RFC2474] Nichols, K., Blake, S., Baker, F., and D.L. Black, "Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, December 1998. [RFC2475] Blake, S., Black, D.L., Carlson, M.A., Davies, E., Wang, Z., and W. Weiss, "An Architecture for Differentiated Services", RFC 2475, December 1998. [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram Congestion Control Protocol (DCCP)", RFC 4340, March 2006. [RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 4960, September 2007. [RFC6057] Bastian, C., Klieber, T., Livingood, J., Mills, J., and R. Woundy, "Comcast's Protocol-Agnostic Congestion Management System", RFC 6057, December 2010. Author's Address Fred Baker Cisco Systems Santa Barbara, California 93117 USA Email: fred@cisco.com Baker Expires September 14, 2013 [Page 7]