Beruflich Dokumente
Kultur Dokumente
Outline
Queuing Discipline
Reacting to Congestion
Avoiding Congestion
Source
1 10-M
bps
Ethe
rnet Router Destination
1.5-Mbps T1 link
sF DDI
Source 0 -Mb p
10
2
• Two points of implementation
– hosts at the edges of the network (transport protocol)
– routers inside the network (queuing discipline)
• Underlying service model
– best-effort (assume for now)
– multiple qualities of service (later)
Source
1
Router Destination
1
Router
Source
2
Router
Destination
2
Source
3
• Taxonomy
– router-centric versus host-centric
– reservation-based versus feedback-based
– window-based versus rate-based
Optimal Load
load
Flow 2
Round-robin
service
Flow 3
Flow 4
F=8 F = 10 F = 10
F=5 F=2
(a) (b)
MaxWin = MIN(CongestionWindow,
AdvertisedWindow)
EffWin = MaxWin - (LastByteSent -
LastByteAcked)
• Idea:
– increase CongestionWindow when congestion goes down
– decrease CongestionWindow when congestion goes up
• Algorithm
– increment CongestionWindow by
one packet per RTT (linear increase)
– divide CongestionWindow by two
whenever a timeout occurs
(multiplicative decrease)
…
• In practice: increment a little for each ACK
Increment = (MSS * MSS)/CongestionWindow
CongestionWindow += Increment
70
60
50
40
KB
30
20
10
1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
Time (seconds)
…
Spring 2003 CS 461 13
Slow Start (cont)
• Exponential growth, but slower than all at once
• Used…
– when first starting connection
– when connection goes dead waiting for timeout
• Trace
70
60
50
KB
40
30
20
10
• Problem:1.0lose up
2.0 to half
3.0 a CongestionWindow
4.0 5.0 6.0 7.0 ’s worth
8.0 of data
9.0
Packet 6
ACK 2
ACK 2
Retransmit
packet 3
ACK 6
30
20
10
• Fast recovery
– skip the slow start phase
– go directly to half the last successful CongestionWindow (ssthresh)
Queue length
Current
time
Time
Previous Current
cycle
queue length > 1 cycle
– set congestion bit if average Averaging
– attempts to balance throughout against delay
interval
AvgLen
Spring 2003 CS 461 21
RED Details (cont)
MaxP
AvgLen
MinThresh MaxThresh
KB
30
20
10
0.5 1.0 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 8.5
Time (seconds)
1100
Sending KBps 900
700
500
300
100
0.5 1.0 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 8.5
Time (seconds)
Queue size in router
10
0.5 1.0 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 8.5
Time (seconds)
KB
30
20
10
0.5 1.0 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
Time (seconds)
240
200
CAM KBps
160
120
80
40
0.5 1.0 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
Time (seconds)