Username   Password       Register

UDP (User Datagram Protocol)

User Datagram Protocol or UDP is part of the Internet Protocol suite, using which, programs running on different computers on a network can send short messages known as Datagrams to one another. UDP can be used in networks where TCP is traditionally implemented, but unlike TCP, it does not guarantee reliability or the correct sequencing of data. Datagrams may go missing without notice, or arrive in a different order from the one in which they were sent. The protocol was formulated by David P. Reed in 1980 and officially defined in RFC 768.

UDP makes use of a simple communication model without implicit transmission checks for guaranteeing reliability, sequencing, or datagram integrity. Though these factors might seem to suggest that UDP is not a useful protocol, it still finds wide usage in particular areas where speed, more than reliability, is of utmost importance. UDP considers that error checks and corrections should be carried out in the communicating application, and not at the network layer. However, if error checks and corrections are needed at the network layer, the application can make use of Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP), which are specifically formulated for this reason.  Since UDP does not have the overhead of checking whether the data has reached the destination every time it is sent, it makes the protocol that much faster and more efficient. UDP is often used for time-sensitive applications where missing data is preferred to late-arriving data.

UDP is a stateless protocol which is useful for servers engaged in answering short queries from a large number of clients. While TCP is mainly used for communication between a server and a single client, UDP is used for packet broadcast or multicasting whereby the data is sent to all the clients in the network. Frequent network applications that use UDP include: Trivial File Transfer Protocol (TFTP) , Voice over IP (VoIP), IPTV, Domain Name System (DNS), etc.

Since UDP lacks any kind of mechanism to control or avoid network congestion, other forms of network-based control mechanisms need to be implemented to ensure smooth flow of traffic in a UDP network. One of the solutions being designed to tackle this problem is DCCP or Datagram Congestion Control Protocol which is aimed at monitoring and controlling traffic congestion in a UDP network.

A typical IP network consists of five layers:

  • The Physical Layer consisting of the actual channel for data flow like coaxial, twisted pair or fiber optic cables
  • The Data Link Layer implementing Wi-Fi, ISDN, GPRS etc
  • The Network / Internet Layer
  • Transport Layer implementing TCP, UDP etc
  • Application Layer running DNS, FTP, HTTP, POP3, SMTP, Telnet etc

As shown above, UDP belongs to the fourth layer. Although the entire amount of UDP traffic in a network is a small fraction of the whole, a number of key application in the fifth layer like DNS and SNMP or simple network management protocol use UDP.

UDP Packet

The UDP header comprises of only four fields. The use of two of those is optional (light red background in diagram).

Source Port
Source port recognizes the sending port and should be understood to be the port to respond to if required. If not used, then its value should be zero.

Destination Port
Destination port recognizes the destination port and is mandatory.

Length
A 16-bit length field indicates the length in bytes of the complete datagram: header and data.

Checksum
The 16-bit checksum field is implemented for error-checking of the header and data. The algorithm for computing the checksum is different for transmission over IPv4 and IPv6.

Additional Reading on UDP

The UDP protocol is defined in RFC 768: User Datagram Protocol.

blog comments powered by Disqus

Discuss UDP (User Datagram Protocol) in the forums.

 
(0 - user rating)