The BBN with
TCP stack is a bit mislabeled: it still appears to
support NCP, but none of the client apps are there, but its directly
built off the NOSC stack.
That's very good. I hope the NCP support there is in good shape.
it's probably a fork from earlier in
development. 79-80 timespawn
would have been *very* early in TCP's life
TCP had been underway since 1973. Experiments called "TCP bakeoffs"
started around 1979.
That is what the “V6 with TCP” on TUHS is:
Following the success of NCP Unix, it became a base for various TCP experiments in the
’77-’79 era. The first was an implementation by Jack Haverty, that wrapped an existing
TCPv2 stack that was written in PDP-11 assembler into a Unix application. It ran in user
mode and depended on Rand ports and several extensions that Jack added to the kernel
(await/capac and a user mode timing variable, where the clock routine incremented a
variable in user space). He used a PDP-11 with little core and the pipes (ports) did not
stay in the file buffers, but flushed onto disk. This killed performance: Jack recalls
that a bad run would average a few characters per second.
Next Mike Wingfield wrote a TCPv4 stack in C, more or less using the architecture of the
above. It was the “winner" of the December 1979 bake-off. I think it is the first
TCPv4 implementation for Unix and maybe the oldest surviving source for TCPv4 overall. I
wanted to try if it would still interoperate with modern TCP/IP, but I never got around to
that. An actual printout survives in the SRI archives and I painstakingly retyped that
source, just weeks before Noel found the right tapes :^). Later still, Craig Partridge
found a full report and listing in the BBN archives (report no. 3724). This NCP Unix with
the Wingfield library is the version that is labeled “BBN V6 with TCP” on TUHS.
Some of the code in the Wingfield stack is to test the protocol. Arpanet essentially
offers circuit switching, and some of the code is there to simulate dropped packets,
out-of-order packets, etc. It also tested security features that were under consideration,
but subsequently dropped as interest shifted to end-to-end encryption.
Again, user mode TCP was not found to be practical, the 16-bit era was ending and that is
when Rob Gurwitz was assigned to write a new stack for the VAX (1980). By that time Jack
Haverty was his boss. Some parts of the BBN VAX-TCP design still echo the user space
origins and experiences of the BBN team in the immediate years before. This stack I got
working and it still interoperates with modern TCP/IP (at least it did some 5 years ago).
Jack Haverty can easily be reached via the internet-history mailing list.
I’ve summarised the history here:
http://chiselapp.com/user/pnr/repository/TUHS_wiki/wiki?name=early_networki…
I should transfer it to the TUHS wiki or to Gunkies one of these days.
===
I am not sure I understood which files are missing or corrupted and in which NCP Unix
trees. Noel retrieved the files from old (mouldy even) tapes so some corruption is quite
possible. Pulling together material from various sources can hopefully lead to a working
source tree. Glad to help.
Further note that NCP Unix was initially developed on 5th Edition, but soon migrated to
6th edition. I am sure that the various installations tracked new developments and
installed extra bits and pieces. The surviving images are from 1979 and for sure would
have picked up bits from newer releases and other sources (such as the Uni of Calgary
buffer extensions).
Paul