1. UDP: User Datagram Protocol [RFC 768]
“no frills,” “bare bones”
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
Why is there a UDP?
no connection
establishment (which can
add delay)
simple: no connection state
at sender, receiver
small segment header
no congestion control: UDP
can blast away as fast as
desired
2. Datagram Format
UDP packets, called user datagrams, have a
fixed-size header of 8 bytes.
User datagram format
3. UDP operation
Connectionless
Services
UDP provides a
connectionless
service. This means
that each user
datagram sent by
UDP is an
independent
datagram.
Flow and Error Control
UDP is a very simple,
unreliable transport
protocol. There is no
flow control and hence
no window mechanism.
3-3
• Encapsulation and Decapsulation
To send a message from one process to
another, the UDP protocol encapsulates
and decapsulates messages in an IP
datagram.
4. UDP: more
often used for streaming
multimedia apps
loss tolerant
rate insensitive
other UDP uses
DNS
SNMP
reliable transfer over UDP:
add reliability at
application layer
application-specific
error recovery!
source port # dest port #
32 bits
Application
data
(message)
UDP segment format
length checksum
Length, in
bytes of UDP
segment,
including
header
5. UDP checksum
Sender:
treat segment contents
as sequence of 16-bit
integers
checksum: addition (1’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
6. Internet Checksum Example
Note: when adding numbers, a carryout from
the most significant bit needs to be added
to the result
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
7. Checksum calculation
UDP uses 1’s complement for their
checksums. Suppose you have the following
8-bit bytes: 01010011, 01010100, 01110100.
What is the 1’s complement of the sum of
these 8-bit bytes?
How does the receiver detect errors?
8. Use of UDP
UDP is a suitable transport protocol for
multicasting.
UDP is suitable for a process with internal
flow and error control mechanisms.
UDP is suitable for a process that requires
simple request-response communication
with little concern for flow and error
control.
UDP is used for management processes
such as SNMP.