---
obj: concept
wiki: https://wikipedia.org/wiki/User_Datagram_Protocol
rfc: https://datatracker.ietf.org/doc/html/rfc768
---

# UDP
The User Datagram Protocol (UDP) is a connectionless transport layer protocol in the Internet Protocol (IP) suite. Unlike Transmission Control Protocol ([TCP](TCP.md)), UDP does not establish a connection before sending data and does not guarantee the delivery of data. Instead, it provides a simple and lightweight mechanism for transmitting data quickly.

## Key Characteristics
### 1. **Connectionless:**
- UDP is connectionless, meaning it does not establish a connection before sending data. Each UDP packet is treated independently.
### 2. **Unreliable:**
- UDP does not guarantee the delivery of data, and there is no mechanism for retransmission if packets are lost or arrive out of order.
### 3. **Low Overhead:**
- UDP has minimal overhead compared to [TCP](TCP.md), making it suitable for applications where speed and low latency are prioritized over reliability.
### 4. **Broadcast and Multicast Support:**
- UDP supports broadcast and multicast communication, allowing a single UDP packet to be sent to multiple recipients simultaneously.
### 5. **No Flow Control:**
- UDP does not implement flow control mechanisms, so it may send data at a rate that the recipient cannot handle.

## Use Cases
### 1. **Real-Time Applications:**
- UDP is commonly used in real-time applications where low latency is critical, such as online gaming, video conferencing, and voice over IP (VoIP).
### 2. **Streaming Media:**
- Streaming services often use UDP for delivering media content due to its speed and the ability to handle occasional packet loss without severe impact.
### 3. **Network Monitoring:**
- UDP is used in network monitoring tools and protocols, such as the Domain Name System ([DNS](DNS.md)) and Simple Network Management Protocol (SNMP).
### 4. **IoT Devices:**
- Internet of Things (IoT) devices may use UDP for lightweight communication, especially when reliability is not the primary concern.

## UDP Header
The UDP header includes the following fields:
- **Source and Destination Port Numbers:** Identify the source and destination applications on the devices.
- **Length:** Specifies the length of the UDP header and data.
- **Checksum:** Provides a simple error-checking mechanism for the UDP header and data.

## Comparison with [TCP](TCP.md)
- **Reliability:** UDP is unreliable and does not guarantee the delivery of data, while TCP provides reliable, connection-oriented communication.
- **Overhead:** UDP has lower overhead than [TCP](TCP.md) since it lacks features such as connection setup, acknowledgment, and flow control.
- **Use Cases:** UDP is suitable for real-time applications and scenarios where low latency is crucial, while [TCP](TCP.md) is preferred for applications requiring reliable data transfer.
