ISSN 1009-3044 E—mail:info@CCCC.net.ca Computer Knowledge and Technology电脑知识与技术 Vo1.8,No.22,August 2012. http://www.dnzs.net.en Te1:+86—551-5690963 5690964 基于lP地址的子网划分算法研究 朱小艳,梁胜彬 (河南大学软件学院,河南郑州450046) 摘要:子网划分是解决计算网络地址合理分配以及充分利用的一项技术。利用该技术可以减少网络中广播域。根据子网划分原 理,该文研究了子网划分计算算法,算法用c语言在TC2.0编译环进行境下编写,实验结果表明,该算法能有效地实现子网划分。 关键词:子网划分;子网掩码;C语言 中图分类号:TP393 文献标识码:A 文章编号:1009—3044(2012)22—5324—03 Research Based on the IP address subne ̄ing algorithm ZHU Xiao—yah,LIANG Sheng—bin (Software CoUege of Henan University,Zhengzhou 450064,China) Abstract:Subnet partition is a technology which solves the network address allocation and make full use of it.Using this technology can reduce the network broadcast domain.According tO the subnet partition principle,this paper presents a network partitioning algorithm and the algorithm is edited in TC2.0 compiler environment using C language.The result indicates that the algorithm can realize subnet parti— tion effectively. Key words:division of subnet;subnet mask;C language 随着互联 的普及和应用,IP地址资源成为人们考虑的一个重要内容。子网划分是网络工程中必不可少的工作,对网络地址 进行合理划分,能够充分利 和系统管理网络地址。该文所指的子网划分是以TCP/IP网络技术为基础的,实现在第三层协议上,用 于路由器上的地址分配以及虚拟局域网划分。 在子网划分中往往涉及到网络地址的计算,该文所提出的子网划分算法解决了相应的计算问题。该算法针对IP地址进行子网 划分,对于面向从事网络设计、网络管理和网络维护的用户,能够有效的提高网络工程师的工作效率。 1 TCP,IP子网地址分配概述 1.1 TCP,【P寻址基础 1P地址是用于TCP/IP协议中网际层对应于OSI参考模型第三层(网络层)寻址(又称逻辑地址)。该文主要研究IPv4寻址。 IPv4地址长度是32bit,为了便于地址读写,将其分成4个字节(称为8位位组),每个字节之间用句点隔开。将这4组二进制表 示称十进制,这种表示格式称为点分十进制,如:32bit全1的IP地址表示为:255.255.255.255。 IP地址有两个组建:网络号和主机号。网络号对应于网络组件,定义了设备位于网络中的哪个网段;主机组件定义特定网段上 的具体设备。每个网络都又两个保留地址:一个作为网络号,另一个作为定向广播地址(网络中最后一个地址)。 通过网络号将又IP地址分为A、B、c、D、E四类:A类地址前8位为网络地址,后24位为主机地址,B类地址l6位为网络地址,后 16位为主机地址,C类地址前24位为网络地址,后8位为主机地址。网络地址范围如下所示: 种类 A 1.0.0.0到126.0.0.0有效B 128.1.0.0到191.254.0.0有效 网络地址范围 0.0.0.0和127.0.0.0保留 128.0.0.0和191.255.0.0保留 C 192.0.1.0到223.255.254.0有效 192.0.0.0和223.255.255.0保留 D 224.0.0.0到239.255.255.255 用于多点广播 E 240.0.0.0到255.255.255.254 1.2子网划分原理 保留255.255.255.255用于广播 由于A类和B类网络中拥有大量的主机地址:在一个A类网络中最大主机地址数量为224—2,在一个B类网络中最大主机地址 数量为216—2。 然而,在实际应用中一个网段一般为200至500台网络设备,所以在此情况下使用这两类地址就会造成严重的地址浪费,从而 需要将所剩余的地址利用划分出其他较小的网络,这些较小的网络通常称为子网。子网的引入就是为了充分的利用网络地址,并 收稿日期:2012-06—10 作者简介:朱小艳(1977一),女,河南温县人,讲师,硕士,主要研究方向为网络服务质量;梁胜彬(1980-),男,河南郑州人,讲师,硕 士,主要研究方向协同设计。 5324…网络通讯厦安全 本栏目责任编辑:冯蕾 第8卷第22期(2012年8月) Computer Knowledge and Technology电脑知识与技术 且可以高效的使用每类网络的寻址。 1.3子网掩码 在子网划分时,最初RFC950定义了子网掩码。与IP地址类似,子网掩码也长度为32bit。其功能是标志所划分的子网数量和 每个子网网段所包含的主机地址数量,同时区分了在一个子网中的网络地址、主机地址、定向广播地址。 在二进制中,子网掩码比特位中的1表示网络组件,0表示主机组件,所有的网络组件1都是连续的,并且所有的主机组件0也是 连续的。 在引入子网掩码后,一个IP地址有三个部分组成:网络组件、主机组件、子网掩码。通常用点分十进制和建网比特数两种方法 来表示子网掩码。以一个C类网络做为示范上述的两种方法如下: 点分十进制:192.168.0.1 255.255.255.0 建网比特数:192.168.0.1/24 2子网划分算法设计 2.1子网划分原理 该文设计的算法将子网划分分步完成。首先是划分的网络对象,也就是所给定的网段的IP地址,同时也是子网划分的起始 地址;其次是网络中最大网段上确实存在或将要存在的主机数量,设为:Hnum,它决定了每个子网中所容纳主机数量的上确界;最 后是网络中能拥有的最大网段数Nnum。根据用户给出的这三个条件,该算法将按照解决方案合理划分子网,并且满足用户网络需 求。 2.2子网划分算法设计 子网划分算法将分为五步完成: 第l步满足解决条件中的主机和网络需求 本步骤所要完成的工作是判断用户所给的条件是否可以给出合理的子网划分解决方案,并得出后续步骤中用到的两个重要参 数:子网掩码中的主机比特数和子网比特数。为了方便起见该文将子网掩码中的子网比特数设为S;子网掩码中的主机比特数设为 H;该类别(A/B/C)地址中拥有的主机比特总数设为T。 这一步计算出满足解决条件中的主机和网络需求,通过以下三个公式可以得出: ・ S LogzNnum (1) 日 Log2Hnum+2) f21 S+日 T (3) 在公式(1)确定了子网比特数的下界,要满足所划分出来的子网数量要不小于用户设计的网络中的最大子网数量Nnum,而划分 的子网数量为:2。,不等式两边取对数便得到了公式f1)。 公式(2)确定了主机比特数的下界,由于没划分出的一个子网中都会有两个地址作为保留地址用作子网网号和该子网的定向保 留地址,所以划分的每个子网的主机数量为:2H-2,要不小于最大网段上的主机数量Hnum。同理,不等式两边取对数可得公式(2)。 每一类IP地址中最大主机比特数是一定的,如:A类为24bit、B类为16bit、C类为8bit。s是从这些最大子网比特位中所占用的 比特位用于子网划分的,所以公式f3)显然成立。 第2步确定子网掩码 在确定子网掩码时,首先应该先对用户所要计算的对象网络地址判定类别,不同类别的建网比特数是不同的:A类是8个、B类 是l6个、C类是24个。 设子网掩码的建网比特数表示为:Z。则z的值为网络比特数与s之和,计算公式如下: A类:Z=8+S; B类:z=16+S; c类: z=24+ ; 子网掩码是由连续的1和0组成,所以只需计算出子网掩码最后一个非零8位位组的值即可,该值设为F。计算公式为:F:2s 第3步确定网络地址 本步骤目的是要根据上一步计算出的子网掩码来确定划分出的子网的网络地址。 进行子网划分后,每个子网网段都含有相同数量的地址(包括保留地址),程序已经知道了所要划分的IP地址,也就是第一个子 网的网络地址,如果计算出没个子网中地址的数量(以后称增量,设为:I),便可依次推知个子网的网络地址。 计算该增量需要用到子网掩码,计算公式为: ,=256一F 该公式是计算某子网划分后每个子网中的地址总数的简便方法,但是没个子网网段中有效地址数为:J一2。计算每个子网的 网络地址时只需对给定的地址相应的8位位组(十进制形式,设为:P,,i表示第i个子网)进行以I递增操作:P =P +,;直到: P +, 255;停止,则所有子网的网络地址便计算得出。 第4步确定定向广播地址 经过第3步计算出所有子网之后,只需将每个子网的网络号减l便得到了前一个子网的定向广播地址。 第5步确定主机地址 网络地址和定向广播地址之间的所有地址都是主机地址。除去网络地址和定向广播地址,没个自网的主机地址数为: 本栏目责任编辑:冯蕾 网络强讯及安全…5325 Compu ̄r Knowledge and Technology电脑知识与技术 2 ~2 第8卷第22期(2012年8月) 网络号加1,为第一个主机地址,依次按增量递增,直到达到所求主机地址个数。 2。3实例检验 在这里给定一个C类网络,其网络ip地址为:192.168.1.0,设该网络中有4个网段,即Nnum=4,网络中最大网段有50主机,即 Hnum=50。 运行程序,按照上述条件验证算法。首先计算出满足要求的子网掩码为:255.255.255.192。接着得到所划分出的4-4"-网段的网 络地址: 第一个网段192.168.1.0 第二个网段192.168.1.64 第三个网段192.168.1.128 第四个网段192.168.1.192 最后确定出主机组件和定向广播组件 网络地址 192.168.1.0 192.168.1.64 主机地址 192.168.1.0至192.168.1.62 192.168.1.64至192.168.1.126 定向广播地址 192.168.1.63 192.168.1.127 192.168.1.128 192.168.1.192 192.168:1.128至192.168.1.190 192.168.1.192至192.168.1.254 192.168.1.191 192.168.1.255 3结束语 子网划分是网络工程中必不可少的工作,基于对实际网络中子网划分的分析,该文所提出了一种子网划分计算算法,本算法可 用TC编译器编写,操作简单,实用性强,为网络工程师提供了简单易用的计算方法。 参考文献: 【1】谭浩强.C语言程序设计【M】.北京:清华大学出版社,2007. 【2]严蔚敏.数据结构【M].北京:清华大学出版社,2006. 【3]Richard Dea1.CCNA学习指南[M].北京:人民邮电出版社,2009. [4】谢希仁.计算机网络[M】.5版.北京:电子工业出版社,2008. (上接第5323页) 【2]梁文。罗文坚,曹先彬,王煦法.基于生态捕食模型的多目标优化问题求解算法[J].中国科学技术大学学报,2005,35(3) 『3冉敏,3l高随祥,徐葆.一种基于蚁群系统的多约束QoS路由算法【J].计算机工程与屯用,2005,142—144. [4】王正初问慕逊,李军孙宝军.基于人工鱼群算法的水库优化调度研究[J],继电器,2007,35(21). 【5】李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J】.系统工程理论与实践,2002,22:32—38. f6】李晓磊,钱积新.基于分解协调的人工鱼群优化算法研究[J】.电路与系统学报,2003,8(1):126. f71李倩,黄临平.人工鱼算法的重磁位场反演方法fJ]内蒙古石油化工,2010(16). [8]徐飞,何定润,杨俊儒.基于鱼群算法的城市交通仿真『J].微计算机信息,2010(10). 【9】龙鹏飞,张纯,贺亮.基于捕食模型与蚁群算法的多约束QoS路由选择[J].计算机工程与应用,2009(5). 5326…网铬矗讯及安垒 本栏目责任编辑:冯蕾