160 likes | 189 Views
Computer Networks. Congestion Avoidance. Recall. TCP Sliding Window Operation. Important Terms. Maximum Segment Size (MSS) Window Retransmission Timer Delayed ACK Duplicate ACK. Congestion Window. Sender based flow control Sender uses min( cwnd ,advertised window) Tranmission window
E N D
Computer Networks Congestion Avoidance
Recall TCP Sliding Window Operation
Important Terms • Maximum Segment Size (MSS) • Window • Retransmission • Timer • Delayed ACK • Duplicate ACK
Congestion Window • Sender based flow control • Sender uses min(cwnd,advertised window) • Tranmission window • Detect network condition and adjust • Use timers, ACKs and network feedback
Retransmitting Segments • TCP starts timer after sending a segment • If ACK returns, reset timer • If no ACK, retransmit and increase timer (2x) after resetting
Round Trip Time (RTT) • TCP measures RTT and uses RTT to calculate timer values • If ACKs returning quickly, timer values are kept low • Retransmit quickly when throughput is high • Allow time for ACK to return when throughput is low
Slow Start • Initialize cwnd to 1 MSS • Increase cwnd by 1 MSS for every ACK • Not very slow!
Congestion Avoidance • When packet loss occurs, TCP must slow its flow of traffic • When retranmission timer expires, save value of transmission window * ½ (ssthresh) • If congestion occurred due to a timeout, set cwnd to 1 segment • When data is ACK'd, increase cwnd via slow start up to ssthresh • Thereafter increase cwnd by 1/cwnd for each ACK
Fast Retransmit • If > 2 duplicate ACKs are received, a segment was probably lost • Sender assumes enough time has elapsed for out of order segments to have arrived and assembled • Retransmit segment without waiting for a retransmission timer to expire • Enter Fast Recovery
Fast Recovery • Sender has to assume data is still flowing due to the reception of duplicate ACKs • Loss was probably a rare or temporary event • Do not go into slow start, just go into congestion avoidance mode
Other mechanisms • Selective Acknowledgements (SACK) • TCP Pacing • Packeteer • RED • ECN • Network pricing