我相信,令牌不过是数据包,但我的问题是,这些令牌是否是固定大小的?如果是,为什么要固定数据包?有人能用例子清楚地解释这个算法吗?谢谢。
发布于 2015-08-14 19:53:46
令牌桶的概念是通用的/通用的,但是QoS的实现可以使用不同的令牌单元以指定的速率控制流量。
在思科流量管理 (最基本的QoS令牌桶技术)中,令牌桶大小以字节为单位指定(每个令牌为一个字节)。例如,如果您希望以100 bits的速率管理通信量,您可以使用police 100000 18750这样的命令,它将您的cir (提交的信息速率)设置为每秒10万位,将您的bc (突发提交/令牌桶大小)设置为18,750字节。下面是此令牌桶如何与某些示例通信量一起工作的示例(t是以毫秒为单位的运行时间):
让我来描述一下算法是如何工作的。桶开始满,当第一个包到达时,我们从桶中取字节。当下一个数据包(S)到达时,我们根据时间添加令牌,因为最后一个数据包(S)被处理,然后在新的桶大小允许的范围内传输尽可能多的数据包。当新的数据包到达时,我们总是添加令牌(字节)(速率*秒,自上一个数据包(S)/8位字节),然后传输桶允许的数据包。我们永远不能超过固定大小(bc /桶大小)填充桶,而且,如果桶中的大小超过令牌,我们就永远不能在给定的时刻取出更多的令牌来传输数据包。
另一种思考这个问题的方法是,你以一定的速度(每秒升)打开一个水龙头,然后把一个水桶放在下面。你可以将水桶倒入你的婴儿池或其他水槽(从象征性水桶中消耗水),其速度不会超过水流入水桶的速度。如果你在水龙头下灌装水桶的时间太长,额外的水(令牌)就会因为水桶的固定大小而丢失(浪费/扔掉)。由于数据包是以固定字节来测量的,所以我们可以将一个字节与一个固定大小的水滴进行比较--令牌桶的最大容量是以水滴(令牌)的数量来测量的。
这个有用吗?请参阅我链接到的Cisco文章。
https://networkengineering.stackexchange.com/questions/20618
复制相似问题