[ih] Internet-history Digest, Vol 33, Issue 3

John Shoch j at shoch.com
Thu Jun 23 17:17:16 PDT 2022


Noel,

A good question, about an important set of experiences splitting TCP.  A
few comments:

1.  In fairness to the meeting scribes, the minutes of Internet and TCP
Working Groups were not meant to be comprehensive.
They included status reports, action items, and summaries;  they did not
try to capture all of the details of the debates.
2. Vint and others organized these meetings with a broad group of
participants;  there were lots of opportunities for informal discussions --
in the hallway, in the bar, over lunch or dinner, etc.  A lot of
information was shared outside the formal meetings, which won't be found in
the minutes.  (In spite of Zoom, there is an important role for
face-to-face meetings.)
3.  The TCP and Internet meetings in Jan-Feb 1978, in LA, were the key
moments when the decision to split TCP into TCP/IP was finally taken.  But
that was only the culmination of lots of work and discussion.
4.  Danny Cohen was, of course, a passionate advocate for more flexible
packet-level access, especially for carrying real-time voice.
(In addition to "milk vs wine" Danny wrote a wonderful parable titled "The
Servant's Dilemma" -- it's included in his collection "The World According
to Professor James A. Finnegan," available on Amazon.)
5.  Beyond voice, though, some of us argued that, in a distributed
computing architecture, there were many other uses for packets other than
just reliable byte streams.
At Parc we already had a lot of experience with layering in Pup, designed
and implemented about 2 years before this meeting.  Corporate issues
prevented us from sharing the details of Pup but, as best we could, we were
trying to share some of our general experience:
--At a July 1977 TCP meeting at MIT we (Dalal and I) outlined the scope of
our internet, captured by Jon Postel in his "TCP Meeting Notes" (published
later, I think, as IEN 65):
"PARC has 5 different types of networks with peices [sic] in Palo Alto, Los
Angeles, and various places on the East Coast.  Approximately 14 different
networks. approximately 300 hosts connected."
--You mentioned IEN 3, Postel's minutes of an Internet meeting at ISI in
August 1977 (5 months before "the split.") --  Jon kindly included a brief
summary of our update, and a list of services we had implemented (many, we
hoped, highlighting the value of a raw packet interface!):
"Shoch: Gateways exchange routing tables perodically [sic] gratuitously.
Many processes in a gateway for example time server, name lookup server,
boot loaders, measurement process, echo server, source, sink, trace."
Some of the things we had done included 1-way unreliable raw packets (e.g.,
logging a memory error, caught by the Alto ECC, to a log server).
Some were a simple 2-packet exchange (time request, name lookup, page-level
file access to the Woodstock File Server, etc.).
Some were reliable packet streams, but not byte streams (boot loader
sending a boot file to an Alto, EFTP, etc.).
6.  The split of TCP into TCP/IP provided a lot more flexibility -- a
critical move which contributed to its ultimate success.

A very fun time.

John Shoch

PS:  We were fortunate that Vint invited us to attend these meetings.
I went to many of them, but the bulk of the Pup work was done by Ed
Taft and Dave Boggs.  Some examples, from over 45 years ago:

2/2/1975, Ed Taft, "Implementation of Pup in Tenex"
"Since I am about to begin implementation, I would appreciate
receiving any comments...."
"Raw Packet Mode:  In raw packet mode, entire Pups are transferred to
and from the user address space, including Pup headers. ...
Acknowledgements, timeouts, duplicate message detection, flow control,
and similar functions are left entirely up to the user program to perform"
"Byte Stream Mode:  ...  The general idea of byte stream mode is that
the user program simply reads and writes streams of pure data
bytes...."

6/28/1975, Ed Taft, "Implementation of Pup in Tenex"
"This is another revision of a memo with the same title dated Feb. 2,
1975.  Pup transfers in raw packet mode are now implemented."

9/18/1975, Ed Taft, "Implementation of Pup in Tenex" [About 7 months
after Taft started.  About 2 years before the meeting in IEN 3.]
"This is another revision of a memo with the same title dated June 28,
1975.  All facilities described in this document are now implemented."

9/27/1975, Ed Taft, "Pup Servers on Maxc"
Includes descriptions of:  Telnet (Byte Stream), Gateway Information
(Raw Packet), File Transfer (Byte Stream),
Misc. Services (Date & Time, Mail Check, Network Directory Lookup,
Where is [Maxc] user;  Raw Packet), Echo (Raw Packet).



More information about the Internet-history mailing list