形如
10.88.0.0/18
表示的IP网段是多少到多少?
子网掩码是由32位二进制数构成,它的唯一作用就是用来划分子网。通过它的标识,将IP地址前后分为网络部分与主机部分。因为计算机是以二进制方式处理数据的,我们需要先将传统的子网掩码转换为二进制研究。根据RFC950定义,子网掩码的32位的2进制数。对应网络地址的所有位都置为1,对应于主机地址的所有位置都为0。因此,构成子网掩码网络位的1和主机位的0必须分别连续。子网掩码告诉路由器,IP地址的哪一部分是网络地址,哪一部分是主机地址,使路由器能够判断任意IP地址是否属于本网段,从而正确地进行路由。
为表示方便,人们(据说最开始是CISCO)会使用 /XX
的方式表示子网掩码中标识网络位的1的数量,数字最大值是32;通常,人们也会像IP一样将其分成四组8位二进制数,然后分别转换成十进制中间用 .
连接成类似 XXX.XXX.XXX.XXX
这样的形式,其每个数的最大值是 255
。/32
和 255.255.255.255
表示IP范围是其本身。
如果子网掩码是 /18
,将其每8位分成一组,拆分后可得8+8+2+0=18
。以二进制表示为:
11111111.11111111.11000000.00000000
二进制转十进制按权展开,稍有常识的人都会知道,8个二进制的1转成十进制是255
,而11000000
则是192
。计算的话就是这样 , ,最后结果得到子网掩码为 255.255.192.0
。
IP地址和子网掩码长度一样,也是32位二进制数,当然它不要求0、1分别连续。子网掩码可以理解为掩住IP地址的码字。IP地址中被掩住的部分称为网络部分,剩下的部分称为主机部分。假设IP范围写做 10.88.0.0/18
,如果IP的高18位被掩住(固定)作为网络部分,剩下的低14位就是可以变化的主机部分。
我们可以直接分别使用 255
减去上面子网掩码每组的数值得到变化范围;也可以将低14位拆分成 0+0+6+8=14
,代入 算得四部分大小为 0.0.63.255
。该值与最初的IP相加,即可得到变化范围的最大值为 10.88.63.255
,而最小值是最初的IP 10.88.0.0
。而IP协议规定,主机部分全部是0表示这个子网的网络号,主机部分全部是1表这个子网的广播地址,所以这两个地址不可用。最终得到可用IP范围是: 10.88.0.1 ~ 10.88.63.254
。