[ih] Internet history - code and people (was Re: BBN C-series computers)
Brian E Carpenter
brian.e.carpenter at gmail.com
Wed Oct 25 18:18:35 PDT 2017
On 26/10/2017 11:44, Vint Cerf wrote:
> i think the DEC
If you mean the Ultrix code, that seems to have been derived from 4.2BSD.
Released June 1984 according to Wikipedia.
On VAX/VMS we had to use the Wollongong third-party product for a long time.
That was allegedly based on BSD code in some way, I don't recall the details.
On PDP/11s there seems to have been a bit of everything.
> and HP implementations may have been from scratch (?) while
> the IBM Labs version might had had contact with Univ Wisconsin (Larry
> Landweber would know) or UCLA (Bob Braden).
It was a complicated story on the mainframes. WISCNET was indeed the way
in for VM/CMS users (as early as 1985), and IBM apparently sold it as
a product. But that wasn't the whole story. There's a brief discussion in
Olivier Martin's book:
http://www.ictconsulting.ch/reports/European-Research-Internet-History.pdf
I don't know the early story for MVS users.
AIX was released in 1986 "based on UNIX System V... also incorporated source
code from 4.2 and 4.3 BSD".
Then there were numerous false starts in IBM over TCP/IP, because of
frantic internal attempts to defeat it as an enemy of SNA, and equally
frantic attempts to support it as the clear winner. This didn't end
until Lou Gerstner took over as CEO, put Irving Wladawsky-Berger in
charge of the Internet Division, and IBM incidentally hired me away
from CERN. But then I spent ten years running errands between the
development teams for each IBM operating system trying to make their
TCP/IP stacks feature-compatible. (And failing, of course.)
Brian
> Landweber was involved in an
> IP/X.25 implementation also. The DEC implementation might have had help
> from BBN (does anyone on the list recall)?
>
> vint
>
>
> On Wed, Oct 25, 2017 at 5:52 PM, Jack Haverty <jack at 3kitty.org> wrote:
>
>> 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--
More information about the Internet-history
mailing list