🔌 第二章 用电信号传输TCP/IP数据
📄 一句话概括

出门前帧前后各加控制数据:帧头前是前导码+起始帧定界符(对钟),帧尾是 FCS(验伤)——收方靠它们对准节奏、发现坏帧。

📝 本节和前面几节的关系

2.5.7 提了三个附件;本篇单独讲清它们为什么存在。

一、对钟的前导码

收方要按发方的节拍读比特——前导码是固定的 01 交替序列, 让收方先【对好表】,定界符一声哨响:正文开始。

二、验伤的 FCS

FCS 是对整帧算出的校验值,附在帧尾; 收方重算对不上=传坏了,直接丢弃——修是不修的。

三、动手 Demo:包前后加的三样控制数据

附件清单:

for a, b, c in [('帧头前','前导码+起始定界符','对钟:对准节奏'),
               ('帧尾','FCS','验伤:传坏了没有')]:
    print('%-5s %-18s %s' % (a, b, c))

实跑输出:

--------------------------------------------------------------------
包前后加的三样控制数据
--------------------------------------------------------------------
  出门的帧,前后各加什么:

  位置       名字                  干什么
  ----------------------------------------------------
  帧头前     前导码+起始定界符     对钟:收方对准节奏
  帧尾       FCS                   验伤:传坏了没有
  ----------------------------------------------------

  FCS 算的是整帧的校验值——收方重算一遍对不上就丢弃,
  丢给上层协议的重发机制去处理。

对钟+验伤都是物理层的事——这再次印证 【一层只管自己】的分层纪律。

30 秒实验

  1. Wireshark 里看帧的前导码字节(10101010…)。
  2. 算算 64 字节小包里 FCS 占比(4/64=6%)。
  3. 想想为什么 FCS 不提供纠错只提供检测。

常见误区

  1. 以为前导码是数据的一部分——它是对钟用的仪式。
  2. 以为坏帧会重传修复——直接丢,重传是 TCP 的活。
自测三问(点开对答案) 1. 前导码的作用是什么? —— 让收方对准收信节拍。 2. FCS 发现坏帧怎么处理? —— 直接丢弃。 3. 纠错在哪层补? —— 不在这层,靠 TCP 重传。

相关笔记