What is User Datagram Protocol (UDP)?
User Datagram Protocol (UDP) is a communications protocol primarily used to establish low-latency and loss-tolerating connections between applications on the internet.
UDP speeds up transmissions because it enables data transfer before the receiving party provides an agreement. As a result, UDP is beneficial in time-sensitive communications, such as voice over IP (VoIP), domain name system (DNS) lookup, and video or audio playback.
UDP is an alternative to TCP. Both UDP and TCP run on top of IP and are sometimes referred to as UDP/IP or TCP/IP. But there are important distinctions between the two. For example, UDP enables process-to-process communication, while TCP supports host-to-host communication.
TCP sends individual packets and is a reliable transport medium. UDP sends messages, called datagrams, and is considered a best-effort mode of communications. This means UDP doesn't guarantee data delivery or offer any special features to retransmit lost or corrupted messages.
UDP provides two services not provided by the IP layer:
- Port numbers. Help distinguish different user requests.
- Checksum. An optional capability that verifies if data arrived intact.
UDP's attributes make it beneficial for use with applications that can tolerate lost data. Features of UDP include the following:
- Packets can be dropped and received in a different order than they were transmitted, which is suitable for real-time applications where latency might be a concern.
- Transaction-based protocols, such as DNS or Network Time Protocol, can use UDP for communication.
- UDP is useful in locations with a large number of clients where real-time error correction isn't necessary, such as gaming, voice or video conferencing, and media streaming.
UDP header composition
UDP uses headers when packaging message data to transfer over network connections. UDP headers contain a set of parameters -- called fields -- defined by the technical specifications of the protocol.
The UDP header has four fields, each of which is 2 bytes. They are the following:
How UDP works
UDP uses IP to get a datagram from one computer to another. UDP gathers data in a UDP packet and adds its own header information to the packet. This data consists of the source and destination ports on which to communicate, the packet length and a checksum. After UDP packets encapsulate in an IP packet, it sends packets off to their destinations.
Unlike TCP, UDP doesn't guarantee the packets will get to the right destinations. This means UDP doesn't connect to the receiving computer directly, which TCP does. Instead, it sends the data out and relies on the devices in between the sending and receiving computers to move the data where it needs to go.
Most applications wait for any replies they expect to receive as a result of packets sent with UDP. If an application doesn't receive a reply within a certain time frame, the application either sends the packet again or stops trying.
UDP uses a simple transmission model that doesn't include handshake dialogues to provide reliability, ordering or data integrity. Consequently, UDP has an unreliable service. Packets might arrive out of order, appear to have duplicates or disappear without warning.
Although this transmission method doesn't guarantee the data will reach its destination, it does have low overhead and is popular for services that don't have to work the first time.
Applications of UDP include the following:
- Lossless data transmission.
- Gaming, voice and video.
- Services that don't need fixed packet transmission.
- Multicasting and routing update protocols.
- Fast applications.
Lossless data transmission
Applications that require lossless data transmission can make use of UDP. For example, an application that is configured to manage the process of retransmitting lost packets and correctly arrange received packets might use UDP. This approach can help to improve the data transfer rate of large files compared to TCP.
In the Open Systems Interconnection communication model, UDP is in Layer 4, the transport layer. UDP works in conjunction with higher-level protocols to help manage data transmission services, including Trivial File Transfer Protocol, Real Time Streaming Protocol and Simple Network Management Protocol.
Gaming, voice and video
UDP is an ideal protocol for network applications in which perceived latency is critical, such as in gaming, voice and video communications. These examples can suffer some data loss without adversely affecting perceived quality. In some cases, however, forward error correction techniques are used in addition to UDP to improve audio and video quality, despite some loss.
Services that don't need fixed packet transmission
UDP can also be used in applications that depend on the reliable exchange of information but should have their own methods to answer packets. These services are advantageous because they're not bound to fixed patterns to guarantee the completeness and correctness of the data packets sent. Users can decide how and when to respond to incorrect or unsorted information.
Multicasting and routing update protocols
Multicasting can use UDP because it supports packet switching. In addition, some routing update protocols, such as Routing Information Protocol, can also use UDP.
UDP can be used in applications where speed -- rather than reliability -- is critical. For example, it might be prudent to use UDP in an application that sends data from a fast acquisition where it's OK to lose some data points.
TCP vs. UDP
TCP and UDP are part of the TCP/IP protocol suite, which includes a number of protocols that carry out network communications.
TCP has emerged as the dominant protocol used for the bulk of internet connectivity due to its ability to break large data sets into individual packets, check for and resend lost packets, and reassemble packets in the correct sequence. But these additional services come at a cost in terms of additional data overhead and latency.
In contrast, UDP is considered a connectionless protocol because it doesn't require the establishment of a virtual circuit before any data transfer occurs. The communication protocol only sends the packets, which means it has much lower bandwidth overhead and latency. With UDP, packets might take different paths between sender and receiver. As a result, some packets might be lost or received out of order.
UDP characteristics include the following:
- Used for VoIP, video streaming, gaming and live broadcasts.
- Faster and requires fewer resources.
- Packets don't necessarily arrive in order.
- Allows missing packets, which is useful for real-time communications, but the sender doesn't receive an acknowledgement of whether a packet has been received.
- Better suited for applications that need fast, efficient transmission, such as games.
TCP characteristics include the following:
- The most widely used protocol on the internet.
- Guarantees that no packets go missing and all sent data arrives to the intended recipient.
- Sends packets in order so they can be stitched back together easily.
- Slower and requires more resources.
- Has a bigger header than UDP.
- Best suited for apps that need high reliability, and transmission time is relatively less critical.
Editor's note: This definition was reformatted to improve the reader experience.