如何读取在wireshark-dissector中收到的数据包大小?该数据是否可从 tvbuff_t 获得?
问问题
1974 次
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 回答