markdown guide

If you're familiar with a modern smart phone with a "contact list" or "phone book", ask yourself when the last time you've had to recall the actual digits of the phone number are for a friend/family member. Hardly? If ever?

The Internet is made up of IP (Internet Protocol) addresses, the phone numbers of the internet -- an address is simply the location representing an entity and/or resource. It's hard to remember compared to your friend's name or the URL of a site, like Dev.to whose IP from where I am, resolves to That would be difficult to remember each time I wanted to visit this site.

A DNS aka domain name service, provides translation of the URL (top-level domain) to an IP address in a decentralized, semi-federated, fashion that provides essentially a map to take what we can remember and translate it to something that we don't (the actual IP address)


Perhaps even more critically...

Take that contact book and distribute it in a hierarchical fashion: if it's not in your contact-book, your contact-manager app contacts an upstream contact-book to see if it either knows the number or knows "somebody" how knows - or can find out - the person's phone number for you.

...Though that starts bleeding dangerously into "explain LDAP like I'm 5" territory.


Suppose you're a kid and looking for your mom. Your mom has her real name (ip address), but you ask everyone in the room, where's "my mom" (DNS name).

The people in the room (DNS services) realize who you're looking for, and point you in the direction of mom.


When you type an address like google.com into your web browser, DNS helps to make everything show up by pointing your browser to the right computer. DNS stands for Domain Name System and is a basically a big book of nicknames for computers. Normally, computers have really long names and also they're not in English. They look like or 2606:2800:220:1:248:1893:25c8:1946 and are very hard to type. DNS has the long computer names next to nicknames so you can go to a computer by typing the nickname. Don't worry, you won't have to look up the computer names yourself. Everything happens automatically so you can just type nicknames to go places on the internet.


In Germany there is a lovely Education TV show called "Die Sendung mit der Maus" (The show with the mouse). They adreess preschoolers and explained the DNS quite early in the years of the internet. youtube.com/watch?v=Xs7T1QAe-8E

sadly its in german, but you can let the video autotranslate.


TCP/IP doesn't know URLs like dev.to it knows IP addresses. DNS servers translate names to address using DNS queries. Before anything happens at TCP layer, the DNS query must return the address. Udp Port 53 is used to send the query as a broadcast, meaning any listening server can reply. There are two types of replies, Definitive for the Domain, and just a reply. The first is saying 'this response is good', the other is saying 'I had this cached'. Definitive replies always win. These days most network failures are caused by DNS server issues. DNS works closely with DHCP for dynamic address assignments using lease agreements. This could become history with IP version 6, as it's address space is massive.

DNS servers are critical in the communications world, but are usually configured with more than one server. This plus the non-definitive replies make it robust.

If you use Wireshark you will always see the DNS work happen before anything else.


"Hey DEV place this comment under the article entitled - 'Explain DNS Like I'm Five' by Ben Halpern ". DEV figures out the id of this article with such a title in its database and places this comment under it. Likewise, on the web when I search for google.com, DNS looks up the IP of such a domain in its database and presents google.com to you.


I often refer people to this illustrated comic created by the good folks at DNSimple.

How DNS Works


Domain Name System service is like dialing 0 for operator and telling them you're looking for Johnny and now the problem is in their hands to figure out who Johnny is, assuming there's only one Johnny in the system.

As far as the user is concerned, they were looking for Johnny and they get Johnny on the line even if they don't know how to directly contact Johnny.


Phone numbers are hard to remember. So, I write down eveybody's name next to their phone number so I can look te number up by their name when I need to call them.


I discuss DNS here: dev.to/digianpaul/practical-dns-14ki

It is more deep than an ELI5 but it might be useful.


It’s a protocol between servers and routers that tell your computer under which IP is the server with information that you are looking for when you type the name of host or website.