networks protocols
play

Networks & Protocols INF566 - X2010 - 2012 Lecture 2a - - PowerPoint PPT Presentation

Networks & Protocols INF566 - X2010 - 2012 Lecture 2a - Congestion control: Seeing Red thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 1 Networks & Protocols INF566 - X2010 - 2012


  1. Networks & Protocols INF566 - X2010 - 2012 Lecture 2a - Congestion control: Seeing Red thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 1

  2. Networks & Protocols INF566 - X2010 - 2012 Lecture 2a - Congestion control: Seeing Red thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 1

  3. Intro, kick-off, objectives and motivation (Thomas) 1 9/1 “What Makes For A Successful Protocol?” (Mark) 2 16/1 “Bufferbloat & the Broken Internet” (Thomas & Mark) 3 23/1 “Carrier-Grade Routing” (Thomas) 4 30/1 “Peering” (Thomas & Mark) 5 6/2 RPKI (Mark) 6 13/2 "Indirection, Encapsulation, and Obfuscation" (Mark & Thomas) 7 20/2 SDOs: the ITU, IETF, ... - Guest Lecture by Elliot Lear 8 27/2 "Homenetworking and The Curse of the End-2-End Model" (Mark) 9 ??? Presentations by buddy-teams (Thomas + Mark) thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 2

  4. Intro, kick-off, objectives and motivation (Thomas) 1 9/1 “What Makes For A Successful Protocol?” (Mark) 2 16/1 “Bufferbloat & the Broken Internet” (Thomas & Mark) 3 23/1 “Carrier-Grade Routing” (Thomas) 4 30/1 “Peering” (Thomas & Mark) 5 6/2 RPKI (Mark) 6 13/2 "Indirection, Encapsulation, and Obfuscation" (Mark & Thomas) 7 20/2 SDOs: the ITU, IETF, ... - Guest Lecture by Elliot Lear 8 27/2 "Homenetworking and The Curse of the End-2-End Model" (Mark) 9 ??? Presentations by buddy-teams (Thomas + Mark) thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 2

  5. Objectives thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 3

  6. Objectives • Recapitulate TCP Congestion Control... thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 3

  7. Objectives • Recapitulate TCP Congestion Control... • ...and why that doesn’t actually work... thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 3

  8. Objectives • Recapitulate TCP Congestion Control... • ...and why that doesn’t actually work... • Can’t fix TCP , can we fix the routers? thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 3

  9. Objectives • Recapitulate TCP Congestion Control... • ...and why that doesn’t actually work... • Can’t fix TCP , can we fix the routers? • We could, but didn’t - let’s blame Cisco ;) thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 3

  10. Flow Control Buffers “in end-points” Sender Receiver Sender window determined by receiver buffer capacity: do not overload receiver. “speed dating matching service” matches rate of sender to rate at which receiving application is reading thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 4

  11. Congestion Control Buffers “in between” Sender Receiver thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 5

  12. Congestion Control Buffers “in between” Different senders “share” links and buffer space Sender Receiver “Network Buffers” (routers, etc.) overload too thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 5

  13. Congestion Control So, what signals do we have... Transport Protocol Signaling Sender Receiver “Something’s Rotten.....”? Goal: thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 6

  14. Congestion Control So, what signals do we have... Transport Protocol Signaling Sender Receiver “Something’s Rotten.....”? Goal: • Less, not more, signals • Infer congestion thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 6

  15. Congestion Control So, what signals do we have... Transport Protocol Signaling Sender Receiver “Something’s Rotten.....”? Goal: • • Message Drops Less, not more, signals • • Duplicate ACKs Infer congestion thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 6

  16. Congestion Control How do we slow down? Transport Protocol Signaling Sender Receiver thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 7

  17. Congestion Control How do we slow down? Transport Protocol Signaling Sender Receiver • Introduce “Congestion Window”, CWS in sender • Set Sender Window = min{UWS, RWS} thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 7

  18. Congestion Control The Beginning: Tahoe (UWS=CWS) thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  19. Congestion Control The Beginning: Tahoe (UWS=CWS) 1. Start: CWS = 1; threshold = reasonable-large-value thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  20. Congestion Control The Beginning: Tahoe (UWS=CWS) 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: • For each message ACKed: CWS=CWS+1 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  21. Congestion Control The Beginning: Tahoe (UWS=CWS) 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: • For each message ACKed: CWS=CWS+1 3. While CWS > threshold: • For each CWS messages ACKed: CWS=CWS+1 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  22. Congestion Control The Beginning: Tahoe (UWS=CWS) 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: • For each message ACKed: CWS=CWS+1 3. While CWS > threshold: • For each CWS messages ACKed: CWS=CWS+1 4. If no ACK received before time-out: • threshold = CWS/2 • CWS = 1 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  23. Congestion Control The Beginning: Tahoe (UWS=CWS) 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: • For each message ACKed: CWS=CWS+1 3. While CWS > threshold: • For each CWS messages ACKed: CWS=CWS+1 4. If no ACK received before time-out: • threshold = CWS/2 • CWS = 1 ➡ probe for success, back down for failure thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  24. Congestion Control The Beginning: Tahoe (UWS=CWS) 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: Slow • Start For each message ACKed: CWS=CWS+1 3. While CWS > threshold: Congestion • Avoidance For each CWS messages ACKed: CWS=CWS+1 4. If no ACK received before time-out: • threshold = CWS/2 Recovery • CWS = 1 ➡ probe for success, back down for failure thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 8

  25. Congestion Control Tahoe CWIN Evolution CWIN Size t 1 t 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 9

  26. Congestion Control Tahoe CWIN Evolution CWIN Size t 1 t 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 9

  27. Congestion Control Tahoe acts on no-ack + Timeout Tahoe CWIN Evolution CWIN Size t 1 t 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 9

  28. Congestion Control Tahoe • Problems: • Takes complete timeout interval to detect and react to packet loss • Go-back-n is “forced” • So, not good at the lonely packet loss .... thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 10

  29. Congestion Control Reno Slow Start Congestion Avoidance Recovery thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 11

  30. Congestion Control Reno 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: Slow • For each message ACKed: CWS=CWS+1 Start 3. While CWS > threshold: Congestion • For each CWS messages ACKed: CWS=CWS+1 Avoidance 4. If no ACK received before time-out: • threshold = CWS/2 Recovery • CWS = 1 thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 11

  31. Congestion Control Reno 1. Start: CWS = 1; threshold = reasonable-large-value 2. While CWS < threshold: Slow • For each message ACKed: CWS=CWS+1 Start 3. While CWS > threshold: Congestion • For each CWS messages ACKed: CWS=CWS+1 Avoidance 4. If no ACK received before time-out: • threshold = CWS/2 Recovery • CWS = 1 5. If triple duplicate ACK received: • Fast Retransmit + Fast Recovery (FR&R) thomas@thomasclausen.org http://www.thomasclausen.org mark@townsley.net http://www.townsley.net/ 11

Recommend


More recommend