F/OSS Comics

15. BSD Unix, Part 5 - Bringing TCP/IP to BSD

Posted on Nov 14, 2026

BSD Unix, Part 5

Bringing TCP/IP to BSD

A four-layer TCP/IP diagram lists HTTPS, TLS, and DNS under Application; TCP and UDP under Transport; IPv4 and IPv6 under Internet; and Ethernet and wireless LAN under Network.

Integrating TCP/IP Code into BSD

TCP/IP emerged from collaborative research led by Vint Cerf and Bob Kahn. The Defense Advanced Research Projects Agency (DARPA) later contracted Bolt Beranek and Newman (BBN) to implement the protocols for Unix on the VAX.

A BBN developer sits at a terminal while two colleagues in suits look on.

At UC Berkeley, the Computer Systems Research Group (CSRG) integrated BBN's early TCP/IP code into BSD. Bill Joy and Samuel Leffler improved the code and redesigned BSD's networking architecture and interfaces to support multiple network protocols.

The TCP/IP code's finally here.
Let's put it in BSD.

This will be slow on a local network.
I'd better fix it.

A TCP/IP meeting, early 1980s

CSRG has modified BBN's TCP/IP code.
I'm told local-network performance is much better.
That's why we're here.

How's that possible?

Sorry I'm late.
I'm Bill Joy.

Just in time.

How did you make it
so much faster?

I saw room for improvement.
Local networks have more bandwidth,
so I made better use of it.

How did you implement it?

It's very simple —
you read the protocol
and write the code.

BSD's networking code was a substantial CSRG reworking of BBN's initial implementation. In 1985, during preparations for 4.3BSD, an independent evaluation compared Berkeley's code with BBN's newer version. BBN's code had strengths in congestion handling, but Berkeley's was more efficient and passed every test. DARPA chose to keep Berkeley's implementation, and 4.3BSD shipped in June 1986.

A diagonal split separates BBN's developers on the left from CSRG's developers working by moonlight on the right.

Back in 1982, Joy had left CSRG to co-found Sun Microsystems.

Finish your
work first!

Sorry, Professor.
Sam's taking over
the BSD release.

Let's build a real
Unix machine!

As he moved to Sun, Joy wrapped up work on interprocess communication (IPC) and isolated the kernel's hardware-dependent code, making BSD easier to port to other machines.

I'd better finish IPC.
SunOS will need it too...

Joy's successor, Samuel J. Leffler, implemented new signal-handling features. Adding Marshall Kirk McKusick's new filesystem and CSRG's TCP/IP improvements, he released 4.2BSD in August 1983.

New signal handling
and TCP/IP!

After completing 4.2BSD, Leffler moved to Lucasfilm. Michael J. Karels took over development.

Finish your
work first!

Sorry, Professor.
Mike's taking over
the BSD release.

Let's build the
Pixar Image Computer.

BSD's future is in your hands.

Within eighteen months of its release, more than 1,000 site licenses for 4.2BSD had been issued. TCP/IP and the new filesystem gave it features AT&T's System V lacked at the time.

Still on System V
without TCP/IP?
Try 4.2BSD.

Networking features developed in BSD later found their way into AT&T's Unix too.

Add BSD's TCP/IP
to our Unix.

You mean, from scratch?

Can you write TCP/IP
from scratch?

Uh... no. I'll use
BSD's TCP/IP code.

Note: The dialogue is dramatized, not a verbatim record of what these people said.

The TCP/IP meeting scene is a dramatization based on the recollections of John Gage, a friend of Bill Joy and former chief researcher at Sun Microsystems. BBN's Rob Gurwitz rejected the claim that BBN's code did not work. He said he had attended the relevant DARPA meetings but did not remember hearing Bill Joy say, "It's very simple — you read the protocol and write the code." (Source)

References