{
  "id": 15485053,
  "title": "Part 3 — Networking: From `fetch()` to Packets",
  "url": "https://urgent.news/2026/10/18/part-3-networking-from-fetch-to-packets",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-18T20:29:45.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/heyitsalok/part-3-networking-from-fetch-to-packets-3okp"
  },
  "original_language": "en",
  "account": "Most web developers use HTTP daily without fully understanding what happens beneath those familiar abstractions. When we write `const response = await fetch('https://api.example.com/users');`, we don't consider how the request reaches another computer or why it might be slow even when the application code is fast.\n\nA simplified networking model consists of layers: Application (like HTTP), HTTP, TCP, IP, and Ethernet/Wi-Fi. Each layer addresses a distinct problem, but HTTP doesn't handle everything. HTTPS adds TLS encryption on top of TCP. HTTP/3 uses an alternative protocol called QUIC, which operates over UDP instead of TCP. IP addresses identify network destinations, while ports pinpoint the application's transport endpoint. For instance, port 22 is SSH, port 443 is HTTPS, and port 5432 is PostgreSQL.\n\nSome addresses are noteworthy: 127.0.0.1 is the IPv4 loopback address, referring to the local machine. Private IPv4 ranges are 192.168.x.x and 10.x.x.x. The wildcard 0.0.0.0 refers to all local IPv4 interfaces when used as a listening address.\n\nRouters direct packets between networks, and NAT allows multiple devices with private addresses to share a public IPv4 address. TCP ensures reliable communication through a handshake process, sequence numbers, acknowledgements, retransmissions, flow control, and congestion control. However, TCP delivers a continuous stream of bytes without guaranteeing message boundaries.\n\nDNS resolves domain names into IP addresses. A recursive resolver might use cached records or query the DNS hierarchy to find the correct record. The TTL (Time to Live) in DNS records determines how long they can be cached, which helps reduce repeated lookups but may delay DNS changes from being recognized everywhere.\n\nWhen we call `fetch('https://api.example.com/users')`, several steps occur under the hood: DNS resolution, TCP connection establishment, TLS handshake, HTTP request, network transmission, server processing, HTTP response, and finally, the client receives the response. This sequence can be affected by factors like DNS lookup time, connection setup, TLS handshake duration, network round trips, packet loss, retransmissions, queueing, and downstream service calls.",
  "summary": "Most web developers use HTTP every day. We write fetch() , call APIs, send requests, and handle responses. But lets understand what happens underneath those familiar abstractions. When we write: const response = await fetch ( \" https://api.example.com/users \" ); how does that request reach another computer? What happens before the server receives it? And why can a request be slow even when the…",
  "key_points": [
    "fetch() abstraction hides HTTP, TCP, IP, Ethernet/Wi-Fi layers",
    "HTTP uses ports to identify application endpoints (e.g., 443 for HTTPS)",
    "DNS resolves domain names to IP addresses for routing packets"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}