是否可以用 C 编写简单的模块来控制网络带宽。例如,在 10 GB/s 网络中,应该能够以 50/100 MB/s 的倍数增加/减少超过 1-2 GB/s 的带宽。
目标是使用滑块来执行此操作。用户应该能够向右/向左移动滑块以增加/减少带宽。现在我正在使用 iperf,但使用它我只能测量客户端/服务器之间的带宽而不是控制带宽。
是否可以用 C 编写简单的模块来控制网络带宽。例如,在 10 GB/s 网络中,应该能够以 50/100 MB/s 的倍数增加/减少超过 1-2 GB/s 的带宽。
目标是使用滑块来执行此操作。用户应该能够向右/向左移动滑块以增加/减少带宽。现在我正在使用 iperf,但使用它我只能测量客户端/服务器之间的带宽而不是控制带宽。
我建议你使用命令行工具。
奇迹塑造者
这是我发现的限制特定接口带宽的最简单工具。只需要,
$ 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