Next week I am heading to Edinburgh University, where I did my PhD back in the 1980s, to give a lecture as part of the events celebrating 60 years of Computer Science and Artificial Intelligence at Edinburgh. Having decided that I would speak about networking (stick to what you know, after all), I realized that there was a lot going on in the networking world 60 years ago too, making for a nice tie-in to the event. My research for the talk inspired me to write this post. I’m sure I will be hearing from readers if I make any claims here (or in my talk) that can’t be backed up–some of the stories here are hard to verify, but there are some good primary sources cited in the following post.
Most people with some knowledge of networking history can name a few famous people from its history, such as the inventors of TCP/IP (Bob Kahn and Vint Cerf) and of the World Wide Web (Sir Tim Berners-Lee). While TCP/IP dates back to the early 1970s, and the Web to the 1990s, I wanted to go back further to cover the 60-year period being celebrated at Edinburgh. I found a wonderful resource in “A Brief History of the Internet” by Barry Leiner et al. (with co-authors including Kahn and Cerf among a long list of famous names). One of the striking things about that paper is just how many people were involved in the creation of the Internet. Fortuitously, Leiner et al. trace the Internet’s roots back to the early 1960s, lining up nicely with the timeframe I wanted to cover, and highlighting a number of developments I was unfamiliar with. I’ve leaned heavily on that paper for my talk.
First up is the invention of packet switching. It’s worth noting that the dominant network in the 1960s was the telephone network, which dealt in circuits. A small group of computer scientists recognized that there might be a form of networking that was better suited to computer communication. Len Kleinrock wrote a report on the queuing theory behind packet switching (without using the term packet) in 1961 (and later wrote books that were part of my education). Over the next few years Paul Baran in the U.S. and Donald Davies in the U.K. independently developed the main concepts of packet switching–they are generally recognized as packet switching’s co–inventors. Davies gets the nod for having coined the term “packet” to describe a bundle of bits packaged for transmission.
Arguably just as important was the work of J.C.R. Licklider, who seems to have been an amazing visionary across wide areas of computing. He proposed the idea of an “Intergalactic Computer Network” around the time he joined ARPA in 1962. These ideas took hold with Larry Roberts, who was appointed as the first program manager for ARPANET. The ideas of Kleinrock, Davies and Baran were adopted in the ARPANET design, with the “Interface Message Processors (IMPs)” being the first routers and ARPANET the first wide-area packet-switched network. Prior to this, Roberts apparently built a long-haul connection between two computers on opposite sides of the U.S. using a telephone circuit, illustrating by counterexample that packet switching really was the way to go. Leiner calls this the first wide-area computer network.
While the ARPANET is generally viewed as the predecessor of the Internet, what surprised me is how quickly the ideas of the Internet came together once the ARPANET existed. The first ARPANET hosts were connected in 1969, and as early as 1972 Bob Kahn was working on the ideas of “Internetting”: connecting different networks together. There weren’t a lot of networks to connect, but packet radio was developed around the same time, so the idea that very different networks could be connected arose quite early. Realizing that the protocols that he was creating to support internetting were going to need to be implemented on various operating systems, Kahn teamed up with Vint Cerf, who had experience with the implementation of NCP (which can be viewed as the predecessor of TCP/IP) on ARPANET. The idea that TCP/IP had to support heterogeneous networks was another big departure from the networks of the past–telephone networks were much more homogeneous.
My favorite paper on how the Internet developed is the 1988 paper by David Clark: The Design Philosophy of the DARPA Internet Protocols. With the benefit of 15 years of experience, Clark–often referred to as “The Architect of the Internet”–clearly lays out what he, Kahn, Cerf, and many others were trying to achieve when the Internet was designed. There was a lot more to the Internet than the TCP and IP protocols, and Clark lays out a detailed list of design goals, all in service of one top-level goal: to interconnect existing networks. That meant, importantly, that you couldn’t impose changes on the existing networks to make them “fit” the Internet architecture: the Internet had to be able to accommodate widely varying types of networks, e.g., those with no reliable delivery mechanisms or ability to provide notifications of failures. The ability to accommodate networks in spite of wide variations among their capabilities, including networks not yet invented, was quite a radical idea, and drove a lot of critical design decisions, such as the adoption of a best-effort service model.
The list of second-order design goals starts with:
Internet communication must continue despite loss of networks or gateways.
I feel obligated to point out that there is no mention in this paper of the Internet being designed to withstand nuclear attack. Unfortunately, I was responsible for perpetuating that misconception in the an early edition of “Computer Networks: A Systems Approach”. Leiner et al debunk this myth and explain its origins in their paper, but it’s a remarkably persistent one. “[C]ontinue despite loss of networks or gateways” is as close as it gets.
Of the other design goals, the one that I keep coming back to is “distributed management of resources”. I’m personally very interested in the many ways in which the decentralized architecture of the Internet has been eroding, and have written prior posts on this topic here and here. As far back as 2016 I began to take an interest in blockchains as a possible path to a more decentralized approach, but these days I mostly find myself agreeing with Molly White and her ironic “Web3 is Going Just Great” site, which catalogs the steady stream of Web3 failures and grifts. Fortunately, there is more to the decentralization of the Internet than blockchains and Web3.
As we discussed last year, there are real signs of life for the decentralization of social media thanks to the emergence of ActivityPub and the Fediverse. Just as I was putting finishing touches on my slide deck, there was yet another meltdown in the world of centralized platforms, with the CEO of Reddit deciding that sudden changes to API pricing–to the point that lots of third-party applications become economically unsustainable–was such a good idea at Twitter that he would bring the same approach to Reddit. The response from volunteer moderators at Reddit–the unpaid community members who make the platform valuable to users–has been swift and, in some cases, hilarious. But the aspect of this story that really caught my eye was the rapid rise of ActivityPub-powered Reddit alternatives Kbin and Lemmy. The number of users of these services, which are interoperable with each other and connect to the rest of the Fediverse, has roughly tripled in a week (off a low base). Furthermore, there is a flurry of activity to beef up the implementations so that moderation tools–an essential part of any social media platform–can keep up with the growth in users.
As an active user of another part of the Fediverse, Mastodon, I can tell you that there is lots of discussion among Fediverse users at present around how best to deal with all this growth and what it would take to scale the Fediverse up to the size of the big centralized platforms (which are still orders of magnitude larger than the Fediverse). It’s really too early to tell how this will all play out, and there is certainly more to the Internet than social media platforms, but I do feel a degree of optimism that the pendulum is swinging back towards the decentralized approaches that enabled the Internet to grow and flourish over the last sixty years.
In a timely coincidence, Steve Bellovin (well known as an Internet security expert) has published a first-hand history of netnews that is full of interesting details on how it developed in parallel with the Internet. And while I was digging around for bits of Internet history, I rediscovered the note from 2000 written by Bob Kahn and Vint Cerf regarding Al Gore’s role in the Internet – an assessment that is more favorable than most people would expect. As they say “No one person or even small group of persons exclusively ‘invented’ the Internet.”