如何估计哪个网络目的地结果是更短/更快的网络路径?

如何估计哪个网络目的地结果是更短/更快的网络路径?

我正在编写一个程序,允许用户提供主机名或 IP 列表,然后我将找出哪个主机连接速度更快并连接到它。

就在我输入标题中的问题时,我认为 ping 可能是可行的,但由于并非所有主机都会响应 ping,我还可以使用哪些其他方法?

有很多网站可以计算两个 IP 之间的距离,它们是如何工作的?

答案1

网络距离以跳数来衡量。像 这样的工具traceroute会发送具有不同 TTL 值的 ICMP 数据包。每当它被另一跳(路由器)转发时,TTL 值就会减少。当 TTL 达到零时,发送者会收到另一个 ICMP 数据包的通知(超时错误)。看看这一页

另一种选择是测量两个节点之间的延迟。这在很大程度上取决于所使用的协议,并且由于多种原因,并非所有协议都会给出相同的结果。例如,不同的协议没有相同的优先级。此外,不同的协议具有不同的连接性质(无连接与面向连接)等等。

答案2

我认为你绕了一大圈才解决问题。如果你要获取用户提供的 IP 列表,然后找出哪个 IP 的延迟最低,那么你必须决定要使用这些主机上的哪些服务。我猜是 Ping,但正如你所指出的,它们可能不会对此做出响应。那么它们对什么做出响应呢?HTTP?然后计时。

相关内容