Visual RFC.
ALL RFCs / RFC 4343
Read the RFC ↗
RFC 4343 / DNS NAME COMPARISON

Resolve compression before applying the name rule

04

A DNS message can shorten a name by pointing to an earlier occurrence. A case-insensitive name match can reuse earlier label bytes whose capitalization differs from the name being written.

RFC 4343 · § 4.1EXAMPLE
3 / 3
Resolve compression before applying the name ruleUncompressed Lab.Example preserves its selected spelling. Separate synthetic message has lowercase lab.example at offset12, then c00c backward pointer to it. Resolving pointer yields lowercase name that still compares equal to mixed case; compression may change output spelling. Twelve header placeholders, not a complete real query; no complete DNS validation claim.Same DNS name after pointer resolutionResolved: lab.example.Compared with: Lab.Example.ASCII-equivalent namesOutput spelling can changeLookup equality stays the sameCompression qualifies output preservation
03
Compare the resolved name, not the pointer octets.

The pointer resolves to lab.example., which compares equal to Lab.Example. Compression has changed this output spelling, not the DNS name being looked up.

Source for this drawing: RFC 4343 · Read RFC section 4.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

Compression can change observed output case while preserving DNS lookup equality.

  • Uncompressed output does not case-fold the labels being written. The output-preservation rule is qualified when indirect labels optimize the message.
  • A compression pointer refers to a name elsewhere in the same DNS message. Resolve that name, then apply the original-label comparison rules. The pointer bytes themselves are not ASCII letters to fold.
  • The worked pointer c00c refers to byte offset 12. In this fixture the earlier name is lab.example.; reusing it can produce lowercase output even when the name being optimized is Lab.Example.
DETAILS

The fixture has a twelve-byte placeholder DNS header, not a complete real query. The bounded decoder handles ordinary labels and backward compression pointers, with local traversal limits; it is not a full DNS-message validator. Output case is not a separate identity or an authentication signal.

Read the RFC section ↗

All chapters in RFC 4343

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 ↗