[ih] NCP and TCP implementations

Clem Cole clemc at ccc.com
Wed Jul 22 05:56:27 PDT 2020


more/other memories

On Tue, Jul 21, 2020 at 9:43 PM Noel Chiappa via Internet-history <
internet-history at elists.isoc.org> wrote:

>     > On 20.03.10, vinton cerf via Internet-history wrote:
>     >
>     > Steve Kirsch asks in what languages NCP and TCP were written.
>     > ...
>     > Another version was written for PDP-11/23 by Jim Mathis but not
> clear in
>     > what language.
>
Phil Karn and I had a C version in the late 1970s at CMU.  I thought we had
access to something called the portable OS stack from BBN[1] but I could be
mistaken.  We definitely had the V6 UNIX NCP from UofI and some early TCP
RFCs.   We were using a Z80 C compiler from Teletype Corp that Phil brought
with him when he OYOC'ed. Tron McConnell and I had written a simple
real-time system for the Mellon BUC-1 multiprocessor.   IIRC We had
prototyped it on a Multibus chassis that supported what we called tasks but
really in today's world, was much more of a threaded model (Don Gregg may
have been part of this too, he came to Mellon Institute at some point, but
I've forgotten when).

This TCP stack would become the basis for the code for the original CMU
distributed front end, which was running multibus boards, but as I was
leaving it was moving to LSI/11s and eventually Andy Bechetshiem's first
68000 multibus board (which he built in the EE Dept as an MS student).
 The original stack was incomplete at that time but basically worked well
enough to talk to a few systems without crashing.   There was a nascent
Telnet that could talk to a couple of Vaxen, the 10s (and 20s), plus the
UNIX boxes.  At some point, somebody (probably Phil, Danny Klein, or one
of the other PDP-10 folks) was messing with SUPDUP to try to talk to the
10s better, I don't remember the status of that other than an attempt to
create it.

>From a DNA standpoint, the Tektronix BLISS implementation for VMS was
semi-based on this TCP stack. I had brought the C code with me to
Tektronix.    Stan Smith and I had to start over for VMS, but we definitely
peaked at that code, as well as the later UNET code base from Borden and
Shaw @ 3Com.   CMU would take the BLISS code back and add features we never
completed and distribute it as the CMU/Tek TCP stack for VMS (I still have
the CMU/Tek version on a 9-track if I can try to read it sometime).

Phil Karn would start over and created KA9Q in C and Z80 Assembler for his
CP/M box originally to talk to all his packet radio gear.


[1] The BBN memory may have been a later version I saw and I'm mixing that
with the CMU stuff.  Funny, what you remember. I don't remember the CMU
stuff having the mbufs memory allocator but have distinct memories that BBN
did, and trying to understand how it worked.



More information about the Internet-history mailing list