The User Datagram Protocol (UDP) is one of the core members of the Internet protocol suite.

UDP uses a simple connectionless transmission model with a minimum of protocol mechanism. It has no handshaking dialogues, and thus exposes the user’s program to any unreliability of the underlying network protocol. There is no guarantee of delivery, ordering, or duplicate protection.

UDP is suitable for purposes where error checking and correction is either not necessary or is performed in the application, avoiding the overhead of such processing at the network interface level.

In contrast to TCP, UDP is:

  • Unreliable – When a UDP message is sent, it cannot be known if it will reach its destination; it could get lost along the way.
  • Not ordered – If two messages are sent to the same recipient, the order in which they arrive cannot be predicted.
  • Lightweight – There is no ordering of messages, no tracking connections
  • and has no congestion control – UDP itself does not avoid congestion. Congestion control measures must be implemented at the application level.