Each month follows this structure:
Section | Focus |
---|---|
β WHY | The real-world motivation for the month |
π Concepts | What to learn & understand |
π§ͺ Labs | Visuals, experiments, and tools |
π» Code | Hands-on programming |
π Resources | Only curated, non-boring content |
Why can I Google anything instantly from my phone? How does my laptop even know where Google's server is?
- What is a network? Why do computers need to talk?
- The Internet is not just a website: itβs a system of rules + layers
- MAC address vs IP address (street name vs phone number analogy)
- Layers: Like a courier system (You β Post office β Truck β Delivery)
- Run:
ping
,traceroute
,ipconfig
/ifconfig
- Draw your home network + devices
- Wireshark: capture and examine a single ping packet
- C++ program to list available network interfaces
- Log your own IP and MAC address via system calls
- π₯ How the Internet Works in 5 mins
- π₯ Ben Eater β TCP/IP Explained
- π CS144 Textbook β Intro
- π§Ύ PacketLife Cheat Sheets
When I visit a website, how does the request reach the right server? Why do some devices have 192.168.x.x addresses?
- IP addressing (v4, v6), Public vs Private IP
- Subnets and CIDR (helps break big networks into pieces)
- Routing: How routers act like traffic cops
- ARP, DNS, DHCP explained through daily device usage
- Subnetting drills by hand + subnettingpractice.com
- Wireshark: capture ARP, DNS, DHCP traffic
- Set up a 3-device network in Cisco Packet Tracer
- C++ ARP request + parse response (via raw sockets)
- Write a subnet calculator CLI
- π₯ Computerphile β IP Packets
- π [TCP/IP Illustrated Vol 1 β Ch. 5-6]
- π§ͺ Subnetting Practice
- π Cisco Packet Tracer or GNS3 Setup
How does Zoom or WhatsApp call work in real-time? What makes downloads reliable even with network issues?
- Ports, multiplexing, and socket lifecycle
- TCP: Handshake, reliable streams
- UDP: Fire-and-forget, used in games/calls
- NAT and Port forwarding (home router behavior)
- Simulate connection using
telnet
,netcat
- Wireshark: trace a TCP 3-way handshake + UDP DNS query
- TCP echo server + client in C++
- UDP chat app in C++
- Log dropped/retransmitted packets using socket options
- π Beej's Guide to Network Programming
- π₯ CS144 Lab 1 β TCP Socket
- π Linux Socket Programming β GeeksForGeeks
Whatβs really inside a packet? Can I make my own? What if I want to build a ping tool from scratch?
- Ethernet, IP, TCP, UDP headers (bit by bit)
- Checksums, fragmentation, TTL
- ICMP (used in ping, traceroute)
- Packet crafting: building your own packets
- Wireshark: decode full packet (Ethernet β IP β TCP β HTTP)
- Simulate packet loss using
tc
on Linux - Craft TCP SYN packets using
scapy
- Send an ICMP echo using raw sockets
- Craft and send UDP packet by manually setting headers
- Parse incoming packet headers
- π [TCP/IP Illustrated Vol 1 β Ch. 17β23]
- π§ Scapy Docs
- π οΈ Raw Sockets C Guide
Can I create a computer that talks to others without relying on the OS's network stack?
- Userspace networking
- Mini-stack structure: Ethernet β ARP β IP β UDP β handler
- Buffering, routing, local IP tables
-
Create:
- Ethernet + ARP decoder
- IP + UDP parsing
- Routing table + port handler
-
Build a small CLI that listens on a UDP port using your own stack
What makes HTTPS secure? How do VPNs or BGP work in big-scale internet routing?
- TLS, HTTPS basics
- NAT traversal (P2P, STUN)
- BGP and Internet-scale routing
- Performance: RTT, jitter, congestion
- π Your Own DNS Resolver
- π‘ UDP Chat with Your Stack
- π Custom Packet Sniffer with libpcap
- π§Ύ Minimal HTTP Client using raw TCP
- π Cloudflare β How TLS Works
- π°οΈ From Nothing to Ping
- π libpcap Docs
Tool | Purpose |
---|---|
Wireshark | Inspect traffic deeply |
Scapy | Craft & send packets |
tcpdump | CLI packet sniffer |
iptables, tc | Simulate network conditions |
libpcap | Build sniffing tools |