universally misclassified as
congestion (a completely different and much
rarer pathology). These theories usually assume Poisson arrival processes,
which are, by definition, uncorrelated.
The arrivals of a closed-loop, reliable
transport process such as TCP are
completely correlated, resulting in
an arrival and departure rate equality
that theorists have dismissed as unnatural and wildly improbable. Since
normal cures for congestion such as
usage limits or usage-based billing
have no effect on bufferbloat but annoy customers and discourage network use, addressing the real problem
would be prudent.
The bufferbloat problem, making
the window match the pipe size, is
hard to address. Window sizes are chosen by senders while queues manifest
at bottleneck gateways. It is difficult
for senders to compute a window size,
since both terms—bottleneck bandwidth and RTT—change constantly
as connections come and go, paths
change because of rerouting, layers 1
and 2 protocols adapt bandwidth for
changing physical conditions, and
so on. Since queues can be directly
measured at the bottleneck, the most
promising approach is to detect the
problem there, then signal senders to
reduce their windows (via TCP congestion-control mechanisms).
Reliable detection is difficult, however. The big queue at the start of
Figure 3 is necessary for connections
to get started, so queue magnitude
contains no information about excess
queue. The fact that the problem lies
in the flat part of Figure 3 has caused
some researchers to look at the time
the buffer is occupied as an indicator.
Figure 4 shows the queue vs. time
for a TCP receiver that sends one
ack per window rather than one per
packet. This is a legal, though brittle,
operating mode used by some com-
mercial operating systems with very
high per-packet overhead to reduce
the number of acks generated so as to
perform credibly in benchmark tests.
This kind of queue length variation is
also seen in Web traffic—a superposi-
tion of mostly small transfers that are
essentially all startup transient. Since
this ack policy means a full window of
packets is always delivered as a back-
to-back burst, the initial turn-on tran-
sient repeats every RTT and the buffer
is always occupied. The window ex-
actly fills the pipe, however, and there
is no excess queue, so any attempt to
reduce this queue will result in poor
utilization of the bottleneck. Thus, oc-
cupancy time contains no information
about excess queue.
Controlled Delay management
In early 1998, we set out to understand why the original RED was difficult to configure and came up with
a new RED algorithm (described in
a talk and an unpublished paper10, 12)
that needed only one parameter: the
queue’s output bandwidth or average departure rate. Despite improvements in performance, issues remained—almost anything worked for
long-lived TCP transfers and almost
nothing worked for bursty traffic. In
the decade since, many researchers
have made strides in AQM, but no one
has produced an AQM that has the following characteristics:
˲It is parameterless—it has no
knobs for operators, users, or implementers to adjust.
˲ It treats good queue and bad queue
Figure 3. Queue size vs. time.
Queue length
Time
Figure 4. Queue size vs. time for ack-per-window receiver and 20-packet window.
Queue length
Time