附录3:本章的无背景乐的视频

官方信息技术老师·11 页·深入(追求细节与边界)·0 次浏览·3 天前
数据链路层MAC协议差错控制交换转发

附录3:本章的无背景乐的

看清帧结构、MAC接入、ARQ与交换机学习的规则边界,搞懂协议选型的工程权衡

按 空格/→ 演示下一步

1 / 11 页

全部页面点击任意一页,跳回舞台从这页播放

数据链路层MAC协议差错控制交换转发

附录3:本章的无背景乐的

看清帧结构、MAC接入、ARQ与交换机学习的规则边界,搞懂协议选型的工程权衡

1第 1 页 · 附录3:本章的无背景乐的

数据链路层功能和成帧

物理层只管把 0 和 1 从一段铜线或光纤送到另一端,它自己根本不关心「这一串比特从哪儿起、到哪儿止算一组」。数据链路层的首要任务,就是把这些连续比特流切成有起止边界的「帧」。

链路层定位
OSI 第 2 层,基于物理层比特流服务,向网络层提供可靠的帧传输
三大核心功能
成帧、差错检测、流量控制,把不可靠的物理通路变成可靠的逻辑链路
成帧的本质
在比特流中插入起止标记,让接收端能切分出完整的数据单元
四种成帧方法
字符计数、字节填充(如 PPP)、比特填充(如 HDLC)、违规编码法
透明传输难题
数据中若出现与定界符相同的比特,必须用填充技术转义
快递包裹分拣流水线对应 →数据链路层工作

打包贴单=成帧、X 光验货=差错检测、调传送带速度=流量控制

2第 2 页 · 数据链路层功能和成帧

差错处理概述

帧把比特打包好了,可比特在物理信道上跑的时候并不安分——热噪声、电磁干扰都可能让 0 翻成 1、1 翻成 0。差错从哪来、怎么处理,这一页铺开讲讲。

差错来源
物理信道噪声与干扰造成比特翻转
差错类型
单比特差错:分散的 1 位翻转;突发差错:连续多位翻转
差错处理定义
发现并应对比特错误的机制
两类策略
检错:发现错误请求重传;纠错:定位并自动修正
本章范围
在数据链路层、帧级别上实现差错处理
编辑校对书稿对应 →差错处理

原稿=发送方数据;印本=收到数据;发现错字=检错;改正错字=纠错

3第 3 页 · 差错处理概述

纠1位错的海明码

上一页说差错处理分检错和纠错两档。海明码是少见的能直接'定位并修好'1 位错的方案——靠的不是冗余量堆得多,而是校验位摆放位置的精妙。

码字布局
校验位固定放在 1、2、4、8… 等 2 的幂次位置,其余槽位放信息位
校验覆盖
第 i 个校验位负责所有二进制序号中第 i 位为 1 的位置
校验子定位
接收端重算各位校验得到的 r 位二进制数,直接等于出错位置序号
参数约束
信息位 m、校验位 r 须满足 2^r ≥ m + r + 1
能力边界
最小码距 3,可检 2 位错但只能纠 1 位错
分组交叉投票对应 →海明码的多重校验

每人参加多个小组,每组只对自己负责的人投票;多个组都说不对的那位,就是异类

2rm+r+12^r \geq m + r + 1
4第 4 页 · 纠1位错的海明码

检错码

海明码能纠错,但有时我们只问「有没有错」不修。快递签收时检查外包装,破损交给快递员——这就是检错码的思路。

检错码定义
只判断数据是否出错,不负责纠错;代价更低、检错能力可更强
奇偶校验码
追加1位,使数据中1的个数为奇或偶;最简单,只能检出奇数位错
CRC循环冗余校验
收发双方约定多项式,发送方做模2除法,余数作校验位;检错能力远超奇偶校验
检错能力边界
检错码不能100%检出所有错误;CRC也有漏检概率,需合理选多项式
典型应用
以太网帧尾FCS、磁盘扇区校验、ZIP/RAR压缩文件等都使用检错码
收快递验货对应 →检错码

你只检查有没有破损,发现问题让快递公司处理;自己不修包装

5第 5 页 · 检错码

个模拟的DLL协议之1-3

前面学了成帧、海明码和检错码——这些单独看都懂,但真要一条 DLL 协议跑起来,会按什么顺序把它们串起来?下面这段模拟把答案演给你看。

帧的封装
把上层数据包装成含地址、控制、校验字段的完整单元
差错检测
接收方用校验码判断帧在传输中是否损坏
确认与重传
出错帧触发重发,保证对方最终收到正确数据
寄挂号信对应 →DLL 协议传输

装信封=成帧、查信件完好=检错、回执=确认重传

6第 6 页 · 个模拟的DLL协议之1-3

滑窗协议

上一页的协议 1-3 是「发一帧、等确认、再发下一帧」的停-等式,信道空等严重。现实中 TCP 这类高速链路用的就是滑窗协议——一口气连发多帧,靠确认把窗口往前推。

发送窗口
发送方允许未确认的最多 W 帧;接收窗口通常=1(GBN)或=W(SR)
帧序号
GBN 序号空间 ≥ W+1;SR 序号空间 ≥ 2W,避免新旧帧混淆
累计确认
ACK n 表示 n 及之前全部收到,发送窗口右沿立刻推进
GBN vs SR
出错时:回退 N 重发该帧及之后全部;选择重传只补缺失帧
利用率上界
W ≥ 1+2a 时 η=1,窗口足够大即可跑满链路,无空等
工厂流水线的在制品对应 →滑动窗口协议

在制品数量=窗口大小;每完成一道就推一格;工位编号=帧序号

η=min ⁣(1,W1+2a) ⁣,a=Tp/Tf\eta\,=\,\min\!\bigl(1,\,\tfrac{W}{1+2a}\bigr)\,\!,\quad a\,=\,T_p/T_f
7第 7 页 · 滑窗协议

回退n帧

滑动窗口允许一次发多帧,但帧会出错、会丢失。回退n帧(GBN)是最经典的应对策略:一帧没确认,从这一帧起全部重传。

发送窗口为n
发送方连续发n帧才停下来等确认,无需逐帧等待
出错回退n帧
某帧超时未确认或收到NACK,从该帧起所有已发送但未确认的帧全部重传
接收方只收按序帧
期望序号之外的帧一律丢弃,不缓存乱序帧
累计确认ACK
ACK(n)表示n及之前所有帧都已正确收到
窗口约束
发送窗口≤2^k−1(k为序号位数),否则无法区分新旧帧
老师课堂点名从1号喊到10号对应 →回退n帧的发送方

3号没喊'到',老师必须从3号重新点起,哪怕4到10号其实都到了——因为无法确认3号之后谁真听清了

WT2k1W_T \leq 2^k - 1
8第 8 页 · 回退n帧

选择性重传

回退n帧发现一个错就重传后面所有帧,太浪费了——能否只补发丢的那一帧?选择性重传就是答案。

只重传出错帧
收到谁的否定只重传谁,不殃及无辜
接收端开缓存
先把乱序到达的正确帧收下来,等缺的帧补齐再上交
收发窗口等大
发送窗口等于接收窗口,且都等于序号空间一半
窗口有上界
n 位序号时窗口≤2^(n-1),否则新旧帧序号撞车
每帧独立计时
发送方为每个已发未确认的帧各起一个定时器
老师催交作业对应 →选择性重传

缺谁的作业只催谁,不用全班再交一遍

W2n1W \leq 2^{n-1}
9第 9 页 · 选择性重传

本节要点

  • DLL 的使命:把不可靠的物理层比特流变成可靠的帧
  • 差错控制本质是加冗余——只检错比纠错便宜得多
  • 流量控制 = 滑窗,GBN 简单、SR 高效
  • 丢帧时的核心分歧:丢弃后续帧 vs 缓存后续帧
  • 协议选型取决于信道质量、时延与缓冲区三者的取舍
延伸主题:介质访问控制与多路复用PPP/HDLC 等真实链路协议无线链路的差错与速率特性
10第 10 页 · 本节要点

课后思考

先自己想几分钟,再对照参考答案。三个问题从核心概念到协议选型,再到假设迁移,层层递进。

1数据链路层为什么必须先"成帧"再交给物理层?如果把一长串比特直接发过去,接收端会遭遇什么问题?

参考答案没有帧边界,接收方无法判断一段消息的起止与归属,可能把两帧的比特混在一起解析,导致整段错位。成帧就是在比特流里插入标记,让接收方能正确切分。

2在误码率极高的链路上(比如无线传感网),回退N帧和选择性重传你更倾向选哪个?说说理由。

参考答案直觉上选择性重传更高效,但每帧都要单独计时与缓存;高误码下连续出错概率大时,这些开销反而成为负担。回退N帧的"批量重传"未必更差,还需结合接收窗口与确认开销综合权衡。

3滑动窗口协议默认了"顺序到达、低误码、时延稳定"这些条件,在真实无线网络中哪些会先被打破?

参考答案无线误码高 → 频繁重传;移动切换 → 丢包与乱序;时延抖动 → 超时判断失准。可引入选择性确认SACK、自适应超时、链路层与MAC层重传协同等机制来补救。

11第 11 页 · 课后思考