Saturday, September 6, 2008

Congestion Avoidance and Control

This is a seminal paper on congestion control for TCP. The authors say that the initial implementation of window-based TCP can behave wrongly in case of congestion. The algorithms proposed in the paper use the principle of "packet conservation" to gain network stability. Conservation principle means that when the connection is running stably with full window of data being transmitted, no new packet should be put into the network until an old packet leaves the connection.

Three problems that violate packet conservation: (as stated in the paper)
  1. The connection does not get equilibrium
  2. A sender injects a new packet before an old packet has exited
  3. The equilibrium cannot be reached because of resource limits along the path

Solution for problem 1 is proposed by the slow start algorithm. This algorithm is used to start self-clocking systems. A self-clocking system generates packet at the rate at which acks are sent. It is difficult to start a self-clocked system thus the slow start algorithm gradually increases the amount of data in-transit. Per-connection variable 'cwnd' variable is set to 1 in case of a start or restart and is incremented by 1 in case of an ack.

Problem 2 is addressed by improving the retransmit timer. In order to survive heavy loads the timer should consider variation of the round trip time as well. Variation estimates help in eliminating unnecessary retransmissions. Also, exponential back off after retransmit aids in stabilizing an unstable system

In order to address problem 3 the authors say that if the timers are working correctly then in case of a packet loss the main reason can be congestion (given loss due to physical damages are rare). For congestion avoidance a additive increase and multiplicative decrease algorithm is proposed. At the end the authors discuss how congestion control at the gateway is required for fair sharing of the bandwidth.

Relevant background needed for this paper requires a good understanding of TCP protocol and its working. Most of the algorithms discussed in the paper are used today and have a great impact on Internet. With the growth of the Internet one of the main problems that had to be addressed was congestion control and avoidance. This is an early paper that proposes how to solve the major concerns. It also shows how problems in computer networks were actually well-studied in the context of control theory and queuing theory.

Another aspect that comes into picture after reading this paper is about security. These algorithms rely on the fact that the receiver is not misbehaving. There is a paper by Savage et al. that shows how a misbehaving receiver can make the sender go fast without losing end-to-end reliability.

This paper should be kept in the syllabus because the algorithms proposed lay the platform for the congestion control algorithms used these days.

No comments: