Computer Networks

From Scratch

-Seth Archer Brown

Read it here for free!
a network of computers

Have you ever really wanted to know what happens when you click on a link, enter a search term, or upload photos to the cloud?

Then this is the book for you!

Computer Networks From Scratch is a tour of the inner workings of the biggest computer network of them all--the internet. However, the internet wasn't built in a day. It's the result of decades of inventions and discoveries building on each other.

The best way to understand it is to retrace that path, so we'll start from scratch assuming no prior networking knowledge. First we'll build an example system that will allow two people to send messages back and forth using plastic tubing and marbles instead of wires and electrical signals. Then we'll gradually work our way up to something resembling a state of the art computer network in the early 1960s. Finally we'll build on top of that foundation until we have an in-depth understanding of the modern internet.

Each topic is explained in clear, easy to understand language, and the book is filled with helpful hand drawn illustrations (painstakingly crafted by me) to guide the way.

The first 3 chapters are done, and I'll release new chapters regularly. For now only the web version is available (it will remain free forever). The PDF, ebook, and print versions will be available soon for a fee.

  • Web

    Carefully handcrafted to look fantastic on a phone, computer, or tablet. The entire book is here for free!

    Read it here!
  • Print

    Coming soon!

  • PDF and Ebook

    Coming soon!

Who are you?

Hi! I'm Seth Archer Brown. I'm a principal engineer with 2 decades of software experience. I have a BS in Computer Science, and I've studied computer networks at the graduate level.

Why are you writing this book?

I regularly interview software engineers. Occasionally I'll ask a candidate to describe what happens when they type a url into the address bar and press enter. The answers I get have taught me that most programmers don't have a basic understanding of how the internet works outside of their narrow specialty. This lack of a rudimentary mental model is one of the largest contributors to wasted time and effort in web application development.

This book began as an explanation of computer networks for programmers. Much of it came from my lecture notes for talks I've given at previous tech companies over the years. But during the process of putting the book together I realized that with a little extra work the book would work great for a more general audience.

Do I need to know how to program before reading this book?

No you do not! The core of the book requires no programming skills at all. However, in the future I do plan on including some supplemental, completely optional programming exercises at the end of some chapters for anyone who wants to dive in further.

The goal for these exercises will be to build simulated models of the topics we discuss. Eventually leading up to a a working mini model of the internet.