我在我的项目中使用 Wireshark。我向 Google.com 发送了一个 ping,Wireshark 说长度为 57 字节(当我收到回复时,它是 60 字节长,它包含 6 位填充。在我决定发送另一个 Wireshark 说是 56 长的数据包之后回复又是 60 字节长,但填充包含 8 位,假设我发送了一个长度为 42 的数据包,我收到了 60 字节的回复,但填充包含 24 位。我想知道原因。
以太网填充
网络工程
以太网
线鲨
平
国际会议
2021-07-07 23:39:16
2个回答
IEEE 802.3
描述框架的Ethernet
结构。正如它所说的最小帧长度是 64 字节。每个小于 64 字节的帧都应该在Ethernet
链路上传输之前用 0 填充。此填充由Ethernet
网卡适配器完成,因此您只能在收到的帧中看到 60 字节的帧。事实上,Wireshark 在传输帧离开操作系统并进入网络适配器之前,即在填充过程之前捕获传输帧。
请注意,Wireshark 省略了用于检测损坏帧的帧名称 FCS(帧校验序列)的最后 4 个字节。因此,您会看到 60 个字节而不是 64 个字节。
你看到的只是游戏的一小部分,包的最小帧长度是 64 字节是真的,它必须是 64 字节或更高才能被认为是有效的,那么被剥离的封装数据呢?网卡?您的计算机收到的是有效的数据字节,但是在对封装的数据进行解封装后,字节变低(在您的情况下为 60 字节),当您发送 57,56 字节的数据填充时,已添加并执行封装以扩展数据包字节当数据包返回时,它被解封装并且 ttl 几乎为零,因此数据包必然会给出不可预测的值,使用“tcpdump”来嗅探传输层数据包(TCP、UDP)或使用 snort 来提高效率。
其它你可能感兴趣的问题