Congestion Control: Issues
Congestion Control: Issues
Congestion Control
Source
1
10-M
bps
Ethe
rnet
Router
1.5-Mbps T1 link
Source
2
Destination
I
FDD
bps
00-M
Additive Increase/Multiplicative
Decrease
assumes
Idea:
Challenge
determining
place
adjusting to changes in the available capacity
AIMD (cont)
AIMD (cont)
Source
Question:
Answer:
Destination
Algorithm
increment
CongestionWindow by one
packet per RTT (linear
increase)
divide CongestionWindow by
two whenever a timeout occurs
(multiplicative decrease)
a timeout occurs
timeout
Slow Start
AIMD (cont)
Source
Trace:
sawtooth behavior
Destination
Objective:
determine the
available capacity in the first
Idea:
70
60
50
40
30
20
10
begin
1.0
2.0
3.0
4.0
5.0
6.0
Time (seconds)
7.0
8.0
9.0
10.0
with CongestionWindow
= 1 packet
double CongestionWindow
each RTT (increment by 1
packet for each ACK)
Problem:
Trace
70
60
50
40
30
20
10
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
Sender
Receiver
Packet 1
Packet 2
Packet 3
ACK 1
Packet 4
ACK 2
Packet 5
ACK 2
Packet 6
ACK 2
ACK 2
Retransmit
packet 3
ACK 6
9.0
Time (seconds)
Congestion Avoidance
Results
70
60
50
40
30
20
10
1.0
2.0
3.0
4.0
Time (seconds)
TCPs strategy
5.0
6.0
7.0
Alternative strategy
Fast recovery
Two possibilities
DECbit
End Hosts
Destination
Previous
cycle
Averaging
interval
Current
cycle
increase CongestionWindow
Time
If
Notification
is implicit
just
random drop
rather
by 1 packet
decrease CongestionWindow
by 0.875 times
TCP Vegas
RTT grows
70
60
50
40
30
20
10
1.0 1.5
2.0
5.0
5.5 6.0
6.5
2.0
5.0
5.5 6.0
6.5
2.0
5.0
5.5 6.0
6.5
0.5
1100
900
700
500
300
100
10
5
Algorithm (cont)
Algorithm
ExpectRate = CongestionWindow/BaseRTT
Parameters
0.5
TCP throughput
Let
slow start
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
6.0
6.5
7.0
7.5
8.0
5.5
6.0
6.5
7.0
7.5
8.0
240
200
160
120
80
40
1.0
1.5
2.0
2.5
3.0
Ignore
1.0
Time (seconds)
70
60
50
40
30
20
10
0.5
Whats
= 1 packet
= 3 packets
TCP Futures
L = 210-10
New versions of TCP for high-speed needed!
TCP Fairness
Fairness goal: if K TCP sessions share same
bottleneck link of bandwidth R, each should
have average rate of R/K
TCP connection 1
TCP
connection 2
Connection 2 throughput
bottleneck
router
capacity R
Connection 1 throughput R
Delay modeling
Q: How long does it take
to receive an object
from a Web server
after sending a
request?
Ignoring congestion,
delay is influenced by:
TCP connection
establishment
data transmission delay
slow start
Notation, assumptions:
Window size:
First case:
WS/R > RTT + S/R: ACK
for first segment in
window returns before
windows worth of data
sent
delay = 2RTT + O/R