RSystems

Networking

UDP

Also known as: User Datagram Protocol

UDP (User Datagram Protocol) is a connectionless transport protocol that sends datagrams without establishing a connection or guaranteeing delivery — trading reliability for speed and lower overhead.

Where TCP establishes a connection and ensures every byte arrives in order, UDP fires packets and moves on. There's no handshake, no acknowledgment, no retransmission of lost packets. If a packet is lost, it's gone.

This sounds like a flaw, but for many applications it's the correct trade-off. A VoIP call doesn't benefit from TCP retransmission — a retransmitted voice packet arriving 200ms late is worse than just dropping it and moving on. DNS lookups are a single small request and response; adding TCP handshake overhead doubles the latency. Video streaming can tolerate occasional dropped frames without perceptible quality loss.

Applications that use UDP: DNS, DHCP, VoIP (RTP), video streaming, online gaming, SNMP, NTP, RADIUS, TFTP.

UDP's simplicity also makes it the building block for protocols that implement their own reliability selectively. QUIC (the transport under HTTP/3) is built on UDP and adds connection establishment and reliability only where needed, achieving TCP's reliability with lower latency.

UDP has no flow control or congestion control, which is why volumetric DDoS attacks frequently use UDP — it's easy to flood a target with UDP packets from spoofed source addresses.