如果我的数据只包含前导码和帧起始编号怎么办?

网络工程 以太网 协议理论 层2
2021-07-13 13:37:16

如果我的数据在 7 字节块中只包含交替的 1 和 0 并在其后以帧号开头,是否会持续重置接收 NIC 或者是否需要使用某种转义字符?

我很困惑:接收网卡如何知道何时处于流检查器模式与数据接收模式?

2个回答

七个八位字节的前导码在 12 个八位字节(或更长)的数据包间间隙之后出现,然后您将获得一个八位字节的帧起始。接下来,您将获得带有目标 MAC 地址、源 MAC 地址等的以太网帧标头,然后是数据和帧校验序列,然后是 12 个八位字节的数据包间间隙。

没有办法将帧中的数据与前导混淆,因为不会有数据包间间隙。此外,除非目标 MAC 地址是接口已配置为侦听的组地址,否则除目标接口之外的所有接口都将忽略帧的其余部分。


根据您的评论编辑:

数据包间间隙是线路上的 96 位静默,但一帧没有这样的东西,因为一帧从头到尾发送完整。如果它在结束之前停止,它将只是一个损坏的帧,并且没有 FCS,所以最后四个八位字节将与 FCS 应该是不匹配的。事实上,框架可能太小而无效。

前导码和 SOF 仅用于将接收器同步到发送器的运营商。在 SOF 之后,根据物理层变体,接收以空闲线路(无载波)或显式空闲或帧结束符号结束的帧。在两者之间,一切都是接收帧的一部分。类似于前导码/SOF 的模式不会导致任何重新同步。

此外,您不太可能错过帧的实际开始并同步到中间某处的类似模式:今天的以太网是完全交换和点对点的。您的链接伙伴只会在链接牢固建立后才开始传输帧。

只有使用过时的共享媒体才能链接到正在运行的传输并捕获帧的一部分。即便如此(假设检测到一些前导码/SOF),部分帧以正常的帧尾结束,并且帧校验序列 (FCS) 校验和将不匹配,因此该帧被忽略/丢弃。