子网的划分,实际上就是设计子网掩码的过程。子网掩码主要是用来区分IP地址中的网络ID和主机ID,它用来屏蔽IP地址的一部分,从IP地址中分离出网络ID和主机ID.子网掩码是由4个十进制数组成的数值"中间用""分隔,如255.255.255.0。若将它写成二进制的形式为:11111111.11111111.11111111.00000000,其中为"1"的位分离出网络ID,"0"的位分离出主机ID,也就是通过将IP地址与子网掩码进行""逻辑操作,得出网络号。
  例如,假设IP地址为192.160.4.1,子网掩码为255.255.255.0,则网络ID192.160.4.0,主机ID为<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0.0.0.1。计算机网络ID的不同,则说明他们不在同一个物理子网内,需通过路由器转发才能进行数据交换。
  每类地址具有默认的子网掩码:对于A类为255.0.0.0,对于B类为255.255.0.0,对于C类为255.255.255.0。除了使用上述的表示方法之外,还有使用于网掩码中"1"的位数来表示的,在默认情况下,A类地址为8位,B类地址为16位,C类地址为24位。例如,A类的某个地址为 12.10.10.3/8,这里的最后一个"8"说明该地址的子网掩码为8位,而199.42.26.0/28表示网络199.42.260的子网掩码位数有28位。

  如果希望在一个网络中建立子网,就要在这个默认的于网掩码中加入一些位,它减少了用于主机地址的位数。加入到掩码中的位数决定了可以配置的于网。因而,在一个划分了子网的网络中,每个地址包含一个网络地址、一个子网位数和一个主机地址,如图1所示。

  在图1中,子网位来自主机地址的最高相邻位,并从一个8位的位组边界开始,因为默认的子网掩码总是在8位位组的边界处结束。随着主机位中加入于网位的增加,我们可以从左到右计数,并用和它们位置相关的值。将它们转换为十进制。

  图1<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
   
  从每个主机位加入的子网位中,得到子网的对应十进制数,总结在表1
1
   
 下面举例说明,使用没有子网的子网掩码和使用于网的子网掩码的区别。若有二个BIP地址172.16.2.160,其默认的子网掩码是255.255.0.0,则完成下面任务。若不使用子网,即只使用默认的子网掩码,其运算过程如图2所示。若使用8位子网位,则其运算过程如图3所示。

  注意:在图3中,使用了8位子网位,其子网掩码值从默认的255.255.0.0转变为255.255.255.0,从而使逻辑""之后的网络号发生了变化。 
  图2
   

  图3

子网掩码的简便算法

   
举例说明该算法。
  例:给定一 class c address : 192.168.5.0 ,要求划分20个子网,每个子网5 个主机。

  解:因为4 <5 < 8 ,用2568248 ――>即是所求的子网掩码,对应的子网数也就出来了。这是针对C类地址。老师也只讲了针对C类地址的做法。下面是我自己推出来的针对B类地址的做法。
  对于B类地址,假如主机数小于或等于254,与C类地址算法相同。对于主机数大于254的,如需主机 700台,50个子网(相当大了),512 < 700< 1024 
    256
-(1024/256=2564252 ――>即是所求的子网掩码,对应的子网数也就出来了。
  上面2564中的422次幂)是指主机数用2进制表示时超过8位的位数,即超过2位,掩码为剩余的前6位,即子网数为26)-262