1

问题

我需要修改在 5 分钟内捕获的 .pcap 文件,以便模拟在 20 分钟内捕获的 .pcap 文件。问题是我不知道该怎么做。

例子

为了说明这个问题,假设我有一个 .pcap 文件,其中包含 4 个捕获的数据包p1-p4并且t作为开始时间:

  • p1t+ 0 分钟发送
  • p2t+ 1 分钟发送
  • p3t+ 2 分钟发送
  • p4t+ 3 分钟发送

我希望生成的 .pcap 文件包含相同的四个数据包,但时间戳按比例缩放(从 5 分钟到 20 分钟),以便它们表示以下内容:

  • p1t+ 0 分钟发送
  • p2t+ 4 分钟发送
  • p3t+ 8 分钟发送
  • p4t+ 12 分钟发送

尝试过的解决方案

  • editcap,但是我可以在这里找到的唯一选项是使用该选项调整具有设定值的所有时间戳-t

背景

我正在使用tcpreplay重播用户浏览网页的场景。我同时注入了一些依赖于我重放的 .pcap 文件的数据包,即这些数据包是通过实时监控重放流量并随后调整它发出的数据包来注入的。这整个流量跟踪——即重放的流量和注入的数据包——都是使用tcpdump. 由于我要重播很多大型 .pcap 文件,因此我使用该tcpreplay --multiplier选项来加快进程。但是,这意味着最终捕获的是原始 .pcap 文件的压缩版本。我想将新创建的 .pcap “拉伸”为与原始文件相同的大小。

4

1 回答 1

3

这可以通过 Wireshark 使用其“时移”功能来完成。

假设数据包 1 的时间戳为2017-08-17 12:00:00.000000,选择数据包 1,然后选择“编辑 -> 时移...”并将数据包 1 的时间设置为2017-08-17 12:00:00.000000(即不要更改此时间)。单击“...然后设置数据包”旁边的框并输入 2 作为数据包编号和2017-08-17 12:04:00.000000时间戳。您会注意到它还表示“并推断所有其他数据包的时间”,这正是您想要的。点击应用

此时,应将时间戳调整为您想要的,尽管亚秒组件可能不会对所有数据包都完全相同,并且出于某种原因,甚至数据包 1 的亚秒组件也不完全是最初指定的。如果您真的想保留原始的亚秒组件,那么您必须一次调整一个数据包。考虑到只有4个数据包需要调整,这应该是可行的。不过,我可能会建议为错误的亚秒级调整提交Wireshark 错误报告。

于 2017-08-17T21:33:37.650 回答