UDP User Datagram Protocol

advertisement
UDP - User Datagram Protocol
UDP
indigoo.com
USER DATAGRAM PROTOCOL
INTRODUCTION TO USER DATAGRAM PROTOCOL,
A SIMPLE PACKET TRANSPORT SERVICE IN THE
INTERNET PROTOCOL SUITE
© Peter R. Egli 2014
PETER R. EGLI
INDIGOO.COM
1/7
Rev. 3.50
UDP - User Datagram Protocol
indigoo.com
Contents
1. UDP (RFC768) characteristics
2. UDP Service
3. Typical UDP applications
4. UDP Checksum
5. UDP versus TCP
© Peter R. Egli 2014
2/7
Rev. 3.50
indigoo.com
UDP - User Datagram Protocol
1. UDP (RFC768) characteristics
• No connection establishment/teardown; data is just sent right away.
• No flow control / congestion control, sender can overrun receiver‘s buffer:
 UDP is not suited for bulk data transfer.
 For data transfer with UDP a lock-step protocol is required (to be implemented
by the application).
• No error control; corrupted data is not retransmitted (even though UDP header has a
checksum to detect errors and report these to the application).
Host 1
Host 2
1
1
Host 1 sends
packets.
Packet 1 is stored
in the receive queue.
2
2
1
Packet 2 is stored
in the receive queue.
3
3
2
1
Packet 3 is stored
in the receive queue.
4
3
2
1
5
5
3
2
Packet 4 is
dropped (buffer
overrun).
Packet 1 is sent
to the application.
1
© Peter R. Egli 2014
Packet 4 is missing. The
packet loss needs
to be handled by
the application
(detection, retransmission).
3/7
Rev. 3.50
indigoo.com
UDP - User Datagram Protocol
2. UDP service
 UDP is basically a simple extension of the IP datagram service.
 UDP adds multiplexing (on port number) to IP datagram service.
 Application writes are mapped 1:1 to UDP datagrams; UDP passes these 1:1 to the IP layer.
Appl.
Appl.
300
Application
reads packets
(APDU’s)
from the
socket
interface
Application
sends packets
(APDU’s) over
the socket
interface
2500
500
150
150
500
2500
300
Socket interface
UDP layer
UDP layer
300
150
2500
TPDU’s
(UDP datagrams)
500
150
TPDU’s
(UDP datagrams)
IP layer
© Peter R. Egli 2014
2500
300
2500byte packet is too big. IP layer fragments
the UDP datagram.
300
500
IP layer
1000
1500
500
150
IP packets
4/7
Rev. 3.50
indigoo.com
UDP - User Datagram Protocol
3. Typical UDP applications
UDP is best suited for applications with short command-response type „transactions“
that do not justify the establishment / release prior to the data exchange.
Host 1
SNMP
Host 2
Host 1
SNMP GET Request
DHCP/Bootp
Host 2
Host 1
RADIUS
RADIUS Access Request
SNTP
Host 2
Time request
Time response
Host 2
Host 1
RIP
Host 2
RIP Route Update
RADIUS Access Accept
DHCP Response
RPC
Host 1
DNS Response
DHCP Request
Host 1
Host 2
DNS Query
SNMP GET Response
Host 1
DNS
Host 2
RPC Request
RPC Reply
© Peter R. Egli 2014
5/7
Rev. 3.50
indigoo.com
UDP - User Datagram Protocol
4. UDP checksum
 UDP has a checksum too that provides minimal protection against transmission errors.
 The checksum is optional; if it is not used it shall be set to 0.
 Becaus the IP addresses are used in the UDP checksum calculation,
UDP is tightly bound to the IP layer. Therefore UDP can only run on top of IP.
IP Source Address
Pseudo
header
IP Destination Address
The checksum is
calculated over
the pseudo header,
UDP header and
data (UDP payload).
00000000
Protocol=17
UDP
Length
UDP Length
Source Port
Destination Port
Checksum
Length
UDP
header
Data
© Peter R. Egli 2014
6/7
Rev. 3.50
indigoo.com
UDP - User Datagram Protocol
5. UDP versus TCP
TCP
 Connection-oriented, point-to-point (unicast)
UDP
 Connection-less, best-effort
 Reliable end-to-end:
No bit errors due to checksum.
Packet ordering preserved.
No duplicates.
No packet loss.
 Not reliable (no retransmissions)
 Stream-oriented (no message boundary preservation)  Message boundary preservation
 Has flow control to maximise throughput
 No flow control
 Has congestion control to minimise packet loss
 No congestion control
 Analogon: phone
 Analogon: mail (snail mail)
Examples of application protocols using TCP:
HTTP, SMTP, FTP, TELNET
Examples of application protocols
using UDP:
SNMP, DNS, TFTP, RTP, DHCP, SNTP
N.B.: It is possible to run application protocols over both TCP and UDP. E.g. DNS is normally run on UDP, but
for zone transfers (higher data volume) DNS uses TCP. Actually there is a shift towards using TCP instead
UDP since TCP can better provide security (SSL/TLS, simpler filtering in firewalls etc.).
© Peter R. Egli 2014
7/7
Rev. 3.50
Download