16
UCB TCP Jean Walrand U.C. Berkeley www.eecs.berkeley.edu/~wlr

TCP

Embed Size (px)

DESCRIPTION

TCP. Jean Walrand U.C. Berkeley www.eecs.berkeley.edu/~wlr. Outline. TCP Service State Diagram Flow Control Congestion Control RTT Estimation Fast Recovery Fast Retransmit. TCP Service. Error-Free Byte Stream. Reliable byte stream. TCP. IP. Unreliable packet delivery. - PowerPoint PPT Presentation

Citation preview

Page 1: TCP

UCBTCP

Jean WalrandU.C. Berkeley

www.eecs.berkeley.edu/~wlr

Page 2: TCP

UCB Outline

TCP Service State Diagram Flow Control Congestion Control RTT Estimation Fast Recovery Fast Retransmit

Page 3: TCP

UCB TCP Service Error-Free Byte Stream

IP

TCP

Unreliable packet delivery

Reliable byte stream

Actual data path

Page 4: TCP

UCB

IP

TCP

TCP Service (c’d)

Multiplexing: Ports

A B C

[A | B | p1 | p2 | …]

p1 p2 p1 p2 p3 p1 p2

ports

Page 5: TCP

UCB State Diagram Key Steps:

(1) SYN: k

(1) SYN = Synchronize: A tells B that its bytes start with sequence number k + 1

(2) SYN: n ACK: k + 1

(2) SYN = Synchronize: B tells A that its bytes start with sequence number n + 1 ACK = Acknowledgement: B tells A that it agrees that A’s bytes start with k+1

(3) Data: k + 1 ACK: n + 1

(3) Data: A starts sending bytes with sequence number k + 1 ACK = Acknowledgement: A tells B that it agrees that B’s bytes start with n+1

(4) FIN(5) FIN.ack

(4) FIN = Finish: A tells B that it closes the “half-connection” from A to B; (5) B acks

(6) FIN(7) FIN.ack

(6)-(7) Similar to (4)-(5)

ACK

A

B

Page 6: TCP

UCB State Diagram (c’d)

States:

A

B

SYNSYN + ACK

Data + ACKACK …

FINFIN.ack FIN FIN.ack

Listen

SYN received

Established

Close Wait

Last Ack

Closed

ClosedSYN sent

EstablishedFIN Wait-1

FIN Wait-2

Timed WaitClosed

(1)

(1): A waits in case B retransmits FIN and A must ack again

Page 7: TCP

UCB

State Diagram (c’d)

Page 8: TCP

UCB Flow Control Objective: Avoid saturating receiver Mechanism: Receiver advertises window Wrec

Wrec

W Wrec – Outstandingwhere Oustanding = Last sent – last Acked

[ACK | Wrec | …]

Page 9: TCP

UCB Congestion Control Objective: Avoid saturating routers Mechanism: Loss => Reduce W; No loss => Increase W Details: See book.

Page 10: TCP

UCB Congestion Control (c’d)

Slow Start: ACK => W = W + 1

W = 1 W = 2 W = 4 W = 8

Page 11: TCP

UCB Congestion Control (c’d)

Slow Start: ACK => W = W + 1

W

RTT

Page 12: TCP

UCB Congestion Control (c’d)

Congestion Avoidance: ACK => W = W + 1/W

W = 8

W = 8 + 1/8

W = 8.125 + 1/8.125 8 + 2/8

W 8 + 8/8 = 9W 9 + 9/9 = 10

Page 13: TCP

UCB Congestion Control (c’d)

Congestion Avoidance: ACK => W = W + 1/W

W

RTT

Page 14: TCP

UCB RTT Estimation Timeout if delay > average + 4 deviations Average delay and deviation: first order filters:

A(n) = aA(n – 1) + (1 – a)Delay(n)

D(n) = aD(n – 1) + (1 – a)|Delay(n) – A(n)|

Average A(n) calculated when n-th ACK arrives:

Deviation D(n) calculated when n-th ACK arrives:

Note - Obvious corrections when retransmission: Do not include delays of retransmitted packets Double timeout after retransmission

Page 15: TCP

UCB Fast Retransmission When 3 duplicated ACKs,

retransmit and W = W/2 Motivation: 3 dup to avoid retransmission after

misordering

ACK n

ACK nACK n

Page 16: TCP

UCB Fast Recovery Objective: Keep buffer full after setting W = W/2 Illustration: Window goes from 2K to K

L + 2K – 1, …, L + 4, L+3, L+2, L +1, L, L - 1

3 Dup AckL, L + 2K – 1, …, L + 4

Last Received

L + 2K, L, L + 2K – 1, …, L + 4 => W = 2K + 1L + 2K + 1, L + 2K, L, L + 2K – 1, …, L + 5 => W = 2K + 2

L + 3K - 2,…, L + 2K + 1, L + 2K, L => W = 3K - 1. . . . . . . . .

L + 3K - 1,…, L + 2K + 1, L + 2K => W = K