From: Seth Cooper (scooper@cs.washington.edu)
Date: Sun Oct 17 2004 - 23:16:40 PDT
This paper describes some of the mechanisms in TCP that help it to
control congestion in the Internet. The mechanisms attempt to achieve
"conservation of packets", which means that in a full network running
stably, new packets are only put into the network when old packets
leave. A large part of this is achieved by adding a "congestion window"
(also known as cwnd) to the connection state. Using slow start, cwnd
begins at 1, then grows exponentially until packets begin to get lost.
Congestion avoidance uses an additive increase/multiplicative decrease
strategy to slowly test increasing throughput and quickly back off once
packets are lost. The sender uses the minimum of cwnd and the receivers
advertised window.
One of the strengths of this paper is the mathematical background it
presents for the various congestion control strategies. For example,
when discussing retransmissions, the paper mentions that exponential
backoff is the only acceptable strategy. The paper doesn't go into the
full proof, but offers convincing evidence. The paper offers similar
support for using additive increase/multiplicative decrease in
congestion avoidance.
A weakness of this paper is that a large part of the rationale for
their strategies rests on the fact that the way the network reports
congestion is by dropping packets. Thus, when packets are lost, TCP
assumes it is because the network is congested and reduces its sending
rate. One could imagine other scenarios, perhaps in a wireless network
situation, where packet loss is not due to network congestion, but
rather packet corruption. The appropriate action then might be to
continue sending at the current rate, or even to increase the rate of
sending to increase the likelihood that an appropriate number of packets
will get through to the receiver. In this way, TCP violates the layer
abstraction by assuming things about lower layers that might not be true.
This work is relevant today because we are living with an Internet in
which these TCP decisions have been widely deployed. TCP is a widely
used transport protocol, so the design decisions affect how most
applications will use Internet bandwidth. We must also be aware of how
TCP will interact with lower layers that don't necessarily match its
assumptions.
This archive was generated by hypermail 2.1.6 : Sun Oct 17 2004 - 23:16:37 PDT