ARPANET #
The Cold War was on, the USA was investing a lot in defense and technology. In 1958, under the president Eisenhower, ARPA (Advanced Research Projects Agency) started. It was a response to the Soviet's Sputnik 1 achievements (1957).
In the 60s, ARPA got more hardware, including the Q-32 computer. The idea of computer networking was starting to catch on. MIT was working close with ARPA and there was some progress about creating a network. The idea of packet switching was presented, and there was a project to connect Q-32 to the TX-2 computer (MIT's computer) under the management of Larry Roberts. Later in 1966, Larry published a paper on ARPANET, a packet switching network that uses TCP/IP protocol.
During the 70s there was a fast growth in the numbers of computers in the world. There were different networks appearing and some international projects. There was a lot of development, and many different protocols and programs were created. Later, the first 3-network system was introduced (packet radio, ARPANET and SATNET).
HOSTS.TXT #
Alphabetic host names were introduced on the ARPANET shortly after its creation. It greatly increased usability since alphabetic names are much easier to remember than numeric addresses. Host names were also useful for development of computer programs, since they could reference a constant host name without concern about changes to the physical address due to network alterations.
Alphabetic name alias system, but the infrastructure of the underlying network was still based on numeric address. Each site maintained a "HOSTS.TXT" file that provided a mapping between host names and network addresses in a set of simple records that could be easily read by a person or program.
It wasn't long before people realized that keeping multiple copies of the host file was inefficient and error-prone. Starting with a formal proposal for centralization in RFC 606 in 1973, proceeding through RFC 608 and RFC 623, it was finally settled by March 1974 with RFC 625 that the Stanford Research Institute Network Information Center (NIC) would serve as the official source of the master hosts file.
Domain #
As described in RFC 805, it was initially the need for a real-world solution to the complexity of email relaying that triggered the development of the domain concept. A group of ARPANET researchers, principles and related parties held a meeting in January 1982 to discuss a solution for email relaying.
Back then, to send an email to someone, you had to first be a human router and specify a valid path to the destination as part of the address. In order to solve this problem, domain names were created to provide each person with one address.
RFC 805 outlines many of the basic principles of the eventual domain name system, including the need for top level domains to provide a starting point for delegation of queries, the need for second level domains to be unique, the requirement for a registrar type of adminstration, and the recognition that distribution of individual name servers responsible for each domain would provide administration and maintenance advantages.
"The conclusion in this area was that the current "user@host" mailbox identifier should be extended to "
user@host.domain
" where "domain" could be a hierarchy of domains" - J. Postel in RFC 805 Computer Mail Meeting Notes, February 9, 1982
This concept was developed through a series of communications. The hosts table definition was updated with RFC 810. The Domain Naming Convention for Internet Applications : RFC 819 provided an excellent overview of the concept. And finally, the full concept of a distributed system of name servers, each serving its local domain, was described in A Distributed System for Internet Name Service : RFC 830 , providing the main architectural outlines of the system still in use today.
By 1983, the concept and schedule were developed and published :
- The Domain Names Plan and Schedule : RFC 881
- Domain Names - Concepts and Facilities : RFC 882
- Domain Names - Implementation and Specification : RFC 883
DNS #
The HOSTS.TXT centralized system worked well for about a decade, approximately 1970s to 1980s. However, by the early 1980’s the disadvantages of centralized management of a large amount of dynamic data were becoming apparent. The hosts file was becoming larger, the rate of change was growing as the network expanded.
At USC's Information Sciences Institute, Paul Mockapetris recognized the problems with the ARPANET's system of holding name to address translations in a single table on a single host (HOSTS.TXT). Instead, he proposed a distributed and dynamic naming system.
In the early days of the Internet, the host and IP address information was stored in a text file (HOSTS.TXT) that was maintained by the Stanford Research Institute (SRI). When a new computer joined the network, or an old computer modified its details, people had to contact the SRI and have this file manually updated. Anyone who needed the IP address of a computer also had to contact the SRI and get the updated file. This presented a major problem, as it would close at five o'clock on weekdays and wasn't open on holidays. The DNS came about as a way to solve this problem with a distributed database.
"It was created to let people use names for anything. But we had to figure out how to organize the distribution of domain names and how to ensure the system could accomodate diversity without unnecessary restriction. Many people think that the sole objective of the DNS was to go from names to addresses, but it was designed to be a much more general purpose than that. The main idea was to distribute authority so that you could get your domain and manage it without having to go back to some central authority whenever you wanted to change it. Furthermore, you could create some domains under that. So, universities could get their domain name and then create subdomains for different departments." - Paul Mockapetris
A lot of the design probably came out of Paul's background. He did his PhD at UC Irvin and worked for the distributed computing project. He had previously worked at IBM virtual machine technology and cluster computing, so he had a lot of exposure to ideas about how to organize on multiple machine systems where the administration was distributed.
The DNS was created in 1983 and become one of the original Internet Standards in 1986, after the creation of the Internet Engineering Task Force (IETF). The two documents that marked the start are RFC 1034 and RFC 1035. They describe the whole protocol functionality.
DNS Upgrades #
The DNS has seen various upgrades. The first major one was the introduction of the NOTIFY mechanisms and Incremental Zone Transfer IXFR. With the NOTIFY, the main server can say to the secondary servers that it has an update that it must share. Before, the secondary needed to check periodically. Then, with the IXFR, now those secondary servers didn't need to update the whole zone file. They could update just the changes.
Later update was the DNSSEC, a security extension on top of the DNS, that protects the users from DNS poison attacks. The paper on the latest DNSSEC protocol was published in 2005.
References #
- Martin Pramatarov (December 27, 2018) DNS History : When and Why was DNS Created? cloudns.net
- Sarvesh Mathi (June 23, 2020) Behind the Code Interview : Paul Mockapetris welcometothejungle.com
- The Living Internet Project (January 7, 2000) Domain Name System History