目前QOS有2套方案
1 周期加令牌不允许欠债,该方法增加了丢包率,
2 一次性加入允许欠债,该方法大大减少丢包率。
CIR=放置令牌到桶内的速度这个是一个平均值单位是bps,即1秒内放的令牌个数。
CBS=令牌桶的尺寸大小
业务流的速度=取令牌的速度
TC=周期性添加令牌的时间间隔cbs/cir=tc
实际中比较常见的有两种实现方式:(1)周期性的添加,添加的时间间隔就是令牌桶的容量与添加速率的比值:T c=CBS/CIR,每次添加的令牌数为CBS 个;
还有种(本次加入令牌的时间-上次加入令牌的时间)XCIR 超额的被丢弃,这种是一次加满没有TC间隔的用于欠债业务以及在本桶内的令牌不足发送业务的时候就会一次性加入多于的丢弃首先需要进行的是还债。TC会增加时延
突发=瞬间消耗桶内所有令牌
EBS=CBS+EBS请不要把EBS和CBS的值设置成一样,否则,超额突发=0最好是大于CBS的2倍,这样允许超额突发
此时业务流量如果持续小于CIR,则会得到CBS的突发量。因为小于CIR是放令牌的速度,业务持续小于CIR,会使得令牌在桶内累计。此时业务如果大于CIR,会因为得不到令牌而被丢弃
CIR=8000 CBS=15000 EBS=0 这样的配置,会得到的结果是速度是1000B/s 允许突发到1800B/S 1秒内超过1800B的包就被丢弃。
推荐CBS=CIR的设置,这样不允许突发虽然,但是业务流速度得到保证。
TC可以用来调节业务的时延,(它是不可以配置的,由CBS/CIR=TC得到)因为它是向CBS桶内加令牌的时间间隔。一个业务最多可以得到的就是CBS的令牌数,不过这个还需要累计,在TC时间内,只能加入CIR所设定的令牌数目,因此想达到CBS的量,可能需要积蓄几轮CIR.
降低TC时间可以增加业务突发次数,这样可以获得小时延。
而业务一般,突发,需要累计否则可能是CBS<CIR时那TC时间很小。
其实业务的速度是靠CIR来限制的,业务的时延是靠TC来调节的,但TC是不允许配置的,因此只有CBS和CIR来控制TC。CBS越大TC越大,业务的突发时延间隔越大。
我司实现的令牌桶算法是srTCM,但是算法上作了一定的改进,所谓的单桶双色算法。EBS可以配置,但是没有起应有的作用,而是把这个桶放到CBS中,起加深CBS桶的作用。CBS和EBS是合起来算的,也就是说实际的CBS=配置的CBS+EBS。那么当有报文来时,如果报文长度B大于实际的CBS就是红,小于实际的CBS就是绿,没有×××报文。初始时令牌是满的
在CBQ队列中的AF类,可以提供确保的带宽,即使有拥塞的时候可以确保,EF类是加速的转发可以定义暴发值,它定义的是发送的最大速率,EF类不可以和AF,以及queue-leght同时使用CBQ系统预先定义过一些策略,CBQ的类是用动作方进去的如AF EF,BF。是先需要IF-MATCH之后才能抓到流,然后方到队列执行动作,他们都有一个保障带宽。AF是最小多少,EF是最大多少。taffic-policy是用来进行动作嵌套的,只能嵌套2层。而且要注意父子之间的动作关系,一般是子的动作优先。
CBQ可以预先定义一个给CBQ所使用的带宽,RTP,需要在接口上预留带宽给RTP。H3C只有CBS桶,加令牌的数目是 (当前系统时间-上次加令牌时间)XCIR ,多出来的丢弃
策略中使用具有lr 的行为时,只能应用到接口的出方向。LR是最好的与队列结合的限速,因为可以限制2层速率,而且还有QOS队列调度拥塞EF类其实就是LLQ队列,因此仅仅支持RED丢弃
如果多次使用本命令在同一个行为上配置,后一次的配置将覆盖前面的配置。
在FR网络内,没有CBS的情况下,即不允许突发,业务报文将等于CBS。TC的大与小直接影响业务时延。
帧中继流量×××方案中为了提高效率,提出了动态Tc 的概念。Tc 参数的大小在10 到
100 毫秒之间,可根据每次发送的报文大小进行动态调节,Tc=size of packet/CIR。
即无论待发送报文大小为多少(小于1500 字节),路由器都会在当前计算出的Tc
时间内,将所需要的全部令牌分发给当前报文
则向令牌桶中添加发送该报文令牌需要的时间为6400/64000 = 0.1s(即100ms),
即对于该报文来说Tc 为100ms。100ms 之内令牌桶中添加了6400bit 的令牌,该
报文即被送出。特殊的,此时如果CIR 为8000bps,业务等于64000bit则该报文的令牌时间为
64000/8000=800ms>100ms,但是由于Tc 参数大小被定义在10ms 到100ms 之间
滑动,此时Tc 取其下限值为100ms,而不是计算得到的800ms。同样的,如果此
时CIR 为1024000bps,则该报文的令牌时间为6400/1024000=6.25ms<10ms,但
是由于Tc 参数大小被定义在10ms 到100ms 之间滑动,所以该报文的Tc 取其上限
值10ms。
由于CBS 与EBS 的和是令牌桶的大小,同时路由器是一次性分配令牌给待发送报
文,为了使令牌桶中的令牌能够满足任何大小报文的发送,特别是大报文的发送,
比如1500byte 的报文,该报文发送需要1500×8=12Kbit 的令牌。故CBS 不得小于
15K,同时建议客户配置CBS 的大小等同CIR 的大小。
按照标准协议中规定,若Tc = 20ms,CIR 为64000bps,则每个Tc 时间内只能添
加0.02×64000 = 1280bit 的令牌。如发送长度为800 字节的报文需要5 个Tc,即
添加5 次令牌才能将该报文发送出去。与标准协议的实现方式相比,我们在一个动
态Tc 中只需添加一次令牌就可将该报文发送出,大大提高了提高工作效率