在Linux中寻找流量控制功能(即QOS)库

时间:2012-03-14 04:00:25

标签: c++ network-programming qos trafficshaping

我尝试将一些C ++代码从Windows移植到Linux,但我在Linux中找不到类似的用于流量控制功能的API。

我需要这些functions。如果您知道我在哪里可以找到这样的API,请帮忙吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

如前所述,您希望使用Linux流量控制命令tc。我推荐HTB sceduling。您可以使用以下命令启用它的内核模块:

modprobe sch_htb

设置tc的基本命令如下:

tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:1000 htb rate 500Kbit ceil 1000Kbit
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip src 109.11.28.2 flowid 1:1000

这些示例命令在设备eth0上为IP 109.11.28.2设置流量控制,更详细地说,它们执行以下操作

  1. 设置排队规则
  2. 设置父类及其流量限制
  3. 设置具有流量速率和流量上限的子类
  4. 添加IP过滤器以将子类限制仅应用于特定IP
  5. 您可以根据需要设置任意数量的子类,每个子类都可以用于网络上的其他IP。有关设置tc流量控制的更全面详细的分步指南,请参阅此处:http://hostrepo.com/article.php?id=194

    祝你好运!