72
1 TCP Reno, NewReno, SACK 4 September 2009 CS5229, Semester 1, 2009/10

Lecture 4: TCP and TFRC

Embed Size (px)

Citation preview

Page 1: Lecture 4: TCP and TFRC

1

TCP"Reno, NewReno, SACK

4 September 2009 CS5229, Semester 1, 2009/10

Page 2: Lecture 4: TCP and TFRC

2

TCP Reno

4 September 2009 CS5229, Semester 1, 2009/10

Page 3: Lecture 4: TCP and TFRC

3

0

2

4

6

8

10

12

14 cwnd ssthresh

4 September 2009 CS5229, Semester 1, 2009/10

Page 4: Lecture 4: TCP and TFRC

5

new ack:"if (cwnd < sstresh)" cwnd += 1"else" cwnd += 1/cwnd

4 September 2009 CS5229, Semester 1, 2009/10

Page 5: Lecture 4: TCP and TFRC

6

timeout:"retransmit 1st unacked"ssthresh = cwnd/2"cwnd = 1"

4 September 2009 CS5229, Semester 1, 2009/10

Page 6: Lecture 4: TCP and TFRC

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

Page 7: Lecture 4: TCP and TFRC

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

Page 8: Lecture 4: TCP and TFRC

11 4 September 2009 CS5229, Semester 1, 2009/10

Page 9: Lecture 4: TCP and TFRC

12

Data Packets

ACK Packets (received up to this seq number)

Congestion Window

Sequence Number

Time 4 September 2009 CS5229, Semester 1, 2009/10

Page 10: Lecture 4: TCP and TFRC

13

3rd dup ack:"retransmit 1st unacked"ssthresh = cwnd/2"cwnd = cwnd/2

4 September 2009 CS5229, Semester 1, 2009/10

Page 11: Lecture 4: TCP and TFRC

14

X

Incorrectly clamping the congestion window too soon (without fast recovery)

4 September 2009 CS5229, Semester 1, 2009/10

Page 12: Lecture 4: TCP and TFRC

15

fast recovery:"

keep the pipe occupied"

4 September 2009 CS5229, Semester 1, 2009/10

Page 13: Lecture 4: TCP and TFRC

16

X

4 September 2009 CS5229, Semester 1, 2009/10

Page 14: Lecture 4: TCP and TFRC

17 4 September 2009 CS5229, Semester 1, 2009/10

Page 15: Lecture 4: TCP and TFRC

18

X

X

4 September 2009 CS5229, Semester 1, 2009/10

Page 16: Lecture 4: TCP and TFRC

19

TCP Reno timeout with multiple losses in a window

4 September 2009 CS5229, Semester 1, 2009/10

Page 17: Lecture 4: TCP and TFRC

20

TCP NewReno

4 September 2009 CS5229, Semester 1, 2009/10

Page 18: Lecture 4: TCP and TFRC

21

X

X

4 September 2009 CS5229, Semester 1, 2009/10

Page 19: Lecture 4: TCP and TFRC

22 4 September 2009 CS5229, Semester 1, 2009/10

Page 20: Lecture 4: TCP and TFRC

25

3rd dup ack:"retransmit 1st unacked"ssthresh = cwnd/2"cwnd = cwnd/2 + 3"remember highest

4 September 2009 CS5229, Semester 1, 2009/10

Page 21: Lecture 4: TCP and TFRC

26

“complete” ack:"(all are acked) "cwnd = ssthresh

4 September 2009 CS5229, Semester 1, 2009/10

Page 22: Lecture 4: TCP and TFRC

27

“partial” ack:"(acknowledge n packets)"retransmit"cwnd = cwnd - n + 1

4 September 2009 CS5229, Semester 1, 2009/10

Page 23: Lecture 4: TCP and TFRC

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

Page 24: Lecture 4: TCP and TFRC

30

What does a dup ACK tell us?

4 September 2009 CS5229, Semester 1, 2009/10

Page 25: Lecture 4: TCP and TFRC

31

“Coarse Feedback”

4 September 2009 CS5229, Semester 1, 2009/10

Page 26: Lecture 4: TCP and TFRC

32

TCP SACK

4 September 2009 CS5229, Semester 1, 2009/10

Page 27: Lecture 4: TCP and TFRC

33

Use TCP header options to report

received segments.

4 September 2009 CS5229, Semester 1, 2009/10

Page 28: Lecture 4: TCP and TFRC

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

Page 29: Lecture 4: TCP and TFRC

35

pipe: num of outstanding packets in the pipe."

send only if pipe < cwnd

4 September 2009 CS5229, Semester 1, 2009/10

Page 30: Lecture 4: TCP and TFRC

36

scoreboard: which packets have been received?

4 September 2009 CS5229, Semester 1, 2009/10

Page 31: Lecture 4: TCP and TFRC

37

X

X

4 September 2009 CS5229, Semester 1, 2009/10

Page 32: Lecture 4: TCP and TFRC

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

Page 33: Lecture 4: TCP and TFRC

39

subsequent dup ack:"cwnd++"pipe--"

if pipe < cwnd" send packet, pipe++

4 September 2009 CS5229, Semester 1, 2009/10

Page 34: Lecture 4: TCP and TFRC

40

“partial” ack:"retransmit"cwnd = cwnd - n + 1"pipe -= 2"if pipe < cwnd" send packet, pipe++

4 September 2009 CS5229, Semester 1, 2009/10

Page 35: Lecture 4: TCP and TFRC

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

Page 36: Lecture 4: TCP and TFRC

44

TCP SACK recovers faster than NewReno with multiple losses in a window.

4 September 2009 CS5229, Semester 1, 2009/10

Page 37: Lecture 4: TCP and TFRC

57

Deployment

4 September 2009 CS5229, Semester 1, 2009/10

Page 38: Lecture 4: TCP and TFRC

58

77%

15%

8%

NewReno

Reno

Tahoe

Feb 2004

4 September 2009 CS5229, Semester 1, 2009/10

Page 39: Lecture 4: TCP and TFRC

59

70% "SACK capable

4 September 2009 CS5229, Semester 1, 2009/10

Page 40: Lecture 4: TCP and TFRC

63

TCP BIC/CUBIC"Linux 2.6.x

4 September 2009 CS5229, Semester 1, 2009/10

Page 41: Lecture 4: TCP and TFRC

64

Compound TCP "MS Windows Vista

4 September 2009 CS5229, Semester 1, 2009/10

Page 42: Lecture 4: TCP and TFRC

65

TFRC"equation-based"

congestion control

4 September 2009 CS5229, Semester 1, 2009/10

Page 43: Lecture 4: TCP and TFRC

66

Not everyone uses TCP

4 September 2009 CS5229, Semester 1, 2009/10

Page 44: Lecture 4: TCP and TFRC

67

UDP:"

Media streaming"Gaming"

VoIP

4 September 2009 CS5229, Semester 1, 2009/10

Page 45: Lecture 4: TCP and TFRC

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

Page 46: Lecture 4: TCP and TFRC

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

Page 47: Lecture 4: TCP and TFRC

70 Sally Floyd, h+p://www.icir.org/floyd/tcp_unfriendly.html 4 September 2009 CS5229, Semester 1, 2009/10

Page 48: Lecture 4: TCP and TFRC

71

“Unresponsive Flows”

4 September 2009 CS5229, Semester 1, 2009/10

Page 49: Lecture 4: TCP and TFRC

72

Bad: lead to unfairness and congestion collapse.

4 September 2009 CS5229, Semester 1, 2009/10

Page 50: Lecture 4: TCP and TFRC

73

Unfairness: unresponsive flows consume more bandwidth

than congestion controlled flows.

4 September 2009 CS5229, Semester 1, 2009/10

Page 51: Lecture 4: TCP and TFRC

77

Congestion Collapse: wasting bandwidth by sending packets that will be dropped

4 September 2009 CS5229, Semester 1, 2009/10

Page 52: Lecture 4: TCP and TFRC

78

Today: "a TCP-friendly"

unreliable protocol

4 September 2009 CS5229, Semester 1, 2009/10

Page 53: Lecture 4: TCP and TFRC

79

Idea: "send at a rate that a TCP

flow would send

4 September 2009 CS5229, Semester 1, 2009/10

Page 54: Lecture 4: TCP and TFRC

80

we can do the AIMD-thing"at the source, or

4 September 2009 CS5229, Semester 1, 2009/10

Page 55: Lecture 4: TCP and TFRC

81 4 September 2009 CS5229, Semester 1, 2009/10

Page 56: Lecture 4: TCP and TFRC

82

equation-based "congestion control

4 September 2009 CS5229, Semester 1, 2009/10

Page 57: Lecture 4: TCP and TFRC

83

steady"fair"

responsive

4 September 2009 CS5229, Semester 1, 2009/10

Page 58: Lecture 4: TCP and TFRC

84

how to determine"RTT"tRTO"p

4 September 2009 CS5229, Semester 1, 2009/10

Page 59: Lecture 4: TCP and TFRC

85

p is not packet loss rate"but "

loss event rate

4 September 2009 CS5229, Semester 1, 2009/10

Page 60: Lecture 4: TCP and TFRC

86 4 September 2009 CS5229, Semester 1, 2009/10

Page 61: Lecture 4: TCP and TFRC

87 4 September 2009 CS5229, Semester 1, 2009/10

Page 62: Lecture 4: TCP and TFRC

88 4 September 2009 CS5229, Semester 1, 2009/10

Page 63: Lecture 4: TCP and TFRC

89

RTT can fluctuates

4 September 2009 CS5229, Semester 1, 2009/10

Page 64: Lecture 4: TCP and TFRC

90 4 September 2009 CS5229, Semester 1, 2009/10

Page 65: Lecture 4: TCP and TFRC

91 4 September 2009 CS5229, Semester 1, 2009/10

Page 66: Lecture 4: TCP and TFRC

92 4 September 2009 CS5229, Semester 1, 2009/10

Page 67: Lecture 4: TCP and TFRC

93 4 September 2009 CS5229, Semester 1, 2009/10

Page 68: Lecture 4: TCP and TFRC

94

how to initialize?

4 September 2009 CS5229, Semester 1, 2009/10

Page 69: Lecture 4: TCP and TFRC

95

slow start"(until loss occur)"

Tnow = min(2Tprev, 2Trecv)

4 September 2009 CS5229, Semester 1, 2009/10

Page 70: Lecture 4: TCP and TFRC

96

no loss history, how?"

solve p given T, RTT

4 September 2009 CS5229, Semester 1, 2009/10

Page 71: Lecture 4: TCP and TFRC

97 4 September 2009 CS5229, Semester 1, 2009/10

Page 72: Lecture 4: TCP and TFRC

98

TFRC is now part of DCCP

4 September 2009 CS5229, Semester 1, 2009/10