Sequel to Sequel of Breaking Dawn -Eventide- Updated 4/16/09
EE 122: Congestion Control The Sequel
-
Upload
zena-contreras -
Category
Documents
-
view
20 -
download
2
description
Transcript of EE 122: Congestion Control The Sequel
EE 122: Congestion Control
The Sequel
October 1, 2003
2
Quick Review
Slow-Start: cwnd++ upon every new ACK
Congestion avoidance: AIMD if cwnd > ssthresh- ACK: cwnd = cwnd + 1/cwnd
- Drop: ssthresh =cwnd/2 and cwnd=1
Fast Recovery:- duplicate ACKS: cwnd=cwnd/2
- Timeout: cwnd=1
3
TCP Flavors
TCP-Tahoe- cwnd =1 whenever drop is detected
TCP-Reno- cwnd =1 on timeout
- cwnd = cwnd/2 on dupack
TCP-newReno- TCP-Reno + improved fast recovery
TCP-Vegas, TCP-SACK
4
TCP Vegas
Improved timeout mechanism
Decrease cwnd only for losses sent at current rate- avoids reducing rate twice
Congestion avoidance phase:- compare Actual rate (A) to Expected rate (E)
- if E-A > , decrease cwnd linearly
- if E-A < , increase cwnd linearly
- rate measurements ~ delay measurements
- see textbook for details!
5
TCP-SACK
SACK = Selective Acknowledgements
ACK packets identify exactly which packets have arrived
Makes recovery from multiple losses much easier
6
Standards?
How can all these algorithms coexist?
Don’t we need a single, uniform standard?
What happens if I’m using Reno and you are using Tahoe, and we try to communicate?
7
Equation-Based CC
Simple scenario- assume a drop every k’th RTT (for some large k)
- w, w+1, w+2, ...w+k-1 DROP (w+k-1)/2, (w+k-1)/2+1,...
Observations:- In steady state: w= (w+k-1)/2 so w=k-1
- Average window: 1.5(k-1)
- Total packets between drops: 1.5k(k-1)
- Drop probability: p = 1/[1.5k(k-1)]
Throughput: T ~ (1/RTT)*sqrt(3/2p)
8
Equation-Based CC
Idea:- Forget complicated increase/decrease algorithms
- Use this equation T(p) directly!
Approach:- measure drop rate (don’t need ACKs for this)
- send drop rate p to source
- source sends at rate T(p)
Good for streaming audio/video that can’t tolerate the high variability of TCP’s sending rate
9
Question!
Why use the TCP equation?
Why not use any equation for T(p)?
10
Cheating
Three main ways to cheat:- increasing cwnd faster than 1 per RTT
- using large initial cwnd
- Opening many connections
11
Increasing cwnd Faster
A Bx
D Ey
Limit rates:x = 2y
C
x
y
x increases by 2 per RTTy increases by 1 per RTT
12
Increasing cwnd Faster
A Bx
D Ey
0
10
20
30
40
50
60
1 28 55 82 109
136
163
190
217
244
271
298
325
352
379
406
433
460
487
13
Larger Initial cwnd
A Bx
D Ey
x starts SS with cwnd = 4y starts SS with cwnd = 1
14
Open Many Connections
A Bx
D Ey
Assume • A starts 10 connections to B• D starts 1 connection to E• Each connection gets about the same throughput
Then A gets 10 times more throughput than D
15
Cheating and Game Theory
A Bx
D Ey
22, 22 10, 35
35, 10 15, 15
(x, y)A
Increases by 1
Increases by 5
D Increases by 1 Increases by 5
Individual incentives: cheating paysSocial incentives: better off without cheating
Classic PD: resolution depends on accountability
Too aggressiveLossesThroughput falls
16
Lossy Links
TCP assumes that all losses are due to congestion
What happens when the link is lossy?
Recall that Tput ~ 1/sqrt(p) where p is loss prob.
This applies even for non-congestion losses
17
Example
0
10
20
30
40
50
60
1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 401 426 451 476
p = 0
p = 1%
p = 10%