Development of the Domain Name System By Mockapetris and Dunlap Review by Michael Cafarella CSE561 November 17, 2004 The authors describe the DNS system, especially its early design and development. DNS is a distributed database for name resolution, especially for use in networking protocols. (In fact, it's pretty much exclusively used for networking ends, though the design of DNS was general enough to theoretically allow for other uses.) DNS is a strange beast; it lacked a lot of features that were thought necessary, was designed to have many features that were never used, and had lots of problems with implementation and the politics of naming. Despite all that, DNS has been hugely successful. At the time DNS was designed, the internet had moved to a new phase in its history. The major hosts were not timesharing systems but smaller workstation-like machines, often connected as part of large companies or other institutions. This shift meant a huge number of new machines needed to be connected to the network and addressed. The old name-resolution system, a human-maintained hosts.txt file that was distributed to all machines in the world, was quickly becoming unusable. DNS solved the problem by allowing for distributed maintenance of the rapidly-growing name->address mapping. DNS was designed, foremost, to scale to very large user populations. The distributed maintenance, the caching scheme, the concentration on machine-neutral features (such as no case sensitivity) all indicate that the DNS designers wanted it to be completely ubiquitous. Despite a lot of problems, the design succeeded. I liked this paper a lot for its focus on how DNS partially mispredicted the future and how it suffered from many implementation problems. These were far more interesting and instructive than the generic descriptive DNS story that is usually employed. The paper is mainly backward-looking, but is still interesting today, especially considering the modern interest in more advanced naming schemes. Many of today's naming applications seem to have been anticipated by the designers of DNS, at least in so far as DNS could have supported applications far beyond just name/IP resolution.