Domain Name System (DNS)
• To avoid the need to carry around Rolodexes full of IP addresses, the designers of the Internet invented the Domain Name System (DNS).
• DNS associates hostnames that humans can remember (like hermes.oit.unc.edu) with IP addresses that computers can remember (such as 18.104.22.168). Most hosts have at least one hostname. An exception is made for computers that don't have a permanent IP address (like many PCs); since these computers don't have a permanent address, they can't be used as servers and therefore don't need a name, since nobody will need to refer to them.
• Every computer connected to the Internet should have access to a machine called a domain name server.
• Unix box running special DNS software that knows the mappings between different hostnames and IP addresses.
• Most domain name servers know the addresses of only the hosts on their local network, plus the addresses of a few domain name servers at other sites. If a client asks for the address of a machine outside the local domain, then the local domain name server asks a domain name server at the remote location and relays the answer to the requester.
• Some machines have multiple names. For instance, www.oreilly.com and helio.ora.com are really the same SPARCstation in California. The name www.oreilly.com really refers to a web site rather than a particular machine. In the past, when this web site has moved from one machine to another, the name has been reassigned to the new machine so that it always points to the site's current server. This way, URLs around the Web don't need to be updated just because the site has moved to a new host. Some common names like www and news are often aliases for the machines providing those services. For example, news.cloud9.net is an alias for my ISP's news server. Since the server may change over time, the alias can move with the service.
• On occasion, one name maps to multiple IP addresses. It is then the responsibility of the DNS server to randomly choose machines to respond to each request. This feature is most frequently used for very high traffic web sites, where it splits the load across multiple systems.