路由与交换-QOS之Bandwidth Management

一.前言

bandwidth management常见于企业和ISP之间的线路,当物理接口的速率大于ISP所承诺的带宽CIR时,则就需要在企业侧限制输出的带宽。带宽的管理主要有两种:traffic shapetraffic police

tips:CIR-Committed Information Rate-承诺信息速率

二.令牌桶算法与限流

如何限制一个物理速度为10Mbps的接口速度至CIR-2Mbps?

如下图,以1s为间距,1s内只发送2Mb的数据,然后就不在发送,直到下一个1s的间隔;

bandwidth management

在上图中,如果以1s为单位做分割,会造成一个问题:突发流量造成其他流量的大量丢弃,设想:

  1. 在0s时候,传输2Mb的ftp数据,话费0.2s;
  2. 在0.2~1之间,不在传输数据,有多个VoIP包被丢弃,用户侧出现0.8s无声;
  3. 在1~1.2之间,VoIP高优先级转发,但是速率只有0.125Mbps,同时转发的还有大量的ftp数据;
  4. 在1.2~2之间,因为2Mb已经被消耗殆尽,将不在传输数据,VoIP被丢弃;

如果将2M分割成4份,每份0.5Mb,则突发流量只会消耗较小范围(0.25s)内的token,如果间隔再细分,如分到0.05s,则在每个0.05的间隔内,VoIP都会优先传送(到发送队列后,直接发送不用排队),则意味着满足VoIP的要求(2个VoIP的数据包之间间隔<0.1s)。

bandwidth management

Bucket and Token Algorithm-令牌桶算法

带宽管理遵从令牌桶算法:

  • 每传输1bit的内容,就要Bucket中取走一个token,如果没有token则不允许发送。
  • 每间隔一段时间(Time Interval-\(T_C\))会向Bucket中补充token(数量为Committed Burst-\(B_C\));
  • Bucket的大小为\(B_c\),溢出的token将会被移除;

CIR与\(T_C\)\(B_C\)之间关系:

\[T_C = B_C \div CIR \]

所以\(T_C\)的值由\(B_C\)和CIR共同决定,\(B_C\)可以自定义,\(B_C\)值越小,曲线约平滑,但是过小又会加重设备负担。一般情况下针对VoIP可以适当设置小些,让传输更加平滑,针对文件传输,可以设置大些,减小设备负担。

三. Traffic Shaping

shaping即将超出CIR的Packet暂时放在一个Buffer中等待token发送。这样可以较police更高效率的利用带宽,如下图:

bandwidth management

在shaping中的\(B_C\)\(B_E\)与PIR​(Peak Information Rate)高峰信息速率

\(B_C\)代表Bucket的大小与token的补充速度。在shaping中,如果配置有\(B_E\)则会有一些改变,如下图:

Bucket的大小变为\(B_C + B_E\),但token的补充速度依旧是\(B_C\).

image-20210327185708696

这样,在不繁忙时,最大的token数会额外累加,从而应对突发流量,但是整体带宽因为token补充速度的原因,保持不变;

cisco中可以将shape模式配置为peck模式,此模式下token的补充速度为\(B_C+B_E\),从而进一步提高带宽的利用;

tips:运营商侧只对CIR带宽做保障,超过的可能被Drop或者Delay,要酌情划分;

queue-limit

在Shaping中,在token不够的时候,packet会在buffer中等待,此Buffer也被称为queue-limit,如果满了则会发生Tail Drop或者其他丢弃机制.

queue-limit可以配置bytes或者packets,也可以配置为时间,配置时间的意义就在于Voip,超过1s钟的数据再发送已经没有意义了,丢弃是合理的。

csr(config-pmap-c)#queue-limit ?
  <1-64000000>  in bytes, <1-8192000> in packets by default

四. Traffic Policing

Traffic Policing是另外一种带宽管理的方法,与shaping一样使用令牌桶算法,但也稍有区别:

  • police中的bucket大小即B_C的值的最小单位为byte;
  • police不会延时传送,token不足则把包丢弃;
  • police中\(B_C\)\(B_E\)为两个bucket,bucket大小分别为\(B_C\)\(B_E\)的值;

4.1 Traffic Policing中的三种分类

Traffic Policing中总有3中分类:Single-rate Two-color Policer,Single-rate Three-color Policer及DualTwo-rate Three-color Policer.

Single-rate Two-color Policer

发包时通过查看\(B_C\)Bucket中是否有足够的token来决定执行绿色动作(conform action)还是红色动作(Exceed Action),如下图:

image-20210327193559328

Single-rate Three-color Policer

首先\(B_C\)Bucket溢出的token会放入\(B_E\)Bucket中,直至\(B_E\)bucket达到上限;

转发包时,在\(B_C\)Bucket没有足够token后,判断\(B_E\)Bucket中的token会否满足,满足则执行溢出操作(Exceed Action),否则执行违规操作(Violate Action)。

image-20210327194054370

Dual-rate Three-color Policer

区别于Single-rate Three-color Policer,\(B_E\)Bucket的token由PIR来决定\(T_C\)时间内的补充量;

image-20210327194653119

原文:https://www.jannet.hk/zh-Hans/post/bandwidth-management/

posted @ 2021-03-29 10:39  FcBlogs  阅读(343)  评论(0编辑  收藏  举报