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

John Shoch j at shoch.com
Tue Feb 3 12:23:32 PST 2026


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



More information about the Internet-history mailing list