41 lines
2.8 KiB
Markdown
41 lines
2.8 KiB
Markdown
---
|
|
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](Internet%20Protocol.md) (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.
|