Networking Fundamentals
follow a packet from your keyboard to a server and back — what actually happens when you curl an endpoint. TCP/IP, sockets, routing, DNS, TLS, and HTTP, all from first principles with hands-on Linux tools.

Network Foundations
- 01
What Is a Network?
freewhat a network is, why the layered model exists, and how abstraction lets you reason about communication without losing your mind
- 02
Packets & Frames
freewhy data is chopped into packets, what headers contain, and how to distinguish frames, packets, segments, and datagrams
- 03
Ethernet & MAC Addresses
freehow ethernet frames and MAC addresses work at layer 2, how switches learn port mappings, and how ARP resolves addresses on your LAN
- 04
Capturing Your First Packets
freehow to capture and read packets with tcpdump, write filter expressions, and start building the most valuable network debugging skill you'll have
The Internet Protocol
- 05
IP Addresses & Subnets
freehow IPv4 addressing and CIDR notation work, how to calculate subnet boundaries, and what /24 actually means
- 06
Routing Fundamentals
voyagehow routing tables and default gateways direct packets hop-by-hop, and how to trace the path your packets take with traceroute
- 07
NAT & Port Forwarding
voyagehow NAT lets one public IP serve many private hosts, how to set up port forwarding, and how to work around the things NAT breaks
- 08
ICMP & Network Diagnostics
voyagehow ICMP works behind ping and traceroute, what error messages like 'destination unreachable' reveal, and how to use them for diagnosis
- 09
IPv6: The Inevitable Future
voyagewhat IPv6 changes about addressing and auto-configuration, how dual-stack operation works, and what you need to know for the transition
TCP & UDP
- 10
UDP: The Simple Protocol
voyagewhat UDP is, why its simplicity is a feature, and when choosing speed over delivery guarantees is the right call
- 11
TCP: Reliable Delivery
voyagehow TCP provides reliable, ordered delivery with sequence numbers and acknowledgments, and what that reliability costs
- 12
The Three-Way Handshake
voyagehow TCP establishes connections with SYN, SYN-ACK, ACK, why three packets are necessary, and how to observe the handshake in tcpdump
- 13
TCP Flow Control
voyagehow TCP's sliding window prevents overwhelming the receiver, what window scaling does, and how flow control adapts to receiver capacity
- 14
TCP Congestion Control
voyagehow slow start and congestion avoidance prevent network collapse, why downloads ramp up gradually, and how modern algorithms like BBR improve throughput
- 15
TCP Connection Termination
voyagehow TCP connections close with FIN and ACK, why TIME_WAIT exists and causes socket exhaustion, and how to handle it
Sockets & Network Programming
- 16
What Is a Socket?
voyagewhat a socket is, how the socket file descriptor connects your application to the network, and how one API unifies TCP, UDP, and Unix domain sockets
- 17
TCP Socket Lifecycle
voyagehow to use socket(), bind(), listen(), accept(), and connect() to build TCP servers and clients, and what each syscall does
- 18
Netcat: The Network Swiss Army Knife
voyagehow to use netcat for testing servers, debugging connections, transferring files, and running quick network experiments
- 19
Ports & Multiplexing
voyagehow ports let one IP address serve many applications, what the 5-tuple is, and how ephemeral ports and multiplexing limits work
- 20
Socket Options & Tuning
voyagehow to configure SO_REUSEADDR, TCP_NODELAY, and other socket options, when each one matters, and common mistakes to avoid
DNS & Name Resolution
- 21
Why DNS Exists
voyagewhy DNS exists, how the domain name hierarchy maps human-readable names to IP addresses, and why distributed lookup is necessary
- 22
DNS Query Flow
voyagehow a DNS query travels from your browser to root servers and back, how caching and TTLs work, and what happens when you type a URL
- 23
DNS Record Types
voyagehow to use A, AAAA, CNAME, MX, and TXT records, what each type is for, and how to query them with dig
- 24
DNS Debugging
voyagehow to diagnose DNS failures with dig and nslookup, understand resolv.conf, and troubleshoot common name resolution problems
HTTP & Application Protocols
- 25
HTTP Protocol Basics
voyagehow the HTTP request/response cycle works, what methods, headers, and status codes mean, and why HTTP is just structured text over TCP
- 26
HTTP Connection Management
voyagehow keep-alive, pipelining, and HTTP/2 multiplexing reduce TCP overhead, and why connection reuse matters for performance
- 27
curl & HTTP Debugging
voyagehow to use curl for HTTP debugging, read verbose output and timing breakdowns, and diagnose request/response issues
TLS & Security
- 28
Why TLS Matters
voyagewhy TLS is non-negotiable, what encryption, authentication, and integrity protect against, and what happens without HTTPS
- 29
The TLS Handshake
voyagehow the TLS handshake establishes trust through certificate verification, cipher negotiation, and key exchange before data flows
- 30
Certificates & Trust
voyagehow X.509 certificates and certificate authorities form a chain of trust, and why Let's Encrypt changed the game for HTTPS adoption
- 31
Debugging TLS Issues
voyagehow to diagnose TLS failures with openssl s_client, troubleshoot certificate errors, cipher mismatches, and SNI problems
Network Debugging
- 32
ss & netstat: Socket Statistics
voyagehow to use ss and netstat to inspect listening ports, connection states, and socket statistics for debugging
- 33
tcpdump Deep Dive
voyagehow to write advanced tcpdump filters, interpret complex captures, handle performance constraints, and capture safely in production
- 34
Network Debugging Methodology
voyagehow to systematically debug network issues layer by layer, what questions to ask at each layer, and how to build a reliable debugging mental model
Linux Network Internals
- 35
The Linux Network Stack
voyagehow Linux processes packets from NIC interrupt to application, what sk_buff is, and how the kernel's network stack is architected
- 36
Virtual Network Devices
voyagehow veth pairs and tun/tap devices work, and how these virtual network primitives form the building blocks of container and VM networking
- 37
The Linux Bridge
voyagehow to create Linux bridges, connect network namespaces through them, and take your first step toward understanding container networking
- 38
iptables Fundamentals
voyagehow iptables tables, chains, and rules control packet flow through netfilter, and how to configure firewalling and NAT
Container Networking
- 39
Network Namespaces
voyagehow to create network namespaces for isolated network stacks, why containers see different networks, and how to communicate between them
- 40
Connecting Containers with veth
voyagehow to create veth pairs as virtual ethernet cables between namespaces, and understand how containers talk to each other
- 41
Building a Container Network from Scratch
voyagehow to build a Docker-style bridge network from scratch using namespaces, veth pairs, iptables, and NAT — no Docker required
- 42
Container to Outside World
voyagehow containers reach the internet through SNAT and masquerading, and why a private 172.17.0.0/16 address can talk to 8.8.8.8
- 43
Publishing Container Ports
voyagehow DNAT enables inbound traffic to containers, how Docker's -p flag publishes ports, and how to implement port forwarding yourself
- 44
Debugging Container Networking
voyagehow to debug container networking with nsenter and tcpdump inside namespaces, and systematically diagnose connectivity failures