From: Craig M Prince (cmprince@cs.washington.edu)
Date: Mon Oct 18 2004 - 01:57:35 PDT
Reading Review 10-18-2004
-------------------------
Craig Prince
The paper titled "Congestion Avoidance and Control" proposed a
modification to the TCP end-hosts in order to allow networks to handle
congestion well. The paper begins by explaining the problems with the
previous implementation of TCP and then went on to suggest changes to
address each of these problems (which are still used today).
A good analysis is done to determine exactly what factors cause
congestion. The first of which is overwhelming the network before it gets
to a steady state (i.e. sending too many packets initially). They handle
this by what they call slow-start -- namely that you slowly ramp up the
total number of outstanding packets allowed (whenever you get an ACK). The
second issue is a fix for how end-hosts should calculate their timeout.
This fix provides a better indication of what the true delay in a network
under load might be and so fewer duplicate packets are sent. The final
observation and fix is meant to avoid congestion before it happens. The
solution is the well-known additive increase/multiplicative decrease
congestion window scheme. The beauty of this scheme is that it allows load
to quickly be taken off the network (multiplicative decrease) as soon as a
single packet gets dropped, while still allowing all the available
bandwidth to be used by slowing increasing the load (additive increase).
Another thing I liked about this paper is that it provided intuition as to
why their proposed solutions were the correct ones -- as opposed to simply
providing a bunch of equations and proofs.
One of the coolest aspects of the congestion control mechanism presented
is how packet loss and timeouts are used as implicit signals from the
network that congestion has occured. This is opposed to having some
explicit packet based notification system to signal congestion. The beauty
of the proposed implicit method is that it handles congestion
control/avoidance by neither requiring additional network traffic nor
modifying the existing packet structures.
This paper illustrates how often times problems in a protocol are
overlooked until they actually become a nuisance. In this case the old
congestion avoidance system worked fine for small loads and it wasn't
until the network was put under higher load that the congestion control
mechanism failed miserably. This should serve as a valuable lesson when we
are designing our own protocols.
This archive was generated by hypermail 2.1.6 : Mon Oct 18 2004 - 01:57:36 PDT