基于IP地址的子网划分算法研究

时间:2022-10-21 11:09:40

基于IP地址的子网划分算法研究

摘要:子网划分是解决计算网络地址合理分配以及充分利用的一项技术。利用该技术可以减少网络中广播域。根据子网划分原理,该文研究了子网划分计算算法,算法用C语言在TC2.0编译环进行境下编写,实验结果表明,该算法能有效地实现子网划分。

关键词:子网划分;子网掩码;C语言

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)22-5324-03

Research Based on the IP address subnetting algorithm

ZHU Xiao-yan , LIANG Sheng-bin

(Software College 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 partition effectively.

Key words: division of subnet; subnet mask; C language

随着互联网的普及和应用,IP地址资源成为人们考虑的一个重要内容。子网划分是网络工程中必不可少的工作,对网络地址进行合理划分,能够充分利用和系统管理网络地址。该文所指的子网划分是以TCP/IP网络技术为基础的,实现在第三层协议上,用于路由器上的地址分配以及虚拟局域网划分。

在子网划分中往往涉及到网络地址的计算,该文所提出的子网划分算法解决了相应的计算问题。该算法针对IP地址进行子网划分,对于面向从事网络设计、网络管理和网络维护的用户,能够有效的提高网络工程师的工作效率。

1 TCP/IP子网地址分配概述

1.1 TCP/IP寻址基础

IP地址是用于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类地址16位为网络地址,后16位为主机地址,C类地址前24位为网络地址,后8位为主机地址。网络地址范围如下所示:

种类网络地址范围

A1.0.0.0到126.0.0.0有效0.0.0.0和127.0.0.0保留

B128.1.0.0到191.254.0.0有效128.0.0.0和191.255.0.0保留

C192.0.1.0到223.255.254.0有效192.0.0.0和223.255.255.0保留

D224.0.0.0到239.255.255.255用于多点广播

E240.0.0.0到255.255.255.254保留255.255.255.255用于广播

1.2子网划分原理

由于A类和B类网络中拥有大量的主机地址:在一个A类网络中最大主机地址数量为224-2,在一个B类网络中最大主机地址数量为216-2。

然而,在实际应用中一个网段一般为200至500台网络设备,所以在此情况下使用这两类地址就会造成严重的地址浪费,从而需要将所剩余的地址利用划分出其他较小的网络,这些较小的网络通常称为子网。子网的引入就是为了充分的利用网络地址,并且可以高效的使用每类网络的寻址。

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。根据用户给出的这三个条件,该算法将按照解决方案合理划分子网,并且满足用户网络需求。

3结束语

子网划分是网络工程中必不可少的工作,基于对实际网络中子网划分的分析,该文所提出了一种子网划分计算算法,本算法可用TC编译器编写,操作简单,实用性强,为网络工程师提供了简单易用的计算方法。

参考文献:

[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2007.

[2]严蔚敏.数据结构[M].北京:清华大学出版社,2006.

[3] Richard Deal.CCNA学习指南[M].北京:人民邮电出版社,2009.

[4]谢希仁.计算机网络[M].5版.北京:电子工业出版社,2008.

上一篇:多约束QoS路由选择算法研究 下一篇:短信平台在数字化校园建设中的应用