Back to index

# An Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks

Dah-Ming Chiu and Raj Jain, DEC

One-line summary: Additive increase and multiplicative decrease for congestion control are necessary and sufficient conditions for convergence to an efficient and fair state regardless of the initial network state.

## Overview/Main Points

• Assumptions: all users sharing same bottleneck link see same congestion feedback; control loop for all users is a synchronous discrete-time operation (all users see feedback and react to it, then more feedback comes)
• Discrete-time functions:
• xi(t): bandwidth demand of i'th user.
• y(t): binary-valued congestion indication, sent to all users
• ui(t): user-effected change in demand based on y(t) feedback. ui(t)=f(xi(t), y(t)). Paper considers case where f is linear: f=A+Bxi(t) for increase, f=a+bxi(t) for decrease.
• Properties to optimize for:
• Efficiency: how close is sum(xi) to Xgoal (the desired bandwidth of the link)?
• Fairness: defined as sum(xi)2/(n sum(xi2)), so that:
• fairness is in [0.0,1.0]
• dimensionless
• continuous function of allocations
• if only k of n users share resource, fairness is k/n.
• Distributedness: no user can know value of n.
• Convergence: responsiveness measures latency of system to approach goal state, smoothness measures size of oscillations about the goal state.
• Graphical representation: in an n-dimensional space where each axis is one user's allocation. Example in 2D is explored.
• y=x is the fairness line. (All points on any line passing through the origin have the same fairness, since multiplying both allocations by the same factor gives them the same share (fairness formula is invariant to multiplication)). In order to achieve fairness, system should converge to a point on this line.
• Efficiency line is y+x=Xgoal (maximum utilization). To get to efficiency, system must move toward this line.
• Efficinecy and fairness lines intersect at a single point, the optimum operating point.
• Graphical representation of policy operations:
• Additive increase corresponds to moving "outward" along a line of slope 1.
• Multiplicative decrease corresponds to moving "inward" along a line connecting the point to the origin.
• Etc.
• Development of constraints on A, B, a, b yields the following conclusions:
• A,B,a,b cannot be of opposite signs and cannot be negative, therefore must all be >0
• Specifically, must have A>=0, B>=0, a>=0, 0<=b<1, to insure that fairness goes up during utilization decrease and either goes down or stays the same during utilization increase
• To guarantee convergence to efficiency in the face of distributedness (no user can know n), actually need the stronger conditions: A>0, B>=1, a=0, 0<=b<1.
• Proposition: in order to satisfy distributed convergence to efficiency and fairness without truncation (extreme backoff), we need mlutplicative decrease and additive increase, with the coefficients constrained as described above.
• Practical considerations:
• allocations must be an integral number of packets. How are convergence conditions affected by rounding?
• Reasonable to implement (amount of hardware, complexity of code, etc.)?
• How does delayed feedback affect control?
• What is marginal utility of multiple bits of feedback info?

## Relevance

Mathematical (and nice graphical) treatment of fairness and efficiency that yields a nice and intuitively satisfying result.

## Flaws

As pointed out by the authors. Also, the graphical "proofs" are nice but not clear how some of them extend to multiple dimensions.
Back to index