[ih] Fwd: Early internetworking ca. 1976 / First ARPANET Link Put Into Service

Jack Haverty jack at 3kitty.org
Mon Feb 9 19:08:27 PST 2026


The SRI TCP code was written in assembler language for the LSI-11. So 
that code was essentially compatible with the PDP-11/40 which used a 
similar (identical?) instruction set.  Jim provided me with the TCP 
(version 2) code, and I used it as a basis for the first TCP for Unix, 
which I implemented in 1977/78.  The code to implement the state 
diagram, datagram parsing, and such parts could be used directly.  Of 
course anything relating to the OS had to be new code, since the SRI TCP 
ran on MOS which was quite different from Unix.  Since I had never 
programmed any DEC -11 system, or heard of TCP, or knew anything about 
Unix, it was very valuable to have Jim's help.

Since the project needing the Unix TCP was using it to communicate with 
an LSI-11 running the SRI TCP, this made it especially likely that those 
machines could communicate, even before the "Bakeoff" occurred to nail 
down interoperability and create a precise specification of the protocol.

One interesting debugging phase occurred when SRI was having some kind 
of contract dispute with the government and Jim was sympathetic but 
wasn't permitted to do any work on the LSI-11 TCP.  We ended up 
debugging his TCP code by using DDT and packet traces to find some minor 
error, patching the code, observing that it now worked, and then 
emailing a bug report to Jim at SRI - something like "we don't know 
exactly why, but changing the instruction at location xxxxx fixed our 
problem!"   Subsequently TCP evolved to become TCP/IPV4, and we made the 
necessary changes independently to the two systems.

So I can't say for sure that Jim implemented the TIU's TCP, but he's the 
one who gave it to me in 1977 and helped with questions etc.

/Jack Haverty

On 2/9/26 18:30, Vint Cerf via Internet-history wrote:
> there is no question about this - he was charged with implementing on
> LSI-11/23
>
> v
>
>
> On Mon, Feb 9, 2026 at 6:39 PM Don Nielson <nielsonz at pacbell.net> wrote:
>
>> I should have affirmed that Jim Mathis was almost certainly responsible
>> for the TCP process in the TIU.  Don
>> Sent from my iPhone
>>
>> On Feb 9, 2026, at 4:33 AM, Vint Cerf <vint at google.com> wrote:
>>
>> 
>> thanks Don!! we were trying to figure out early efforts at bridging
>> networks - PRNET was a key project for exploring that concept.
>>
>> v
>>
>>
>> On Mon, Feb 9, 2026 at 3:46 AM Don Nielson <nielsonz at pacbell.net> wrote:
>>
>>> Vint, Barbara, and all,
>>> I'm not sure I understand the impetus for all this but thought I'd try to
>>> help pin down some dates in the early use of the TIU and TCP.
>>>
>>> The first I could find was in a Packet Radio Quarterly Report covering
>>> 1 May 1976 to 31 July 1976.  During that time a gateway was in the
>>> station computer and was first just doing header swaps between the
>>> ARPANET and the PRNET.  But in the same period the LSI-11 TIU was
>>> there running a single-connection user version TCP.  Rather that try
>>> to describe what was written, I've attached three images of the report
>>> and the text.  Reference to the description of the TIU architecture
>>> also included Dave Retz as the lead author so his hand was in it
>>> as well, probably more to do with the MOS operating system and
>>> the ELF processes working there.  I've also attached a process
>>> diagram of the TIU circa Feb 1977.
>>>
>>> Hope this helps.
>>> Don
>>>
>>>
>>>
>>>
>>> On 2/5/26 4:10 AM, Vint Cerf wrote:
>>>
>>> Jim Mathis did the TIU system - must have been circa 1975/1976
>>> vint
>>>
>>>
>>> On Thu, Feb 5, 2026 at 1:01 AM Greg Skinner via Internet-history <
>>> internet-history at elists.isoc.org> wrote:
>>>
>>>> Forwarded for Barbara
>>>>
>>>>> ----- Forwarded Message -----
>>>>> From: Barbara Denny <b_a_denny at yahoo.com>
>>>>> To: internet-history <internet-history at elists.isoc.org>
>>>>> Sent: Wednesday, February 4, 2026 at 09:34:45 PM PST
>>>>> Subject: Re: [ih] Early internetworking ca. 1976 / First ARPANET Link
>>>> Put Into Service
>>>>> Having trouble with the mailing list again so not all the text for
>>>> this thread is included.
>>>>> This discussion covers a time period before I worked on packet radio.
>>>> John Shoch's recollection made me curious about when TCP was first used
>>>> over packet radio and when the first generation radios (EPRs?) were
>>>> available. The place I have started to look for this information is the TIU
>>>> (Terminal Interface Unit).  The TIU had TCP and TELNET. It also had SPP
>>>> (station-packet-radio protocol) to improve reliability and support for
>>>> other functions. FYI,  I think the early packet radios had an 1822
>>>> interface.
>>>>> I haven't found definitive answers to my questions but I did find a a
>>>> webpage that has some links to documentation in case you are interested in
>>>> the TIU.
>>>>> https://gunkies.org/wiki/Terminal_Interface_Unit
>>>>>
>>>>> BTW,  the use of DSP on this web page does not mean Digital Signal
>>>> Processing. It refers to the Dispatch/SPP modules.
>>>>>
>>>>> barbara
>>>>>
>>>>>
>>>>> On Tuesday, February 3, 2026 at 12:23:55 PM PST, John Shoch via
>>>> Internet-history <internet-history at elists.isoc.org> wrote:
>>>>>
>>>>> Towards the end of last year there was a thread here on the first
>>>> Arpanet
>>>>> link at SRI, and Barbara Denny was kind enough to share a note
>>>> (11/3/25)
>>>>> from Don Nielsen also reminding us of the earliest multi-network tests
>>>> of
>>>>> the TCP Internet at SRI:
>>>>> // 3. First 2-net demo of TCP was on 27 Aug 1976.? PRNET and ARPANET.
>>>>> // 4. First 3-net demo of TCP was on 22 Nov 1977.? PRNET, SATNET, and
>>>>> ARPANET.
>>>>>
>>>>> As I recall, prior to that time all of the TCP design, implementation
>>>> and
>>>>> testing had been done just on the Arpanet.  Building on the early work
>>>> at
>>>>> Stanford, the effort grew to include people at SRI, BBN, and elsewhere.
>>>>> Those demonstrations in 1976 and 1977 -- with a gateway and multiple
>>>>> networks -- were  tremendously important milestones along the path to
>>>> what
>>>>> became the Internet as we know it today.
>>>>>
>>>>> In response to that post, though, I was asked about the actual state
>>>> of the
>>>>> Xerox PUP internetworking effort at that time, in mid-1976.  It took
>>>> me a
>>>>> while to do an archeological dig -- I wanted to find the original
>>>> documents
>>>>> to ensure that we got the history right.  I found a couple of
>>>> interesting
>>>>> things and wrote up a summary.  My friends at the Computer History
>>>> Museum
>>>>> have long encouraged us to document some of the work, and it was
>>>> suggested
>>>>> "you should share it before we lose this history."
>>>>>
>>>>> So, some of the notes, documents, and insights on internetworking in
>>>> 1976
>>>>> (as seen from a slightly different perspective):
>>>>>
>>>>> --In 1972, about 4 years earlier, the first INWG meeting had taken
>>>> place at
>>>>> the ICCC meeting in Washington DC.
>>>>> --In the summer of 1973, about 3 years earlier, there were ongoing
>>>> meetings
>>>>> at Stanford, and Cerf and Kahn were drafting the TCP paper at the
>>>> Cabana
>>>>> hotel in Palo Alto.  That same summer there were early discussions at
>>>> PARC
>>>>> about the proposed Ethernet (as well as an alternative design simply
>>>> called
>>>>> LOCAL network), and the need to interconnect them.  A memo from Aug.
>>>> 1973
>>>>> reported a discussion on "...the problems of interfacing the LOCAL and
>>>>> ETHER networks.  This memo describes a rather general proposal for
>>>>> introduction of a message format standard which emerged from the
>>>>> discussion.  The adoption of the standard would enable us to
>>>> interconnect
>>>>> different networks—essentially forming a network of networks…..”  A
>>>> drawing
>>>>> includes ARPA, ETHER, and LOCAL networks.
>>>>> --In the Spring of 1974 the Ethernet was maturing (while the
>>>> alternative
>>>>> LOCAL net never emerged), and there were some basic Ethernet-specific
>>>>> protocols implemented (EEFTP).  Yet it was clear that there would be a
>>>> need
>>>>> to interconnect Ethernet networks, both locally and across geographies.
>>>>> Metcalfe had been participating in some of the INWG meetings, but it
>>>> was
>>>>> also evident that we could not wait for that effort -- we needed
>>>> something
>>>>> immediately.
>>>>> --That led to Bob's initial draft memo, "A Proposed PUP -- PARC
>>>> Universal
>>>>> Packet" dated March 19, 1974, which began:
>>>>> "This memo is written and should be read with caution; its purpose is
>>>> to
>>>>> promote a standard.  Because there isn’t an ice cube's chance in hell
>>>> that
>>>>> our (or anyone else's) standard will be adopted without interminable
>>>> debate
>>>>> and revision, the memo itself is quick and dirty. This way we get the
>>>> ball
>>>>> rolling early. ...  A list of the packet networks at Parc would
>>>> include, in
>>>>> arbitrary order of pedigree, (1) Ethernets, (2) Localnets, (3)
>>>> Arpanets,
>>>>> (4) MCAnets, and (5) EIAnets.”
>>>>> [MCANets connected Data General Novas.  "EIAnets" evolved into a
>>>> backbone
>>>>> packet switching network among Gateways, made up of leased serial
>>>> lines.]
>>>>> .
>>>>> --Over the next two years the further design, implementation, and
>>>>> refinement of PUP were done primarily by David Boggs and Ed Taft.
>>>> Progress
>>>>> was reported in a series of memos, initially by Metcalfe and later by
>>>> Boggs
>>>>> and Taft:
>>>>>    PUP Revisited
>>>>>    PUP Converging
>>>>>    Naming and Addressing Conventions for PUP
>>>>>    A Nova Gateway
>>>>>    Implementation of PUP in Tenex
>>>>>    PUP Again
>>>>>    PUP Connection State Diagram
>>>>>    PUP Servers on Maxc
>>>>>    etc., etc., etc.
>>>>>
>>>>> --So where did things stand, after two years of work, in mid-1976?  The
>>>>> best document I have found describing things ca. 1976 is from 6 months
>>>>> earlier, a "draft" of "PUP Overview" by Taft dated Dec. 21, 1975.  He
>>>>> reports:
>>>>> "Local communication is carried on by means of several independent
>>>> Ethernets
>>>>> (passive broadcast networks operating at 3 mb/s) and two MCAs
>>>>> (Multiprocessor
>>>>> Communications Adaptors for interconnecting Nova computers, operating
>>>> at
>>>>> 1.6 mb/s).
>>>>> Long-haul communication is carried on over the Arpanet (a
>>>> store-and-forward
>>>>> packet
>>>>> switched network·operating at 50 kb/s). We are considering making use
>>>> of
>>>>> other
>>>>> transport mechanisms, such as optical fibers for very high bandwidth
>>>> local
>>>>> communication, leased phone lines for regional communication at modest
>>>>> bandwidths,
>>>>> and commercial·packet switching services such as Telenet."
>>>>> The memo goes on at length to describe Basic Principles, Levels of
>>>>> Protocol, Standard Packet Format, Inter-Network Addressing,
>>>> Fragmentation,
>>>>> etc.
>>>>> I only have a draft of this memo;  I have not yet found a copy of the
>>>>> complete final version.
>>>>>
>>>>>
>>>> https://drive.google.com/file/d/106a4W2mXsi4Ii-YzRgzsTAwe9_34IqJg/view?usp=sharing
>>>>> --To further describe the operational state of the PUP Internet in the
>>>>> Spring of 1976, though, I have also found a copy of the then-current
>>>> text
>>>>> file used to define assigned network numbers, host numbers, well-known
>>>>> sockets, and name-to-internet-address mapping.  This file was used to
>>>>> initially configure the gateways, and to load the name server.  The
>>>> Tenex
>>>>> header shows this as the 50th copy of the file that was created --
>>>>> PUP-NETWORK.TXT;50, dated March 19, 1976.
>>>>> It shows that the PUP Internet at that time included 2 Ethernets, 2
>>>> MCAs,
>>>>> and the Arpanet.
>>>>> Well-known Sockets were defined for Telnet, Gateway-Info (routing
>>>> updates),
>>>>> FTP, Misc. Services (name, time, etc.), and Echo.
>>>>> The name server database allowed a machine to have multiple names
>>>> (e.g.,
>>>>> MAXC = Maxc1 = Parc-Maxc), and multiple internet addresses (if
>>>> connected to
>>>>> more than one network).
>>>>> I count 27 Novas on the PUP Internet at the time.  This includes 3
>>>> machines
>>>>> acting as Gateways:
>>>>>    --The Portola Gateway, on both Ethernets, one MCA, and the Arpanet,
>>>>>    --The front end to the MAXC time sharing system, on one Ethernet,
>>>> both
>>>>> MCAs, and the Arpanet.
>>>>>    --A Nova on one Ethernet and one MCA.
>>>>> There were 7 Novas only on one Ethernet (including a machine for font
>>>>> design and two for laser printer units).
>>>>> The remaining 17 Novas had both Ethernet and MCA interfaces (but were
>>>> not
>>>>> necessarily running as Gateways).  These included Novas configured as
>>>>> servers controlling the older XGP printer,  the newer EARS laser
>>>> printer,
>>>>> the Woodstock File System (WFS), and others.
>>>>> There were also 67 individual Altos on the Ethernets.  Most of these
>>>> were
>>>>> for personal use, but the list also included one Alto as a dedicated
>>>> Data
>>>>> Line Scanner system (i.e., a TIP, for in-bound and out-bound terminal
>>>>> traffic).
>>>>> [My hand-written notes suggest that there were at least 9 other Altos
>>>> in
>>>>> our group which were not in the database (including mine).  Even if no
>>>> one
>>>>> could find them via the name server, they could operate as client
>>>> machines
>>>>> on the PUP Internet.]
>>>>> This system was in regular use, day and night, with over 100 machines
>>>> on 5
>>>>> networks of 3 types.
>>>>>
>>>>>
>>>> https://drive.google.com/file/d/1SZ6yRLp6UqpbFKxbKK4D2stB6BcBX5qq/view?usp=sharing
>>>>>
>>>>> That was the state of the first and largest operational Internet in
>>>> March
>>>>> 1976, 5 months before the important 2-net SRI demo of the TCP Internet.
>>>>>
>>>>> John
>>>>>
>>>>> PS:  A few additional notes and quick lessons from that period.
>>>>> 1.  For some software-intensive projects a smaller team can be very
>>>>> productive.  There may have been ~6 of us helping and kibitizing, but
>>>> the
>>>>> vast majority of the programming and documentation was done by Taft and
>>>>> Boggs.
>>>>> 2.  As best we could, we did try to share some of our general progress
>>>> with
>>>>> others.
>>>>> --I had been full-time at PARC since 1971, but had also been
>>>> encouraged to
>>>>> "try to get a quick PhD" at Stanford.  I took part in Vint's networking
>>>>> seminar.
>>>>> --In the Spring of 1976 (before the 2-network demo at SRI), three of us
>>>>> from Parc were enrolled in a Systems Programming class being taught by
>>>>> Vint.  We had to do a group programming project, so the 3 of us
>>>> undertook
>>>>> implementation of the 2nd generation simple file transfer:  evolving
>>>> from
>>>>> the Ethernet-based EEFTP (written in Nova assembler) to a new
>>>>> internet-capable Pup-based EFTP (written in BCPL).  We turned in the
>>>>> listings, complete with some packet traces (from an Ethernet watcher)
>>>> to
>>>>> show how it worked.  We all got an A+ -- thank you, Vint!
>>>>> --Later, Vint graciously arranged for us to attend some of the TCP
>>>> working
>>>>> group meetings.  In July 1977 (before the 3-network demo) Yogen Dalal
>>>> (who
>>>>> had been a graduate student under Vint) and I attended a TCP Working
>>>> Group
>>>>> meeting held at MIT.  Jon Postel's TCP Meeting Notes (later registered
>>>> as
>>>>> IEN 65) reflected some of our overview:  "PARC has 5 different networks
>>>>> with peices [sic] in Palo Alto, Los Angeles and various places on the
>>>> East
>>>>> Coast.  Approximately 14 different networks, approximately 300 hosts
>>>>> connected."
>>>>> --In the following month, Aug. 1977, we attended an Internet meeting
>>>> at ISI
>>>>> -- where we mentioned our gateway routing, gateway services,
>>>>> naming/addressing/routing, etc. [IEN 3] [IEN 19] [IEN 20]
>>>>> --Later, with the help of Don Nielsen and the crew at SRI, we became
>>>> users
>>>>> of the PRNet -- adding it as a network in our internet, carrying
>>>>> encapsulated Pups wirelessly between two Pup gateways.  This was
>>>> reported
>>>>> in IEN 78, https://www.rfc-editor.org/ien/ien78.pdf
>>>>> 3.  At this time the TCP Internet was designed to expose a reliable
>>>> byte
>>>>> stream interface.
>>>>> The PUP Internet architecture provided interfaces at multiple levels:
>>>>> --Reliable byte stream (BSP), used for Telnet, FTP, etc.
>>>>> --Reliable packet stream (EFTP), used for simple file transfer, esp.
>>>> to a
>>>>> print server.
>>>>> --Raw packet access, for very simple tasks (name server, time server,
>>>> echo,
>>>>> etc.)
>>>>> Two years later, in 1978, the split of TCP into TCP and IP eventually
>>>>> allowed that kind of flexibility.
>>>>> 4.  Network-relative addresses were used in both the TCP Internet and
>>>> the
>>>>> PUP Internet, with a network ID and a host ID.  This worked OK in the
>>>> early
>>>>> days of both TCP and PUP, but we quickly realized that a) this did not
>>>> work
>>>>> well if you wanted to move a machine from one network to another, and
>>>> b)
>>>>> this would not scale adequately.  We tried to learn from both the
>>>>> Experimental Ethernet and the PUP Internet.  Thus, Yogen Dalal
>>>> developed
>>>>> the 48-bit flat address space -- used in what became the 2nd
>>>> generation DIX
>>>>> Ethernet standard, and used in the 2nd-generation Xerox Network Systems
>>>>> (XNS) protocols.  The 48-bit Ethernet address design has scaled and
>>>> endured
>>>>> for ~50 years -- great work by Yogen.
>>>>>    https://dl.acm.org/doi/epdf/10.1145/800081.802680
>>>>>
>>>> --
>>>> Internet-history mailing list
>>>> Internet-history at elists.isoc.org
>>>> https://elists.isoc.org/mailman/listinfo/internet-history
>>>> -
>>>> Unsubscribe:
>>>> https://app.smartsheet.com/b/form/9b6ef0621638436ab0a9b23cb0668b0b?The%20list%20to%20be%20unsubscribed%20from=Internet-history
>>>>
>>>
>>> --
>>> Please send any postal/overnight deliveries to:
>>> Vint Cerf
>>> Google, LLC
>>> 1900 Reston Metro Plaza, 16th Floor
>>> Reston, VA 20190
>>> +1 (571) 213 1346 <(571)%20213-1346>
>>>
>>>
>>> until further notice
>>>
>>>
>>>
>>>
>>>
>> --
>> Please send any postal/overnight deliveries to:
>> Vint Cerf
>> Google, LLC
>> 1900 Reston Metro Plaza, 16th Floor
>> Reston, VA 20190
>> +1 (571) 213 1346 <(571)%20213-1346>
>>
>>
>> until further notice
>>
>>
>>
>>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 665 bytes
Desc: OpenPGP digital signature
URL: <http://elists.isoc.org/pipermail/internet-history/attachments/20260209/afd66bf6/attachment.asc>


More information about the Internet-history mailing list