Protocol in Code · Track

DNS

recursive resolution as a bounded loop with a cache in front

8 sessions Course material (English)

Sessions

DNS track sessions

Session 01

A Query Is a Question Object

What is a DNS query made of, and when are two lookups actually the same lookup?

Open Session 01
Session 02

The Resolver Walks Down the Tree

How does a resolver get from the root to an answer, and what does each hop actually decide?

Open Session 02
Session 03

Delegation Is a Referral, Not an Answer

When a server responds, how does the resolver decide whether it just got an answer, a hand-off, or a dead end?

Open Session 03
Session 04

The Cache Answers First

Why do most DNS queries never leave the resolver, and what exactly decides hit versus miss?

Open Session 04
Session 05

TTL Is a Clock, Not a Config

If a record says TTL 300, what number does a client actually receive two minutes later, and who removes the entry when it hits zero?

Open Session 05
Session 06

CNAME Restarts the Question

A CNAME is not an A record. How does asking for an A record still end at one, and what stops the chain from running forever?

Open Session 06
Session 07

Failure Has Flavors

NXDOMAIN, SERVFAIL, and a timeout all mean "no IP address". Why does a resolver treat one as an answer and the others as reasons to try again?

Open Session 07
Session 08

Build the Toy Resolver Loop

What does the smallest readable resolver look like when validation, cache, tree walk, and CNAME restart are connected in one loop?

Open Session 08