UDP sends and receives datagrams for applications. Unlike TCP, UDP is unreliable. There is no guarentee that the datagram will ever reach the destination. This in itself has advantages, one being that UDP can be considerably faster then TCP.
TCP, Transmission Control Protocol is a layer 4 service that is allows reliable transmission of data, that is, unlike UDP, host-A awaits for confirmination from host-B that the data that has been sent, was successfully received. It will also guarantee that packets will be received in the same order that they where sent.
TCP is more reliable then UDP, but slower.
(quoted from my website)
A number of applications use UDP because of its efficiency, such as (optionally) NFS. Example, One end sends sends 100 packets, each associated with one block of a file. It will sequence them, and include a checksum. These are validated by the receiver, which only needs to tell the sender to resend those that have a bad checksum, or that are missing. This is basically what tcp does, but tcp also requires an ack of each packet whereas udp does not. As a result, on a clean connection (such as a lan with good ethernet switches), you get much better throughput with udp than tcp. For WAN applications, tcp is a much better choice in my experience. So, if an application can choose or be configured to use either UDP or TCP, then select UDP for high performance LAN applications, and TCP for WAN applications.