Ton*_*ous 5 networking linux traffic-shaping linux-networking
假设我有 100kbps 的带宽
- Root - 100kbps
/ \
/ \
/ \
/ \
/ \
/ \
Assured 30kbps 10kbps
Run Code Online (Sandbox Code Playgroud)
我保证 A 类 30kbps,B 类 10kbps。60kbps 是保留带宽还是多余带宽
在HTB 手册中它说
任何需要它的类都可以使用任何未使用的带宽(按其分配份额的比例)。
但是,当我运行以下测试时,如上述 ascii 艺术所示:
tc qdisc add dev eno1 root handle 1: htb
tc class add dev eno1 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
tc class add dev eno1 parent 1:1 classid 1:10 htb rate 10kbps ceil 100kbps
tc class add dev eno1 parent 1:1 classid 1:20 htb rate 30kbps ceil 100kbps
tc filter add dev eno1 protocol ip parent 1:0 prio 1 u32 match ip dport 8000 0xffff flowid 1:10
tc filter add dev eno1 protocol ip parent 1:0 prio 1 u32 match ip dport 8001 0xffff flowid 1:20
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:A类为56kbps,B 类为37kbps
这是一个 ~1.5 的比率,而我预计该比率为 3:1,作为早期分配。
似乎服务了 30 和 10,然后多余的部分在两个类之间平分,这是有道理的,因为在代码中它说 RedBlack 树持有这两个类,调度程序对它们进行 RR。
我的问题是,多余的带宽是否按照结果和代码的建议平均分配?(也许我误解了代码)
或者我应该期待 A 类和 B 类之间的比例为 3:1 吗?