Chapter - 3 Transport Layer
Chapter - 3 Transport Layer
Transport Layer
Computer
Networking: A Top
Down Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
March 2012
lo
transport protocols run in
g
v
ica
end systems
le
nd
-e
§ send side: breaks app
nd
messages into segments,
tra
ns
passes to network layer
po
rt
§ rcv side: reassembles application
segments into messages, transport
network
passes to app layer data link
physical
lo
data link physical
g
physical
ica
§ flow control network
le
data link
nd
§ connection setup physical
-e
nd
network
tra
v physical
ns
delivery: UDP
po
network
data link
rt
physical
§ no-frills extension of network
data link application
best-effort IP physical
network
data link
transport
network
data link
v services not available: physical
physical
§ delay guarantees
§ bandwidth guarantees
application
application
application P4 P5 P6 application
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical server: IP physical
address B
length checksum
why is there a UDP?
v no connection
application establishment (which can
data add delay)
(payload) v simple: no connection
state at sender, receiver
v small header size
UDP segment format v no congestion control:
UDP can blast away as
fast as desired
wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
send receive
side side
sender receiver
U L/R .008
sender = = = 0.00027
RTT + L / R 30.008
U L/R .008
sender = = = 0.00027
RTT + L / R 30.008
U 3L / R .0024
sender = = = 0.00081
RTT + L / R 30.008
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)
RTT
200
sampleRTT
150
EstimatedRTT
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
time (seconds) Transport Layer 3-54
SampleRTT Estimated RTT
TCP round trip time, timeout
v timeout interval: EstimatedRTT plus safety margin
§ large variation in EstimatedRTT -> larger safety margin
v estimate SampleRTT deviation from EstimatedRTT:
DevRTT = (1-b)*DevRTT +
b*|SampleRTT-EstimatedRTT|
(typically, b = 0.25)
SendBase=92
Seq=92, 8 bytes of data Seq=92, 8 bytes of data
timeout
ACK=100
X
ACK=100
ACK=120
SendBase=120
X
ACK=120
cumulative ACK
Transport Layer 3-60
TCP ACK generation [RFC 1122, RFC 2581]
ACK=100
timeout
ACK=100
ACK=100
ACK=100
Seq=100, 20 bytes of data
IP
flow control code
receiver controls sender, so
sender won t overflow
receiver s buffer by transmitting from sender
too much, too fast
receiver protocol stack
application application
network network
2-way handshake:
Q: will 2-way handshake
always work in
Let s talk
network?
ESTAB v variable delays
OK
ESTAB v retransmitted messages
(e.g. req_conn(x)) due to
message loss
v message reordering
choose x
req_conn(x)
v can t see other side
ESTAB
acc_conn(x)
ESTAB
choose x choose x
req_conn(x) req_conn(x)
ESTAB ESTAB
retransmit acc_conn(x) retransmit acc_conn(x)
req_conn(x) req_conn(x)
ESTAB ESTAB
data(x+1) accept
req_conn(x)
retransmit data(x+1)
data(x+1)
connection connection
client x completes server x completes server
client
terminates forgets x terminates forgets x
req_conn(x)
ESTAB ESTAB
data(x+1) accept
half open connection! data(x+1)
(no client!)
Transport Layer 3-71
TCP 3-way handshake
LAST_ACK
FINbit=1, seq=y
TIMED_WAIT can no longer
send data
ACKbit=1; ACKnum=y+1
timed wait
for 2*max CLOSED
segment lifetime
CLOSED
R/2
delay
lout
Host A
lout
v sender sends only when
router buffers available
lin R/2
A
no buffer space!
Host B
Transport Layer 3-80
Causes/costs of congestion: scenario 2
Idealization: known loss R/2
packets can be lost,
dropped at router due when sending at R/2,
some packets are
lout
to full buffers retransmissions but
asymptotic goodput
v sender only resends if is still R/2 (why?)
packet known to be lost lin R/2
A
free buffer space!
Host B
Transport Layer 3-81
Causes/costs of congestion: scenario 2
Realistic: duplicates R/2
v packets can be lost, dropped
at router due to full buffers when sending at R/2,
some packets are
lout
v sender times out prematurely, retransmissions
including duplicated
sending two copies, both of that are delivered!
which are delivered lin R/2
lin
timeout
copy lout
l'in
A
free buffer space!
Host B
Transport Layer 3-82
Causes/costs of congestion: scenario 2
Realistic: duplicates R/2
v packets can be lost, dropped
at router due to full buffers when sending at R/2,
some packets are
lout
v sender times out prematurely, retransmissions
including duplicated
sending two copies, both of that are delivered!
which are delivered lin R/2
costs of congestion:
v more work (retrans) for given goodput
v unneeded retransmissions: link carries multiple copies of pkt
§ decreasing goodput
Host D
Host C
C/2
lout
lin C/2
time
Transport Layer 3-88
TCP Congestion Control: details
sender sequence number space
cwnd TCP sending rate:
v roughly: send cwnd
bytes, wait RTT for
last byte last byte
ACKS, then send
ACKed sent, not-
yet ACKed
sent more bytes
( in-
flight ) cwnd
v sender limits transmission: rate ~
~
RTT
bytes/sec
RTT
§ initially cwnd = 1 MSS two segm
ents
§ double cwnd every RTT
§ done by incrementing
cwnd for every ACK four segm
ents
received
v summary: initial rate is
slow but ramps up
exponentially fast time
Implementation:
v variable ssthresh
v on loss event, ssthresh
is set to 1/2 of cwnd just
before loss event
TCP connection 1
bottleneck
router
capacity R
TCP connection 2
Connection 1 throughput R