CS558a Syllabus & Progress

### Jain's Congestion Control Theory

• Taking up the second question: how fast

• Recall that we must find answer to two questions to develop a congestion control method:

 How to detect congestion How fast do you change transmission rate when you detect congestion/no congestion

• When have looked at the first question

• The second question has been studied extensively by Raj Jain and this web page is based on his paper: click here

• Question: How FAST should you increase/decrease Transmission Rate

• Assume you have a way to obtain a binary congestion indication signal from the network:

 congestion indication = 0 means no congestion congestion indication = 1 means congestion

• The next important question in the design of the congestion avoidance method is:

 How fast do you decrease the transmission rate if there is congestion How fast do you increase the transmission rate if there is no congestion

• Important considerations in the design of the congestion control method:

• The congestion control method must be fair:

 Ideally, each sender should obtain the same amount of bandwidth (transmission rate) for its use

• The congestion control method must be stable:

 The method should converge to a stable state (An unstable system wil fluctuate erratically (swings wildly)

• Other design criteria could include "efficiency" and "distributed" (no central node that makes the allocation decisions)

• The linear increase/decrease method

• The following material is taken from:

 Raj Jain paper: "Analysis of the Increase and Decrease Algorithms for Congestion Avoidance in Computer Networks" - click here

• Linear function: is a line

 ``` y = a x + b ```

• Definitions:

 x(t) be the current transmission data rate x(t+1) be the transmission data rate after the rate adjustment (made according to the congestion indication)

• Jain has studied the use of linear increases/decreases in congestion control

I.e., the change in transmission rate is a linear function

Linear increase/decrease congestion control:

• If congestion indication = 0 (no congestion), then:

 ``` x(t+1) = Aincrease + Bincrease * x(t) ```

where Aincrease and Bincrease are constant (that will make x(t+1) less than x(t)).

• If congestion indication = 1 (congestion), then:

 ``` x(t+1) = Adecrease + Bdecrease * x(t) ```

where Adecrease and Bdecrease are constant (that will make x(t+1) greater than x(t)).

• Additive increase/decrease and multiplicative increase/decrease are special cases of linear increase/decrease function

 ``` x(t+1) = x(t) + Aincrease (Aincrease > 0) x(t+1) = x(t) + Adecrease (Adecrease < 0) ```

• Multiplicative increase/decrease:

 ``` x(t+1) = Bincrease * x(t) (Bincrease > 1) x(t+1) = Bdecrease * x(t) (Bdecrease < 1) ```

• Jain has mainly focused on these two congestion control technqiues in his paper

• Simple Analysis: 2 flows

• The behavior of the congestion control mechanism is understood clearly by studying the behavior of only two connections that share a bottle neck router:

• Assumptions:

• The capacity of the bottleneck router is B (bps)

• User 1 transmits with a data rate U1 (bps)

• User 2 transmits with a data rate U2 (bps)

• User 1's and user 2's share a common buffer in the bottleneck router

• The bottleneck router will report the same feedback to both users

I.e.:

 If the bottleneck router is congested (and drops packets), then packets from both streams are dropped

• Representation of the network state:

Notes on the above figure:

• X-axis represents User 1's transmission data rate U1

• Y-axis represents User 2's transmission data rate U2

• A point in the grid represents a certain transmission state of the two users.

Example:

 The point A in the figure represents the event that user 1 is transmitting at a data rate U1 = x and user 2 is transmitting at a data rate U2 = y

• The red line in the figure represent all operational points where user 1 and 2 collectively are transmitted at network capacity B

• The magenta line represent all operational points where user 1 and 2 transmits with the same data rate

(i.e., fair !)

Quandrants A, B, C and D:

• Points in the A quadrant are such that:

 Total transmission data rate is less than the capacity of network (i.e., not congested) Data rate of user 2 is larger than data rate of user 1

• Points in the B quadrant are such that:

 Total transmission data rate is less than the capacity of network (i.e., not congested) Data rate of user 1 is larger than data rate of user 2

• Points in the C quadrant are such that:

 Total transmission data rate is greater than the capacity of network (i.e., congestion !!!) Data rate of user 2 is larger than data rate of user 1

• Points in the D quadrant are such that:

 Total transmission data rate is greater than the capacity of network (i.e., congestion !!!) Data rate of user 1 is larger than data rate of user 2

• The congestion signals in the different quandrant states

• Quandrants A and B:

 The the system is operating in the quadrants A or quandrant B, users 1 and 2 will receive the congestion = 0 (not congested) signal Correspondingly, both users will increase their data rate.

• Quandrants C and D:

 The the system is operating in the quadrants A or quandrant B, users 1 and 2 will receive the congestion = 1 (congested) signal Correspondingly, both users will decrease their data rate.

• The effect of additive increase/decrease

• Suppose before the rate adjustment, user 1's data rate is x and user 2's data rate is y

• Because both users will receive the same congestion indication

• Data rates after a rate increase:

 User 1: x + a          User 2: y + a

• Data rates after a rate decrease:

 User 1: x − a          User 2: y − a

• The following figure show the effect of the additive increase/decrease method to adjust the transmission data rates:

• The effect of multiplicative increase/decrease

• Data rates after a rate increase:

 User 1: b × x          User 2: b × y

• Data rates after a rate decrease:

 User 1: x / b          User 2: y / b

• The following figure show the effect when the congestion control uses an multiplicative invrease/decrease method to adjust the transmission data rate:

• The behavior of the ideal congestion control method

• The following figure shows the behavior of the ideal congestion control method:

Notes:

• Starting from any operatinal point, the system moves towards the ideally fair and maximum throughput point.

• The amplitude of the "swings" decreases monotonically (this signals stability - if the swings becomes larger, convergence is not guarantee !)

• The amplitude of the swings should decrease rapidly

• The following figure shows the effect of the "additive increase and additive decrease" method:

Conclusion:

 Method does not converge !!!

• The multiplicative increase and multiplicative decrease congestion control method

• The following figure shows the effect of the "multiplicative increase and multiplicative decrease" method:

Conclusion:

 Method does not converge !!!

• The multiplicative increase and additive decrease congestion control method

• The following figure shows the effect of the "multiplicative increase and additive decrease" method:

Conclusion:

 Method diverges away from the ideal point !!!

• The additive increase and multiplicative decrease congestion control method

• The following figure shows the effect of the "additive increase and multiplicative decrease" method:

Conlusion:

 Bingo !!! Method moves towards the ideal point !!!

• Conclusion

• The additive increase and multiplicative decrease scheme will move the system towards a stable and fair equilibrium.

• Post Script

• Raj Jain's theory has held up for over 20 years.

• In Raj's days, network speed wehere around 100Kbps, at most 1Mbps

• Things has changed quite a bit, we have networks with speeds above 1Tbps (1,000,000,000,000 bps).

• In high speed networks, additive increase is TOO SLOW to allow the sender to fully utilize all the network capacity.

• Recent network research is proposing to use multiplicative increase and multiplicative decrease to control congestion.

The factor used in multiplicative decrease is different (it is larger) than the one used in the multiplicative increase