通过按位AND来确定具有不同掩码的两个IP地址段是否足够?

我读了有关主机如何相互沟通的规则。 比方说hostA和hostB。 hostA通过按位获取自己的networkingID,以及它的IP地址和掩码,然后通过按位和hostB的IP地址和hostA的掩码获取hostB的networkingID。 如果结果相同,则它们在同一网段。

假设hostA不知道hostB的MAC地址:如果它们在同一个网段,hostA发送ARP请求到交换机,最后得到hostB的MAC地址; 如果不在同一个网段内,则主机A使用网关MAC地址作为目的MAC地址,使用主机B的IP地址作为目的IP地址,并发送给网关。 这是如何工作的。

我可以理解,当两个主机的IP地址是192.168.1.1/24和192.168.1.2/24。 但是,当他们如下所示时发生了什么?

如果hostA为192.168.0.1/16,hostB为192.168.1.1/24,则hostA会获得自己的networkingID:

192.168.0.1 & 255.255.0.0 -> 192.168.0.0 

那么hostA获得hostB的networkingID:

 192.168.1.1 & 255.255.0.0 -> 192.168.0.0 

所以hostA认为他们在同一个细分市场。 但是对于hostB,hostB获取自己的networkingID:

 192.168.1.1 & 255.255.255.0 -> 192.168.1.0 

那么hostB获取主机A的networkingID:

 192.168.0.1 & 255.255.255.0 -> 192.168.0.0 

所以hostB认为hostA位于不同的网段。

他们在这种情况下如何沟通? 例如,他们不知道对方的MAC地址,hostA用一种方法findhostB,而hostB用另一种方式findhostA?

谢谢,

它和你所描述的一样。 HostA会认为HostB在同一个网段,HostB的MAC地址也是如此。 它不会得到所涉及的路由器。

当HostB发起对话时,可能会发现HostA位于不同的网段,并将其stream量发送给路由器,路由器可能会将其传递给它,但这并不重要,因为当HostA尝试回复时,它将再次相信HostB与MAC地址在同一个网段,ARP。

简而言之,IP寻址scheme不能工作,其中一个部分需要改变。 更改HostA在192.168.0.0/24上的网段ID将起作用。