通过 SSH 传输数据的路线似乎很奇怪

通过 SSH 传输数据的路线似乎很奇怪

我注意到的是,通过 SSH 传输的数据包首先到达路由器,然后路由器将它们传输到目标主机。

但为什么呢?为什么不直接通过两个主机之间的 MAC 地址传输数据呢?

我通过Wireshark捕获了一些数据包作为示例:

捕获源主机数据包 捕获目标主机数据包

笔记IETF-VRRP-VRID_02是路由器的描述。

答案1

您的主机之间并不直接相连,它们连接到充当网关的路由器。
当您有数据要发送时,您首先将其发送到路由器,路由器会指定 IP 地址作为数据必须遵循的目的地。
然后,如果数据的目的地不是同一个本地网络和外部网络,路由器会检查其路由表,并根据该表中的条目,将数据从指向该网络地址的接口转发出去。
如果数据的目的地是同一个本地网络,路由器会将其转发到另一台主机。

除非您处于本地网络中,否则数据无法在不被路由器拦截的情况下直接在两个主机之间传输。
为什么会发生这种情况?因为当你的网络配置了路由器时,所有主机都会获得一个默认网关路由,它们会自动将所有数据发送到该路线所规定的地点。但是,如果这条路线不太具体或者不存在,那么主机将使用其地址解析协议表将数据直接发送到另一台主机(如果在本地网络中并且直接连接)。

笔记:SSH 不是直接的两个主机之间的连接。路由器仍会转发通过 SSH 连接发送的任何数据。直接的连接是指直接的 身体的 联系,因此数据始终被路由器“引导”。

也可以看看:

发送到同一子网的数据包会通过路由器吗?@ superuser.com
关于路由工作原理的更深入的指南
OSI 模型@维基百科

相关内容