在过去的两个小时里,我一直在尝试使用 wireshark 和其他一些工具来捕获以太网冲突,但徒劳无功。
我已将 7 台计算机连接到集线器
- 正在从 PC1 -> PC7 传输大型视频文件
- PC2...PC6 正在 pinging PC7
集线器上的“Collision”LED 一直闪烁,但没有捕获到一个有冲突的数据包。我期待看到一些损坏的数据包 - 我期待太多了吗?这些被芯片丢弃了吗?
HEX 中的碰撞看起来如何?
在过去的两个小时里,我一直在尝试使用 wireshark 和其他一些工具来捕获以太网冲突,但徒劳无功。
我已将 7 台计算机连接到集线器
集线器上的“Collision”LED 一直闪烁,但没有捕获到一个有冲突的数据包。我期待看到一些损坏的数据包 - 我期待太多了吗?这些被芯片丢弃了吗?
HEX 中的碰撞看起来如何?
以太网最初是作为同轴共享媒体网络的协议。如果发生冲突,电缆上的电压电平将是错误的,收发器会检测到这一点并告诉 MAC。此时收到的任何数据都是垃圾。
接收 MAC 将忽略任何传入的数据,并可能增加冲突计数器。MAC 没有理由将来自 PHY 的垃圾传递给主机。发送 MAC 也会看到冲突,它们会在最短的帧时间内继续传输,以确保在整个网络中都能看到冲突。然后他们会在尝试再次发送帧之前等待随机退避,希望两个发送 MAC 使用的随机退避时间将有足够的不同,以至于其中一个会成功发送它的帧,而另一个会检测到线路繁忙并且等待轮到。
现在输入中继器(又名集线器)。中继器有许多 PHY,但没有 MAC。当中继器检测到碰撞时,它会输出“Jam 信号”。这确保了整个网络都可以看到冲突。
那么双绞线呢?双绞线以太网的所有常见变体在物理层都是全双工的,但为了向后兼容并支持使用集线器,它们中的大多数都具有“半双工”模式。在半双工模式下,同时激活发射器和接收器被视为冲突。
综上所述,假设您将一个设备插入集线器上的一个备用端口,它可以捕获和分析低级以太网信号,它会看到什么?
您会像平常一样看到一帧的开始。然后当碰撞发生时,您会看到来自集线器的 Jam 信号。一旦 Jam 信号结束,您将看到一段空闲线路,直到发送方的一个随机退避计时器到期并开始重新传输。
冲突由网络接口卡 (NIC) 在其硬件/固件中处理。NIC 只会将有效帧传递给操作系统。
Wireshark 将捕获由 NIC 发送到操作系统的流量,因此只有在处理了冲突之后。因此,它看不到碰撞。
至于它的样子,我的猜测是一个框架,其中某些部分是垃圾(随机)。