Wireshark“长度”列 - 它包括什么?

sla*_*pha 3 tcp wireshark

谁能告诉我 WireShark 中的“长度”列指的是什么?

我很确定它是电线上整个框架的“大小”。我做了一些计算,但我没有得到 WireShark 报告的数字。

有谁知道“长度”包括什么?我在某处读到序言(7 个八位字节)、帧起始分隔符(1 个八位字节)和 FCS(4 个八位字节)通常不会被捕获,但这是否意味着 WireShark 仍然添加这些数字以进行“长度”计算?

Sha*_*den 7

它是为该特定帧捕获的字节数;它将与wireshark 窗口底部的原始数据字节数相匹配。

捕获的内容取决于捕获的完成方式,但通常捕获从标头的开头到有效负载的结尾。

单击wireshark 窗口中解码的协议部分,它将突出显示数据的哪些部分属于哪个协议以及捕获的不同标头的含义。


小智 5

参见 Shane Madden 的回答。

还要注意的是

  1. Wireshark 不添加数字来获得该长度,它从 libpcap/WinPcap 获取数字,后者从底层捕获机制获取它,通常从设备驱动程序获取数字,通常从硬件获取它。
  2. 在以太网上,前导码和 SOF 分隔符很少被捕获(我认为它从来没有被常规以太网硬件和常规以太网设备驱动程序捕获),并且 FCS 通常不会被捕获,但有时可能会被捕获(Wireshark 具有启发式的原因)尝试猜测是否有 FCS 是因为我使用的至少一台机器上的以太网适配器和 Mac OS X 驱动程序确实提供了 FCS,因此传入的数据包包括 FCS,尽管传出的数据包没有。
  3. 在其他网络上,It Depends(TM)。对于 802.11,您可能会或可能不会获得 FCS,并且您还可能在 802.11 标头之前获得一个标头,其中包含无线电元数据(数据速率、信道等;该数据不是作为比特在空中传输的数据,而是它确实出现在数据包数据中,作为长度的一部分被计算在内。对于 PPP,您可能会或可能不会看到 FCS,对于 PPP 在类似 HDLC 的帧中,您可能会或可能不会看到类似 HDLC 的标头.

另外,对于以太网,请参阅我对有关捕获前导码、SFD 和 FCS 的问题的回答。