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