Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Congestion Control In The Internet
JY Le BoudecFall 2009
1
Plan of This Module
1. Congestion control: theory 2. Application to the Internet
2
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
Inefficiency
Network may lose some packetsAssume you let users send as they wantExample 1: how much will S1 send to D1 ? S2 to D2 ?
4
S1C1 = 100 Kb/s
S2C2 = 1000 Kb/s
D1
D2
C3 = 110 Kb/s
C4 = 100 Kb/s
C5 = 10 Kb/s
Solution
Both send 10 kb/sInefficient ! A better allocation is:
S1: 100 kb/sS2: 10 kb/s
The problem was that S2 sent too much
5
S1
S2
D1
D2
x41 = 10
x52 = 10
C1 = 100 Kb/s
C2 = 1000 Kb/s
C3 = 110 Kb/s
C4 = 100 Kb/s
C5 = 10 Kb/s
Congestion Collapse
How much can node i send to its destination ?
6
link (i-1)
link i
link (i+1)node i
nodei+1
source i
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
nk (i-1)
link i
link (i+1)node i
nodei+1
source iλi
λi’
λi’’
8
9
0
2
4
6
8
10
12
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97
This is congestion collapse !
Take home messageSources should limit their rates to adapt it to the network conditionOtherwise inefficiency or congestion collapse may occurCongestion collapse means: as the offered load increases, the total throughput decreases
10
Tout se complique
A network should be organized so as to avoid inefficiencyHowever, being maximally efficient may be a problemExample : what is the maximum throughput ?
11
Solution
12
Take Home Message
Efficiency may be at the expense of fairnessWhat is fairness ?
13
Definitions of Fairness
In simple cases, fairness means same to allMay lead to stupid decisionsExample
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 ?
1.
2.
17
X1 X2
Answer
1. No; I can increase x1 without modifying anyone2. 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 ratesIf it exists, the max-min fair allocation is uniqueThere 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 sourcesIncrease t until t = c/10Freeze the values for sources that use a link that is fully used
x0 = c/10x2 = c/10
Step 2 Rate t to all non frozen sourcesx1 = tIncrease t until t = 9c/10Freeze 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, allocationSometimes too egalitarian
I sources, ni=1Max-min fair allocation is xi= c/2 for allFor I large, one might think that x0 should be penalized as it uses more of the networkThis is what proportional fairness does
21
Definition of Proportional Fairness
Two ideasRelative shares matter, not absolute
Global effect
22
Example
Are these allocations proportionnally fair ?
1.
2.
23
X1 X2
Solution
1. I can increase x2 alone and the average rate of change is positive. The answer is: No
2. 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 uniqueIt is obtained by maximizing over all feasible allocations:
25
Example
26
27
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
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 fairnessE.g. max-min fairness or proportional fairness
29
How can congestion control be implemented ?
30
Additive Increase Multiplicative Decrease
It is a congestion control mechanism that can be implemented endto endIt is the basis for what we have in the InternetWe 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 ?
32
Rate xi(t)
Feedback y(t)
Linear Laws
We consider linear lawsif y(t) == 1 then xi(t+1) = u1 x
i(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 stationaryBut we would like that the scheme increases fairness
35
36
37
38
39
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 valueWe can increase more rapidly the rate of a source that we know is below its fair share
Slow Start is one algorithm for thisSet initial value to the Additive Increase v0
Increase the rate multiplicatively until a target rate is reached or negative feedback is receivedApply multiplicative decrease to target rate if negative feedback is receivedExit slow start when target rate is received
41
target
rate
42
3 sourcesu1 = 0.5, v1 =0, u0 = 0, v0 = 0.01 (unit: Mb/s)
3rd source starts with rate v0
Source 1
Source 1
With Slow Start
Without Slow Starttime
time
rate (all 3 sources)Source 3
Source 3
43
Plan of This Module
1. Congestion control: theory 2. Application to the Internet
44
Congestion Control in the Internet is in TCPTCP 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 feedbackuse to reduce the sending rate
UDP sources are a problem for the Internetuse 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 Controlnegative 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 detectionLoss detected by timeout => slow start
Loss detected by fast retransmit or selective Ack => no slow start
46
A Trace
47
created from data from: IEEE Transactions on Networking, Oct. 95, “TCP Vegas”, L. Brakmo and L. Petersen
twnd
cwnd
A B C
0 1 2 3 4 5 6 7 8 9
60
30
0
Bytes
seconds
A Trace
48
created from data from: IEEE Transactions on Networking, Oct. 95, “TCP Vegas”, L. Brakmo and L. Petersen
twnd
cwnd
congestion avoidanceslowstart congestion avoidance
A B C
B C
0 1 2 3 4 5 6 7 8 9
60
30
0
Bytes
seconds
How AIMD is ApproximatedMultiplicative decrease (on loss detection by timeout)
twnd = 0.5 × current_window
twnd = max (twnd, 2 × MSS)
Additive increasefor each ACK received
twnd = twnd + MSS × MSS / twnd This is equivalent in packets to
twnd = min (twnd, max-size) (64KB)
49
twnd=
1 MSS
32 4
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
32 5cwnd = 1 seg 4 6 7 8
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 theoryMultiplicative decrease is implemented as a state transition
51
additive increaseadditive increase
multiplicative decrease
slow start
loss
loss
Congestion avoidance Congestion avoidance
Slow Start and Congestion Avoidance
52
exponential increase for cwnd until cwnd = twnd
Slow Start
additiveincrease for twnd, cwnd = twnd
CongestionAvoidance
cwnd = twnd
retransmissiontimeout:
- multiplicative decrease for twnd- cwnd = 1 seg
retransmissiontimeout:
- multiplicative decrease for twnd- cwnd = 1 seg
connection opening: twnd = 65535 Bcwnd = 1 seg
notesthis shows only 2 states out of 3twnd = target window
Fast Recovery
Slow start used when we assume that the network condition is newinitial 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 losseswhen a loss occurs, the sending rate is no longer approximated by the W/RTT
53
Fast Retransmit
Fast Retransmit triggers Fast Recovery at time t1assume cwnd = 4 when P4 is sent
fast recovery increases window and allows to send P7
at time t2, cwd is set to 2
54
×
P1 P2 P3 P4 P5 P6 P3 P7
A1 A2 A2 A2 A2 A?
t1 t2
Fast Recovery Details
Multiplicative decreasetwnd = 0.5 × current-sizetwnd = max (twnd, 2 × MSS)
Fast Recoverycwnd = twnd + 3 × MSS (exp. increase)cwnd = min (cwnd, 64K)retransmission of the missing segment (n)
For each duplicated ACKcwnd = cwnd + MSS (exp. increase)cwnd = min (cwnd, 64K)send following segments
55
Fast Recovery Example
56
twnd
cwnd0 1 2 3 4 5 6
60
30
0
Bytes
secondsE F
A B C D E F
A-B, E-F: fast recoveryC-D: slow start
TCP Congestion Control Has Three States
57
Slow Start
- exponentialincrease
CongestionAvoidance
- additiveincrease
FastRecovery
- exponential increase
beyond twnd
new connection:
retr. timeout:
cwnd = twnd:
retr. timeout:
retr. timeout: expected ack received:
fast retransmit:
fast retransmit:
Fairness of TCP
TCP implements some approximation of AIMDAIMD is designed to be approximately fair in a single link scenarioQ: what happens in a network ? Does TCP distribute rates according to max-min fairness or proportional fairness ?
58
Fairness of TCP
A: TCP tends to distribute rate so as to maximize utility of source given by
with xi = 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
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
Fairness of TCP
61
Example network with two TCP sourceslink capacity, delaylimited queues on the link (8 segments)
NS simulation
routerdestination
10 Mb/s, 20 ms 1 Mb/s 10 ms
10 Mb/s, 60 ms 8 seg. 8 seg.
S1
S2
Throughput in time
62
time
ACK numbersS1
S2
Bias of TCP Against Large RTTs
A source that uses many hops obtains less becauseit uses more resources (≈ proportional fairness) – desired bias
it has a longer RTT – undesired bias
Cause is additive increase is one packet per RTT
63
AQM
By default. routers drop packets when buffers are fullthis is called “Tail Drop”
Issuesbuffers fill, then drop -> buffers are full most of the time
produces large average delayslarge queuing delay => large RTT => smaller TCP throughput
also: produces very irregular behaviour
but buffers are needed to amortize bursts
Solutionactive queue management (AQM)
drop packets before buffer is full, based on estimation of traffic load
64
RED (Random Early Detection)
RED is the first AQM scheme proposed today, the only one in usePrinciples
queue estimates its average queue length avg ← a × measured + (1 - a) × avgincoming packet is dropped with a probability that depends on avgroughly speaking. drop proba is read from the curve below + uniformization procedure
65
avgth-min th-maxmax-p
1
q
Example network for RED
66
Example network with three TCP sourcesdifferent link delayslimited queues on the link (20 packets)
routerdestination
2 Mb/s, 10 ms
2 Mb/s 100 ms2 Mb/s, 60 ms
2 Mb/s, 100 ms20 seg. 20 seg.
S1
S3
S2
Throughput vs Time, with Tail Drop
67
time
ACK numbersS1
S2
S3
Throughput vs Time, with RED
68
time
ACK numbers S1
S2
S3
RED makes the buffer closer to a fluid queuing system
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 ?
TCP Loss - Throughput Formula
70
TCP connection with RTT Tsegment size Laverage packet loss ratio qconstant C = 1.22
Transmission time negligible compared to RTT, losses are rare, time spent in Slow Start and Fast Recovery negligible
Example
Q. Guess the ratio between the throughputs θ1 and θ2 and of S1 and S2
71
routerdestination
10 Mb/s, 20 ms 1 Mb/s 10 ms
10 Mb/s, 60 ms 8 seg. 8 seg.
S1
S2
solution
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 algorithmapplication determines the sending rate
feedback - amount of lost packets, loss ratio
sending rate = rate of a TCP flow experiencing the same loss ratio
72
Facts to remember
73
TCP performs congestion control in end-systemssender 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 timesUDP applications should behave like TCP with the same loss rate
Congestion Control: SummaryCongestion control aims at avoiding congestion collapse in the networkWith TCP/IP, performed in end-systems, mainly with TCPTCP Congestion control summaryPrinciple: 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 increasefast recovery: fast retransmission of one segmentslow start entered at setup or after retransmission timeoutfast recovery entered at fast retransmit
74
additive increase additive increasemultiplicative decrease
slow start
lossloss
Solutions
75
Example
Q. Guess the ratio between the throughputs θ1 and θ2 and of S1 and S2
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
routerdestination
10 Mb/s, 20 ms 1 Mb/s 10 ms
10 Mb/s, 60 ms 8 seg. 8 seg.
S1
S2
time
ACK numbers S1
S2
back