Domain Name Server Essay, Research Paper
The Domain System
Network software generally needs a 32-bit Internet address in order to open a connection or send a datagram. However users prefer to deal with computer names rather than numbers.
Thus there is a database that allows the software to look up a name and find the
corresponding number. When the Internet was small, this was easy. Each system would have a file
that listed all of the other systems, giving both their name and number. There are now too many
computers for this approach to be practical. Thus these files have been replaced by a set of name
servers that keep track of host names and the corresponding Internet addresses. (In fact these
servers are somewhat more general than that. This is just one kind of information stored in the
domain system.) Note that a set of interlocking servers are used, rather than a single central one.
There are now so many different institutions connected to the Internet that it would be impractical for
them to notify a central authority whenever they installed or moved a computer. Thus naming
authority is delegated to individual institutions. The name servers form a tree, corresponding to
institutional structure. The names themselves follow a similar structure. A typical example is the name
BORAX.LCS.MIT.EDU. This is a computer at the Laboratory for Computer Science (LCS) at
MIT. In order to find its Internet address, you might potentially have to consult 4 different servers.
First, you would ask a central server (called the root) where the EDU server is. EDU is a server that
keeps track of educational institutions. The root server would give you the names and Internet
addresses of several servers for EDU. (There are several servers at each level, to allow for the
possibly that one might be down.) You would then ask EDU where the server for MIT is. Again, it
would give you names and Internet addresses of several servers for MIT. Generally, not all of those
servers would be at MIT, to allow for the possibility of a general power failure at MIT. Then you
would ask MIT where the server for LCS is, and finally you would ask one of the LCS servers about
BORAX. The final result would be the Internet address
levels is referred to as a “domain”. The entire name, BORAX.LCS.MIT.EDU, is called a “domain
name”. (So are the names of the higher-level domains, such as LCS.MIT.EDU, MIT.EDU, and
EDU.)
Fortunately, you don’t really have to go through all of this most of the time. First of all, the root name
servers also happen to be the name servers for the top-level domains such as EDU. Thus a single
query to a root server will get you to MIT. Second, software generally remembers answers that it got
before. So once we look up a name at LCS.MIT.EDU, our software remembers where to find
servers for LCS.MIT.EDU, MIT.EDU, and EDU. It also remembers the translation of
BORAX.LCS.MIT.EDU. Each of these pieces of information has a “time to live” associated with it.
Typically this is a few days. After that, the information expires and has to be looked up again. This
allows institutions to change things.
The domain system is not limited to finding out Internet addresses. Each domain name is a node in a
database. The node can have records that define a number of different properties. Examples are
Internet address, computer type, and a list of services provided by a computer. A program can ask
for a specific piece of information, or all information about a given name. It is possible for a node in
the database to be marked as an “alias” (or nickname) for another node. It is also possible to use the
domain system to store information about users, mailing lists, or other objects.
There is an Internet standard defining the operation of these databases, as well as the protocols used
to make queries of them. Every network utility has to be able to make such queries, since this is now
the official way to evaluate host names. Generally utilities will talk to a server on their own system.
This server will take care of contacting the other servers for them. This keeps down the amount of
code that has to be in each application program.
The domain system is particularly important for handling computer mail. There are entry types to
define what computer handles mail for a given name, to specify where an individual is to receive mail,
and to define mailing lists.