[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
technology.
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