1 / 17

EE 122: Congestion Control The Sequel

EE 122: Congestion Control The Sequel. October 1, 2003. Quick Review. Slow-Start: cwnd++ upon every new ACK Congestion avoidance: AIMD if cwnd > ssthresh ACK: cwnd = cwnd + 1/cwnd Drop: ssthresh =cwnd/2 and cwnd=1 Fast Recovery: duplicate ACKS: cwnd=cwnd/2 Timeout: cwnd=1. TCP Flavors.

meryle
Download Presentation

EE 122: Congestion Control The Sequel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EE 122: Congestion ControlThe Sequel October 1, 2003

  2. Quick Review • Slow-Start: cwnd++ upon every new ACK • Congestion avoidance: AIMD if cwnd > ssthresh • ACK: cwnd = cwnd + 1/cwnd • Drop: ssthresh =cwnd/2 and cwnd=1 • Fast Recovery: • duplicate ACKS: cwnd=cwnd/2 • Timeout: cwnd=1

  3. TCP Flavors • TCP-Tahoe • cwnd =1 whenever drop is detected • TCP-Reno • cwnd =1 on timeout • cwnd = cwnd/2 on dupack • TCP-newReno • TCP-Reno + improved fast recovery • TCP-Vegas, TCP-SACK

  4. TCP Vegas • Improved timeout mechanism • Decrease cwnd only for losses sent at current rate • avoids reducing rate twice • Congestion avoidance phase: • compare Actual rate (A) to Expected rate (E) • if E-A > , decrease cwnd linearly • if E-A < , increase cwnd linearly • rate measurements ~ delay measurements • see textbook for details!

  5. TCP-SACK • SACK = Selective Acknowledgements • ACK packets identify exactly which packets have arrived • Makes recovery from multiple losses much easier

  6. Standards? • How can all these algorithms coexist? • Don’t we need a single, uniform standard? • What happens if I’m using Reno and you are using Tahoe, and we try to communicate?

  7. Equation-Based CC • Simple scenario • assume a drop every k’th RTT (for some large k) • w, w+1, w+2, ...w+k-1 DROP (w+k-1)/2, (w+k-1)/2+1,... • Observations: • In steady state: w= (w+k-1)/2 so w=k-1 • Average window: 1.5(k-1) • Total packets between drops: 1.5k(k-1) • Drop probability: p = 1/[1.5k(k-1)] • Throughput: T ~ (1/RTT)*sqrt(3/2p)

  8. Equation-Based CC • Idea: • Forget complicated increase/decrease algorithms • Use this equation T(p) directly! • Approach: • measure drop rate (don’t need ACKs for this) • send drop rate p to source • source sends at rate T(p) • Good for streaming audio/video that can’t tolerate the high variability of TCP’s sending rate

  9. Question! • Why use the TCP equation? • Why not use any equation for T(p)?

  10. Cheating • Three main ways to cheat: • increasing cwnd faster than 1 per RTT • using large initial cwnd • Opening many connections

  11. x A B y D E Increasing cwnd Faster y C x increases by 2 per RTT y increases by 1 per RTT Limit rates: x = 2y x

  12. x A B y D E Increasing cwnd Faster

  13. x A B y D E Larger Initial cwnd x starts SS with cwnd = 4 y starts SS with cwnd = 1

  14. x A B y D E Open Many Connections • Assume • A starts 10 connections to B • D starts 1 connection to E • Each connection gets about the same throughput • Then A gets 10 times more throughput than D

  15. x A B y D E Cheating and Game Theory D  Increases by 1 Increases by 5 A Increases by 1 Increases by 5 (x, y) • Too aggressive • Losses • Throughput falls Individual incentives: cheating pays Social incentives: better off without cheating Classic PD: resolution depends on accountability

  16. Lossy Links • TCP assumes that all losses are due to congestion • What happens when the link is lossy? • Recall that Tput ~ 1/sqrt(p) where p is loss prob. • This applies even for non-congestion losses

  17. Example p = 0 p = 1% p = 10%

More Related