Monday, September 8, 2008

Analysis of Increase and Decrase Algorithms for Congestion Avoidance in Computer Networks

This paper presents a largely mathematical analysis of different algorithms for congestion avoidance. They show that congestion control by itself leads to a steep decrease in throughput and a steep increase in response time. So they instead focus on congestion avoidance, i.e. using a preemptive measure to help prevent from congestion from occurring in the first place.

In particular the paper looks at behavior relating to a single bit of information coming from the other side - a "congestion experience" bit. It looks different kinds of behavior of a state going from no congestion to congestion, and what kind of state this leads to. The main goals were as follows:

efficiency - maximize throughput by pushing the state of the system as close to the "knee" as possible
fairness - equal bandwidth to all users
distributedness - doesn't require knowledge of the state of the system
convergence - the state of the system comes to a set state after oscillating between the congestion bit

The methods analyzed were additive increase/additive decrease, multiplicative increase/additive decrease, multiplicative increase/multiplicative decrease, and additive increase/multiplicative decrease. Through some thorough mathematical analysis, the paper shows that the only sound method to satisfactorily meet all goals was additive increase and multiplicative decrease.

The scope of this paper was fairly limited, focusing only on this one particular part of congestion avoidance. The depth of the mathematical proofs made it a bit difficult to read at times, but it does show quite well that additive increase with multiplicative decrease is the way to go. I would have liked to see the paper talk a bit more about information from the system other than simply the "congestion" bit. Dropped packets are left out (although presumably this could simply be interpreted as reaching congestion), and no other congestion avoidance methods are mentioned.

Clearly this is only one of the ways that congestion avoidance can be implemented, and I believe this paper was intended to be a snippet. I thought it weaved in the idea of convergence well, and the binary example does allow the convergence to be emphasized. The diagrams were also a welcome supplement to the mathematical proofs.

No comments: