1

如何读取在wireshark-dissector中收到的数据包大小?该数据是否可从 tvbuff_t 获得?

4

1 回答 1

0

如果“数据包大小”是指在 tvb 中交给解析器的数据大小,那么:

tvb_reported_length(tvb)是电线上看到的尺寸;

tvb_length(tvb)是实际捕获的大小(可以小于电线上的大小)。

在任何一种情况下,返回的大小都是传递给解析器的数据的大小(即,不包括任何较低级别的标头(以太网等))。


如果您想要最初在线路上看到的或保存的完整数据包的大小)

pinfo->fd->pkt_len   // packet-len
pinfo->fd->caplen    // amount actually captured

(参见解剖器源代码树中的 epan/frame_data.h)。

解析器通常不需要(即不应该)访问有关帧的实际全尺寸的信息。

如果这是所需的数据,如果您可以说明为什么需要这些数据,那么我可能会提出不同的方法。

于 2012-12-26T16:06:44.730 回答