子网掩码将ip地址转换为网络地址和主机地址,利用子网掩码将将较大的网络分成子网,即可变长子网掩码。
子网掩码长度32位,左边是网络位,用1表示,1的数目即为网络位的长度,右边为主机位,用0表示,0的数目就是主机位的长度。(从左到右,从右到左)
通过让掩码与ip地址按位与,用0遮住原主机位,而网络段数字不变。
主机位数字为0和全部为1为特殊地址,全部为0表示这个地址就是网络的网络号,全部为1表示该网络的广播地址。
子网掩码对于ip地址是否在一个子网中的验证是:将两个地址分别与子网掩码按位与,若得到的结果相同,则在同一个子网内。
这里就可以发现子网掩码的目的,使用子网掩码主机位的0将主机位屏蔽,而比较的是网络位与1的按位与结果,其实就是网络位,所以比较了两个地址是否在同一个子网内。
根据子网数计算子网掩码:
将子网数转换为二进制,如20,转换为32,即5位的二进制数,所以在原来网络位的基础上再加上这些数量的1即可,如在c类地址上,要有子网数20,则其子网数量的二进制为5位,则可以得到子网掩码为 11111111 11111111 11111111 11111000。
根据子网中主机数量计算:
将子网中的主机数量转为2进制,如30台主机,则其主机数量为5位的二进制,然后在全是1的地址上的最右边加上这些数量的0,即可获得子网掩码,在主机30台的情况下为5个0,则有子网掩码为11111111 11111111 11111111 11100000。