我们正在为我们的服务器应用程序做QoS(stream量控制)。 该服务器为用户提供文件下载服务,我们希望为不同的用户提供不同的优先级和带宽。 假设Linux服务器给我们的带宽为1M的应用程序,那么我们将给予带宽最高的优先级最高的用户。
我将使用令牌和令牌桶的概念来实现这一点,但我不知道如何使用计时器和测量技能来控制令牌的生成速度,所以我决定从现有的SW源代码中学习。 任何人都可以推荐一些交通控制软件/工具?
[更新]
我想知道如何使用定时器按比率生成令牌(因为令牌是以某种速率生成的,所以我们可以考虑获取令牌的线程将以与生成的令牌相同的速率将数据发送到networking接口) 。
MasterShapper可能是你正在寻找的东西。 人们可以阅读
它(MasterShapper)的目标是让用户学习和使用stream量整形机制。 对于那些对Linux没有深入了解的人,以及iproute2软件包中tc命令的困难语法,这应该是可能的。
并且是OpenSource ,所以你可以像你说的那样
学习现有的sw源代码
通常情况下,应用程序不控制分配给特定套接字的带宽,也不知道内核发送的stream量与其他应用程序相比有多less。
实用程序tc (iproute2的一部分)结合iptables在数据包和连接上的设置标记可用于实现任意复杂的分层令牌桶系统(使用它的htb ),您应该考虑查看此问题。