Visual RFC.
ALL RFCs / RFC 7828
Read the RFC ↗
RFC 7828 / SIGNAL DNS IDLE TIME

Drain outstanding replies when zero is signalled

04

TIMEOUT zero requests prompt closure. A client should stop adding queries while allowing outstanding responses to finish; missing option support has a different meaning.

RFC 7828 · § 3.2.2EXAMPLE
4 / 4
Drain outstanding replies when zero is signalledA response on C1 signals zero while two other responses A and B remain outstanding. The example client stops new queries, receives A leaving one outstanding, then receives B and initiates close with zero outstanding. A separate missing-option response after a keepalive request triggers base RFC 7766 guidance even after a previous nonzero advertisement; missing option is not a zero field. This chosen drain sequence assumes the connection remains available.Separate exchange · option unsupportedEarlier nonzero keepalive succeededThis query requested keepaliveThis response has NO keepalive optionAssume unsupported (SHOULD)use base DNS TCP guidanceOld advertisement not silently retainedMissing option is different from TIMEOUT 0
04
Treat a missing option as lack of support.

Separate exchange: the query asked for keepalive, but the response omits it. Even after an earlier nonzero signal, the client follows base DNS-over-TCP guidance instead of silently retaining that old advertisement.

Source for this drawing: RFC 7828 · Read RFC section 3.2.2 ↗

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.

KEY POINT

Zero asks for closure; missing support uses base TCP guidance.

  • A client receiving TIMEOUT 0 SHOULD send no more queries on that connection and initiate closing as soon as all outstanding responses have arrived.
  • A server SHOULD send zero when resources are too low for more keepalive sessions or it wants open connections closed. Either endpoint MAY close at any time to manage its own resources.
  • If the client requested keepalive but the response lacks it, the client SHOULD assume the server does not support the option and follow RFC 7766. This also applies after an earlier successful keepalive exchange on the same connection.
DETAILS

The drain sequence assumes the connection remains available for the outstanding responses; it is not a guarantee against interruption. RFC 7766 recommends retrying unanswered queries after closure and specifies no retry algorithm. A missing option is not encoded TIMEOUT zero, and does not by itself require rejecting the DNS answer. The separate fallback example has no prior zero-close request.

Read the RFC section ↗

All chapters in RFC 7828

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 ↗