Domain System Network software generally needs a 32-bit Internet address inorder to open a connection or send a datagram. However users prefer to deal withcomputer names rather than numbers. Thus there is a database that allows thesoftware to look up a name and find the corresponding number. When the Internetwas small, this was easy. Each system would have a file that listed all of theother systems, giving both their name and number.

There are now too manycomputers for this approach to be practical. Thus these files have been replacedby a set of name servers that keep track of host names and the correspondingInternet 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 aset of interlocking servers are used, rather than a single central one.

Thereare now so many different institutions connected to the Internet that it wouldbe impractical for them to notify a central authority whenever they installed ormoved a computer. Thus naming authority is delegated to individual institutions.The name servers form a tree, corresponding to institutional structure. Thenames themselves follow a similar structure.

A typical example is the nameBORAX.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 toconsult 4 different servers.

First, you would ask a central server (called theroot) where the EDU server is. EDU is a server that keeps track of educationalinstitutions. The root server would give you the names and Internet addresses ofseveral servers for EDU. (There are several servers at each level, to allow forthe possibly that one might be down.) You would then ask EDU where the serverfor MIT is.

Again, it would give you names and Internet addresses of severalservers for MIT. Generally, not all of those servers would be at MIT, to allowfor the possibility of a general power failure at MIT. Then you would ask MITwhere the server for LCS is, and finally you would ask one of the LCS serversabout BORAX. The final result would be the Internet address forBORAX.LCS.MIT.

EDU. Each of these levels is referred to as a "domain".The entire name, BORAX.LCS.MIT.

EDU, is called a "domain name". (So arethe 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 thetop-level domains such as EDU. Thus a single query to a root server will get youto MIT. Second, software generally remembers answers that it got before. So oncewe look up a name at LCS.

MIT.EDU, our software remembers where to find serversfor LCS.MIT.EDU, MIT.

EDU, and EDU. It also remembers the translation ofBORAX.LCS.MIT.EDU.

Each of these pieces of information has a "time tolive" associated with it. Typically this is a few days. After that, theinformation expires and has to be looked up again. This allows institutions tochange things. The domain system is not limited to finding out Internetaddresses. Each domain name is a node in a database.

The node can have recordsthat define a number of different properties. Examples are Internet address,computer type, and a list of services provided by a computer. A program can askfor a specific piece of information, or all information about a given name. Itis possible for a node in the database to be marked as an "alias" (ornickname) for another node.

It is also possible to use the domain system tostore information about users, mailing lists, or other objects. There is anInternet standard defining the operation of these databases, as well as theprotocols used to make queries of them. Every network utility has to be able tomake 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 willtake care of contacting the other servers for them.

This keeps down the amountof code that has to be in each application program. The domain system isparticularly important for handling computer mail. There are entry types todefine what computer handles mail for a given name, to specify where anindividual is to receive mail, and to define mailing lists.