--- 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.