首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >令牌桶中的令牌是什么?

令牌桶中的令牌是什么?
EN

Network Engineering用户
提问于 2015-08-14 05:46:14
回答 1查看 5.8K关注 0票数 4

我相信,令牌不过是数据包,但我的问题是,这些令牌是否是固定大小的?如果是,为什么要固定数据包?有人能用例子清楚地解释这个算法吗?谢谢。

EN

回答 1

Network Engineering用户

回答已采纳

发布于 2015-08-14 19:53:46

令牌桶的概念是通用的/通用的,但是QoS的实现可以使用不同的令牌单元以指定的速率控制流量。

思科流量管理 (最基本的QoS令牌桶技术)中,令牌桶大小以字节为单位指定(每个令牌为一个字节)。例如,如果您希望以100 bits的速率管理通信量,您可以使用police 100000 18750这样的命令,它将您的cir (提交的信息速率)设置为每秒10万位,将您的bc (突发提交/令牌桶大小)设置为18,750字节。下面是此令牌桶如何与某些示例通信量一起工作的示例(t是以毫秒为单位的运行时间):

  • 从18,750字节开始,警察桶已满
  • 在t=0ms:发送1,500个字节的数据包,在桶中留下17,250个字节
  • 在t=100ms:我们将1,250个字节(令牌)添加到桶中(在100 K处为0.1s),然后发送两个刚刚到达的1500字节数据包。17250+1250-3000=15,500个字节
  • 在t=200ms:我们添加1250字节(令牌)到桶,然后发送三个1500字节的数据包刚刚到达。15500+1250-4500=12,250个字节
  • 在t=300ms:我们添加1250字节(令牌)到桶,然后发送四个1500字节的数据包刚刚到达。12250+1250-6000=7500字节(令牌)留在桶中
  • 在t=500ms:我们添加2,500个字节(100 byte,0.2秒,没有通信量),然后发送6个1000字节的新到达的数据包。7500+2500-6000=4,000字节
  • 在t=600ms:我们添加1250字节(令牌)到桶,然后传输三个1500字节的新数据包。4000+1250-4500=750字节
  • 在t=650ms:我们添加625字节(令牌)并尝试发送一个刚刚到达的1500字节数据包,但必须丢弃它,因为桶中没有足够的令牌(字节)。750+625=1375字节(令牌不足,丢弃1500个字节数据包)

让我来描述一下算法是如何工作的。桶开始满,当第一个包到达时,我们从桶中取字节。当下一个数据包(S)到达时,我们根据时间添加令牌,因为最后一个数据包(S)被处理,然后在新的桶大小允许的范围内传输尽可能多的数据包。当新的数据包到达时,我们总是添加令牌(字节)(速率*秒,自上一个数据包(S)/8位字节),然后传输桶允许的数据包。我们永远不能超过固定大小(bc /桶大小)填充桶,而且,如果桶中的大小超过令牌,我们就永远不能在给定的时刻取出更多的令牌来传输数据包。

另一种思考这个问题的方法是,你以一定的速度(每秒升)打开一个水龙头,然后把一个水桶放在下面。你可以将水桶倒入你的婴儿池或其他水槽(从象征性水桶中消耗水),其速度不会超过水流入水桶的速度。如果你在水龙头下灌装水桶的时间太长,额外的水(令牌)就会因为水桶的固定大小而丢失(浪费/扔掉)。由于数据包是以固定字节来测量的,所以我们可以将一个字节与一个固定大小的水滴进行比较--令牌桶的最大容量是以水滴(令牌)的数量来测量的。

这个有用吗?请参阅我链接到的Cisco文章。

票数 8
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/20618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档