请教,令牌桶,单速率三色问题
请教各位,令牌桶单速率三色算法是这样描述的:现假设到达的包长度为B(单位为bit)。若包长度B小于C桶中的令牌数Tc(也就是C桶中的令牌数足够该包发送所需),则包被标记为绿色,表示包符合要求,包发送后C桶中的令牌数Tc减少B。如果Tc<B<Te(也就是包长度大于C桶中的令牌数,而小于E桶中的令牌数),则标记为黄色,则从E桶中取出所需令牌,E桶中的令牌数Te减少B;若B >Te,标记为红色,表示是违反规定的包,直接丢弃,两令牌桶中的总令牌数都不减少。
不明白的是,假设某个时刻,到达的包长度为9000bit, 此时C桶中令牌数目为2000,E桶中令牌数目为8000,按照上述算法,这个包应该被标记为红色,丢弃。但C桶和E桶的令牌和是10000,超过包的长度,是可以把包发送出去的,其实并没有超出CIR,为什么要丢弃呢?求赐教,谢谢!
TE ,TC Bucket 只能擇一而用 sharp796 发表于 2017-10-13 10:14
TE ,TC Bucket 只能擇一而用
系统每秒以CIR的速率产生令牌,产生的令牌会依次到TC和TE桶里,就是两个桶里的令牌都用了,平均速率也不会超过CIR,为什么不能两个桶都用呢? 本帖最后由 sharp796 于 2017-11-1 10:58 编辑
happy1210 发表于 2017-10-13 12:17
系统每秒以CIR的速率产生令牌,产生的令牌会依次到TC和TE桶里,就是两个桶里的令牌都用了,平均速率也不 ...
Eir 是指 正常 CIR 未用完的 放入 另一个令牌桶的,这是 Meeter的基本观念 。
以双速率看只是以不同的数学模式计测模式 ,同时间的 TOKEN 不等于 TC+TE以单位时间可传量看,使用 PIR 时同时使用了 (CIR+EIR)*TC 的令牌故用 TE 则不可用 TC相对的使用 TC 时 也不可 使用 TE。 不要纠结在两个桶子 ,这两个桶子 在 使用时 有 先 后关系 ,本质上有相依阏系
sharp796 发表于 2017-11-1 10:56
Eir 是指 正常 CIR 未用完的 放入 另一个令牌桶的,这是 Meeter的基本观念 。
以双速率看只是以不同 ...
首先观念先导正一下。
用 指的是扣掉参考令牌桶中的令牌数 花费
双速率模式是指
以CIR的速率产生令牌只放入 TC ,
以PIR速率产生令牌只放入 TP,
(不是你说的用 CIR的速率产生令牌,产生的令牌会依次到TC和TE桶-这是单速率模式)
且 PIR 是指 (CIR+EIR )
另外请记的这是 数学参考模型
简单说明
当你用TP 已经包含了TC所以不可用 TC因为PIRXTC=(CIR+EIR)XTC=TC+TE=TP
当你用TC 其实会影响 TP 的 SIZE所以你会发现TC 花费的 令牌数 同时要 在TP中扣除 ,就这不是两个都用,而是要确保可花费令牌的正确数量 。因为PIR 形成的 TP 可视为 TC+TE既然 TC 减少 ,则 TP 也要相对 减少 。 因此你花费的仍是相同令牌数 ,不然TP,TC同时扣除你不是应可传两倍的令牌数
(我猜这是你认为可同时使用的点)
那所谓不可同时用是指什么 ,是指 不可 将 TC +TP的令牌数合并起来花费
例 500Byte的包
TC=200BYTE
TP=499 BYTE
但由于两者都 少于 500所以是 Violation 。
因为如果将 两者合并就会成了在计测时间是以 2CIR +EIR 来产生令牌数 ,但实际产同一时间单位内只会有
一个 CIR +一个 EIR
概念只有一个TP 的令牌数亦包含了 TC ,
另外你写的是单速率,是指 TC 超过了 才会放入TE
久久上来看看 ,有时间就回一下 的人
同时存到 两个 令牌桶是用来形成虚拟的测量单位依据 , 如果你有注意到 使用 TC 或TP令牌桶后要如何反应令牌桶
http://blog.ine.com/2011/05/22/understanding-single-rate-and-dual-rate-traffic-policing/
这是网路上可发现较清楚的说明文件
页:
[1]