decbit
Networks
K.K.Ramakrishnan and Raj Jain, Digital Equipment, 1990
Summary. The authors propose a congestion avoidance scheme in networks
with connectionless network layers. The scheme uses minimal feedback (so as
to not generate superfluous traffic), converges quickly and is fair. Routers
calculate a exponentially weighted running average queue size. If the
average queue size is greater than one, than a congestion indication bit
is set in the packet header. The ``user'' (which could be either the source or
the destination depending on the network architecture) examines the
congestion indication bit
and, if the bit is set, will increase of decrease its window size.
Some terminology.
Flow control is the policy used to ensure that the link has sufficient
buffers at the destination (selfish). Congestion control is a policy
used to coordinate the links in the network so
that the congestion doesn't occur (social).
The point at which throughput falls off rapidly is called the cliff and
the point at which additional throughput results in rapidly increasing
response time the knee. Congestion avoidance attempts to operate the
network at the knee whereas congestion control detects the fact that the
network has reached the cliff and reducesthe load so that the network can
recover.
The authors propose a congestion avoidance scheme. The goals are to
- Operate efficiently. Efficiency is a function of the power. Power is
throughput/responseTime.
- Operate fairly.
Feedback signal. How is the current condition assessed? The authors .considered two algorithms for feedback signals: simple threshold and
hysteresis. "The hysteresis algorithm...indicates congestion when the queue
size is increasing and crosses a threshold value, for instance,T2. The
feedback signal continues to indicate congfestion as the queue size
decreases, till it reaches the smaller threshold value." The idea behind
hysteresis is to minimize the on-off signals (which we don't send in this
scheme so I don't know why this is considered). Simple threshold is the
obvious algorithm: report congestion when above some threshold. Under
simulation, they found that the power is maximum when the hysteresis is
``non-existent'' and the threshold value is 1.
Feedback filter. How do we filter the current condition to determine
congestion? The authors use an EWRA because it
- does not communicate transient effects and
- is fair (if we used just the current feedback signal, some users would
receive congestion indication and others would not).
When the EWRA is >= 1, the congestion bit is set. Queue size includes the .packet currently in service. The period over which the average is calculated
is the regeneration cycle (last busy+idle cycle) plus the current period.
The average is the (integral) area under the queue size
curve over this interval. They considered using just the previous
regeneration cycle but determined that this could cause the filtered output
to be inaccurate when the current cycle
was long.
Decision policy. Once the feedback signal is filtered at the router and
forwarded to the user, there are four aspects to the user's decision policy
for determining the window size:
- Decision frequency. How often will the window size be updated? If the
window size were updated for every packet, oscillation would result. Rather,
the window size is updated only
after a waiting period has gone by. If Wp is the number of packets sent in
the previous cycle and Wc is the number of packets sent in the current cycle,
we wiat for (Wp+Wc) packets to be acknowledged. This allows the effects of
the update to be reflected and avoids oscillations.
- Use of received information. Will the user use all of the information
received from the router? The Wp packets will be ignored; only the Wc
packets' bits will be examined.
- Signal filtering. For simplicity, increase the window size if >50% of the
bits are set; decrease otherwise.
- Increase/Decrease Algorithms for Window Size. Use +/*. +/+ is unfair.
There is
a tradeoff between the timeliness of convergence and the quantity of
oscillations when setting
the d factor for the multiplicative decrease: Small values of d
achieve converge more
quicly but tend to oscillate more once they reach that point. Authors
decided to minimize oscillations: d = .875.
Simulations. A number of simulations were run both to determine the above .details and to determine if the scheme worked. 3 scenarios previously
outlined as essential for an acceptable scheme were tested:
- new user introduced
- bottleneck introduced
- packet sizes randomly distributed
All tests produced reasonable behavior. .