[ih] Separation of TCP and IP

Jack Haverty jack at 3kitty.org
Thu Jun 23 18:41:44 PDT 2022


Memories fade, and so does the ink in my ancient notebooks.

But I think the motivation for the TCP/IP split started much earlier 
than when it actually happened.  E.g., I have a faded copy of 
"Comparison of TCP and DSP" by Dave Clark (MIT Local Network Note #7, 
April 28, 1977).

This paper proposes changes to TCP to base it on a much simpler core set 
of services, with mechanisms for adding things like a reliable byte 
stream as optional.   It's not quite the same as proposing a separate 
TCP and IP but it's the same concept - a lowest level unreliable packet 
transport, with optional addons to build things like byte-stream 
connections on top.

Toward the end of that paper is a section on "Transmission of Speech 
Using TCP", which describes how "reliability considerations must not be 
allowed to get in the way of timely delivery of the packets containing 
digitized speech information.   It proposed adding a "new control flag" 
to TCP, that would implement such a mechanism.

So there was motivation for re-architecting TCP to separate out the 
"unreliable datagram" mechanisms from the "reliable byte stream" well 
before the actual TCP/IP split.

Elsewhere in my notes from that era there are other discussions 
mentioned of other possible changes to TCP to accomplish the same 
goals.   So the need and desire to somehow split apart the datagram and 
byte-steam aspects of TCP came at least before April 1977.

In retrospect, I think that this was the beginning of the migration away 
from the "OSI Model", which was (and I guess still is) based on the 
"telephone" view of communications as always involving "sessions" and 
"presentation", i.e., following the tradition of the timesharing world 
where only people used computers, and they did so by "connecting" their 
terminal to the machine and having an interactive "session".

That's not how the Internet works.  Humans don't talk to computers. A 
human's computer talks to other computers, and they have no need for 
"sessions".

I was at MIT in early 1977 but never saw Dave's paper (I was in a 
different group).  But by then I had been indoctrinated by Lick(lider) 
for 7+ years in his vision of the "galactic network" where computers 
talked to other computers in support of all kinds of human activities.   
So perhaps the eventual split of TCP into TCP/IP was a reflection of 
that shift from human-to-computer to computer-to-computer 
communications, and the need to support all sorts of human activities 
including interactive (low latency) ones.

So I wholeheartedly supported the notion of a separate IP layer, and 
reworked my Unix TCP code to migrate it from TCP2 to TCP4 (skipped TCP3 
though).

Jack Haverty
MIT 1966-1977; BBN 1977-1990



On 6/23/22 00:15, Noel Chiappa via Internet-history wrote:
> I'm interested in finding out more about the process by which TCP and IP were
> separated: to begin with, how it came to be recognized that this separation
> was a good thing. (This split was what enabled the later creation of UDP, of
> course.) In particular, that the basic service model (of what later became
> the internet layer) should be directly usable by applications, and that the
> complete data network be accessible not _just_ only via TCP. I am also
> interested in who drove this change (if any players in particular stand out).
>
> I have poked around a bit in the early IEN's, but I didn't find much on this
> specific area - either why, or who. From comments in IEN-22 "Internet Meeting
> Notes - 1 February 1978" (in "Introduction and Objectives) it sounds like the
> formal decision to do the split was made at the TCP meeting the day before.
> The minutes from that meeting, IEN-67 "TCP Meeting Notes - 30 & 31 January
> 1978", don't provide much, though. IEN-66 "TCP Meeting Notes - 13 & 14
> October 1977" shows that there had been a drift in this direction for a
> while; it didn't seem to be present as of IEN-3, "Internet Meeting Notes - 15
> August 1977", though.
>
> I arrived on the scene shortly after this happened (my first meeting was the
> August 1978 one), but I retain some impressions (gained no doubt from
> discussions with people like Clark and Reed). These are the impressions that
> I retain: that Danny was _a_ significant force in making this happen, because
> of his voice work - for which timeliness was important, not correctness. (In
> IEN-67, "Arrangements - Cohen" Danny "complain[ed] about TCP-3 becoming all
> things to all people".) Is that correct? (If so, it's probably his most
> significant technical legacy.) For others, I think Dave Reed may have been in
> favour too (perhaps he'd already started to think of RPC-like things). And
> perhaps some of the other voice people - e.g. Forgie? And I'm sure the PARC
> guys were trying to throw a few clues our way. Am I missing anyone? Did
> anyone stand out as being a bigger influence than the rest?
>
> Maybe there's some significan paper that discusses the architectural benefit
> of making the basic unreliable data carriage substrate accessible to _some_
> applications, but the concept didn't seem to get much coverage in the IENs.
> Maybe it was so obviously the Right Thing that not much discussion was
> needed, and the only question was when/how to do it?
>
> 	Noel




More information about the Internet-history mailing list