Saturday, September 6, 2008

Analysis of the Increase and Decrease Algoorithms for Congestion Avoidance in Computer Networks

An abstract setting where there are multiple nodes competing for a single resource is considered. The total resource requirement is the sum of each nodes' requirement. The goal is to control the amount of requirements of each node by providing a binary feedback indicating the load of the resource so that the resource is utilized efficiently (meaning the system operates near its "knee"), fairly (meaning the resource capacity is equally divided among nodes), and without having to provide the details to the nodes beyond the binary feedback.

The first control method proposed is a linear control where the state equation is linear. The state equation used in each time slice is determined by the feedback signal. When an increase is requested, by using an additive control the efficiency can be improved while the fairness stays the same. When a decrease is requested, by using a multiplicative control, the efficiency and fairness can be improved. It is ideal to simultaneously minimize the time to convergence and overshoot but the reality is that these do not move in the same direction with respect to the control levers. This is a result somewhat expected since taking big steps ensure a rapid approach to the goal but results in a large scale of oscillation. The paper finishes with a non-linear control alternative and states some practical issues.

This paper restricted its attention to a simple confined setting which helps to convey the important ideas. The overall approach was very reasonable and well explained. I did notice something that was wrong: p.12 the time to reach the goal. The top part should be when 0 < b, b \neq 1 and the bottom part b=1, not b=0. I am curious about whether such mechanism is currently implemented in today's Internet. Since the nodes in this papers would represent the routers, are routers able to adjust the rate at which packets are sent out? A more realistic model would involve resources forming a network structure. This would have the added complexity of having the resource capacity itself being controlled according to the feedback provided by the resource it is using.

No comments: