第3章 数据链路层
章节概述
数据链路层将不可靠的物理链路变成相对可靠的数据链路,提供相邻节点间的帧传输服务。本章重点是以太网(IEEE 802.3)的 CSMA/CD 协议,以及通过交换机构建大型局域网。
核心概念
- [[03-数据链路层|帧同步]] 与 [[03-数据链路层|透明传输]]
- [[CRC循环冗余校验|差错检测]]:CRC 循环冗余校验
- [[03-数据链路层|PPP]]
- [[CSMA_CD|CSMA/CD]] 协议
- [[以太网与MAC地址|以太网MAC地址]]
- [[03-数据链路层|网桥]] 与 [[03-数据链路层|以太网交换机]]
- [[03-数据链路层|VLAN]]
3.1 数据链路层的三个基本问题
1. 封装成帧(Framing)
在数据前后加帧头、帧尾(SOH/EOT 字符,或字节/比特填充)。
2. 透明传输(Transparency)
当数据中出现与帧定界符相同的比特组合时: - 字节填充:在转义字符 ESC 前插入 ESC - 比特填充:每5个连续"1"后插入一个"0"(PPP协议用)
3. 差错检测(Error Detection)
CRC(循环冗余检验): - 发送端:将帧视为多项式,除以生成多项式 \(P(x)\),余式作为 FCS 附在帧尾 - 接收端:重新计算,若余式≠0 则丢弃 - 只检测错误,不纠正(丢弃后由上层重传)
3.2 PPP协议
点对点协议(Point-to-Point Protocol)用于广域网拨号连接:
特点: - 提供差错检测(但不纠错) - 支持多种网络层协议(通过协议字段区分) - 不提供可靠传输,无编号,无流控
3.3 局域网与以太网
CSMA/CD 工作原理
先听后发,边发边听,冲突停发,随机延迟后重发
- 争用期(碰撞窗口) = \(2 au\)($ au$ 为单程传播时延)
- 最小帧长 = \(2 au imes 发送速率\)(10 Mbit/s 以太网:512 bit = 64 字节)
- 截断二进制指数退避算法:第 \(k\) 次冲突,随机选 \([0, 2^k - 1]\) 中的一个数
以太网MAC帧格式
- MAC地址:48位,固化在网卡,前3字节为厂商代码(OUI)
- 广播地址:FF-FF-FF-FF-FF-FF
信道利用率
\[a = rac{ au}{T_0} = rac{ ext{传播时延}}{ ext{帧发送时间}}\]
最大信道利用率 \(U_{max} = rac{1}{1+a}\)(\(a\) 越小利用率越高)
3.4 扩展以太网
| 设备 | 工作层次 | 隔离碰撞域 | 隔离广播域 |
|---|---|---|---|
| 集线器 Hub | 物理层 | ✗ | ✗ |
| 网桥 Bridge | 数据链路层 | ✓ | ✗ |
| 交换机 Switch | 数据链路层 | ✓ | ✗ |
| 路由器 Router | 网络层 | ✓ | ✓ |
交换机工作原理: - 自学习 MAC 地址表(源地址学习) - 转发时查表:已知目的地址→单播;未知→泛洪广播
虚拟局域网 VLAN(IEEE 802.1Q)
- 将物理局域网划分为多个逻辑局域网
- 不同 VLAN 间通信必须经过三层路由
- 802.1Q 帧在 MAC 帧中插入 4 字节 VLAN 标记
参见
- [[01-概述]] — 协议分层
- [[02-物理层]] — 比特传输
- [[04-网络层]] — IP与ARP
- [[CSMA_CD|CSMA/CD]] — 碰撞检测详解
- [[03-数据链路层|以太网交换机]] — 转发与自学习