What is DNS?
Lots of people have to setup their computer to have a DNS server or see it mentioned, but they don't know what these mysterious numbers mean or what that term means.
Well the Internet uses a network protocol that goes by the catchy name of TCP/IP.
TCP/IP stands for:
- TCP means Transmission Control Protocol
- IP means Internet Protocol.
Basically that jargon just means that this is an agreed upon standard way of talking from one computer to the next.
This network protocol (and most of network protocols), use a unique address for every computer that is on the network. Think of this like your home address or phone number, it is a way for one computer to identify and talk to another. That is what those 4 number pairs with periods are (like 192.168.0.1); just a unique address for every computer on the Internet.
It is fine for computers and some geeks to talk with those spiffy Internet addresses, but most humans prefer a far more readable way to identify where to go. Something catchy, like "http://www.iGeek.com". Well that's where DNS comes in.
Networks only understands addresses, and humans want a name to talk to another machine (or website) by name (or something more understandable than a bunch of number), we need a program that can lookup the name and translate it to the address. Think of this like telephone directory information (4-1-1) or the white pages; you give the DNS server a name, and it returns the address of the machine; and that's what DNS means, a server that looks up the name of a domain (site/server).
So when you connect a computer to the Internet, it needs to know the address of a DNS server (the location of a machine that will be the equivalent of 4-1-1 for the computer). Whenever you type a site name, your machine goes to that DNS server, and looks up the address of that site (by name), and then uses that address. It is actually pretty simple.
Now, technically it is just a little more complex than that. There isn't just one master name server (like 4-1-1), there are many. And there is a bit of a hierarchy to them. Your machine just starts at your local server, the address(es) you give it, and then it can go out from there, trying others until it finds what it wants.
So when you type in a name, it looks locally (the DNS server you gave it) for that name first, then if it can't find it, your server knows the addresses of other servers to try; and those servers know others as well. Eventually, when you type in a name, it can figure out what server knows how to resolve that name, and then gets what address it is suppose to go to.
When you create a new website (that has its own name) for the Internet, you go to a registry service (like Network Solutions; http://www.netsol.com), and you register that new name, and tell it what the address of that site/name will be. (Or actually, you tell it the address of the DNS server that knows what the address of the site will be. This means that all the other servers don't have to know what the address of your site is directly, just where to go to get that information). Then the name and address of that server will be sent to all the other DNS servers in the world, so they know where to go to resolve that name with that address (the server you told them to go to).
The reason for that extra layer (you register the DNS server for a name, and not the address of the site/name itself), is so that it is easier to maintain. That extra step means that you can change the address of your site on the DNS server you registered (that you have control over), and that change will get propagated everywhere, quickly; without you having to go to a master (root) name server (like network solutions) and asking them to change it for you, and then waiting for everyone to get that update.
So name servers, and the entire Internet, are interconnected web of information. And the basics of DNS is just that it is a way for your computer to lookup names and translate them to IP addresses, and a way for you to register the name-addresses so that everyone else can find your address by name.