网络基础 101 #2:互联网到底是如何运作的

发布: (2026年1月13日 GMT+8 23:09)
4 分钟阅读
原文: Dev.to

Source: Dev.to

简短的介绍(为什么写这篇)

我正在为 DevOps 学习网络,并公开记录学习过程。本文是 Networking 101 系列的一部分,以初学者的视角撰写。我会分享自己的理解、困惑以及学习到的内容。

为什么 DevOps 工程师需要关注网络

  • 网络可靠性直接影响部署流水线、服务发现和可观测性。
  • DNS、防火墙或 TLS 证书配置错误是生产事故的常见原因。
  • 理解端到端请求流有助于更快定位问题并设计更具弹性的架构。

核心网络思维模型

从浏览器请求到服务器响应

  1. 用户输入 URL – 例如 https://myapp.com 并按 Enter

  2. DNS 解析 – 浏览器向操作系统请求 myapp.com 的 IP 地址。

    • 若已缓存,操作系统会立即返回 IP。
    • 否则操作系统会查询 DNS 解析器,解析器会遍历 DNS 层级直至得到地址(例如 13.234.56.78)。
    • 若 DNS 解析失败,请求在此终止。
  3. 端口选择 – 协议决定端口:

    • http:// → 端口 80
    • https:// → 端口 443(加密)
  4. TCP 握手 – 客户端发起连接:

    SYN → Server
    SYN‑ACK ← Server
    ACK → Server

    若此步骤失败,会出现 Connection refusedConnection timed out 等错误(通常由防火墙、关闭的端口或服务停止导致)。

  5. TLS 握手(仅限 HTTPS) – 客户端与服务器协商加密、交换证书并建立安全通道。失败会出现 “Your connection is not private” 或证书错误等提示。

  6. HTTP 请求 – 此时浏览器发送实际请求,例如:

    GET / HTTP/1.1
    Host: myapp.com

    HTTP 运行在 TCP 之上,TCP 运行在 IP 之上,IP 再运行在底层网络之上。

  7. 服务器处理 – 操作系统收到数据包,TCP 将负载交给 Web 服务器(Nginx、Node 等),服务器执行业务逻辑并生成响应,例如:

    HTTP/1.1 200 OK
  8. 响应传输 – 响应沿着 TCP → IP → 网络返回浏览器,浏览器解析 HTML、加载 CSS/JS,并可能发起额外请求(一次页面加载通常涉及多次网络往返)。

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

常见故障点

步骤常见故障
DNS记录错误、缓存过期
TCP端口关闭、防火墙阻断
TLS证书过期或不匹配
HTTP5xx 服务器错误
Server应用崩溃、超时

自上而下调试,切勿随意排查。

实操命令

层级命令示例
DNSdig myapp.com
nslookup myapp.com
可达性ping 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(显示握手细节)

这些命令直接对应上面的步骤:DNS 必须解析成功后才能尝试 TCP 连接;TCP 连接成功后才能发送 HTTP 请求;TLS 在 TCP 之上提供安全层。

资源

  • GitHub 仓库 – 本系列的所有笔记、图示和学习资源:

欢迎反馈——如果发现缺少的工具类别、错误的假设或更好的学习路径,请在评论中指出。

Back to Blog

相关文章

阅读更多 »