为什么到特定 IP 的跟踪路由与从该 IP 到我的跟踪路由不同?

网络工程 联网 跟踪路由
2022-02-20 01:45:13

所以我正在运行从http://www.speedtest.com.sg/tr.php到我的系统的跟踪路由。我得到了一条路线。我从我的系统到上面的网站运行了一条跟踪路线,我得到了一条不同的路线。这是为什么?为什么不走同样的路?如果您观察正向和反向路径之间的公共路由器,我们是否也观察到相同的 IP 地址?为什么或者为什么不?

这是一项网络任务,我在抨击我的头,因为我不明白这是如何工作的。

3个回答

这是非对称路由,很常见。

这是因为每个路由器对下一跳(即,它将向其发送数据包的路由器)做出自己的决定,并且不关心(实际上不知道)另一个数据包在同一转换中所采用的路径。

您是否曾经使用 GPS 去某个地方并进行反向路径,它为您带来了 2 次旅行的不同路径?还是因为事故或交通拥堵,同一条路径在不同的日子选择不同的路径?

这是同一个概念:现在为这个特定的数据包选择最好的(已知的)路径,它是数据包交换网络(互联网建立在其上)的一个基本特征。

请注意,GPS 系统和网络路由之间有一个重要区别:GPS 在启动时构建整个路径,然后进行自适应,而每个路由器只选择下一跳(结点),并且不预先知道完整路径。

所以我正在运行从http://www.speedtest.com.sg/tr.php到我的系统的跟踪路由。我得到了一条路线。我从我的系统到上面的网站运行了一条跟踪路线,我得到了一条不同的路线。这是为什么?为什么不走同样的路?

因为路由是一个分布式过程,每个路由器都会根据它所拥有的信息、互联网路由的默认规则(使用最短的 AS 路径,如果 AS 路径长度相同,则使用最近的出口)自行决定使用什么路径) 及其所有者设置的规则(例如,路由器所有者可能更喜欢将流量发送到对等方而不是上游)。

如果您观察正向和反向路径之间的公共路由器,我们是否也观察到相同的 IP 地址?为什么或者为什么不?

通常没有。

几乎所有路由器都会有多个 IP 地址,通常它们会有与每个接口相关联的 IP 地址。大多数主要路由器也将有一个“环回”接口,代表整个路由器。

用于生成 ICMP 错误的 IP 地址的策略各不相同,一些实现可能使用接收数据包的接口,一些可能使用发送错误的接口,一些可能使用路由器的环回 ip。

Traceroute 不显示路径中的网关。它显示了这些网关用来发送超时消息的任何接口。该接口应该是面向发送者的接口(这是最常见的,也是您所期望的),但它也可能是完全不同的接口,甚至是内部环回接口。

即使网关完全相同,从不同端跟踪相同路径也会显示完全不同的 IP 地址。如果没有所涉及的基础设施的详细知识,您只能对正在发生的事情做出一些有根据的猜测。

此外,正如 JFL 所指出的,当路由不对称时,每个方向都可以使用完全不同的路径。