有人可以向我解释令牌桶的概念吗?还需要帮助解决以下问题。
给定令牌桶大小,b字节;令牌速率,r字节/秒;最大输出速率M字节/秒,最大突发时间T 1是多少。
请详细说明如何解决这个问题
答案 0 :(得分:6)
你读过这个吗? http://en.wikipedia.org/wiki/Token_bucket
基本上,当您想要限制某些内容的速率时,可以使用令牌桶进行限制。以这种方式思考,有人每秒将1个糖果(r)放入桶中,然后每秒只能吃1个糖果。如果你的水桶可以容纳10(b)个糖果,如果你有一段时间没吃它们,你的水桶就会满了,那么你可以一次吃掉10个糖果(M)。
我想你可以用这种方式计算关于最大突发时间T的问题的答案。重点是,当你以M率吃糖果时,它也会按照r率进行补充。
t = b/m;
while(1) {
T = (b + (t * r)) / m
if (T == t) return T;
t = T;
}
因此,如果b = 10,则r = 1 / sec,M = 2 / sec 然后T = 9。
答案 1 :(得分:0)
对于您的问题,我们可以基于数据IO来建立方程:在时间T之后,数据输出应等于数据输入。那是: b + rT = MT T = b /(M-r)