2015-07-10 177 views
0

是否可以在C中編寫簡單模塊來控制網絡帶寬。例如,在10 GB/s的網絡中,應該能夠以50 GB/s的倍數增加/減少1-2 GB/s的帶寬。控制網絡帶寬

目標是使用滑塊來完成此操作。用戶應該能夠左右移動滑塊以增加/減少帶寬。 現在我正在使用iperf,但使用它我只能夠測量客戶端/服務器之間的帶寬,而不是控制帶寬。

回答

3

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

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