UDP (User Datagram Protocol)

UDP (User Datagram Protocol) is an alternative communications protocol to Transmission Control Protocol (TCP) used primarily for establishing low-latency and loss-tolerating connections between applications on the internet.

Both UDP and TCP run on top of the Internet Protocol (IP) and are sometimes referred to as UDP/IP or TCP/IP. But there are important differences between the two.

Where UDP enables process-to-process communication, TCP supports host-to-host communication. TCP sends individual packets and is considered a reliable transport medium; UDP sends messages, called datagrams, and is considered a best-effort mode of communications.

In addition, where TCP provides error and flow control, no such mechanisms are supported in UDP. UDP is considered a connectionless protocol because it doesn't require a virtual circuit to be established before any data transfer occurs.

UDP provides two services not provided by the IP layer. It provides port numbers to help distinguish different user requests and, optionally, a checksum capability to verify that the data arrived intact.

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 delays called latency.

In contrast, UDP just sends the packets, which means that it has much lower bandwidth overhead and latency. With UDP, packets may take different paths between sender and receiver and, as a result, some packets may be lost or received out of order.

Applications of UDP

UDP is an ideal protocol for network applications in which perceived latency is critical, such as in gaming and voice and video communications, which can suffer some data loss without adversely affecting perceived quality. In some cases, forward error correction techniques are used to improve audio and video quality in spite of some loss.

UDP can also be used in applications that require lossless data transmission when the application is configured to manage the process of retransmitting lost packets and correctly arranging received packets. This approach can help to improve the data transfer rate of large files compared to TCP.

In the Open Systems Interconnection (OSI) communication model, UDP, like TCP, 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 (TFTP), Real Time Streaming Protocol (RTSP), Simple Network Protocol (SNP) and domain name system (DNS) lookups.

User datagram protocol features

The user datagram protocol has attributes that make it advantageous for use with applications that can tolerate lost data.

It allows packets to be dropped and received in a different order than they were transmitted, making it suitable for real-time applications where latency might be a concern.

It can be used for transaction-based protocols, such as DNS or Network Time Protocol.

It can be used where a large number of clients are connected and where real-time error correction isn't necessary, such as gaming, voice or video conferencing, and streaming media.

UDP header composition

The User Datagram Protocol header has four fields, each of which is 2 bytes. They are:

source port number, which is the number of the sender;

destination port number, the port the datagram is addressed to;

length, the length in bytes of the UDP header and any encapsulated data; and

checksum, which is used in error checking. Its use is required in IPv6 and optional in IPv4.

Join the conversation

12 comments

Register

I agree to TechTarget’s Terms of Use, Privacy Policy, and the transfer of my information to the United States for processing to provide me with relevant information as described in our Privacy Policy.

Please check the box if you want to proceed.

I agree to my information being processed by TechTarget and its Partners to contact me via phone, email, or other means regarding information relevant to my professional interests. I may unsubscribe at any time.

John Garret, I believe what you mean is "Why would anyone use TCP???" Okay, just joking there, but there is actually a big drive on to just remove TCP from the world of networking. Why? Well, the network is much more reliable than in the past. TCP breaks packets up on the one side, then reassembles them on the other side of the connection, and then does a bunch of calculations to make sure each packet has come in. It's a lot of work! Plus, sometimes a lost packet doesn't matter. Imagine you are watching a video and the packets for one frame are lost. Should the video freeze until all the packets are found, or should the video just keep playing, using all the new packets that have come in? Sometimes a lost packet or two doesn't matter. They say Netflix accounts for half of all Intenet usage in the US. That's a lot of packets to keep track off, especially if a lost packet or two really doesn't matter. Speed. Efficiency. Practicality. Those are all reasons that people are moving towards UDP and away from TCP.

1. Big file (more than 100 GB) transfer where sender application on one side splits files in PDUs and receiver application rebuilds PDUs in order to recreate the original file. Project STATEL for the European Commission.

Video Games and other state driven software ..like ATM(Automated Teller machines) where once a transaction is done it is done with..if the UDP/IP packet informing the change in state it lost or not reached to intended client. it is not transmitted again ..Because if the packet were to be transmitted by that time another state change would have happened in real time and the user will be one state behind due to re transmission....