1.服务质量(QoS)中CIR、PIR、CBS、PBS、EBS总结表
先将网络服务质量(QoS
)中CIR
、PIR
、CBS
、PBS
、EBS
的概念及表示的含义总结如下,方便进一步记忆。
缩写 | 英文全称 | 中文含义 | 基本概念 |
---|---|---|---|
CIR | Committed Information Rate | 承诺信息速率 | 表示向令牌桶(C桶 )中投放令牌的速率,即C桶 允许传输或转发报文的平均速率,计量单位为Kbps (以bit 位为单位)。 |
PIR | Peak Information Rate | 峰值信息速率 | 表示允许传输或转发报文的最大速率,单位为bit 。这个参数通常在交换机中存在,并且PIR 的值应大于或等于CIR 。 |
CBS | Committed Burst Size | 承诺突发尺寸 | 表示C桶 的容量,即C桶 瞬间能够通过的承诺突发流量。这个值通常用于衡量在突发流量情况下,系统能够允许的最大流量尺寸,计量单位为Byte (字节)。 |
PBS | Peak Burst Size | 峰值突发尺寸 | 表示在双速双桶模式下,P桶 (峰值桶)的容量,即P桶 瞬间能够通过的峰值突发流量。与CBS 类似,但用于衡量峰值流量情况,计量单位也为Byte (字节)。 |
EBS | Excess Burst Size | 超额突发尺寸 | 表示E桶 (超额桶,可能存在于某些特定的QoS 实现中)的容量,即E桶 瞬间能够通过的超出突发流量。这个参数在某些QoS 策略中可能用于处理超出CIR 和CBS 限制的流量。 |
2.流量评估与令牌桶技术
2.1总体概述
为了保证有限的网络资源能够更有效的被利用,更好的为更多的用户服务,必须对用户的流量加以限制。流量监管、流量整形和接口限速都可以通过对流量规格进行监督以限制流量及其资源的使用,但是它们必须要有一个前提条件,那就是需要知道流量是否超出了规格,然后才能根据评估结果实施调控。一般采用令牌桶对流量的规格进行评估。
令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。在使用令牌桶对流量规格进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为不符合或超标。
关于令牌桶处理报文的方式,RFC中定义了以下标记算法:
单速率三色标记(single rate three color marker,srTCM,或称为单速双桶算法)算法,主要关注报文尺寸的突发。 双速率三色标记(two rate three color marker,trTCM,或称为双速双桶算法)算法,主要关注报文速率的突发。
令牌桶算法的评估结果都是为报文打上红、黄、绿三种颜色的标记,所以称为“三色标记”。QoS会根据报文的颜色做相应的处理,两种算法都可以工作于色盲模式和色敏模式下。以下以色盲模式为例对标记算法进行详细介绍。
2.2单速双桶
单速双桶采用RFC2697定义的单速三色标记器srTCM(Single Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
如下图所示,为方便描述将两个令牌桶称为C桶和E桶,用Tc和Te表示桶中的令牌数量。单速双桶有3个参数:
CIR(Committed Information Rate):承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率; CBS(Committed Burst Size):承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量; EBS(Excess Burst Size):超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。
系统按照CIR速率向桶中投放令牌:
若Tc<CBS,Tc增加; 若Tc=CBS,Te<EBS,Te增加; 若Tc=CBS,Te=EBS,则都不增加。
对于到达的报文,用B表示报文的大小:
若B≤Tc,报文被标记为绿色,且Tc减少B; 若Tc<B≤Te,报文被标记为黄色,且Te减少B; 若Te<B,报文被标记为红色,且Tc和Te都不减少。
单速双桶模式允许流量突发,当用户的流量速率小于配置的CIR时,报文被标记为绿色;当用户的突发流量大于配置的CBS而小于EBS时,报文被标记为黄色;当用户的突发流量大于配置的EBS时,报文被标记为红色。
# 单速双桶示意图
假设设备接口的CIR设置为1Mbit/s,CBS为2000bytes,EBS为2000bytes,初始状态时C桶和E桶满。单速双桶模式下,令牌桶对报文的处理过程如下:
说明:
为方便计算,下面所有计算,1Mbit/s按1×106bit/s计算
假设第1个到达的报文是1500bytes:
检查C桶发现令牌数大于数据包的长度,所以数据包被标为绿色,C桶减少令牌1500bytes,还剩500bytes,E桶令牌数量保持不变。
假设1ms之后到达第2个报文1500bytes:
在此间隔内,C桶新增令牌 = CIR × 1ms = 1000bits = 125bytes,加上C桶原来剩余的令牌500bytes,此时C桶共有625bytes,检查发现C桶内令牌数量不够。检查E桶发现有足够令牌,因此报文标记为黄色,E桶减少令牌1500bytes,剩余500bytes,C桶剩余625bytes保持不变。
假设又过1ms后到达第3个报文1000bytes:
在此间隔内,C桶新增令牌125bytes,加上C桶原来剩余的令牌625bytes,此时C桶共有750bytes,检查发现C桶内令牌数量不够。检查E桶发现令牌数量也不够,因此报文被标记为红色,C桶、E桶令牌数不变。
假设又过20ms后到达第4个报文1500bytes:
在此间隔内,C桶新增令牌 = CIR × 20ms = 20000bits = 2500bytes,加上C桶原来剩余的令牌750bytes,C桶此时令牌数为3250bytes。而CBS = 2000bytes,因此溢出的1250bytes添加到E桶,此时E桶有1750bytes。由于C桶中令牌数大于报文长度,报文标记为绿色,C桶减少令牌1500bytes,剩余500bytes,E桶令牌数量保持不变。
# 单速双桶模式下报文处理过程
2.3单速单桶
如果不允许突发流量,上面单速双桶算法中的EBS则设置为0,此时E桶的令牌数始终为0,相当于只使用了一个令牌桶,这种情况称为单速单桶。
如下图所示,为方便描述将此令牌桶称为C桶,用Tc表示桶中的令牌数量。单速单桶有2个参数:
CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率; CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
系统按照CIR速率向C桶中投放令牌,当Tc<CBS时,令牌数增加,否则不增加。
对于到达的报文,用B表示报文的大小:
若B≤Tc,报文被标记为绿色,且Tc减少B; 若B>Tc,报文被标记为红色,Tc不减少。
单速单桶模式不允许流量突发,当用户的流量速率小于配置的CIR时,报文被标记为绿色;当用户的流量大于CIR时直接被标记为红色。
# 单速单桶示意图
假设设备端口的CIR设置为1Mbit/s,CBS为2000bytes,初始状态时C桶满。单速单桶模式下,令牌桶对报文的处理过程如下:
假设第1个到达的报文是1500bytes时:
检查C桶发现令牌数大于数据包的长度,所以数据包被标为绿色,C桶减少令牌1500bytes,还剩500bytes。
假设1ms之后到达第2个报文1500bytes:
在此间隔内,C桶新增令牌 = CIR × 1ms = 1000bits = 125bytes,加上C桶原来剩余的令牌500bytes,此时C桶共有625bytes。令牌数量不够,报文标记为红色。
假设又过1ms后到达第3个报文1000bytes:
在此间隔内,C桶新增令牌125bytes,加上C桶原来剩余的令牌625bytes,此时C桶共有750bytes。令牌数量不够,因此报文被标记为红色。
假设又过20ms后到达第4个报文1500bytes:
在此间隔内,C桶新增令牌 = CIR × 20ms = 20000bits = 2500bytes,加上C桶原来剩余的令牌750bytes,C桶此时令牌数为3250bytes。而CBS = 2000bytes,因此溢出1250bytes令牌被丢弃。此时C桶令牌数大于报文长度,报文标记为绿色,C桶减少令牌1500bytes,剩500bytes。
# 单速单桶模式下报文处理过程
2.4双速双桶
双速双桶采用RFC2698定义的双速三色标记器trTCM(A Two Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
如下图所示,为方便描述将两个令牌桶称为P桶和C桶,用Tp和Tc表示桶中的令牌数量。双速双桶有4个参数:
PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允许传输或转发报文的峰值速率,PIR大于CIR; CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率; PBS(Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的峰值突发流量; CBS:承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
系统按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌:
当Tp<PBS时,P桶中令牌数增加,否则不增加。 当Tc<CBS时,C桶中令牌数增加,否则不增加。
对于到达的报文,用B表示报文的大小:
若Tp<B,报文被标记为红色; 若Tc<B≤Tp,报文被标记为黄色,且Tp减少B; 若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。
双速双桶模式允许流量速率突发,当用户的流量速率小于配置的CIR时,报文被标记为绿色;当用户的流量大于CIR而小于PIR时,报文被标记为黄色;当用户的流量大于PIR时,报文被标记为红色。
# 双速双桶示意图
假设设备端口的CIR设置为1Mbit/s,PIR设置为2Mbit/s,CBS为2000 bytes,PBS为3000 bytes,初始状态时C桶和P桶满。双速双桶模式下,令牌桶对报文的处理过程如下:
第1个到达的报文假设是1500bytes:
检查发现报文长度不超过P桶也不超过C桶,所以数据包被标为绿色,C桶和P桶都减少令牌1500bytes,C桶还剩500bytes,P桶还剩1500bytes。
假设1ms后到达第2个报文1800bytes:
在此间隔内,P桶新增令牌 = PIR × 1ms = 2000bit = 250bytes,加上P桶原来剩余的令牌1500bytes,此时P桶共有1750bytes,小于报文长度。C桶新增令牌 = CIR × 1ms = 1000bits = 125bytes,加上C桶原来剩余的令牌500bytes,此时C桶共有625bytes。报文标记为红色,P桶、C桶令牌数不变。
假设又过1ms后到达第3个报文1000bytes:
在此间隔内,P桶新增令牌250byte,加上P桶原来剩余的令牌1750bytes,此时P桶共有令牌2000bytes,大于报文长度。再检查C桶,C桶新增令牌125bytes,加上C桶原来剩余的令牌625bytes,此时C桶共有750bytes,仍然小于报文长度。因此报文被标记为黄色,P桶减少令牌1000bytes,剩余1000bytes,C桶令牌不变。
假设又过20ms之后到达报文1500bytes:
在此间隔内,P桶新增令牌 = PIR × 20ms = 40000bits = 5000bytes,超过P桶容量PBS,因此P桶令牌数 = PBS = 3000bytes,溢出的令牌丢弃。这样P桶有3000bytes,大于报文长度。此时C桶增加令牌 = CIR × 20ms = 20000bits = 2500bytes,超过C桶容量CBS,因此C桶令牌数 = CBS = 2000bytes,溢出的令牌丢弃。C桶此时令牌数2000bytes,大于报文长度。报文被标记为绿色,P桶减少令牌1500bytes,剩余1500bytes;C桶减少令牌1500bytes,剩余500bytes。
# 双速双桶模式下报文处理过程
2.5三种令牌桶模式的区别和应用
三种令牌桶模式之间的区别和相互关系如下表所示:
基于上述三种令牌桶模式之间的区别,其功能和选用场景也有所不同,如下表所示:
# 三种令牌桶模式的功能及选用场景
令牌桶模式 | 功能 | 选用场景 |
---|---|---|
单速单桶 | 限制带宽 | 优先级较低的业务(如企业外网HTTP 流量),对于超过额度的流量直接丢弃保证其他业务,不考虑突发。 |
单速双桶 | 限制带宽,还可以容许一部分流量突发,并且可以区分突发业务和正常业务 | 较为重要的业务,容许有突发的业务(如企业邮件数据),对于突发流量有宽容。 |
双速双桶 | 限制带宽,可以进行流量带宽划分,可以区别带宽小于CIR还是在CIR与PIR之间 | 重要业务,可以更好的监控流量的突发程度,对流量分析起到指导作用。 |
2.6色敏模式
色敏模式下,如果到达的报文本身已经被标记为红、黄或者绿等颜色,令牌桶对流量的评估会参考报文已标记颜色,即报文本身已携带颜色会影响令牌桶的评估结果,评估机制简单的来说遵循以下原则:
如果报文已被标记为绿色,则令牌桶的评估机制与色盲模式保持一致。 如果报文已被标记为黄色,则令牌桶根据报文长度和令牌数的大小,为符合流量规定的报文标记为黄色,为不符合的报文标记为红色,单速单桶模式下则直接标记为红色。 如果报文已被标记为红色,则令牌桶直接将到达报文标记为红色。