Visual RFC.
ALL RFCs / RFC 9250
Read the RFC ↗
RFC 9250 / MECHANISMS

Balance early data, padding and privacy

05

Session resumption may permit zero-round-trip(0-RTT) data: a client sends before this handshake finishes. Replay and linkability risks remain even though the transport is encrypted.

RFC 9250 · § 4.5EXAMPLE
4 / 4
04
Make reuse a privacy decision.

Connection reuse amortizes setup, but a long connection or resumption can link activity. On a connectivity change, the default recommendation is to start a new session and avoid resumption.

Balance early data, padding and privacyConnection reuse amortizes setup, but a long connection or resumption can link activity. On a connectivity change, the default recommendation is to start a new session and avoid resumption.Connectivity changes: default to a new sessionreuse: many transactionsWi-Fi → cellular: connectivity changesDefault SHOULD: start a new sessionDefault SHOULD NOT: resume across the changePersistent sessions and tickets can link activity

Source for this drawing: RFC 9250 · Read RFC section 4.5 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

What changed
RFC9250 §7.5 as publishedVerified erratum7883 · §5.4 unchanged

The final traffic-analysis paragraph must say MUST use padding, not SHOULD. This aligns it with the existing normative requirement in§5.4; it is a verified correction to this immutable RFC.

Read the updated RFC section ↗
KEY POINT

Faster reuse and encrypted payloads do not make DNS activity anonymous.

  • Resumption and0-RTT are optional. Only QUERY and NOTIFY are replayable opcodes under this RFC; clients MUST NOT send any other opcode in 0-RTT. NOTIFY is deliberately included; AppendixA explains its bounded replay effects.
  • A server supporting0-RTT MUST NOT immediately process a non-replayable early transaction. It MUST queue it until handshake completion, or return REFUSED with Extended DNS Error(EDE)26(Too Early), or close with DOQ_PROTOCOL_ERROR.
  • Implementations MUST mitigate traffic analysis with padding(§5.4 and verified erratum7883 correcting§7.5). If QUIC offers padding-policy APIs, DoQ SHOULD use them to align packet lengths to a small fixed size set. If packet padding is unavailable or unused, every DNS query/response MUST be padded to a small fixed size set using EDNS Padding.
  • Clients SHOULD use resumption tickets once and by default SHOULD NOT resume after connectivity changes. Address-validation tokens SHOULD only accompany resumption. By default, clients SHOULD prioritize privacy and start new sessions when connectivity changes.
  • Connections SHOULD be reused and their idle timeouts negotiated, with values chosen for available resources; DoQ specifies no universal timeout value. Clients and servers MUST NOT send the TCP-specific edns-tcp-keepalive option on DoQ.
DETAILS

The128-byte padded DNS query is a chosen example, not a mandated padding block size. Resolver visibility, observable timing/lengths, resumption linkability and replay risk remain. Padding mitigates inference; it does not promise anonymity or hide that traffic is DNS.

Read the RFC section ↗

All chapters in RFC 9250

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗