cs 268: lecture 7 (beyond tcp congestion control)
DESCRIPTION
CS 268: Lecture 7 (Beyond TCP Congestion Control). Ion Stoica Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA 94720-1776. (Based on slides from R. Stallings, M. Handley and D. Katabi). Outline. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/1.jpg)
CS 268: Lecture 7(Beyond TCP Congestion
Control)
Ion StoicaComputer Science Division
Department of Electrical Engineering and Computer SciencesUniversity of California, Berkeley
Berkeley, CA 94720-1776
(Based on slides from R. Stallings, M. Handley and D. Katabi)
![Page 2: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/2.jpg)
2
Outline
TCP-Friendly Rate Control (TFRC) ATM Congestion Control eXplicit Control Protocol
![Page 3: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/3.jpg)
3
TCP-Friendly
Any alternative congestion control scheme needs to coexist with TCP in FIFO queues in the best-effort Internet, or be protected from TCP in some manner.
To co-exist with TCP, it must impose the same long-term load on the network:
- No greater long-term throughput as a function of packet loss and delay so TCP doesn't suffer
- Not significantly less long-term throughput or it's not too useful
![Page 4: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/4.jpg)
4
TFRC: General Idea
Use a model of TCP's throughout as a function of the loss rate and RTT directly in a congestion control algorithm.
- If transmission rate is higher than that given by the model, reduce the transmission rate to the model's rate.
- Otherwise increase the transmission rate.
![Page 5: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/5.jpg)
5
The model: Packet size B bytes, round-trip time R secs, no queue. A packet is dropped each time the window reaches W packets. TCP’s congestion window:
The maximum sending rate in packets per roundtrip time: W The maximum sending rate in bytes/sec: W B / R The average sending rate T: T = (3/4)W B / R
The packet drop rate p:
The result:
TCP Modelling: The "Steady State" Model
![Page 6: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/6.jpg)
6
An Improved "Steady State" Model
A pretty good improved model of TCP Reno, including timeouts, from Padhye et al, Sigcomm 1998:
Would be better to have a model of TCP SACK, but the differences aren’t critical.
![Page 7: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/7.jpg)
7
TFRC Details
The devil's in the details - How to measure the loss rate?
- How to respond to persistent congestion?
- How to use RTT and prevent oscillatory behavior?
Not as simple as first thought
![Page 8: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/8.jpg)
8
TFRC Performance (Simulation)
![Page 9: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/9.jpg)
9
TFRC Performance (Experimental)
![Page 10: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/10.jpg)
10
Outline
TCP-Friendly Rate Control (TFRC) ATM Congestion Control eXplicit Control Protocol
![Page 11: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/11.jpg)
11
ATM Congestion Control
Credit Based- Sender is given “credit” for number of octets or packets
it may send before it must stop and wait for additional credit.
Rate Based- Sender may transmit at a rate up to some limit.
- Rate can be reduced by control message.
![Page 12: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/12.jpg)
12
Case study: ATM ABR congestion control
ABR: available bit rate: “elastic service” if sender’s path
“underloaded”:
- Sender should use available bandwidth
if sender’s path congested:
- Sender throttled to minimum guaranteed rate
RM (resource management) cells: Sent by sender, interleaved with data
cells Bits in RM cell set by switches
(“network-assisted”)
- NI bit: no increase in rate (mild congestion)
- CI bit: congestion indication RM cells returned to sender by
receiver, with bits intact
![Page 13: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/13.jpg)
13
EXPLICIT Case study: ATM ABR congestion control
Two-byte ER (explicit rate) field in RM cell- Congested switch may lower ER value in cell
- Sender’ send rate thus minimum supportable rate on path EFCI bit in data cells: set to 1 in congested switch
- If data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cell
![Page 14: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/14.jpg)
14
ABR Cell Rate Feedback Rules
if CI == 1- Reduce ACR to a value >= MCR
else if NI == 0- Increase ACR to a value <= PCR
if ACR > ER- set ACR = max(ER, MCR)
ACR = Allowed Cell RateMCR = Minimum Cell RatePCR = Peak Cell RateER = Explicit Rate
![Page 15: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/15.jpg)
15
Outline
TCP-Friendly Rate Control (TFRC) ATM Congestion Control eXplicit Control Protocol
![Page 16: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/16.jpg)
16
TCP congestion control performs poorly as bandwidth or delay increases
Round Trip Delay (sec)
Avg
. T
CP
Util
iza t
ion
Bottleneck Bandwidth (Mb/s)
Avg
. T
CP
Util
iza t
ion
Shown analytically in [Low01] and via simulations
Because TCP lacks fast response
• Spare bandwidth is available TCP increases by 1 pkt/RTT even if spare bandwidth is huge• When a TCP starts, it increases exponentially Too many drops Flows ramp up by 1 pkt/RTT, taking forever to grab the large bandwidth
Because TCP lacks fast response
• Spare bandwidth is available TCP increases by 1 pkt/RTT even if spare bandwidth is huge• When a TCP starts, it increases exponentially Too many drops Flows ramp up by 1 pkt/RTT, taking forever to grab the large bandwidth
50 flows in both directionsBuffer = BW x Delay
RTT = 80 ms
50 flows in both directionsBuffer = BW x Delay
BW = 155 Mb/s
![Page 17: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/17.jpg)
17
High Utilization; Small Queues; Few Drops
Bandwidth Allocation Policy
Solution: Decouple Congestion Control from Fairness
![Page 18: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/18.jpg)
18
Solution: Decouple Congestion Control from Fairness
Example: In TCP, Additive-Increase Multiplicative-Decrease (AIMD) controls both
Coupled because a single mechanism controls both
How does decoupling solve the problem?
1. To control congestion: use MIMD which shows fast response
2. To control fairness: use AIMD which converges to fairness
![Page 19: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/19.jpg)
19
Characteristics of XCP Solution
1. Improved Congestion Control (in high bandwidth-delay & conventional environments):
• Small queues
• Almost no drops
2. Improved Fairness
3. Scalable (no per-flow state)
4. Flexible bandwidth allocation: min-max fairness, proportional fairness, differential bandwidth allocation,…
![Page 20: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/20.jpg)
20
XCP: An eXplicit Control Protocol
1. Congestion Controller2. Fairness Controller
![Page 21: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/21.jpg)
21
Feedback
Round Trip Time
Congestion Window
Congestion Header
Feedback
Round Trip Time
Congestion Window
How does XCP Work?
Feedback = + 0.1 packet
![Page 22: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/22.jpg)
22
Feedback = + 0.1 packet
Round Trip Time
Congestion Window
Feedback = - 0.3 packet
How does XCP Work?
![Page 23: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/23.jpg)
23
Congestion Window = Congestion Window + Feedback
Routers compute feedback without any per-flow state
Routers compute feedback without any per-flow state
How does XCP Work?
XCP extends ECN and CSFQ
![Page 24: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/24.jpg)
24
How Does an XCP Router Compute the Feedback?
Congestion Controller Fairness ControllerGoal: Divides between flows to converge to fairness
Looks at a flow’s state in Congestion Header
Algorithm:
If > 0 Divide equally between flows
If < 0 Divide between flows proportionally to their current rates
MIMD AIMD
Goal: Matches input traffic to link capacity & drains the queue
Looks at aggregate traffic & queue
Algorithm:
Aggregate traffic changes by ~ Spare Bandwidth ~ - Queue Size
So, = davg Spare - Queue
Congestion Controller
Fairness Controller
![Page 25: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/25.jpg)
25
= davg Spare - Queue
224
0 2 and
Theorem: System converges to optimal utilization (i.e., stable) for any link bandwidth, delay, number of sources if:
(Proof based on Nyquist Criterion)
Getting the devil out of the details …Congestion Controller Fairness Controller
No Parameter Tuning
No Parameter Tuning
Algorithm:
If > 0 Divide equally between flows
If < 0 Divide between flows proportionally to their current rates
Need to estimate number of flows N
Tinpkts pktpkt RTTCwndTN
)/(1
RTTpkt : Round Trip Time in header
Cwndpkt : Congestion Window in header
T: Counting Interval
No Per-Flow State
No Per-Flow State
![Page 26: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/26.jpg)
26
BottleneckS1
S2
R1, R2, …, Rn
Sn
Subset of Results
Similar behavior over:
![Page 27: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/27.jpg)
27
XCP Remains Efficient as Bandwidth or Delay Increases
Bottleneck Bandwidth (Mb/s)
Utilization as a function of Bandwidth
Av g
. U
tiliz
a tio
n
Round Trip Delay (sec)
Avg
. U
tiliz
a tio
n
Utilization as a function of Delay
![Page 28: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/28.jpg)
28
Av g
. U
tiliz
a tio
n
Av g
. U
tiliz
a tio
n
XCP Remains Efficient as Bandwidth or Delay Increases
Bottleneck Bandwidth (Mb/s) Round Trip Delay (sec)
Utilization as a function of Delay
XCP increases proportionally to spare bandwidth
and chosen to make XCP robust to delay
Utilization as a function of Bandwidth
![Page 29: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/29.jpg)
29
XCP Shows Faster Response than TCP
XCP shows fast response!XCP shows fast response!
Start 40 Flows
Start 40 Flows
Stop the 40 Flows
Stop the 40 Flows
![Page 30: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/30.jpg)
30
XCP Deals Well with Short Web-Like Flows
Arrivals of Short Flows/sec
Average Utilization
Average Queue
Drops
![Page 31: CS 268: Lecture 7 (Beyond TCP Congestion Control)](https://reader035.vdocuments.us/reader035/viewer/2022062720/568133d2550346895d9ac871/html5/thumbnails/31.jpg)
31
XCP is Fairer than TCP
Flow ID
Different RTTSame RTT
Avg
. Th
rou
gh
pu
t
Flow ID
Avg
. Th
rou
gh
pu
t
(RTT is 40 ms 330 ms )