往返次数

时间:2015-02-03 15:41:38

标签: network-protocols

我遇到了这个公式,用于查找从A站向B站发送文件所需的往返次数   没有。 RTT' s = log(filesize)+1

任何人都可以澄清这个公式吗?我的意思是它是一个正确的公式吗?这个公式来自哪里?

1 个答案:

答案 0 :(得分:0)

我认为这绝不是准确的,你无法预测RTT的确切数量,只有完美的情况,你需要考虑各种变量。我认为它指的是复杂性,即O(log(filesize))。也许您可以参考TCP算法来避免缓慢启动拥塞。

算法慢启动拥塞避免设计用于节点响应网络拥塞并帮助解决它,同时尽可能快地使用最大可能带宽。需要权衡这两种需求。

作为一种快速而简单的解释,当节点发送数据时,在TCP中,它将发送一个段并等待另一个节点发送ACK,然后它将使发送的TCP段数加倍而不接收ACK。它将发送2个段,当收到ACK时,它发送4个段而不是ACK。它将以指数公式发送1,2,4,8 ...直到发生超时(没有收到ACK)。

假设没有ACK,RTT的数量将是O(log(filesize))。考虑到1500个八位字节的MTU(最大传输单元),对于IP和TCP报头具有40个字节,最大段大小将是1460个八位字节(字节)。如果文件是14600字节,则转移的往返次数将大致为4而不考虑三次握手的往返并且不考虑连接关闭。这个,如果没有超时。

关于时间,您还需要考虑传输时间以及其他考虑因素。我的解释不包括更复杂的情况,如延迟确认,不同的初始拥塞窗口,慢速服务器等等。