我有数百个捕获文件,需要总结对服务器向大量客户端发出的特定请求的响应。我正在使用脚本来使用tshark处理捕获文件。
我想以编程方式为匹配特定显示过滤器的数据包设置frame.ref_time
,然后使用frame.time_relative < x seconds
重新扫描以符合我的目的(我已使用tcp.stream
作为过滤器但需要限制进一步)。
tshark和editcap似乎都没有这样做,但我不确定。当然这种能力不仅限于gui?
如何从脚本中以编程方式设置frame.ref_time
?
设置好标签后,是否有清除所有标签的方法,或者我应该优雅并执行相反的操作?
答案 0 :(得分:1)
据我所知,您只能使用GUI设置frame.ref_time
;但是,这种限制对您来说可能不一定是个问题。应用过滤器后,当这些数据包写入新文件或管道传输到另一个tshark
实例时,所有帧都会相对于与过滤器匹配的第一个数据包成帧。因此,您应该能够使用tshark
的两个实例来实现您所需要的,第一个实例用于隔离感兴趣的流,第二个用于隔离符合时间相关标准的帧。
例如,假设您对与 TCP stream 0 相关联的数据包感兴趣,但只对那些在流开始后0.1秒内收到的流的一部分感兴趣。在这种情况下,您可以使用如下命令:
tshark -r capturefile.pcap -Y "tcp stream eq 0" -w - | tshark -r - -Y "frame.time_relative < 0.1"
有关tshark
选项的详情,请参阅tshark man page。