>我有数百个捕获文件,需要汇总服务器向大量客户端发出的特定请求的响应。我正在使用脚本来处理使用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 手册页。