阅读上篇博文我们应该对IP有一定了解了,今天我们将学习一下子网掩码。我们现在讨论的都是固定长度的子网掩码(FLSM),以后再讨论可变长度的子网掩码(VLSM)。
   子网掩码它不能单独使用,必须和IP结合使用才有意义。子网掩码也是32位,每类IP都有个默认的子网掩码,对于A类为255.0.0.0,对于B类为255.255.0.0,对于C类为255.255.255.0。对于子网掩码的作用是非常大的,路由器在寻址时就是根据子网掩码中1的个数来判定目的主机是否与源主机处于同一个网络,而其中0的个数就决定了划分的子网中所能容纳的主机台数。如对于C类默认的子网掩码所能容纳的最大主机为256台,但真正能用的只用254,除掉一个子网标识地址和一个广播地址。所以子网掩码的作用之一就是标识IP地址中的网络ID和主机ID。子网掩码的另外一个作用就是节约了IP地址,按照有关机构的计算我们用的IPV4在94年就会枯竭,但16年过去了,我们用的还是IPV4,这里子网掩码也起到了一定的作用,因为没有哪个单位会愿意仅仅有一个子网,我们打个比方有个单位现在有3个子网,每个子网只有20台电脑,如果我们不划分子网,那将要花掉775个IP,而实际用到的仅为60个IP,这将造成多大的浪费。如果我们将它划分成三个子网,比如我们这里的子网掩码设定为255.255.255.224,这样我们就只浪费30个IP,相比前面不用子网掩码节约了很多IP。那么如何来确定子网掩码呢。我们下面就提供几种方法。
     定义子网掩码的步骤为:
  A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为C类IP地址,网络标识为“210.73.a”,主机标识为“.b”。
  B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为“1”(即把第四字节的最后四位作为主机位,其实在这里有个简单的规律,非网络位的前几位置1原网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第四个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。
  C、把对应初始网络的各个位都置为“1”,即前三个字节都置为“1”,第四个字节低四位置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11111111.11110000”
  D、把这个数转化为间断十进制形式为:“255.255.255.240”
  这个数为该网络的子网掩码。
  一、利用子网数来计算
  在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
  1)将子网数目转化为二进制来表示
  2)取得该二进制的位数,为 N
  3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。
  如欲将B类IP地址168.195.0.0划分成27个子网:
  1)27=11011
  2)该二进制为五位数,N = 5
  3)将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0
  即为划分成 27个子网的B类IP地址 168.195.0.0的子网掩码。
  二、利用主机数来计算
  1)将主机数目转化为二进制来表示
  2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为 N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。
  3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
  如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
  1) 700=1010111100
  2)该二进制为十位数,N = 10
  3)将该B类地址的子网掩码255.255.0.0的主机地址全部置 1,得到255.255.255.255
  然后再从后向前将后 10位置0,即为: 11111111.11111111.11111100.00000000
  即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码。