# Exercise 2 — Tracing a Request Through the Stack

## Scenario

You need to explain, to a non-networking teammate, exactly what happens between clicking a link and a web page starting to load — using TCP/IP layer terms precisely, not hand-waving "the internet sends it."

## Deliverables

1. **Full trace.** Starting from a user typing `https://shop.example.com/cart` into a browser and hitting Enter, write a numbered, layer-by-layer trace of every major step until the first response byte comes back, explicitly labeling which TCP/IP layer each step happens at. At minimum include: DNS resolution, TCP connection setup, TLS (if you choose to include it, note which layer it conceptually sits in per the TCP/IP model), the HTTP request itself, and the response. Your trace should have at least 8 distinct numbered steps.

2. **Layer-loss thought experiment.** For each layer below, describe what specifically breaks (and what error/symptom the user would actually see) if that ONE layer failed, holding all others functional:
   - Network Access layer fails (e.g., Wi-Fi adapter dies)
   - Internet layer fails (e.g., no route to the destination IP exists)
   - Transport layer fails (e.g., the destination port is not listening)
   - Application layer fails (e.g., the web server returns malformed HTML)

3. **Boundary judgment call.** TLS is arguably layer 6 in OSI but TCP/IP doesn't have a layer 6 — it's absorbed into "Application." Argue briefly (3-4 sentences) for where TLS conceptually belongs in the 4-layer TCP/IP model and why that placement is defensible given what TLS actually does (encrypts what the transport layer would otherwise send in plaintext, but is implemented and configured entirely by application-layer software/libraries).

## Notes

- This exercise is about precision of layer attribution under a concrete trace, not networking trivia — every step in deliverable 1 should name a layer.
