前提知识:
一个ip地址转成2进制是32位的,如192.168.0.1 每段可以转成8位2进制数,所以ip地址的最大数是255,因为255转成2进制是1111 1111
一个32位的ip地址又分成前xx位是网络地址,后xx位是主机地址,网络地址相同的两台主机可以直接进行通信,
不同网络地址的计算机要通过网关(Gateway)才能互通
一个32位的ip地址又分成A类 B类 C类等地址,一个ip地址属于什么类是根据它转成2进制后最前面的2进制数决定的,如下图所示
可以看到0打头的话是A类,10打头是B类...
一个ip地址的网络地址是包括打头的标识的,如A类地址的默认网络地址位数是8位,
子网掩码解释:
子网掩码是配合ip地址使用的,它的作用就是用来确定它配合的ip地址的前几位是网络地址,如子网掩码是255.0.0.0的话,这个子网掩码转成2进制数就是1111 1111 后面都是0
这里有8个1,就说明它配合的ip地址的前8位是网络地址(即ip地址的第一段是网络地址),其实就是与ip地址做与运算,
所以两个ip地址如192.168.0.1 和192.168.0.2如果子网掩码不同的话如一个是255.0.0.0 一个是255.255.0.0 那么这2个ip地址的网络地址就不同,也即不能直接进行通信,
只有当这2个ip地址的子网掩码都是如255.255.0.0时,这2个ip地址的网络地址才相同,才能直接进行通信,
再如对于一个IP地址段192.168.0.0~192.168.0.255, 如果段内的每个ip地址的子网掩码都是255.255.255.0, 因为最后一段是0,对应的二进制是0000 0000 ,说明没有位数用来划分子网,那么这256台主机就都是一个网段内的,就可以直接进行互相通信,
如果每个ip地址的子网掩码都是255.255.255.128,由于最后一段是128,对应的2进制是1000 0000 ,说明有1位用于划分子网了,可以划分出2的1次方 = 2个子网,
那么每个子网就有256/2 = 128台主机,即192.168.0.0~192.168.0.127是一个网段内的可以直接进行通信,而192.168.0.128~192.168.0.255是另一个网段内的.
同理,如果每个ip地址的子网掩码都是255.255.255.240,由于最后一段240的二进制是1111 0000 说明有4位用于划分子网了,可以划分出2的4次方 = 16个子网,
每个子网有256/16 = 16台主机,即如ip段192.168.0.0~192.168.0.15才是一个子网内的,可以直接进行通信,而192.168.0.16就是另一个子网内的了.
附:子网掩码常用10进制数与对应2进制数对照表
0 0000 0000
128 1000 0000
192 1100 0000
224 1110 0000
240 1111 0000
248 1111 1000
252 1111 1100
254 1111 1110
255 1111 1111