在物理链路通的情况下,如下的两台设备是否可以直接通信?
设备1及设备2均为C类地址,如果只从IP地址看,这两个地址好像是属于同一个网络,我们知道,同一个网络的设备是可以直接通信的,不需要网关的支持。
但是,上述两个地址,是否真的属于同一个网络?C类地址的网络号是24位,主机号是8位;从这个标准看,上述两个地址确实是同一个网络啊。不错,确实是属于同一个大的网络。但是,网络中还有子网的概念。
子网是从每类的网络地址的主机部分拿出一定数量的位数,用该位数标识子网号,从而将每类的IP网络进一步分成更小的网络。
RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位置都为1,对应于主机地址的所有位置都为0。
A类网络的默认子网掩码是255.0.0.0,B类网络的默认子网掩码是255.255.0.0,C类网络的默认子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
通过IP地址及子网掩码可以确定其网络标识:IP & 子网掩码
对于设备1,其网络标识为:192.168.26.0(11000000.10101000.00011010.00000000)
对于设备2,其网络标识为:192.168.26.64(11000000.10101000.00011010.01000000)
二者计算的网络标识并不相同,说明二者不在同一个子网,不能直接进行通信,需要网关的支持。
体外话:如何计算主机标识?
将子网掩码取反,并与IP地址做“与”运算
对于设备1,其主机标识为:0.0.0.129
对于设备2:其主机标识为:0.0.0.9
参考资料
1. 《Wireshark网络分析就这么简单》