Qos令牌桶技术原理
令牌桶概述配合软件队列使用。单位是Byte而不是报文的个数,如果一个报文所需的Byte数超过了所剩余的令牌个数,就无法发送,也就是说一个令牌对应一个Byte。令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。在使用令牌桶对流量进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转
令牌桶基础
概述:
- 配合软件队列使用。
- 单位是Byte而不是报文的个数,如果一个报文所需的Byte数超过了所剩余的令牌个数,就无法发送,也就是说一个令牌对应一个Byte。
- 令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。
- 在使用令牌桶对流量进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为不符合或超标。
依据令牌桶的令牌注入方式及桶的数量定义了3种令牌桶模型:
- 单速单桶双色模型。
- 单速双桶三色模型(RFC 2697)。
- 双速双桶三色模型(RFC2698)。
令牌桶术语:
一、令牌桶模型中可能有单桶或双桶模型,单桶模型中使用的桶称为CBS桶,而双桶单速模型中使用的桶分别称为CBS和EBS桶;双桶双速模型中使用的桶是CBS和PBS:
- CBS (Committed Bucket Size):承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
- EBS (Excess Burst Size): 超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。
- PBS(Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的超出突发流量。
下文为方便描述将三个令牌桶分别称为C (Committed)桶、E (Excess) 桶和P(Peak)桶。
二、Tc和Te:分别表示C桶和E桶中的当前令牌数量,单位为个。
三、信息速率:
-
CIR (Committed Information Rate):承诺信息速率,向C桶中注入令牌的速率,同时也是C桶允许传输或转发数据的平均速率,单位bit/s。
-
PIR(peak Information Rate):峰值信息速率,向P桶中注入令牌的速率,同时也是P桶允许传输或转发数据的平均速率,单位bit/s。
四、色(color):根据桶中当前令牌是否满足数据转发需要而定义的颜色标识,它是模型描述时对分类的数据的颜色定义,将能从桶中取走足量令牌的报文标记为绿色或黄色,而将未能在桶中获得足量令牌的报文,标记为红色。通过命令,如green pass yellow pass red pass,可以设置不同颜色的报文的具体动作。
一、单速单桶双色模型
桶中令牌以承诺的恒定速率CIR注入,桶大小固定,当注入令牌超出桶的容量后,多余的令牌就被丢弃掉。对于到达的报文,图上图中用B表示报文的大小。
- 若B≤Tc,报文被标记为绿色,且Tc减少B。
- 若B>Tc,报文被标记为红色,且Tc不减少B。.
过程描述:
若桶中有令牌,数据包转发会消耗桶中的令牌,若令牌足量,满足报文转发需要的数量,则报文被标记为绿色,并在桶中取走等量令牌。若待转发报文在桶中得不到足够令牌则标记为红色,桶中令牌不减。
例如:
若当前C桶中有2000个令牌,有2份待转发数据报文,大小分别为1500B和800B。假设此期间没有令牌注入,当第一份数据报文和C桶内令牌进行比较时,令牌满足,则第一份报文转发出去,桶中令牌剩余为500个。而第二份报文需要800个令牌,令牌桶中令牌不够,这份报文被标记为红色,不被转发出去,令牌桶中令牌量不变化,单速单桶的模型因其仅以承诺速率CIR注入令牌到C桶,所以C桶中令牌是承诺的令牌。
消耗C桶令牌的数据报文,其转发速率不会超出CIR,流量图如下:
虚线部分是红色流量,阴影部分是绿色流量。在QoS机制中,只要有提到流量不超出特定速率,则该机制中必内置令牌桶的速率限制模型。
cir 2000 cbs 50000 ,表示承诺信息速率为2000kbit/s,承诺突发尺寸为50000Byte。报文大小小于50000Byte的都能转发,转发速率最大为2000kbit/s。
二、单速双桶三色模型
系统按照CIR速率向桶中投放令牌,向C桶注入令牌,若溢出,则E桶令牌增加。
- 若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都不减少。
过程描述:
C桶中令牌是承诺部分,系统始终以速率CIR注入令牌,但若前一时刻C桶中令牌没有用光或没有使用(因没有数据转发),则下次注入时会致C桶溢出,过量的令牌并没有被丢掉,定义的E桶就是专门用来装多余的令牌的。所以E桶的大小可在实现中定义得稍大些,可使系统保留前面时刻未用令牌的能力相对增强,可减少令牌因溢出而致的损失。
报文转发时,先从承诺的C桶中取令牌,如果令牌够,则标记报文为绿色,桶中令牌减少。若C桶中令牌不够(Tc<B), 则继续比较E桶令牌。若E桶令牌够,则标记报文为黄色,否则为红色。
例如:
若C桶当前令牌为2000,E桶令牌为1000,待转发数据报文有3份,大小分别为1500B、 800B、 700B,假设3份报文在转发过程中没有令牌注入。根据上面的逻辑,第一份报文同C桶比较,令牌满足,标记为绿色,此时令牌桶C剩余令牌为500,令牌桶E令牌依然为1000。 第二份报文需要800个令牌,C桶承诺部分不够,则使用E桶令牌,E桶部分是累积起来的令牌,第二份报文使用E桶令牌,并标记为黄色,E桶剩余令牌200。第三份报文在C桶和E桶都没有足量的令牌,所以标记为红色。
双桶模型由于EBS桶的存在,因此流量可以在承诺的CIR速率基础上过量突发,在某时刻速率可以达到很高。由于前一时刻数据量低,令牌没有使用,因此在下一时刻有过量突发所致的流量过高。但虽有过量突发,但流量的平均速率<=CIR。流量图如下:
P1是使用E桶令牌的流量,P3是使用C桶令牌的流量。P2 处没有转发的流量。P1对应黄色流量,P3 对应绿色流量。
三、双速双桶三色模型
系统按照PIR速率(峰值速率)向P桶中投放令牌,按照CIR速率向C桶中投放令牌:
- 当Tp<PBS时,P桶中令牌数增加,否则不增加。
- 当Tc<CBS时,C桶中令牌数增加,否则不增加。
对于到达的报文,用B表示报文的大小:
- 若Tp<B,报文被标记为红色。
- 若Tc<B≤Tp,报文被标记为黄色,且Tp减少B。
- 若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。
任何一种模型都做到把流量同令牌桶中的令牌量比对,而打上不同的颜色,并代表不同的分类。如果按令牌量是否足量来决定报文转发,红色代表该类数据没有对应的令牌,而不能被系统转发。黄色代表有对应的令牌,但该令牌不是承诺的令牌(仅取自P桶)。绿色代表该类数据使用的令牌是承诺速率所注入的令牌。
双速模型并没有像单速模型在实际中应用那么广,它一定程度上解决了单速双桶模型的不足,双速模型引入了PIR,PIR一定要大于CIR。
过程描述:
P桶和C桶都是独立注入令牌的,如果桶中令牌溢出,并不会装入到另一个桶里。PIR是峰值速率,CIR是承诺速率,此模型可保证当输入数据的速率超出PIR时,超出部分将被丢弃,而低于PIR部分的报文,高于CIR的部分被标记为黄色,低于CIR部分被标记为绿色。所以待转发的报文先和P桶比较,若P桶令牌不够,则标记为红色,令牌不减。而若P桶令牌够,则继续比较C桶令牌,仅当二者令牌都够时,都做等量相减。
例如:
P桶令牌为2000,C桶令牌为1000,待转发报文有3份,大小分别为1500B、800B、400B,第一份报文和P桶比较,令牌够,继续和C桶比较,C桶不够。第一份转发出去,P桶剩余令牌500,C桶令牌没变化,为1000且报文被标记为黄色。第二份报文大小为800,先和P桶比较,因P桶令牌不够而标记为红色,桶内令牌不变。第三份报文先和P桶比较,再和C桶比较。都满足则都减令牌,并标记为绿色,P 桶剩余100, C桶剩余600。
此模型能解决单速双桶模型中因E桶的原因而致的流量过量突发而引起的速率波动幅度的不确定性,所以对最高的速率做了限制,如果该模型应用在数据转发的场景下,它使实际数据包的转发速率达到PIR,这往往致企业边缘设备流出的报文速率过高,而上游运营商处丢掉超出CIR的部分流量。流量图如下:
P1是超出PIR部分的“红色”流量,P2是黄色”流量,而P3是“绿色”流量。使用双速模型可使流量分为3份,可自定义不同颜色的流量的流行为,可以丢弃或打标记。
单速双桶和双速双桶模型对比
整理资料来源:《HCIE路由交换学习指南》
更多推荐
所有评论(0)