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