Lecture 4: TCP and TFRC

1,791 views
1,687 views

Published on

Published in: Education, Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,791
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
55
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Lecture 4: TCP and TFRC

  1. 1. TCP" Reno, NewReno, SACK 4 September 2009 CS5229, Semester 1, 2009/10 1
  2. 2. TCP Reno 4 September 2009 CS5229, Semester 1, 2009/10 2
  3. 3. 14 cwnd ssthresh 12 10 8 6 4 2 0 4 September 2009 CS5229, Semester 1, 2009/10 3
  4. 4. new ack:" if (cwnd < sstresh)" cwnd += 1" else" cwnd += 1/cwnd 4 September 2009 CS5229, Semester 1, 2009/10 5
  5. 5. timeout:" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = 1" 4 September 2009 CS5229, Semester 1, 2009/10 6
  6. 6. 3rd duplicate ACK:" fast retransmission" (ie, retransmit 1st unack) " fast recovery" (details today)" ssthresh = cwnd = cwnd/2 4 September 2009 CS5229, Semester 1, 2009/10 7
  7. 7. TCP’s rule" send more packets if " L + cwnd > H" [ L .. H-1 ] are outstanding packets 4 September 2009 CS5229, Semester 1, 2009/10 10
  8. 8. 4 September 2009 CS5229, Semester 1, 2009/10 11
  9. 9. Data Packets ACK Packets (received up to this seq number) Congestion Window Sequence Number Time 4 September 2009 CS5229, Semester 1, 2009/10 12
  10. 10. 3rd dup ack:" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = cwnd/2 4 September 2009 CS5229, Semester 1, 2009/10 13
  11. 11. Incorrectly clamping the congestion window too soon (without fast recovery) X 4 September 2009 CS5229, Semester 1, 2009/10 14
  12. 12. fast recovery:" keep the pipe occupied" 4 September 2009 CS5229, Semester 1, 2009/10 15
  13. 13. X 4 September 2009 CS5229, Semester 1, 2009/10 16
  14. 14. 4 September 2009 CS5229, Semester 1, 2009/10 17
  15. 15. X X 4 September 2009 CS5229, Semester 1, 2009/10 18
  16. 16. TCP Reno timeout with multiple losses in a window 4 September 2009 CS5229, Semester 1, 2009/10 19
  17. 17. TCP NewReno 4 September 2009 CS5229, Semester 1, 2009/10 20
  18. 18. X X 4 September 2009 CS5229, Semester 1, 2009/10 21
  19. 19. 4 September 2009 CS5229, Semester 1, 2009/10 22
  20. 20. 3rd dup ack:" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = cwnd/2 + 3" remember highest 4 September 2009 CS5229, Semester 1, 2009/10 25
  21. 21. “complete” ack:" (all are acked) " cwnd = ssthresh 4 September 2009 CS5229, Semester 1, 2009/10 26
  22. 22. “partial” ack:" (acknowledge n packets)" retransmit" cwnd = cwnd - n + 1 4 September 2009 CS5229, Semester 1, 2009/10 27
  23. 23. Note: RFC2581/RFC2582 give the accurate/gory details. Simplified version is presented here (eg. cwnd vs FlightSize, update of cwnd upon partial ACK). 4 September 2009 CS5229, Semester 1, 2009/10 29
  24. 24. What does a dup ACK tell us? 4 September 2009 CS5229, Semester 1, 2009/10 30
  25. 25. “Coarse Feedback” 4 September 2009 CS5229, Semester 1, 2009/10 31
  26. 26. TCP SACK 4 September 2009 CS5229, Semester 1, 2009/10 32
  27. 27. Use TCP header options to report received segments. 4 September 2009 CS5229, Semester 1, 2009/10 33
  28. 28. SACK Blocks:" 1st block - report most recently received segments" subsequent blocks - repeat most recent previous blocks 4 September 2009 CS5229, Semester 1, 2009/10 34
  29. 29. pipe: num of outstanding packets in the pipe." send only if pipe < cwnd 4 September 2009 CS5229, Semester 1, 2009/10 35
  30. 30. scoreboard: which packets have been received? 4 September 2009 CS5229, Semester 1, 2009/10 36
  31. 31. X X 4 September 2009 CS5229, Semester 1, 2009/10 37
  32. 32. 3rd dup ack:" pipe = cwnd - 3" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = cwnd/2 + 3 4 September 2009 CS5229, Semester 1, 2009/10 38
  33. 33. subsequent dup ack:" cwnd++" pipe--" if pipe < cwnd" send packet, pipe++ 4 September 2009 CS5229, Semester 1, 2009/10 39
  34. 34. “partial” ack:" retransmit" cwnd = cwnd - n + 1" pipe -= 2" if pipe < cwnd" send packet, pipe++ 4 September 2009 CS5229, Semester 1, 2009/10 40
  35. 35. Idea of SACK:" Which packet has left the network?" Where is the gap?" Decouple when to send and what to send. 4 September 2009 CS5229, Semester 1, 2009/10 43
  36. 36. TCP SACK recovers faster than NewReno with multiple losses in a window. 4 September 2009 CS5229, Semester 1, 2009/10 44
  37. 37. Deployment 4 September 2009 CS5229, Semester 1, 2009/10 57
  38. 38. Feb 2004 NewReno Reno 8% Tahoe 15% 77% 4 September 2009 CS5229, Semester 1, 2009/10 58
  39. 39. 70% " SACK capable 4 September 2009 CS5229, Semester 1, 2009/10 59
  40. 40. TCP BIC/CUBIC" Linux 2.6.x 4 September 2009 CS5229, Semester 1, 2009/10 63
  41. 41. Compound TCP " MS Windows Vista 4 September 2009 CS5229, Semester 1, 2009/10 64
  42. 42. TFRC" equation-based" congestion control 4 September 2009 CS5229, Semester 1, 2009/10 65
  43. 43. Not everyone uses TCP 4 September 2009 CS5229, Semester 1, 2009/10 66
  44. 44. UDP:" Media streaming" Gaming" VoIP 4 September 2009 CS5229, Semester 1, 2009/10 67
  45. 45. Why not congestion controlled?" 1. UDP has low delay, no need full reliability. UDP " is not congestion controlled. 4 September 2009 CS5229, Semester 1, 2009/10 68
  46. 46. Why not congestion controlled?" 2. No incentive. OTOH, there are incentives NOT to use congestion control. 4 September 2009 CS5229, Semester 1, 2009/10 69
  47. 47. Sally Floyd, h+p://www.icir.org/floyd/tcp_unfriendly.html  4 September 2009 CS5229, Semester 1, 2009/10 70
  48. 48. “Unresponsive Flows” 4 September 2009 CS5229, Semester 1, 2009/10 71
  49. 49. Bad: lead to unfairness and congestion collapse. 4 September 2009 CS5229, Semester 1, 2009/10 72
  50. 50. Unfairness: unresponsive flows consume more bandwidth than congestion controlled flows. 4 September 2009 CS5229, Semester 1, 2009/10 73
  51. 51. Congestion Collapse: wasting bandwidth by sending packets that will be dropped 4 September 2009 CS5229, Semester 1, 2009/10 77
  52. 52. Today: " a TCP-friendly" unreliable protocol 4 September 2009 CS5229, Semester 1, 2009/10 78
  53. 53. Idea: " send at a rate that a TCP flow would send 4 September 2009 CS5229, Semester 1, 2009/10 79
  54. 54. we can do the AIMD-thing" at the source, or 4 September 2009 CS5229, Semester 1, 2009/10 80
  55. 55. 4 September 2009 CS5229, Semester 1, 2009/10 81
  56. 56. equation-based " congestion control 4 September 2009 CS5229, Semester 1, 2009/10 82
  57. 57. steady" fair" responsive 4 September 2009 CS5229, Semester 1, 2009/10 83
  58. 58. how to determine" RTT" tRTO" p 4 September 2009 CS5229, Semester 1, 2009/10 84
  59. 59. p is not packet loss rate" but " loss event rate 4 September 2009 CS5229, Semester 1, 2009/10 85
  60. 60. 4 September 2009 CS5229, Semester 1, 2009/10 86
  61. 61. 4 September 2009 CS5229, Semester 1, 2009/10 87
  62. 62. 4 September 2009 CS5229, Semester 1, 2009/10 88
  63. 63. RTT can fluctuates 4 September 2009 CS5229, Semester 1, 2009/10 89
  64. 64. 4 September 2009 CS5229, Semester 1, 2009/10 90
  65. 65. 4 September 2009 CS5229, Semester 1, 2009/10 91
  66. 66. 4 September 2009 CS5229, Semester 1, 2009/10 92
  67. 67. 4 September 2009 CS5229, Semester 1, 2009/10 93
  68. 68. how to initialize? 4 September 2009 CS5229, Semester 1, 2009/10 94
  69. 69. slow start" (until loss occur)" Tnow = min(2Tprev, 2Trecv) 4 September 2009 CS5229, Semester 1, 2009/10 95
  70. 70. no loss history, how?" solve p given T, RTT 4 September 2009 CS5229, Semester 1, 2009/10 96
  71. 71. 4 September 2009 CS5229, Semester 1, 2009/10 97
  72. 72. TFRC is now part of DCCP 4 September 2009 CS5229, Semester 1, 2009/10 98

×