在源主机向目的主机发送IP数据报时,要先判断是否在同一子网内,将目的主机IP地址与源主机的子网掩码进行 与 运算,得到网络地址,再将源主机IP地址与源主机的子网掩码做 与 运算,得到另一个网络地址,最后,将两个网络地址进行对比,若一致,则在同一子网内,若不一致,则不在同一子网。
我在网上查找的时候,看到另一种判断方法,将源主机IP地址与自身的子网掩码进行 与 运算,再将目的IP地址与目的主机的子网掩码做 与 运算,对比两个计算后的结果,一致为同一子网,不一致为不同子网。
如果上述说的没问题的话,那么,我想问的是,比如说,源IP地址是172.16.175.211,子网掩码是255.255.255.0,目的IP地址是172.16.175.123,目的主机子网掩码是255.255.0.0, 源主机的子网掩码和目的IP地址 与 运算后,得到172.16.175.0,源IP与源子网掩码做 与 运算后,也得到172.16.175.0,可以判断为同一子网,但按照分别做 与 运算的方法来看,源IP地址与源主机的子网掩码做 与 运算后为172.16.175.0,目的IP地址与目的主机的子网掩码做 与 运算后为172.16.0.0,并不一致,是用分别计算来判定同一子网的方法不对还是说目的子网掩码设置为255.255.0.0是有问题的?还是因为255.255.0.0的主机位大于255.255.255.0的主机位,所以是包含的关系?这两个IP到底是不是在同一子网内?但我用远程连接目的主机(如上述的源主机去远程连接目的主机)时还是可以连上的,我想是因为在不同网段,而通过默认网关发送分组而连接上的?
希望大神们不吝赐教!!! 万分感谢