This Week in Getting Hacked: CoffeeMiner EditionJanuary 12, 2018
This Week in Getting Hacked: Hawaii Left a Password on a Sticky Note EditionJanuary 19, 2018
For Part 1 of our History of IP Address series, please click here!
It’s the early ‘80s and ~99 percent of the population of the world has no clue about ARPANET, IP Addresses, and all that’s to come related to the Internet.
At this point in time it was professorial—an esoteric function used by government agencies and universities. All that is about to change, but not before one of the core functions of the ARPANET. https://www.youtube.com/embed/PpsEaqJV_A0
On New Year’s Day, 1983, ARPANET switched from their NCP protocol to TCP/IP, which was considered more flexible and more powerful.
There it is! Finally we get the hallowed initialism of ‘IP!’
Now, while TCP/IP was indeed more powerful and flexible (we’ll get into that soon), it came with a near, wholesale-rework of the ARPANET infrastructure. The transition forged the way to what we now call the Internet, but for now it meant a temporary loss of functionality and a whole new slew of complexity that needed to be ironed out.
Luckily, the world’s top minds were already on the case!
How TCP/IP Came to Be
Robert E. Kahn and Vinton Cerf are credited as the forefathers of TCP/IP, but many other people helped them along the way.
In the spring 1973 Kahn and Cerf, who developed the existing NCP protocol, joined forces with the goal to create the next ARPANET protocol generation.
By the summer of the next year, Kahn and Cerf worked out the foundation of TCP/IP by reformulating the way the ARPANET functioned. Instead of the network being responsible for the reliability, it was instead delegated to the hosts by using a internetwork protocol which hid the differences between local network protocols.
Cerf gave much of the credit to the work done by Hubert Zimmermann and Louis Pouzin who designed the CYCLADES network, which heavily influenced his and Kahn’s work.
The new protocol was implemented as the Transmission Control Program, the first part of TCP/IP and was published in 1974.
At the start, TCP handled both datagram transmission and routing, but as the protocol expanded, other researchers started to recommend that these two functions be split into layers.
One of these researchers, Jonathan Postel of the University of California’s Information Sciences Institute and an editor for the Request of Comments (RFCs) which is a document series capturing the development of the Internet.
“We are screwing up in our design of Internet protocols by violating the principle of layering”
Basically, the monolithic design of TCP would soon become inflexible and unable to scale efficiently. Therefore TCP was split into two protocols, TCP & the Internet Protocol (IP).
What is TCP/IP?
Due to the immense technical jargon that follows in this section, we’ve done our best to be as concise as possible and link to resources where you can further explorer the more technical aspects of TCP/IP. After all, this is a historical piece!
TCP/IP is commonly referred to as the ‘Internet protocol suite” and is comprised of the Transmission Control Protocol (TCP) & the Internet Protocol (IP).
To understand how the Internet protocol suite functions as a whole, we should first break down TCP & IP independently.
Internet Protocol (IP)
The main function of the IP is addressing hosts, putting data into datagrams (for transmission), and routing those datagrams from the source-host to the destination host, which can be across one or more IP networks.
When first introduced, IP was a connection-less datagram serviced which worked concurrently with TCP, which was more connection oriented (thus, the Internet protocol suite).
Each datagram has a header and a payload. The IP header includes both the source and destination IP address and other metadata which is needed to ensure delivery across the network. The payload is the data that’s being transmitted.
The first major version of IP was Internet Protocol Version 4 (IPv4) which has stuck as the predominant protocol of the Internet to this day. But IPv4 is running out and is being replaced by IPv6. You can read more about that in our What Happened to IPv5 piece.
For the sake of keeping this historical and not too technical, please refer to our “Understanding IP Addresses” series for how addressing works and all that wonderful octet binary-decimal fun!
Transmission Control Program (TCP)
While IP is in charge of the delivery of data, TCP keeps track of that data’s segments, or the units of data divided to make for efficient routing through the network.
As an example, when a webserver is sending a file to you, TCP segments that data file into a sequence of octets and forwards them to the Internet layer (we’ll get into layers in a second).
The same thing occurs on your end when receiving the file, the TCP on your network reassembles the data packet and the file can be read by your machine.
The best way to define what TCP segments do is to quote the research done by the Information Sciences Institute prepared for DARPA:
“Processes transmit data by calling on the TCP and passing buffers of data as arguments. The TCP packages the data from these buffers into segments and calls on the internet module [e.g. IP] to transmit each segment to the destination TCP”
As you can see, TCP & IP protocols must work in unison and that’s why they’re almost exclusively put together as TCP/IP or The Internet Protocol Suite.
What makes TCP/IP unique from NCP is that it specifies how data should be packetized, routed, transmitted, addressed, and recieved. This is done in layers.
From lowest to highest the layers are as follows:
- The Link Layer which communicates methods for data within a single network segment or link.
- The Internet Layer which provides the internetworking between independent networks
- The Transport Layer which handles the host-to-host communications
- The Application Layer which provides process-to-process data exchanges for applications
For a much more detailed explanation of these layers, please read RFC1122, “Requirements for Internet Hosts — Communication Layers” by the Internet Engineering Task Force, authored by Robert Braden.
The Adoption of TCP/IP and How It Forged the Path to the Modern Day Internet
Cerf’s research group worked on the wrinkles of TCP/IP from 1973-74 and worked out TCP specification.
When DARPA contracted with BBN Tecnologies, Stanford University, and the University College London, as mentioned in Part 1 of the series, these groups began to work on the implementation of TCP/IP to the ARPANET. This is when TCP/IP v4 was developed and in 1975 a two-network TCP/IP communications test between Stanford University and University College London was performed.
It took another two years before a three-network test was performed and it took all the way until 1983 before TCP/IP was stable enough to replace NCP on the ARPANET.
However, that didn’t mean that it wasn’t being used at all. In March of 1982, The U.S. Department of Defense made a statement declaring TCP/IP as the protocol standard for all military computer networking—a huge shot in the arm for the overall implementation.
In fact, TCP/IP was so strong that in 1985 the Internet Advisory Board held a workshop to talk about the commercial use of the protocol.
Now being referred to as the Internet and becoming increasingly commercial, you better believe something needed to be done to categorize all the new devices, all with their own unique IP Addresses and that’s when groups like the American Registry for Internet Numbers (ARIN) starts to get involved and IP Addresses become a part of business lexicon and eventually everyday lexicon.
And we’ll cover all of that in The History of IP Addresses Part 3.