On February 17, 2004 Michael Geselowitz of the IEEE History Center conducted an oral interview with Robert Kahn. The transcript of this extensive interview (with selected portions available as an audio file) can be found here.
Another oral interview was conducted by Vint Cerf for the Computer History Museum. They note the subjects of the interview include:
Kahn, Robert; Bolt, Beranek and Newman (BBN); Arpanet; Packet switching; Interface Message Processor (IMP); Defense Advanced Research Projects Agency (DARPA); Internet; Cerf, Vint; TCP/IP; Strategic Computing Program.
A transcript of the interview can be found here.
Packet switching is a technique for reliably and efficiently transmitting data over a communications channel. Before the ARPANET, there were two main alternatives for sending data through a network. In a circuit-switched system such as the telephone system, a dedicated physical path is reserved from one end of the connection to the other. While suitable for voice conversations, circuit switching can be inefficient for data transmissions, which tend to be characterized by large bursts of data interspersed with periods of inactivity. In addition, the delay incurred when setting up the end-to-end circuit is unacceptably long when circuits are used for short data transmissions.
Message-switching (or store-and-forward) systems address these problems by not setting up a dedicated path or circuit through the network. Instead, messages are sent through the network one node at a time, with each node storing the message until the next link is free and then forwarding the data to the next link until it reaches its destination. While this increases efficiency, message-switched systems tend to be slow, and the necessity to store entire messages at the nodes required expensive disk storage at each node.
Packet switching solves these problems by breaking messages into small units called packets, and sending the packets independently through the network. Little storage is needed at the nodes; packets from different messages can be interspersed to give greater responsiveness for interactive computing; and individual packets can be re-sent if necessary, rather than entire messages. However, packet switching introduces new complexities, since the packets must be re-ordered and reassembled at the destination. Also, since there are no dedicated circuits, the network links can become congested, potentially resulting in lost packets.
Because it increased both efficiency and complexity, packet switching was a promising but risky choice for ARPA. The success of the ARPANET soon established packet switching as the standard technique for computer networks. The ideas behind packet switching were developed largely independently by Paul Baran of Rand, and Donald Davies of the National Physical Laboratory in the UK.
The simplest way to design a communications system is to have a central node through which all connections pass, a layout known as a star topology. Finding a route from one endpoint to another is easy in such a system, and a minimal number of links are needed to connect all the points. There are several drawbacks, however. The central node is liable to become congested, and the system is vulnerable to technical failure or an attack: cutting any link will cut off a set of users, and disabling the central switch will bring down the entire network.
A distributed communications system, first described by Paul Baran in a 1964 Rand report, has a mesh or web or links with no central node. Each node is connected to at least two others, providing redundancy in case a link or node is down due to maintenance, failure, or attack. Traffic is more evenly distributed throughout the system, easing congestion. Routing decisions can also be distributed: rather than having a preset path for packets, a distributed routing system lets each node determine where to send the packet next, giving the routers flexibility to adapt dynamically to changing traffic conditions or node availability. A distributed network also scales up better since there is no central bottleneck. The price is technical complexity, since routing is much more complicated through a distributed system. The additional links can also make the system more costly to build if communications circuits are expensive. Because it increased efficiency and robustness but also complexity, distributed communications was a promising but risky choice for the ARPANET.
In order to send data across a network, the sender needs a way to unambiguously identify the receiver. The Internet uses a system of names and addresses called the domain name system, which was designed by Paul Mockapetris at the University of Southern California Information Sciences Institute in 1983. Under this system, each host computer has both an alphanumeric name used by human beings, and a standardized numerical address used by computers.
To translate a name into the appropriate address, the host computer sends a query to a special computer called a name server that maintains a database of names and addresses. Since the Internet is a large system, the address space is divided into smaller subsets called domains. Addresses can then be written in the form host.domain, and individual users can be addressed as firstname.lastname@example.org. Some of the most common domains include .com, .org, .edu and .net; there are also domains for individual countries and, in the early 21st century, a large number of new domains were added.
Under the domain name system, each name server is only responsible for a particular domain, which reduces the traffic and database size that each server must handle. In addition to this technical advantage, the system makes it possible to decentralize organizational and economic control over the name space. For example, each country controls its own national domain. The Internet domain name system was managed for many years by Jon Postel at USC-ISI under a US government contract. In 1998 this function was moved to the newly created Internet Corporation for Assigned Names and Numbers (ICANN), which was established to move Internet coordination functions to the private sector and to encourage more global participation in governance decisions.