计算机网络
网络的本质问题只有一个:如何让两台不在同一地方的机器可靠地交换信息。
这个问题的解决方案,是过去七十年里工程师在物理约束、经济约束和政治约束下层层叠加的结果。以太网解决了局域网的通信;IP 解决了跨网络的寻址;TCP 解决了不可靠链路上的可靠传输;DNS 解决了”名字”到”地址”的映射;TLS 解决了不信任网络上的身份验证和加密。每一层的存在都有其历史原因,每一层的设计都留有代价。
这个系列分两个层次:
基础层:核心协议与原理,十年甚至二十年内不会有根本性变化。理解这些是理解所有上层技术的前提。
前沿层:当前社区的主流范式与新兴技术。这部分会随时间更新,反映网络工程领域正在发生的演变。
一、目录
本系列共 23 篇文章,分两层:基础层(01-12)覆盖核心协议,稳定十年以上;前沿层(13-23)覆盖当前主流范式。
40-networking/
├── 00-networking-MOC.md ← 本文件
│
├── ── 基础层(01-12)──────────────────────────────────────── # 核心协议,稳定十年以上
├── 01-网络分层:协议为什么要分层.md ← OSI vs TCP/IP / 封装解封装 / 层间无知
├── 02-链路层与以太网:局域网的通信基础.md ← MAC 地址 / ARP / 交换机 / VLAN
├── 03-IP 与子网:全球寻址的设计.md ← CIDR / IPv4 vs IPv6 / ICMP / 分片
├── 04-NAT:IPv4 耗尽的补丁与代价.md ← SNAT·DNAT / 端对端原则的破坏
├── 05-路由:数据包如何找到目的地.md ← 最长前缀匹配 / OSPF / BGP / Anycast
├── 06-UDP:无连接传输的设计哲学.md ← 极简设计 / 实时场景的选择逻辑
├── 07-TCP:可靠传输的完整机制.md ← 三次握手 / 拥塞控制(BBR)/ 性能代价
├── 08-DNS:互联网的命名系统.md ← 解析链 / 记录类型 / DNSSEC / 脆弱性
├── 09-HTTP:Web 协议的演进.md ← HTTP/1.1 / HTTP/2 多路复用 / 缓存机制
├── 10-TLS:在不信任的网络上建立信任.md ← PKI / TLS 1.3 握手 / Let's Encrypt
├── 11-WebSocket:长连接与实时通信.md ← HTTP 升级握手 / 全双工 / 适用场景
├── 12-网络安全基础:防火墙、DDoS 与证书管理.md ← 状态检测防火墙 / DDoS 层次 / 证书生命周期
│
└── ── 前沿层(13-23)──────────────────────────────────────── # 主流范式与演进方向
├── 13-QUIC 与 HTTP/3:重新设计传输层.md ← 队头阻塞 / 0-RTT / 连接迁移
├── 14-CDN:内容分发与边缘缓存.md ← Anycast + PoP / 缓存策略 / 厂商对比
├── 15-边缘计算:把逻辑推向数据所在的地方.md ← 边缘函数 / Workers / 适用场景与约束
├── 16-Cloudflare:现代网络基础设施的范式.md ← DDoS 防护 / R2·Workers / Zero Trust 产品线
├── 17-Zero Trust 网络架构:身份优先的安全模型.md ← BeyondCorp / ZTNA / 设备证书 + 策略引擎
├── 18-WireGuard 与 Tailscale:身份优先的组网.md ← 协议简化 / Mesh 拓扑 / Subnet Router
├── 19-WebRTC 与 NAT 穿透:P2P 通信的工程实现.md ← STUN / TURN / ICE / SDP
├── 20-容器网络:Kubernetes 的网络模型.md ← CNI / Service / NetworkPolicy / Ingress
├── 21-eBPF 网络:可编程内核网络.md ← XDP·TC / Cilium / Hubble / 替代 kube-proxy
├── 22-gRPC 与现代 RPC:微服务通信协议.md ← Protobuf / HTTP/2 多路复用 / 服务发现
└── 23-流量编排:从反向代理到服务网格.md ← Nginx / API 网关 / Istio / eBPF 服务网格概念线索
线索一:分层是复杂性的管理方式
OSI 模型和 TCP/IP 模型的本质不是”七层”或”四层”这个数字,而是一种哲学:每一层只对下层的接口负责,对下层的实现保持无知。HTTP 不关心 TCP 怎么保证可靠性,TCP 不关心 IP 怎么选路由,IP 不关心以太网怎么传输比特。这种无知是有意设计的——它让每一层可以独立演进,让 HTTP/3 能换掉 TCP 而不改动 HTTP 语义。
贯穿文章:01-网络分层 → 05-UDP → 06-TCP → 08-HTTP → 09-TLS → 13-QUIC 与 HTTP/3
线索二:可靠性是构造出来的,不是天然存在的
物理链路会丢包,路由器会丢弃报文,网络会拥塞。TCP 的三次握手、确认、重传、拥塞控制,TLS 的证书验证和密钥协商,DNS 的冗余权威服务器——都是在不可靠的基础上用协议构造出”看起来可靠”的幻觉。理解这个代价,才能理解为什么 QUIC 要重新设计传输层,为什么 UDP 在某些场景反而更合适。
贯穿文章:05-UDP → 06-TCP → 09-TLS → 13-QUIC 与 HTTP/3 → 19-WebRTC 与 NAT 穿透
线索三:NAT 是一个补丁,但补丁成了基础设施
IPv4 地址不够用,NAT 是临时方案。但这个”临时”持续了三十年,彻底改变了网络的拓扑假设:绝大多数设备不再有公网 IP,P2P 通信变得困难,端对端原则被打破。所有”打洞”技术(STUN/TURN/ICE)、所有现代 VPN 方案(WireGuard、Tailscale)都是在 NAT 这个约束下工作的。理解 NAT,才能理解这些技术为什么存在。
贯穿文章:03-IP 与子网 → 04-NAT → 18-WireGuard 与 Tailscale → 19-WebRTC 与 NAT 穿透
线索四:从中心到边缘
早期互联网:内容在少数服务器上,用户连接过来取数据。CDN 的出现把内容复制到距离用户更近的节点。Cloudflare Workers 把计算也推到边缘。eBPF 把网络策略推到了内核里。这条线索是”把逻辑推向数据存在的地方”,而不是”把数据搬到逻辑所在的地方”,是过去二十年网络架构演进最重要的方向之一。
贯穿文章:14-CDN 与边缘缓存 → 15-边缘计算 → 16-Cloudflare → 21-eBPF 网络
线索五:从 IP 优先到身份优先
传统网络安全:你在公司内网 = 你是可信的(VPN 接入内网即可)。零信任的出发点:网络位置不代表信任,身份才是访问控制的基础。这个范式转变催生了 BeyondCorp(Google)、ZTNA、以及 Tailscale 这类用设备身份替代 IP 地址的组网工具。
贯穿文章:17-Zero Trust 网络架构 → 18-WireGuard 与 Tailscale → 16-Cloudflare
基础层
核心协议与原理,稳定十年以上。
网络模型
- 01-网络分层:协议为什么要分层 OSI 模型与 TCP/IP 模型的哲学差异,分层的收益与代价,封装与解封装,每层的职责边界
链路层
- 02-链路层与以太网:局域网的通信基础 MAC 地址与硬件寻址,以太网帧结构,ARP 协议(IP 到 MAC 的解析),交换机的工作原理,VLAN 基础
网络层
-
03-IP 与子网:全球寻址的设计 IPv4 地址结构,CIDR 与子网划分,IPv6 的设计动机与现状,ICMP,IP 分片
-
04-NAT:IPv4 耗尽的补丁与代价 为什么需要 NAT,SNAT/DNAT 的工作机制,NAT 对端对端原则的破坏,NAT 穿透问题的来源
-
05-路由:数据包如何找到目的地 路由表与最长前缀匹配,静态路由与动态路由,OSPF 基础,BGP 与互联网骨干,Anycast 的工作原理
传输层
-
06-UDP:无连接传输的设计哲学 UDP 的极简设计,为什么有时候”不可靠”反而更好(实时音视频、DNS、游戏),与 TCP 的选择标准
-
07-TCP:可靠传输的完整机制 三次握手与四次挥手,序列号与确认,流量控制(滑动窗口),拥塞控制(慢启动、CUBIC、BBR),TCP 的性能代价
应用层
-
08-DNS:互联网的命名系统 完整解析链(根服务器 → TLD → 权威),递归与迭代查询,DNS 记录类型(A/AAAA/CNAME/MX/TXT/NS),TTL 与缓存,DNSSEC,DNS 作为关键基础设施的脆弱性
-
09-HTTP:Web 协议的演进 HTTP/1.1 的设计决策(无状态、持久连接、管道化),HTTP/2 的多路复用与头部压缩,HTTP/3 换掉 TCP 的原因(见前沿层 QUIC 篇),状态码语义,缓存机制(Cache-Control、ETag)
-
10-TLS:在不信任的网络上建立信任 PKI 与证书链,CA 的信任模型,TLS 1.3 握手过程,对称加密与非对称加密的分工,证书管理(Let’s Encrypt、自动化续期),HSTS
-
11-WebSocket:长连接与实时通信 HTTP 升级握手,全双工通信,与轮询/长轮询/SSE 的对比,适用场景(实时通知、在线协作、游戏)
安全基础
- 12-网络安全基础:防火墙、DDoS 与证书管理 状态检测防火墙 vs 包过滤,DDoS 的攻击类型与防御层次(体积型/协议型/应用层),证书生命周期管理,常见攻击模型(中间人、DNS 劫持、BGP 劫持)
前沿层
当前社区的主流范式,随时间持续更新。
传输层演进
- 13-QUIC 与 HTTP/3:重新设计传输层 TCP 的队头阻塞问题,QUIC 基于 UDP 重新实现可靠传输,0-RTT 握手,连接迁移(换 IP 不断线),与 HTTP/2 的性能对比,当前部署现状
内容分发与边缘
-
14-CDN:内容分发与边缘缓存 CDN 的历史与核心机制(Anycast + PoP),缓存策略(回源、缓存键、Vary),动态内容加速(TCP 优化、TLS 卸载),主要厂商对比(Cloudflare、Akamai、Fastly、AWS CloudFront)
-
15-边缘计算:把逻辑推向数据所在的地方 从 CDN 静态缓存到边缘函数(Cloudflare Workers、Fastly Compute),边缘的约束(无持久化、冷启动、运行时限制),适用场景(A/B 测试、地理路由、认证卸载)
现代网络基础设施
-
16-Cloudflare:现代网络基础设施的范式 Anycast 网络架构,DDoS 防护的实现原理,R2(对象存储)、Workers(边缘计算)、Pages、D1,Zero Trust 产品线(Access、Tunnel、WARP),Magic Transit(IP 层保护),1.1.1.1 与 DNS-over-HTTPS
-
17-Zero Trust 网络架构:身份优先的安全模型 BeyondCorp(Google)的起源,ZTNA 的核心原则(永不信任、持续验证),与传统 VPN 的对比,实现路径(设备证书 + 身份提供商 + 策略引擎),主要产品(Cloudflare Access、Zscaler、Netskope)
新型组网
-
18-WireGuard 与 Tailscale:身份优先的组网 WireGuard 的协议简化(与 IPSec/OpenVPN 对比),Tailscale 的控制平面设计(coordination server + 去中心化数据面),Mesh 网络拓扑,MagicDNS,Subnet Router,与传统 VPN 的使用场景对比
-
19-WebRTC 与 NAT 穿透:P2P 通信的工程实现 STUN(Session Traversal Utilities for NAT),TURN(中继服务器),ICE(候选地址协商),SDP(会话描述),WebRTC 在浏览器中的应用,Tailscale 借鉴 WebRTC 打洞机制的方式
容器与云原生网络
-
20-容器网络:Kubernetes 的网络模型 Pod 网络模型(每个 Pod 有独立 IP),CNI 插件机制,Service 的 kube-proxy 实现(iptables/ipvs 模式),ClusterIP/NodePort/LoadBalancer,NetworkPolicy,Ingress 控制器
-
21-eBPF 网络:可编程内核网络 eBPF 在网络中的应用(XDP、TC、socket filter),Cilium 替代 kube-proxy 的原理,eBPF 用于网络可观测性(Hubble),与传统 iptables 的性能对比
现代 API 与 RPC
- 22-gRPC 与现代 RPC:微服务通信协议 gRPC 基于 HTTP/2 的多路复用,Protobuf 作为接口契约,与 REST 的取舍(类型安全 vs 通用性),gRPC-Web(浏览器支持),gRPC 流式通信,服务发现与负载均衡
流量编排
- 23-流量编排:从反向代理到服务网格 反向代理的历史角色(Nginx),负载均衡算法(轮询/最少连接/一致性哈希),API 网关的职责,现代反向代理(Caddy、Traefik 的自动化证书),服务网格的 Sidecar 模式(Envoy/Istio),eBPF 模式(Cilium Service Mesh)取代 Sidecar 的趋势
阅读路径
路径一:从零开始的网络基础
01(分层模型,建立心智框架)
→ 02(链路层,本地网络如何工作)
→ 03(IP,全球寻址)
→ 04(NAT,为什么大多数机器没有公网 IP)
→ 05(路由,数据包如何跨网络)
→ 06(UDP)→ 07(TCP)
→ 08(DNS)→ 09(HTTP)→ 10(TLS)路径二:后端工程师的网络必知
07(TCP 完整机制)
→ 09(HTTP 演进)
→ 10(TLS)
→ 08(DNS)
→ 13(QUIC/HTTP/3)
→ 20(容器网络)
→ 23(流量编排)路径三:理解现代网络安全
04(NAT,理解网络边界)
→ 12(网络安全基础)
→ 17(Zero Trust)
→ 18(Tailscale)
→ 16(Cloudflare 安全产品)路径四:云原生与基础设施
20(容器网络)
→ 21(eBPF 网络)
→ 23(流量编排与服务网格)
→ 13(QUIC,理解 HTTP/3 在云原生中的应用)路径五:CDN 与边缘计算方向
14(CDN 原理)
→ 15(边缘计算)
→ 16(Cloudflare 产品体系)
→ 13(QUIC,Cloudflare 的核心技术之一)
→ 21(eBPF,Cloudflare 的网络数据面)与其他系列的关联
- 11-网络:Linux 的网络模型 — Linux 视角的网络实现(socket、Netfilter、网络命名空间),是本系列协议原理的操作系统实现层
- T3-网络专题 — Linux 防火墙(iptables/nftables)、容器网络、WireGuard 配置、DNS 排查的实操手册
- 00-hardware-MOC — 物理层之下:网卡、总线、PCIe 互联,是链路层的硬件基础
暂存内容
以下目录为原有笔记,内容已被新结构覆盖,后续整理时决定去留:
10-fundamentals/— 原网络基础笔记20-transport/— 原 TCP 笔记30-dns/— 原 DNS 笔记40-services/— 原服务笔记50-cdn/— 原 CDN 笔记60-reverse-proxy/— 原反向代理笔记