postgraduate-prep/subjects/cn/03_数据链路层.md

226 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 数据链路层
### 1. 数据链路层功能
| 功能 | 说明 |
|------|------|
| 组帧 | 将网络层数据包封装成帧,添加首部和尾部 |
| 差错控制 | 检测或纠正传输中的比特错误 |
| 流量控制 | 协调收发双方速率,防止接收方溢出 |
| 介质访问控制 | 控制多个节点共享信道时的有序访问MAC 子层) |
| 链路管理 | 建立、维护、释放数据链路连接 |
> **服务访问点SAP**网络层与数据链路层的接口帧中通过类型字段EtherType标识上层协议。
### 2. 组帧Framing
#### 2.1 字符计数法
- 帧首部用计数字段标识帧长
- 计数字段出错则无法同步,现已很少使用
#### 2.2 字符填充法
- 用特殊标志字符界定帧的起止(如 `DLE STX` / `DLE ETX`
- 数据中出现标志字符时在其前插入转义字符 `DLE`
#### 2.3 零比特填充法HDLC
-`01111110` 作为帧边界
- 数据中每出现连续的 5 个 `1` 后自动插入一个 `0`(透明传输)
- 接收端检测到 `01111110` 即帧边界,自动删除数据中的填充 `0`
#### 2.4 物理层编码违例法
- 利用物理层编码的冗余信号表示帧边界(如曼彻斯特编码的高-高/低-低)
### 3. 差错控制
#### 3.1 检错编码
| 编码 | 原理 | 特点 |
|------|------|------|
| 奇偶校验 | 添加一位使 `1` 个数为奇/偶 | 只能检出奇数位错误,检错率低 |
| 循环冗余校验CRC | 数据多项式除以生成多项式,余数作为 FCS | 检错能力强,硬件实现简单 |
**CRC 步骤**
1. 选定生成多项式 $G(x)$,阶数为 $r$
2. 数据后补 $r$ 个 0模 2 除以 $G(x)$(异或运算)
3. 余数($r$ 位即为帧检验序列FCS替换补的 0
4. 接收端用同一 $G(x)$ 除整个帧,余数为 0 则无错
> **CRC 是检错码,不是纠错码**,发现错误后要求重传。
#### 3.2 纠错编码(海明码)
**海明不等式**$2^k \ge n + k + 1$,其中 $n$ 为有效数据的位数,$k$ 为校验位的位数。
**校验位位置**:放在 $2^{i}$ 位置($i = 0,1,2,\dots$),即第 $1,2,4,8,\dots$ 位。
**检错与纠错**:每个校验位负责一组数据位,出错时多个校验位联合定位错误位,可纠正 1 位错误。
| 能力 | 说明 |
|------|------|
| 检 2 位错 + 纠 1 位错 | 增加一位全局奇偶校验位实现 |
| 仅纠 1 位错 | 标准海明码 |
### 4. 流量控制与可靠传输机制
#### 4.1 停止-等待协议Stop-and-Wait
- 发送方每发一帧,等待 ACK 后再发下一帧
- 超时未收到 ACK 则重传(需编号区分重复帧)
- **信道利用率**很低:$U = \dfrac{T_D}{T_D + RTT + T_A}$
> 在卫星链路等高延迟信道中效率极低,仅适用于低带宽或简单场景。
#### 4.2 后退 N 帧协议GBN
- 发送窗口 $W_T > 1$,接收窗口 $W_R = 1$
- 发送方可连续发多帧,接收方只按序接收
- 某帧出错 → 丢弃该帧及之后所有帧,发送方超时后从出错帧开始全部重发
- 信道利用率高于停等,但大量重传浪费带宽
#### 4.3 选择重传协议SR
- 发送窗口 $W_T > 1$,接收窗口 $W_R > 1$
- 接收方缓存乱序到达的正确帧,仅要求重传出错帧
- 窗口大小限制:$W_{\max} = 2^{n-1}$$n$ 为帧序号位数)
- 信道利用率最高,但实现复杂
**三个协议对比**
| 协议 | 发送窗口 | 接收窗口 | 重传策略 | 利用率 |
|:----|:-------:|:-------:|---------|:-----:|
| 停等 | 1 | 1 | 出错帧超时重发 | 最低 |
| GBN | $>1$ | 1 | 从出错帧起全部重传 | 中等 |
| SR | $>1$ | $>1$ | 仅重传出错帧 | 最高 |
> **滑动窗口机制**:帧序号位数 $n$ 决定可用序号空间 $[0, 2^n-1]$窗口大小不得超过序号空间的一半或总数SR 要求 $W_T + W_R \le 2^n$)。
### 5. 介质访问控制MAC
#### 5.1 信道划分介质访问控制
基于**复用技术**,各节点共享信道而互不干扰:
| 方式 | 原理 | 典型应用 |
|:----|------|---------|
| 频分多路复用FDMA | 各节点占用不同频率 | 广播电视、ADSL |
| 时分多路复用TDMA | 各节点占用不同时隙 | 2G GSM |
| 码分多路复用CDMA | 各节点使用正交码序列 | 3G 移动通信 |
| 波分多路复用WDMA | 各节点使用不同波长 | 光纤通信 |
#### 5.2 随机访问介质访问控制
| 协议 | 核心思想 | 特点 |
|:----|---------|------|
| ALOHA | 有数据直接发,冲突后随机等待重发 | 纯 ALOHA 利用率 $1/2e$,时隙 ALOHA $1/e$ |
| CSMA | 发前先听信道,忙则等待 | 非坚持/1-坚持/p-坚持三种策略 |
| CSMA/CD | 边发边听,检测到冲突立即停止(有线) | 用于以太网,最小帧长确保冲突检测 |
| CSMA/CA | 发前先预约信道(无线) | 用于 802.11 WLAN避免隐蔽站问题 |
**CSMA/CD 要点**
- 争用期(碰撞窗口)= $2\tau$$\tau$ 为单程传播时延)
- 最小帧长 = 争用期 × 数据传输速率
- 二进制指数退避算法:第 $i$ 次冲突后从 $[0, 2^i-1]$ 随机选退避时间
#### 5.3 轮询访问介质访问控制
| 方式 | 原理 | 特点 |
|:----|------|------|
| 轮询Polling | 主节点依次询问从节点 | 无冲突,但有轮询开销和等待延迟 |
| 令牌传递Token Passing | 持有令牌的节点才能发送 | 用于令牌环网和令牌总线 |
### 6. 局域网
#### 6.1 以太网EthernetIEEE 802.3
**MAC 地址**48 位全球唯一地址,前 24 位为 OUI厂商代码后 24 位为序列号。
**以太网帧格式**
| 字段 | 前导码 | 定界符 | MAC 目的地址 | MAC 源地址 | 长度/类型 | 数据 | 填充 | FCSCRC |
|:----|:-----:|:-----:|:----------:|:--------:|:--------:|:---:|:---:|:--------:|
| 长度B | 7 | 1 | 6 | 6 | 2 | 46-1500 | 可变 | 4 |
> **最小帧长 64B**保证在检测到冲突前帧尚未发送完毕CSMA/CD 要求)。数据不足 46B 时需填充。
**以太网速率演进**
| 标准 | 速率 | 介质 |
|:----|:---:|------|
| 10BASE-T | 10 Mbps | 双绞线 |
| 100BASE-T快速以太网 | 100 Mbps | 双绞线 |
| 1000BASE-T千兆以太网 | 1 Gbps | 双绞线/光纤 |
| 10GBASE-T万兆以太网 | 10 Gbps | 光纤/双绞线 |
#### 6.2 虚拟局域网VLAN
- 基于交换机端口/MAC 地址/协议/IP 子网等划分逻辑工作组
- **IEEE 802.1Q 帧标记**:在标准以太网帧中插入 4B VLAN 标记VID 12 位),最大 4096 个 VLAN
- 隔离广播域,提高安全性和灵活性
#### 6.3 无线局域网WLANIEEE 802.11
**CSMA/CA**:发送前先等待 DIFS然后退避随机时间接收方回复 ACK 前等待 SIFS。
**帧类型**
| 类型 | 用途 |
|:----|------|
| 管理帧 | 关联、认证、信标Beacon |
| 控制帧 | RTS/CTS、ACK |
| 数据帧 | 传输上层数据 |
> **隐蔽站问题**:站 A 和 C 分别位于 AP 两侧,彼此无法感知对方发送,使用 RTS/CTS请求发送/允许发送)解决。
### 7. 广域网
#### 7.1 PPP 协议(点对点协议)
- 提供**点对点**链路上的数据封装
- 三个组件HDLC 封装、LCP链路控制协议、NCP网络控制协议
- **透明传输**:异步链路用字符填充法,同步链路用零比特填充法
- 无需流量控制和纠错(只做检错)
> PPP 常用于拨号上网、PPPoE以太网上的 PPP宽带接入
#### 7.2 HDLC 协议(高级数据链路控制)
- 面向比特的同步链路控制协议
- 三种站:主站(命令)、从站(响应)、复合站
- 三种帧:**信息帧I**、**监控帧S**、**无编号帧U**
- 使用零比特填充法透明传输
**PPP vs HDLC**
| 特性 | PPP | HDLC |
|:----|:---:|:----:|
| 面向方式 | 字节 | 比特 |
| 透明传输 | 字符填充/零比特填充 | 零比特填充 |
| ACK | 不需要 | 需要 |
| 差错控制 | 只检错 | 检错 + 重传 |
| 流量控制 | 不支持 | 滑动窗口 |
### 8. 数据链路层设备
| 设备 | 层级 | 转发依据 | 功能 |
|:----|:---:|---------|------|
| 网桥 | 2 | MAC 地址 | 隔离冲突域(不隔离广播域),连接两个网段 |
| 交换机 | 2 | MAC 地址 | 多端口的网桥,全双工,每个端口独立带宽 |
> **冲突域**:同一时刻只能有一台设备发送数据的区域(交换机每个端口独立冲突域)。
> **广播域**广播帧能到达的范围交换机不隔离广播域VLAN 可隔离)。
**自学习算法**(交换机/网桥地址表建立):
1. 收到帧时记录源 MAC 地址及入端口
2. 目的 MAC 在表中 → 只转发到对应端口
3. 目的 MAC 不在表中 → 从所有端口广播(洪泛)
4. 地址表条目有老化时间
**交换机三种交换方式**
| 方式 | 转发时机 | 延迟 | 错误检测 |
|:----|---------|:---:|:-------:|
| 直通交换 | 只查目的 MAC 地址即转发 | 低 | 无 |
| 存储转发 | 完整接收一帧,查 FCS 无误后转发 | 高 | 完整检测 |
| 无碎片交换 | 接收前 64B最小帧长后转发 | 中 | 可滤除冲突碎片 |