回复是否使用与发送 ping 相同的路径?

网络工程 路由 路由器
2021-07-15 03:06:13

从标题上看,这个问题看起来重复,但不是从内容上看!

我的问题是,如果所有具有适当网关的网络在没有静态路由的情况下通过路由器在单个环路中相互连接,如果我发送 ping,则每个路由器和计算机都会按顺时针方向分配下一个路由器的 IP 作为默认网关从PC1(192.168.111.55)到192.168.3.x网络中的计算机(见图)然后在我的理解中ping应该通过Router-A然后Router-B然后Router-C最后到达指定的计算机IP . 现在再次按照我的理解(在这个最简单的配置中)被 ping 的计算机只会知道 192.168.2.254 已经 ping 它,但实际上 ping 来自 PC1 所以回复(回声)应该回到路由器-C 然后是路由器-B然后路由器-A,最后到原始计算机PC1。所以这里的回复路径必须与 ping 路径相同,但这是我对路由器功能的理解(路由器转换 IP 并像中间人一样工作,因此目标计算机不知道 ping 实际上只是来自一个路由器向右)。但是很多人说回复的路径可能不同,这让我发疯,因为我不明白目标 PC 是如何知道 PC1 的(除非在消息包中说明)。

有人可以帮我澄清一下,如果我是正确的,除非一些特殊的手动配置,否则回复路径将与 ping 路径相同。或者回复路径怎么可能不同?

如果您能更清楚地说明问题,请随时编辑问题。谢谢。

注意:我从HERE 中获取了以下图片,作者声称回复可以遵循我不理解的 Router-D 的路径。(是的,如果来自网络 3 的计算机 ping PC1 那么,当然,ping 路径应该是 Router-D 否则它怎么知道 PC1 的 IP)。

在此处输入图片说明

3个回答

为了清楚起见,当您说“每个路由器和计算机都分配了顺时针方向的下一个路由器的IP作为默认网关”时,这绝对是静态路由。

你的电脑192.168.3.10的ping回复肯定会去D。IP栈拿到包时的基本路由算法是

  1. 是给我的吗?如果是这样我处理它。
  2. 它是用于直接连接到我的任何接口的东西吗?如果是,直接发送
  3. 我有路线吗?如果是,将其发送到下一跳。

计算机 192.168.3.10出于任何原因数据包发送到 192.168.111.55会将其发送到 3.10 的默认门 192.168.3.1。“任何原因”包括“人类告诉我”(ping)和“我正在回答某事”(ping 回复)。

路由器完全不记得从一个数据包到下一个数据包的路由的想法同时是互联网协议的核心思想,而且实现起来有些昂贵。这意味着路由可以在一个数据包和下一个数据包之间更改,并且一切都会自行解决。如果路由器把东西从哪里送回来,想想数据包到达后路由立即发生变化的情况。路由器应该遵循自己的新规则还是旧规则?IP的简单性就在这里:始终遵循自己的转发规则,永远不要记住任何事情

(之前的声明受到关于复杂路由协议、以太网交换和各种特殊情况复杂性的警告。基本情况就是这样简单。)

希望那些对你有帮助。

乔纳森。

ping 回显请求及其回复遵循它们穿过的主机和路由器上的当前路由。因此,绝对有可能每个人都遵循不同的路线 - 取决于您想要实现的具体目标,使用非对称路由可能被某些人视为不好的做法。

是的 !当 ICMP 流量从源向目标发起时。前向和反向流量的空闲路径取决于路由方法。

  1. 对称路由

如果配置了对称路由,则前向和反向流量都采用相同的路径。

  1. 非对称路由

如果配置了非对称路由,则前向和反向流量都采用不同的路径。