760 likes | 935 Views
Congestion Control In The Internet. JY Le Boudec Fall 2009. Plan of This Module. Congestion control: theory Application to the Internet. Theory of Congestion Control. What you have to learn in this first part: What is the problem; congestion collapse Efficiency versus Fairness
E N D
Congestion Control In The Internet JY Le Boudec Fall 2009 1
Plan of This Module • Congestion control: theory • Application to the Internet 2
Theory of Congestion Control What you have to learn in this first part: • What is the problem; congestion collapse • Efficiency versus Fairness • Forms of fairness • Forms of congestion control • Additive Increase Multiplicative Decrease (AIMD) 3
Inefficiency • Network may lose some packets • Assume you let users send as they want • Example 1: how much will S1 send to D1 ? S2 to D2 ? S1 D1 C4 = 100 Kb/s C1 = 100 Kb/s C3 = 110 Kb/s S2 C5 = 10 Kb/s D2 C2 = 1000 Kb/s 4
Solution • Both send 10 kb/s • Inefficient ! A better allocation is: S1: 100 kb/s S2: 10 kb/s • The problem was that S2 sent too much C4 = 100 Kb/s S1 C1 = 100 Kb/s D1 x41 = 10 C3 = 110 Kb/s S2 x52 = 10 D2 C2 = 1000 Kb/s C5 = 10 Kb/s 5
Congestion Collapse source i node i+1 link i node i link (i-1) link (i+1) • How much can node i send to its destination ? 6
Solution source i node i+1 link i node i link (i-1) link (i+1) • We can solve in close form the symmetric case (all links and sources the same) • If < c/2 there is no loss: • Else: i i’ i’’ 7
This is congestion collapse ! • Take home message • Sources should limit their rates to adapt it to the network condition • Otherwise inefficiency or congestion collapse may occur • Congestion collapse means: as the offered load increases, the total throughput decreases 10
Tout se complique • A network should be organized so as to avoid inefficiency • However, being maximally efficient may be a problem • Example : what is the maximum throughput ? 11
Solution 12
Take Home Message • Efficiency may be at the expense of fairness • What is fairness ? 13
Definitions of Fairness • In simple cases, fairness means same to all • May lead to stupid decisions • Example 14
Definitions of Fairness • A better allocation, as fair but more efficient, is: • This is the max-min fair allocation for this example 15
Max-Min fairness • We say that an allocation is max-min fair if it satisfies the following criterion: If we start from this allocation and increase the rate of source s, then we must decrease the rate of some other (less rich) source s’ 16
Example • Are these allocations max-min fair ? X1 X2 17
Answer • No; I can increase x1 without modifying anyone • Yes; if I try to increase x0 I must decrease x2 and x2· x0 if I try to increase x1 I must decrease x0 and x0· x1 if I try to increase x2 I must decrease x0 and x0· x2 18
The Maths of Max-Min Fairness • Given a set of constraints for the rates • If it exists, the max-min fair allocation is unique • There exists one max-min fair allocation if the set of feasible rates is convex (this is the case for networks, we have linear constraints) • For a set of feasible rates as in our case (the sum of the rates on every link is upper bounded), the (unique) max min fair allocation is obtained by water-filling 19
Water-Filling Example • Step 1: • Rate t to all sources • Increase t until t = c/10 • Freeze the values for sources that use a link that is fully used x0 = c/10 x2 = c/10 • Step 2 • Rate t to all non frozen sourcesx1 = t • Increase t until t = 9c/10 • Freeze the values for sources that use a link that is fully used x1 = 9c/10 20
Proportional Fairness • Max-min fairness is the most egalitarian, but efficient, allocation • Sometimes too egalitarian • I sources, ni=1 • Max-min fair allocation is xi= c/2 for all • For I large, one might think that x0 should be penalized as it uses more of the network • This is what proportional fairness does 21
Definition of Proportional Fairness • Two ideas • Relative shares matter, not absolute • Global effect 22
Example • Are these allocations proportionnally fair ? X1 X2 23
Solution • I can increase x2 alone and the average rate of change is positive. The answer is: No • Let us try to decrease x0 by . This allows us to increase x1 by and x2 by /9. For small enough (· 0.1), the allocation is feasible.The average rate of change is 24
The Maths of Proportional Fairness • Given a set of constraints for the rates that is convex: • The proportionally fair allocation exists and is unique • It is obtained by maximizing over all feasible allocations: 25
Example 26
Utility Fairness • One can interpret proportional fairness as the allocation that maximizes a global utility. The utility of an allocation, to source I, is here the log of the rate • If we take some other utility function we have what we call a utility fairness • Max-min fairness is the limit of utility fairness when the utility function converges to a step function U(x) = ln (x): proportional fairness U(x) = 1- (1/x)m: m large => ~ max min fairness 28
Take Home Message • Sources should adapt their rate to the state of the network in order to avoid inefficiencies and congestion collapse • This is called “congestion control” • A rate adaptation mechanism should target some form of fairness • E.g. max-min fairness or proportional fairness 29
Additive Increase Multiplicative Decrease • It is a congestion control mechanism that can be implemented end to end • It is the basis for what we have in the Internet • We explain it on a simple example 31
A Simple Network Model • Network sends a one bit feedback • Sources reduce rate if y(t)=1, increase otherwise • Question: what form of increase/decrease laws should one pick ? Feedback y(t) Rate xi(t) 32
Linear Laws • We consider linear laws if y(t) == 1 then xi(t+1) = u1 xi(t) + v1 if y(t) == 0 then xi(t+1) = u0 xi(t) + v0 • We want to decrease when y(t)==1, so • We want to increase when y(t)==0, so 33
Example • u1 = 0.5, v1 =0, u0 = 0, v0 = 1 (unit: Mb/s) 34
Impact of Fairness • Does such a scheme converge to a fair allocation ? • Here max-min and proportionally fair are the same (i.e. same rate to all) • The scheme may not converge as sources may not be stationary • But we would like that the scheme increases fairness 35
Example 40
Slow Start • AIMD’s fairness can be improved if we know that one source gets much less than some other • For example, if initial condition is a small value • We can increase more rapidly the rate of a source that we know is below its fair share • Slow Start is one algorithm for this • Set initial value to the Additive Increase v0 • Increase the rate multiplicatively until a target rate is reached or negative feedback is received • Apply multiplicative decrease to target rate if negative feedback is received • Exit slow start when target rate is received target rate 41
Source 3 3 sources u1 = 0.5, v1 =0, u0 = 0, v0 = 0.01 (unit: Mb/s) 3rd source starts with rate v0 Without Slow Start time Source 1 Source 3 rate (all 3 sources) With Slow Start Source 1 time 42
Plan of This Module • Congestion control: theory • Application to the Internet 44
Congestion Control in the Internet is in TCP • TCP is used to avoid congestion in the Internet • in addition to what was shown: • a TCP source adjusts its window to the congestion status of the Internet(slow start, congestion avoidance) • this avoids congestion collapse and ensures some fairness • TCP sources interprets losses as a negative feedback • use to reduce the sending rate • UDP sources are a problem for the Internet • use for long lived sessions (ex: RealAudio) is a threat: congestion collapse • UDP sources should imitate TCP : “TCP friendly” 45
TCP Congestion Control is based on AIMD • TCP adjusts the window size (in addition to offered window ie credit mechanism) • W = min (cwnd, OfferedWindow) • Principles of TCP Congestion Control • negative feedback = loss, positive feedback = ACK received • Additive Increase (1 MSS), Multiplicative Decrease (0.5) • Slow start with increase factor = 2 • Reaction to loss depends on nature of loss detection • Loss detected by timeout => slow start • Loss detected by fast retransmit or selective Ack => no slow start 46
A Trace Bytes 60 30 0 0 1 2 3 4 5 6 7 8 9 seconds twnd B C A cwnd created from data from: IEEE Transactions on Networking, Oct. 95, “TCP Vegas”, L. Brakmo and L. Petersen 47
A Trace Bytes twnd B C A 60 cwnd 30 0 0 1 2 3 4 5 6 7 8 9 seconds B slow start C congestion avoidance congestion avoidance created from data from: IEEE Transactions on Networking, Oct. 95, “TCP Vegas”, L. Brakmo and L. Petersen 48
How AIMD is Approximated 2 3 4 twnd = 1 MSS • Multiplicative decrease (on loss detection by timeout) • twnd = 0.5 current_window • twnd = max (twnd, 2 MSS) • Additive increase • for each ACK received • twnd = twnd + MSS MSS / twnd This is equivalent in packets to • twnd = min (twnd, max-size) (64KB) 49
How multiplicative increase (Slow Start) is approximated cwnd = 1 seg 2 3 4 5 6 7 8 • non dupl. ack received during slow start -> cwnd = cwnd + MSS (in bytes) (1)if cwnd = twnd then transition to congestion avoidance (1) is equivalent in packets to 50