这是《计算机网络 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 掌握计算机网络不是背完协议字段,而是能在真实系统中回答:流量从哪里来,路径上有哪里会失败,容量如何评估,延迟如何优化,故障如何止血,安全边界如何设计,并能把证据链讲清楚。
35.1 五个成长阶段
Level 1 使用者
会 ping、curl、访问服务
|
v
Level 2 排障者
能分层定位 DNS、TCP、TLS、HTTP 问题
|
v
Level 3 原理掌握者
理解 TCP、UDP、TLS、HTTP、DNS 内部机制
|
v
Level 4 架构治理者
能设计 LB、CDN、VPC、安全、容量和监控
|
v
Level 5 专家
能读 RFC 和内核实现,优化协议栈和大规模架构
每个阶段的核心问题不同。初级问“为什么连不上”,中级问“为什么慢”,高级问“如何设计成不轻易断、断了能恢复、恢复可验证”。
35.2 能力矩阵
| 能力 | 初级 | 中级 | 高级 |
|---|---|---|---|
| 分层 | 知道模型 | 能定位层次 | 能设计协议边界 |
| TCP | 知道握手 | 会看状态和重传 | 能治理吞吐与长尾 |
| HTTP | 会发请求 | 懂缓存和幂等 | 能优化全链路 |
| TLS | 会用 HTTPS | 能排查证书 | 能治理 mTLS 和轮换 |
| 云网络 | 会用安全组 | 能排查 VPC | 能设计多地域架构 |
| 安全 | 知道防火墙 | 能配置策略 | 能落地零信任 |
| 观测 | 会看日志 | 会抓包和监控 | 能建立证据链平台 |
35.3 必做实验
实验一:完整请求拆解
dig www.example.com
curl -v https://www.example.com
curl -w 'dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' \
-o /dev/null -s https://www.example.com
产出:一张请求阶段耗时表。
实验二:TCP 状态观察
ss -ant
ss -i
tcpdump -i any 'tcp[tcpflags] & tcp-syn != 0' -nn
产出:三次握手、四次挥手、重传和 RST 的抓包分析。
实验三:弱网模拟
sudo tc qdisc add dev eth0 root netem delay 100ms 20ms loss 1%
sudo tc qdisc del dev eth0 root
观察 HTTP 耗时、TCP 窗口、重试和熔断。
实验四:搭建入口架构
Nginx
-> 多后端
-> 健康检查
-> draining
-> 限流
验证发布、摘除、超时和回滚。
35.4 项目训练
项目一:企业 API 入口
功能:
- HTTPS 和 HTTP/2;
- 多后端负载均衡;
- 健康检查;
- 访问日志;
- 限流;
- 灰度路由;
- 优雅发布。
验收:发布期间错误率不上升,真实 IP 可信,P99 有监控。
项目二:跨地域网络诊断平台
功能:
- 多地域拨测;
- DNS 解析;
- TCP / TLS / HTTP 分阶段耗时;
- mtr 路径;
- 证书监控;
- 告警。
产出:可用性视图和故障定位视图。
项目三:长连接推送系统
功能:
- WebSocket 服务;
- 心跳;
- 断线重连;
- 连接路由表;
- Kafka 或 Redis 广播;
- 慢消费者治理;
- 集群 draining。
验收:单机 10 万连接、广播延迟和内存稳定可测量。
35.5 RFC 与文档阅读
推荐阅读:
| 文档 | 主题 |
|---|---|
| RFC 791 / 2460 / 8200 | IPv4 / IPv6 |
| RFC 792 / 4443 | ICMP / ICMPv6 |
| RFC 793 / 9293 | TCP |
| RFC 768 | UDP |
| RFC 1034 / 1035 | DNS |
| RFC 7230-7235 或 9110 系列 | HTTP 语义 |
| RFC 7540 / 9113 | HTTP/2 |
| RFC 9114 | HTTP/3 |
| RFC 9000 | QUIC |
| RFC 8446 | TLS 1.3 |
阅读方法:
- 带问题读;
- 先看 overview 和术语;
- 手画报文和状态机;
- 用抓包验证;
- 记录版本差异;
- 不假设所有实现完全符合规范。
35.6 90 天进阶计划
第 1 到 14 天:基础
1. 分层模型
2. IP / 路由 / ARP / ICMP
3. UDP / TCP 基础
4. DNS 基础
5. curl / ping / mtr / ss
产出:命令手册和请求拆解实验。
第 15 到 30 天:传输层
1. 握手挥手
2. 状态机
3. 滑动窗口
4. 拥塞控制
5. 重传和调优
产出:TCP 抓包分析报告。
第 31 到 50 天:应用层
1. HTTP 语义
2. HTTPS / TLS
3. HTTP/2 / HTTP/3
4. WebSocket
5. 代理与网关
产出:入口网关配置和证书轮换流程。
第 51 到 70 天:生产架构
1. LB / CDN / NAT / VPC
2. 网络安全
3. 云原生网络
4. 容量和延迟优化
产出:架构评审模板。
第 71 到 90 天:进阶
1. 内核网络栈
2. IO 模型
3. 服务网格
4. 压测和混沌
5. RFC 阅读
产出:压测报告和故障演练记录。
35.7 长期习惯
- 每次问题画出路径;
- 每个结论给证据;
- 每个优化给前后指标;
- 每个变更加回滚;
- 每个故障沉淀监控;
- 每季度演练入口切换;
- 持续跟踪协议演进;
- 把常用排障命令产品化。
35.8 职业方向
后端工程师
重点:连接池、超时、幂等、HTTP 语义、RPC、长连接。
SRE / 运维工程师
重点:DNS、LB、证书、VPC、监控、抓包、容量和故障演练。
平台工程师
重点:网关、服务网格、CNI、网络策略、自动化诊断。
性能工程师
重点:内核网络栈、epoll、io_uring、零拷贝、拥塞控制和压测。
安全工程师
重点:TLS、mTLS、零信任、WAF、DDoS、审计和策略治理。
本章小结
从 0 到大师的路径是:会使用、会排障、懂协议、能治理架构、能读 RFC 和内核实现。持续成长来自实验、项目、压测、故障复盘和文档阅读。最终目标是形成自己的网络方法论:分层定位、证据优先、路径可视化、容量有预算、故障可演练、安全有边界。
思考题
- 评估你当前处于哪个阶段,列出三个短板。
- 用抓包解释一次 TCP 连接的完整生命周期。
- 设计一个多地域网络拨测平台。
- 为团队制定网络故障复盘模板。
- 写下未来 90 天的实验计划和可验证产出。