Skip to content
Learning path

Networking from Scratch

Implement TCP/IP, HTTP, DNS, FTP, SMTP, IRC, WebSockets, BitTorrent, and a VPN tunnel — the protocols that make the internet work.

mixed9 courses109 lessons~27 hoursFree
Start pathor sign up to track progress

Course sequence

  1. 01

    Build Your Own HTTP Server

    Not started

    Build 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
  2. 02

    Build a WebSocket Server

    Not started

    Build 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
  3. 03

    Build Your Own DNS Server

    Not started

    Build 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
  4. 04

    Build an FTP Server

    Not started

    Build 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
  5. 05

    Build an IRC Server

    Not started

    Build 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
  6. 06

    Build Your Own BitTorrent Client

    Not started

    Build 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
  7. 07

    Build an SMTP Server

    Not started

    Build 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
  8. 08

    Build a TCP/IP Stack

    Not started

    Build 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
  9. 09

    Build a VPN Tunnel

    Not started

    Build 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.

Networking from Scratch