UDP stands for User Datagram Protocol. It is a message-oriented communication protocol, used for communication channels and data paths. UDP uses a connectionless communication model with a minimum of initializing protocol mechanisms. The protocol is used extensively in applications requiring low-latency and loss tolerating connections, where the loss of some data isn’t much of a concern.
The protocol is implemented on top of the IP (Internet Protocol), and is collectively called the UDP/IP Network Stack. UDP disowns certain features offered by other similar protocols, such as Handshaking(TLS/SSL) for initializing a connection, no acknowledgment for transmission progress, Data restructuring, etc. in order to offer a fast communication even on low bandwidth networks. Due to these characteristics of UDP it is implemented in VoIP, Web Streaming, Broadcasting, Gaming, etc.
- Connection: Is connectionless protocol, therefore no Handshake is required to estabilish the connection
- No Acknowlegement: Data is sent unilaterally by the sender, and therefore no interaction of the recipient system is required (ex. sending acknowlegement about the recieved packets isn’t required).
- Less Overhead: Since no connection is required to estabilish the protocol, there are no ongoing connections to maintain. Which leads to less overhead.
- Orderless: The data may not arrive in order.
- Speed: Faster then other protocols of the same nature and requires fewer resources to function efficiently.
- Has a small header size of 8 bytes, due to which fewer data has to be transmitted
- Does not require a handshake before transmission of data
- Has no policy for intact data transfers, therefore lost packets are not re-sent hence reducing the congestion of recurrent requests
- UDP could be broadcast or multicast, so it allows a one-to-many protocol to exist
- Does not require an acknowledgment as a receipt for the data sent
- Does not provide any compensation for lost packets
- Does not offer any significant error detection mechanism, due to which the received data could be errornous
- Does out of order delivery of data, due to which data has to be rearranged at the receiving end (which further requires some computation)
- Does not delay transmission if the network is congested, which could lead to packet loss or delay in delivery of the packet.