<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Re: [ih] When was Go Back N adopted by
TCP</title></head><body>
<div>Yes, we have discussed this on this list before.  And the
memory in our group is fuzzy or no one has delved into their
attic.</div>
<div><br></div>
<div>But we put the first Unix on a PDP-11/45 on the Net with NCP in
the summer of 1975 and then immediately started work on TCP.  We
were working for DCA and JTSA (remember them).  As I said, we
were on our second implementation by 77 or so and were doing our 3rd
by 1978 when I returned from Houston.  I forget when we took
delivery of our 11/70 but it was certainly about this time.</div>
<div><br></div>
<div>DARPA may not have known about it, but I doubt that.  I
remember Grossman returning from TCP meetings in Cambridge where there
had been long discussions about whether things in the spec could work
and it turned out we were further along on implementation than BBN
was.</div>
<div><br></div>
<div>One of these days, I may get a chance to dig into Grossman's
attic.  ;-)</div>
<div><br></div>
<div>Take care,</div>
<div>John</div>
<div><br></div>
<div><br></div>
<div>At 2:10 PM -0700 5/18/14, Jack Haverty wrote:</div>
<blockquote type="cite" cite>Hi John,</blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite>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. </blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite>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...).</blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite>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.</blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite>Fun times!</blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite>/Jack Haverty</blockquote>
<blockquote type="cite" cite><br></blockquote>
<blockquote type="cite" cite><br>
<br>
</blockquote>
<blockquote type="cite" cite>On Sun, May 18, 2014 at 12:40 PM, John
Day <<a
href="mailto:jeanjour@comcast.net">jeanjour@comcast.net</a>>
wrote:<br>
<blockquote>At 11:46 AM -0700 5/18/14, Jack Haverty wrote:<br>
<blockquote>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...<br>
<br>
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.<br>
<br>
How a particular implementation performs that response is totally up
to that particular implementer.<br>
<br>
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.<br>
<br>
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.<br>
</blockquote>
</blockquote>
<blockquote><br></blockquote>
<blockquote>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.</blockquote>
<blockquote><br>
By 1979, we were on our second TCP implementation on Unix on an 11/45
and 11/70, and would start our third soon.<br>
<br>
Take care,<br>
John</blockquote>
</blockquote>
<div><br></div>
</body>
</html>