让我们考虑A(客户端)和B(服务器),其中A从B下载。
从A到B的错误路由会影响下载速度多less?
从A到B的跟踪路由返回的path长度为10跳,往返延迟为300ms。 它也显示了在第四跳时〜10%的数据包丢失。 在正常情况下,A和B之间的平均往返延迟在10ms到30ms之间。
这种影响是否会降低下载速度?或者只要双方和路线有足够的链接,从B的全速A,反之亦然,它应该保持相同的速度?
除了tracert和A到B的ping分析之外,还有什么是用来识别问题的?
如果你需要额外的信息,请让我知道。
这个问题涉及到与各种事情有关的几个问题。 我会尽量按顺序回答,然后提供更详细的解释。
(略微解释一下):
从A到B的跟踪路由返回的path长度为10跳,往返延迟为300ms。 它也显示了在第四跳时〜10%的数据包丢失。 在正常情况下,A和B之间的平均往返延迟在10ms到30ms之间。
按顺序解决这些问题:
关于延迟对下载速度的影响,许多TCP实现被configuration为使用64k字节的接收窗口大小。 当两个主机(更具体地说是一个高带宽延迟产品)之间的高延迟连接时,这个窗口大小通常会限制您的有效吞吐量,因为TCP将停止传输缓冲数据,直到它开始接收已经从远端发送的数据的ACK为止。
编辑:根据您的pingplotterconfiguration如何,它可能不会提供您的连接损失的准确表示。 如果Pingplotter正在使用ICMP,那么在拥塞时networking可能会丢弃/排除此stream量的优先级,因为它不被视为“用户stream量”。 此外,由于上述原因,任何有关中间跳跃损失的数据应视为可疑。
如果可能的话,在主机上运行数据包捕获(例如,可以使用Wireshark完成),以及查看Wireshark中与应用程序正在执行的实际TCP对话有关的分析将会很有趣。
是的,networking连接的高延迟肯定会影响下载速度(如果TCP窗口相当大,将会产生较低的影响,以便源可以发送多个数据包,而无需等待每个数据包被确认)。 而任何重大的数据包丢失都会对性能造成灾难性影响,因为每次丢包时,在TCP重传超时期间,下载都将有效地停止。