我尝试将一些 C++ 代码从 Windows 移植到 Linux,但在 Linux 中找不到用于流量控制功能的类似 API。
我需要这些功能。如果您知道我在哪里可以找到这样的 API,请帮忙?
感谢您的时间。
我尝试将一些 C++ 代码从 Windows 移植到 Linux,但在 Linux 中找不到用于流量控制功能的类似 API。
我需要这些功能。如果您知道我在哪里可以找到这样的 API,请帮忙?
感谢您的时间。
你肯定想从Linux 高级路由和流量控制howto 开始。我建议使用tc
howto 使用的 iproute2 中的实用程序,但如果您想要更直接的 API,您可以查看其源代码作为示例。
如前所述,您想使用 Linux 流量控制命令 tc。我推荐HTB调度。您可以通过以下方式启用它的内核模块:
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 设置流量控制,更详细地说,它们执行以下操作
您可以根据需要设置任意数量的子类,每个子类可用于您网络上的不同 IP。有关设置 tc 流量控制的更彻底和详细的分步指南,请参见此处:http ://hostrepo.com/article.php?id=194
祝你好运 !