C114门户论坛百科APPEN| 举报 切换到宽版

亚星游戏官网

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

亚星游戏官网-yaxin222  新兵

注册:2008-11-11
发表于 2015-10-16 15:53:04 |显示全部楼层
qos 限速与CAR限速的区别

注意下单位:

平均速率:向桶中放置令牌的速率,即允许的流的平均速度。通常设置为 CIR(Committed Information Rate,承诺信息速率)。

突发尺寸:令牌桶的容量,即每次突发所允许的最大的流量尺寸。通常设置为CBS(Committed Burst Size,承诺突发尺寸),设置的突发尺寸必须大于最大报文长度。

个人见解举例:CIR=100kbyte/s,CBS=2000kbyte,假设此时的下载速度200kbyte/s.可 以假想令牌桶为一水桶,他的容量是 2000L,底部出水口流速200L/S,上部进水口注水速度100L/S,显然入不支出。2000/(200-100)=20S.20秒后桶内水流完。 这时出水口的流速变为100L/S。而20秒前,水的流速一直保持200L/S,这就是为什么叫突发了。应用到实际,打开网页时,刚开始需要下载图片,网 页文件等,下载速度要求很高,但持续时间不常,这就是突发能解决的实际问题。通过CBS大家即可以控制用户下载小文件高速下载,而大文件,限速下载。纯属 个人学习见解,供大家参考,交流。

1、在令牌桶原理中,CBS(承诺突发尺寸)+EBS(超额突发尺寸Excess Burst Size)=令牌桶大小,默认情况下EBS为0,CBS采用默认值,CBS和EBS单位是Byte,即字节。

2、 CIR(承诺信息速率)为每秒往令牌桶添加令牌的速度,单位是kbps,注意是bit每秒,不是Byte每秒,如配置qos car outbound carl 1 cir 64,其含义就是对carl队列1在接口出方向配置CIR为64kbps,此时默认CBS为4000(Byte),即令牌桶大小为4000字节,每秒往桶 内注入令牌的速率是64kbps,令牌桶就和水桶一样,CIR最多把桶注满,并不会多出。

3、假设一个包,大小是1500字节,如果此时桶内令牌数量是2000字节,那么该数据包通过,令牌数量变成2000-1500=500(字节),如果此时再来一个1000字节的数据包,那么令牌就不够,这个数据包就有可能被丢弃或remark。

4、上面只是原理先容,实际情况是动态变化(一边有令牌注入,一边有数据包转发取令牌)的,需要计算机仿真才能看到令牌桶的动态变化。

5、CAR(承诺访问数率)用来限速,比如限制FTP、HTTP、每IP限速,并不用来做流量保证,如VoIP、Video业务优先转发。

带宽是被共享的,因此当做QOS的CAR的时候如果某用户的,没有被限制带宽,则可能会由于,不限速度的用户流量过大而抢占,你所用CAR保证的用户。此时需要用队列技术。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com亚星游戏官网-yaxin222ffice亚星游戏官网-yaxin222ffice" />

QOS的一些基本概念。

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,EBS=0 则速度就是CIR所约定的,因为CIR是放令牌的速度最终要看CBS是桶大小,这个时候CBS限制了CIR能放的令牌量。

此时业务流量如果持续小于CIR,则会得到CBS的突发量。因为小于CIR是放令牌的速度,业务持续小于CIR,会使得令牌在桶内累计。此时业务如果大于CIR,会因为得不到令牌而被丢弃CIR>CBS,EBS=0 则速度是桶子的突发尺寸CBS所定义的,此时因为CIR是放置令牌的,但是桶没有CIR所需求的大。那么业务流这个时候只能得到CBS大小的令牌,突发的频率很高,只要业务达到CIR的速度,则每次都会把桶内的令牌消耗完,当然业务流不一定每次都能达到CIR的速度。

CIR<CBS ,EBS=0 则发送的速度是CIR所定义的,但这个时候网络允许突发,即有可能网络会发送到CBS所定义的尺寸,当然一旦突发,桶内的令牌就没有了,这个时候需要等待TC周期,(TC=(CBS+EBS)/CIR),因此可能会增大网络时延,当然这只是突发流量才会。这个时候业务速度如果比CIR小,则可能累计出大于CIR的突发流量。因为会持续向桶内添加令牌,直到超过EBS,最后令牌将被丢弃,所以业务如果不去取令牌,会导致令牌积压,之后业务将得到突发。但是如果业务很平均,则不会导致突发,因为CIR每次放入的令牌,都被用户取掉了,当然业务一般不会很平均,因此CIR注入的令牌也不一定能消耗完每次,这样就看你的令牌桶是否允许业务突发了。

因此得出,推荐配置CBS=CIR    EBS大于CBS的2倍,最小值=8000/8=1000B,CBS最小=15000/8/1024=1.8KB,CBS最小刚好大于了MTU的1500字节,因此无论如何都可以发出一个数据包的,如果它小于了1500.EBS此时等于0则可能连一个包都发不出,因此不允许小于1.8KB。CIR的速率如果这个时候大于了CBS,则在1秒内超过CBS桶子的尺寸,将被认为是EBS的,EBS=0,因此直接丢弃了。

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越大,业务的突发时延间隔越大。

结论,最好将CBS=cir。

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系大家 |网站地图  

GMT+8, 2024-9-24 15:21 , Processed in 0.119789 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部
XML 地图 | Sitemap 地图