Simulation based analysis of FAST TCP using OMNET++ Umair ul Hassan
Outline TCP Congestion Control Variations FAST TCP OMNET++
TCP Congestion Control Retransmission Timer Management Jacobson’s Algorithm Exponential RTO Backoff Karn’s Algorthim Window Management
Slow Start Increase cwnd by 1 for each ACK Exponential Increase Dynamic Window Sizing on Congestion Reset cwnd on packet loss and restart slow start Linear increase after threshold
Window Management Fast Retransmit On receiving out-of-order segment send an ACK for last in-order segment. Sender should wait atleast 3 duplicate ACKs before retransmission FAST Recovery Set cwnd = ssthreshold + 3 Increase by 1 on each duplicate ACK Set cwnd = ssthreshold on ACK
TCP Tahoe and Reno MeasureTahoeReno Slow Start Dynamic Window Sizing on Congestion Fast Retransmit Fast Recovery
Problems with TCP Reno Packet Level Slow additive increase and Fast Multiplicative decrease Oscillations due to binary congestion singal Flow Level Very small loss probability required Instability because of oscillations
TCP Vegas Delay Based Congestion Control New Retransmission Mechanism On duplicate ACK retransmit if RTT > RTO, don’t wait till 3 DACKs Congestion Aviodance Diff = Expected – Actual Modified Slow Start Alow exponential growth every other RTT
Congestion Window Update TCP Vegas cwnd + 1 if Diff<α Cwnd = cwnd – 1 if Diff>β cwnd otherwise TCP FAST cwnd + γ(α – Diff) if Diff<α Cwnd = cwnd – γ(Diff - α) if Diff>α cwnd otherwise
Implementation Per ACK
Implementation Per RTT
Problems Fairness when used with other variations Priority Queues
OMNET++ Discrete Event Simulation System NED language Atomic Modules Compound Modules Message based communication
INET Framework Internet Protocols (IP, TCP, UDP, PPP, ARP) TCPBaseAlg TCPReno and TCPTahoe TCPFast
Q & A