More Related Content More from Wei Tsang Ooi (20) Lecture 2: Congestion Control and Avoidance2. Van Jacobson,
“Congestion Avoidance
and Control”, "
SIGCOMM 1988
21 August 2009
CS5229 Semester 1 2009/10
2
3. Fixes to TCP in BSD"
Handwaving arguments"
Less rigorous math"
Lots of “magical” hacks
21 August 2009
CS5229 Semester 1 2009/10
3
4. We assume "
- the sender always has data to send"
- each packet is of the same size"
- TCP is message-oriented
21 August 2009
CS5229 Semester 1 2009/10
4
6. TCP throughput from LBL to UC
Berkeley (two hops) dropped from
32K bps to 40 bps.
21 August 2009
CS5229 Semester 1 2009/10
7
8. Sending window = receiving
window"
No congestion control"
Retransmit only when timeout
21 August 2009
CS5229 Semester 1 2009/10
9
9. Congestion Collapse: "
sender sends too fast"
routers delay/drop packets"
sender retransmit"
no useful data getting through
21 August 2009
CS5229 Semester 1 2009/10
10
10
11. Observation: a TCP connection should obey"
Conservation !
of !
Packets
21 August 2009
CS5229 Semester 1 2009/10
12
12
12. In equilibrium state, a new
packet is not inserted until an
old packet leaves.
21 August 2009
CS5229 Semester 1 2009/10
13
13
14. How could this principle
be violated?
21 August 2009
CS5229 Semester 1 2009/10
15
15
16. 2. Inject a packet before
the next packet leaves
21 August 2009
CS5229 Semester 1 2009/10
17
17
17. 1. Getting to the
equilibrium state
21 August 2009
CS5229 Semester 1 2009/10
18
18
20. How to start the ‘clock’?
21 August 2009
CS5229 Semester 1 2009/10
21
21
22. Add a new variable cwnd."
Start/Restart: cwnd = 1."
Upon receiving ACK, cwnd++."
Send at most min(cwnd,rwin)
21 August 2009
CS5229 Semester 1 2009/10
23
23
24. Never send more than 2x
the max possible rate."
(previously 200x is possible!)
21 August 2009
CS5229 Semester 1 2009/10
25
25
26. 2. Inject a packet before
the next packet leaves
21 August 2009
CS5229 Semester 1 2009/10
27
27
30. TCP (RFC793)
Ri : smoothed RTT
Mi : measured RTT
RTO : timeout value
21 August 2009
CS5229 Semester 1 2009/10
31
31
31. Variation in RTT when
network is loaded
21 August 2009
CS5229 Semester 1 2009/10
32
32
32. β = 2 (recommended)
tolerates only 30% load
21 August 2009
CS5229 Semester 1 2009/10
33
33
33. Idea: estimate the variation
and use in calculating RTO
21 August 2009
CS5229 Semester 1 2009/10
34
34
39. To pick a value of k,
consider bandwidth-
dominated link.
21 August 2009
CS5229 Semester 1 2009/10
41
41
41. R doubles each round
during slow-start.
21 August 2009
CS5229 Semester 1 2009/10
43
43
46. 3. Moving towards new
equilibrium when path
changes
21 August 2009
CS5229 Semester 1 2009/10
48
48
47. Idea: adjust cwnd when
congestion happens
21 August 2009
CS5229 Semester 1 2009/10
49
49
49. On timeout, cwnd /= 2"
On ACK, cwnd += 1/cwnd
21 August 2009
CS5229 Semester 1 2009/10
51
51
50. Why drop by half ?"
1. Slow-start: "
we know R/2 works"
2. Steady state:"
a new flow probably?
21 August 2009
CS5229 Semester 1 2009/10
52
52
51. Combining "
slow-start "
and "
congestion avoidance
21 August 2009
CS5229 Semester 1 2009/10
53
53
55. cwnd: "
“pipe size” probed"
ssthresh: "
“pipe size” during equilibrium
21 August 2009
CS5229 Semester 1 2009/10
57
57
56. new ack:"
if (cwnd < ssthresh)"
cwnd += 1"
else"
cwnd += 1/cwnd
21 August 2009
CS5229 Semester 1 2009/10
58
58
57. timeout/3rd dup ack:"
retransmit all unacked"
ssthresh = cwnd/2"
cwnd = 1"
21 August 2009
CS5229 Semester 1 2009/10
59
59
58. Improving TCP Tahoe:"
Packets still getting through in
dup ack -- no need to reset the
clock!
21 August 2009
CS5229 Semester 1 2009/10
60
60
60. timeout:"
retransmit all unacked"
ssthresh = cwnd/2"
cwnd = 1"
21 August 2009
CS5229 Semester 1 2009/10
71
71
61. 3rd duplicate ACK:!
fast retransmission!
(ie, retransmit 1st unack) "
fast recovery"
(details in Week 4)"
ssthresh = cwnd = cwnd/2
21 August 2009
CS5229 Semester 1 2009/10
72
72
63. AIMD!
additive increase!
multiplicative decrease
21 August 2009
CS5229 Semester 1 2009/10
74
74
64. Chiu and Jain, “Analysis of
Increase and Decrease
Algorithms for Congestion
Avoidance in Computer
Networks”, Comp. Net. &
ISDN Sys. 1989
21 August 2009
CS5229 Semester 1 2009/10
80
80