我需要修改在5分钟的时间内捕获的.pcap文件,以便模拟在20分钟的时间内捕获的.pcap文件。问题是我不知道该怎么做。
为了说明问题,假设我有一个.pcap文件,其中包含4个捕获的数据包p1
- p4
和t
作为开始时间,以便:
p1
发送时间为t
+ 0分钟p2
发送时间为t
+ 1分钟p3
发送时间为t
+ 2分钟p4
发送时间为t
+ 3分钟我希望生成的.pcap文件包含相同的四个数据包但时间戳缩放(从5分钟到20分钟),以便它们代表以下内容:
p1
发送时间为t
+ 0分钟p2
发送时间为t
+ 4分钟p3
发送时间为t
+ 8分钟p4
发送时间为t
+ 12分钟editcap
,但我在这里找到的唯一选项是使用-t
选项使用设定值调整所有时间戳。我正在使用tcpreplay
重播用户浏览网页的方案。我同时在我重放的.pcap文件上注入了一些依赖的数据包,即通过对重放流量的实时监控来注入数据包,然后调整它发出的数据包。使用tcpdump
捕获整个流量跟踪 - 即重放的流量和注入的数据包。由于我想重播很多大的.pcap文件,我使用tcpreplay --multiplier
选项来加快进程。但是,这意味着最终捕获是原始.pcap文件的压缩版本。我想'拉伸'新创建的.pcap与原始大小相同。
答案 0 :(得分:2)
这可以通过Wireshark使用" Time Shift" 功能完成。
假设数据包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 bug report。