SlideShare a Scribd company logo
1 of 61
Transport Layer 3-1
Chapter 3
Transport Layer
Transport Layer 3-2
Chapter 3: Transport Layer
our goals:
 understand
principles behind
transport layer
services:
 multiplexing,
demultiplexing
 reliable data
transfer
 flow control
 congestion control
 learn about Internet
transport layer
protocols:
 UDP: connectionless
transport
 TCP: connection-
oriented reliable
transport
 TCP congestion control
Transport Layer 3-3
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-4
Transport services and protocols
 provide logical
communication between
app processes running on
different hosts
 transport protocols run in
end systems
 send side: breaks app
messages into
segments, passes to
network layer
 rcv side: reassembles
segments into
messages, passes to
app layer
 more than one transport
protocol available to apps
application
transport
network
data link
physical
application
transport
network
data link
physical
Transport Layer 3-5
Transport vs. network layer
 network layer:
logical
communication
between hosts
 transport layer:
logical
communication
between
processes
 relies on,
enhances,
network layer
services
12 kids in Ann’s house
sending letters to 12 kids
in Bill’s house:
 hosts = houses
 processes = kids
 app messages = letters
in envelopes
 transport protocol = Ann
and Bill who demux to in-
house siblings
 network-layer protocol =
postal service
household analogy:
Transport Layer 3-6
Internet transport-layer protocols
 reliable, in-order
delivery (TCP)
 congestion control
 flow control
 connection setup
 unreliable, unordered
delivery: UDP
 no-frills extension of
“best-effort” IP
 services not
available:
 delay guarantees
 bandwidth guarantees
application
transport
network
data link
physical
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
Transport Layer 3-7
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-8
Multiplexing/demultiplexing
process
socket
use header info to deliver
received segments to correct
socket
demultiplexing at receiver:
handle data from multiple
sockets, add transport header
(later used for demultiplexing)
multiplexing at sender:
transport
application
physical
link
network
P2P1
transport
application
physical
link
network
P4
transport
application
physical
link
network
P3
Transport Layer 3-9
How demultiplexing works
 host receives IP
datagrams
 each datagram has
source IP address,
destination IP address
 each datagram carries
one transport-layer
segment
 each segment has
source, destination port
number
 host uses IP addresses
& port numbers to direct
segment to appropriate
socket
source port # dest port #
32 bits
application
data
(payload)
other header fields
TCP/UDP segment format
Transport Layer 3-10
Connectionless demultiplexing
 when host receives
UDP segment:
 checks destination port
# in segment
 directs UDP segment to
socket with that port #
 recall: when creating
datagram to send into
UDP socket, must
specify
 destination IP address
 destination port #
IP datagrams with
same dest. port #, but
different source IP
addresses and/or
source port numbers
will be directed to same
socket at dest
Transport Layer 3-12
Connection-oriented demux
 TCP socket identified
by 4-tuple:
 source IP address
 source port number
 dest IP address
 dest port number
 demux: receiver uses
all four values to
direct segment to
appropriate socket
 server host may
support many
simultaneous TCP
sockets:
 each socket identified
by its own 4-tuple
 web servers have
different sockets for
each connecting client
 non-persistent HTTP
will have different
socket for each request
Transport Layer 3-15
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-16
UDP: User Datagram Protocol [RFC
768]
 “no frills, Internet
transport protocol
 “best effort” service,
UDP segments may be:
 lost
 delivered out-of-order
to app
 connectionless:
 no handshaking
between UDP
sender, receiver
 each UDP segment
handled
independently of
others
 UDP use:
 streaming multimedia
apps (loss tolerant,
rate sensitive)
 DNS
 SNMP
 reliable transfer over
UDP:
 add reliability at
application layer
 application-specific
error recovery!
Transport Layer 3-17
UDP: segment header
source port # dest port #
32 bits
application
data
(payload)
UDP segment format
length checksum
length, in bytes of
UDP segment,
including header
 no connection
establishment (which
can add delay)
 simple: no connection
state at sender, receiver
 small header size
 no congestion control:
UDP can blast away as
fast as desired
why is there a UDP?
Transport Layer 3-18
UDP checksum
sender:
 treat segment
contents, including
header fields, as
sequence of 16-bit
integers
 checksum: addition
(one’s complement
sum) of segment
contents
 sender puts checksum
value into UDP
checksum field
receiver:
 compute checksum of
received segment
 check if computed
checksum equals
checksum field value:
 NO - error detected
 YES - no error
detected. But maybe
errors nonetheless?
More later ….
Goal: detect “errors” (e.g., flipped bits) in
transmitted segment
Transport Layer 3-19
Internet checksum: example
example: add two 16-bit integers
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sum
checksum
Note: when adding numbers, a carryout from the most
significant bit needs to be added to the result
Transport Layer 3-20
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-21
Principles of reliable data
transfer
 important in application, transport, link layers
 top-10 list of important networking topics!
 characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
Transport Layer 3-22
 characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
Principles of reliable data
transfer
 important in application, transport, link layers
 top-10 list of important networking topics!
Transport Layer 3-23
 characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
 important in application, transport, link layers
 top-10 list of important networking topics!
Principles of reliable data
transfer
Transport Layer 3-25
we’ll:
 incrementally develop sender, receiver sides
of reliable data transfer protocol (rdt)
 consider only unidirectional data transfer
 but control info will flow on both directions!
 use finite state machines (FSM) to specify
sender, receiver
state
1
state
2
event causing state transition
actions taken on state transition
state: when in this
“state” next state
uniquely determined
by next event
event
actions
Reliable data transfer: getting started
Transport Layer 3-26
rdt1.0: reliable transfer over a reliable
channel
 underlying channel perfectly reliable
 no bit errors
 no loss of packets
 separate FSMs for sender, receiver:
 sender sends data into underlying channel
 receiver reads data from underlying channel
Wait for
call from
above packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packet,data)
deliver_data(data)
Wait for
call from
below
rdt_rcv(packet)
sender receiver
Transport Layer 3-28
 underlying channel may flip bits in packet
 checksum to detect bit errors
 the question: how to recover from errors:
 acknowledgements (ACKs): receiver explicitly tells
sender that pkt received OK
 negative acknowledgements (NAKs): receiver
explicitly tells sender that pkt had errors
 sender retransmits pkt on receipt of NAK
 new mechanisms in rdt2.0 (beyond rdt1.0):
 error detection
 feedback: control msgs (ACK,NAK) from receiver to
sender
rdt2.0: channel with bit errors
Transport Layer 3-32
rdt2.0 has a fatal flaw!
what happens if
ACK/NAK
corrupted?
 sender doesn’t know
what happened at
receiver!
 can’t just retransmit:
possible duplicate
handling duplicates:
 sender retransmits
current pkt if ACK/NAK
corrupted
 sender adds sequence
number to each pkt
 receiver discards
(doesn’t deliver up)
duplicate pktstop and wait
sender sends one
packet,
then waits for receiver
response
Transport Layer 3-35
rdt2.1: discussion
sender:
 seq # added to pkt
 two seq. #’s (0,1)
will suffice. Why?
 must check if
received ACK/NAK
corrupted
 twice as many
states
 state must
“remember” whether
“expected” pkt
should have seq # of
0 or 1
receiver:
 must check if
received packet is
duplicate
 state indicates
whether 0 or 1 is
expected pkt seq #
 note: receiver can
not know if its last
ACK/NAK received
OK at sender
Transport Layer 3-38
rdt3.0: channels with errors and loss
new assumption:
underlying channel
can also lose
packets (data,
ACKs)
 checksum, seq. #,
ACKs,
retransmissions will
be of help … but not
enough
approach: sender waits
“reasonable” amount
of time for ACK
 retransmits if no ACK
received in this time
 if pkt (or ACK) just
delayed (not lost):
 retransmission will be
duplicate, but seq. #’s
already handles this
 receiver must specify
seq # of pkt being
ACKed
 requires countdown timer
Transport Layer 3-42
rdt3.0: stop-and-wait operation
first packet bit transmitted, t = 0
sender receiver
RTT
last packet bit transmitted, t = L / R
first packet bit arrives
last packet bit arrives, send ACK
ACK arrives, send next
packet, t = RTT + L / R
U
sender =
.008
30.008
= 0.00027
L / R
RTT + L / R
=
Transport Layer 3-43
Performance of rdt3.0
 rdt3.0 is correct, but performance stinks
 e.g.: 1 Gbps link, 15 ms prop. delay, 8000 bit
packet:
 U sender: utilization – fraction of time sender busy
sending
U
sender =
.008
30.008
= 0.00027
L / R
RTT + L / R
=
 if RTT=30 msec, 1KB pkt every 30 msec: 33kB/sec
thruput over 1 Gbps link
 network protocol limits use of physical resources!
Dtrans =
L
R
8000 bits
109 bits/sec
= = 8 microsecs
Transport Layer 3-56
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-57
TCP: Overview RFCs: 793,1122,1323, 2018,
2581
 full duplex data:
 bi-directional data
flow in same
connection
 MSS: maximum
segment size
 connection-oriented:
 handshaking
(exchange of control
msgs) inits sender,
receiver state before
data exchange
 flow controlled:
 sender will not
overwhelm receiver
 point-to-point:
 one sender, one
receiver
 reliable, in-order byte
steam:
 no “message
boundaries”
 pipelined:
 TCP congestion and
flow control set
window size
Transport Layer 3-58
TCP segment structure
source port # dest port #
32 bits
application
data
(variable length)
sequence number
acknowledgement number
receive window
Urg data pointerchecksum
FSRPAU
head
len
not
used
options (variable length)
URG: urgent data
(generally not used)
ACK: ACK #
valid
PSH: push data now
(generally not used)
RST, SYN, FIN:
connection estab
(setup, teardown
commands)
# bytes
rcvr willing
to accept
counting
by bytes
of data
(not segments!)
Internet
checksum
(as in UDP)
Transport Layer 3-59
TCP seq. numbers, ACKs
sequence numbers:
byte stream “number”
of first byte in
segment’s data
acknowledgements:
seq # of next byte
expected from other
side
cumulative ACK
Q: how receiver handles
out-of-order segments
A: TCP spec doesn’t
say, - up to
implementor
source port # dest port #
sequence number
acknowledgement number
checksum
rwnd
urg pointer
incoming segment to sender
A
sent
ACKed
sent, not-
yet ACKed
(“in-
flight”)
usable
but not
yet sent
not
usable
window size
N
sender sequence number space
source port # dest port #
sequence number
acknowledgement number
checksum
rwnd
urg pointer
outgoing segment from sender
Transport Layer 3-60
TCP seq. numbers, ACKs
User
types
‘C’
host ACKs
receipt
of echoed
‘C’
host ACKs
receipt of
‘C’, echoes
back ‘C’
simple telnet scenario
Host BHost A
Seq=42, ACK=79, data = ‘C’
Seq=79, ACK=43, data = ‘C’
Seq=43, ACK=80
Transport Layer 3-62
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT(milliseconds)
SampleRTT Estimated RTT
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
 exponential weighted moving average
 influence of past sample decreases
exponentially fast
 typical value:  = 0.125
TCP round trip time, timeout
RTT(milliseconds)
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
sampleRTT
EstimatedRTT
time (seconds)
Transport Layer 3-63
 timeout interval: EstimatedRTT plus “safety
margin”
 large variation in EstimatedRTT -> larger safety margin
 estimate SampleRTT deviation from EstimatedRTT:DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
TCP round trip time, timeout
(typically,  = 0.25)
TimeoutInterval = EstimatedRTT + 4*DevRTT
estimated RTT “safety margin”
Transport Layer 3-64
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-65
TCP reliable data transfer
 TCP creates rdt
service on top of IP’s
unreliable service
 pipelined segments
 cumulative acks
 single retransmission
timer
 retransmissions
triggered by:
 timeout events
 duplicate acks
let’s initially consider
simplified TCP
sender:
 ignore duplicate acks
 ignore flow control,
congestion control
Transport Layer 3-66
TCP sender events:
data rcvd from app:
 create segment with
seq #
 seq # is byte-stream
number of first data
byte in segment
 start timer if not
already running
 think of timer as for
oldest unacked
segment
 expiration interval:
TimeOutInterval
timeout:
 retransmit segment
that caused timeout
 restart timer
ack rcvd:
 if ack acknowledges
previously unacked
segments
 update what is known
to be ACKed
 start timer if there are
still unacked
segments
Transport Layer 3-70
TCP ACK generation [RFC 1122, RFC 2581]
event at receiver
arrival of in-order segment with
expected seq #. All data up to
expected seq # already ACKed
arrival of in-order segment with
expected seq #. One other
segment has ACK pending
arrival of out-of-order segment
higher-than-expect seq. # .
Gap detected
arrival of segment that
partially or completely fills gap
TCP receiver action
delayed ACK. Wait up to 500ms
for next segment. If no next segment,
send ACK
immediately send single cumulative
ACK, ACKing both in-order segments
immediately send duplicate ACK,
indicating seq. # of next expected byte
immediate send ACK, provided that
segment starts at lower end of gap
Transport Layer 3-71
TCP fast retransmit
 time-out period
often relatively long:
 long delay before
resending lost packet
 detect lost segments
via duplicate ACKs.
 sender often sends
many segments
back-to-back
 if segment is lost,
there will likely be
many duplicate
ACKs.
if sender receives 3
ACKs for same data
(“triple duplicate
ACKs”), resend
unacked segment
with smallest seq #
 likely that unacked
segment lost, so
don’t wait for timeout
TCP fast retransmit
(“triple duplicate
ACKs”),
Transport Layer 3-76
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-77
Connection Management
before exchanging data, sender/receiver
“handshake”:
 agree to establish connection (each knowing the other
willing to establish connection)
 agree on connection parameters
connection state: ESTAB
connection variables:
seq # client-to-server
server-to-client
rcvBuffer size
at server,client
application
network
connection state: ESTAB
connection Variables:
seq # client-to-server
server-to-client
rcvBuffer size
at server,client
application
network
Socket clientSocket =
newSocket("hostname","port
number");
Socket connectionSocket =
welcomeSocket.accept();
Transport Layer 3-82
TCP: closing a connection
 client, server each close their side of
connection
 send TCP segment with FIN bit = 1
 respond to received FIN with ACK
 on receiving FIN, ACK can be combined with own
FIN
 simultaneous FIN exchanges can be handled
Transport Layer 3-84
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-85
congestion:
 informally: “too many sources sending too
much data too fast for network to handle”
 different from flow control!
 manifestations:
 lost packets (buffer overflow at routers)
 long delays (queueing in router buffers)
 a top-10 problem!
Principles of congestion control
Transport Layer 3-92
R/2
lout
when sending at R/2,
some packets are
retransmissions
including duplicated
that are delivered!
“costs” of congestion:
 more work (retrans) for given “goodput”
 unneeded retransmissions: link carries multiple copies
of pkt
 decreasing goodput
R/2lin
Causes/costs of congestion: scenario
2
Realistic: duplicates
 packets can be lost,
dropped at router due to
full buffers
 sender times out
prematurely, sending two
copies, both of which are
delivered
Transport Layer 3-95
Approaches towards congestion
control
two broad approaches towards congestion control:
end-end
congestion
control:
 no explicit feedback
from network
 congestion inferred
from end-system
observed loss,
delay
 approach taken by
TCP
network-assisted
congestion control:
 routers provide
feedback to end
systems
single bit indicating
congestion (SNA,
DECbit, TCP/IP
ECN, ATM)
explicit rate for
sender to send at
Transport Layer 3-96
Case study: ATM ABR congestion
control
ABR: available bit
rate:
 “elastic service”
 if sender’s path
“underloaded”:
 sender should use
available bandwidth
 if sender’s path
congested:
 sender throttled to
minimum
guaranteed rate
RM (resource
management) cells:
 sent by sender,
interspersed with data cells
 bits in RM cell set by
switches (“network-
assisted”)
 NI bit: no increase in
rate (mild congestion)
 CI bit: congestion
indication
 RM cells returned to
sender by receiver, with
bits intact
Transport Layer 3-98
Chapter 3 outline
3.1 transport-layer
services
3.2 multiplexing and
demultiplexing
3.3 connectionless
transport: UDP
3.4 principles of
reliable data
transfer
3.5 connection-oriented
transport: TCP
 segment structure
 reliable data transfer
 flow control
 connection
management
3.6 principles of
congestion control
3.7 TCP congestion
control
Transport Layer 3-99
TCP congestion control: additive
increase multiplicative decrease
 approach: sender increases transmission rate
(window size), probing for usable bandwidth, until
loss occurs
 additive increase: increase cwnd by 1 MSS
every RTT until loss detected
 multiplicative decrease: cut cwnd in half after
loss
cwnd:TCPsender
congestionwindowsize
AIMD saw tooth
behavior: probing
for bandwidth
additively increase window size …
…. until loss occurs (then cut window in half)
time
Transport Layer 3-100
TCP Congestion Control:
details
 sender limits
transmission:
 cwnd is dynamic,
function of perceived
network congestion
TCP sending rate:
 roughly: send cwnd
bytes, wait RTT for
ACKS, then send
more bytes
last byte
ACKed sent, not-
yet ACKed
(“in-
flight”)
last byte
sent
cwnd
LastByteSent-
LastByteAcked
< cwnd
sender sequence number space
rate ~~
cwnd
RTT
bytes/sec
Transport Layer 3-101
TCP Slow Start
 when connection
begins, increase rate
exponentially until first
loss event:
 initially cwnd = 1 MSS
 double cwnd every RTT
 done by incrementing
cwnd for every ACK
received
 summary: initial rate is
slow but ramps up
exponentially fast
Host A
RTT
Host B
time
Transport Layer 3-102
TCP: detecting, reacting to
loss
 loss indicated by timeout:
 cwnd set to 1 MSS;
 window then grows exponentially (as in slow
start) to threshold, then grows linearly
 loss indicated by 3 duplicate ACKs: TCP
RENO
 dup ACKs indicate network capable of
delivering some segments
 cwnd is cut in half window then grows linearly
 TCP Tahoe always sets cwnd to 1 (timeout
or 3 duplicate acks)
Transport Layer 3-103
Q: when should the
exponential
increase switch
to linear?
A: when cwnd gets
to 1/2 of its
value before
timeout.
Implementation:
 variable ssthresh
 on loss event,
ssthresh is set to 1/2
of cwnd just before
loss event
TCP: switching from slow start to
CA
Transport Layer 3-104
Summary: TCP Congestion
Control
timeout
ssthresh = cwnd/2
cwnd = 1 MSS
dupACKcount = 0
retransmit missing segment
L
cwnd > ssthresh
congestion
avoidance
cwnd = cwnd + MSS (MSS/cwnd)
dupACKcount = 0
transmit new segment(s), as allowed
new ACK
.
dupACKcount++
duplicate ACK
fast
recovery
cwnd = cwnd + MSS
transmit new segment(s), as allowed
duplicate ACK
ssthresh= cwnd/2
cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeout
ssthresh = cwnd/2
cwnd = 1
dupACKcount = 0
retransmit missing segment
ssthresh= cwnd/2
cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3cwnd = ssthresh
dupACKcount = 0
New ACK
slow
start
timeout
ssthresh = cwnd/2
cwnd = 1 MSS
dupACKcount = 0
retransmit missing segment
cwnd = cwnd+MSS
dupACKcount = 0
transmit new segment(s), as allowed
new ACKdupACKcount++
duplicate ACK
L
cwnd = 1 MSS
ssthresh = 64 KB
dupACKcount = 0
New
ACK!
New
ACK!
New
ACK!
Transport Layer 3-105
TCP throughput
 avg. TCP thruput as function of window size,
RTT?
 ignore slow start, assume always data to send
 W: window size (measured in bytes) where loss occurs
 avg. window size (# in-flight bytes) is ¾ W
 avg. thruput is 3/4W per RTT
W
W/2
avg TCP thruput =
3
4
W
RTT
bytes/sec
Transport Layer 3-106
TCP Futures: TCP over “long, fat
pipes”
 example: 1500 byte segments, 100ms RTT,
want 10 Gbps throughput
 requires W = 83,333 in-flight segments
 throughput in terms of segment loss
probability, L [Mathis 1997]:
➜ to achieve 10 Gbps throughput, need a loss rate
of L = 2·10-10 – a very small loss rate!
 new versions of TCP for high-speed
TCP throughput =
1.22 . MSS
RTT L
Transport Layer 3-107
fairness goal: if K TCP sessions share same
bottleneck link of bandwidth R, each should
have average rate of R/K
TCP connection 1
bottleneck
router
capacity R
TCP Fairness
TCP connection 2
Transport Layer 3-108
Why is TCP fair?
two competing sessions:
 additive increase gives slope of 1, as throughout
increases
 multiplicative decrease decreases throughput
proportionallyR
R
equal bandwidth share
Connection 1 throughput
congestion avoidance: additive increase
loss: decrease window by factor of 2
congestion avoidance: additive increase
loss: decrease window by factor of 2
Transport Layer 3-109
Fairness (more)
Fairness and UDP
 multimedia apps
often do not use
TCP
 do not want rate
throttled by
congestion control
 instead use UDP:
 send audio/video at
constant rate,
tolerate packet loss
Fairness, parallel TCP
connections
 application can open
multiple parallel
connections between two
hosts
 web browsers do this
 e.g., link of rate R with 9
existing connections:
 new app asks for 1 TCP, gets
rate R/10
 new app asks for 11 TCPs, gets
R/2
Transport Layer 3-110
Chapter 3: summary
 principles behind
transport layer services:
 multiplexing,
demultiplexing
 reliable data transfer
 flow control
 congestion control
 instantiation,
implementation in the
Internet
 UDP
 TCP
next:
 leaving the
network “edge”
(application,
transport layers)
 into the network
“core”

More Related Content

What's hot

Transport protocols
Transport protocolsTransport protocols
Transport protocolsOnline
 
Jaimin chp-6 - transport layer- 2011 batch
Jaimin   chp-6 - transport layer- 2011 batchJaimin   chp-6 - transport layer- 2011 batch
Jaimin chp-6 - transport layer- 2011 batchJaimin Jani
 
Chapter 5 : Link Layer
Chapter 5 : Link LayerChapter 5 : Link Layer
Chapter 5 : Link LayerAmin Omi
 
Tcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport LayerTcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport Layertmavroidis
 
Transport layer (computer networks)
Transport layer (computer networks)Transport layer (computer networks)
Transport layer (computer networks)Fatbardh Hysa
 
20CS2007 Computer Communication Networks
20CS2007 Computer Communication Networks 20CS2007 Computer Communication Networks
20CS2007 Computer Communication Networks Kathirvel Ayyaswamy
 
Chapter5 link layer and la ns
Chapter5 link layer and la nsChapter5 link layer and la ns
Chapter5 link layer and la nsKhánh Ghẻ
 
TCP - Transmission Control Protocol
TCP - Transmission Control ProtocolTCP - Transmission Control Protocol
TCP - Transmission Control ProtocolPeter R. Egli
 
TCP- Transmission Control Protocol
TCP-  Transmission Control Protocol TCP-  Transmission Control Protocol
TCP- Transmission Control Protocol Akhil .B
 
Transport Layer Services : Multiplexing And Demultiplexing
Transport Layer Services : Multiplexing And DemultiplexingTransport Layer Services : Multiplexing And Demultiplexing
Transport Layer Services : Multiplexing And DemultiplexingKeyur Vadodariya
 
OSI Transport Layer
OSI Transport LayerOSI Transport Layer
OSI Transport LayerSachii Dosti
 
Transport layer services
Transport layer servicesTransport layer services
Transport layer servicesMelvin Cabatuan
 
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)Kruti Niranjan
 

What's hot (20)

Transport layer protocol
Transport layer protocolTransport layer protocol
Transport layer protocol
 
Transport layer
Transport layerTransport layer
Transport layer
 
Transport protocols
Transport protocolsTransport protocols
Transport protocols
 
Jaimin chp-6 - transport layer- 2011 batch
Jaimin   chp-6 - transport layer- 2011 batchJaimin   chp-6 - transport layer- 2011 batch
Jaimin chp-6 - transport layer- 2011 batch
 
Ch12
Ch12Ch12
Ch12
 
Chapter 5 : Link Layer
Chapter 5 : Link LayerChapter 5 : Link Layer
Chapter 5 : Link Layer
 
Tcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport LayerTcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport Layer
 
Transportlayer tanenbaum
Transportlayer tanenbaumTransportlayer tanenbaum
Transportlayer tanenbaum
 
Tcp udp
Tcp udpTcp udp
Tcp udp
 
Transport Protocols
Transport ProtocolsTransport Protocols
Transport Protocols
 
Transport layer (computer networks)
Transport layer (computer networks)Transport layer (computer networks)
Transport layer (computer networks)
 
20CS2007 Computer Communication Networks
20CS2007 Computer Communication Networks 20CS2007 Computer Communication Networks
20CS2007 Computer Communication Networks
 
Chapter5 link layer and la ns
Chapter5 link layer and la nsChapter5 link layer and la ns
Chapter5 link layer and la ns
 
TCP - Transmission Control Protocol
TCP - Transmission Control ProtocolTCP - Transmission Control Protocol
TCP - Transmission Control Protocol
 
TCP- Transmission Control Protocol
TCP-  Transmission Control Protocol TCP-  Transmission Control Protocol
TCP- Transmission Control Protocol
 
Transport Layer Services : Multiplexing And Demultiplexing
Transport Layer Services : Multiplexing And DemultiplexingTransport Layer Services : Multiplexing And Demultiplexing
Transport Layer Services : Multiplexing And Demultiplexing
 
TCP Model
TCP ModelTCP Model
TCP Model
 
OSI Transport Layer
OSI Transport LayerOSI Transport Layer
OSI Transport Layer
 
Transport layer services
Transport layer servicesTransport layer services
Transport layer services
 
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
 

Similar to Lec6

CNS_Module-2-ppt.pptx
CNS_Module-2-ppt.pptxCNS_Module-2-ppt.pptx
CNS_Module-2-ppt.pptxHIMANKMISHRA2
 
COE332-Ch03d.pptx
COE332-Ch03d.pptxCOE332-Ch03d.pptx
COE332-Ch03d.pptxMemMem25
 
Computer networks Module 3 Transport layer
Computer networks Module 3 Transport layerComputer networks Module 3 Transport layer
Computer networks Module 3 Transport layerclaudle200415
 
Ch3 transport layer Network
Ch3 transport layer NetworkCh3 transport layer Network
Ch3 transport layer Networkcairo university
 
transport.pptx
transport.pptxtransport.pptx
transport.pptxjatinder42
 
Chapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptxChapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptxGirT2
 
TRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIAL
TRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIALTRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIAL
TRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIALjainyshah20
 
Chapter 3 v6.01 (1)
Chapter 3 v6.01 (1)Chapter 3 v6.01 (1)
Chapter 3 v6.01 (1)Krunal Pawar
 
4_5938019984411199949.ppt
4_5938019984411199949.ppt4_5938019984411199949.ppt
4_5938019984411199949.pptHodaKHajeh1
 
Transport_Layer_Protocols.pptx
Transport_Layer_Protocols.pptxTransport_Layer_Protocols.pptx
Transport_Layer_Protocols.pptxAnkitKumar891632
 

Similar to Lec6 (20)

CNS_Module-2-ppt.pptx
CNS_Module-2-ppt.pptxCNS_Module-2-ppt.pptx
CNS_Module-2-ppt.pptx
 
COE332-Ch03d.pptx
COE332-Ch03d.pptxCOE332-Ch03d.pptx
COE332-Ch03d.pptx
 
Chapter3 transport
Chapter3 transportChapter3 transport
Chapter3 transport
 
Week4 lec1-bscs1
Week4 lec1-bscs1Week4 lec1-bscs1
Week4 lec1-bscs1
 
Computer networks Module 3 Transport layer
Computer networks Module 3 Transport layerComputer networks Module 3 Transport layer
Computer networks Module 3 Transport layer
 
Ch3 transport layer Network
Ch3 transport layer NetworkCh3 transport layer Network
Ch3 transport layer Network
 
Chapter_3_V6.01.ppt
Chapter_3_V6.01.pptChapter_3_V6.01.ppt
Chapter_3_V6.01.ppt
 
transport.pptx
transport.pptxtransport.pptx
transport.pptx
 
Chapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptxChapter Five - Transport Layer.pptx
Chapter Five - Transport Layer.pptx
 
3. transport layer
3. transport layer3. transport layer
3. transport layer
 
TRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIAL
TRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIALTRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIAL
TRANSPORT LAYER_DATA STRUCTURE LEARNING MATERIAL
 
Chapter 3 v6.01
Chapter 3 v6.01Chapter 3 v6.01
Chapter 3 v6.01
 
Chapter_3_V6.01 (1).pptx
Chapter_3_V6.01 (1).pptxChapter_3_V6.01 (1).pptx
Chapter_3_V6.01 (1).pptx
 
Chapter 3 v6.01 (1)
Chapter 3 v6.01 (1)Chapter 3 v6.01 (1)
Chapter 3 v6.01 (1)
 
4_5938019984411199949.ppt
4_5938019984411199949.ppt4_5938019984411199949.ppt
4_5938019984411199949.ppt
 
Unit 5.Transport Layer.pptx
Unit 5.Transport Layer.pptxUnit 5.Transport Layer.pptx
Unit 5.Transport Layer.pptx
 
tcp.pptx
tcp.pptxtcp.pptx
tcp.pptx
 
Chapter 3 v6.0
Chapter 3 v6.0Chapter 3 v6.0
Chapter 3 v6.0
 
transport layer
transport layertransport layer
transport layer
 
Transport_Layer_Protocols.pptx
Transport_Layer_Protocols.pptxTransport_Layer_Protocols.pptx
Transport_Layer_Protocols.pptx
 

Recently uploaded

AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 

Recently uploaded (20)

AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 

Lec6

  • 1. Transport Layer 3-1 Chapter 3 Transport Layer
  • 2. Transport Layer 3-2 Chapter 3: Transport Layer our goals:  understand principles behind transport layer services:  multiplexing, demultiplexing  reliable data transfer  flow control  congestion control  learn about Internet transport layer protocols:  UDP: connectionless transport  TCP: connection- oriented reliable transport  TCP congestion control
  • 3. Transport Layer 3-3 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 4. Transport Layer 3-4 Transport services and protocols  provide logical communication between app processes running on different hosts  transport protocols run in end systems  send side: breaks app messages into segments, passes to network layer  rcv side: reassembles segments into messages, passes to app layer  more than one transport protocol available to apps application transport network data link physical application transport network data link physical
  • 5. Transport Layer 3-5 Transport vs. network layer  network layer: logical communication between hosts  transport layer: logical communication between processes  relies on, enhances, network layer services 12 kids in Ann’s house sending letters to 12 kids in Bill’s house:  hosts = houses  processes = kids  app messages = letters in envelopes  transport protocol = Ann and Bill who demux to in- house siblings  network-layer protocol = postal service household analogy:
  • 6. Transport Layer 3-6 Internet transport-layer protocols  reliable, in-order delivery (TCP)  congestion control  flow control  connection setup  unreliable, unordered delivery: UDP  no-frills extension of “best-effort” IP  services not available:  delay guarantees  bandwidth guarantees application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical
  • 7. Transport Layer 3-7 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 8. Transport Layer 3-8 Multiplexing/demultiplexing process socket use header info to deliver received segments to correct socket demultiplexing at receiver: handle data from multiple sockets, add transport header (later used for demultiplexing) multiplexing at sender: transport application physical link network P2P1 transport application physical link network P4 transport application physical link network P3
  • 9. Transport Layer 3-9 How demultiplexing works  host receives IP datagrams  each datagram has source IP address, destination IP address  each datagram carries one transport-layer segment  each segment has source, destination port number  host uses IP addresses & port numbers to direct segment to appropriate socket source port # dest port # 32 bits application data (payload) other header fields TCP/UDP segment format
  • 10. Transport Layer 3-10 Connectionless demultiplexing  when host receives UDP segment:  checks destination port # in segment  directs UDP segment to socket with that port #  recall: when creating datagram to send into UDP socket, must specify  destination IP address  destination port # IP datagrams with same dest. port #, but different source IP addresses and/or source port numbers will be directed to same socket at dest
  • 11. Transport Layer 3-12 Connection-oriented demux  TCP socket identified by 4-tuple:  source IP address  source port number  dest IP address  dest port number  demux: receiver uses all four values to direct segment to appropriate socket  server host may support many simultaneous TCP sockets:  each socket identified by its own 4-tuple  web servers have different sockets for each connecting client  non-persistent HTTP will have different socket for each request
  • 12. Transport Layer 3-15 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 13. Transport Layer 3-16 UDP: User Datagram Protocol [RFC 768]  “no frills, Internet transport protocol  “best effort” service, UDP segments may be:  lost  delivered out-of-order to app  connectionless:  no handshaking between UDP sender, receiver  each UDP segment handled independently of others  UDP use:  streaming multimedia apps (loss tolerant, rate sensitive)  DNS  SNMP  reliable transfer over UDP:  add reliability at application layer  application-specific error recovery!
  • 14. Transport Layer 3-17 UDP: segment header source port # dest port # 32 bits application data (payload) UDP segment format length checksum length, in bytes of UDP segment, including header  no connection establishment (which can add delay)  simple: no connection state at sender, receiver  small header size  no congestion control: UDP can blast away as fast as desired why is there a UDP?
  • 15. Transport Layer 3-18 UDP checksum sender:  treat segment contents, including header fields, as sequence of 16-bit integers  checksum: addition (one’s complement sum) of segment contents  sender puts checksum value into UDP checksum field receiver:  compute checksum of received segment  check if computed checksum equals checksum field value:  NO - error detected  YES - no error detected. But maybe errors nonetheless? More later …. Goal: detect “errors” (e.g., flipped bits) in transmitted segment
  • 16. Transport Layer 3-19 Internet checksum: example example: add two 16-bit integers 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 wraparound sum checksum Note: when adding numbers, a carryout from the most significant bit needs to be added to the result
  • 17. Transport Layer 3-20 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 18. Transport Layer 3-21 Principles of reliable data transfer  important in application, transport, link layers  top-10 list of important networking topics!  characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
  • 19. Transport Layer 3-22  characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt) Principles of reliable data transfer  important in application, transport, link layers  top-10 list of important networking topics!
  • 20. Transport Layer 3-23  characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)  important in application, transport, link layers  top-10 list of important networking topics! Principles of reliable data transfer
  • 21. Transport Layer 3-25 we’ll:  incrementally develop sender, receiver sides of reliable data transfer protocol (rdt)  consider only unidirectional data transfer  but control info will flow on both directions!  use finite state machines (FSM) to specify sender, receiver state 1 state 2 event causing state transition actions taken on state transition state: when in this “state” next state uniquely determined by next event event actions Reliable data transfer: getting started
  • 22. Transport Layer 3-26 rdt1.0: reliable transfer over a reliable channel  underlying channel perfectly reliable  no bit errors  no loss of packets  separate FSMs for sender, receiver:  sender sends data into underlying channel  receiver reads data from underlying channel Wait for call from above packet = make_pkt(data) udt_send(packet) rdt_send(data) extract (packet,data) deliver_data(data) Wait for call from below rdt_rcv(packet) sender receiver
  • 23. Transport Layer 3-28  underlying channel may flip bits in packet  checksum to detect bit errors  the question: how to recover from errors:  acknowledgements (ACKs): receiver explicitly tells sender that pkt received OK  negative acknowledgements (NAKs): receiver explicitly tells sender that pkt had errors  sender retransmits pkt on receipt of NAK  new mechanisms in rdt2.0 (beyond rdt1.0):  error detection  feedback: control msgs (ACK,NAK) from receiver to sender rdt2.0: channel with bit errors
  • 24. Transport Layer 3-32 rdt2.0 has a fatal flaw! what happens if ACK/NAK corrupted?  sender doesn’t know what happened at receiver!  can’t just retransmit: possible duplicate handling duplicates:  sender retransmits current pkt if ACK/NAK corrupted  sender adds sequence number to each pkt  receiver discards (doesn’t deliver up) duplicate pktstop and wait sender sends one packet, then waits for receiver response
  • 25. Transport Layer 3-35 rdt2.1: discussion sender:  seq # added to pkt  two seq. #’s (0,1) will suffice. Why?  must check if received ACK/NAK corrupted  twice as many states  state must “remember” whether “expected” pkt should have seq # of 0 or 1 receiver:  must check if received packet is duplicate  state indicates whether 0 or 1 is expected pkt seq #  note: receiver can not know if its last ACK/NAK received OK at sender
  • 26. Transport Layer 3-38 rdt3.0: channels with errors and loss new assumption: underlying channel can also lose packets (data, ACKs)  checksum, seq. #, ACKs, retransmissions will be of help … but not enough approach: sender waits “reasonable” amount of time for ACK  retransmits if no ACK received in this time  if pkt (or ACK) just delayed (not lost):  retransmission will be duplicate, but seq. #’s already handles this  receiver must specify seq # of pkt being ACKed  requires countdown timer
  • 27. Transport Layer 3-42 rdt3.0: stop-and-wait operation first packet bit transmitted, t = 0 sender receiver RTT last packet bit transmitted, t = L / R first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R U sender = .008 30.008 = 0.00027 L / R RTT + L / R =
  • 28. Transport Layer 3-43 Performance of rdt3.0  rdt3.0 is correct, but performance stinks  e.g.: 1 Gbps link, 15 ms prop. delay, 8000 bit packet:  U sender: utilization – fraction of time sender busy sending U sender = .008 30.008 = 0.00027 L / R RTT + L / R =  if RTT=30 msec, 1KB pkt every 30 msec: 33kB/sec thruput over 1 Gbps link  network protocol limits use of physical resources! Dtrans = L R 8000 bits 109 bits/sec = = 8 microsecs
  • 29. Transport Layer 3-56 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 30. Transport Layer 3-57 TCP: Overview RFCs: 793,1122,1323, 2018, 2581  full duplex data:  bi-directional data flow in same connection  MSS: maximum segment size  connection-oriented:  handshaking (exchange of control msgs) inits sender, receiver state before data exchange  flow controlled:  sender will not overwhelm receiver  point-to-point:  one sender, one receiver  reliable, in-order byte steam:  no “message boundaries”  pipelined:  TCP congestion and flow control set window size
  • 31. Transport Layer 3-58 TCP segment structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number receive window Urg data pointerchecksum FSRPAU head len not used options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) # bytes rcvr willing to accept counting by bytes of data (not segments!) Internet checksum (as in UDP)
  • 32. Transport Layer 3-59 TCP seq. numbers, ACKs sequence numbers: byte stream “number” of first byte in segment’s data acknowledgements: seq # of next byte expected from other side cumulative ACK Q: how receiver handles out-of-order segments A: TCP spec doesn’t say, - up to implementor source port # dest port # sequence number acknowledgement number checksum rwnd urg pointer incoming segment to sender A sent ACKed sent, not- yet ACKed (“in- flight”) usable but not yet sent not usable window size N sender sequence number space source port # dest port # sequence number acknowledgement number checksum rwnd urg pointer outgoing segment from sender
  • 33. Transport Layer 3-60 TCP seq. numbers, ACKs User types ‘C’ host ACKs receipt of echoed ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ simple telnet scenario Host BHost A Seq=42, ACK=79, data = ‘C’ Seq=79, ACK=43, data = ‘C’ Seq=43, ACK=80
  • 34. Transport Layer 3-62 RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 100 150 200 250 300 350 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) RTT(milliseconds) SampleRTT Estimated RTT EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT  exponential weighted moving average  influence of past sample decreases exponentially fast  typical value:  = 0.125 TCP round trip time, timeout RTT(milliseconds) RTT: gaia.cs.umass.edu to fantasia.eurecom.fr sampleRTT EstimatedRTT time (seconds)
  • 35. Transport Layer 3-63  timeout interval: EstimatedRTT plus “safety margin”  large variation in EstimatedRTT -> larger safety margin  estimate SampleRTT deviation from EstimatedRTT:DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT| TCP round trip time, timeout (typically,  = 0.25) TimeoutInterval = EstimatedRTT + 4*DevRTT estimated RTT “safety margin”
  • 36. Transport Layer 3-64 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 37. Transport Layer 3-65 TCP reliable data transfer  TCP creates rdt service on top of IP’s unreliable service  pipelined segments  cumulative acks  single retransmission timer  retransmissions triggered by:  timeout events  duplicate acks let’s initially consider simplified TCP sender:  ignore duplicate acks  ignore flow control, congestion control
  • 38. Transport Layer 3-66 TCP sender events: data rcvd from app:  create segment with seq #  seq # is byte-stream number of first data byte in segment  start timer if not already running  think of timer as for oldest unacked segment  expiration interval: TimeOutInterval timeout:  retransmit segment that caused timeout  restart timer ack rcvd:  if ack acknowledges previously unacked segments  update what is known to be ACKed  start timer if there are still unacked segments
  • 39. Transport Layer 3-70 TCP ACK generation [RFC 1122, RFC 2581] event at receiver arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed arrival of in-order segment with expected seq #. One other segment has ACK pending arrival of out-of-order segment higher-than-expect seq. # . Gap detected arrival of segment that partially or completely fills gap TCP receiver action delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK immediately send single cumulative ACK, ACKing both in-order segments immediately send duplicate ACK, indicating seq. # of next expected byte immediate send ACK, provided that segment starts at lower end of gap
  • 40. Transport Layer 3-71 TCP fast retransmit  time-out period often relatively long:  long delay before resending lost packet  detect lost segments via duplicate ACKs.  sender often sends many segments back-to-back  if segment is lost, there will likely be many duplicate ACKs. if sender receives 3 ACKs for same data (“triple duplicate ACKs”), resend unacked segment with smallest seq #  likely that unacked segment lost, so don’t wait for timeout TCP fast retransmit (“triple duplicate ACKs”),
  • 41. Transport Layer 3-76 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 42. Transport Layer 3-77 Connection Management before exchanging data, sender/receiver “handshake”:  agree to establish connection (each knowing the other willing to establish connection)  agree on connection parameters connection state: ESTAB connection variables: seq # client-to-server server-to-client rcvBuffer size at server,client application network connection state: ESTAB connection Variables: seq # client-to-server server-to-client rcvBuffer size at server,client application network Socket clientSocket = newSocket("hostname","port number"); Socket connectionSocket = welcomeSocket.accept();
  • 43. Transport Layer 3-82 TCP: closing a connection  client, server each close their side of connection  send TCP segment with FIN bit = 1  respond to received FIN with ACK  on receiving FIN, ACK can be combined with own FIN  simultaneous FIN exchanges can be handled
  • 44. Transport Layer 3-84 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 45. Transport Layer 3-85 congestion:  informally: “too many sources sending too much data too fast for network to handle”  different from flow control!  manifestations:  lost packets (buffer overflow at routers)  long delays (queueing in router buffers)  a top-10 problem! Principles of congestion control
  • 46. Transport Layer 3-92 R/2 lout when sending at R/2, some packets are retransmissions including duplicated that are delivered! “costs” of congestion:  more work (retrans) for given “goodput”  unneeded retransmissions: link carries multiple copies of pkt  decreasing goodput R/2lin Causes/costs of congestion: scenario 2 Realistic: duplicates  packets can be lost, dropped at router due to full buffers  sender times out prematurely, sending two copies, both of which are delivered
  • 47. Transport Layer 3-95 Approaches towards congestion control two broad approaches towards congestion control: end-end congestion control:  no explicit feedback from network  congestion inferred from end-system observed loss, delay  approach taken by TCP network-assisted congestion control:  routers provide feedback to end systems single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) explicit rate for sender to send at
  • 48. Transport Layer 3-96 Case study: ATM ABR congestion control ABR: available bit rate:  “elastic service”  if sender’s path “underloaded”:  sender should use available bandwidth  if sender’s path congested:  sender throttled to minimum guaranteed rate RM (resource management) cells:  sent by sender, interspersed with data cells  bits in RM cell set by switches (“network- assisted”)  NI bit: no increase in rate (mild congestion)  CI bit: congestion indication  RM cells returned to sender by receiver, with bits intact
  • 49. Transport Layer 3-98 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport: TCP  segment structure  reliable data transfer  flow control  connection management 3.6 principles of congestion control 3.7 TCP congestion control
  • 50. Transport Layer 3-99 TCP congestion control: additive increase multiplicative decrease  approach: sender increases transmission rate (window size), probing for usable bandwidth, until loss occurs  additive increase: increase cwnd by 1 MSS every RTT until loss detected  multiplicative decrease: cut cwnd in half after loss cwnd:TCPsender congestionwindowsize AIMD saw tooth behavior: probing for bandwidth additively increase window size … …. until loss occurs (then cut window in half) time
  • 51. Transport Layer 3-100 TCP Congestion Control: details  sender limits transmission:  cwnd is dynamic, function of perceived network congestion TCP sending rate:  roughly: send cwnd bytes, wait RTT for ACKS, then send more bytes last byte ACKed sent, not- yet ACKed (“in- flight”) last byte sent cwnd LastByteSent- LastByteAcked < cwnd sender sequence number space rate ~~ cwnd RTT bytes/sec
  • 52. Transport Layer 3-101 TCP Slow Start  when connection begins, increase rate exponentially until first loss event:  initially cwnd = 1 MSS  double cwnd every RTT  done by incrementing cwnd for every ACK received  summary: initial rate is slow but ramps up exponentially fast Host A RTT Host B time
  • 53. Transport Layer 3-102 TCP: detecting, reacting to loss  loss indicated by timeout:  cwnd set to 1 MSS;  window then grows exponentially (as in slow start) to threshold, then grows linearly  loss indicated by 3 duplicate ACKs: TCP RENO  dup ACKs indicate network capable of delivering some segments  cwnd is cut in half window then grows linearly  TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks)
  • 54. Transport Layer 3-103 Q: when should the exponential increase switch to linear? A: when cwnd gets to 1/2 of its value before timeout. Implementation:  variable ssthresh  on loss event, ssthresh is set to 1/2 of cwnd just before loss event TCP: switching from slow start to CA
  • 55. Transport Layer 3-104 Summary: TCP Congestion Control timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment L cwnd > ssthresh congestion avoidance cwnd = cwnd + MSS (MSS/cwnd) dupACKcount = 0 transmit new segment(s), as allowed new ACK . dupACKcount++ duplicate ACK fast recovery cwnd = cwnd + MSS transmit new segment(s), as allowed duplicate ACK ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment dupACKcount == 3 timeout ssthresh = cwnd/2 cwnd = 1 dupACKcount = 0 retransmit missing segment ssthresh= cwnd/2 cwnd = ssthresh + 3 retransmit missing segment dupACKcount == 3cwnd = ssthresh dupACKcount = 0 New ACK slow start timeout ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 retransmit missing segment cwnd = cwnd+MSS dupACKcount = 0 transmit new segment(s), as allowed new ACKdupACKcount++ duplicate ACK L cwnd = 1 MSS ssthresh = 64 KB dupACKcount = 0 New ACK! New ACK! New ACK!
  • 56. Transport Layer 3-105 TCP throughput  avg. TCP thruput as function of window size, RTT?  ignore slow start, assume always data to send  W: window size (measured in bytes) where loss occurs  avg. window size (# in-flight bytes) is ¾ W  avg. thruput is 3/4W per RTT W W/2 avg TCP thruput = 3 4 W RTT bytes/sec
  • 57. Transport Layer 3-106 TCP Futures: TCP over “long, fat pipes”  example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput  requires W = 83,333 in-flight segments  throughput in terms of segment loss probability, L [Mathis 1997]: ➜ to achieve 10 Gbps throughput, need a loss rate of L = 2·10-10 – a very small loss rate!  new versions of TCP for high-speed TCP throughput = 1.22 . MSS RTT L
  • 58. Transport Layer 3-107 fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 bottleneck router capacity R TCP Fairness TCP connection 2
  • 59. Transport Layer 3-108 Why is TCP fair? two competing sessions:  additive increase gives slope of 1, as throughout increases  multiplicative decrease decreases throughput proportionallyR R equal bandwidth share Connection 1 throughput congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2
  • 60. Transport Layer 3-109 Fairness (more) Fairness and UDP  multimedia apps often do not use TCP  do not want rate throttled by congestion control  instead use UDP:  send audio/video at constant rate, tolerate packet loss Fairness, parallel TCP connections  application can open multiple parallel connections between two hosts  web browsers do this  e.g., link of rate R with 9 existing connections:  new app asks for 1 TCP, gets rate R/10  new app asks for 11 TCPs, gets R/2
  • 61. Transport Layer 3-110 Chapter 3: summary  principles behind transport layer services:  multiplexing, demultiplexing  reliable data transfer  flow control  congestion control  instantiation, implementation in the Internet  UDP  TCP next:  leaving the network “edge” (application, transport layers)  into the network “core”