附录3:本章的无背景乐的
看清帧结构、MAC接入、ARQ与交换机学习的规则边界,搞懂协议选型的工程权衡
按 空格/→ 演示下一步
全部页面点击任意一页,跳回舞台从这页播放
附录3:本章的无背景乐的
看清帧结构、MAC接入、ARQ与交换机学习的规则边界,搞懂协议选型的工程权衡
数据链路层功能和成帧
物理层只管把 0 和 1 从一段铜线或光纤送到另一端,它自己根本不关心「这一串比特从哪儿起、到哪儿止算一组」。数据链路层的首要任务,就是把这些连续比特流切成有起止边界的「帧」。
打包贴单=成帧、X 光验货=差错检测、调传送带速度=流量控制
差错处理概述
帧把比特打包好了,可比特在物理信道上跑的时候并不安分——热噪声、电磁干扰都可能让 0 翻成 1、1 翻成 0。差错从哪来、怎么处理,这一页铺开讲讲。
原稿=发送方数据;印本=收到数据;发现错字=检错;改正错字=纠错
纠1位错的海明码
上一页说差错处理分检错和纠错两档。海明码是少见的能直接'定位并修好'1 位错的方案——靠的不是冗余量堆得多,而是校验位摆放位置的精妙。
每人参加多个小组,每组只对自己负责的人投票;多个组都说不对的那位,就是异类
检错码
海明码能纠错,但有时我们只问「有没有错」不修。快递签收时检查外包装,破损交给快递员——这就是检错码的思路。
你只检查有没有破损,发现问题让快递公司处理;自己不修包装
个模拟的DLL协议之1-3
前面学了成帧、海明码和检错码——这些单独看都懂,但真要一条 DLL 协议跑起来,会按什么顺序把它们串起来?下面这段模拟把答案演给你看。
装信封=成帧、查信件完好=检错、回执=确认重传
滑窗协议
上一页的协议 1-3 是「发一帧、等确认、再发下一帧」的停-等式,信道空等严重。现实中 TCP 这类高速链路用的就是滑窗协议——一口气连发多帧,靠确认把窗口往前推。
在制品数量=窗口大小;每完成一道就推一格;工位编号=帧序号
回退n帧
滑动窗口允许一次发多帧,但帧会出错、会丢失。回退n帧(GBN)是最经典的应对策略:一帧没确认,从这一帧起全部重传。
3号没喊'到',老师必须从3号重新点起,哪怕4到10号其实都到了——因为无法确认3号之后谁真听清了
选择性重传
回退n帧发现一个错就重传后面所有帧,太浪费了——能否只补发丢的那一帧?选择性重传就是答案。
缺谁的作业只催谁,不用全班再交一遍
本节要点
- ✓DLL 的使命:把不可靠的物理层比特流变成可靠的帧
- ✓差错控制本质是加冗余——只检错比纠错便宜得多
- ✓流量控制 = 滑窗,GBN 简单、SR 高效
- ✓丢帧时的核心分歧:丢弃后续帧 vs 缓存后续帧
- ✓协议选型取决于信道质量、时延与缓冲区三者的取舍
课后思考
先自己想几分钟,再对照参考答案。三个问题从核心概念到协议选型,再到假设迁移,层层递进。
参考答案没有帧边界,接收方无法判断一段消息的起止与归属,可能把两帧的比特混在一起解析,导致整段错位。成帧就是在比特流里插入标记,让接收方能正确切分。
参考答案直觉上选择性重传更高效,但每帧都要单独计时与缓存;高误码下连续出错概率大时,这些开销反而成为负担。回退N帧的"批量重传"未必更差,还需结合接收窗口与确认开销综合权衡。
参考答案无线误码高 → 频繁重传;移动切换 → 丢包与乱序;时延抖动 → 超时判断失准。可引入选择性确认SACK、自适应超时、链路层与MAC层重传协同等机制来补救。