王伟
摘要:子网掩码用来区分IP地址中的网络号和主机号并将网络划分为几个更小的子网。用子网掩码划分子网可提高地址的利用率,提高传输率并防止数据传输错误。该文对子网掩码的计算和子网划分的方法进行了分析探讨。
关键词:局域网;子网掩码;划分研究
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)01-0024-02
互联网地址中的A、B、C三类用于表示Host。A类总计有126个A类网络,每个网络有254台Host,且这些Host都在同一广播域。众多Host位于同一广播域时的相互干扰很严重,大量数据包会使得通信能力饱和甚至导致网络瘫痪,造成多数IP由于不能分配出去而浪费。Internet的迅猛发展使得IP资源趋向枯竭,为有效利用IP并将广播范围变小,同时充分利用Host地址中的每一位,通常把基于A、B、C类的IP网络细分成更多子网。每个子网由Router进行分段并给定划分后该子网的新IP,子网掩码是使用大类的网络地址的Host位计算得出的。划分子网后,用子网掩码将各子网分开,通信时各子网好像真实独立运行的网络一样,这就是子网
掩码的作用[1]。
1子网掩码
1.1子网掩码
RFC950对子网掩码的定义:它是一个用于TCP/IP Network的32位二进制值,它可以辨别IP地址的网络地址部分和主机地址部分。子网掩码由32位的2进制数组成,长度与IP地址相同。子网掩码对应的网络部分的所有2进制位均设为1,其对应Host的所有位均设为0。A、B和C类网络的缺省子网掩码分别是255.0.0.0、255.255.0.0、255.255.255.0[1]。
1.2子网掩码的应用
1.2.1计算主机号和网络号
Subnet mask和IP Address结合在一起才能有效使用,可辨别IP地址的网络号和主机号。例如一个C类地址193.176.136.13,其子网掩码为255.255.255.0,则其网络号和主机号可这样计算:将IP地址和子网掩码均转换成二进制数表达,将这两个二进制数进行AND运算,其结果再转换成十进制数为193.176.136.0,即知该IP的网络号是193.176.136。再将子网掩码按位取反后同这个IP地址进行AND运算,得0.0.0.13,即知该IP地址的主机号为13。
1.2.2判断IP地址的网段归属。
子网掩码可区分任意的主机是否在同一个网络中。将两台主机的IP和子网掩码首先转换成二进制数表示,然后将IP和子网掩码进行AND计算。计算得到的网络号相同,则说明这两台主机属于同一网段,可直接进行通信。例如两台主机的IP分别为196.138.160.32和196.138.160.108,子网掩码都为255.255.255.0,按照上面方法进行运算,结果均为196.138.160.0,即网络号为196.138.160,说明两台主机处于同一网段。
1.3子网掩码设置错误的负面影响
Router可根据Subnet mask来区分IP Address中的网络地址部分和主机地址部分,使Router准确区分IP是否属于某个网段。以两个IP通信为例,Router根据IP和Subnet mask进行AND运算后得到的Network Address来判断数据包的去向。假如Subnet mask计算或者设置有误将会产生如下负面作用[2]:1)子网掩码设置错误,导致处于不同子网的两台主机的IP与该错误子网掩码计算出的网络地址表明两者在同一子网中,则数据将在本网内传递。因两台主机的IP地址并不在同一子网,所以数据包会在本地网内往复传送,最终超时丢弃。数据包无法传输到目标Host,造成数据传输错误并耗费带宽。2)IP地址与有误的Subnet mask进行运算,导致本在同一子网的两台主机被判断为位于不同子网,则数据包会发送给默认网关处理,进行跨网传送,最后数据不能到达目标HOST,且导致网关负载加重和网络传输性能受影响。。
2子网的划分方法
2.1子网划分的方法
子网划分是将IP地址主机位中的一些位用来表示子网,余下部分仍用于表示主机,则IP地址经过划分后由网络号、子网号和主机号三部分组成。用于子网的Host位越多,则子网数也越多,子网中的Host数就越少。网络位全0的网络表示本地网络,因此划分后的子网号部分不能全0,全0表示本地子网;网络位全为1的网络号表示广播地址,所以子网号也不能全1,全1地址用于子网的广播。另外,Host位全0表明本网络,全1表明广播地址,此时子网没有实际可用的Host IP,因此Host位最少是2位。
在子网划分中,将子网掩码和IP地址按位进行AND计算是获得子网地址的主要方法。通常子网划分的方法是[2]:⑴据实际情况确定需要划分的子网数和每个子网容纳的Host数;⑵计算出子网数所需要的二进制位数n以及主机数所需要的二进制位数m;⑶最后对IP基于类的子网掩码的主机地址的前n位设为1,余下的m位设为0,所得为该IP划分子网所需的子网掩码。最后,根据子网掩码进行网络划分即可。
2.2子网划分应用举例
这里举例介绍如何使用扩展的子网掩码来进行子网划分。例如,某公司有5个位于不同地点的部门,业务需要每个部门都要建立自己的子网。各部门依次为甲、乙、丙、丁、戊,各部门Host数量分别为20、28、36、48、52。现公司申请一个C类IP地址192.168.58.0,请根据各部门情况为其设置子网掩码。分析:C类IP地址的默认子网掩码是255.255.255.0,利用192.168.58.0产生出其他IP地址,关键在于如何利用好第4个字节。要划分5个子网,子网的网络标识位至少要能表达5种可用的子网。若标识位有3位,除过全为0和全为1的形式,还余23-2=6种即能划分为6个子网;其余5位表示主机位,各个子网容纳的Host最多为25-2=30台。若将原来的主机位拿出3位来划分子网,部门甲、乙的子网掩码就设为11111111.11111111.11111111 11100000,即255.255.255.224,从划分的6个子网中任选2个子网分配给部门甲、乙就可满足要求。对于部门丙、丁、戊其主机数大于30,只有增加主机的位数才能满足其要求。如果用后6位表示主机位,最多可有26-2=62台主机,完全满足需要。此时可以表示的子网数只有22-2=2个,只能满足2个部门的需要。我们这里先将其分配给部门丙、丁,丙、丁的子网掩码即为:11111111.11111111.11111111.11000000即十进制255.255.255.192。具体分配如下,丙的子网192.168.58.65-192.168.58.126;丁的子网:192.168.58.129-192.168.58.190。对于部门戊可以再申请一个C类IP地址。总结:如果分别为5个部门申请5个C类IP,不仅会造成IP地址的浪费,而且也会增加公司的经济开销。利用扩展子网掩码就可以派生出更多子网解决此类问题。
3 Subnet mask计算结果的选择与Subnet划分
依前述划分方法,可利用Subnet数或Host数计算子网掩码,方法不同则结果不同,依据子网掩码划分后的子网数和每个子网的Host数也不同,应用效果也不同,这里对这个问题进行探讨。
3.1根据子网数来计算子网掩码[3]
在求子网掩码之前应先明确需要的Subnet数及每个子网内的Host数。用子网数计算子网掩码的步骤:①将子网数转化为二进制表示;②取得该二进制数的位数,为n;③取得该IP地址的类子网掩码,将其主机地址部分的前n位置1即得到该IP划分子网时的子网掩码。举例说明:若给定B类网络191.63.0.0/16要划分为9个最大能容纳180台主机的子网。由于8<9<16,即23<9<24,故子网号位借用4位主机号的二进制即可得到16个Subnet,满足划分9个Subnet的需求。B类默认子网掩码为255.255.0.0,即1111111.11111111.00000000.00000000,则将Subnet mask后16位0的前4位置为1,即得划分子网后的子网掩码应该为11111111.11111111.11110000.00000000,即255.255.240.0。余下的主机位有12位,即得到212-2=4096个主机地址,完全满足最大主机数180,显然地址浪费严重。
3.2根据主机数来计算子网掩码[3]
步骤:①将Host数转化为二进制表示;②若Host数<=254(去掉IP全0和全1的),则取得该Host的二进制位数为m, m<8,若>=254,则m>8,即Host地址将占不止8位;③使用255.255.255.255来将该类IP的Host Address位全置1,然后从后向前地将m位全置为0,即得子网掩码。继续前例研究,128<180<256,即27<200<28,即可知从16位的主机位中取出8位即可满足要求,其余8位可作为子网位,此时有28-2=254个子网,也能满足子网数要求,即知Subnet mask为255.255.255.0。
上面分别使用子网数和Host数进行子网划分得到了两种不同结果,均符合要求。在实际子网划分时要考虑需要的子网数以及每个子网容纳的Host数;另外,不仅要着眼当前还要预测未来。若子网掩码占用较多Host位,可获得较多子网数并节约了IP,未来再要子网则不必重新分配IP,但子网内的Host会较少;若Subnet mask占用较少的Host位,单个子网中Host会很多,子网数则有限。通常网络中Host太多会因为广播通信多而饱和,因此Host增加是有限的,应将较多的Host位用于子网[4]。
子网掩码不能随意设定。若Subnet mask过大,子网的地址范围会很大,据寻径规则,源Host可能将与其不在同一子网的目的Host误判为在同一子网中,将数据在本子网内往复传送直至超时被弃,数据不能送达目的Host。若Subnet mask较小,则子网内Host会较少,此时本应在同一网段的数据通信会被误判为在不同网段间的传输,数据都发到默认网关处理,网关负载会很重并导致传输效率降低。因此,子网掩码的选择和子网划分应综合考虑网络的规模和应用效果来决定而不只依靠计算的结果。
4结束语
综上,子网掩码决定划分的子网数和每个子网中的Host数。若子网掩码设置不当,数据传输就会出错,网络传输性能下降且导致IP地址浪费。只有根据具体问题,确定合理的子网数和Host数才能计算选择出合适的子网掩码并进行合理的子网划分。
参考文献:
[1]龙根炳.IP地址的设计与应用[J].铜仁职业技术学院学报,2007(3).
[2]罗东.解析IP地址原理及应用[J].重庆文理学院学报(自然科学版),2007(4).
[3]周丽娟.浅谈子网掩码与子网划分[J].山西财经大学学报,2007(1).