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).