The User Datagram Protocol (UDP protocol) is a very basic and simple protocol on
top of the IP protocol. It was developed to allow for very simple data
transmission without any error detection of any kind, and it is stateless.
However, it is very well fit for query/response kind of applications, such as
for example DNS, et cetera, since we know that unless we get a reply from the
DNS server, the query was lost somewhere. Sometimes it may also be worth using
the UDP protocol instead of TCP, such as when we want only error/loss detection
but don't care about sequencing of the packets. This removes some overhead that
comes from the TCP protocol. We may also do the other thing around, make our own
protocol on top of UDP that only contains sequencing, but no error or loss
detection.
The UDP protocol is specified in RFC 768 - User Datagram Protocol. It is a very short and brief RFC, which fits a
simple protocol like this very well.