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 Vegas q=q* Queueing delay DUAL q>q_max/2? CARD q>0? TFRC p=p* ECN Loss Goodput Decision Function using Binary Signal Congestion Signal Loss Delay ECN Delay-Based Loss-Based Multi-Valued Signal FAST / Vegas TFRC Binary Signal CARD / DUAL Reno / HSTCP / ScalableTCP Congestion Signal Loss Delay ECN ? Delay-Based Loss-Based Multi-Valued Signal FAST / Vegas TFRC Binary Signal CARD / DUAL Reno / HSTCP / ScalableTCP Reno in High Speed… Throughput as function of the time Chicago -> CERN Linux kernel 2.4.19 Traffic generated by iperf (I measure the throughput over the last 5 sec) TCP single stream RTT = 119msMTU = 1500 Duration of the test : 2 hours Bottleneck=1Gbps Throughput (Mb/s) 500 400 300 200 100 0 0 1000 2000 3000 4000 Time (s) 5000 6000 By Sylvain Ravot (Caltech) 7000 Difficulties in Large Window Equilibrium problems Packet level: AI too slow, MI too drastic Flow level: required loss probability too small Dynamic problems 1.5 p Packet level: must oscillate on binary signal Flow level: unstable at large window Measurement Improvements: HSTCP Very small loss probability ScalableTCP W Packet out-of order 5 FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: Calculation: w * baseRTT t wt RTTt RTTt * w 2 t RTTt • • Action: If w(t)>w*: w(t)=w(t)-1 If w(t)<w*: w(t)=w(t)+1 FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: Calculation: w * baseRTT t wt RTTt RTTt * w 2 t RTTt • • Action: If w(t)>w*: w(t)=w(t)-1 If w(t)<w*: w(t)=w(t)+1 FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: Calculation: w * baseRTT t wt RTTt RTTt * w 2 t RTTt • • Action: If w(t)>w*: w(t)=w(t)-1 If w(t)<w*: w(t)=w(t)+1 FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: Calculation: w * baseRTT t wt RTTt RTTt * w 2 t RTTt • • Action: If w(t)>w*: w(t)=w(t)-1 If w(t)<w*: w(t)=w(t)+1 FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: Calculation: w * baseRTT t wt RTTt RTTt * w 2 t RTTt • • Action: If w(t)>w*: w(t)=w(t)-1 If w(t)<w*: w(t)=w(t)+1 FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: Calculation: w * baseRTT t wt RTTt RTTt * w 2 t RTTt • • Action: If w(t)>w*: w(t)=w(t)-1 If w(t)<w*: w(t)=w(t)+1 Results on Convergence wt RTTt * baseRTT t wt RTTt RTTt * w 2 wi t i q t d cl l i With static link model: Single link identical sources: converge Single link heterogeneous sources: bounded by converging sequences General case (proofs without delay): Contraction mapping Simulation with Matlab pkt/ms pkt/ms pkt pkt baseRTT: 550ms,600ms,650ms,700ms,750ms Alpha=500 pkt C=5000/12 pkt/ms q(t ) max q(t t ) wi t c i D t i t ,0 c Simulation with Matlab ms pkt baseRTT: 550ms,600ms,650ms,700ms,750ms Alpha=500 C=5000/12 pkt/ms Dummynet Testbed @ Netlab, Caltech Static throughput Dynamic sharing on Dummynet capacity = 800Mbps Delay = 50 - 200ms # flows: 1 - 10 iperf throughput Linux 2.4 (HSTCP: UCL) Static throughput queue FAST 10 Flows loss RTT=50ms ~ Linux 200ms HSTCP throughput HSTCP Scalable HSTCP STCP Bottleneck=800Mbps Linux Questions? Thanks
© Copyright 2026 Paperzz