{"name":"链路层","id":"计算机网络-链路层","content":"# 链路层\n\n## 一、链路层存在的第一性原理\n\n### 1.1 核心问题定义\n\n链路层面对的根本问题可以抽象为三点：\n\n1. **物理媒介不可靠**（有噪声、有差错）\n2. **通信资源有限且可能共享**（带宽、信道）\n3. **通信需要被系统识别和管理**（边界、地址、转发）\n\n因此，链路层并不追求“绝对正确”，而是追求：\n\n> **在单跳范围内，用最低复杂度，提供“足够好”的数据传递能力。**\n\n这直接决定了链路层的设计哲学：\n\n* 局部最优，而非全局最优\n* 简单、快速、可硬件化\n* 为上层提供“可用抽象”，而非最终保障\n\n---\n\n## 二、链路层能力模型（稳定认知框架）\n\n从第一性原理出发，链路层的能力可以被抽象为一个稳定的能力树：\n\n```\n链路层能力模型\n├── 成帧（Frame）\n│   ├── 边界定义（定界）\n│   ├── 透明传输\n│\n├── 差错控制\n│   ├── 差错检测（Detection）\n│   └── 差错纠正（Correction，少见）\n│\n├── 介质访问控制（MAC）\n│   ├── 冲突避免 / 冲突处理\n│   ├── 公平性\n│   └── 吞吐量\n│\n├── 寻址与转发\n│   ├── MAC 地址\n│   └── 本地转发\n│\n├── 隔离与虚拟化\n│   ├── 广播域控制\n│   └── 逻辑网络划分\n```\n\n这个模型是理解后续所有协议与机制的\"总地图\"。\n\n---\n\n## 三、成帧：让连续比特流\"结构化\"\n\n### 3.1 为什么必须成帧\n\n物理层只负责比特流：\n\n```\n010101010111...\n```\n\n链路层的第一步，是**引入结构**：\n\n> **帧 = 链路层的最小语义单元**\n\n### 3.2 帧的核心要素\n\n* **首部（Header）**：控制信息（地址、类型）\n* **数据部分（Payload）**：来自上层\n* **尾部（Trailer）**：完整性校验\n\n```mermaid\npacket-beta\n0-5: \"首部\"\n6-25: \"IP 数据报\"\n26-31: \"尾部\"\n```\n\n### 3.3 透明传输的本质\n\n**问题本质**：\n\n* 如何区分\"控制信息\"与\"数据内容\"？\n\n**解决思想**：\n\n* 定界符 + 转义机制\n\n透明传输的本质不是\"转义字符\"，而是：\n\n> **控制信息与用户数据在语义上的隔离**\n\n---\n\n## 四、差错控制：局部纠错而非全局可靠\n\n### 4.1 为什么链路层要做差错检测\n\n* 物理噪声不可避免\n* 错误如果不尽早发现，会被放大\n\n### 4.2 为什么不用复杂算法\n\n链路层通常由**硬件实现**：\n\n* 速度优先\n* 逻辑简单\n\n因此：\n\n* ❌ 不适合：复杂校验和、端到端确认\n* ✅ 适合：位运算、流水线友好算法\n\n### 4.3 典型检测方法\n\n| 方法   | 本质    | 特点    |\n| ---- | ----- | ----- |\n| 奇偶校验 | 奇偶约束  | 能力弱   |\n| 校验和  | 数值一致性 | 多用于高层 |\n| CRC  | 多项式除法 | 工程最优  |\n\n### 4.4 链路层可靠性的边界\n\n> 链路层的可靠性是**\"单跳、可选、非强制\"**\n\n这与运输层形成根本差异。\n\n---\n\n## 五、介质访问控制（MAC）：共享资源的协调艺术\n\n### 5.1 MAC 问题的统一抽象\n\n所有 MAC 协议，本质都在解决同一个问题：\n\n```\n多个节点\n+ 共享信道\n+ 无全局视角\n→ 如何避免或处理冲突？\n```\n\n### 5.2 三类稳定的解决范式\n\n#### 1️⃣ 静态切分（先分好再用）\n\n| 协议  | 核心思想 | 代价   |\n| --- | ---- | ---- |\n| TDM | 按时间切 | 空闲浪费 |\n| FDM | 按频率切 | 利用率低 |\n| WDM | 光的频分 | 成本高  |\n\n#### 2️⃣ 动态竞争（先用再说）\n\n| 协议      | 思想   | 风险   |\n| ------- | ---- | ---- |\n| ALOHA   | 随机发送 | 冲突多  |\n| CSMA    | 先听后说 | 仍会冲突 |\n| CSMA/CD | 边说边听 | 物理限制 |\n\n二进制指数退避体现的是一个**通用系统思想**：\n\n> 冲突成本越高，退让越激进\n\n#### 3️⃣ 协调轮转（显式秩序）\n\n| 协议 | 思想   | 问题   |\n| -- | ---- | ---- |\n| 轮询 | 中心调度 | 单点故障 |\n| 令牌 | 去中心  | 管理复杂 |\n\n---\n\n## 六、寻址与交换：从\"共享\"到\"隔离\"\n\n### 6.1 MAC 地址的本质\n\n* 链路层地址\n* 48 位\n* **标识的是\"接口\"，而非\"主机\"**\n\n### 6.2 交换机的第一性原理\n\n> **交换机 = 二层分布式缓存系统**\n\n```\nMAC 地址 → 端口\n```\n\n* 自学习\n* 转发 / 过滤\n\n### 6.3 广播、副作用与失效模式\n\n* 交换机毒化：缓存被污染 → 退化为广播\n* 广播风暴：局部行为 → 全网放大\n\n这些问题的根源在于：\n\n> **二层网络缺乏全局控制平面**\n\n---\n\n## 七、VLAN：逻辑隔离的工程解法\n\n### 7.1 VLAN 解决的根本问题\n\n* 广播域过大\n* 组织结构与物理拓扑不一致\n\n### 7.2 VLAN 的本质\n\n> **VLAN = 广播域的逻辑切分**\n\n* 不改变物理连接\n* 改变\"谁能看到谁\"\n\n### 7.3 VLAN 的边界\n\n* 解决二层隔离\n* ❌ 不能替代三层路由\n\n---\n\n## 八、链路虚拟化与数据中心网络\n\n### 8.1 链路虚拟化\n\n> 把\"网络\"抽象成\"一条逻辑链路\"\n\n这是现代云网络的基础思想。\n\n### 8.2 数据中心网络关注点\n\n* 大规模\n* 高并发\n* 可演进\n\n核心目标：\n\n* 消灭大广播域\n* 提供可预测性能\n\n---\n\n## 九、历史演进与不变思想\n\n| 技术         | 是否仍主流 | 不变的思想  |\n| ---------- | ----- | ------ |\n| CSMA/CD    | 否     | 冲突代价递增 |\n| Token Ring | 否     | 显式协调   |\n| 交换式以太网     | 是     | 空间换时间  |\n| VLAN       | 是     | 逻辑隔离   |\n\n## 关联内容（自动生成）\n\n- [/计算机网络/网络层.md](/计算机网络/网络层.md) 网络层与链路层是相邻的网络协议层，网络层依赖链路层提供的服务进行数据传输，两者在协议栈中紧密协作\n- [/计算机网络/运输层.md](/计算机网络/运输层.md) 运输层与链路层在协议栈中分别负责端到端和点对点的数据传输，理解两层的差异有助于理解协议分层设计\n- [/计算机网络/应用层.md](/计算机网络/应用层.md) 应用层是网络协议栈的最上层，与链路层形成完整的协议栈体系，数据在各层间封装和解封装\n- [/计算机网络/计算机网络与因特网.md](/计算机网络/计算机网络与因特网.md) 作为计算机网络的总体概述，提供了理解链路层在整个网络体系中作用的宏观视角\n- [/计算机网络/网络安全/网络安全.md](/计算机网络/网络安全/网络安全.md) 链路层安全是网络安全的重要组成部分，涉及MAC地址欺骗、VLAN跳跃等安全问题\n- [/计算机网络/无线网络.md](/计算机网络/无线网络.md) 无线网络中的链路层有特殊考虑，如信道管理、移动性管理等，与有线网络的链路层实现有所不同\n- [/计算机网络/网络编程.md](/计算机网络/网络编程.md) 网络编程涉及各层协议的实际应用，包括链路层的底层操作和控制\n- [/计算机网络/Linux虚拟化.md](/计算机网络/Linux虚拟化.md) Linux网络虚拟化技术涉及链路层虚拟化，如虚拟网桥、VLAN等技术的实现","metadata":"tags: ['网络', '网络协议']\nbooks: [\n  {name: '计算机网络:自顶向下方法'}\n]","hasMoreCommit":false,"totalCommits":1,"commitList":[{"date":"2026-06-14T12:12:42+08:00","author":"MY","message":"refactor(responsive): 响应式合流 P0-P2 — 响应式断点 + 令牌统一 + 单一响应式外壳","hash":"7019457ca1b42a02edc0b155de936713ba81f526"}],"createTime":"2026-06-14T12:12:42+08:00"}