Lecture 2: Congestion Control and Avoidance
- 2. 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