Professional Documents
Culture Documents
Communication Networks
EE-357
By Dr Mir Yasir Umair
Associate Professor, MCS, NUST
Transport Layer
TCP Segments
Chapter 3 outline
3.1 transport-layer services 3.5 connection-oriented
3.2 multiplexing and demultiplexing transport: TCP
▪ segment structure
3.3 connectionless transport: UDP ▪ reliable data transfer
3.4 principles of reliable data transfer ▪ flow control
▪ connection management
❖ flow controlled:
▪ sender will not overwhelm
receiver
• Seq #
o 1st segment = 0
o 2nd segment = 1000
o 3rd segment = 2000
TCP segment structure
32 bits
URG: urgent data counting
(generally not used) source port # dest port #
by bytes
sequence number of data
ACK: ACK #
valid acknowledgement number (not segments!)
head not
PSH: push data now len used
UAP R S F receive window
(generally not used) # bytes
checksum Urg data pointer
rcvr willing
RST, SYN, FIN: to accept
options (variable length)
connection estab
(setup, teardown
commands)
application
Internet data
checksum (variable length)
(as in UDP)
User
types
‘C’ Seq=42, ACK=79, data = ‘C’
host ACKs
receipt of
‘C’, echoes
Seq=79, ACK=43, data = ‘C’ back ‘C’
host ACKs
receipt
of echoed
‘C’ Seq=43, ACK=80
350
300
250
RTT (milliseconds)
200
sampleRTT
150
EstimatedRTT
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds) 3-12
Transport Layer time (seconds)
SampleRTT Estimated RTT
TCP round trip time, timeout
• timeout interval: EstimatedRTT plus “safety
margin”
o large variation in EstimatedRTT -> larger safety margin
• estimate SampleRTT deviation from EstimatedRTT:
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)
• retransmissions
triggered by:
o timeout events
o duplicate acks
SendBase=92
Seq=92, 8 bytes of data Seq=92, 8 bytes of data
timeout
ACK=100
X
ACK=100
ACK=120
SendBase=120
ACK=100
X
ACK=120
cumulative ACK
Transport Layer 3-18
TCP fast retransmit
❖ time-out period often
relatively long: TCP fast retransmit
▪ long delay before resending if sender receives 3
lost packet
ACKs for same data
❖ detect lost segments
(“triple
(“triple duplicate
duplicate ACKs”),
ACKs”),
via duplicate ACKs.
▪ sender often sends many
resend unacked
segments back-to-back segment with smallest
▪ if segment is lost, there will
likely be many duplicate
seq #
ACKs. ▪ likely that unacked
segment lost, so don’t
wait for timeout
ACK=100
timeout
ACK=100
ACK=100
ACK=100
Seq=100, 20 bytes of data