Upload
iola-norman
View
22
Download
0
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
UCBTCP
Jean WalrandU.C. Berkeley
www.eecs.berkeley.edu/~wlr
UCB Outline
TCP Service State Diagram Flow Control Congestion Control RTT Estimation Fast Recovery Fast Retransmit
UCB TCP Service Error-Free Byte Stream
IP
TCP
Unreliable packet delivery
Reliable byte stream
Actual data path
UCB
IP
TCP
TCP Service (c’d)
Multiplexing: Ports
A B C
[A | B | p1 | p2 | …]
p1 p2 p1 p2 p3 p1 p2
ports
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
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
UCB
State Diagram (c’d)
UCB Flow Control Objective: Avoid saturating receiver Mechanism: Receiver advertises window Wrec
Wrec
W Wrec – Outstandingwhere Oustanding = Last sent – last Acked
[ACK | Wrec | …]
UCB Congestion Control Objective: Avoid saturating routers Mechanism: Loss => Reduce W; No loss => Increase W Details: See book.
UCB Congestion Control (c’d)
Slow Start: ACK => W = W + 1
W = 1 W = 2 W = 4 W = 8
UCB Congestion Control (c’d)
Slow Start: ACK => W = W + 1
W
RTT
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
UCB Congestion Control (c’d)
Congestion Avoidance: ACK => W = W + 1/W
W
RTT
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
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
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