CN1671114A - 一种ip地址管理的方法 - Google Patents
一种ip地址管理的方法 Download PDFInfo
- Publication number
- CN1671114A CN1671114A CN 200410030360 CN200410030360A CN1671114A CN 1671114 A CN1671114 A CN 1671114A CN 200410030360 CN200410030360 CN 200410030360 CN 200410030360 A CN200410030360 A CN 200410030360A CN 1671114 A CN1671114 A CN 1671114A
- Authority
- CN
- China
- Prior art keywords
- bitmap
- address
- grade
- level
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及IP地址管理,公布了一种IP地址数据状态存储、查询、操作的计算机程序设计方法,使用这种方法,节省了程序运行所需要的空间,降低了查找空闲IP地址、释放IP地址、查询IP地址状态运算的复杂度。这种设计方法,以位图的形式存储IP地址的状态,通过查询和操作位图信息,快速高效的完成IP地址的分配、回收、查询,同时大幅度节省程序运算所须存储空间。
Description
技术领域
本发明涉及网络技术,特别涉及IP网络技术中用户IP地址分配管理。
背景技术
在网络应用中,每个使用网络的用户都必须有一个ip地址,因此为每个用户分配一个ip地址就是一个必须解决的问题。在新的IPv6协议应用之前,ip地址太少一直都是一个棘手的问题。为了给每个上网的用户分配一个ip地址,网络服务提供商通常采用一种动态分配ip地址的方法。使用该方法的提供商用户一定数量的ip地址,如果有用户上网,就为该用户分配一个ip地址;如果有用户下网,就收回该用户的ip地址,以便分配给别的请求上网的用户;如果该提供商的所有的ip地址都已经分配给用户(也就是说,已经有太多的用户把所有的地址都占用了),那么新的用户就会因为分配不到ip地址而不能上网。因此,为了更好的为用户服务,如何高效的管理提供商拥有的这个ip地址就显得很重要了。例如,快速的给用户分配到一个空闲的ip地址;快速的检测某个ip地址是否已经被占用;快速的回收一个被用户释放的ip地址,以便给别的用户使用等。而且,还有一个问题就是,如何才能够用尽量少的空间来存储这些ip地址。因为,查询速度的快慢与“数据的多少”和“占用存储空间的大小”有着密切的关系:数据越少,查询速度越快;占用的空间越少,查询的速度也越快。
发明内容
本发明的目的是提供一种IP地址快速分配、回收,以及查询状态的方法,同时这种方法对存储空间的要求很低。
本发明的另一个目的,是提供一种快速分配处理数据状态的方法,该方法应用广泛,如在交换机中对信道资源的管理。
本发明的目的是通过以下技术方案实现的:
首先构造位图,给定一个地址池,所包含的地址为a到b,为每一个地址分配一个对应位,共有(b-a+1)位,然后两两结合生成高一级的位图。不能与别的位结合的,在高一级位图中单独占一位,直到最后只有一位为止。
一般地,对于一个包含有N(N>0)个地址的地址池,共需要(log(2,N)向上取整)级位图(位图的级别从0开始),每一级位图包含的位数n为:第0级为n=N,其余第k级为n=(N DIV exp(2,k))+(N MOD 2);
其中:exp(a,b)表示a的b次幂,例如,exp(2,3)=8;
(a MOD b)表示取a对b的余数,例如,13mod 2=1;
(a DIV b)表示取a对b的整倍数,例如,13div 2=6;
位图中各位所对应的值按照下面的规则设置:
a)如果一个地址被分配出去,则该地址在第0级位图中所对应的位的值为1;否则为0;
b)从第0级开始直到最后一级,从左至右两两结合,如果两个相结合的位的值都为1,则在高一级位图中对应的位的值就为1;否则为0。如果某一位不能与别的位结合,则在高一级位图中对应的位的值保持相同。
查找空闲地址,地址池的一个重要作用就是在现有地址范围内查找一个空闲的地址分配给用户使用。我们可以在上面的位图中采用下面的方法来实现快速查找:如果要查找一个空闲地址,则从最高级位图开始,如果为1,则说明该地址池下已经没有空闲地址;如果为0,则采用“二分法”(也叫“折半查找法”)察看该位在低一级位图中所对应的位(可能对应两位,也可能对应一位),如果有一位为0,则察看该位在更低一级位图中所对应的位,直到找到第0级位图中为0的那一位,该位所对应的地址即为一个空闲地址。
如果要占用一个地址,则把该位的值置为1;然后,按照前述构造位图的方法逐级更新位图。更新算法的复杂度是log(2,n)。
释放一个地址,如果要释放一个位所对应的地址,则把该位的值置为1;然后,按照前述构造位图的方法逐级更新位图。更新算法的复杂度也是log(2,n)。
查询一个地址的状态,如果要查询一个地址c是否已经被分配出去,则可以在a-b的氛围内算出c相对于a的位置(c-a),然后直接测试第0级位图中的第(c-a)位的值是否为0,即可直到该地址是否被分配出去。这个算法的复杂度为1。
采用了本发明用位图管理地址池的程序设计方法,快速高效的完成IP地址的分配、回收、查询,同时大幅度节省程序运算所须存储空间。
附图说明
图1为本发明一种IP地址管理的方法中的构造位图的程序流程示意图;
图2为本发明一种IP地址管理的方法中的查找空闲程序流程示意图;
图3为本发明一种IP地址管理的方法中的占用一个地址程序流程示意图;
图4为本发明一种IP地址管理的方法中的释放一个地址程序流程示意图;
图5为本发明一种IP地址管理的方法中的查询某个地址状态程序流程示意图;
图6为一组IP地址与地址的状态;
图7为17位IP地址构成的位图示意图;
图8为17位IP地址构成的位图被占用一位示意图;
图9为17位IP地址构成的位图被释放一位示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
给定一个地址池,所包含的地址为a到b,为每一个地址分配一个对应位,共有N=(b-a+1)位,每一级位图包含的位数n为:第0级为n=N,其余第k级为n=(N DIV exp(2,k))+(N MOD 2);
如图1,构造位图的步骤如下:
步骤10:初始化位图级数k=0;0级位图的位数n=总的地址数N;
步骤11:如果k级位图的位数n小于等于1,执行步骤15;
步骤12:生成k级位图;
步骤13:位图级数k加1;
步骤14:计算k级位图的位数,n=(N DIV exp(2,k))+(N MOD 2),执行步骤11;
步骤15:如果k级位图的位数n不等于1,执行步骤17;
步骤16:生成k级位图;
步骤17:程序结束,完成位图构建。
如图2,查找空闲地址的步骤如下:
步骤20:根据地址数N计算最高级别数K,初始化k=K;
步骤21:初始化计数器i=0;
步骤22:如果k<0,执行步骤29;
步骤23:如果位(k,i)的值不等于1,执行步骤27;
步骤24:i加1;
步骤25:i小于等于本级最大位数n,执行步骤28
步骤26:位(k,i)的值=1,执行步骤28
步骤27:k减1,i=2*i,执行步骤22
步骤28:没有找到空闲地址,返回失败;
步骤29:找到空闲地址(i/2),返回成功。
如图3,如果要占用一个地址,则把该位的值置为1;然后,按照前述构造位图的方法逐级更新位图。
具体操作的程序如下:
步骤30:根据地址数N计算最高级别数K,k=K,计算要释放的地址在0级位图对应的为i;
步骤31:n表示级数,初始化n=0;
步骤32:L>K,执行步骤37
步骤33:位(n,i)=1;
步骤34:i的伙伴位的值不等于1,执行步骤37
步骤35:i=(i/2向下取整);
步骤36:n=n+1,执行步骤37
步骤37:程序结束
其中伙伴位是指构造位图时两两互相结合的位.例如:第0位的伙伴位是第1位;第7位的伙伴位是第6位;
释放一个地址,在图4中,如果要释放一个位所对应的地址,则把该位的值置为1;然后,按照前述构造位图的方法逐级更新位图。更新算法的复杂度也是log(2,n)。
具体操作的程序如下:
步骤40:根据地址数N计算最高级别数K,计算要释放的地址在0级位图对应的为i;
步骤41:n表示级数,初始化n=0;
步骤42:n>K,执行步骤47
步骤43:位(n,i)=0;
步骤44:i的伙伴位的值不等于1,执行步骤47
步骤45:i=(i/2向下取整);
步骤46:n=n+1,执行步骤47
步骤47:程序结束
如图5,查询一个地址的状态,具体操作的程序如下:
步骤50:计算该地址在0级位图中对应的位i;
步骤51:位(0,i)的值不等于1,该位空闲,执行步骤53
步骤52:该位被占用
步骤53:程序结束
其中i等于该地址相对与IP起始地址的个数。
如图6,为17个IP地址,和地址的状态,首先为17个地址各生成一位,因此第0级有17位;然后,从左至右两两结合生成第1级的位图,因为第0级的最后一位不能与别的位结合,所以在第1级位图中单独占一位,因此,第1级位图有9位;依次类推,当达到第5级时只有1位了,于是终止位图的生成,最后形成的位图如图7。如果把每一级位图都存放在字节中,则第0级需要3个字节(17=2*8+1),第1级需要2个字节(9=8+1),第2级需要1个字节(5<8),第3级需要1个字节(3<8),第4级需要1个字节,第5级需要1个字节,共需要9个字节。
如果一个地址被分配出去,则该地址在第0级位图中所对应的位的值为1;否则为0;
从第0级开始直到最后一级,从左至右两两结合,如果两个相结合的位的值都为1,则在高一级位图中对应的位的值就为1;否则为0。如果某一位不能与别的位结合,则在高一级位图中对应的位的值保持相同。
查找一个空闲地址的步骤如下。如图7所示。
1a)第5级位图中位(5,0)的值为0,说明该地址池中有空闲地址;
1b)在第4级位图中找到该位(5,0)所对应的两个位(4,0)和(4,1),其中(4,0)的值为0,说明该位下面有空闲地址;
1c)在第3级位图中找到该位(4,0)所对应的两个位(3,0)和(3,1),两个位的值都为0,说明有空闲地址,则选一个位(3,0);
1d)在第2级位图中找到该位(3,0)所对应的两个位(2,0)和(2,1),其中(2,0)的值为0,说明该位下面有空闲地址;
1e)在第1级位图中找到该位(2,0)所对应的两个位(1,0)和(1,1),两个位的值都为0,说明有空闲地址,则选一个位(1,0);
1f)在第0级位图中找到该位(1,0)所对应的两个位(0,0)和(1,1),其中(0,0)的值为0,而且已经到了第0级位图,则该位(0,0)所对应的就是一个空闲地址。
占用一个地址,在图7中,如果要占用(0,0)位所对应的地址,则把该位的值置为1;然后,按照前述构造位图的方法逐级更新位图。最后得到
图8的位图。
具体过程为:
2a)第0级位图中位(0,0)的值设为1,因为和该位结合的该位(0,1)的值为1,所以继续更新高一级位图;
2b)在第1级位图中找到位(0,0)和(0,1)对应的位为(1,0),并把该位的值设为1,因为与位(1,0)结合的位(1,1)的值为0,所以不用再继续更新位图,于是更新结束。
释放一个地址,在图7中,如果要释放(0,5)位所对应的地址,则把该位的值置为1;然后,按照前述构造位图的方法逐级更新位图。最后得到如图9的位图。
具体过程为:
3a)第0级位图中位(0,5)的值设为0,因为和该位结合的该位(0,4)的值为1,所以继续更新高一级位图;
3b)在第1级位图中找到位(0,4)和(0,5)对应的位为(1,2),并把该位的值设为0,因为与位(1,2)结合的位(1,3)的值为1,所以需要继续更新高一级位图;
3c)在第2级位图中找到位(1,2)和(1,3)对应的位为(2,1),并把该位的值设为0,因为与位(2,1)结合的位(2,0)的值为0,所以不用继续更新高一级位图,于是更新结束。
上面结合具体的示例对本发明进行了阐述,技术人员可以很容易的将本发明应用到其他数据处理的领域,如交换机中线路资源的管理,移动交换机中本地用户和访问用户的管理等等。
Claims (7)
1、一种数据状态管理方法,其特征在于,构造一个位图来表示数据的状态,然后通过对位图的操作来完成数据状态的查找、分配、回收和查询。所述位图的构造为:用位图的0级对应数据的状态,高一级位图由低级位图两两相逻辑与生成,低级位图中的最后一位,如果是奇数位,直接在高一级位图中单独占一位,所述位图的最高级位图只有一位。
2.一种IP地址管理的方法,其特征在于,所述方法包括:
构造位图:用位图的状态来表示IP地址的状态信息。
在位图的基础上完成IP地址的查找空闲地址、分配、回收、地址状态查询操作。
3、根据权利要求2所述的IP地址管理方法,其特征在于,所述的构造位图方法为:为每一个IP地址分配一个0级对应位来表示状态,然后两两相逻辑与生成高一级的位图,不能与别的位结合的,在高一级位图中单独占一位,直到最后只有一位为止,在第0级位图中,所对应的位的值为1表示该位对应IP地址已经分配,为0表示该位对应IP地址未分配。
4、根据权利要求2所述的IP地址管理方法,其特征在于,所述的IP地址查找空闲地址方法为:从最高级位图开始,如果为1,则说明该地址池下已经没有空闲地址;如果为0,则察看该位在低一级位图中所对应的位,如果有一位为0,则察看该位在更低一级位图中所对应的位,直到找到第0级位图中为0的那一位,所对应的地址即为一个空闲地址。
5、根据权利要求2所述的IP地址管理方法,其特征在于,所述的IP地址分配的方法为:将该IP地址对应的0级位图中的对应位置为1,然后两两相逻辑与生成高一级的位图,不能与别的位结合的,在高一级位图中单独占一位,直到最后只有一位为止。
6、根据权利要求2所述的IP地址管理方法,其特征在于,所述的IP地址回收的方法为:将该IP地址对应的0级位图中的对应位置为0,然后两两相逻辑与生成高一级的位图,不能与别的位结合的,在高一级位图中单独占一位,直到最后只有一位为止。
7、根据权利要求2所述的IP地址管理方法,其特征在于,所述的IP地址状态查询的方法为:查询该IP地址对应的0级位图中的对应位置的值,所对应的位的值为1表示该位对应IP地址已经分配,为0表示该位对应IP地址未分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100303602A CN100502331C (zh) | 2004-03-19 | 2004-03-19 | 一种ip地址管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100303602A CN100502331C (zh) | 2004-03-19 | 2004-03-19 | 一种ip地址管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1671114A true CN1671114A (zh) | 2005-09-21 |
CN100502331C CN100502331C (zh) | 2009-06-17 |
Family
ID=35042189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100303602A Expired - Fee Related CN100502331C (zh) | 2004-03-19 | 2004-03-19 | 一种ip地址管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100502331C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227465B (zh) * | 2007-12-29 | 2010-11-03 | 北京亿阳信通软件研究院有限公司 | 一种ip地址管理方法和系统 |
CN103064794A (zh) * | 2013-02-04 | 2013-04-24 | 烽火通信科技股份有限公司 | 实现mpls标签高效管理的方法 |
US8755306B1 (en) * | 2006-11-28 | 2014-06-17 | Marvell World Trade Ltd. | Simplified auto-configuration and service discovery in 802.11 ad-hoc networks |
CN105872127A (zh) * | 2016-05-24 | 2016-08-17 | 国家计算机网络与信息安全管理中心广东分中心 | 一种ip地址管理系统 |
CN107809495A (zh) * | 2016-09-09 | 2018-03-16 | 华为技术有限公司 | 地址管理方法及装置 |
CN109743280A (zh) * | 2018-11-16 | 2019-05-10 | 江苏骏安信息测评认证有限公司 | 一种针对分布式synflood攻击可以快速防护的方法 |
CN109977373A (zh) * | 2019-03-28 | 2019-07-05 | 中科驭数(北京)科技有限公司 | 标识号分配方法、标识号回收方法及装置 |
CN110532457A (zh) * | 2019-07-30 | 2019-12-03 | 济南浪潮数据技术有限公司 | 一种获取网络段id方法及系统 |
-
2004
- 2004-03-19 CN CNB2004100303602A patent/CN100502331C/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9585087B1 (en) | 2006-11-28 | 2017-02-28 | Marvell World Trade Ltd. | Method and apparatus for permitting a device to automatically select a network address for use in a wireless network |
US8755306B1 (en) * | 2006-11-28 | 2014-06-17 | Marvell World Trade Ltd. | Simplified auto-configuration and service discovery in 802.11 ad-hoc networks |
US9237067B1 (en) | 2006-11-28 | 2016-01-12 | Marvell World Trade Ltd. | Method and apparatus for permitting a device to automatically select a network address for use in a wireless network |
CN101227465B (zh) * | 2007-12-29 | 2010-11-03 | 北京亿阳信通软件研究院有限公司 | 一种ip地址管理方法和系统 |
CN103064794B (zh) * | 2013-02-04 | 2016-05-25 | 烽火通信科技股份有限公司 | 实现mpls标签高效管理的方法 |
CN103064794A (zh) * | 2013-02-04 | 2013-04-24 | 烽火通信科技股份有限公司 | 实现mpls标签高效管理的方法 |
CN105872127A (zh) * | 2016-05-24 | 2016-08-17 | 国家计算机网络与信息安全管理中心广东分中心 | 一种ip地址管理系统 |
CN105872127B (zh) * | 2016-05-24 | 2019-06-11 | 国家计算机网络与信息安全管理中心广东分中心 | 一种ip地址管理系统 |
US10893019B2 (en) | 2016-09-09 | 2021-01-12 | Huawei Technologies Co., Ltd. | Address management method and apparatus |
CN107809495A (zh) * | 2016-09-09 | 2018-03-16 | 华为技术有限公司 | 地址管理方法及装置 |
CN107809495B (zh) * | 2016-09-09 | 2021-06-22 | 华为技术有限公司 | 地址管理方法及装置 |
CN109743280A (zh) * | 2018-11-16 | 2019-05-10 | 江苏骏安信息测评认证有限公司 | 一种针对分布式synflood攻击可以快速防护的方法 |
CN109977373A (zh) * | 2019-03-28 | 2019-07-05 | 中科驭数(北京)科技有限公司 | 标识号分配方法、标识号回收方法及装置 |
CN110532457A (zh) * | 2019-07-30 | 2019-12-03 | 济南浪潮数据技术有限公司 | 一种获取网络段id方法及系统 |
CN110532457B (zh) * | 2019-07-30 | 2022-05-24 | 济南浪潮数据技术有限公司 | 一种获取网络段id方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100502331C (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1146821C (zh) | 面向用户的数据库查询方法及系统 | |
CN1852309A (zh) | 数据同步处理方法及其客户端 | |
CN1940922A (zh) | 一种提高搜索信息速度的方法及系统 | |
CN101034990A (zh) | 权限管理方法及装置 | |
CN1794737A (zh) | 用于为ip网络设备动态地分配可变长度前缀的设备 | |
CN1922826A (zh) | 隧道服务方法和系统 | |
CN1671114A (zh) | 一种ip地址管理的方法 | |
CN1567907A (zh) | 一种网络地址资源的利用方法 | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN1929396A (zh) | 一种网络中实现对网元进行数据配置的方法 | |
CN101030173A (zh) | 地址转换设备 | |
CN1874489A (zh) | 一种对等网络视频点播系统中多频道重叠网络组织方法 | |
CN1866218A (zh) | 软件系统的资源管理方法 | |
CN1949221A (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
CN1889729A (zh) | 扩展移动终端的存储空间的方法和系统 | |
CN1570878A (zh) | 信息家电软件升级方法及其升级数据的编码解码方法 | |
CN1825797A (zh) | 一种通信系统中用户数据更新的方法及系统 | |
CN1639683A (zh) | 用于并行访问多个存储器模块的方法和设备 | |
CN101030850A (zh) | 配置包含在域中的群组的密钥的方法和设备 | |
CN1859251A (zh) | 一种实现通信单元互连的方法 | |
CN1185817C (zh) | 实现寻呼信道及辅助公共控制物理信道选择的方法 | |
CN1512332A (zh) | 自描述数据对象的处理方法 | |
CN1960189A (zh) | 移动数字多媒体广播系统中ldpc码的构造方法 | |
CN1848123A (zh) | 一种为移动游戏用户提供游戏室信息的方法 | |
CN100336392C (zh) | 一种机顶盒的数据存储管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090617 Termination date: 20170319 |
|
CF01 | Termination of patent right due to non-payment of annual fee |