principles of congestion control - tu berlin · 2014-11-21 · 8 congestion collapse definition:...
TRANSCRIPT
![Page 1: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/1.jpg)
1
Principles of congestion control
Congestion: ❒ Informally: “too many sources sending too much
data too fast for network to handle” ❒ Different from flow control! ❒ Manifestations:
❍ Lost packets (buffer overflow at routers) ❍ Long delays (queueing in router buffers)
❒ A top-10 problem!
![Page 2: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/2.jpg)
2
Congestion
❒ Different sources compete for resources inside network
❒ Why is it a problem? ❍ Sources are unaware of current state of resource ❍ Sources are unaware of each other ❍ In many situations will result in < 8 Mbps of throughput
(congestion collapse)
100 Mbps
1 Gbps
8 Mbps
![Page 3: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/3.jpg)
3
Causes/costs of congestion: Scenario 1 ❒ Two senders, two
receivers ❒ One router, infinite
buffers ❒ No retransmission
❒ Maximum achievable throughput
❒ Large delays when congested
unlimited shared output link buffers
Host A λin : original data
Host B
λout
![Page 4: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/4.jpg)
4
Causes/costs of congestion: Scenario 2 ❒ One router, finite buffers ❒ Sender retransmission of lost packet
finite shared output link buffers
Host A λin : original data
Host B
λout
λ'in : original data, plus retransmitted data
![Page 5: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/5.jpg)
5
Causes/costs of congestion: Scenario 2 ❒ Always: (goodput) ❒ “Perfect” retransmission only when loss: ❒ Retransmission of delayed (not lost) packet makes
larger (than perfect case) for same
λin
λout = λ
in λout >
λin λout
“Costs” of congestion: ❒ More work (retransmissions) for given “goodput” ❒ Unneeded retransmissions: Link carries multiple copies of pkt
C/2
C/2 λin
λ out
b
C/2
C/2 λin
λ out
a
C/2
C/2 λin
λ out
c
C/4 C/3
![Page 6: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/6.jpg)
6
Causes/costs of congestion: Scenario 3 ❒ Four senders ❒ Multihop paths ❒ Timeout/retransmit
λin
Q: What happens as and increase ? λ
in
finite shared output link buffers
Host A λin : original data
Host B λout
λ'in : original data, plus retransmitted data
![Page 7: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/7.jpg)
7
Causes/costs of congestion: Scenario 3
Another “cost” of congestion: ❒ When packet dropped, any “upstream” transmission
capacity used for that packet was wasted!
Host A
Host B
λout
![Page 8: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/8.jpg)
8
Congestion collapse ❒ Definition: Increase in network load results in decrease of
useful work done
❒ Many possible causes ❍ Spurious retransmissions of packets still in flight
• Classical congestion collapse • How can this happen with packet conservation • Solution: Better timers and TCP congestion control
❍ Undelivered packets • Packets consume resources and are dropped elsewhere in
network • Solution: Congestion control for ALL traffic
![Page 9: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/9.jpg)
9
Other congestion collapse causes
❒ Fragments ❍ Mismatch of transmission and retransmission units ❍ Solutions
• Make network drop all fragments of a packet • Do path MTU discovery
❒ Control traffic ❍ Large percentage of traffic is for control
• Headers, routing messages, DNS, etc.
❒ Stale or unwanted packets ❍ Packets that are delayed on long queues ❍ “Push” data that is never used
![Page 10: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/10.jpg)
10
Where to prevent collapse? ❒ Can end hosts prevent problem?
❍ Yes, but must trust end hosts to do right thing ❍ E.g., sending host must adjust amount of data it puts in
the network based on detected congestion
❒ Can routers prevent collapse? ❍ No, not all forms of collapse ❍ Doesn’t mean they can’t help ❍ Sending accurate congestion signals ❍ Isolating well-behaved from ill-behaved sources
![Page 11: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/11.jpg)
11
Congestion control and avoidance
❒ A mechanism which ❍ Uses network resources efficiently ❍ Preserves fair network resource allocation ❍ Prevents or avoids collapse
❒ Congestion collapse is not just a theory ❍ Has been frequently observed in many networks
![Page 12: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/12.jpg)
12
Congestion collapse
❒ Congestion collapse was first observed on the early Internet in October 1986, when the NSFnet phase-I backbone dropped three orders of magnitude from its capacity of 32 kbit/s to 40 bit/s, and continued to occur until end nodes started implementing Van Jacobson's congestion control between 1987 and 1988.
![Page 13: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/13.jpg)
13
Congestion control vs. avoidance
❒ Avoidance keeps the system performing at the knee
❒ Control kicks in once the system has reached a congested state
Load
Throughput
Load
Delay
![Page 14: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/14.jpg)
14
Approaches towards congestion control
End-end congestion control: ❒ No explicit feedback from
network ❒ Congestion inferred from end-
system observed loss, delay ❒ Approach taken by TCP
Network-assisted congestion control:
❒ Routers provide feedback to end systems ❍ Choke packet from router
to sender ❍ Single bit indicating
congestion (SNA, DECbit, TCP/IP ECN, ATM)
❍ Explicit rate sender should send at
Two broad approaches towards congestion control:
![Page 15: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/15.jpg)
15
End-to-end congestion control - objectives
❒ Simple router behavior ❒ Distributedness ❒ Efficiency: Xknee = Σxi(t) ❒ Fairness: (Σxi)2/n(Σxi
2)
❒ Power: (throughputα/delay) ❒ Convergence: control system must be stable
![Page 16: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/16.jpg)
16
Basic control model
❒ Let’s assume window-based control ❒ Reduce window when congestion is perceived
❍ How is congestion signaled? • Either mark or drop packets
❍ When is a router congested? • Drop tail queues – when queue is full • Average queue length – at some threshold
❒ Increase window otherwise ❍ Probe for available bandwidth – how?
![Page 17: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/17.jpg)
17
Linear control
❒ Many different possibilities for reaction to congestion and probing ❍ Examine simple linear controls ❍ Window(t + 1) = a + b Window(t) ❍ Different ai/bi for increase and ad/bd for decrease
❒ Supports various reaction to signals ❍ Increase/decrease additively ❍ Increased/decrease multiplicatively ❍ Which of the four combinations is optimal?
![Page 18: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/18.jpg)
18
Phase plots
❒ Simple way to visualize behavior of competing connections over time
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 19: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/19.jpg)
19
Phase plots
❒ What are desirable properties? ❒ What if flows are not equal?
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2 Optimal point
Overload
Underutilization
![Page 20: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/20.jpg)
20
Additive increase/decrease
❒ X1 and X2 in-/decrease by same amount over time
T0
T1
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 21: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/21.jpg)
21
Multiplicative increase/decrease ❒ X1 and X2 in-/decrease by the same factor
❍ Extension from origin
T0
T1
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 22: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/22.jpg)
22
Convergence to efficiency ❒ Want to converge quickly to intersection of
fairness and efficiency lines
xH
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 23: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/23.jpg)
23
Distributed convergence to efficiency
xH
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
a=0
b=1
![Page 24: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/24.jpg)
24
Convergence to fairness
xH
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
xH’
![Page 25: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/25.jpg)
25
Convergence to efficiency & fairness
xH
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
xH’
![Page 26: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/26.jpg)
26
Increase
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
xL
![Page 27: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/27.jpg)
27
What is the right choice?
❒ Constraints limit us to AIMD ❍ Can have multiplicative term in increase ❍ AIMD moves towards optimal point
x0
x1
x2
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 28: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/28.jpg)
28
TCP congestion control ❒ Motivated by ARPANET congestion collapse ❒ Underlying design principle: Packet conservation
❍ At equilibrium, inject packet into network only when one is removed
❍ Basis for stability of physical systems
❒ Why was this not working? ❍ Connection doesn’t reach equilibrium ❍ Spurious retransmissions ❍ Resource limitations prevent equilibrium
![Page 29: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/29.jpg)
29
TCP congestion control - solutions
❒ Reaching equilibrium ❍ Slow start
❒ Eliminates spurious retransmissions ❍ Accurate RTO estimation ❍ Fast retransmit
❒ Adapting to resource availability ❍ Congestion avoidance
![Page 30: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/30.jpg)
30
TCP congestion control basics
❒ Keep a congestion window, cwnd ❍ Denotes how much network is able to absorb
❒ Sender’s maximum window: ❍ Min (advertised receiver window, cwnd)
❒ Sender’s actual window: ❍ Max window - unacknowledged segments
❒ If we have large actual window, should we send data in one shot? ❍ No, use acks to clock sending new data
![Page 31: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/31.jpg)
31
Self-clocking
Pr Pb
Ar
Ab
Receiver Sender
As
![Page 32: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/32.jpg)
32
TCP congestion control: Additive increase, multiplicative decrease (AIMD)
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
❒ Approach: Increase transmission rate (window size), probing for usable bandwidth, until loss occurs ❍ Additive increase: Increase cwnd by 1 MSS every
RTT until loss detected ❍ Multiplicative decrease: Cut cwnd in half after loss
time cong
estio
n w
indo
w s
ize
Saw tooth behavior: probing
for bandwidth
![Page 33: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/33.jpg)
33
TCP Fairness
Fairness goal: if N TCP sessions share same bottleneck link, each should get 1/N of link capacity
TCP connection 1
bottleneck router
capacity R
TCP connection 2
![Page 34: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/34.jpg)
34
Why is TCP fair? (Ideal case!) Two competing sessions: ❒ Additive increase gives slope of 1, as throughout increases ❒ multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughput
Conn
ecti
on 2
thr
ough
put
congestion avoidance: additive increase
loss: decrease window by factor of 2
congestion avoidance: additive increase loss: decrease window by factor of 2
![Page 35: Principles of congestion control - TU Berlin · 2014-11-21 · 8 Congestion collapse Definition: Increase in network load results in decrease of useful work done Many possible causes](https://reader034.vdocuments.us/reader034/viewer/2022042401/5f1029dc7e708231d447c247/html5/thumbnails/35.jpg)
35
Assumption for TCPs fairness
❒ Window under consideration is large enough ❒ Same RTT ❒ Similar TCP parameters ❒ Enough data to send ❒ ....