

30 instruction TCP receive - xtacy
http://www.pdl.cmu.edu/mailinglists/ips/mail/msg00133.html

======
cpr
Ah, yes, lightweight TCP processing...

I remember working (as the MIT-EECS department systems guy) in the late 70's
with the huge, galumphing, tortured BBN TCP/IP code for TOPS-20/TENEX, the
first generation of TCP implementations, after the "big switch" that turned
off all NCP (pre-TCP ARPAnet protocol) implementations in favor of TCP.

Then I joined a startup in 80/81 building the first typesetting-quality laser
printers, Imagen (a spin-off from Knuth's TeX project). We built controllers
on the Andy Bechtolstein-designed SUN-1 boards that Sun later licensed as the
basis for their first workstations). Meanwhile, I had built a home-grown real-
time OS for the SUN-1, and hired Geoff Steckel from Dave Clark's group at MIT
(Dave was one of the co-designers of TCP/IP).

Geoff had already built several small lightweight implementations of TCP/IP in
C, and he did it again for us, so we had a full multi-tasking kernel with
multiple TCP/IP connections in a few hundred lines of code (for the TCP
portion).

The moral of the story is, you have to throw a bunch of implementations away
before you can begin to see the essential simplicity of the task at hand.

Van Jacobsen did the same, later, by developing a "fast path" through the
Berkeley Unix TCP/IP implementation that could drive an 100BaseT Ethernet at
nearly full hardware bandwidth between two Sun workstations. That was quite
something for the mid-80's.

~~~
brk
_That was quite something for the mid-80's._

Yes, especially because the 100BaseT specs didn't come about until the
mid-90's. Even 10BaseT wasn't really predominant until the early 90's. I seem
to recall Cat5 just barely coming about in around 1995. Twisted pair of any
kind was pretty rare in the 80's.

10Base2 (coax, thin Ethernet) came about in 1985, and was (AFAICR) pretty much
"the standard" until about 1990(ish).

I could see driving a _10_ BaseT NIC at full bandwidth in the mid-80's, but
don't believe there was a 100Mbs ANYTHING at that time.

~~~
cpr
Sorry, faulty memory...

------
slashclee
Beautiful. And also kind of bad-ass.

