Networking 101 #2. How the Internet actually works

Published: (January 13, 2026 at 10:09 AM EST)
3 min read
Source: Dev.to

Source: Dev.to

Short intro (why I’m writing this)

I’m learning networking for DevOps and documenting the journey publicly. This post is part of the Networking 101 series, written from a beginner’s perspective. I’ll share what I understand, what confuses me, and what I learn along the way.

Why DevOps engineers should care about networking

  • Network reliability directly impacts deployment pipelines, service discovery, and observability.
  • Mis‑configured DNS, firewalls, or TLS certificates are common causes of production incidents.
  • Understanding the end‑to‑end request flow helps you troubleshoot faster and design more resilient architectures.

Core networking mental model

From a browser request to a server response

  1. User types a URL – e.g. https://myapp.com and presses Enter.

  2. DNS resolution – the browser asks the OS for the IP address of myapp.com.

    • If cached, the OS returns the IP immediately.
    • Otherwise the OS queries a DNS resolver, which walks the DNS hierarchy until it receives an address (e.g. 13.234.56.78).
    • If DNS fails, the request stops here.
  3. Port selection – the scheme determines the port:

    • http:// → port 80
    • https:// → port 443 (encrypted)
  4. TCP handshake – the client initiates a connection:

    SYN → Server
    SYN‑ACK ← Server
    ACK → Server

    If this step fails you’ll see errors such as Connection refused or Connection timed out (often caused by firewalls, closed ports, or stopped services).

  5. TLS handshake (only for HTTPS) – the client and server negotiate encryption, exchange certificates, and establish a secure channel. Failure results in messages like “Your connection is not private” or certificate errors.

  6. HTTP request – now the browser sends the actual request, e.g.:

    GET / HTTP/1.1
    Host: myapp.com

    HTTP lives inside TCP, which lives inside IP, which lives inside the underlying network.

  7. Server processing – the OS receives the packet, TCP hands the payload to the web server (Nginx, Node, etc.), which runs application logic and generates a response, e.g.:

    HTTP/1.1 200 OK
  8. Response travel – the response traverses TCP → IP → network back to the browser, which parses HTML, loads CSS/JS, and may issue additional requests (a single page load typically involves many network round‑trips).

Browser
  ↓ DNS (name → IP)
  ↓ TCP connection
  ↓ TLS handshake (HTTPS)
  ↓ HTTP request
  ↓ Server processing
  ↓ HTTP response
  ↓ Browser renders page

Common failure points

StepTypical failure
DNSWrong record, stale cache
TCPPort closed, firewall block
TLSExpired or mismatched certificate
HTTP5xx server errors
ServerApplication crash, timeout

Debug top‑to‑bottom, never randomly.

Hands‑on commands

LayerCommand examples
DNSdig myapp.com
nslookup myapp.com
Reachabilityping 13.234.56.78
TCPnc -vz 13.234.56.78 443
telnet 13.234.56.78 443
HTTPcurl -I https://myapp.com
TLScurl -v https://myapp.com (shows handshake details)

These commands map directly to the steps above: DNS must resolve before a TCP connection can be attempted; the TCP connection must succeed before an HTTP request is sent; TLS adds a security layer on top of TCP.

Resources

  • GitHub repository – all notes, diagrams, and learning resources for this series:

Feedback is welcome—please comment if you notice missing tool categories, incorrect assumptions, or better learning paths.

Back to Blog

Related posts

Read more »

𝗗𝗲𝘀𝗶𝗴𝗻𝗲𝗱 𝗮 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻‑𝗥𝗲𝗮𝗱𝘆 𝗠𝘂𝗹𝘁𝗶‑𝗥𝗲𝗴𝗶𝗼𝗻 𝗔𝗪𝗦 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗘𝗞𝗦 | 𝗖𝗜/𝗖𝗗 | 𝗖𝗮𝗻𝗮𝗿𝘆 𝗗𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁𝘀 | 𝗗𝗥 𝗙𝗮𝗶𝗹𝗼𝘃𝗲𝗿

!Architecture Diagramhttps://dev-to-uploads.s3.amazonaws.com/uploads/articles/p20jqk5gukphtqbsnftb.gif I designed a production‑grade multi‑region AWS architectu...