UDP stands for User Datagram Protocol.
It is a low level IP protocol that is used to send data packets from one machine to another.
The main concept behind UDP is to be lightweight and simple. To that end, it provides the following guarantees:
- Connectionless. You can use a UDP socket to send messages to whoever and wherever you want without explicitly opening a connection beforehand
- No acknowledgement of receipt. When you send a UDP packet, there is no guaranteed delivery for the packet, no acknowledgement mechanism and no retransmission mechanism
- No inherent ordering. Packets may be received on the other end in a different order than the way they were sent
- Datagrams sent are either received or lost as single units. You send messages over UDP and they must be small enough to fit a single packet over the network
- No flow control mechanisms. Congestion? You lose packets