分层模型与 IP
网络把不可靠的链路组合成可靠的通信,方法不是把每一层都做可靠,而是分层 + 端到端原则。本章讲 OSI 与 TCP/IP 分层、封装、IP 地址与子网、NAT、IPv6,以及"端到端原则"如何塑造了互联网(→ 从晶体管到应用:抽象层次)。
两种分层模型
Section titled “两种分层模型”| OSI 七层 | TCP/IP 四层 | 本卷对应 |
|---|---|---|
| 应用 / 表示 / 会话 | 应用层 | DNS、HTTP、TLS(→ 第二部分) |
| 传输 | 传输层 | TCP、UDP(→ 传输层:TCP 与 UDP) |
| 网络 | 网络层(IP) | 本章 |
| 数据链路 / 物理 | 链路层 | 以太网、Wi-Fi(本卷从略) |
OSI 是教学模型(七层完整但过细),TCP/IP 是实现模型(四层对应真实协议栈)。每层只与相邻层交互,是网络能演进的原因:以太网换了 Wi-Fi,应用层协议一行没改;IPv4 之上叠 IPv6,TCP 不受影响。
封装与解封装
Section titled “封装与解封装”发送方自顶向下封装:应用数据 → TCP 段(加端口头)→ IP 包(加 IP 头)→ 以太网帧(加链路头);接收方自底向上解封装。每一层加自己的头、不管里面是什么——层间只有"载荷"这一个接口。
IP:尽力而为
Section titled “IP:尽力而为”IP 的"尽力而为"(best-effort)意味着不承诺任何事:不保证到达、不保证顺序、不保证重复包不出现。所有可靠性放在端系统(TCP)或应用层——这个设计决策就是端到端原则。
把复杂性放在端系统而非网络中:网络只做简单的转发(IP),可靠传输、加密、校验都在两端做。论证:某些功能(可靠传输、端到端加密)只能在端系统正确实现,网络内部实现是浪费且有害。
这是互联网架构最重要的设计决策,回报是网络保持简单、可演进——40 年的传输创新(TCP 变体、QUIC)都发生在端系统,路由器一行没改。代价是网络不能提供"智能"服务(有界延迟、按优先级转发)——QoS 类承诺至今难产。
IP 地址与子网
Section titled “IP 地址与子网”IPv4 地址 32 位,子网把主机位分成网络前缀 + 主机位(CIDR 记法 10.0.0.0/8):路由器按前缀转发。两个遗留问题催生了 NAT 与 IPv6。
NAT:打破端到端的补丁
Section titled “NAT:打破端到端的补丁”NAT(网络地址转换)让内网私有地址(10.x、192.168.x)共享公网 IP:路由器改写 IP 与端口、维护映射表。它救了 IPv4 地址枯竭,代价是NAT 打破了端到端可达性——外部无法主动连接内网主机,穿透(STUN/TURN/打洞)成了 P2P 与 VoIP 的固定难题,也让"网络中间盒"重新流行(端到端原则的倒退)。
IPv6:正解及其缓慢
Section titled “IPv6:正解及其缓慢”128 位地址、无 NAT 需求、简化头、内建自动配置。IPv6 的部署为何如此缓慢:改造需要升级端到端的一切(内核、路由器、ISP、内容方),而 NAT 让 IPv4 凑合能用——"凑合能用"是最好的技术演进杀手。如今全球渗透率过半,但 NAT 在可预见的未来不会消失。
- 每层只与相邻层交互,是网络能演进的原因:层间只有"载荷"接口
- IP 的尽力而为:不保证到达/顺序/重复,可靠性交给端系统
- 端到端原则:复杂性放在端系统,网络保持简单——互联网 40 年演进的原因
- NAT 打破了端到端可达性:救了 IPv4,代价是 P2P 穿透与中间盒
- IPv6 部署缓慢:改造面太广 + NAT 凑合能用