User Datagram Protocol (UDP) is a simple connectionless transport layer protocol, formally specified in IETF RFC 768.
In the TCP/IP model, UDP provides a simple interface between the network layer and the application layer. UDP only provides unreliable data transmission; once it sends the data from the application layer to the network layer, it does not keep a backup of the data (hence UDP is sometimes considered an unreliable datagram protocol). UDP adds only multiplexing and checksum fields in the IP datagram header.
The UDP header consists of four fields, two of which are optional. The 16-bit source port and destination port fields are used to identify the sending and receiving application processes. Since UDP does not require acknowledgment, the source port is optional; if not used, it is set to zero. Following the destination port is a fixed-length field in bytes that specifies the length of the UDP datagram, which has a minimum length of 8 bytes. The remaining 16 bits in the header are used for the checksum of the header and data portion, which is optional, but this functionality is generally used in practice.
Due to the lack of reliability and being a connectionless protocol, UDP applications generally must allow for a certain amount of packet loss, errors, and duplication. Some applications, such as TFTP, must implement basic reliability mechanisms at the application layer if needed. However, the vast majority of UDP applications do not require reliability mechanisms and may even experience reduced performance due to their introduction. Streaming media, real-time multimedia games, and VoIP are typical UDP applications. If an application requires high reliability, the Transmission Control Protocol (TCP) can be used instead of UDP.
Due to the lack of congestion control, network-based mechanisms are needed to mitigate congestion collapse effects caused by uncontrolled and high-speed UDP traffic. In other words, since UDP senders cannot detect congestion, network devices such as routers that utilize queueing and dropping techniques often become effective tools for reducing excessive UDP traffic. The Datagram Congestion Control Protocol (DCCP) is designed to reduce this potential problem by adding congestion control at the host level in high-rate UDP streams, such as those for streaming media.
Numerous key applications using the UDP protocol on typical networks are somewhat similar. These applications include the Domain Name System (DNS), Simple Network Management Protocol (SNMP), Dynamic Host Configuration Protocol (DHCP), Routing Information Protocol (RIP), and certain audio and video streaming services.
蘊藏許多助人的知識與智慧。