1

子问题 #1

tcs 是限制带宽的qdisc完美方法,但是 Linux 中有什么方法可以限制传出数据包的 pps 吗?

为什么我问它。

通常你只考虑一种资源 - 带宽(每秒字节数),但是当某些应用程序开始生成大量小数据包时(例如,对不同站点的 http GET 请求,其中包含相对少量的 byres),那么pps可能会成为资源。

子问题 #2

所以,我想将我的所有流量分成两组——A 组具有小 pps 和带宽(高优先级),而 B 组具有大 pps 和低优先级。然后我想限制(来自两个组的)输出 pps 的摘要,优先考虑来自组 A 的数据包。

PS当然我想在这两组之间共享公共频道。所以我不能只限制B,因为当A根本不使用通道时,B必须使用100%。

可能吗?如何?

4

1 回答 1

1

好的,这是对这个问题的决定。您可以通过这种方式使用 iptables

sudo iptables -I OUTPUT 1  -m owner --uid-owner debian-tor -j NFQUEUE --queue-num 1
sudo iptables -A OUTPUT                                    -j NFQUEUE --queue-num 0

这会将所有 tor 流量重定向到 1 号队列,将所有其他流量重定向到 0 号队列。

下一步是编写用户空间应用程序,它将从队列中读取数据包并发出判决——接受或丢弃。

这是对如何构建此类应用程序的出色描述

这个应用程序的实现。整个应用程序的主要部分TScheduler::operator()

TVerdictAction Action;
   if(QueueNum != TorClass) {
      Action = TVerdictAction::Accept;
   } else {
      Action = CurrentRate > d->OverallRate ? TVerdictAction::Drop : TVerdictAction::Accept;
   }
于 2015-08-10T07:14:45.467 回答