📖 3.2 数据链路层的三个重要问题
🎯 课程摘要:本节课对数据链路层的三个核心问题进行概述——封装成帧与透明传输、差错检测、可靠传输,阐明每个问题的产生背景、基本概念和解决思路,为后续逐个深入展开奠定框架。
📝 详细笔记
1. 封装成帧与透明传输
- 概念定义:封装成帧是指数据链路层给上层交付下来的协议数据单元(PDU)添加一个首部和一个尾部,使之成为帧。
- 原理解析:
- 发送方各层逐层封装:应用层 PDU → 运输层(加首部)→ 网络层(加首部)→ 数据链路层(加首部 + 尾部)→ 封装成帧。
- 帧的首部和尾部包含重要的控制信息:
- 以太网 V2 的 MAC 帧:首部含目的地址、源地址、类型等字段,尾部含帧检验序列 FCS。
- PPP 帧格式:首部和尾部各有一个标志字段(帧定界符)。
- 帧定界:接收方数据链路层收到物理层交付的比特流后,根据帧首部和尾部的标志字段识别帧的开始和结束。
- 透明传输的概念:
- 若帧的数据载荷部分恰好出现与帧定界符取值相同的数据,不采取措施时接收方会出现帧定界错误。
- 若数据链路层对上层交付的 PDU 内容有限制(不能包含帧定界符),则无应用价值。
- 透明传输:采取措施使数据链路层对上层交付的 PDU 内容 没有任何限制,就好像数据链路层不存在一样。
- ⚠️ 重点/考点:透明传输的"透明"指对上层透明——上层可交付任意内容,数据链路层都能正确传输。具体实现方法(字符填充、比特填充)下节课介绍。
2. 差错检测
- 概念定义:实际的通信链路都不是理想的,表示比特的信号在信道上传输时会产生失真甚至出现误码(比特 0 变成 1,或比特 1 变成 0),差错检测用于判断帧在传输过程中是否出现误码。
- 原理解析:
- 发送方数据链路层采用某种检测技术,根据帧的内容计算出 检错码,填入帧尾部的 帧检验序列(FCS,Frame Check Sequence) 字段。
- 接收方数据链路层从帧尾部取出检错码,采用与发送方相同的检测技术,检测帧在传输过程中是否出现误码。
- 后续课程将介绍两种检测算法:
- 奇偶校验
- 循环冗余校验(CRC)
- ⚠️ 重点/考点:FCS 是字段名称,检错码是填入该字段的内容;二者概念不同但相关。
3. 可靠传输
- 概念定义:可靠传输是指数据链路层通过某种机制实现"发送方发送什么,接收方就能收到什么"。
- 原理解析:
- 若数据链路层向其上层提供 不可靠传输服务:接收方丢弃有误码的帧即可,其他什么也不用做。
- 若数据链路层向其上层提供 可靠传输服务:
- 接收方发现误码 → 通知发送方重传 → 发送方重传该帧。
- 实现可靠传输并不简单,后续课程将介绍三种实现机制。
- ⚠️ 重点/考点:数据链路层是否提供可靠传输取决于协议设计;有线链路(如以太网)通常不提供可靠传输,无线链路(如 Wi-Fi)通常提供可靠传输。
4. 三个重要问题对比
| 问题 | 核心任务 | 关键概念 | 解决手段 |
|---|---|---|---|
| 封装成帧与透明传输 | 将 PDU 加首部尾部封装成帧,并正确识别帧边界 | 帧定界、透明传输 | 首部/尾部标志字段、字符填充/比特填充 |
| 差错检测 | 检测帧在传输中是否产生误码 | FCS、检错码 | 奇偶校验、CRC |
| 可靠传输 | 保证发送方发送的内容接收方都能正确收到 | 重传机制 | 三种可靠传输机制(后续介绍) |
💡 核心总结
- 数据链路层三个重要问题:封装成帧与透明传输、差错检测、可靠传输。
- 封装成帧 = PDU + 首部 + 尾部 → 帧;帧定界靠首尾标志字段。
- 透明传输 = 对上层交付内容无任何限制,需解决数据中出现帧定界符的问题。
- 差错检测 = 用 FCS 字段填入检错码,接收方据此判断是否误码(奇偶校验、CRC)。
- 可靠传输 = 通过重传等机制保证"发什么收什么";不可靠服务只需丢弃误码帧。
❓ 课后思考 / 经典考题
- 什么是封装成帧?帧的首部和尾部分别有哪些作用?
- 什么是透明传输?为什么说"对帧定界符取值有限制的数据链路层没有应用价值"?
- FCS 字段与检错码是什么关系?差错检测能否纠正错误?
- 数据链路层提供可靠传输服务与不可靠传输服务时,接收方对有误码帧的处理有何不同?
- 试列举数据链路层三个重要问题之间的逻辑关系:封装成帧 → 差错检测 → 可靠传输。