📄 一句话概括
出门前帧前后各加控制数据:帧头前是前导码+起始帧定界符(对钟),帧尾是 FCS(验伤)——收方靠它们对准节奏、发现坏帧。
📝 本节和前面几节的关系
2.5.7 提了三个附件;本篇单独讲清它们为什么存在。
一、对钟的前导码
收方要按发方的节拍读比特——前导码是固定的 01 交替序列, 让收方先【对好表】,定界符一声哨响:正文开始。
二、验伤的 FCS
FCS 是对整帧算出的校验值,附在帧尾; 收方重算对不上=传坏了,直接丢弃——修是不修的。
三、动手 Demo:包前后加的三样控制数据
附件清单:
for a, b, c in [('帧头前','前导码+起始定界符','对钟:对准节奏'),
('帧尾','FCS','验伤:传坏了没有')]:
print('%-5s %-18s %s' % (a, b, c))
实跑输出:
--------------------------------------------------------------------
包前后加的三样控制数据
--------------------------------------------------------------------
出门的帧,前后各加什么:
位置 名字 干什么
----------------------------------------------------
帧头前 前导码+起始定界符 对钟:收方对准节奏
帧尾 FCS 验伤:传坏了没有
----------------------------------------------------
FCS 算的是整帧的校验值——收方重算一遍对不上就丢弃,
丢给上层协议的重发机制去处理。
对钟+验伤都是物理层的事——这再次印证 【一层只管自己】的分层纪律。
30 秒实验
- Wireshark 里看帧的前导码字节(10101010…)。
- 算算 64 字节小包里 FCS 占比(4/64=6%)。
- 想想为什么 FCS 不提供纠错只提供检测。
常见误区
- 以为前导码是数据的一部分——它是对钟用的仪式。
- 以为坏帧会重传修复——直接丢,重传是 TCP 的活。
自测三问(点开对答案)
1. 前导码的作用是什么? —— 让收方对准收信节拍。 2. FCS 发现坏帧怎么处理? —— 直接丢弃。 3. 纠错在哪层补? —— 不在这层,靠 TCP 重传。- ☐ 下一节(2.5.9 向集线器发送网络包)
相关笔记
- 将IP包转换成电或光信号发送出去 — 流水线上文
- 向集线器发送网络包 — 出门之后
- 🔌 网络是怎样连接的 · 索引