{"name":"网络层","id":"计算机网络-网络层","content":"# 网络层\n\n## 一、网络层的第一性原理\n\n### 1. 网络层要解决的根本问题\n\n**问题本质**：\n\n> 在一个**不可靠、异构、无限规模扩展**的物理网络之上，\n> 如何提供一种**统一的、可扩展的、端到端通信抽象**？\n\n这一问题具有不可回避的约束条件：\n\n* 链路与节点随时可能失败\n* 网络规模不可预知、不可集中控制\n* 不同网络的底层技术完全不同\n* 不存在全局可信状态\n\n网络层的设计，正是对这些约束的系统性回应。\n\n---\n\n### 2. 网络层的核心设计哲学\n\n由上述约束，推导出网络层的一组**第一性设计选择**：\n\n| 约束     | 设计选择     | 解释          |\n| ------ | -------- | ----------- |\n| 网络不可靠  | 尽力而为     | 不在网络内部保证可靠性 |\n| 规模巨大   | 分布式路由    | 不依赖中心节点     |\n| 异构网络   | IP 抽象    | 屏蔽物理网络差异    |\n| 自治系统   | AS + BGP | 不假设统一管理     |\n| 复杂性不可控 | 端到端原则    | 把复杂性交给端系统   |\n\n> **结论**：\n> 网络层不是“能力最强的一层”，而是**假设最少、责任最轻的一层**。\n\n---\n\n## 二、网络层的服务模型\n\n### 1. 无连接、尽力而为的数据报模型\n\n网络层向上传递的不是“连接”，而是：\n\n> **独立、无状态的数据报（Datagram）**\n\n其核心特征：\n\n* 每个分组独立路由\n* 网络节点不保存端到端状态\n* 不保证：\n\n  * 到达\n  * 顺序\n  * 不重复\n\n这是一个**刻意“能力不足”的设计**，目的是：\n\n* 降低网络内部复杂度\n* 提高系统整体可扩展性\n\n---\n\n### 2. 端到端原则在网络层的体现\n\n> 只有端系统才能真正实现可靠性、顺序性和语义一致性。\n\n因此：\n\n* 网络层负责“尽量送达”\n* 传输层（TCP）负责“可靠语义”\n\n这是一个**跨层协作的系统分工**，而非网络层的缺陷。\n\n---\n\n## 三、核心机制一：转发（Forwarding）\n\n### 1. 转发的本质\n\n> 转发 = **局部、快速、确定性的决策过程**\n\n输入：\n\n* 数据报首部\n* 本地转发表\n\n输出：\n\n* 下一跳接口\n\n转发强调：\n\n* **速度优先**\n* **无全局视角**\n\n---\n\n### 2. 数据平面（Data Plane）\n\n数据平面负责：\n\n* 数据报解析\n* 最长前缀匹配\n* TTL / 校验和更新\n* 排队与调度\n\n其特征是：\n\n* 高频\n* 简单\n* 可硬件化\n\n---\n\n### 3. 交换结构的演进\n\n交换结构体现的是：\n\n> **如何在路由器内部实现并行转发**\n\n演进路径：\n\n1. 内存交换（简单、不可扩展）\n2. 总线交换（瓶颈明显）\n3. 纵横式交换（并行能力强）\n\n这是一个典型的**从功能正确 → 性能可扩展**的工程演进。\n\n---\n\n### 4. 分组调度：资源竞争的管理\n\n调度算法的本质问题是：\n\n> **当资源不足时，谁先被服务？**\n\n典型策略：\n\n* FIFO：简单但不公平\n* 优先级队列：实时性 vs 饥饿\n* 加权公平：公平性与吞吐权衡\n\n调度是**网络层 QoS 能力的核心抓手**。\n\n---\n\n## 四、核心机制二：路由（Routing）\n\n### 1. 路由的本质\n\n> 路由 = **慢速、全局、持续演进的决策过程**\n\n目标：\n\n* 为转发生成可用的转发表\n\n路由关注：\n\n* 正确性\n* 稳定性\n* 收敛性\n\n---\n\n### 2. 路由算法的设计张力\n\n核心矛盾：\n\n| 目标   | 冲突    |\n| ---- | ----- |\n| 全局最优 | 不可扩展  |\n| 局部信息 | 易产生环路 |\n| 快速收敛 | 控制开销大 |\n\n所有路由算法，都是在这些矛盾中取舍。\n\n---\n\n### 3. 两类基本算法范式\n\n#### 距离向量（DV）\n\n* 仅交换距离信息\n* 实现简单\n* 无拓扑视角 → 易环路\n\n#### 链路状态（LS）\n\n* 泛洪拓扑信息\n* 全局最短路径\n* 控制流量大\n\n---\n\n### 4. IGP 与 EGP 的分工\n\n| 层次   | 协议         | 关注点       |\n| ---- | ---------- | --------- |\n| AS 内 | RIP / OSPF | 最短路径、快速收敛 |\n| AS 间 | BGP        | 策略、自治、稳定  |\n\n> **BGP 不是“最短路径协议”，而是“策略协调协议”**。\n\n---\n\n## 五、IP：统一抽象的核心协议\n\n### 1. IP 的设计目标\n\n> 提供一个**最小但足够通用的网络抽象**\n\nIP 只关心：\n\n* 地址\n* 分片\n* 生命周期\n\n---\n\n### 2. IPv4：现实妥协的产物\n\n* 有限地址空间\n* 首部复杂\n* 需要 NAT 作为补丁\n\nIPv4 的大量“问题”，并非设计失误，而是：\n\n> **早期规模假设被现实击穿**。\n\n---\n\n### 3. IPv6：回归设计本意\n\nIPv6 的改进体现了：\n\n* 地址充足 → 减少技巧\n* 首部简化 → 提高转发效率\n* 禁止中间分片 → 强化端到端原则\n\n---\n\n## 六、规模化网络的工程解法（非原理）\n\n> 本章内容属于**工程补丁层**，用于应对现实约束。\n\n### 1. NAT\n\n* 解决地址不足\n* 破坏端到端模型\n* 增加系统复杂性\n\n### 2. ECMP\n\n* 提升带宽利用率\n* 带来路径爆炸与排错复杂度\n\n### 3. MPLS / VPN\n\n* 提供流级控制与隔离\n* 本质是对 IP 转发模型的增强\n\n---\n\n## 七、控制平面 / 数据平面分离：架构范式\n\n### 1. SDN 的本质\n\n> SDN 不是“新协议”，而是：\n> **控制与执行分离的架构重构**\n\n这一范式在多个领域重复出现：\n\n* 网络：SDN\n* 分布式系统：Controller / Worker\n* 数据库：Planner / Executor\n\n---\n\n### 2. 可编程网络\n\nSDN 带来的不是“更快”，而是：\n\n* 更强的表达能力\n* 更清晰的系统边界\n* 更可演进的控制逻辑\n\nService Mesh 是该思想在应用层的延展。\n\n---\n\n## 八、网络层的整体认知总结\n\n> 网络层的伟大之处，不在于它做了多少事，\n> 而在于它**清楚地知道自己不该做什么**。\n\n* 把可靠性交给端系统\n* 把策略性交给自治系统\n* 把复杂性交给架构演进\n\n这正是互联网能够持续扩展数十年的根本原因。\n\n## 关联内容（自动生成）\n\n- [/计算机网络/运输层.md](/计算机网络/运输层.md) 运输层与网络层存在密切关系，运输层构建在网络层之上，网络层提供主机到主机的通信服务，而运输层提供进程到进程的通信服务\n- [/计算机网络/链路层.md](/计算机网络/链路层.md) 链路层与网络层是相邻层次，网络层依赖链路层提供的服务实现数据包在相邻节点间的传输\n- [/计算机网络/应用层.md](/计算机网络/应用层.md) 应用层使用网络层提供的服务实现端到端通信，理解网络层服务模型对设计应用层协议至关重要\n- [/计算机网络/rpc.md](/计算机网络/rpc.md) RPC协议运行在网络层之上，网络层的路由、转发机制影响RPC调用的性能和可靠性\n- [/计算机网络/网络编程.md](/计算机网络/网络编程.md) 网络编程实践需要理解网络层提供的服务和API，特别是IP协议的使用\n- [/计算机网络/云计算.md](/计算机网络/云计算.md) 云计算环境中的虚拟网络、多租户隔离等技术与网络层的路由、转发机制密切相关\n- [/计算机网络/Linux虚拟化.md](/计算机网络/Linux虚拟化.md) Linux网络虚拟化技术实现网络层协议栈的虚拟化，包括IP转发、路由、NAT等\n- [/计算机网络/网络安全/网络安全.md](/计算机网络/网络安全/网络安全.md) 网络安全涉及网络层的安全防护，如防火墙、IPSec、路由控制等技术\n- [/计算机网络/网络安全/网络协议安全.md](/计算机网络/网络安全/网络协议安全.md) 网络协议安全文档详细分析了IP协议等网络层协议的安全缺陷和防护措施\n- [/计算机网络/网络安全/网络安全隔离技术.md](/计算机网络/网络安全/网络安全隔离技术.md) 网络层隔离通过VLAN、路由策略、ACL、NAT、防火墙等技术实现分区与访问控制\n- [/计算机网络/无线网络.md](/计算机网络/无线网络.md) 无线网络中的移动IP技术解决移动性问题，与网络层的路由、地址分配等机制密切相关\n- [/计算机网络/IO模型.md](/计算机网络/IO模型.md) IO模型中的网络IO操作依赖网络层协议栈的实现，影响网络数据的收发效率\n- [/计算机网络/网络安全/Web安全.md](/计算机网络/网络安全/Web安全.md) Web安全与网络层安全相互配合，共同构建端到端的安全防护体系\n- [/操作系统/容器化.md](/操作系统/容器化.md) 容器网络技术基于网络层协议栈实现，包括网络命名空间、虚拟网络设备等\n- [/操作系统/linux/Linux性能优化.md](/操作系统/linux/Linux性能优化.md) Linux网络性能优化涉及网络层的路由和转发优化，如IP转发、LRO等技术\n- [/数学/线性代数.md](/数学/线性代数.md) 网络路由中的距离矩阵算法与线性代数相关\n","metadata":"tags: ['网络', '网络协议']\nbooks: [\n  {name: '计算机网络:自顶向下方法'}\n]","hasMoreCommit":true,"totalCommits":13,"commitList":[{"date":"2026-02-12T14:07:03+08:00","author":"MY","message":"doc: 整理标签","hash":"290b3e8ad18f48832ac282290238d020fc030a88"},{"date":"2026-01-04T11:22:45+08:00","author":"MY","message":"feat(doc): 添加网络层文档的图片资源并重构内容结构","hash":"1dd2f86a37bba08718e887149d611f3d4bbba061"},{"date":"2024-11-12T14:25:11+08:00","author":"MY","message":"📦计算机网络","hash":"1ce5935bd6b1e4411336dcbbe6fb19ef37f59a22"},{"date":"2023-05-25T16:41:11+08:00","author":"MY","message":"✏计算机网络","hash":"9fa90391b4921ad8f18525bfe368c17388ae7582"},{"date":"2023-05-23T17:26:34+08:00","author":"MY","message":"✏计算机网络","hash":"3b4ce4e0592ec2485ab9ff276a35a56c7ef3400b"},{"date":"2022-08-16T15:55:47+08:00","author":"cjiping","message":"✏️计网","hash":"80defab3e4e06f348f8e315048f75fd194c4135a"},{"date":"2022-07-10T16:05:00+08:00","author":"MY","message":"✏️更新 计算机网络算法","hash":"61bd4c9bf67fd790d9670c1a59424404f6ee214c"},{"date":"2022-06-13T21:25:34+08:00","author":"MY","message":"✏️更新 网络安全相关","hash":"b63f8d14136140a18b8f72fbe7e5aad417ff0328"},{"date":"2022-06-10T14:40:52+08:00","author":"MY","message":"✏️更新 网络层","hash":"0c15327c2489b95903ad0d8d9a30805ddd13d1ae"},{"date":"2022-06-09T20:47:24+08:00","author":"MY","message":"✏️更新 计算机网络","hash":"7516992a8ff093d5aa9423860fd6db89bb8f04e4"}],"createTime":"2019-10-28T10:59:37+08:00"}