RFC 4347: Datagram Transport Layer Security

2026-07-03

RFC: RFC 4347

Published: 2006

Authors: Eric Rescorla, Nagendra Modadugu

By 2006, TLS had already won the war for securing TCP connections. But an entire class of applications — voice, video, gaming, VPNs, and increasingly WebRTC — ran over UDP, and they were on their own. Developers who needed authenticated, encrypted datagrams either invented ad-hoc schemes (frequently broken) or tunneled UDP through TCP and paid brutal latency and head-of-line blocking costs. RFC 4347 introduced Datagram TLS (DTLS), a minimal set of surgical modifications to TLS that let it survive on a lossy, reordering, connectionless transport.

The elegant insight of Rescorla and Modadugu was: don't reinvent TLS, just patch the assumptions it makes about the underlying transport. TLS assumes three things that UDP violates:

The other novelty was the stateless cookie exchange to defeat denial-of-service amplification. In TLS-over-TCP, the three-way handshake proves the client owns its IP before the server allocates state. UDP has no such proof, so an attacker could forge source IPs and make the server generate expensive ServerHello + certificate replies aimed at victims. DTLS added an optional HelloVerifyRequest: the server returns a stateless cookie (an HMAC over the client's address), and the client must echo it back. Only then does the server allocate handshake state. QUIC's retry token mechanism is a direct descendant.

DTLS also had to give up one thing TLS took for granted: stream ciphers with implicit state. RC4-style ciphers can't tolerate packet loss, so DTLS 1.0 mandated block ciphers only, and later versions leaned hard into AEAD constructions like AES-GCM where each record is independently decryptable given the explicit sequence number as nonce input.

Why does this matter now, twenty years later? Because DTLS quietly became infrastructure:

DTLS 1.2 (RFC 6347) and DTLS 1.3 (RFC 9147) refined the design, but the fundamental architecture — TLS minus its transport assumptions, plus five specific patches — is entirely from RFC 4347. It's a masterclass in protocol design by constrained modification rather than clean-slate invention.

Why it matters: Every WebRTC call, most modern VPN data channels, and much of secure IoT depend on DTLS's surgical adaptation of TLS to unreliable transports.

All newsletters