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