Upload
connor
View
60
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Delay-based Congestion Control. CCW 2003 David Wei http://netlab.caltech.edu. Topics. Summary of congestion control algorithms FAST Algorithm Experimental Results Open problems. Decision Function. Decision Function. Congestion Signal. Loss Delay ECN. Queueing delay. Vegas q=q*. - PowerPoint PPT Presentation
Citation preview
Delay-based Delay-based Congestion Congestion
ControlControlCCW 2003CCW 2003
David WeiDavid Weihttp://netlab.caltech.eduhttp://netlab.caltech.edu
TopicsTopics
Summary of congestion control Summary of congestion control algorithmsalgorithms
FAST AlgorithmFAST Algorithm Experimental ResultsExperimental Results Open problemsOpen problems
Decision FunctionDecision Function
Decision FunctionDecision Function
Congestion SignalCongestion Signal LossLoss DelayDelay ECNECN
Queueing delay
ECN
Loss
TFRCp=p*
DUALq>q_max/2?
Vegasq=q*
CARDq>0?
Goodput
Decision Decision FunctionFunction
using using Binary Signal Binary Signal
Congestion SignalCongestion Signal LossLoss DelayDelay ECNECN
Delay-Delay-BasedBased
Loss-BasedLoss-Based
Multi-Valued Multi-Valued SignalSignal
FAST / FAST / VegasVegas
TFRCTFRC
Binary SignalBinary Signal CARD / CARD / DUALDUAL
Reno / Reno / HSTCP / HSTCP / ScalableTCScalableTCPP
Congestion SignalCongestion Signal LossLoss DelayDelay ECNECN
Delay-Delay-BasedBased
Loss-BasedLoss-Based
Multi-Valued Multi-Valued SignalSignal
FAST / FAST / VegasVegas
TFRCTFRC
Binary SignalBinary Signal CARD / CARD / DUALDUAL
Reno / Reno / HSTCP / HSTCP / ScalableTCScalableTCPP
?
Throughput as function of the timeChicago -> CERN
Linux kernel 2.4.19
Traffic generated by iperf (I measure the throughput over the last 5 sec)
TCP single stream
RTT = 119ms MTU = 1500
Duration of the test : 2 hours Bottleneck=1Gbps
0
100
200
300
400
500
0 1000 2000 3000 4000 5000 6000 7000Time (s)
Thro
ughp
ut (M
b/s)
By Sylvain Ravot (Caltech)
Reno in High Reno in High Speed…Speed…
pW 5.1
Difficulties in Large Difficulties in Large WindowWindow
Equilibrium problemsEquilibrium problems Packet levelPacket level: AI too slow, MI too drastic: AI too slow, MI too drastic Flow levelFlow level:: requiredrequired loss probability too smallloss probability too small
Dynamic problemsDynamic problems Packet levelPacket level: : mustmust oscillate on binary signaloscillate on binary signal Flow levelFlow level: : unstable at large windowunstable at large window
MeasurementMeasurement Very small loss probabilityVery small loss probability Packet out-of orderPacket out-of order
5
Improvements:
HSTCPScalableTC
P
FAST (sc2002) Algorithm FAST (sc2002) Algorithm Do the following every other RTT:Do the following every other RTT:per acknowledgment:per acknowledgment: Calculation: Calculation:
Action:Action:• If w(t)>w*: w(t)=w(t)-1If w(t)>w*: w(t)=w(t)-1• If w(t)<w*: w(t)=w(t)+1If w(t)<w*: w(t)=w(t)+1
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
FAST (sc2002) Algorithm FAST (sc2002) Algorithm Do the following every other RTT:Do the following every other RTT:per acknowledgment:per acknowledgment: Calculation: Calculation:
Action:Action:• If w(t)>w*: w(t)=w(t)-1If w(t)>w*: w(t)=w(t)-1• If w(t)<w*: w(t)=w(t)+1If w(t)<w*: w(t)=w(t)+1
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
FAST (sc2002) Algorithm FAST (sc2002) Algorithm Do the following every other RTT:Do the following every other RTT:per acknowledgment:per acknowledgment: Calculation: Calculation:
Action:Action:• If w(t)>w*: w(t)=w(t)-1If w(t)>w*: w(t)=w(t)-1• If w(t)<w*: w(t)=w(t)+1If w(t)<w*: w(t)=w(t)+1
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
FAST (sc2002) Algorithm FAST (sc2002) Algorithm Do the following every other RTT:Do the following every other RTT:per acknowledgment:per acknowledgment: Calculation: Calculation:
Action:Action:• If w(t)>w*: w(t)=w(t)-1If w(t)>w*: w(t)=w(t)-1• If w(t)<w*: w(t)=w(t)+1If w(t)<w*: w(t)=w(t)+1
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
FAST (sc2002) Algorithm FAST (sc2002) Algorithm Do the following every other RTT:Do the following every other RTT:per acknowledgment:per acknowledgment: Calculation: Calculation:
Action:Action:• If w(t)>w*: w(t)=w(t)-1If w(t)>w*: w(t)=w(t)-1• If w(t)<w*: w(t)=w(t)+1If w(t)<w*: w(t)=w(t)+1
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
FAST (sc2002) Algorithm FAST (sc2002) Algorithm Do the following every other RTT:Do the following every other RTT:per acknowledgment:per acknowledgment: Calculation: Calculation:
Action:Action:• If w(t)>w*: w(t)=w(t)-1If w(t)>w*: w(t)=w(t)-1• If w(t)<w*: w(t)=w(t)+1If w(t)<w*: w(t)=w(t)+1
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
Results on ConvergenceResults on Convergence
With static link model:With static link model: Single link identical sources: convergeSingle link identical sources: converge Single link heterogeneous sources: Single link heterogeneous sources:
bounded by converging sequencesbounded by converging sequences General case (proofs without delay): General case (proofs without delay): Contraction mappingContraction mapping
l
i il
i cdtqtw
2
**
t
tRTTtt
t
RTTt wbaseRTTRTTw
w
Simulation with Simulation with MatlabMatlab
baseRTT: 550ms,600ms,650ms,700ms,750msbaseRTT: 550ms,600ms,650ms,700ms,750ms Alpha=500 pktAlpha=500 pkt C=5000/12 pkt/msC=5000/12 pkt/ms
0,)(max)( tc
ctDtw
ttqtq i i
i
pkt/ms
pkt/ms
pkt
pkt
Simulation with MatlabSimulation with Matlab
baseRTT: 550ms,600ms,650ms,700ms,750msbaseRTT: 550ms,600ms,650ms,700ms,750ms Alpha=500Alpha=500 C=5000/12 pkt/msC=5000/12 pkt/ms
ms
pkt
Dummynet TestbedDummynet Testbed@ Netlab, Caltech@ Netlab, Caltech
Static throughputStatic throughput
Dynamic sharing on DummynetDynamic sharing on Dummynet capacity = 800Mbpscapacity = 800Mbps Delay = 50 - 200msDelay = 50 - 200ms # flows: 1 - 10# flows: 1 - 10 iperf throughputiperf throughput Linux 2.4 (HSTCP: UCL)Linux 2.4 (HSTCP: UCL)
Static throughputStatic throughput
Linux
throughput
loss
queue
STCPHSTCPHSTCPScalable
HSTCPFAST
Linux
10 Flows RTT=50ms ~ 200ms
Bottleneck=800Mbps
Questions?Questions?ThanksThanks