【问题标题】:How to modify the timestamp range of a .pcap file?如何修改 .pcap 文件的时间戳范围?
【发布时间】:2018-01-25 20:07:38
【问题描述】:

问题

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

示例

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

  • p1 发送时间为t+ 0 分钟
  • p2 发送至t+ 1 分钟
  • p3 发送至t+ 2 分钟
  • p4 发送至t+ 3 分钟

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

  • p1t+ 0 分钟发送
  • p2 发送至t+ 4 分钟
  • p3 发送至t+ 8 分钟
  • p4 发送至t+ 12 分钟

尝试过的解决方案

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

背景

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

【问题讨论】:

    标签: wireshark pcap tcpdump tcpreplay editcap


    【解决方案1】:

    这可以通过 Wireshark 使用它的 “Time Shift” 功能来完成。

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-26
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多