控制网络带宽

Controlling network bandwidth

是否可以用C语言编写简单的模块来控制网络带宽。例如,在 10 GB/s 网络中,应该能够 increase/decrease 带宽超过 1-2 GB/s,是 50/100 MB/s.

的倍数

objective就是用滑块来做到这一点。用户应该能够移动滑块 right/left 以 increase/decrease 带宽。 现在我正在使用 iperf,但使用它我只能测量 client/server 之间的带宽而不能控制带宽。

我建议你使用命令行工具。

幻术师

这是我发现的限制特定接口带宽的最简单的工具。只需要,

$ sudo wondershaper {interface} {down} {up}

{down} 和 {up} 是以千比特为单位的带宽。因此,例如,如果你想将接口 eth1 的带宽限制为 256kbps 上行链路和 128kbps 下行链路,

$ sudo wondershaper eth1 256 128

清除限制,

$ sudo wondershaper clear eth1

涓涓细流

与限制整个界面带宽的 wondershaper 不同,trickle 是用户space 带宽限制工具。语法是,

$ 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