E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
EE 586 Communication andSwitching Networks
Lecture 12
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
Chapter 3: Transport Layer
our goals:
understandprinciples behindtransport layerservices:
multiplexing,demultiplexing
checksum
reliable data transfer
flow control
congestion control
learn about Internettransport layer protocols:
UDP: connectionlesstransport
TCP: connection-orientedreliable transport
TCP congestion control
2
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
access_point_stylized_small
antenna_radiation_stylized
cell_tower_radiation_gray
access_point_stylized_gray_small
access_point_stylized_gray_small
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
car_icon_small
iphone_stylized_small
antenna_radiation_stylized
antenna_stylized
laptop_keyboard
screen
antenna_stylized
laptop_keyboard
screen
antenna_stylized
laptop_keyboard
screen
desktop_computer_stylized_medium
antenna_stylized
laptop_keyboard
screen
underline_base
Transport services and protocols
provide logical communicationbetween app processesrunning on different hosts
transport protocols run in endsystems
send side: breaks appmessages into segments,passes to  network layer
receiver side: reassemblessegments into messages,passes to app layer
more than one transportprotocol available to apps
Internet: TCP and UDP
application
transport
network
data link
physical
logical end-end transport
application
transport
network
data link
physical
3
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
access_point_stylized_small
antenna_radiation_stylized
cell_tower_radiation_gray
access_point_stylized_gray_small
access_point_stylized_gray_small
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
car_icon_small
iphone_stylized_small
antenna_radiation_stylized
antenna_stylized
laptop_keyboard
screen
antenna_stylized
laptop_keyboard
screen
antenna_stylized
laptop_keyboard
screen
desktop_computer_stylized_medium
antenna_stylized
laptop_keyboard
screen
underline_base
Internet transport-layer protocols
unreliable, unordereddelivery: UDP
no-frills extension ofbest-effort IP
reliable, in-orderdelivery (TCP)
congestion control
flow control
connection setup
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
logical end-end transport
4
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
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
P2
P1
transport
application
physical
link
network
P4
transport
application
physical
link
network
P3
desktop_computer_stylized_medium
desktop_computer_stylized_medium
5
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
How demultiplexing works
host receives IP datagrams
each datagram has source IPaddress, destination IPaddress
each datagram carries onetransport-layer segment
each segment has source,destination port number
host uses IP addresses &port numbers to directsegment to appropriatesocket
source port #
dest port #
32 bits
application
data
(payload)
other header fields
TCP/UDP segment format
6
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Transport Layer
3-7
underline_base
Connectionless demultiplexing
recall: created socket hashost-local port #:
  DatagramSocket mySocket1= new DatagramSocket(12534);
when host receives UDPsegment:
checks destination port #in segment
directs UDP segment tosocket with that port #
recall: when creatingdatagram to send intoUDP socket, must specify
destination IP address
destination port #
IP datagrams with samedest. port #, but differentsource IP addressesand/or source portnumbers will be directedto same socket at dest
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Transport Layer
3-8
underline_base
Connectionless demux: example
DatagramSocketserverSocket = newDatagramSocket
 (6428);
transport
application
physical
link
network
P3
transport
application
physical
link
network
P1
transport
application
physical
link
network
P4
DatagramSocketmySocket1 = newDatagramSocket(5775);
DatagramSocketmySocket2 = newDatagramSocket
 (9157);
source port: 9157
dest port: 6428
source port: 6428
dest port: 9157
source port: 6428
dest port: 5775
source port: 5775
dest port: 6428
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Connection-oriented demux
TCP socket identifiedby 4-tuple:
source IP address
source port number
dest IP address
dest port number
demux: receiver usesall four values to directsegment to appropriatesocket
server host may supportmany simultaneous TCPsockets:
each socket identified byits own 4-tuple
web servers havedifferent sockets foreach connecting client
non-persistent HTTP willhave different socket foreach request
underline_base
9
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Connection-oriented demux: example
transport
application
physical
link
network
P3
transport
application
physical
link
transport
application
physical
link
network
P2
source IP,port: A,9157
dest IP, port: B,80
source IP,port: B,80
dest IP,port: A,9157
host: IPaddress A
host: IPaddress C
server: IPaddress B
network
P3
source IP,port: C,5775
dest IP,port: B,80
source IP,port: C,9157
dest IP,port: B,80
P4
threaded server
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
10
(modified by Cheung for EE586; based on K&R original)
three segments, all destined to IP address: B,
 dest port: 80 are demultiplexed to different sockets
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
UDP: User Datagram Protocol [RFC 768]
no frills, bare bonesInternet transportprotocol
best effort service,UDP segments may be:
lost
delivered out-of-orderto app
connectionless:
no handshakingbetween UDP sender,receiver
each UDP segmenthandled independentlyof others
UDP use:
streaming multimediaapps (loss tolerant, ratesensitive)
DNS
SNMP
reliable transfer overUDP:
add reliability atapplication layer
application-specific errorrecovery!
11
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
UDP: segment header
source port #
dest port #
32 bits
application
data
(payload)
UDP segment format
length
checksum
length, in bytes ofUDP segment,including header
no connectionestablishment (which canadd delay)
simple: no connectionstate at sender, receiver
small header size
no congestion control:UDP can blast away asfast as desired
why is there a UDP?
12
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
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 mostsignificant bit needs to be added to the result
13
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Checksum (no bit error)
Receiver receives
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  0  1  0  0  0  1  0  0  0  1  0  0  0  0  1  1
1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0
wraparound
checksum
data
data
1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
underline_base
14
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Checksum (bit errors)
Receiver receives with 3 bit error
The receiver does not know which bitsare wrong – error detecting but notcorrecting
1  1  1  1  0  0  1  1  0  0  1  1  0  0  1  0  0
1  1  1  0  1  1  1  0  1  0  1  0  1  0  1  0  1
1  0  1  0  0  0  1  0  0  0  0  0  0  0  0  1  1
1  1  1  1  1  0  1  1  1  1  0  1  1  1  1  0  0
wraparound
checksum
data
data
1  1  1  1  0  1  1  1  1  0  1  1  1  1  0  1
15
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Checksum (bit errors)
Receiver receives with 2 bit error
The receiver cannot detect someerror
1  1  1  1  0  0  1  1  0  0  1  1  0  0  1  0  0
1  1  1  0  1  0  1  0  1  0  1  0  1  0  1  1  1
1  0  1  0  0  0  1  0  0  0  1  0  0  0  0  1  1
1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0
wraparound
checksum
data
data
1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
16
(modified by Cheung for EE586; based on K&R original)