Networking is the study of getting bytes from one machine to another across equipment nobody controls end to end. The layered model is the organizing idea, so these notes are grouped roughly bottom-up. Read the model note first if you want the map before the territory.
The layered model
- The OSI and TCP/IP Models - the layering abstraction and where the two models disagree
Link layer
- ARP and MAC Addressing - resolving an IP address to a hardware address on the local segment
- VLANs and 802.1Q Trunking - carving one physical switch into isolated broadcast domains
- WiFi and 802.11 - sharing a radio medium without collisions
Network layer and addressing
- IP Addressing and Subnetting - the prefix as the unit of routing
- IPv6 Essentials - the larger address space and what changed with it
- DHCP and Address Assignment - handing out addresses without touching each host
- NAT and Port Translation - many private hosts behind one public address
- MTU and Fragmentation - what happens when a packet is too big for the next hop
- Multicast, Broadcast and Anycast - delivery models beyond one-to-one
Routing
- Routing and Longest Prefix Match - how a router picks the next hop
- OSPF and Link-State Routing - every router building the same map of the area
Transport
- Ports and Sockets - the endpoint abstraction applications actually use
- TCP vs UDP - reliability and ordering against latency and control
- The TCP Three-Way Handshake - establishing state before data flows
- TCP Congestion Control - keeping a shared network from collapsing
- QUIC and UDP Transport - moving transport into user space to escape ossification
Application delivery and the edge
- The Evolution of HTTP, 1.1 to 3 - head-of-line blocking and the fixes across three versions
- Proxies, Forward and Reverse - an intermediary on either side of the request
- Load Balancing, L4 and L7 - distributing traffic by connection or by content
- CDNs and Edge Caching - serving from close to the user
Operating the network
- QoS and Traffic Shaping - deciding what gets to hurt when the link is full
- Software-Defined Networking - separating the control plane from the forwarding plane
The full file listing follows below, generated automatically by Quartz.