[ih] Why TCP?

Jack Haverty jack at 3kitty.org
Wed Aug 31 14:43:24 PDT 2016

[I changed the subject because I hate unsearchable subjects like 
"...internet history digest..."]

I think Dave's observation is a really important fact for future 
historians - the Internet did not evolve in a vacuum.

ARPANET was one of the first packet networks (I'll let others argue 
about which was First...), but it was preceded by networks based on 
phone lines and modems interconnecting terminals and computers.

The ARPA Packet Radio net enabled communications between mobile 
computers, moving around in jeeps and helicopters, by radio links.   But 
it was preceded by AlohaNet in Hawaii, which interconnected the various 
islands by radio.   AlohaNet was also the inspiration for Ethernet.  In 
the early 1970s, Bob Metcalfe's office at MIT was three doors down the 
hallway from mine as he wrote his thesis that spawned Ethernet.  I 
remember hearing about AlohaNet from him.

Later, SATNET interconnected sites using satellite links, also obviously 
using radio for communications.  Unlike the packet radio environment, 
the path of the satellites was highly predictable, and the massive dish 
antennas on the ground didn't move at all.

SATNET was subsequently adapted to create MATNET, a Navy project, that 
used satellite dishes on ships for communication.  Ships moved of 
course, but not as rapidly or spasmodically as jeeps and aircraft.

Ethernet was evolved by Xerox PARC into its own "internet", with 
multiple LANs interconnecting by radio links or telephone lines. 
During the early 80s, The Internet which we still use today was running 
in parallel with the PARC internet (I can't recall what they called it), 
using PUP where we used TCP.

As Dave noted, we got used to hearing that the mission of the Internet 
Project (as driven by the IAB/ICCB under Vint's direction) was to 
develop the infrastructure technology, i.e., protocols and algorithms 
and standards, to interconnect these networks, both the existing types 
and anything else that someone might dream up in the future.

If some new type of network could carry packets from point A to point B, 
it should be possible to incorporate it into the Internet --- without 
requiring the host computers to change any software (which would be 
hard), or change all of the routers in the Internet (only the ones that 
directly interface to the new network need to change to be able to use it)

We even mused about extreme networking.  For example, TCP/IP should be 
able to utilize a "network" implemented using carrier pigeons for 
transport, with each pigeon carrying a small tube with a strip of paper 
containing one packet of data.

As far as I know, no one ever did that....  But it was one of the 
scenarios that came up in the brainstorming discussions to prevent us 
from changing the technical mechanisms in a way that precluded 
PigeonNet's use.

On another extreme, we mused about incorporating another Internet into 
The Internet, i.e., using some existing set of routers and lines 
(Internet 1), as a means to interconnect routers in an overlaid internet 
(Internet 2).   After all, a fragment of an internet meets the 
definition of a network - a communications mechanism that can carry packets.

As far as I know, such multi-layer Internet-of-Internets *did* happen. 
It was used in some secure environments and I think also used as a 
technique to implement the IP4 to IP6 transition (are we there 
yet...it's been more than 30 years!???)

So, as Dave noted, TCP/IP was developed as an overlay that would run 
over all existing, or future, networks.  That goal often came up during 
the meetings and discussions as something akin to a Prime Directive.


IMHO, future historians might also like to know *why* that was the Prime 
Directive.  In other words, Why TCP?   The intransigence of people to 
settle on a single technology and protocol was important as a motivator, 
but IMHO only part of it.

My introduction to TCP was in 1977.  I had been working in the ARPANET 
environment, doing things like email et al at MIT.  I moved to BBN in 
1977 and my first task was to write the first TCP for Unix, which was 
needed as part of an ARPA project.  At that time, TCP was at the version 
2.5 stage.

Over the next year or so, we made a lot of changes to create TCP 3 and 
then TCP 4.

Creating a technology that could incorporate any kind of network was a 
big part of the mission.  But there were others.  For example, it was 
desirable that the infrastructure support different types of user 
traffic.  Ideally, the TCP infrastructure would support all types of 
user traffic in a way similar to its ability to utilize any type of 
network that might appear.

Specifically, voice traffic - realtime human-human speech - was found to 
not work very well over a TCP connection.  With our traditional uses, 
e.g., FTP/Telnet/Email, getting all of the data there intact was the 
overriding goal.   In speech, getting the data there in a timely fashion 
was most important, and some loss of snippets of speech was acceptable.

That, among other things, motivated the split of TCP into TCP/IP, 
allowing the creation of UDP and "higher" protocols to carry things like 
speech and video.


All of these internet-history discussions tend to revolve around 
technology - protocols, algorithms, etc., which isn't surprising since a 
lot of the people on this list were deeply involved in creating that 

But for the benefit of historians, there's another "layer" of discussion 
that seems important - Why TCP?  In other words, why was it so important 
to create a whole new infrastructure with such capabilities.

The Departments of Defense (note plural) put quite a lot of money into 
the efforts to develop the Internet technology.   ARPA, part of the US 
military, was a large player, acting as a conduit for funds from the 
various parts of the military - Army, Navy, Air Force, etc.  But other 
players from other countries were there too - RSRE (UK), NDRE (Norway), 
DFVLR (Germany), and CNUCE (Italy) are ones I remember.

So, .... the interesting question is "Why did they send money, and keep 
sending it, to create the TCP/IP technology"?   Why did they care about 
being able to interconnect all sorts of networks?

The answer of course is because they needed it to solve their own 
communications problems.

During that TCP2-->4 evolution period, I remember that we were 
continuously aware of stereotypical military scenarios in which TCP was 
supposed to operate.  The military folks didn't really care about bits, 
bytes, packets, etc.  They just knew what they wanted to be able to do 
with it all.

The scenario I remember most was what I heard on joining the fray in 
1977 and learning what exactly this "TCP" thing and associated projects 
were all about.

It was a "Command and Control" scenario, which is the bread-and-butter 
of the military world.  The notion was that someone "out in the field", 
perhaps a scout in a jeep, would see something interesting, and need to 
report it up the command chain.  "I see a column of tanks coming along 
the river valley".

The jeep of course couldn't be wired into an IMP port on the ARPANET. 
But it could have a radio, and that radio should be able to communicate 
with another jeep, or tank, or whatever else might be around.  And they 
might be able to communicate with the field headquarters, possibly 
several miles away.  But everyone had to be able to move, often rapidly 
and unpredictably.

So, .... here's some money....make it work... and Packet Radio networks 
were born.

With lots of jeeps, or helicopters, or whatever, and their eyes and 
ears, the field headquarters could be connected back to the Pentagon 
over the ARPANET and all of that information could be used to figure out 
what to do about it.  But somehow we need to have messages flow from the 
Packet Radio to the ARPANET...

So, .... here's some money....make it work.... and gateways (aka 
routers) were born.

Back at the Pentagon, looking at all the reports, it might become clear 
that the Army guys in the jeeps needed a little help as waves of tanks 
approached them.

Perhaps there's a ship offshore, with some big guns, and a carrier full 
of nasty airplanes.  But they're over the horizon, too far away for the 
Packet Radio to reach, or for wires to an IMP port.  But they do have 
satellite dishes, and can talk to other dishes halfway around the planet 
if necessary.  If only their computers could talk with everybody else...

So, here's some money....make it work.... and SATNET and MATNET were 
born.  The USS Carl Vinson was on The Internet.

When things get frenetic, messages and email just aren't fast enough. 
Real time voice communication is critical (remember, no cell phones in 
those days).   But voice over TCP isn't working well.

So, here's some money....make it work.... and TCP is split into TCP and 
IP, UDP is defined, and the obstacle to realtime voice is removed.  Hey, 
it should even work for video someday.

We can't do video, but graphics are a big help.  A general might be able 
to view a map while talking with commanders in the field who see the 
same map.  Even use a pointer to highlight specific areas of the map as 
he gives instructions.   "Unit A, you move here (pointing somewhere), 
and Ship B, you fire at this location (pointing somewhere else)".

It's really important that the "pointing" actions in the graphics are 
well-synchronized with the speech giving the commands......

So, the real-time UDP speech needs to be time-synched with the graphics 
images over TCP.

So, here's some money....make it work....and .... mechanisms such as NTP 
(thank you Dave Mills!) are created to provide high-accuracy global 
time.   But I have no idea if the voice/graphics synching is guaranteed 
even today.   Sure hope so...

There were a number of these scenarios that drove our thinking about the 
problems.  I was an initial member of Vint's IAB (then called ICCB), and 
these kinds of scenarios played a significant role in those discussions, 
which complemented the technical discussions in the larger Internet 
group meetings.  The IAB in part acted as a conduit to translate the 
desires of the guys with the money into the technical goals that drove 
the creation of the TCP/IP protocols and machinery.

Someone (I wish I knew who) made the decision to do all of this work, 
and spend all of that money, in an open environment, and make the 
technology freely available and standardized for anyone to use.  None of 
the competing Internet architectures (Xerox, Novell, DEC, IBM, ISO, 
etc.) did that.  So when the rest of the world discovered that the 
military TCP/IP technology not only worked but also could solve their 
problems, the ascension of the Internet was natural.

So, that's why we have TCP!

As usual, I've written a lot, sorry about that.  It just seems important 
to get this written down somewhere to capture some of the "why" part of 
the Internet history.  The existence of concrete scenarios was key in 
focusing the technical work on actual real-world problems to be solved. 
That permeated the culture of the Internet developers.  Instead of 
writing documents, we wrote code...

/Jack Haverty
August 31, 2016

On 08/31/2016 07:17 AM, Dave Crocker wrote:
> On 8/31/2016 6:50 AM, Craig Partridge wrote:
>> As I recall the story (I arrived on the scene later), Bob Kahn was in
>> the process of funding Packet Radio Networks and he and Vint needed to
>> solve the
>> interconnection problem and that motivated the TCP paper.
> This is a variant of the broader problem statement I was used to hearing:
>       Even by 1972 there already were a variety of independent networks
> around the world.  How to interconnect them, since it was unlikely that
> they would all agree to switch over to someone else's network protocols.
>       TCP was developed as an overlay that would run on all of them,
> connecting them.
> d/

More information about the Internet-history mailing list