Networking from Scratch
Implement TCP/IP, HTTP, DNS, FTP, SMTP, IRC, WebSockets, BitTorrent, and a VPN tunnel — the protocols that make the internet work.
Course sequence
- 01
Build Your Own HTTP Server
Not startedBuild a fully functional HTTP/1.1 server from raw TCP up. You'll parse requests, build responses, route paths, serve static files, handle keep-alive connections, manage worker concurrency, and produce real Common Log Format access logs. By the end you'll deeply understand what nginx, Apache, Caddy, and net/http actually do.
intermediate16 lessons~4h - 02
Build a WebSocket Server
Not startedBuild a WebSocket server from scratch: HTTP upgrade handshake, frame format with masking, fragmented messages, ping/pong keep-alive, close handshake, and scaling considerations. The protocol behind Slack, Discord, Figma, and every real-time web app.
intermediate13 lessons~3h - 03
Build Your Own DNS Server
Not startedBuild a DNS resolver and authoritative server from scratch. You'll parse the DNS wire format, encode names with compression, handle all major record types, do CNAME chasing, perform iterative resolution from the root, and implement TTL-based caching. By the end you'll deeply understand how BIND, Unbound, dnsmasq, and AWS Route 53 actually work.
intermediate13 lessons~3h - 04
Build an FTP Server
Not startedBuild an FTP server: control + data connection model, USER/PASS/CWD/RETR/STOR commands, active vs passive modes (PORT/PASV/EPSV), ASCII vs binary transfers, MLSD listings, FTPS (TLS) and how it compares to modern alternatives like SFTP and HTTPS upload.
intermediate10 lessons~3h - 05
Build an IRC Server
Not startedBuild an IRC server like ircd/Ergo: client registration, channels with modes, PRIVMSG routing, PING/PONG keepalive, server-to-server federation, IRCv3 capability negotiation + message tags + SASL, and the chat protocol that ran open-source communities for 35+ years.
intermediate10 lessons~3h - 06
Build Your Own BitTorrent Client
Not startedBuild a complete BitTorrent client from scratch. You'll implement bencoding for the wire format, parse .torrent metainfo and magnet URIs, talk to HTTP and UDP trackers, perform the peer handshake, frame typed peer messages, verify pieces with SHA-1, and implement rarest-first piece selection. By the end you'll deeply understand what qBittorrent, Transmission, and libtorrent actually do.
intermediate13 lessons~3h - 07
Build an SMTP Server
Not startedBuild an email server like Postfix/Exim: SMTP conversation, EHLO/MAIL/RCPT/DATA, MIME multipart parsing, STARTTLS, SASL authentication, mail queue with retries, SPF/DKIM/DMARC anti-spam authentication, and the protocol behind every email message ever sent.
advanced10 lessons~3h - 08
Build a TCP/IP Stack
Not startedBuild a userspace TCP/IP stack on top of a TUN device: parse IP and UDP headers, implement TCP's three-way handshake, sliding window, retransmission, congestion control, and connection state machine. Same architecture as gVisor, lwIP, slirp4netns.
advanced14 lessons~4h - 09
Build a VPN Tunnel
Not startedBuild a WireGuard-style VPN: TUN/TAP virtual interfaces, Noise protocol handshake, X25519 + ChaCha20-Poly1305 + BLAKE2s, key schedule with forward secrecy, NAT traversal, cryptographic routing, and the protocol behind Tailscale and modern remote-access infrastructure.
advanced10 lessons~3h
Create a free account to track your progress across this path.