Skip to content

第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)用于广域网拨号连接:

| 标志 | 地址 | 控制 | 协议 |    数据    | FCS | 标志 |
| 7E  |  FF  |  03  | 2字节| 不超过1500 | 2字节| 7E |

特点: - 提供差错检测(但不纠错) - 支持多种网络层协议(通过协议字段区分) - 不提供可靠传输,无编号,无流控

3.3 局域网与以太网

CSMA/CD 工作原理

先听后发,边发边听,冲突停发,随机延迟后重发

  • 争用期(碰撞窗口) = \(2 au\)($ au$ 为单程传播时延)
  • 最小帧长 = \(2 au imes 发送速率\)(10 Mbit/s 以太网:512 bit = 64 字节)
  • 截断二进制指数退避算法:第 \(k\) 次冲突,随机选 \([0, 2^k - 1]\) 中的一个数

以太网MAC帧格式

| 前导码(8B) | 目的地址(6B) | 源地址(6B) | 类型(2B) | 数据(46-1500B) | FCS(4B) |
  • 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-数据链路层|以太网交换机]] — 转发与自学习