xBBN
  • Home
  • Honors
  • Timelines
    • BBN Internet Engineering Timeline
    • History of the Internet
    • Current BBN Timeline
  • Publications
    • Books >
      • A Culture of Innovation
      • Sound Ideas
      • Riding the Waves: A Life in Sound, Science, and Industry
      • Tulips to Thresholds
    • Papers & Articles >
      • The @ Sign Nobel
      • BBN and Internet History
      • Ray Tomlinson receives Webby
      • Citations and Notes on the Development of EMail
    • Websites >
      • www.bbn.com
  • Photographs
  • Memorials
    • Richard Bolt
  • Interests
    • History of the BBN Piano
    • Adventure: Here's where it all began...
  • Humor
    • Boy Boy Nancy
    • Sturdleigh Press International
    • The BeanCo Chronicles

Note 12

The BBN networking implementation was largely done by Rob Gurwitz, with some help from Jack Haverty.  Haverty had already done a TCP implementation for UNIX version 6 on a PDP-11. Although they could have started with Haverty’s TCP, they decided to start afresh, in large part because Haverty’s version tied TCP and IP closely together (a vestige of the original single protocol standards).

Gurwitz’s implementation, the first widely used UNIX implementation, had a number of interesting features.  The implementation required applications to open special UNIX files (for example /dev/tcp) to create network connections.  To manage variable-sized packets in memory, Gurwitz created a new type of memory buffer called an mbuf.  And, in an interesting internal feature, the implementation used a state-event matrix of functions: that is, if you received a particular type of packet, and your connection was in a particular state, you indexed a matrix to find a pointer to the appropriate function.

The BBN BSD TCP was the standard TCP for 4BSD and BSD UNIX 4.1. However, in BSD 4.2, the team at U.C. Berkeley created their own and very different implementation of TCP/IP (using the now familiar socket interface developed by Bill Joy and Sam Leffler of Berkeley along with Gurwitz).  BBN promptly revised its TCP implementation to use the socket interface, and for about a year there was a battle to determine whose networking code would take precedence.  Although the BBN code won some adherents, and was licensed to several computer vendors, the Berkeley code won the battle.

 ARPA continued to fund a vestige of the BBN UNIX TCP project into the late 1980s, and during that time BBNers (Karen Lam, Craig Partridge, and David Waitzman) worked with Steve Deering to create the first implementation of IP multicast.

BBN did TCP implementations on other platforms.  Charlie Lynn wrote a TCP for the DEC TOPS-20 system.   Jack Sax and Winston Edmond wrote an implementation for the Hewlett-Packard HP-3000 (ARPA was concerned that all the TCP implementations were on DEC machines and wanted to show it was not DEC-specific).

Copyright 2012-2022 @ xbbn.org under a Creative Commons license.
Picture