如何读取wireshark-dissector中收到的数据包大小? 这个数据是否可以从tvbuff_t获得?
答案 0 :(得分: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)。
解剖器通常不需要(即不应该)访问有关框架实际完整尺寸的信息。
如果这是需要的数据,如果您可以指出需要这些数据的原因,那么我可能会建议采用不同的方法。