我正在开发一个软件产品,使用networkingfunction,如设备绑定多归属协议。 与任何协议开发一样,testing代码需要考虑延迟,打包等。 因此,我试图创build一个虚拟networking环境,在这个环境中我可以做可控的,可重复的testing。
我要testing的两个主要特征(即测量性能,稳定性等):
如上所述,我希望能够在networking中的节点之间进行stream量控制,以及通过stream量过滤来模拟传统的NAT等。
示例testing:
这个testing应该模拟一个带有四个网卡(wifi,usb,bluetooth,ethernet)的客户端通过一个单一接口的服务器在互联网上进行通信。
我想创build一个模拟此布局的虚拟networking。 一个设备模拟一个WAN节点,另外四个设备代表客户端接口。 客户端接口与服务器接口之间的带宽限制为1 Mb / s,封装损耗为1%。
四个客户端接口的绑定设备被创build。 iperf服务器绑定到WAN地址,客户端绑定到绑定设备地址并连接到WAN服务器。
听起来你想用'tc'(se http://www.linuxcommand.org/man_pages/tc8.html获取更多细节)在各种接口上使用'netem'内核组件。
一个例子是:
tc qdisc add dev eth1 root handle 1: netem delay 500ms 125ms reorder 3% loss 2%
有关'tc'的手册页,请参见http://man.he.net/man8/tc 。
请参阅http://www.linuxfoundation.org/collaborate/workgroups/networking/netem以了解如何使用带有tc的netem模块。