RFC 2309 (rfc2309) - Page 2 of 17
Recommendations on Queue Management and Congestion Avoidance in the Internet
Alternative Format: Original Text Document
RFC 2309 Internet Performance Recommendations April 1998
1. INTRODUCTION
The Internet protocol architecture is based on a connectionless end-
to-end packet service using the IP protocol. The advantages of its
connectionless design, flexibility and robustness, have been amply
demonstrated. However, these advantages are not without cost:
careful design is required to provide good service under heavy load.
In fact, lack of attention to the dynamics of packet forwarding can
result in severe service degradation or "Internet meltdown". This
phenomenon was first observed during the early growth phase of the
Internet of the mid 1980s [Nagle84], and is technically called
"congestion collapse".
The original fix for Internet meltdown was provided by Van Jacobson.
Beginning in 1986, Jacobson developed the congestion avoidance
mechanisms that are now required in TCP implementations [Jacobson88,
HostReq89]. These mechanisms operate in the hosts to cause TCP
connections to "back off" during congestion. We say that TCP flows
are "responsive" to congestion signals (i.e., dropped packets) from
the network. It is primarily these TCP congestion avoidance
algorithms that prevent the congestion collapse of today's Internet.
However, that is not the end of the story. Considerable research has
been done on Internet dynamics since 1988, and the Internet has
grown. It has become clear that the TCP congestion avoidance
mechanisms [RFC 2001], while necessary and powerful, are not
sufficient to provide good service in all circumstances. Basically,
there is a limit to how much control can be accomplished from the
edges of the network. Some mechanisms are needed in the routers to
complement the endpoint congestion avoidance mechanisms.
It is useful to distinguish between two classes of router algorithms
related to congestion control: "queue management" versus "scheduling"
algorithms. To a rough approximation, queue management algorithms
manage the length of packet queues by dropping packets when necessary
or appropriate, while scheduling algorithms determine which packet to
send next and are used primarily to manage the allocation of
bandwidth among flows. While these two router mechanisms are closely
related, they address rather different performance issues.
This memo highlights two router performance issues. The first issue
is the need for an advanced form of router queue management that we
call "active queue management." Section 2 summarizes the benefits
that active queue management can bring. Section 3 describes a
recommended active queue management mechanism, called Random Early
Detection or "RED". We expect that the RED algorithm can be used
with a wide variety of scheduling algorithms, can be implemented
relatively efficiently, and will provide significant Internet
Braden, et. al. Informational