[TUHS] Early Internet work (Was: History of select(2))

Noel Chiappa jnc at mercury.lcs.mit.edu
Mon Jan 16 11:01:01 AEST 2017

    > From: Paul Ruizendaal

    > I guess by April 1981 (RFC777) we reach a point where things are
    > specified to a level where implementations would interoperate with
    > today's implementations.

Yes and no. Earlier boxes would interoperate, _if addresses on each end were
chosen properly_. Modern handling of addresses on hosts (for the 'is this
destination on my physical network' step of the packet-sending algorithm) did
not come in until RFC-1122 (October 1989); prior to that, lots of host code
probably tried to figure out if the destination was class A, B or C, etc, etc.

Also, until RFC-826 (ARP, November 1982) pretty much all the network
interfaces (and thus the code to turn the 'destination IP address' into an
attached physical network address, for the first hop) were things like ARPANet
that no longer exist, so you could't _actually_ fire up one of them unless you
do something like the 'ARPANet emulation' that the various PDP-10 simulators
use to allow old OS's running on them to talk to the current Internet.

    > only if one accepts IEN54/55 as 'TCP/IP'

What are they, if not TCP/IP?

Not the modern variant, of course, but then again, nothing before the early
90's is truly 'modern TCP/IP'.

    > IEN98 mentions a TCP3 stack done for Network Unix ...  in 1978 by DTI /
    > Gary Grossman.

I read this, BITD, but don't recall much about it. I was not impressed by the
coding style.

    > at the same time it also uses old-style assignments ('=+' instead of
    > '+='). Could this be "typesetter C"?

I don't know. IIRC, that compiler supported both styles. It had to have been a
later compiler than the one that came with V6, that didn't support longs.  But
I don't recall any bug with long support in the typetter C compiler we had at

    > From the above I would support the moniker "first TCP/IP in C on Unix"

No. That clearly belongs to the DTI one. (The difference between V3 and V4,
while significant, aren't enough to make the DTI not 'TCP/IP in C for Unix'.)

If you want to say 'first V4TCP/IP in C for Unix', maybe; I'd have to look for
dates on the one done at MIT for V6, that may be earlier, but I don't think
so. (Check the minutes in the IEN's, that's probably the best source of data
on progress of the various implementations.)

    > One thing that I'm unclear about is why all this Arpanet work was not
    > filtering more into the versions of Unix done at Bell Labs.   

Here's my _guess_ - ask someone from Bell for a sure answer.

You're using 20/20 hindsight. At that point in time, it was not at all obvious
that TCP/IP was going to take over the world.

There were a couple of alternatives for moving data around that Bell used -
Datakit, and UUCP - and they worked pretty well, and there was no reason to
pick up on this TCP/IP thing.

I suspect that it wasn't until LAN's became popular than TCP/IP looked like a
good thing to have - it fits very well with the capabilities most LANs had (in
term of the service provided to things attached to them). Datakit was its own
thing, and for UUCP you'd have to provide a reliable stream, and TCP/IP 'just
did that'.


More information about the TUHS mailing list