The TCP/IP Guide - Version 3.0 (Contents) ` 972 _ © 2001-2005 Charles M. Kozierok. All Rights Reserved.
DNS Overview, Functions and Characteristics
Most of us know that it's a lot easier to be a critic than a creator. It was easy to tell that the
host table name system used on the fledgling TCP/IP Internet was not going to serve it
going into the future, but finding a solution to this problem was much more difficult. The
main reason the host table system was insufficient was that it was too simple, and this
meant that its replacement, the Domain Name System (DNS), had to be considerably more
sophisticated. Naturally, this made DNS more difficult to design, and also means we have to
devote more energy to understanding how it works.
As I like to do with the explanation of most of the complex systems and protocols in this
Guide, I begin in this section with background information and an introduction to TCP/IP
DNS. I start by providing an overview of DNS's development, history and standards,
continuing the history begun in the overall look at TCP/IP name systems. I discuss the
design goals and objectives of the creators of DNS, to help you understand better what its
designers were trying to do. I then talk about the main components of DNS and the
functions it performs, relating these to the basic functions explained in the overview section
on name systems.
DNS Overview, History and Standards
The aversion that most people have to trying to remember numeric identifiers led to the very
quick adoption of a name system for devices on the predecessors of what we now call the
Internet. In the 1960s and early 1970s, names were given to machines, and these names
maintained in host tables. The TCP/IP host table name system worked well for a number of
years, with a centrally-maintained master list used by device administrators to ensure a
consistent view of the network.
Unfortunately, such a system only works well when the number of devices is small. As the
budding Internet grew, numerous weaknesses became apparent in the host table method,
as I detailed in the section describing that system. Furthermore, the problems with the
system weren't something that could be easily “patched” with small changes; the problems
were structural, part of the basic idea of host tables as a whole. A completely new approach
was needed for how names would be used on the Internet.
Early DNS Development and the Move to Hierarchical Domains
The most important “paradigm shift” made by the TCP/IP engineers was the decision to
change the name system from one that used a single, centralized list of names to a more
decentralized system. The idea was to create a structured topology where names were
organized into domains. This idea was first introduced in the September 1981 RFC, 799,
entitled Internet Name Domains.
RFC 799 actually describes more the mechanics of delivering electronic mail messages
between domains than the domains themselves. Interestingly, the standard assumes a flat
structure of domains in its discussion, while mentioning the possibility of creating a hierar-