按IP协议的子网标准规定,每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网络部分和子网掩码号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。
例如二进制位模式:11111111 11111111 11111111 00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如C类地址子网掩码(11111111 11111111 11111111 00000000)为:255.255.255.0。
IP协议关于子网掩码的定义提供一定的灵活性,允许子网掩码中的 “0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难。并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码,像255.255.255.64和255.255.255.160等一类的子网掩码不推荐使用。
所以,一般可用来使用的掩码数值就只有以下了:
256-(128 64 32 16 8 4 2 1)=128,192,224,240,248,252,254,255。
这里面的(1 2 4 8 16 32 64 128)是我们的8个不同位数的1所计算出来的数值,可以用来作为主机数区间,意思就是,如果你需要60个IP,那么你就必须选择32-64的区间,那么掩码就是256-64=192,就是8+8+8+2=26位掩码了,即前24位+192的(11 00 0000 )的2位1。
关于位数的计算有个简单的方法,通过按照下面的排列来计算:
128 64 32 16 8 4 2 1
192就是128+64,那么就是2位1了咯,同样224=128+64+32,所以224就是3位1了咯,依次推理240就是4位1了