问题的背景

在网络流量处理系统的开发过程中,经常需要通过一些方法进行流量回放。然而,一些常用的方法(如TcpReplay)进行包回放时,流量常常不稳定。为此,测试了一些方法,发现下面的方法比较好,发出的流量比较稳定。

解决方案

将数据包预先读取到内存中,再发出,效果比较好。我们这里选用了最新的TcpReplay 4.1.0版本,命令

    tcpreplay -i eth0 -K -M 1000 /home/data/7g.pcap

其中,-K的作用就是将数据包预先读取到内存中。这样,发出数据包时就可以不受硬盘读写速度的限制,保证较为稳定的流量。

由于内存的限制,不可能将很大的PCAP文件读取到内存中,我们可以利用tcpreplay-edit的loop功能配合一些选项,让数据包不断循环回放,从而达到延长测试时间的目的。

    tcpreplay-edit --unique-ip -l 1000 -M 1000 -i eth0 /home/data/7g.pcap

这里,--unique-ip的作用是每一次循环回放时,都修改数据包中的IP地址,从而形成新的流。-ls是循环回放PCAP文件。


luqiuwen
34 声望0 粉丝