但行好事,莫问前程
在IP的世界里,掩码是个很重要的概念,打个不恰当的比喻:IP地址和掩码的关系就像是人和影子的关系,没有掩码的IP是无法正常工作的。
目前通行的IPv4地址是一个32 bit 的整数,在计算机中用一个长整形变量即可表示。取值范围:0~4294967295(2^32-1)。对于人脑来说,无论是使用十进制还是二进制表示这个32 bit 的整数都不是好的方法。因此,IPv4地址通常采用点分十进制表示。下面是同一个IP地址:122.70.156.25的不同表示方法:
点分十进制:122.70.156.25
十进制: 2051447833
二进制: 01111010.01000110.10011100.00011001
显然点分十进制更加容易记忆。
IP地址分为两个部分,即网络地址(也称作“前缀”)和主机地址。这就好像我们的邮政地址,例如:长安街10号,在这个地址中,长安街就相当于IP地址中的网络地址,10号则相当于IP地址中的主机地址,两者加到一起成为明确描述一个地点的地址。
掩码与IP等长,也是32 bit的整数,主要用于区分IP地址中的网络地址和主机地址,从左至右,网络地址的部分为全1,主机地址的部分为全0,然后将IP地址与掩码逐位进行“与”运算,即:1 & 1 = 1,1 & 0 = 0。
公式一:网络地址 = IP地址 & 掩码
公式二:主机地址 = IP地址 – 网络地址
掩码通常使用掩码长度来描述,比如,掩码长度为24则表示掩码:255.255.255.0,原理是每个255都等于二进制的8个连续的1,即:11111111。3个255连在一起,就相当于24个连续的1。同理掩码长度为25则表示掩码:255.255.255.128,前面3个255相当于24个1,紧跟着的128换成二进制是10000000,正好和前面的24个1一起组成25个1。
由此得到:
公式三:网络包含的IP地址数 = 2 ^ (32-掩码长度)
同时IP协议规定,每个网段的最后一个IP地址为该网段的广播地址,即主机地址部分全为1的地址。网络地址与广告地址不能分配给主机使用。
由此得到:
公式四:网络包含的可用(分配)IP地址数 = 2 ^ (32-掩码长度) – 2
套用以上公式,我们得到IP地址:192.168.100.100/255.255.255.0 的网络地址为192.168.100.0,主机地址为100,该网段有2 ^ ( 32 – 24 ) = 2 ^ 8 = 256个IP地址,去掉网络地址和广播地址后,还有可用IP地址 256-2 = 254个。
以上是IP和掩码的基本概念,下面是如何通过掩码来控制和划分子网,这也是IP规划的精髓所在…