23 Comments
User's avatar
Rafa Páez's avatar

Great post, Neo. The visuals are highly helpful in understanding how this protocol works.

Just a minor detail I read at the end. DNS not only uses TPC. DNS primarily uses UDP (User Datagram Protocol) for most queries and responses due to its speed and low overhead. However, it also utilizes TCP for specific tasks like zone transfers, which require reliable and large data transfers.

Expand full comment
Neo Kim's avatar

thanks, Rafa. You're right. Just updated the article.

Expand full comment
Rafa Páez's avatar

You're welcome, Neo! Thank you for considering my input. 🙇

Expand full comment
Ilya Sudakov's avatar

Thank you very much for this concise article!

It’s important to remember that there can be numerous other caches between the Operating System Cache and the Resolver System Cache. For example, there’s an Internet Provider Cache. Google collaborates with providers and strategically places their cache near users to ensure instantaneous service loading.

Expand full comment
Neo Kim's avatar

sure, thank you.

Expand full comment
Raul Junco's avatar

Good article on this piece of tech for the 80s, still supporting our communications, Neo.

Adding: Tools that help us to query DNS records:

- dig

- nslookup

- host

Expand full comment
Neo Kim's avatar

thank you, Raul.

(Yes, good suggestions - I was having a lot of fun with DNS over the last 2 weeks.)

Expand full comment
TRÄW🤟's avatar

Great Read Neo.

Expand full comment
Harshit Gangwar's avatar

very crisp explaination!

Expand full comment
Neo Kim's avatar

thanks Harshit

Expand full comment
Shalini's avatar

Great article! Simple to digest. Can you give us an idea of the scale of requests and latency that these root servers typically deal with? If there are just 13 in the world, I'm curious as to what sort of mechanisms are in place to ensure they don't get overwhelmed.

Expand full comment
Neo Kim's avatar

hey Shalini, good question! I should've instead written, '13 root server clusters'.

Here are some ways the root servers scale:

- they have replicas: 1,936 root server instances across the world

- they route the requests to the closest available server (via anycast routing)

- caching values at different client levels before the root server reduces the traffic

I found a site to track root servers: https://root-servers.org/

The client request uses UDP for low overhead and fast response. Hope it helps!

Expand full comment
Shalini's avatar

Thank you so much Neo!

Expand full comment
Daniel Moka's avatar

What an excellent breakdown, keep these coming my friend Neo!

Expand full comment
Neo Kim's avatar

thank you so much, Daniel

Expand full comment
Logan Thorneloe's avatar

As others have said, I love how concise this is. What did you use to create the visuals?

Expand full comment
Neo Kim's avatar

thanks, Logan. I use Eraser for the block diagrams. (They let you save the diagrams.)

Expand full comment
Logan Thorneloe's avatar

Thanks.

Expand full comment
Jirka's avatar

I dont understand which server act as DNS from the article. Is it the resolver server/root server/authoritative name server? Or is it all together? Sorry, I dont understand when the DNS server actually play the role in the diagram...

Expand full comment
Rushikesh Mahajan's avatar

great article @neo kim

Expand full comment
Karansinh Rathod's avatar

Hey this is really great. Thank you.

Also I have reffered this to 3 of my friends and they also did sign up for newsletter.

Can you tell me how do I get the Common Interview Questions file. Thanks

Expand full comment
Neo Kim's avatar

hey, can you reply to one of my 'emails' and write the same question there? thanks

Expand full comment
Ankit Chandra's avatar

Great post! can you tell how these DNS servers are secured like using DNSSEC?

Expand full comment