Capstone — Tracing a Real Request End to End
Networking Fundamentals
Chapter 11 · Capstone — Tracing a Real Request End to End
net1-1 promised this exact moment: "the capstone, net1-11, walks through this exact same journey again — this time with nothing left unexplained." A user types https://www.example.com and hits enter. Here is everything that actually happens, step by step, in order.
Step 1 — DNS Resolution
The browser and OS check their own caches first; if nothing is cached, the recursive resolver walks the full hierarchy — root server, then .com TLD server, then example.com's own authoritative server — exactly the nine-step process from net1-9. The answer comes back: an A record, say 203.0.113.10, cached going forward for however long its TTL allows.
Step 2 — Determining the Path
With a destination IP now in hand, the device checks whether 203.0.113.10 falls within its own local subnet, using the subnet-mask math from net1-5. It doesn't — the device is almost certainly sitting on a private address (net1-4), and 203.0.113.10 is a public internet address. The packet is handed to the default gateway (net1-6), which consults its own routing table and forwards it onward — in reality, through many more routers and ISP networks than shown here, coordinated at internet scale by dynamic routing protocols like BGP (net1-6's own honest mention).
Step 3 — The TCP Handshake
Before any real data moves, the OS establishes a TCP connection to 203.0.113.10 on port 443 — HTTPS's own well-known port (net1-8). The three-way handshake runs in full: SYN, SYN-ACK, ACK (net1-7). The OS assigns a random ephemeral source port for this specific connection — say, 52341 — completing the full four-value socket pair from net1-8: (local IP):52341 → 203.0.113.10:443.
Step 4 — TLS, Layered On Top
Once the TCP connection is fully established, a genuinely separate TLS handshake begins over it — certificate exchange, key negotiation — building an encrypted channel on top of the already-reliable connection underneath. This is exactly the resolution net1-7 gave to the gap net1-1 first named in https1: two handshakes, strictly sequential, not one. It's also net1-2's own "session/presentation" concerns made concrete, folded into the Application layer in practice per net1-3.
Step 5 — The HTTP Request and Response
With an encrypted, fully-established TCP connection now in place, the browser sends the actual HTTP GET request — an Application-layer protocol (net1-3) traveling over the exact socket identified in Step 3 (net1-8). The server processes the request and sends back the page content, riding over that same connection, using TCP's own sequencing (net1-7) to guarantee it arrives complete and in the correct order.
Step 6 — If Something Had Gone Wrong
At any of the five steps above, something could genuinely fail: DNS could fail to resolve, routing could break down somewhere along the path, the handshake could hang on a silently dropped SYN-ACK (net1-7's own warn-box), or the HTTP exchange itself could error out. net1-10's own tools — ping, traceroute, ss, tcpdump — are exactly what isolates which specific step actually failed, rather than treating "the website won't load" as one undifferentiated mystery. This directly closes the loop on net1-1's own Exercise 3, which asked for exactly these three distinct failure points before any of this course existed to explain them.
Chapter Attribution Table
| Step | Chapter(s) |
|---|---|
| DNS resolution | net1-9 |
| Subnet check and default gateway handoff | net1-4, net1-5, net1-6 |
| TCP handshake and ephemeral port | net1-7, net1-8 |
| TLS layered on top of TCP | net1-2, net1-3, net1-7 |
| HTTP request/response over the socket | net1-3, net1-8 |
| Diagnosing a failure at any step | net1-10 |
net1-6) but never taught in depth. Real-world CDN and load-balancing behavior (DNS or anycast routing returning different answers depending on the requester's own location) is a genuine simplification acknowledged here, not covered. IPv6-specific resolution and routing differences were only given a first look (net1-4) — this entire capstone traces the IPv4 case for simplicity. And HTTP itself — headers, caching, methods — was deliberately left uncovered, arguably web-development territory the site already addresses elsewhere.
dig example.com, then curl -v https://example.com — curl's -v flag shows the TCP connection being made, the TLS handshake, and the HTTP request/response all in one place: a live, real version of every step in this chapter.
Hands-On Exercises
A request fails specifically at Step 3 (the TCP handshake never completes). Using net1-10's own toolkit, name which tool would most directly reveal this, and what the output would show.
📄 View solutionExplain why Step 4 (TLS) could not have happened before Step 3 (the TCP handshake) completed, using this chapter's own attribution table to trace back to the relevant earlier chapter's reasoning.
📄 View solutionA reader finishes this capstone and concludes they now fully understand how every website request on the internet works. Using this chapter's own warn-box, identify what's still missing from that conclusion.
📄 View solutionChapter 11 Quick Reference — The Full Journey
- 1. DNS resolution — hierarchy walk, TTL caching (net1-9)
- 2. Subnet check → default gateway → routing (net1-4, net1-5, net1-6)
- 3. TCP three-way handshake + ephemeral port → full socket pair (net1-7, net1-8)
- 4. TLS handshake, layered on top of the now-established TCP connection (net1-2, net1-7)
- 5. HTTP request/response over that same socket, sequenced and reliable (net1-3, net1-8)
- 6. Any step can fail independently — net1-10's tools isolate exactly which one
- Still out of scope: BGP/OSPF internals, CDN/anycast behavior, IPv6 specifics, HTTP itself