26、ROS HTB(令牌桶)原理及实战
一、HTB—等级令牌桶(Hierarchical Token Bucket)
是一种等级优先的流量控制机制。HTB创建一个等级队列结构,并确定队列之间的关系,就像“父亲与儿子”或者“兄弟之间”一旦队列增加了一个子队列(Child),将会变成内部队列(Inner),所有向下没有子队列的称谓叶队列(leaf)。
在ROS中必须指定父队列(parent),并指定一个队列为其子队列。
二、队列中的2种速率限制
1、Limit-at:(CIR)最低保证速率(在最坏的情况下,都会得到的速率值)
2、Max-Limit:(MIR)最大信息速率(在最好的情况下,如果父级队列还有剩余带宽,将获得的速率值)
CIR与MIR的关系:(即limit-at和max-limit的关系)
父队列的CIR >= 子队列1的CIR + 子队列2的CIR + .... + 子队列n的CIR
首先满足Limit-at,然后如果有多余的带宽,将可以达到最大带宽Max-Limit
优先级问题:
因为所有的队列的保证带宽(Limit-at)都有可能用完,这时候就有可能从父级队列获得更大的带宽,因此就产生了优先等级的问题。在ROS中一共有8个等级,1为最高,8为最低
三、HTB队列的3中状态:
1、绿色:0-50%
2、黄色:50-75%
3、红色:>75%
四、HTB简单队列的建立: 
1、建立父队列:
Queues —— Queue Tree —— 点击加号 —— Name:wpj —— Parent:选择内网接口 —— Priority:优先级 —— Limit At:保证速率 —— Max Limit:最大速率
2、建立子队列:
Queues —— Queue Tree —— 点击加号 —— Name:wyj —— Parent:wpj —— Priority:优先级 —— Limit At:保证速率 —— Max Limit:最大速率
五、做HTB最重要的三点:
1、首先,要知道自己要限制谁的速度,需要用的标记(即Mangle)
2、其次,要知道怎么限速,是限制上传还是限制下载。
3、最后,要知道所做的限速是否成功,即需要知道怎么检查
浙公网安备 33010602011771号