UDP is the connectionless transport protocol in the TCP/IP protocol stack. UDP is a simple protocol that exchanges datagrams without guaranteed delivery. It relies on higher-layer protocols to handle errors and retransmit data.

Features of UDP:

  • Provides connectionless, unreliable service.
  • So UDP faster than TCP.
  • Adds only checksum and process-to-process addressing to IP.
  • Used for DNS and NFS.
  • Used when socket is opened in datagram mode.
  • It sends bulk quantity of packets.
  • No acknowledgment.
  • Good for video streaming it is an unreliable protocol.
  • It does not care about the delivery of the packets or the sequence of delivery.
  • No flow control /congestion control, sender can overrun receiver's buffer.
  • Real time application like video conferencing needs (Because it is faster).
  • An UDP datagram is used in Network File Systems (NFS), DNS, SNMP, TFTP, etc.
  • It has no handshaking or flow control.
  • It not even has windowing capability.
  • It is a fire and forget type protocol.
  • An application can use a UDP port number and another application can use the same port number for a TCP session from the same IP address.
  • UDP and IP are on different levels of the OSI stack and correspond to other protocols like TCP and ICMP.
  • No connection establishment tear down; data is just sent right away.
  • For data transfer with UDP a lock-step protocol is required (to be implemented by the application).
  • No error control; corrupted data is not retransmitted (even though UDP header has a checksum to detect errors and report these to the application).