It was as simple as could be, and it worked perfectly well—but only for a short while. As the network started growing, the engineers quickly realized that this system wouldn’t scale. It couldn’t handle 500 million machines—not (literally) in a million years. A 500-million-line hosts.txt ﬁle is a very big ﬁle—just imagine if
messagesent out from every machine on today’s Internet required a lookup in a database 500million entries long. Computers are fast—but they’re not fast enough for that; even at1 million operations a second, that’s 500 seconds—more than eight minutes—of pro-cessing for every single message going out over the network. I connect to the Internetover a Temple University host computer that probably processes 10 million messages aday—that’s 4 billion seconds (about 125 years) worth of processing for one day’s worthof messages. Exponential growth of a network designed like this would mean exponen-tial growth of the size the hosts.txt ﬁle, and that exponentially growing ﬁle would haveto be sent out more and more frequently (to keep it up-to-date on all machines), andto an exponentially increasing number of machines, and every message sent by any of those (exponentially growing) number of machines would require a lookup throughthis exponentially growing hosts.txt ﬁle to ﬁnd the proper IP Address for the recipient.It wouldn’t work. In 1983 Postel and several colleagues proposed a series of Internet Standards deﬁning a new naming scheme—the Domain Name System, which, with some modiﬁcations, persists today. The new system had two signiﬁ-cant new features: (1) names would be
within “domains,”and (2) the databases associating names and IP Addresses would be
around the network.Hierarchical nesting works as follows. The space of all usable names is dividedup into “domains.” At the top are the
domains (or TLDs). Postel’s initialspeciﬁcation called for seven so-called “generic” TLDs—“EDU,” “ORG,” “COM,”“MIL,” “NET,” “GOV,” and “INT”—as well as top-level domains representing indi- vidual countries (the “country-code TLDs,” or ccTLDs) that would have names inaccordance with the list prepared by the International Standards Organization—“JP” for Japan, “DE” for Germany, “US” for the United States, etc.).Each top-level domain can contain any number of 2d-level (second-level) domains.So, for instance, the EDU top-level domain contains a 2d-level domain named“temple”—conventionally represented as “temple.edu,” the convention being thatdomain names are read from right to left, the top-level ORG domain contains a 2d-level domain named “EFF” (EFF.org)—the top-level COM domain contains a 2d-leveldomain named “google” (google.com), etc. (see ﬁg. 10.1). Each 2d-level domain cancontain any number of named 3d-level ( third-level) domains; so, for instance, “www”is the name of a third-level domain within the “temple” 2d-level domain within the“EDU” top-level domain (www.temple.edu), “download” is a 3d-level name withinthe “google” 2d-level domain within the “COM” top-level domain (download.google.com), “about” is a third-level domain within the “EFF” 2d-level domain within the“ORG” top-level domain (about.eﬀ.org). And so on (up to 127 levels deep).