概述
令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。
在使用令牌桶对流量进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为不符合或超标。
单速单桶
如
图1所示,为方便描述将此令牌桶称为C桶,用Tc表示桶中的令牌数量。单速单桶有2个参数:
- CIR(Committed Information Rate):承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
- CBS(Committed Burst Size):承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
系统按照CIR速率向C桶中投放令牌,当Tc<CBS时,令牌数增加,否则不增加。
对于到达的报文,用B表示报文的大小:
- 若B≤Tc,报文被标记为绿色,且Tc减少B;
- 若B>Tc,报文被标记为红色,Tc不减少。
单速双桶
单速双桶采用RFC2697的单速三色标记器srTCM(A Single Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
如
图2所示,为方便描述将两个令牌桶称为C桶和E桶,用Tc和Te表示桶中的令牌数量。单速双桶有3个参数:
- CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
- CBS:承诺突发尺寸,表示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都不减少。
双速双桶
双速双桶采用RFC2698的双速三色标记器trTCM(A Two Rate Three Color Marker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。
如
图3所示,为方便描述将两个令牌桶称为P桶和C桶,用Tp和Tc表示桶中的令牌数量。双速双桶有4个参数:
- PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允许传输或转发报文的峰值速率,PIR大于CIR;
- CIR:承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
- PBS(Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的峰值突发流量,PBS大于CBS;
- 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。