问题的背景
在网络流量处理系统的开发过程中,经常需要通过一些方法进行流量回放。然而,一些常用的方法(如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文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。