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、最后,要知道所做的限速是否成功,即需要知道怎么检查

 

posted on 2018-03-28 17:24  王鹏举  阅读(1406)  评论(0)    收藏  举报