The Internet Chronicles – Part 2 of 12: Packet Switching and the First Message
Andrei Mihai
We take it for granted nowadays, but the internet is one of the most impactful inventions of modern times – possibly even of all time. But how did it all start? The story of the internet is a fascinating journey through the minds of visionary thinkers and relentless innovators, many of them coming from mathematics and computer science. In this series, we will dive into some of the stories and contributions of the trailblazers who laid the foundations for the interconnected world we live in today.
From the initial concepts to the development of the global network, we see today, each part of this 12-part series will explore the pivotal moments and key figures who turned the dream of a connected world into a reality. We will journey back to the early days of computer science and the internet, uncovering the ideas and collaborative efforts that paved the way for the digital age.
We previously looked at the audacious vision that started it all. After that, the stage was set for the first true iteration of the internet.
Packets of Data
In the late 1960s, the United States Department of Defense’s Advanced Research Projects Agency (ARPA) embarked on an ambitious project to develop a decentralized communication network. This initiative aimed to ensure that communication could be maintained, even if parts of the network were compromised.
This approach was built on the work of J. C. R. Licklider to enable resource sharing between remote computers. The resulting project, called Advanced Research Projects Agency Network (ARPANET), turned out to be the precursor to the modern internet – and in our “Internet Chronicles,” we will be spending quite a bit of time on ARPANET.
At the core of ARPANET’s initial success was the concept of packet switching.
Traditional circuit-switched networks, like those used in telephone systems, require a dedicated communication path between two points. This is not only inefficient but also vulnerable to disruptions; it is not practical at all to build a large-scale network with this approach.
In contrast, packet switching divides data into smaller packets transmitted independently across the network and reassembled at the destination.
In packet switching, data is divided into smaller units called packets. Each packet contains a header (which includes the source and destination address, sequencing units, and error-checking data) and a payload (the actual data being transmitted). Each packet is assigned a sequence number, allowing for reassembly in the correct order at the destination. A defined protocol defines how the data is switched and reassembled.
This approach makes much more efficient use of available bandwidth resources as it allows multiple communications to share the same network paths. By breaking data into smaller packets and dynamically routing each packet based on current network conditions, it avoids the need for dedicated circuits, reducing idle times and enhancing flexibility. This method ensures that the network can adapt to varying traffic loads and reroute around congestion or failures. Devices called packet switches (now commonly referred to as routers) use information from the headers to decide the optimal path from source to destination and can adapt in real-time. As packets traverse the network, routers examine the destination address in the packet header and each router uses a routing table and dedicated algorithms to determine the next hop for the packet.
To this day, packet switching is the dominant technology for data communications in computer networks worldwide. At the time, however, packet switching was anything but intuitive.
The Pioneers behind Packet Switching
Two people were independently working on the approach. Paul Baran, an American engineer and internet pioneer, was one of them. Baran joined the RAND Corporation in 1959, as the corporation was focusing on resilient communication systems. It was a time when RAND, like many in the US, was concerned about the prospect of the Cold War escalating into a nuclear conflict. At the time, American military communications used high-frequency connections, which would have been wiped out for hours in the case of a nuclear attack as high-frequency communications are more vulnerable to the intense ionizing radiation that would form in the ionosphere.
Baran showed that a distributed relay node architecture was more survivable in the face of such an attack, and also had other advantages as well.
His model proposed breaking messages into smaller pieces, or “packets,” each containing a portion of the data along with addressing information. These packets could take different paths to their destination, ensuring that even if some paths were disrupted, the message could still be reassembled from the packets that arrived. This approach not only increased the reliability of the network but also optimized the use of available bandwidth.
After some work and optimization, Baran’s ideas were picking up steam at RAND. Unbeknownst to him, however, another researcher was working on the same principles.
Donald Davies, a Welsh computer scientist working at the National Physical Laboratory (NPL) in the United Kingdom, independently developed the concept of packet switching around the same time as Paul Baran in the United States. Davies was motivated by efficiency and reliability. At the time, time-sharing computer systems had to keep a phone connection open for each user, which was resource-intensive.
Davies also proposed dividing computer messages into very “short messages in fixed format” and routing them independently to be reassembled at the destination – yes, the same idea. He also coined the word “packet” for this task, after consulting with a linguist. It was a clever idea as “packet” can be converted into different languages without changing its meaning and Davies suspected this idea was of international importance.
His independent research not only paralleled but also complemented the work of his American counterparts, helping conceptualize the practical implementation of packet-switched networks and contributing to a broader understanding and acceptance of packet switching as the foundation for modern data communication systems.
Then, ARPANET came in.
ARPANET Meets Packet Switching
In 1967, some of Davies’ work, presented by one of his colleagues, caught the attention of ARPANET. Larry Roberts, another internet pioneer, was making key decisions on how ARPANET should be built. Roberts was looking for solutions like the ones Davies and Baran were proposing. Curiously, Roberts had met with Baran but the two reportedly did not discuss networks.
Roberts was intrigued by Davies’ work and wanted to build ARPANET around the idea of packet switching. Ultimately, the initial design for the computer network was revised several times to incorporate elements from both Davies and Baran. Roberts also brought in one more key person to work on the project: Leonard Kleinrock.
Kleinrock was working in a relatively obscure field of mathematics called queuing theory. Queuing theory aims to understand and predict queue lengths and waiting times, providing insights into system performance under various conditions. This theory uses models to represent the flow of items through a process, where items can be anything from data packets in a network to customers in a bank.
Kleinrock had published his PhD thesis as a book in 1964, which included mathematical models useful for packet switching. He was an expert theoretician and he started working on ARPANET, first informally and then as a fully-fledged member.
However, having a theory and a working model is one thing, but implementing a workable system raised major engineering challenges. Most people working at ARPANET did not believe packet switching was scalable in a way that was economically feasible. Baran had met the same objections at RAND – ironic, given the scale of the internet today.
Nevertheless, the project continued to receive support. Then, in 1969, the network was set up and good to go.
The First Message
The initial ARPANET network, the first (rudimentary) iteration of the internet, included four nodes: the University of California, Los Angeles (UCLA), the Augmentation Research Center (ARC), The University of California, Santa Barbara (UCSB), and the University of Utah School of Computing. These locations were chosen strategically, both from a line cost perspective and because all institutions had something to contribute.
It was on October 29, 1969 (10:30 p.m. PST) that the first packet-switched message was sent. It was a historic but rather humorous moment, showing just how undeveloped the technology still was. The plan was to send over a command: “Login.” However, only two characters were successfully transmitted (“Lo”) and then the system crashed.
“Hence, the first message on the Internet was ‘LO’ – as in ‘Lo and behold!’” Kleinrock said. “We didn’t plan it, but we couldn’t have come up with a better message: succinct, powerful and prophetic.”
There was a lot of work to do, but by December, the four-node network was relatively stable and could send commands. Work on packet switching was not done (far from it), but ARPANET was starting to take off. Ethernet, Internet Protocol (IP), and the Transmission Control Protocol (TCP) would all build on packet switching, but in 1969, they were still a few years away from being invented. The original packet switches, which we now call routers, still had some ways to go.
We shall explore their journey in the next installments.
This is part 2 of 12 of a monthly series on the development of the internet. In the next part, we will look at how Transmission Control Protocol / Internet Protocol (TCP/IP) established a set of rules enabling disparate networks to communicate, thereby unifying them into a global “network of networks.”
The post The Internet Chronicles – Part 2 of 12: Packet Switching and the First Message originally appeared on the HLFF SciLogs blog.