考虑停止和等待协议,吞吐量会受到怎样的影响



如果我们考虑停止和等待协议,吞吐量会受到怎样的影响。我假设停止和等待会增加自己的数据传输延迟。有没有同样的数学方程式?

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

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

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

现在考虑一个场景,其中 ping 时间为 50 毫秒,因此块传输之间发生 150 毫秒的等待时间,每秒 6.66 个块的 512 字节相当于 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(又名Samba)又名CIFS,又名Windows文件传输。这是使用较旧 Windows 网络的 VPN 环境中的常见问题。

"数学方程式"是"延迟=延迟+wait_time"。我自己称之为三年级算术。

最新更新