[ih] Internet history - code and people (was Re: BBN C-series computers)

Jack Haverty jack at 3kitty.org
Wed Oct 25 14:52:44 PDT 2017


I've always been curious about the ways, other than technical committees
as documented in RFCs et al, that Internet history was driven.

E.G., did the DEC/IBM/HP implementations in their respective labs use
any of the code developed by ARPA for their machines?  Recruit the
people?  Or did they start from the spec?  Did the 30+ vendors of
DOS/Windows TCP products spring from the work by Jim Mathis, Dave Mills,
et al?

There was a lot of talk back then about "Technology Transfer" as a
government goal - basically saying that the government didn't want to
fund development forever.  Just wondering how that worked out...  Did
TCP/IP spread because the availability of free code enabled it?   Or
because the people moved from the research to product worlds and brought
the knowledge (and code) with them?

I'm sure some of this happened.  Maybe some historian will tackle the
problem of uncovering the various paths and timing that people and code
took over the early decade or so.   And how important that was to how
things turned out.

/Jack

On 10/25/2017 12:28 PM, Vint Cerf wrote:
> sorry "when" Microsoft not "with" ....duh
> 
> v
> 
> 
> On Wed, Oct 25, 2017 at 3:27 PM, Vint Cerf <vint at google.com
> <mailto:vint at google.com>> wrote:
> 
>     FTP Software - TCP/IP for DOS/Windows - went belly up with Microsoft
>     integrated this into a version of their OS.
> 
>     IBM, DEC and HP did implementations in the research labs without
>     charge to DARPA.
> 
>     v
> 
> 
>     On Wed, Oct 25, 2017 at 2:27 PM, Jack Haverty <jack at 3kitty.org
>     <mailto:jack at 3kitty.org>> wrote:
> 
>         The history of TCP implementations was driven by non-technical
>         forces
>         too.  As the saying goes -- "Follow the money."
> 
>         ARPA paid for the development of most if not all of the very
>         early TCP
>         implementations: the BBN-TENEX and LSI-11 for the Packet Radio
>         project,
>         my own PDP-11/40 Unix implementation as part of a Network Security
>         research program, Sax/Edmond's HP-3000 code, Braden's IBM work
>         at UCLA,
>         Clark/Chiappa at MIT, Mills LSI-11 at UDel, and Gurwitz Vax
>         implementation.  Probably more I've forgotten.  Wingfield's
>         PDP-11/70
>         was funded, IIRC, by DCEC, the research arm of DCA - so it
>         represented a
>         tiny step from the research/ARPA world into the operational side.
> 
>         ARPA also paid for development of OSes, in particular BSD.  As
>         the TCP
>         implementations were completed, ARPA stopped funding further
>         TCP-specific work, and, also IIRC, made those baseline
>         implementations
>         generally available.  Berkeley continued BSD with ARPA funds, which
>         evolved into Sun.  Big government contractors (motivated by the
>         contractual requirement to support TCP) built TCPs as they needed.
> 
>         Note also that the "await/capac" Unix interface was created by Randy
>         Rettberg and I to be the minimal functionality, with absolute
>         minimal
>         kernel code footprint, that we knew was needed to be able to write
>         network applications - ftp, telnet, etc.  The goal was to cram
>         it into
>         the PDP-11/40, not to make a definitive interface for general
>         Unix use.
>         So it's not surprising that sockets took over.
> 
>         Also, someone commented that it would have been possible to do
>         networking with standard Unix primitives at the time, by having
>         multiple
>         processes interacting.  We actually tried that.  More
>         accurately, Ray
>         Tomlinson (yes the same one) ported a network security
>         application that
>         had been running on BBN-TENEX into a Unix implementation with a
>         dozen or
>         so interacting processes.  With all of the context switching it
>         was so
>         slow that it was totally unusable.  Plan B was await/capac to
>         make it
>         possible to use a single Unix process instead.
> 
>         Hardware vendors built TCPs too, such as the C/70.  IIRC, the C/70
>         development for network management was partially funded by DCA,
>         so that
>         would have provided support for TCP development too.
> 
>         Startups popped up to fill gaps.  Microsoft was a tad late to
>         the party,
>         and a slew of small companies created TCPs for DOS/Windows.  I
>         recall
>         circa 1990 we had to deal with testing our software using 30+
>         different
>         TCP implementations for Windows that were then in common use.
> 
>         Historians may find DNA traces of some of those baseline 1980-ish
>         implementations in the later systems.  My gut feeling is that the
>         choices that were made were not necessarily driven much by technical
>         evaluations, but more often by pragmatic considerations -
>         availability
>         of code, or of personnel with relevant experience.
> 
>         So, when you seek to unravel the history of TCP (and the
>         Internet), I'd
>         suggest also following the trails of the money, the people, as
>         well as
>         the software to understand why things happened the way they
>         did.  That
>         won't be easy...
> 
>         HTH,
>         /Jack
> 
>         On 10/25/2017 08:27 AM, James J Dempsey wrote:
>         > Paul Ruizendaal <pnr at planet.nl <mailto:pnr at planet.nl>> wrote:
>         >
>         >>> On 24 Oct 2017, at 20:52, James J Dempsey <jjd at jjd.com
>         <mailto:jjd at jjd.com>> wrote:
>         >>>
>         >>> The C/70 (as well as the C/60) definitely did have a TCP/IP
>         stack.  One of
>         >>> the first uses of the C/70 was to build and run the NU
>         Network Monitoring
>         >>> system.  When I arrived at BBN in the Summer of 1981, we
>         were already on
>         >>> track to transition ARPANET to TCP/IP, which as we know
>         eventually happened
>         >>> on 1 Jan 1983.
>         >>
>         >> Thanks for confirming that. Would you recall if the C/70 used
>         the sockets API
>         >> or the earlier arpanet API? (I would suspect the latter).
>         >>
>         >> If the former, it would be the only back port of sockets to
>         V7 that I?m
>         >> aware of (unless one thinks of 2.8BSD/2.9BSD as being V7).
>         >
>         > If you check out RFC 801 (written Nov 1981), Rob Gurwitz (who
>         wrote BBN's
>         > UNIX TCP implementation) says of "BBN C70 UNIX":
>         >
>         >       The C/70 processor is a BBN-designed system with a native
>         >       instruction set oriented toward executing the C
>         language.  It
>         >       supports UNIX Version 7 and provides for user processes
>         with a
>         >       20-bit address space.  The TCP/IP implementation for the
>         C/70 was
>         >       ported from the BBN VAX TCP/IP, and shares all of its
>         features.
>         >
>         >       This version of TCP/IP is running experimentally at BBN,
>         but is
>         >       still under development.  Performance tuning is
>         underway, to make
>         >       it more compatible with the C/70's memory management system.
>         >
>         > In the same RFC, Rob writes of the BBN VAX UNIX TCP
>         implementation:
>         >
>         >       The VAX TCP/IP implementation is written in C for
>         Berkeley 4.1BSD
>         >       UNIX, and runs in the UNIX kernel.  It has been run on
>         VAX 11/780s
>         >       and 750s at several sites, and is due to be generally
>         available in
>         >       early 1982.
>         >
>         >       The implementation conforms to the TCP and IP
>         specifications (RFC
>         >       791, 793).  The implementation supports the new extended
>         internet
>         >       address formats, and both GGP and ICMP.  It also
>         supports multiple
>         >       network access protocols and device drivers.  Aside from
>         ARPANET
>         >       1822 and the ACC LH/DH-11 driver, experimental drivers
>         have also
>         >       been developed for ETHERNET.  There are user interfaces for
>         >       accessing the IP and local network access layers
>         independent of
>         >       the TCP.
>         >
>         >       Higher level protocol services include user and server
>         TELNET,
>         >       MTP, and FTP, implemented as user level programs.  There
>         are also
>         >       tools available for monitoring and recording network
>         traffic for
>         >       debugging purposes.
>         >
>         >       Continuing development includes performance
>         enhancements.  The
>         >       implementation is described in IEN-168.
>         >
>         > IEN-168 (available here
>         https://www.rfc-editor.org/ien/ien168.txt
>         <https://www.rfc-editor.org/ien/ien168.txt> ) does not
>         > contain the word "socket", so I suspect that that means the
>         BBN-UNIX
>         > implementation of TCP didn't contains the socket interface,
>         initially.
>         >
>         > In "Networking Implementation Notes 4.4BSD Edition" (
>         > https://docs.freebsd.org/44doc/smm/18.net/paper.pdf
>         <https://docs.freebsd.org/44doc/smm/18.net/paper.pdf> ) Sam
>         Leffler and Bill
>         > Joy acknowledge the BBN TCP/IP implementation:
>         >
>         >     Many of the ideas related to protocol modularity, memory
>         management, and
>         >     network interfaces are based on Rob Gurwitz’s TCP/IP
>         implementation for the
>         >     4.1BSD version of UNIX on the VAX [Gurwitz81].
>         >
>         > [Gurwitz81] is IEN-168.
>         >
>         > Finally, at http://www.xbbn.org/note-12.html
>         <http://www.xbbn.org/note-12.html> there is this description of
>         > sockets and BBN's TCP implementation:
>         >
>         >       The BBN BSD TCP was the standard TCP for 4BSD and BSD
>         UNIX 4.1. However, in
>         >       BSD 4.2, the team at U.C. Berkeley created their own and
>         very different
>         >       implementation of TCP/IP (using the now familiar socket
>         interface developed
>         >       by Bill Joy and Sam Leffler of Berkeley along with
>         Gurwitz).  BBN promptly
>         >       revised its TCP implementation to use the socket
>         interface, and for about a
>         >       year there was a battle to determine whose networking
>         code would take
>         >       precedence.  Although the BBN code won some adherents,
>         and was licensed to
>         >       several computer vendors, the Berkeley code won the battle.
>         >
>         > I hope this clears that up.
>         >
>         > --Jim Dempsey--
>         >
>         > _______
>         > internet-history mailing list
>         > internet-history at postel.org <mailto:internet-history at postel.org>
>         > http://mailman.postel.org/mailman/listinfo/internet-history
>         <http://mailman.postel.org/mailman/listinfo/internet-history>
>         > Contact list-owner at postel.org <mailto:list-owner at postel.org>
>         for assistance.
>         >
>         _______
>         internet-history mailing list
>         internet-history at postel.org <mailto:internet-history at postel.org>
>         http://mailman.postel.org/mailman/listinfo/internet-history
>         <http://mailman.postel.org/mailman/listinfo/internet-history>
>         Contact list-owner at postel.org <mailto:list-owner at postel.org> for
>         assistance.
> 
> 
> 
> 
>     -- 
>     New postal address:
>     Google
>     1875 Explorer Street, 10th Floor
>     Reston, VA 20190
> 
> 
> 
> 
> -- 
> New postal address:
> Google
> 1875 Explorer Street, 10th Floor
> Reston, VA 20190



More information about the Internet-history mailing list