Janey C. Hoe Laboratory for Computer Science at MIT 노상훈, Pllab
Abstract Previous scheme has some defects Analyze behavior of congestion control scheme Use Estimated sstrhesh Modify Fast Retransmit and Fast Recovery algorithms Propose several changes The result show that the performance is improved Experiments 1
Introduction 2 Slow-start Fast Retransmit and Fast Recovery This proposal based on congestion control scheme Especially focus on the start-up period Fixed default value cause multiple packet losses Only one packet loss can be recovered Analyze congestion control schemeImprove the congestion control scheme
Related Work 3 Slow start, congestion avoidance Fast retransmit, Fast recovery added Van Jacobson’s Scheme Selective Ack Resolve multiple packet loss pr0blem Require Cooperative Receiver SACK Modify Slow-start’s linear growth Vegas
The Congestion Control Scheme CWND ramp up to ssthresh Use arbitrarily initialized ssthresh (=64 segments) Slow-start Triggered by 3 duplicate acknowledge Retransmit without waiting retransmission timeout Lower CWND, ssthresh Fast retransmit After fast retransmit, recover CWND by linear mode Fast recovery 4
Slow-start problem SSTHRESH uses arbitrary value CWND ramp up over capacity of link Cause multiple packet loss by segment surge If too high CWND be stable slowly Cause lower performance If too low 5
Fast retransmit problem #1 : Timeout CWND is full 51 is recovered By fast retransmit 53 couldn’t recovered Network is idle Retransmission time0ut Ignored cue Max seq is 54 and Last ack is 53 Obviously 53 was lost 6
Fast retransmit problem #2 : False Fast Retransmit 7 Activation of algorithm when no segment loss. False Fast Retransmits Forces the sender to go into linear mode Problem of FFR
Modification: Slow-start Use better initial value of ssthresh Estimated value is better than arbitrary default value Estimation method At first, initialize as previous default value (=64 seg) During 3 ack (= establishing connection) Least square estimation of bandwidth-delay product Even if default value is high, CWND not ramp up riskily 8
Modification: Slow-start Prevent multiple packet losses during start-up period on severe environment 9
Modification: Fast retransmit & Fast Recovery #1 Marks highest sequence number, snd_high Keep fast retransmit mode until all packet recovered 1 Keep “flywheel” Every 2 duplicate Ack received, send new data segment 2 10
Modification: Fast retransmit & Fast Recovery #2 Fast retransmit phase Setup (1)set ssthresh = ½ cwnd cwnd = 1 segment snd_next = snd_una (2) set snd_high = snd_max save_cwnd = ssthresh + 1 segment Fast retransmit phase Setup (1)set ssthresh = ½ cwnd cwnd = 1 segment snd_next = snd_una (2) set snd_high = snd_max save_cwnd = ssthresh + 1 segment Upon receiving 3 duplicate ACK’s begin fast restransmit Phase Yes, Still in fast retransmit phase Retransmit (3) send using slow start algorithm (4) allow congestion window to increase as long as congestion window <= save_cwnd (5) do not start a new fast retransmit phase (6) upon receiving 2 duplicate ACK’s, send out 1 new packet beyond snd_high Retransmit (3) send using slow start algorithm (4) allow congestion window to increase as long as congestion window <= save_cwnd (5) do not start a new fast retransmit phase (6) upon receiving 2 duplicate ACK’s, send out 1 new packet beyond snd_high Seq number ACKed < snd_high No 11 cwnd=save_cwnd
Modification: Fast retransmit & Fast Recovery #3 Modified algorithm can handle multiple packet losses 12
Simulation Environment Bottle-neck link 13 HOST 1 HOST 2 Switch 1 Switch 2 10Mbps 1600Kbps 50ms delay
Multiple packet losses occurred during start-up period Simulation result - original 14
Graph show new algorithm is better than original algorithm Simulation result – improved 15
Conclusion Proposes several possible changes to improve the start- up behavior of the congestion control scheme. Estimated ssthresh value. Modification Fast retransmit algorithm. Tested in simulations and over real network. These changes can significantly improve TCP’s performance during start-up period By eliminating the wait for unnecessary timeout These changes are noticeable in short TCP data transfers 16
Reference [1] Janey C. Hoe, Improving the Start-up Behavior of a Congestion Control Scheme for TCP, Proceedings of the ACM SIGCOMM Conference, 1996 [2] Kevin Fall. Kannan Varadhan, ns Notes and Documentation, UC Berkeley, LBL, USC/ISI, and Xerox PARC 17
Supplement 1: About Implementation. [2] ns Notes and Documentation 18
Supplement 2: About Implementation 19
Supplement 3: About graph There is no TCL variable which is contain current sequence number. We added new variable “just_seq_” and compiled. 20