滑动窗口数据传输的最大吞吐量

时间:2014-02-21 16:25:50

标签: networking

我试图通过解决一些数值例子来了解如何计算滑动窗口数据传输的吞吐量。以下是我的分析后的示例。

示例

  

主机A通过全双工链路向主机B发送数据。 A和B使用滑动窗口协议,每个发送和接收窗口大小为5。仅从A发送到B的数据包大小各为1000字节,一个这样的包的传输时间为50us。传播延迟是200 us。假设Ack数据包需要可忽略的传输时间。 Mbps的最大可实现吞吐量是多少?
  A. 7.69 B. 11.11 C. 12.33 D. 15.00

分析

  • 往返时间为2 * 200 us = 400 us。 ...... A
  • 填写发送窗口所需的时间=窗口大小(5)* 1个数据包的传输时间(50 us)= 250 us。 ...... B
  • 由于B < A,发送方必须在发送第6个数据包之前等待ack到第1个数据包。这个ack出现在450 us。 (往返时间为400美元。)
  • 在250 us和450 us之间,发件人处于空闲状态,即没有新的数据通过线路发送。
  • 假设发件人拥有无限量的数据帧,上述周期将会重复。
  • 因此,在每450 us中,发送者发送5个数据包= 5 * 1000 * 8 = 40000位数据。
  • 因此,吞吐量= 40000位/ 450 us =每秒84.7710兆位。 (84.7710 Mbps)

然而,这不是给定的选项之一,甚至不是关闭!我上面的分析有什么错误吗?

2 个答案:

答案 0 :(得分:1)

正如我在评论中所述,您的分析和计算方法是正确的。但是,如果我是你,我会检查我的计算器是因为40000 bits / 450 us = 88.88...Mbps,而不是84.7710 Mbps

我不认为88.88只是11.11*8只是巧合,所以这个问题实际上是要求每秒获取兆字节而不是每秒兆位。“ >

答案 1 :(得分:0)

吞吐量= Window / RTT

这里窗口大小= 5 * 1000字节= 5000字节。

RTT = 50us + 2 * 200 us =&gt; 450us。

因此吞吐量= 5000字节/ 450 us = 11.11Mpbs