令牌桶的数字

时间:2017-01-03 13:01:33

标签: congestion-control

问题

对于使用令牌桶算法进行拥塞控制的主机,令牌桶的容量为1兆字节,最大输出速率为每秒20兆字节。令牌以一定的速率到达,以每秒10兆字节的速率维持输出。令牌桶当前已满,机器需要发送12兆字节的数据。传输数据所需的最短时间为_____________秒。

我的方法

最初令牌桶已满。其清空率为(20-10)Mbps。 1 mb的空令牌桶的时间是1/10,即0.1秒

但答案是1.2秒。

1 个答案:

答案 0 :(得分:0)

  • 令牌桶的容量为1兆字节(最大容量C)
  

这里一个字节被视为一个标记

⇒C= 1 M代币

  • 输出速率为每秒20兆字节(M = 20MBps) 令牌以一定速率维持输出,速率为每秒10兆字节

⇒20-R = 10

⇒输入速率R = 10MBps

  
      
  • 与Leaky Bucket不同,空闲主机可以捕获并保存c≤C令牌,以便稍后发送更大的突发。小号

  •   
  • 当我们开始传输时,令牌buckt中存在的令牌会立即传输到网络

  •   
     

即。如果最初的令牌桶的容量是' c'然后c代币将   立即出现在网络中。

清空令牌桶的时间

c:是令牌桶的初始容量 R:每一秒我们都会获得R代币 M:evey秒M代币产生

INPUT FLOW:然后在一段时间间隔内准备好进入网络的数据包数量' t'是c + Rt

输出流量:然后在一个时间间隔内准备好进入网络的数据包数量' t'是Mt

INPUT FLOW = OUTPUT FLOW

⇒c+ Rt = Mt

t = c / M-R = 1 / 20-10 = 0.1sec

  • 鉴于令牌桶已满(c = C)

现在,我们有两个案例

  1. 要转移1M令牌,请立即使用t = 0
  2. 或者要转移1M令牌,我们需要10 / 20-10 = 0.1秒?
  3. 转移1M(初始令牌)令牌,是否会立即t = 0

    考虑等式

    INPUTFLOW = c + Rt

    这意味着 " c令牌(最初包含在令牌桶中)传输没有任何延迟"

    与Leaky bucket不同,如果发送方处于空闲状态,令牌桶可以继续保留令牌。一旦它准备好发送数据包。数据包将获取令牌并将传输到网络。 ⇒c然后我们将添加在“' t”中生成的R令牌。时间到最后得到INPUTFLOW

    ⇒1MB立即传输。现在我们剩下11 MB传输

    继续保留11 MB

    在t = 0时,我们开始传输11 MB数据。

    在t = 0.1秒时:1MB(1 MB转移)

    在t = 0.2秒:1MB(2 MB转移)

    .. ..

    在t = 1.1秒:1MB(转移11 MB)

    因此,要传输12MB,需要1.1秒+ 0秒= 1.1秒

    转移1M(初始令牌)令牌,我们取= 0.1秒

    (如果1MB需要0.1秒,我可以说12MB需要1.2秒)

    然后在0.1秒内。 01 * 10MBps = 1M令牌已经充实。

    t = 0s:开始传输12 MB数据。

    t = 0.1s:1MB

    t = 0.2s:1MB(2 MB转移)

    t = 0.3s:1MB(3 MB转移) .. ..

    t = 1.2s:1MB(12 MB转移)

    因此,要传输12MB,需要1.2秒

    问题确实清楚地提到了这一部分。因此,通常的做法是始终遵循最佳案例。 因此答案是1.1秒

    更多信息:访问Gate Overflow - Gate 2016 Question on Token Bucket