为什么连接服务器所用的时间不同?

为什么连接服务器所用的时间不同?

我有一个小程序,它连接到我选择的服务器并测量连接所用的时间。每次运行它时,它都会返回不同的结果。我的问题是这个时间取决于什么?

一方面是网络拥塞。

如果我选择具有多个地址的服务器(例如 google.com),物理链路的长度可能会不时不同?是否可以安全地假设它也会影响连接时间?

还有其它因素吗?

答案1

您可能想阅读有关互联网的工作原理和分组交换的工作原理,以补充此处的解释。

但是现在,让我们假设事情纯粹发生在您的 PC 与您具有 IP 地址的特定主机服务器之间。

数据包交换的工作方式是“尽力”将数据包发送到目的地。

如果出于某种原因,您的 PC 和服务器之间的交换机/路由器出现问题(流量太大或死机),它会尝试使用不同的路由路由数据包。同一个请求可能最终通过多个不同的路由,只是因为它恰好是“当时”更好的路由。

或者,如果您的数据包到达的路由器/交换机太忙,该路由器将丢弃您的数据包,并向您的 PC 发送确认信息,表明他们已丢弃该数据包。然后,您的 PC 将重新发送数据包,希望它能够到达。(整个过程完全透明,除非您知道自己在做什么/在寻找什么,否则您不会看到它)

不同的物理连接肯定会影响时间的流逝,不仅因为您可能不在最直线的路线上,而且也许直线路线非常拥挤,您可能最终会使用先绕地球的路线更快。

相比之下,想象一下你开车从 A 到 B。同样的行驶速度,同样的道路,由于网络拥堵,最终耗时仍然不同。然后有一天你决定走不同的路。小路、小路、高速公路,随便你怎么说。你可能会更快/更慢地到达——你真的不知道。你可能有一个“平均”时间,但耗时仍然会有所不同。

希望这可以帮助。

答案2

说到网络速度,有很多因素。距离、延迟、带宽、拥塞、路由等。任何一个因素都可能成为瓶颈。然后是设备/服务器本身。它可能因流量过载、忙于处理其他请求等...

相关内容