Visual RFC.
ALL RFCs / RFC 9471
Read the RFC ↗
RFC 9471 / DNS REFERRAL GLUE

Set truncation when any required glue cannot fit

02

All available in-domain glue matters, even when some of it already fits.

RFC 9471 · § 3.1EXAMPLE
4 / 4
Set truncation when any required glue cannot fitAfter receiving a TC=1 UDP referral, the resolver follows SHOULD guidance and chooses another transport, TCP. The example retry has sufficient remaining room for both blocks; it does not guarantee transport or lookup success.Include all available in-domain glue or set TCResolverParent serverUDP referral · TC=1Chosen TCP retry · SHOULD use another transportThis chosen retry has 68 bytes of roomA 28 + AAAA 40 fitNo guarantee for every TCP responseRFC 9471 · chapter 2 · state 4 · fictional DNS example
04
Retry on another transport

The resolver follows the SHOULD guidance and chooses TCP. In this chosen retry, the larger remaining budget fits both blocks; no general success or unlimited-size promise is made.

Source for this drawing: RFC 9471 · Read RFC section 3.1 ↗

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

When generating a referral, a name server MUST include all available glue for in-domain name servers in the additional section, or MUST set TC=1 if message-size constraints prevent doing so (§3.1). “Some addresses were included” is not an exception.

  • When generating a referral, a name server MUST include all available glue for in-domain name servers in the additional section, or MUST set TC=1 if message-size constraints prevent doing so (§3.1). “Some addresses were included” is not an exception.
  • TC means Truncated. It is a flag in the DNS header, not a response-code value or an instruction to invent records. RFC 1035 §4.1.1 defines its position; the selected QR-only response flags change from hex 8000 to 8200 when TC is set. Setting TC is not an instruction to change unrelated header flags.
  • Our chosen remaining glue budget is measured after space for the question, authority records and other required content. The illustration supplies already-sized whole blocks: A costs 28 bytes and AAAA costs 40. These are model inputs, not universal encoded record sizes. At 68 both fit; at 50 the A block fits but the AAAA block does not.
  • A client receiving truncation SHOULD use another transport to retrieve the full response (§1). UDP-to-TCP retry is the example described in §3.1, not a guarantee that every retry succeeds or that TCP has unlimited space. The section reports a 65,535-byte TCP DNS-message limit and historical common UDP sizes; neither is our remaining-budget example.
  • Other extensions can also be required, including OPT, TSIG and SIG(0) when used (§1). This lesson does not free space by silently discarding required protocol material, split a supplied record block, or claim to implement message compression or general truncation policy.
DETAILS

Fictional DNS examples use documentation names and addresses. Record blocks and remaining budgets are schematic supplied costs, not a DNS wire encoder or a complete resolver.

Read the RFC section ↗

All chapters in RFC 9471

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 ↗