[ih] Installed base momentum (was Re: Design choices in SMTP)
Craig Partridge
craig at tereschau.net
Mon Feb 13 13:07:11 PST 2023
Hi John:
Oh no, far more complicated than that. As I recall (and my memory on this
is probably imperfect as I was young and learning and some things went over
my head):
- Bill rewrote the BBN TCP to make it more efficient. The BBN TCP used
a function table that was indexed by connection state and TCP segment type
(so you looked up the connection using the TCP/IP header, then grabbed the
segment type, and called the indexed function along with the PCB and
inbound segment). It made for tight and simple routines... but, as I
recall, the VAX (the primary platform at the time) made function calls
expensive, so Bill wanted a minimal number of function calls and produced
long routines as a result (cf. tcp_input in 4.2BSD).
- Bill (or someone) at Berkeley came up with the idea of sockets and the
socket/bind/listen/connect API as they did not like /dev/tcp and ioctls
(which BBN TCP used and which Dennis Ritchie independently came up with for
System V UNIX). While ioctls and /dev/tcp may have fit the existing UNIX
philosophy, having taught thousands of students in the 1990s sockets and
had a few then encounter System V and say "ugh", Berkeley was probably
right on this one.
- Various innards of the BSD implementation were cribbed from the BBN
TCP. A good example is mbufs -- invented by Rob Gurwitz when he ported an
early TCP (Jack Haverty's???) to BSD. I seem to recall seeing a memo from
Rob c. 1988 saying mbufs were a hack to solve an immediate porting problem
and that he was surprised a better solution had not materialized.
- The 4.1BSD BBN TCP was more stable than the 4.1c BSD (first socket)
TCP and there was a period in which DARPA was (unhappily) funding both TCPs
because many sites asked to have the BBN TCP so they could have reliable
Internet connectivity. This lasted a certain number of years into 4.2BSD,
but eventually went Berkeley's way.
Craig
On Mon, Feb 13, 2023 at 1:35 PM John Day <jeanjour at comcast.net> wrote:
> So Berkeley’s position was that they were to port the BBN implementation
> bugs and all?
>
> And BBN is to blame for sockets? What a lost opportunity.
>
> The first Unix on the Net in 1975 didn’t do that. It used file_io.
>
>
> > On Feb 13, 2023, at 15:28, Craig Partridge via Internet-history <
> internet-history at elists.isoc.org> wrote:
> >
> > HI Scott:
> >
> > Small nit.
> >
> > DARPA funded Berkeley to port the BBN Unix to BSD -- and Bill Joy chose
> to
> > reimplement and develop sockets. Much behind the scenes fighting ensued
> (I
> > was hired into that fight in 1983 when BBN concluded it needed to train
> > someone to understand the BSD implementation). Led to various odd
> > conversations years later -- I remember Van Jacobson justifying a TCP bug
> > in the BSD implementation by saying it had been in the BBN implementation
> > that Bill used as a reference -- c. 1989, long after BBN BSD TCP was
> gone.
> >
> > Craig
> >
> > On Mon, Feb 13, 2023 at 12:50 PM Scott Bradner via Internet-history <
> > internet-history at elists.isoc.org> wrote:
> >
> >> for what its worth - here is my take on some of the reasons that the
> >> Internet (and specifically
> >> TCP/IP) took over the world
> >>
> >> Forks: Decisions that got us the Internet we have
> >> https://www.sobco.com/presentations/2020-06-25-forks.pdf
> >>
> >> Scott
> >> (I, along with Scott Shackelford, have a book on the subject that should
> >> be published at some
> >> point - the text is done & now in publisher wait)
> >> --
> >> Internet-history mailing list
> >> Internet-history at elists.isoc.org
> >> https://elists.isoc.org/mailman/listinfo/internet-history
> >>
> >
> >
> > --
> > *****
> > Craig Partridge's email account for professional society activities and
> > mailing lists.
> > --
> > Internet-history mailing list
> > Internet-history at elists.isoc.org
> > https://elists.isoc.org/mailman/listinfo/internet-history
>
>
--
*****
Craig Partridge's email account for professional society activities and
mailing lists.
More information about the Internet-history
mailing list