如何在 Wireshark 捕获中以编程方式设置标签frame.ref_time



>我有数百个捕获文件,需要汇总服务器向大量客户端发出的特定请求的响应。我正在使用脚本来处理使用tshark的捕获文件。

我想以编程方式为与某个显示过滤器匹配的数据包设置frame.ref_time,然后使用frame.time_relative < x seconds重新扫描以满足我的目的(我已经使用tcp.stream作为过滤器,但需要进一步限制)。

tshark 和 editcap 似乎都没有这样做,但我不确定。这种能力肯定不仅限于贵人吗?

如何从脚本以编程方式设置frame.ref_time? 设置标签后,有没有一种直截了当的方法可以清除所有标签,或者我应该优雅地执行反向操作?

据我所知,您只能使用 GUI 设置frame.ref_time;但是,此限制不一定是您的问题。 应用过滤器后,当这些数据包写入新文件通过管道传输到另一个tshark实例时,所有帧都将相对于与过滤器匹配的第一个数据包进行帧;因此,您应该能够使用两个tshark实例来实现所需的目标,第一个实例用于隔离感兴趣的流,第二个实例用于隔离与时间相对条件匹配的帧。

例如,假设您对与 TCP 流 0 关联的数据包感兴趣,但只对属于该流一部分的数据包感兴趣,这些数据包在流开始后的0.1秒内收到。 在这种情况下,您可以使用如下命令:

tshark -r capturefile.pcap -Y "tcp stream eq 0" -w - | tshark -r - -Y "frame.time_relative < 0.1"

有关tshark选项的更多信息,请参阅 tshark 手册页。

最新更新