Login »

Generally speaking, communication networks are one of two types: circuit switched or packet switched. Circuit switching is like the traditional telephone network — each telephone line (circuit) is physically connected (switched) to another for the duration of the call. In the early days this switching was done by human operators physically putting in plugs to connect lines together; later, automatic switching used electromechanical switches controlled by the number dialled, and then solid-state electronics, but the end result was the same — a physical, dedicated electrical circuit between the two endpoints for the entire duration of the call. Circuit switching is great for real-time communications like voice or video, because it guarantees dedicated bandwidth at all times, but for transmission of computer data it's quite inefficient.

Data transmission tends to be "bursty" — a burst of data is sent, then everything goes quiet for a while. Dedicated bandwidth, such as that provided by circuit switching, is wasted during these quiet periods. With packet switching, a single physical circuit between two points can be used to carry data from other users during the quiet periods. Also, by splitting data up into small chunks (packets) and switching each one separately, fault resilience is built in, since each packet can take a different route, bypassing problems, before the whole lot is reassembled at the distant end.

Cisco CRS1 Carrier Routing System

Cisco CRS1 Carrier Routing System — a "carrier grade" router used in the backbone of the Internet.

Photo courtesy of Cisco Systems Inc.

Donald Davies & The National Physical Laboratory

Donald Davies CBE, 1924-2000

Donald Davies CBE, 1924–2000

Widely credited as the inventor of packet switching, Donald Davies was born in South Wales in 1924 and studied at Imperial College London. He joined The National Physical Laboratory in 1947, working alongside pioneer Alan Turing. In 1966 he became Superintendent of the Division of Computer Science. After his work on packet switching he became a researcher on computer security, continuing in this field as an independent consultant on retirement from NPL in 1984.

He died on 28th May 2000.

Photo courtesy of NPL.

The history of packet switching goes back to the UK National Physical Laboratory (NPL). Donald Davies, who was in charge of the Computer Science Department at NPL, realised there was a better way of sending data between computers than the circuit-switched network. Davies proposed splitting data into packets, each addressed with its source and destination address and its sequence number, so all the packets could be put back in order at the destination. At each switching point on the network — a switch, often called a router — the router would examine the destination address and send the packet out on the appropriate line, interwoven with completely unrelated packets from other users. If the router detected a problem with one of its lines, it would consult its software-based routing table to see if it had an alternative route towards the destination.

Davies wrote a paper describing his packet switching ideas in 1965. In it, he envisioned a national network of switching centres (routers), like the phone network, but for carrying computer data.

NPL launched its own internal packet-switched local area network (LAN) in 1971 — the first practical use of packet switching techniques. A mark 2 version of the network was operational two years later. In the late '60s, when the NPL LAN was first being designed, there was no off-the-shelf networking hardware to use as building blocks — everything down to the circuit board level had to be designed and built from scratch, along with the software in each router. The routing decisions were carried out on a Honeywell DDP516 mini computer.

Across the pond

Also around this time, the US Department of Defense's Advanced Research Projects Agency (ARPA, later renamed DARPA) was researching how to build communications networks that would allow sharing of computer power scattered around the country at research sites and universities. Packet switching, with its efficiency of line usage and its "self-healing" properties — being able to dynamically re-route packets around a failed router or line — soon caught their attention. Building on the ideas from NPL, ARPA launched its own packet switched network: ARPANET. Like NPL, ARPANET also used the Honeywell DDP516 with custom hardware to form a router referred to as an "Interface Message Processor" (IMP). Each IMP could connect to up to six others, as well as local computers needing to send or receive data. ARPA initially connected three university sites in California and one in Utah.

The first message sent over the network was on 29th October 1969. A student at UCLA sent the message "login" to a computer at Stanford. The letters "lo" were sent before the system crashed. Recovering from the technical problems later that day, the first full message was sent, and before the end of '69 the complete network of four IMPs was up and running. Between 1970 and '75 the network grew to 57 IMPs spanning the US. At this point the network was deemed operational rather than a research project, and control was handed over to The Defense Communications Agency.

As ARPANET grew, it connected government agencies, universities and research centres throughout the US and in Europe. It enabled researchers everywhere to exchange information and share computing resources with unprecedented speed, boosting collaboration and fostering a culture of open collaboration between software developers which continues to this day in the numerous open source projects that create and maintain key pieces of software powering today's Internet. As well as scientific discussion, ARPANET also catered for more cultural and social collaboration through mailing lists covering a wide variety of interests.

Many of these centres had other networks of differing sorts, and the communication protocol governing the format of packets on ARPANET (known as Network Control Protocol, NCP) was starting to show its weaknesses as the network expanded far beyond the size and boundaries originally envisaged. In 1973 two DARPA scientists, Vint Cerf and Bob Kahn, started work on a design for a new protocol. One of the goals was to interconnect many subnetworks of differing types, so they could all communicate as one big interconnected network, or "internet." Kahn & Cerf's idea was to have a device similar to an IMP, called a router, at the boundary between each network. To simplify the design, the new protocol was split into a Transmission Control Protocol (TCP) and an Internet Protocol (IP). The first test of TCP/IP was carried out in 1975, and as the system evolved through versions 1, 2, 3 & 4 between '75 and '83, successive testing was carried out with the core network still running the old ARPANET protocol. On 1st January 1983, ARPANET was completely switched over to IPv4.

The US Department of Defense declared TCP/IP the standard for all military computer networking, and companies such as IBM, DEC and AT&T adopted it for their products. Version 4, introduced in 1983, continues to be the most widely used packet switching protocol, both on the public internet and on private local area networks. Version 4 uses 32 bits for its addresses, giving 4,294,967,296 (4.29 billion) unique addresses — which back in 1983, with the then-projected growth of ARPANET, seemed plenty. However, with the explosion in growth of the Internet over subsequent decades, and the huge number of devices now connected, that address pool is running out. The Internet Society predicted that by 2016 there would be 20 billion devices online, each needing an address. Technologies such as Network Address Translation have reduced the urgency of the problem, letting subnetworks such as your home or office LAN sit behind one public IP address, with internal devices (PCs, tablets etc.) using an internal private address — but the number of spare public addresses is still running out.

A new version of IP, version 6, was standardised in the mid-'90s to address the shortage by increasing the number of bits used for the address from 32 to 128 (meaning 340 trillion trillion trillion possible addresses), and to introduce other features such as multicasting (sending packets to multiple destinations simultaneously) and security. Despite campaigns over the years to encourage companies to move to IPv6, though, it still only carries a minority of net traffic — in September 2013 the amount of traffic reaching Google over IPv6 reached 2% for the first time, according to The Internet Society. Whilst this may be a small amount of total net traffic, it's double what it was when a major campaign launched on 6th June 2012 to encourage adoption.

IPv6 is the Internet Protocol of the future

because without it there just aren't enough Internet addresses to go around. As billions more devices and people are Internet connected, IPv6 momentum continues to grow.

— The Internet Society

Vint Cerf & Bob Kahn: TCP/IP

Vint Cerf

Vint Cerf

Vinton "Vint" Cerf was born in Connecticut in 1943. After graduating from Stanford, his first job was as an engineer at IBM. He left IBM to pursue his MS & PhD in the early '70s, where he became involved in the work of ARPANET, becoming an assistant professor at Stanford University from 1972 to 1976. Whilst at Stanford he conducted research on packet network protocols and co-designed the TCP/IP protocol suite with Bob Kahn. Cerf then moved to DARPA in 1976, where he stayed until 1982.

In 1992 Cerf and Bob Kahn co-founded the Internet Society, whose mission is "to promote the open development, evolution and use of the Internet for the benefit of all people throughout the world." The Internet is successful thanks to its use of open standards, many developed democratically by the IETF (Internet Engineering Task Force).

By 1992 the IETF had already done a colossal amount of work standardising Internet technologies to promote cross-platform and cross-vendor interoperability, yet it remained a very informal organisation from a legal perspective — never incorporated as a legal entity in its own right. IETF standards are developed in an open, all-inclusive process any individual can participate in, and its expenses were covered by US government grants. There was a growing need for financial support and a more formal organisational structure. The Internet Society was incorporated as a non-profit educational organisation to provide that support structure, as well as promoting other activities important for the development of the Internet.

Berkeley Unix & the implementation of TCP/IP

One of the collaborative software projects helped by ARPANET was the Unix operating system. Originally created by AT&T's Bell Research Labs, it pioneered a number of unique ideas for the time — among them, writing the bulk of the code in a high-level language (C, which Bell Labs created for the task), making Unix easily portable to different makes and models of computer, providing a common environment for users and a platform for building more easily portable applications, further easing collaborative research between universities. AT&T at the time was prohibited from competing in the computer business, since it already had such a large monopoly on the communications market; unable to sell Unix for profit, Bell Labs licensed it at cost to universities. One such university was The University of California, Berkeley, which soon became heavily involved with Unix development, creating enhancements and bug fixes and feeding them back to Bell Labs. Berkeley's enhanced version of Unix, which became known as BSD (Berkeley Software Distribution), caught the attention of DARPA in the late '70s.

As ARPANET approached ten years old in 1979, many of the computers connected to it were reaching the end of their life. Replacing them with newer machines meant the need to port applications over to the new, proprietary and incompatible operating systems shipped with each one. Unix, with its cross-platform portability, reliability and active development community, looked a promising solution. Professor Bob Fabry of Berkeley proposed developing an enhanced version of BSD Unix for the DARPA community. A contract was signed in 1980 for Berkeley to develop BSD on DARPA's behalf. Initial work focused on improving speed and general features; the result, BSD version 4, was released in October 1980. A follow-up version, 4.1, improved performance further, and its success and popularity led to a further two-year contract between DARPA & Berkeley.

One of the major features to come from this contract was the implementation of the new TCP/IP packet switching protocols into the operating system. DARPA had previously contracted development work for ARPANET to a company called BBN, who had produced early prototype code implementing TCP/IP, which Berkeley integrated into BSD as a stop-gap measure until the TCP/IP protocol was finalised. This code, shipped in BSD 4.1a, b & c and then BSD 4.2 in 1983, enabled sites to begin moving their ARPANET-connected computers over to the new Internet Protocol. As feedback came in, Berkeley programmers refined and refactored the design to improve performance, evolve it as IP evolved, and make the code easier to maintain and extend. When BBN delivered the final version of their TCP/IP code to Berkeley, Mike Karels, one of the Berkeley programmers, studied it and decided it had flaws in its design, and that the earlier code, which had benefited from several years of refinement as part of BSD, was the better design. In the interests of fairness, Berkeley proposed shipping both and letting users choose, but DARPA expressed concern this would lead to confusion, software bloat and wasted effort fielding bug reports and design suggestions for two codebases. BBN were also unhappy, as their plan had been to replace the entire body of existing TCP/IP code with their in-house design.

Bob Kahn

Bob Kahn

Born in New York in 1938, Kahn earned a B.E.E. degree in electrical engineering from the City College of New York in 1960, followed by an M.A. and PhD from Princeton University. After his PhD he worked for AT&T Bell Labs, then became an assistant professor at MIT. He then joined Bolt, Beranek and Newman (BBN), the company contracted by DARPA to do development work on ARPANET, the forerunner of the Internet, where he helped develop the IMP — the first router used in what would later become the Internet.

Kahn then worked on development of the new TCP/IP packet switching protocol alongside Vint Cerf. Kahn & Cerf later co-founded The Internet Society to support & promote the development of the open standards that had made the net a success.

To reach a compromise, BBN & Berkeley agreed to let DARPA independently judge the best approach, and DARPA decided the BSD codebase was indeed the better design — so rather than rip out and replace the old IP code in BSD, they would take the best ideas from the new code and evolve the old codebase, which had already benefited from several years of testing, debugging and refinement. Because of the open-source nature of the BSD license, permitting widespread use of the source code in both open and closed source products, the status of IP as the dominant networking protocol was further cemented, and the BSD networking code became the de facto reference implementation for TCP/IP.

Berkeley continued to develop BSD Unix throughout the '80s and into the '90s. By the time the official team of BSD programmers employed by the university was disbanded in 1995, BSD Unix had grown into a mature, enterprise-grade operating system powering the servers behind the Internet. Due to the open nature of the BSD license, BSD Unix continues to evolve in the form of three open source projects which forked from it in the early '90s: FreeBSD, NetBSD & OpenBSD. These Unix-derived operating systems, together with the newer Unix clone Linux, continue to power the majority of servers on the net, including popular services like Yahoo, Netflix, WhatsApp, Google, Facebook, Twitter and Wikipedia. FreeBSD is also used as the basis of the operating system on Sony's PS4, Juniper IP routers, and even Apple's OS X and iOS.