答案1
您的主机之间并不直接相连,它们连接到充当网关的路由器。
当您有数据要发送时,您首先将其发送到路由器,路由器会指定 IP 地址作为数据必须遵循的目的地。
然后,如果数据的目的地不是同一个本地网络和外部网络,路由器会检查其路由表,并根据该表中的条目,将数据从指向该网络地址的接口转发出去。
如果数据的目的地是同一个本地网络,路由器会将其转发到另一台主机。
除非您处于本地网络中,否则数据无法在不被路由器拦截的情况下直接在两个主机之间传输。
为什么会发生这种情况?因为当你的网络配置了路由器时,所有主机都会获得一个默认网关路由,它们会自动将所有数据发送到该路线所规定的地点。但是,如果这条路线不太具体或者不存在,那么主机将使用其地址解析协议表将数据直接发送到另一台主机(如果在本地网络中并且直接连接)。
笔记:SSH 不是直接的两个主机之间的连接。路由器仍会转发通过 SSH 连接发送的任何数据。直接的连接是指直接的 身体的 联系,因此数据始终被路由器“引导”。
也可以看看:
发送到同一子网的数据包会通过路由器吗?@ superuser.com
关于路由工作原理的更深入的指南
OSI 模型@维基百科