控制网络带宽

控制网络带宽

问题描述:

是否可以在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