How DNS Works

Published on: March 17, 2016 • Filed in: Tutorials • Tagged as:


Computer On DeskIn the world of the Internet, computers don’t really have names. They have IP addresses, like or 2001:4860:4860::8888. The problem with that is, people have a hard time remembering numbers, but we’re really good at remembering names. The solution is the Domain Name System, or DNS. DNS takes a domain name, like, and resolves (translates) it to an IP address, such as

So, what really happens when you type into your web browser and press enter?

Maybe I Already Know Who That Is

First things first, your web browser might already know where is located, because you may have visited it recently. If you have, your browser will cache (remember) the information for a certain period of time, so it doesn’t have to keep looking it up if you visit several different pages in a row. But the first time you visit a page, your web browser has no idea where is, so it starts the processes of trying to find out.

Let’s Ask Around

So your web browser tells your operating system, “I need to know where is.” It’s possible that your OS already knows, and will just tell your browser, but chances are, it doesn’t know either. What it does know is the address of a preferred DNS server, which is usually owned by your Internet service provider and assigned automatically. So, your operating system heads out to your DNS server to find out where is located.

Your DNS server handles requests from basically everyone in your area that all use the same Internet Service Provider that you do, so it’s much more likely that they might already know where is, and can answer straightaway. Still, it’s more likely that no one has looked it up recently enough, and the DNS server needs to find out, too.

Going to the Source

Your DNS server will now start working backwards; it needs to find out who manages the ‘.com’ domain names. Chances are, it already knows the answer to that, because someone else has recently looked up some other .com domain name, and it would have cached the information, but for the sake of this article, let’s say it doesn’t know and needs to find out.

Your DNS server now resorts to asking a root name server, of which there are only 13 in the world. These servers, named with the letters A – M, are located all over the world and are owned by many different organizations, including NASA, the University of Maryland, and the U.S. Army Research Lab, just to name a couple. Everybody knows where these 13 root servers are, so they can always fall back on them when everything else fails. Your DNS server tells one of the roots, “Hey, I need to know who manages .com addresses,” and the root server responds, “It’s Verisign.”

You DNS server now caches the information from the Verisign server, so that next time someone looks up a .com domain name, your DNS server won’t need to bother the root servers; after all, they are pretty busy, and it would make more sense to just remember and go directly there. It then heads over and asks the Verisign server, “Can you tell me who knows where is?” The Verisign server responds with “They are registered through this domain registrar.”

So, your DNS server now heads over to the domain registrar, and says, “I need to know the name servers (NS) of” The registrar responds with one of two or more servers that know where is actually located.

At last, we know who to ask. Your DNS server now makes direct contact with one of’s NS servers, and asks, “Where is located?” Our NS server replies, “It is located at, and it has a TTL of 14,400 seconds.” Your DNS server takes this information, and caches it so that the next time someone looks up, it can just tell it the answer of, and save a whole bunch of work.

Great, Now Everybody Knows

The only issue with this is that it’s possible that might move at some time in the future. That’s where the TTL, or Time To Live, comes in. So, for the next 14,400 seconds, or four hours, you can find at After that, it might change. So, when your DNS server caches the information for, it sets it to expire after the number of seconds specified in the TTL; once it expires in your DNS server’s cache, it will have to look up the information again.

Last, but not least, your DNS server returns the address of to your operating system (that caches the information for the same length of time), and your OS passes the information along to your web browser (which also caches the information), so that it can look up the website hosted there.

The most amazing thing is that, if everything happens as quickly as it should, all of this happens in about a tenth of a second. Now that’s fast.