我有两台计算机位于两个不同的子网:
10.0.3.1/24
和
10.0.4.1/16
两台计算机都没有网关。
因此,10.0.3.1
可以从 到达10.0.3.0-10.0.3.255
并且10.0.4.1
可以从 到达10.0.0.0
。10.0.255.255
这意味着10.0.3.1
无法到达10.0.4.1
,但10.0.4.1
可能可以。我无法测试这一点,并且想知道: 10.0.4.1 和 10.0.3.1 可以通信吗? 10.0.4.1 可以将数据包发送到 10.0.3.1,即使它没有得到回复?
两台计算机通过以太网直接连接。
答案1
该答案仅涉及使用 IP 协议的情况。
当一台计算机需要向另一台计算机发送数据包时,它会使用 IP 地址和子网掩码检查另一台计算机是否位于同一子网。
如果对方在同一个子网上,它会直接将数据包发送给他。
如果对方不在同一子网,它会根据路由表将数据包发送到合适的路由器,这个路由器一般是网关。所以如果没有网关,数据包就无法发送。
在您的示例中,10.0.4.1 可以将数据包发送到另一台主机,即使它没有网关,因为另一台主机位于其子网中。另一台主机将收到它(您可以通过在 10.0.3.1 上运行 Wireshark 等网络嗅探器来检查它)。但不会向 10.0.4.1 发送任何响应,因为从它的角度来看,10.0.3.1 需要网关才能到达位于另一个子网中的该主机。