Overview

The User Datagram Protocol (UDP) is one of the core transport-layer protocols in the Internet Protocol Suite. It permits applications to send discrete packets—called datagrams—between hosts on an IP network without establishing a connection. UDP's design emphasizes minimal protocol mechanism and low overhead rather than built-in reliability.

Characteristics and header

UDP is connectionless and stateless: each datagram is independent, with no handshaking, retransmission, or congestion control provided by the protocol itself. The UDP header is compact (8 bytes) and contains four fields used for demultiplexing and basic integrity checking:

  • Source port — identifies the sender's port (optional).
  • Destination port — identifies the target application port.
  • Length — size of header plus payload.
  • Checksum — optional in IPv4 (zero can mean not used) and mandatory in IPv6; it covers header and payload to detect corruption.

History and development

UDP was specified by David P. Reed in 1980 and formally defined in RFC 768. It was created to provide a simple multiplexing/demultiplexing service for applications that did not require the complexity and cost of a reliable, ordered byte stream such as that provided by TCP.

Common uses and examples

Because of its low latency and small overhead, UDP is widely used where speed or simplicity is more important than guaranteed delivery. Typical uses include:

  • Domain Name System (DNS) queries (commonly on port 53) and other lookups that expect short responses.
  • Real-time media and telephony (VoIP, streaming audio/video) often using RTP over UDP to tolerate some packet loss rather than incur delays.
  • Online multiplayer gaming and interactive applications that prefer timely updates over retransmission delays.
  • Bootstrapping protocols like DHCP, simple file transfer protocols such as TFTP, and some monitoring (SNMP).
  • Modern protocols (for example, QUIC) use UDP as a substrate to implement richer features in user space.

Distinctions and important notes

UDP differs from TCP in several key ways: it provides no connection establishment, no guaranteed delivery, no ordering, and no congestion control. These properties make UDP lightweight and fast but require applications that need reliability or ordering to implement those features themselves. Care is also needed with large UDP packets because fragmentation at the IP layer can increase loss rate and latency.

Despite its simplicity, UDP remains essential across the Internet as a flexible building block: it supports a broad set of services that benefit from minimal delay, straightforward semantics, or the ability to craft custom transport behavior at the application level.