420 likes | 518 Views
FAST II: Algorithms and Performance. Cheng Jin David Wei Steven Low http://netlab.caltech.edu. Topics. Design Issues FAST (sc2002 version) Window Pacing Experimental Results. Design Issues. Raj Jain ’ s “ Three questions that a congestion control algorithm should answer ” :
E N D
FAST II: Algorithms and Performance Cheng Jin David Wei Steven Low http://netlab.caltech.edu
Topics • Design Issues • FAST (sc2002 version) • Window Pacing • Experimental Results
Design Issues Raj Jain’s “Three questions that a congestion control algorithm should answer”: • Decision Frequency (Timescale) • Decision function • How to Increase/Decrease Window
How Frequent? • Timescale of a congestion control algorithm New Reno:
Congestion Signal • Loss • Delay • ECN
Increase/Decrease Function • Under synchronization assumption (Chui and Jain):
FAST (sc2002) Algorithm Do the following every other RTT: per acknowledgment: • Calculation: • 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: • 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: • 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: • 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: • 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: • Action: • If w(t)>w*: w(t)=w(t)-1 • If w(t)<w*: w(t)=w(t)+1 No more aggressive than Rate Halving No more aggressive than Slow Start
Results on Convergence Under synchronization model: • Single link identical sources: converge • Single link heterogeneous sources: bounded by converging sequences • General case: Contraction mapping
Simulation with Matlab pkt/ms • baseRTT: 550ms,600ms,650ms,700ms,750ms • Alpha=500 pkt • C=5000/12 pkt/ms pkt/ms pkt pkt
Simulation with Matlab ms pkt • baseRTT: 550ms,600ms,650ms,700ms,750ms • Alpha=500 • C=5000/12 pkt/ms
Pacing Why Pacing? • Eliminate “noise” of packet loss due to burstiness (for loss-based algorithms). • Eliminate “noise” of queuing delay due to burstiness (for delay-based algorithms). • Pacing can make the behavior of TCP more fluid-like Why not pacing?
Window Pacing Over one RTT: • Action (each acknowledgment): • If w(t)>w*: w(t)=w(t)-1 • If w(t)<w*: w(t)=w(t)+1
Time-Based Window Pacing cwnd increments are scheduled at fixed intervals. data data ack k k k k k k (Cheng Jin, Caltech)
Event-Based Pacing Detect sufficiently large gap between consecutive bursts and delay cwnd increment until the end of each such burst. (Cheng Jin, Caltech)
Implementing Pacing • Using Intel x86 cycle counter for high resolution • Combination of time-based and event-based pacing • Time-based pacing is supported only for single TCP stream in a single machine • Event-based pacing can support multiple TCP streams in a single machine (Cheng Jin, Caltech)
Experiments • SC2002 • Dummynet • Internet2 • Summary
SC2002 Network OC48 OC192 (Sylvain Ravot, Caltech)
FAST BMPS 10 #flows 9 Geneva-Sunnyvale 7 FAST 2 Baltimore-Sunnyvale FAST • Standard MTU • Throughput averaged over > 1hr 1 Internet2 Land Speed Record 2 1 (Steven Low, Caltech)
Static throughput Dynamic sharing on Dummynet • capacity = 800Mbps • Delay = 50 - 200ms • # flows: 1 - 10 • iperf throughput • Linux 2.4 (HSTCP: UCL)
Dynamic Sharing HSTCP FAST • Fairness Problem Scalable Linux
queue HSTCP FAST Linux loss throughput Linux Scalable HSTCP STCP HSTCP
Dynamic Sharing HSTCP FAST Scalable Linux
Abilene Testing U Washington PSC Caltech GaTech
Abilene Testing 100Mbps Test: Caltech->Gatech • Duration: 120 second • Base RTT: 46ms • UDP blast: every 20 seconds for 5 seconds per blast RTT (us) Cwnd (Cheng Jin, Caltech)
Performance Metrics • Aggregate Average Goodput • Fairness: Jain’s index • Stability: • Responsiveness:
Aggregate throughput Dummynet: cap = 800Mbps; delay = 50-200ms; #flows = 1-14; 29 expts
HSTCP ~ Reno Jain’sindex Fairness Dummynet: cap = 800Mbps; delay = 50-200ms; #flows = 1-14; 29 expts
Stability Dummynet: cap = 800Mbps; delay = 50-200ms; #flows = 1-14; 29 expts
Responsiveness Dummynet: cap = 800Mbps; delay = 50-200ms; #flows = 1-14; 29 expts
Future Works • Congestion Window Control Algorithm: Stability with delay • Synchronization Model • Burstiness Control: Modeling, Measurement • Testing: Experiments in production networks
Questions? Thanks