Computer Networking#

A network is a machine you can never see all of at once, which is why it is usually taught as a list of acronyms. This page does the opposite: it takes the dozen ideas you actually meet at work, gives each one a picture you already have in your head, and then shows the machinery underneath. Press Play on any animation to watch the idea move, and switch the language tabs to read the code in Python or JavaScript.

The whole subject answers one question: how do you get a message from one machine to another when nobody in the middle knows both ends, links keep failing, and everything is shared with strangers? Every mechanism below — MAC addresses, IP, routing, TCP, DNS, TLS — is one layer's answer to a slice of that question, and every layer works by trusting the layer below to be unreliable.

14 Topics • Mental Models, Interactive Animations & Worked Questions
Unit 1

Getting Packets Across#

How a packet crosses one link and then the internet: MAC addresses, IP addressing, routing and NAT.

Unit 2

Transport#

How two programs hold a reliable conversation over an unreliable network.

Unit 3

Applications & the Web#

The protocols every web request depends on: naming, HTTP, encryption and the boxes in between.

Unit 4

Putting It to Work#

A systematic way to debug network problems, and the whole stack on one page.