Presentation is loading. Please wait.

Presentation is loading. Please wait.

Congestion Control In The Internet JY Le Boudec Fall 2009 1.

Similar presentations


Presentation on theme: "Congestion Control In The Internet JY Le Boudec Fall 2009 1."— Presentation transcript:

1 Congestion Control In The Internet JY Le Boudec Fall 2009 1

2 Plan of This Module 1.Congestion control: theory 2.Application to the Internet 2

3 Theory of Congestion Control What you have to learn in this first part: 1.What is the problem; congestion collapse 2.Efficiency versus Fairness 3.Forms of fairness 4.Forms of congestion control 5.Additive Increase Multiplicative Decrease (AIMD) 3

4 Inefficiency Network may lose some packets Assume you let users send as they want Example 1: how much will S 1 send to D 1 ? S 2 to D 2 ? 4 S1S1 C 1 = 100 Kb/s S2S2 C 2 = 1000 Kb/s D1D1 D2D2 C 3 = 110 Kb/s C 4 = 100 Kb/s C 5 = 10 Kb/s

5 Solution Both send 10 kb/s Inefficient ! A better allocation is: S 1 : 100 kb/s S 2 : 10 kb/s The problem was that S 2 sent too much 5 S1S1 S2S2 D1D1 D2D2 x 41 = 10 x 52 = 10 C 1 = 100 Kb/s C 2 = 1000 Kb/s C 3 = 110 Kb/s C 4 = 100 Kb/s C 5 = 10 Kb/s

6 Congestion Collapse How much can node i send to its destination ? 6 link (i-1) link i link (i+1) node i node i+1 source i

7 Solution We can solve in close form the symmetric case (all links and sources the same) If < c/2 there is no loss: Else: 7 link (i-1) link i link (i+1) node i node i+1 source i i i ’ i ’’

8 8

9 9

10 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

11 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

12 Solution 12

13 Take Home Message Efficiency may be at the expense of fairness What is fairness ? 13

14 Definitions of Fairness In simple cases, fairness means same to all May lead to stupid decisions Example 14

15 Definitions of Fairness A better allocation, as fair but more efficient, is: This is the max-min fair allocation for this example 15

16 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

17 Example Are these allocations max-min fair ? 1. 2. 17 X1X1 X2X2

18 Answer 1.No; I can increase x 1 without modifying anyone 2.Yes; if I try to increase x 0 I must decrease x 2 and x 2 · x 0 if I try to increase x 1 I must decrease x 0 and x 0 · x 1 if I try to increase x 2 I must decrease x 0 and x 0 · x 2 18

19 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

20 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 x 0 = c/10 x 2 = c/10 Step 2 Rate t to all non frozen sources x 1 = t Increase t until t = 9c/10 Freeze the values for sources that use a link that is fully used x 1 = 9c/10 20

21 Proportional Fairness Max-min fairness is the most egalitarian, but efficient, allocation Sometimes too egalitarian I sources, n i =1 Max-min fair allocation is x i = c/2 for all For I large, one might think that x 0 should be penalized as it uses more of the network This is what proportional fairness does 21

22 Definition of Proportional Fairness Two ideas Relative shares matter, not absolute Global effect 22

23 Example Are these allocations proportionnally fair ? 1. 2. 23 X1X1 X2X2

24 Solution 1.I can increase x 2 alone and the average rate of change is positive. The answer is: No 2.Let us try to decrease x 0 by . This allows us to increase x 1 by  and x 2 by  /9. For  small enough (  · 0.1), the allocation is feasible. The average rate of change is 24

25 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

26 Example 26

27 27

28 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 28 U(x) = ln (x): proportional fairness U(x) = 1- (1/x) m : m large => ~ max min fairness

29 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

30 How can congestion control be implemented ? 30

31 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

32 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 ? 32 Rate x i (t) Feedback y(t)

33 Linear Laws We consider linear laws if y(t) == 1 then x i (t+1) = u 1 x i (t) + v 1 if y(t) == 0 then x i (t+1) = u 0 x i (t) + v 0 We want to decrease when y(t)==1, so We want to increase when y(t)==0, so 33

34 Example u 1 = 0.5, v 1 =0, u 0 = 0, v 0 = 1 (unit: Mb/s) 34

35 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

36 36

37 37

38 38

39 39

40 Example 40

41 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 v 0 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 41 target rate

42 42 3 sources u 1 = 0.5, v 1 =0, u 0 = 0, v 0 = 0.01 (unit: Mb/s) 3 rd source starts with rate v 0 Source 1 With Slow Start Without Slow Start time rate (all 3 sources) Source 3

43 43

44 Plan of This Module 1.Congestion control: theory 2.Application to the Internet 44

45 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

46 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

47 A Trace 47 created from data from: IEEE Transactions on Networking, Oct. 95, “TCP Vegas”, L. Brakmo and L. Petersen twnd cwnd A BC 0123456789 60 30 0 Bytes seconds

48 A Trace 48 created from data from: IEEE Transactions on Networking, Oct. 95, “TCP Vegas”, L. Brakmo and L. Petersen twnd cwnd congestion avoidance slow start congestion avoidance A BC BC 0123456789 60 30 0 Bytes seconds

49 How AIMD is Approximated 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 twnd = 1 MSS 324

50 How multiplicative increase ( Slow Start) is approximated 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 325 cwnd = 1 seg 4678

51 AIMD and Slow Start are Implemented as a Finite State Machine “Congestion Avoidance” = phase of additive increase “Slow start” = phase of slow start, as according to theory Multiplicative decrease is implemented as a state transition 51 additive increase multiplicative decrease slow start loss Congestion avoidance

52 Slow Start and Congestion Avoidance 52 exponential increase for cwnd until cwnd = twnd Slow Start additive increase for twnd, cwnd = twnd Congestion Avoidance cwnd = twnd retransmission timeout: - multiplicative decrease for twnd - cwnd = 1 seg retransmission timeout: - multiplicative decrease for twnd - cwnd = 1 seg connection opening: twnd = 65535 B cwnd = 1 seg notes this shows only 2 states out of 3 twnd = target window

53 Fast Recovery Slow start used when we assume that the network condition is new initial phase, major change guessed by timeout expiration In all other packet loss detection events, slow start is not used, but “fast recovery” is used instead target window is halved but temporary window size increase is allowed to help recover losses when a loss occurs, the sending rate is no longer approximated by the W/RTT 53

54 Fast Retransmit Fast Retransmit triggers Fast Recovery at time t1 assume cwnd = 4 when P4 is sent fast recovery increases window and allows to send P7 at time t2, cwd is set to 2 54  P1P2P3P4P5P6P3P7 A1A2 A? t1t2

55 Fast Recovery Details Multiplicative decrease twnd = 0.5  current-size twnd = max (twnd, 2  MSS) Fast Recovery cwnd = twnd + 3  MSS (exp. increase) cwnd = min (cwnd, 64K) retransmission of the missing segment (n) For each duplicated ACK cwnd = cwnd + MSS (exp. increase) cwnd = min (cwnd, 64K) send following segments 55

56 Fast Recovery Example 56 twnd cwnd 0123456 60 30 0 Bytes seconds EF A BCDE F A-B, E-F: fast recovery C-D: slow start

57 TCP Congestion Control Has Three States 57 Slow Start - exponential increase Congestion Avoidance - additive increase Fast Recovery - exponential increase beyond twnd new connection: retr. timeout: cwnd = twnd: retr. timeout: expected ack received: fast retransmit: fast retransmit:

58 Fairness of TCP TCP implements some approximation of AIMD AIMD is designed to be approximately fair in a single link scenario Q: what happens in a network ? Does TCP distribute rates according to max-min fairness or proportional fairness ? 58

59 Fairness of TCP A: TCP tends to distribute rate so as to maximize utility of source given by with x i = rate,  i = RTT for source i (proof: see lecture notes) Assume all sources have same RTT. For rates that are not too small and not too large, this is close to proportional fairness (but a little closer to max-min fairness) 59

60 TCP Bias Against Large RTTs TCP tends to distribute rate so as to maximize utility of source given by For sources with different RTTs, there is a bias 60

61 Fairness of TCP 61 Example network with two TCP sources link capacity, delay limited queues on the link (8 segments) NS simulation router destination 10 Mb/s, 20 ms 1 Mb/s 10 ms 10 Mb/s, 60 ms 8 seg. S1S1 S2S2

62 Throughput in time 62 time ACK numbers S1S1 S2S2

63 Bias of TCP Against Large RTTs A source that uses many hops obtains less because it uses more resources ( ¼ proportional fairness) – desired bias it has a longer RTT – undesired bias Cause is additive increase is one packet per RTT 63

64 AQM By default. routers drop packets when buffers are full this is called “Tail Drop” Issues buffers fill, then drop -> buffers are full most of the time produces large average delays large queuing delay => large RTT => smaller TCP throughput also: produces very irregular behaviour but buffers are needed to amortize bursts Solution active queue management (AQM) drop packets before buffer is full, based on estimation of traffic load 64

65 RED (Random Early Detection) RED is the first AQM scheme proposed today, the only one in use Principles queue estimates its average queue length avg  a  measured + (1 - a)  avg incoming packet is dropped with a probability that depends on avg roughly speaking. drop proba is read from the curve below + uniformization procedure 65 avg th-min th-max max-p 1 q

66 Example network for RED 66 Example network with three TCP sources different link delays limited queues on the link (20 packets) router destination 2 Mb/s, 10 ms 2 Mb/s 100 ms 2 Mb/s, 60 ms 2 Mb/s, 100 ms 20 seg. S1S1 S3S3 S2S2

67 Throughput vs Time, with Tail Drop 67 time ACK numbers S1S1 S2S2 S3S3

68 Throughput vs Time, with RED 68 time ACK numbers S1S1 S2S2 S3S3  RED makes the buffer closer to a fluid queuing system

69 TCP Loss - Throughput Formula 69 Consider a large TCP connection (many bytes to transmit) Assume we observe that, in average, a fraction q of packets is lost (or marked with ECN) Can we say something about the expected throughput for this connection ?

70 TCP Loss - Throughput Formula 70 TCP connection with RTT T segment size L average packet loss ratio q constant C = 1.22 Transmission time negligible compared to RTT, losses are rare, time spent in Slow Start and Fast Recovery negligible

71 Example Q. Guess the ratio between the throughputs  1 and  2 and of S 1 and S 2 71 router destination 10 Mb/s, 20 ms 1 Mb/s 10 ms 10 Mb/s, 60 ms 8 seg. S1S1 S2S2 solution

72 TCP Friendly Applications All TCP/IP applications that generate long lived flows should mimic the behavior of a TCP source RTP/UDP flow sending video/audio data Adaptive algorithm application determines the sending rate feedback - amount of lost packets, loss ratio sending rate = rate of a TCP flow experiencing the same loss ratio 72

73 Facts to remember 73 TCP performs congestion control in end-systems sender increases its sending window until loss occurs, then decreases additive increase (no loss) multiplicative decrease (loss) TCP states slow start, congestion avoidance, fast recovery Negative bias towards long round trip times UDP applications should behave like TCP with the same loss rate

74 Congestion Control: Summary Congestion control aims at avoiding congestion collapse in the network With TCP/IP, performed in end-systems, mainly with TCP TCP Congestion control summary Principle: sender increases its sending window until losses occur, then decrease target window: additive increase (no loss), multiplicative decrease (loss) 3 phases: slow start:starts with 1, exponential increase up to twnd congestion avoidance:additive increase until loss or no increase fast recovery:fast retransmission of one segment slow start entered at setup or after retransmission timeout fast recovery entered at fast retransmit 74 additive increase multiplicative decrease slow start loss

75 Solutions 75

76 Example Q. Guess the ratio between the throughputs  1 and  2 and of S 1 and S 2 A. If processing time is negligible and router drops packets in the same proportion for all flows, then throughput is proportional to 1/RTT, thus 76 router destination 10 Mb/s, 20 ms 1 Mb/s 10 ms 10 Mb/s, 60 ms 8 seg. S1S1 S2S2 time ACK numbers S1S1 S2S2 back


Download ppt "Congestion Control In The Internet JY Le Boudec Fall 2009 1."

Similar presentations


Ads by Google