What You Won't Build (Non-Goals)
What You Won't Build
To stay focused and keep the project manageable, there are a few things this course won't cover.
We're recreating the logic of the Internet stack — not reinventing all of hardware or the full Linux networking subsystem.
Out of Scope
No Physical Layer
You won't deal with electrical signals, Wi-Fi radios, or Ethernet preambles. Our entry point is a TAP device, which already gives us complete Ethernet frames in memory.
No Kernel Drivers or Privileged Code
Everything runs in user space inside Docker. We'll open /dev/net/tun, read and write bytes, and let the host kernel handle the actual NIC.
No Advanced TCP Features (Yet)
We'll build a minimal, correct TCP implementation:
- Three-way handshake
- Sequence/ACK handling
- Retransmission
- Connection close
We won't add congestion control, window scaling, or selective ACKs — those can come later as optional experiments.
No IPv6 (For Now)
To keep examples simple, we'll use IPv4 only. Once you understand the flow, adding IPv6 and NDP will feel natural.
No TLS/HTTPS or Modern Protocol Extras
Our HTTP server will speak plain HTTP over TCP. Encryption and QUIC are entire worlds of their own — outside this course's scope.
No Performance Tuning
We'll favor clarity and visibility over speed. Real stacks use zero-copy buffers, interrupts, and kernel bypass APIs; we'll just use blocking I/O so you can see what's happening.
Warning: By drawing this boundary early, you can focus on what matters most: understanding how packets move from one layer to the next and seeing the Internet's machinery operate under your own control.