AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-212912

Ian's questions

Martin Hope
Ian
Asked: 2014-03-22 15:59:13 +0800 CST

同时实现HTB、NetEM、TBF流量控制

  • 2

我正在开发一个 bash 实用程序,它将使用 tc Linux 命令行实用程序的多个方面来模拟各种网络条件。我已经成功构建了几个 qdisc 层次结构,一个用于 HTB 带宽控制、NetEM 延迟和数据包操作以及 TBF 速率控制,以及用于 HTB-NetEM 和 TBF-NetEM 的组合处理程序我正在努力将这三个组合成一个单一的结构,适用于我需要在一个连接上控制所有这些因素的情况。这是我到目前为止所拥有的:

  sudo tc qdisc add dev $interface root handle 1:0 htb

  sudo tc class add dev $interface parent 1:0 classid 1:1 htb  #htb args

  sudo tc qdisc add dev $interface parent 1:1 handle 10:0 tbf  #tbf args

  sudo tc qdisc add dev $interface parent 10:1 handle 101:0 netem  #netem args

由于我的范围较小,我知道问题不在于输入的语法,而可能在于我的 tc qdiscs 和类的结构。当我尝试在我的网桥的两个以太网端口中运行这些命令以及速率和带宽整形参数(分别为 10 和 15 Mbit/s)时,在 TCP 或 UDP 中显示 iperf 测试的带宽没有变化。任何意见,将不胜感激。

这是我的其他工作复合结构,以防它们可能有所帮助:

HTB 和 NetEM:

  sudo tc qdisc add dev $interface root handle 1: htb

  sudo tc class add dev $interface parent 1:0 classid 1:1 htb  #htb args

  sudo tc qdisc add dev $interface parent 1:1 handle 10:0 netem  #netem args

TBF 和 NetEM:

  sudo tc qdisc add dev $interface root handle 1:0 tbf  #tbf args

  sudo tc qdisc add dev $interface parent 1:1 handle 10:0 netem  #netem args
traffic-shaping
  • 1 个回答
  • 7092 Views
Martin Hope
Ian
Asked: 2014-03-16 12:54:19 +0800 CST

使用 tc qdiscs 进行带宽限制

  • 5

我试图限制一个简单的 iperf 服务器和客户端之间的带宽,使用第三台被动机器作为桥接器。在没有干扰的情况下,iperf 返回约 90 Mbits/sec 的带宽。我的目标是创建一个根 qdisc,它将所有未分类的流量(所有内容)发送到一个子 HTB 类,在那里设置我的带宽,然后路由到一个叶子 qdisc,一旦我得到这个工作,将在其中设置额外的 tc 参数。我的实现很简短:

sudo tc qdisc add dev $interface root handle 1: htb default 10

sudo tc class add dev $interface parent 1:0 classid 1:10 htb rate $bandwidth burst $burst

sudo tc qdisc add dev $interface parent 1:10 handle 10:0 netem #other stuff goes here

当这个 bash 脚本在带有$interface = eth1, $bandwidth = 500kbps,的网桥上实现时$burst = 15k,我看到 iperf 带宽减少了,但没有接近规定的值(通常为 ~5Mbps)。

我的脚本有错误吗?我是否滥用了突发变量?请帮忙。

更新:经过进一步调查,我发现这种流量控制在应用于与服务器接口的以太网卡时工作正常,但是当相同的命令应用于客户端时会出现问题。当整个设置颠倒时,这也是正确的。

bash
  • 1 个回答
  • 945 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve