首页 > 解决方案 > tcpreplay:以相反的顺序重播 pcap

问题描述

有没有办法以相反的顺序重播预先录制的 pcap 文件?也就是说,从文件中的最后一个数据包开始,并且不改变数据包之间的延迟?

我还尝试使用scapy以下方法反转 pcap 本身:

>>> from scapy.all import *
>>> pkts = rdpcap("telemetry.pcap")
>>> pkts.reverse()
>>> wrpcap("telemetry_rev.pcap", pkts)

这段代码实际上是有效的,因为文件中的数据包顺序是颠倒的。问题是它没有触及数据包的时间戳,所以我最终得到了数据包之间的负延迟(请看下图),这不是由tcpreplay. 任何想法?

在此处输入图像描述

标签: wiresharktcpreplay

解决方案


Wireshark 提供“时移”功能。您可以尝试在反向文件上编辑 -> 时移,然后将数据包 1 的时间设置为您选择的某个时间,然后将最后一个数据包的时间设置为您选择的另一个时间,并让 Wireshark 推断时间戳对于介于两者之间的所有其他数据包。

您可能还想查看editcap,它还提供时间调整功能。


推荐阅读