如果在堆栈 ISO/OSI for Ethernet 的最低可能层检测到错误,会发生什么情况?
例如,考虑到 100BASE-TX,它是用 4B5B 编码实现的,这意味着有 16 种比特组合是无效的。如果接收器从物理介质“读取”一个无效的位组合,例如“00001”,会发生什么?
- 它丢弃该位(使整个帧无效)
- 它选择“最相似”的组合
- 或者是其他东西?
我知道上层可以通过 FCS 字段检测错误,例如 MAC 层,但我不知道收发器如何处理在信号中检测到的错误。
如果在堆栈 ISO/OSI for Ethernet 的最低可能层检测到错误,会发生什么情况?
例如,考虑到 100BASE-TX,它是用 4B5B 编码实现的,这意味着有 16 种比特组合是无效的。如果接收器从物理介质“读取”一个无效的位组合,例如“00001”,会发生什么?
我知道上层可以通过 FCS 字段检测错误,例如 MAC 层,但我不知道收发器如何处理在信号中检测到的错误。
对于 100BASE-TX 和 100Mbps MII 接口的特定情况:有一个接收器信号RX_ER。
物理编码子层 (PCS) 规范说:
24.2.2.1.7 无效的代码组
...PCS 通过使用 RX_ER 信号指示在 MII 上接收到无效代码组。
Reconciliation Sublayer and Media Independent Interface 规范说:
22.2.1.5 对来自 MII 的 RX_ER 指示的响应
如果在帧接收期间 RX_DV 和 RX_ER 都被声明,则协调子层应确保 MAC 将检测到该帧中的 FrameCheckError。
所以 PHY 部分指示带外错误,MAC 做它喜欢做的事情,只要它最终生成一个 FrameCheckError。