[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ih] When was Go Back N adopted by TCP

Hi John,

Just FYI, the Unix TCP listing that survives implemented TCP version 4 and
is dated March 30, 1979.   It is however a descendant of earlier versions
that started with TCP 2.5.

As far as I know, there were no other Unix TCPs at the time - mid 1977.
At least neither BBN nor (D)ARPA knew of any (and I'd expect Vint would
have known).   We needed a TCP for a Unix system as a part of another ARPA
project, so I got the task to take Jim Mathis' existing LSI-11 TCP code and
tweak it as needed to get a TCP functional on Unix on a PDP-11/40 for that
project to use.   That ended up involving mostly kernel hacking to get the
right primitives into Unix and creating interfaces for user processes.   It
was never intended to be a general purpose Unix implementation, and the
design choices necessary to get everything into a PDP-11/40 were not what
anyone would want for a more capable computer, so other implementations
were subsequently started (funded) by DARPA and DCEC at BBN to create "from
scratch" general purpose TCPs for PDP11/45 and /70 Unix systems (Rob
Gurwitz, Al Nemeth, Mike Wingfield and others I can't remember...).

My yellowing lab notebook saved with the listing contains diary entries,
e.g., July 27, 1977: "got TCP11 Unix version to assemble", and September
16, 1977: "TCP and Al Spector's TCP can talk fine" (Al was using Mathis'
TCP on an LSI-11 communicating with the Unix system).  Most of the
intervening entries had to do with recovering from disk crashes and other
such annoyances.  By 1979 the TCP working group had gotten to the TCP4
stage and I modified the original code as needed along the way as we made
changes to get from 2.5 to 2.5 plus epsilon to eventually 4 as captured by
the 1979 listing.

Fun times!

/Jack Haverty

On Sun, May 18, 2014 at 12:40 PM, John Day <jeanjour at comcast.net> wrote:

> At 11:46 AM -0700 5/18/14, Jack Haverty wrote:
>> Since this is a "history" forum, I'll offer my perspective as one who was
>> there in the 80s and involved in the TCP work...
>> IMHO, it's important to make the distinction between the protocol and the
>> implementations of that protocol.   The protocol defines the formats of the
>> data passing back and forth "on the wire", and the required actions that
>> the computer at each and take in response to receiving that data.
>> How a particular implementation performs that response is totally up to
>> that particular implementer.
>> So, when you're talking about ARQ, packet timers, retransmission
>> algorithms, et al, you're talking about the *implementation*, rather than
>> the TCP protocol itself.
>> I wrote a TCP back in the 1979 timeframe - the first one for a Unix
>> system, running on a PDP-11/40.  It first implemented TCP version 2.5, and
>> later evolved to version 4.   It was a very basic implementation, no "slow
>> start" or any other such niceties that were created as the Internet grew.
> I think we went over this earlier and the conclusion was, we weren't sure.
>  But I can say Jack's was probably the first on an 11/40.
> By 1979, we were on our second TCP implementation on Unix on an 11/45 and
> 11/70, and would start our third soon.
> Take care,
> John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://elists.isoc.org/pipermail/internet-history/attachments/20140518/86ed6bd2/attachment.html>