Instructor slides

Analysis of the increase and
Decrease Algorithms for Congestion
in Computer Networks
Slides originally prepared by:
Umair Haroon
Portions of the slide/figures were adapted from :
http://cs.northwestern.edu/~akuzma/classes/CS495-s06/
Congestion avoidance/control
• What is Congestion avoidance?
Prevents the network from becoming congested while
allowing it to operate in the optimal region of low delay
and high throughput.
• What is Congestion control ?
Allows the network to recover from congested state.
Both are resource management problems in which the
system senses its state and feeds this back to its user
who adjusts their controls.
Paper objectives and key point
• Comparison of:
• Schemes or algorithms?
• Scheme: binary feedback
• Algorithm (control functions) to increase or decrease the
load (through window or rate)
• A scheme (binary feedback) may use different algorithms
• Comparison using performance metrics (later!)
• Key point:
• a simple additive increase and multiplicative decrease
algorithm is more efficient and farer than alternatives
Network performance and load
Point of
Congestion
Point of
Congestion
• Cliff: point at which packets start getting lost if there is an
increase in load. Throughput falls off rapidly after this point
• Knee is the point after which increase in throughput is small but
there is a large increase in resulting response time.
• congestion avoidance: allows the network to operate at the knee
• congestion control: tries to keep the network operating in the
zone to the left of the cliff
Why the network load oscillates
around the knee?
• A properly designed congestion avoidance
scheme will ensure that:
• users are encouraged to increase their traffic as long as
this does not significantly affect the response time
• and are required to decrease if that happens
Congestion avoidance using Binary
Feedback Scheme
• Resources in network monitor usage
• determine if they are loaded below or above an optimal
load level
• From resource [feedback to the user]
• 1 (for overload) or
• 0 (if under loaded)
• Using congestion experience bit in packet header
• User then adjust their load using an increase /
decrease algorithm
Paper assumptions
• Feedback and control loop for all users is
Synchronous
• all users receive the same feedback and react to it
• Does it reflect the real world situation?
• Of course not
Managing distributed resources
• Centralized algorithm
o
Information (about user demands) flows to the resource
managers and the decision of how to allocate the resource
is made at the resource [Sanders86]
• Decentralized algorithms
o
o
Decisions are made by users while the resources feed
information regarding current resource usage [Jaffe81,
Gafni82, Mosely84]
This paper:
o
o
decentralized decision making algorithms
feedback in the form of a binary signal which indicates
whether a resource is overload or under loaded
Control System
Control examples considered
o Four
examples of linear control
o
Multiplicative Increase/Multiplicative Decrease
o
Additive Increase/Additive Decrease
o
Additive Increase/Multiplicative Decrease
o
Additive Increase/ Additive Decrease
o In
o
o
all cases:
Binary feedback
Increase rate on good news, decrease on bad news
Criteria for evaluation:
• Efficiency
o
Resource usage (allocation X(t)) is close to the knee point
o
o
o
Overload (X(t) > Xgoal)
Underload (X(t) < Xgoal)
Both undesirable and inefficient
• Fairness
o
o
Users are partitioned into equivalent classes
o
according to which resource is their primary bottleneck
o
to have equal share of the bottleneck resource
Users in the same class
Criteria for evaluation:
• Distributedness
o
o
o
Knowledge of the state of the system at clients?
Available at resource
Too much to be conveyed to individual clients
• Convergence
o
o
o
o
Time taken (To goal state from any starting state)
In our case:
o
o
the system does not converge to a steady state but
reaches an equilibrium where it oscillates around the optimal state
o
time to reach this equilibrium state.
o
size of the oscillations
Responsiveness:
Smoothness:
Convergence is determined by:
• Responsiveness (Time to reach equilibrium)
• Smoothness (size of oscillations around the
optimal state)
Vector Representation of the Dynamics
• At Efficiency line:
x1 +x2 = Xgoal
• At fairness line:
x1 = x2
Both lines intersect at
optimal point
Goal is to bring system
to this point regardless
of the starting state
Example of Additive Increase/
Multiplicative Decrease Function
• X0 below efficiency line
• both users increase to x1
• X1 above the line
• both decrease
multiplicatively
• Fairness increasing
slightly at every cycle
• Eventually system
oscillates around the
goal
Additive Increase/Additive decrease does
not converge
• Not all control
policies converge
• This system
converges to
efficiency but not
fairness
Paper limitations
• Real world systems are asynchronous (paper
assumes synchronous)
• Delayed feedback (real world systems can
have varying delay)
• Does not address increased bits of feedback
(only one)
• Guess the current number of users n
Conclusion
• Examined the user increase/decrease policies under
the constraint of binary signal feedback
• Formulated a set of conditions that any
increase/decrease policy should satisfy to ensure
convergence to efficiency and fair state in a
distributed manner
o
The decrease must be multiplicative to ensure that at
every step the fairness either increases or stays the same
• Showed that AIMD is the optimal policy for
convergence to fairness