控制网络带宽
问题描述:
是否可以在C中编写简单模块来控制网络带宽。例如,在10 GB/s的网络中,应该能够以50 GB/s的倍数增加/减少1-2 GB/s的带宽。控制网络带宽
目标是使用滑块来完成此操作。用户应该能够左右移动滑块以增加/减少带宽。 现在我正在使用iperf,但使用它我只能够测量客户端/服务器之间的带宽,而不是控制带宽。
答
我建议你使用命令行工具。
Wondershaper
这是我发现,限制特定接口的带宽最简单的工具。所需要的是,
$ sudo wondershaper {interface} {down} {up}
{down}和{up}是以千比特为单位的带宽。因此,举例来说,如果你想eth1接口的带宽限制在256kbps的上行链路和128kbps的下行,
$ sudo wondershaper eth1 256 128
要清除限制,
$ sudo wondershaper clear eth1
涓流
不像wondershaper,这限制了整个接口的带宽,trickle是用户空间带宽限制工具。语法是:
$ trickle -u {up} -d {down} {program}
{up}和{down}以及以KB/s为单位的带宽。现在,如果你调用它,
$ trickle -u 8 -d 8 firefox
它会启动Firefox,限制带宽为8KB/s。如果您是Web开发人员并且希望在各种带宽条件下测试您的应用程序,这非常有用。
参考http://jwalanta.blogspot.in/2009/04/easy-bandwidth-shaping-in-linux.html