考虑到停止和等待协议,吞吐量如何受到影响?

时间:2013-09-19 20:44:15

标签: networking tcp

如果我们考虑停止和等待协议,吞吐量如何受到影响。我假设停止和等待将添加自己的传输数据延迟。是否有相同的数学方程式?

2 个答案:

答案 0 :(得分:0)

'数学方程'是'delay = delay + wait_time'。我自己称之为3级算术。

答案 1 :(得分:0)

任何类型的发送停止和/或等待的协议的数据吞吐量都会受到延迟的影响,因为数据块之间会引入延迟。这会显着影响使用小块大小的协议,但也会影响TCP等窗口协议。

最终,数据块之间需要在服务器和主机之间来回发送的数据包越多,数据块越小,吞吐量就越大。

例如,TFTP以固定的512字节块发送数据,并且需要交换6个数据包(每侧3个),然后才能发送另一个块。因此,在ping(往返)为10 ms的连接上,数字发送块之间至少有30 ms的延迟。这意味着可以在一秒钟内传送33个512字节数据块,假设无限带宽并且不计算任何损失或其他开销,最大吞吐量约为17KBps(136 Kbps)。

现在考虑ping时间为50ms的情况,因此在块传输之间发生150ms的等待时间,512字节每秒6.66块相当于3.4 KBps,或者27.3 Kbps是最大理论吞吐量,同样无论带宽如何和其他因素。

这里使用的公式是理论最大吞吐量= 1秒/块之间的延迟*块大小。

关于该主题的一个很好的阅读与TCP有关,如下所示。

http://bradhedlund.com/2008/12/19/how-to-calculate-tcp-throughput-for-long-distance-links/

通过WAN链接使用繁琐协议导致吞吐量降低的方式的另一个很好的例证是SMB aka Samba aka CIFS aka Windows File Transfer。这是使用旧Windows网络的VPN环境中的常见问题。