Networking Fundamentals

44 lessons

Demystify computer networking from first principles. Learn how data travels across networks, from electrical signals to HTTP requests. Packets, sockets, routing, DNS, TLS - all with hands-on Linux tools. The course for developers who want to understand what actually happens when they curl an endpoint.

what you'll learn

  • How data actually travels — from electrical signals to HTTP requests
  • TCP/IP stack — packets, segments, datagrams, and frames layer by layer
  • Sockets and socket programming — what happens when you call connect()
  • DNS resolution — recursive queries, caching, and why NXDOMAIN matters
  • TLS handshakes — certificates, cipher suites, and how HTTPS works
  • Hands-on Linux tools — tcpdump, ss, netcat, dig, and traceroute

Network Foundations

What Is a Network?

Two computers, one wire, and the fundamental question: how do they talk? The layered model of networking and why abstraction is essential for sanity.

Packets & Frames

Data doesn't flow - it's chopped into pieces. Why packetization exists, what headers are for, and the difference between frames, packets, segments, and datagrams.

Ethernet & MAC Addresses

The local network layer. Ethernet frames, MAC addresses, and how switches learn which port leads where. Building a mental model of your LAN.

Capturing Your First Packets

Stop guessing, start observing. Using tcpdump and Wireshark to see what's actually happening on the wire. Your most valuable debugging skill.

The Internet Protocol

IP Addresses & Subnets

The global addressing scheme. IPv4 structure, CIDR notation, private vs public addresses, and the math behind subnet masks. Finally understand /24.

Routing Fundamentals

How packets find their way. The routing table, default gateways, and the hop-by-hop journey across the internet. See your packets' path with traceroute.

NAT & Port Forwarding

How one public IP serves many private hosts. Network Address Translation demystified, port forwarding, and why NAT breaks things (and how to work around it).

ICMP & Network Diagnostics

The control messages of the internet. How ping works, ICMP error messages, and why 'destination unreachable' tells you more than you think.

IPv6: The Inevitable Future

128-bit addresses and a cleaner design. IPv6 addressing, auto-configuration, and dual-stack operation. What you need to know for the transition.

TCP & UDP

UDP: The Simple Protocol

Fire and forget. UDP's simplicity, when unreliable is actually fine, and the applications that choose speed over guarantees.

TCP: Reliable Delivery

The protocol that makes the internet work. TCP's guarantees, sequence numbers, acknowledgments, and why reliability has a cost.

The Three-Way Handshake

SYN, SYN-ACK, ACK. How TCP connections are established, why three packets are necessary, and what you see in tcpdump.

TCP Flow Control

Don't flood the receiver. The sliding window, receive window advertisements, and how TCP adapts to receiver capacity.

TCP Congestion Control

Don't flood the network. Slow start, congestion avoidance, and the algorithms that prevent internet meltdown. Why your downloads start slow.

TCP Connection Termination

FIN, ACK, and TIME_WAIT. How connections close gracefully, the four-way termination, and why TIME_WAIT exists (and causes problems).

Sockets & Network Programming

What Is a Socket?

The application's window to the network. Socket API fundamentals, the socket file descriptor, and the abstraction that unifies TCP, UDP, and Unix domain sockets.

TCP Socket Lifecycle

socket(), bind(), listen(), accept(), connect(). The dance of TCP socket programming, server vs client roles, and what each syscall does.

Ports & Multiplexing

How one IP address serves many applications. Port numbers, the socket 5-tuple, ephemeral ports, and why you can have 65535 connections (sort of).

Socket Options & Tuning

SO_REUSEADDR, TCP_NODELAY, and friends. The socket options that matter, when to use them, and common mistakes.

DNS & Name Resolution

Why DNS Exists

Names are for humans, addresses are for machines. The domain name hierarchy, why distributed lookup is necessary, and the birth of DNS.

DNS Query Flow

From your browser to the root servers. The recursive resolution process, caching, TTLs, and what actually happens when you type a URL.

DNS Record Types

A, AAAA, CNAME, MX, TXT, and more. The record types you'll encounter, what they're for, and how to query them with dig.

DNS Debugging

When names don't resolve. Using dig, nslookup, and understanding /etc/resolv.conf. Common DNS problems and how to diagnose them.

HTTP & Application Protocols

HTTP Protocol Basics

The protocol of the web. Request/response cycle, methods, headers, status codes, and why HTTP is just text over TCP.

HTTP Connection Management

Keep-alive, pipelining, and HTTP/2 multiplexing. How HTTP evolved to reduce TCP overhead and why connection reuse matters.

curl & HTTP Debugging

The developer's HTTP client. Using curl effectively, verbose output, timing breakdowns, and debugging HTTP issues.

TLS & Security

Why TLS Matters

The internet is hostile. Encryption, authentication, integrity - the three pillars of TLS and why HTTPS is non-negotiable.

The TLS Handshake

How trust is established. Certificate verification, cipher negotiation, key exchange, and the roundtrips before encrypted data flows.

Certificates & Trust

Who vouches for whom. X.509 certificates, certificate authorities, chain of trust, and why Let's Encrypt changed everything.

Debugging TLS Issues

Certificate errors, cipher mismatches, and SNI problems. Using openssl s_client to diagnose TLS failures.

Network Debugging

tcpdump Deep Dive

Beyond basic captures. Advanced filters, reading complex output, performance considerations, and capturing in production.

Network Debugging Methodology

A systematic approach. Layer-by-layer diagnosis, the questions to ask at each layer, and building a debugging mental model.

Linux Network Internals

The Linux Network Stack

How Linux processes packets. The journey from NIC to application, sk_buff, and the kernel's networking architecture.

Virtual Network Devices

Software-defined networking primitives. veth pairs, tun/tap devices, and the building blocks of container and VM networking.

The Linux Bridge

A software switch. How Linux bridges work, creating bridges, and connecting network namespaces. Your first step toward container networking.

iptables Fundamentals

Linux's firewall and NAT engine. Tables, chains, rules, and the packet flow through netfilter. Essential knowledge for any Linux admin.

Container Networking

Network Namespaces

Isolated network stacks. Creating network namespaces, why containers see different networks, and communicating between namespaces.

Container to Outside World

Outbound connectivity with SNAT. How containers reach the internet, masquerading, and why 172.17.0.0/16 can talk to 8.8.8.8.

Publishing Container Ports

Inbound connectivity with DNAT. Port forwarding to containers, how Docker publishes ports, and why -p 8080:80 works.