Lecture 4: TCP and TFRC
Upcoming SlideShare
Loading in...5
×
 

Lecture 4: TCP and TFRC

on

  • 1,934 views

 

Statistics

Views

Total Views
1,934
Views on SlideShare
1,929
Embed Views
5

Actions

Likes
0
Downloads
46
Comments
1

2 Embeds 5

http://www.slideshare.net 4
http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • how to start working on tcp protocols and compair between wired and wireless tcp performance
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Lecture 4: TCP and TFRC Lecture 4: TCP and TFRC Presentation Transcript

  • TCP" Reno, NewReno, SACK 4 September 2009 CS5229, Semester 1, 2009/10 1
  • TCP Reno 4 September 2009 CS5229, Semester 1, 2009/10 2
  • 14 cwnd ssthresh 12 10 8 6 4 2 0 4 September 2009 CS5229, Semester 1, 2009/10 3
  • new ack:" if (cwnd < sstresh)" cwnd += 1" else" cwnd += 1/cwnd 4 September 2009 CS5229, Semester 1, 2009/10 5
  • timeout:" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = 1" 4 September 2009 CS5229, Semester 1, 2009/10 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
  • 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
  • 4 September 2009 CS5229, Semester 1, 2009/10 11
  • Data Packets ACK Packets (received up to this seq number) Congestion Window Sequence Number Time 4 September 2009 CS5229, Semester 1, 2009/10 12
  • 3rd dup ack:" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = cwnd/2 4 September 2009 CS5229, Semester 1, 2009/10 13
  • Incorrectly clamping the congestion window too soon (without fast recovery) X 4 September 2009 CS5229, Semester 1, 2009/10 14
  • fast recovery:" keep the pipe occupied" 4 September 2009 CS5229, Semester 1, 2009/10 15
  • X 4 September 2009 CS5229, Semester 1, 2009/10 16
  • 4 September 2009 CS5229, Semester 1, 2009/10 17
  • X X 4 September 2009 CS5229, Semester 1, 2009/10 18
  • TCP Reno timeout with multiple losses in a window 4 September 2009 CS5229, Semester 1, 2009/10 19
  • TCP NewReno 4 September 2009 CS5229, Semester 1, 2009/10 20
  • X X 4 September 2009 CS5229, Semester 1, 2009/10 21
  • 4 September 2009 CS5229, Semester 1, 2009/10 22
  • 3rd dup ack:" retransmit 1st unacked" ssthresh = cwnd/2" cwnd = cwnd/2 + 3" remember highest 4 September 2009 CS5229, Semester 1, 2009/10 25
  • “complete” ack:" (all are acked) " cwnd = ssthresh 4 September 2009 CS5229, Semester 1, 2009/10 26
  • “partial” ack:" (acknowledge n packets)" retransmit" cwnd = cwnd - n + 1 4 September 2009 CS5229, Semester 1, 2009/10 27
  • 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
  • What does a dup ACK tell us? 4 September 2009 CS5229, Semester 1, 2009/10 30
  • “Coarse Feedback” 4 September 2009 CS5229, Semester 1, 2009/10 31
  • TCP SACK 4 September 2009 CS5229, Semester 1, 2009/10 32
  • Use TCP header options to report received segments. 4 September 2009 CS5229, Semester 1, 2009/10 33
  • 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
  • pipe: num of outstanding packets in the pipe." send only if pipe < cwnd 4 September 2009 CS5229, Semester 1, 2009/10 35
  • scoreboard: which packets have been received? 4 September 2009 CS5229, Semester 1, 2009/10 36
  • X X 4 September 2009 CS5229, Semester 1, 2009/10 37
  • 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
  • subsequent dup ack:" cwnd++" pipe--" if pipe < cwnd" send packet, pipe++ 4 September 2009 CS5229, Semester 1, 2009/10 39
  • “partial” ack:" retransmit" cwnd = cwnd - n + 1" pipe -= 2" if pipe < cwnd" send packet, pipe++ 4 September 2009 CS5229, Semester 1, 2009/10 40
  • 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
  • TCP SACK recovers faster than NewReno with multiple losses in a window. 4 September 2009 CS5229, Semester 1, 2009/10 44
  • Deployment 4 September 2009 CS5229, Semester 1, 2009/10 57
  • Feb 2004 NewReno Reno 8% Tahoe 15% 77% 4 September 2009 CS5229, Semester 1, 2009/10 58
  • 70% " SACK capable 4 September 2009 CS5229, Semester 1, 2009/10 59
  • TCP BIC/CUBIC" Linux 2.6.x 4 September 2009 CS5229, Semester 1, 2009/10 63
  • Compound TCP " MS Windows Vista 4 September 2009 CS5229, Semester 1, 2009/10 64
  • TFRC" equation-based" congestion control 4 September 2009 CS5229, Semester 1, 2009/10 65
  • Not everyone uses TCP 4 September 2009 CS5229, Semester 1, 2009/10 66
  • UDP:" Media streaming" Gaming" VoIP 4 September 2009 CS5229, Semester 1, 2009/10 67
  • 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
  • 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
  • Sally Floyd, h+p://www.icir.org/floyd/tcp_unfriendly.html  4 September 2009 CS5229, Semester 1, 2009/10 70
  • “Unresponsive Flows” 4 September 2009 CS5229, Semester 1, 2009/10 71
  • Bad: lead to unfairness and congestion collapse. 4 September 2009 CS5229, Semester 1, 2009/10 72
  • Unfairness: unresponsive flows consume more bandwidth than congestion controlled flows. 4 September 2009 CS5229, Semester 1, 2009/10 73
  • Congestion Collapse: wasting bandwidth by sending packets that will be dropped 4 September 2009 CS5229, Semester 1, 2009/10 77
  • Today: " a TCP-friendly" unreliable protocol 4 September 2009 CS5229, Semester 1, 2009/10 78
  • Idea: " send at a rate that a TCP flow would send 4 September 2009 CS5229, Semester 1, 2009/10 79
  • we can do the AIMD-thing" at the source, or 4 September 2009 CS5229, Semester 1, 2009/10 80
  • 4 September 2009 CS5229, Semester 1, 2009/10 81
  • equation-based " congestion control 4 September 2009 CS5229, Semester 1, 2009/10 82
  • steady" fair" responsive 4 September 2009 CS5229, Semester 1, 2009/10 83
  • how to determine" RTT" tRTO" p 4 September 2009 CS5229, Semester 1, 2009/10 84
  • p is not packet loss rate" but " loss event rate 4 September 2009 CS5229, Semester 1, 2009/10 85
  • 4 September 2009 CS5229, Semester 1, 2009/10 86
  • 4 September 2009 CS5229, Semester 1, 2009/10 87
  • 4 September 2009 CS5229, Semester 1, 2009/10 88
  • RTT can fluctuates 4 September 2009 CS5229, Semester 1, 2009/10 89
  • 4 September 2009 CS5229, Semester 1, 2009/10 90
  • 4 September 2009 CS5229, Semester 1, 2009/10 91
  • 4 September 2009 CS5229, Semester 1, 2009/10 92
  • 4 September 2009 CS5229, Semester 1, 2009/10 93
  • how to initialize? 4 September 2009 CS5229, Semester 1, 2009/10 94
  • slow start" (until loss occur)" Tnow = min(2Tprev, 2Trecv) 4 September 2009 CS5229, Semester 1, 2009/10 95
  • no loss history, how?" solve p given T, RTT 4 September 2009 CS5229, Semester 1, 2009/10 96
  • 4 September 2009 CS5229, Semester 1, 2009/10 97
  • TFRC is now part of DCCP 4 September 2009 CS5229, Semester 1, 2009/10 98