The Domain Name System (DNS) helps users to find their way around the Internet. Every computer on the Internet has a unique address - just like a telephone number - which is a rather complicated string of numbers. It is called its "IP address" (IP stands for "Internet Protocol").
But it is hard to remember everyone's IP address. The DNS makes it easier by allowing a familiar string of letters (the "domain name") to be used instead of the arcane IP address. So instead of typing 184.108.40.206, you can type www.CowboyFrank.net. It is a "mnemonic" device that makes addresses easier to remember.
The Internet doesn't really understand domain names, it only understands IP addresses. Therefore we must translate a domain name into it's respective IP address. Translating the domain name into an IP address is called "resolving the domain name." The goal of the DNS is for any Internet user any place in the world to reach a specific website IP address by entering its domain name. Domain names are also used for reaching e-mail addresses and for other Internet applications.
Think of the phone system . . . when you dial a number, it rings at a particular location because there is a central numbering plan that ensures that each telephone number is unique. The DNS works in a similar way. If telephone numbers or domain names were not globally unique, phone calls or e-mail intended for one person might go to someone else with the same number or domain name. Without uniqueness, both systems would be unpredictable and therefore unreliable.
Ensuring predictable results from any place on the Internet is called "universal resolvability." It is a critical design feature of the DNS, one that makes the Internet the helpful, global resource that it is today. Without it, the same domain name might map to different Internet locations under different circumstances, which would only cause confusion.
When you send an e-mail to your Aunt Sally, do you care who receives it?
Do you care if it goes to your Uncle Juan instead? Wait a minute...do you have an Uncle Juan? Then whose Uncle Juan received it? Do you care if it reaches Aunt Sally if you send it from work but my Uncle Juan if you send it from home?
Of course you care who receives it . . . that's why you wrote it in the first place. Whether you're doing business or sending personal correspondence, you want to be certain that your message gets to the intended addressee.
If at any point the DNS must make a choice between two identical domain names with different IP addresses, the DNS would not function. It would not know how to resolve the domain name. When a DNS computer queries another computer and asks, "are you the intended recipient of this message?", "yes" and "no" are acceptable answers, but "maybe" is not.
This is where ICANN comes in . . . ICANN is responsible for managing and coordinating the DNS to ensure universal resolvability.
ICANN is the global, non-profit, private-sector coordinating body acting in the public interest. ICANN ensures that the DNS continues to function effectively - by overseeing the distribution of unique numeric IP addresses and domain names. Among its other responsibilities, ICANN oversees the processes and systems that ensure that each domain name maps to the correct IP address.
Behind the scenes, the story becomes a little more complicated.
In an Internet address (such as CowboyFrank.net) the .net part is known as a Top Level Domain, or TLD. So-called "TLD registry" organizations house online databases that contain information about the domain names in that TLD. The .net registry database, for example, contains the Internet whereabouts (or IP address) of CowboyFrank.net. So in trying to find the Internet address of CowboyFrank.net your computer must first find the .net registry database. How is this done?
At the heart of the DNS are 13 special computers, called root servers. They are coordinated by ICANN and are distributed around the world. All 13 contain the same vital information - this is to spread the workload and back each other up.
Why are these root servers so important? The root servers contain the IP addresses of all the TLD registries - both the global registries such as .com, .org, etc. and the 244 country-specific registries such as .fr (France), .cn (China), etc. This is critical information. If the information is not 100% correct or if it is ambiguous, it might not be possible to locate a key registry on the Internet. In DNS parlance, the information must be unique and authentic. Let us look at how this information is used.
Scattered across the Internet are thousands of computers - called "Domain Name Resolvers" or just plain "resolvers" - that routinely cache the information they receive from queries to the root servers. These resolvers are located strategically with Internet Service Providers (ISPs) or institutional networks. They are used to respond to a user's request to resolve a domain name - that is, to find the corresponding IP address.
So what happens to a user's request to reach our familiar friend at CowboyFrank.net? The request is forwarded to a local resolver. The resolver splits the request into its component parts. It knows where to find the .net registry (remember, it had copied that information from a root server beforehand) so it forwards the request over to the .net registry to find the IP address of CowboyFrank.net. This answer is forwarded back to the user's computer. Now your computer knows the correct IP address and the original requested web page can be retrieved. And we're done. It's that simple! The domain name CowboyFrank.net has been "resolved"!
Why do we need the resolvers? Why not use the root servers directly? After all, they contain essentially the same information. The answer is for reasons of performance. The root servers could not handle hundreds of billions of requests a day! It would slow users down.
If you are still with the story, you are already wondering about more complicated names with more parts such as www.CowboyFrank.net. Well, the DNS is a hierarchical system. First, the resolver finds the IP address for the .net registry, queries that registry to find the IP address for CowboyFrank.net, then queries a local computer at that address to find the final IP address for www.CowboyFrank.net. Just what you would expect.
It is important to remember the central and critical role played by the root servers that store information about the unique, authoritative root. Confusion would result if there were two TLDs with the same name: which one did the user intend? The beauty of the Internet architecture is that it ensures there is a unique, authoritative root, so that there is no chance of ambiguity.
A fairly extensive list of Dynamic DNS services can be found at http://dnslookup.me/dynamic-dns/. Don't assume the prices on this site are current, like me, he doesn't have a lot of time to keep lists up to date. You must check out the individual services for pricing and packages.