Set truncation when any required glue cannot fit
02All available in-domain glue matters, even when some of it already fits.
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 ↗
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.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
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.
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 ↗