Another vital aspect in reaching the goal of worldwide sharing and
commerce is a way to name people, locations, and objects. These names must
be unique and there must exist services which allow you to find an object
given a name and register objects with new names. This is handled in two
levels, the lower level is handled by the IP addressing scheme, which was
discussed in the last section. The upper level is handled by the Domain
Naming Scheme (DNS), which is the main discussion of this section.
We human beings can be identified in many ways. For example, we can be
identified by the names that appear on our birth certificates, social
security numbers and driver's license numbers. Although each of these
identifiers can be used to identify people, within a given context one
identifier may be more appropriate than another. For example, the computers
at the Internal Revenue Service prefer to use fixed-length social security
numbers rather than birth-certificate names. On the other hand, ordinary people
prefer the more mnemonic birth-certificate names rather than social security
numbers.
Just as humans can be identified in many ways, so can computers. One
identifier for a computer is its hostname. Hostnames, such as www.yahoo.com,
are mnemonic and are therefore appreciated by humans. As we learned in the
previous section, a computer can also be referred to with an IP address.
Just as humans can be identified in many ways, so can computers.
|
Of course, this idea of naming introduces some problems. For one thing, you have to make sure that no two computers that are connected to the Internet have the same name. You also have to provide a way to convert names into numeric addresses.
In the beginning, when the Internet was still relatively small, dealing with names was easy. An agency called the Network Information Center (NIC) set up a registry. You could submit a form electronically containing you hostname and related IP addr
ess. The NIC would add this to a file of names and addresses, called the hosts file, and distribute it regularly to every machine on the network. your computer would then use the hosts file to lookup a name and find the corresponding IP address. We do the
same thing whenever we look someone up in the telephone book.
Unfortunately, as the Internet grew, so did the size of this file. There were significant delays in getting your name registered, and it became difficult to find names that weren't already used. Also, too much network time was spent distributing th
is large file to every machine contained in it. It was obvious that a distributed, online system was required to cope with the rate of change. This system is called the Domain Name System or DNS.
The Domain Name System is a method to administer names by giving different groups responsibility for subsets of names. Each level in this system is called a domain. The domains are separated by periods:
ux.cs.gmu.edu
nic.ddn.mil
yahoo.com
In the first example above (ux.cs.gmu.edu), ux is the name of a host, a real computer with an IP address. The name for the computer is created and maintained by the cs group, which in this case is the department where the computer resides. The cs d
epartment is part of the George Mason University (gmu) which, is a part of the national group of educational institutions (edu).
The Domain Name System is a method to administer
names by giving different groups responsibility for subsets of
names.
|
Each group can create or change whatever lies within it. If gmu decided to create another group called ae (ae.gmu.edu), it could do so without asking anyone's permission. All it has to do is add the new names to its part of the worldwide database.
Similarly, cs could purchase a new computer, assign it a unique department name, and add it to the network without asking anyone's permission. If every group from cs on down plays by the same rules and makes sure that the names it assigns are unique withi
n its local domain, then no two systems anywhere on the Internet will have the same name. For example, you could have two machines named Bill, but only if they are in different domains (for example, bill.cs.gmu.edu and bill.ddn.mil).
Now you know how domains relate to each other and how a name gets created but, how do you use this system. When you use a name like ux.cs.gmu.edu, the computer needs to turn it into an IP address. To do so, it starts asking DNS servers for help, st
arting at the right end of the name and working left. First it asks the local DNS servers to look up the address. At this point there are three possibilities:
1) The local server knows the address, because the address is in the local server's part of the worldwide database. For example, if you're in the computer science department of George Mason University, your local server probably has information abo
ut all the computers in your department.
2) The local server knows the address because someone else has asked for the address recently. Whenever you ask for an address, the DNS server keeps it on hand for a while. This makes the system a lot more efficient.
3) The local server doesn't know the address, but it knows how to find it.
So, how does the local server find it? Its software knows how to contact a root server. This is the server that knows the address of the name servers for the highest level (edu). It asks the root server for the address of the computer responsible f
or the edu zone. Having this information, it contacts the server and requests the address of the server for cs. Finally, it contacts that machine and gets the address of ux, the host that was the target of the application.
[
|
|
]
|