首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在保证订购和速度可控的情况下,同时传送多个pcap?

如何在保证订购和速度可控的情况下,同时传送多个pcap?
EN

Network Engineering用户
提问于 2014-07-03 15:06:47
回答 2查看 3.5K关注 0票数 6

我们每天在许多不同的多播组上捕获许多pcap。为了进行测试和基准测试,我们希望在一个孤立的环境中以一种受控的方式重放这些文件。这些pcap同时被捕获,但是在不同的多播组和端口上。

我想按照数据包被记录的顺序以及不同(和可指定的)多播组的顺序,将这些文件重放到网络上(可能是用ttl=0或1)。必须对正在播放的所有文件进行同步排序。

例如,假设我们有两个捕获文件,foo.pcapbar.pcap。我们希望在mcast组239.255.0.1:30001上重播foo.pcap数据包,而bar.pcap数据包应该在239.255.0.2:30002上重放。

foo.pcap的数据包记录在时间偏移量0、1和5处。bar.pcap有时间偏移(相对于foo.pcap) 3、4和5记录的数据包。

因此,我要寻找的是一种方法,可以根据foo.pcapbar.pcap的同步顺序重放这些数据包。换句话说,来自foo.pcap的前2包应该发送到239.255.0.1:30001,而来自bar.pcap的前两个包应该在239.255.0.2:30002上发送,而来自foo.pcap的前两个数据包则应该同时(或接近)从bar.pcap发出的最后一个数据包。

我们还需要能够调整数据包重放的速率。以记录的速度;10倍的记录速度;1GB/秒;等等。

我怎样才能做到这一点?

我看过像tcpreplay位捻这样的工具,但是这些工具要么不会发送到不同的组,要么不会同步所有文件的出口顺序。

我将只在Linux中工作(主要是RHEL6.5&也是Ubuntu12.04)

EN

回答 2

Network Engineering用户

回答已采纳

发布于 2014-07-11 21:27:31

在使用tcpreplaymergecap (与Wireshark一起发布的工具之一)之前,我已经做过这样的事情。第一步是使用tcprewrite (tcpreplay的一部分)编辑foo.pcap的目标is作为您要发送的第一个地址,bar.pcap作为第二个地址。然后使用mergecap按时间顺序合并数据包,从而使它们以您想要的方式交织。注意,在使用mergecap时,您可能需要首先编辑数据包的时间戳(例如,如果您在使用foo.pcap前一天使用bar.pcap,它们不会交叉)。在这种情况下,您可以使用editcap (来自wireshark的另一个工具)来修改数据包时间。

真正困难的部分将是回放他们的时机选择,你想要的。根据原始捕获的速度和您对方差的容忍度,您可以使用tcpreplay --multiplier=XXX进行所有设置。但是,如果交通速度快,或者你需要它非常精确,那么你将是运气不好,直到你投资于特殊的硬件,从供应商,如精神或艾夏。请注意,如果您确实购买了这些工具之一,它们的实用程序可以作为安装过程的一部分为您执行所有的数据包操作。

票数 4
EN

Network Engineering用户

发布于 2014-07-10 18:16:26

我对此的想法是,首先,如果您在一个地方捕获通信量(如果您能够,如果您有一个捕获机器/设备连接到两个mcast组),那么您就没有必要及时重播两个不同的捕获文件的复杂性。

其次,您可以编辑数据包捕获,以便当您“播放”它们时,数据包被发送到一个重写的目标地址(不同的mcast组)。

您是否可以查看如何捕获和重放数据包,以查看是否可以简化此场景?即使您必须分离捕获文件,您也可以从同一台机器/设备中播放它们;其中一台机器/设备有两个连接回到mcast网络,这样它就可以播放成两个不同的mcast组。

我认为您需要进一步完善您的问题,对问题和现有的解决方案进行一些额外的研究。否则,上面的信息就是我的答案。

票数 5
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/9748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档