一种IPv6数据分区及快速查找方法

文档序号:7862251阅读:451来源:国知局
专利名称:一种IPv6数据分区及快速查找方法
技术领域
本发明涉及IPv6数据分区储存以及对应的快速查找方法,属于信息技术领域。
背景技术
海量数据通常采用分区技术进行储存,分区的规则是按一定的规则将大表拆分为多个小表,将数据存储到不同的区域,使得逻辑上在一张表上的数据,按照规则储存在多个小表中,并且可以存储不同物理位置,从而实现海量数据储存。在进行数据查找时,可以根据分区规则,确定数据所在分区,直接定位到对应表,使得访问数据时只涉及特定的小表,从而实现使用特定的分区直接查询。由于查询中只涉及特定部分数据,可极大的提高数据查找效率。海量数据的分区储存以及快速查找在海量数据应用广泛,简化了数据库的管理,提高数据的易用性。目前,对应IPv4地址数据的分区方法通常是将IPv4地址均匀分配在各个区间,在 查找时候根据分区范围确定区间,进行快速定位查找。这种将IPv4地址均匀分配在各区间储存和查找的方法在IPv4环境下适用性比较好。但是该方法无法适用于IPv6地址环境下,这是因为IPv4地址共有232 (4,294,967,295)个IP地址,如果将IP均匀分配在4096个分区中,每个分区最多存在22° (1,048,576)个IP地址,也就是说在以IP为分区基准的情况下,每个分区内存在一百多万个IP,创建一张存储某地区的网络服务信息的表的时间在IPv4环境下小于I分钟;而对于IPv6地址无法采用该方法进行分区与查找,因为IPv6地址共包含2128 (约3. 4*1038)个IP地址,要创建一张存储某地或者某运营商的网络服务信息表,所需的储存空间在现有资源前提下是不可行的,储存时间无法估量的,同时对于海量的IPv6地址数据查找将是时间灾难,因此将IPv4的分区储存和查找方法运用到IPv6地址环境下无论是在时间还是空间上都是不可行。国际上对于IPv6地址分配有着明确的特征(分配地址块通常小于/16d的),而且根据在某个地区或者针对运营商,多数的数据分区内数据量较小或者基本没有数据,大多数数据集中在极少数的分区内。

发明内容
针对上述技术问题,本发明提出一种依据IPv6地址实际应用情况,对IPv6地址进行多层分区储存,快速查找定位的方法。根据本发明的数据分区方法智能划分规模不同的IPv6地址,使得当IP分区数据无论在什么地区,数据都能较均衡分布在各分区。并且在此基础上实现IPv6地址分段并行查找,快速定位的方法,以适应IPv6地址空间储存与查找。本发明分为两个部分多层分区储存和并行计算快速定位。多层分区储存采用分区树的方法实现IPv6地址分区储存。分层是一个逻辑上的概念,除了叶节点需要储存IPv6地址外,其它每层的分区需要两个数字表示分区大小,一个是分区开始值,一个是分区结束值,可以使用表示数的数据结构表示,如数组、链表、hash链表等,本发明不限定具体的数据结构,它们之间的信息传递可以通过树结构传递。分区方法也即分区树的构造方法的步骤如下
I)构造分区树根据IPv6地址分配和实际使用情况将IPv6地址分为η层,第η层分区段为叶节点,从第I层到第η层的映射关系为I :2el:2e2:…2m,其中C1+C2+…+Cn=128。映射关系式指上一层和紧邻的下一层关系的映射,例如对于第2层和第3层的映射每一个第2层的块,对应个第3层块的范围系统。为便于理解,以下将IPv6分15层,从第 I 层到第 15 层的映射关系为 I :216 28 28 28 28 28 28 28 28 28 28 28 28 216 为例进行说明,但本发明不以此为限。(a)第I层为全球IPv6地址空间,也就是说第I层为全球IPv6地址范围,为了包含所有的数据,考虑到网络地址的可能性,第I层映射块覆盖全部的IPv6范围,映射块地址范围为至FFFF: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF作为分区树的根,其中分区范围如下表
权利要求
1.ー种IPv6数据分区方法,其特征在于,对IPv6地址采用分区树的方式进行多层分区储存,步骤包括 1)构造分区树,根据IPv6地址分配和实际使用情况将IPv6地址分为n层,从第I层到第n层的映射关系为Iグ1ダ2:…2en;其中Cl+C2+ "+Cn=128,第n层分区段为叶节点,储存IPv6地址; 2)依据构造的分区树,对于给定的IPv6地址确定分区树叶节点,将IPv6地址储存在给定的叶节点。
2.如权利要求I所述的方法,其特征在干,步骤还包括 3)设定叶节点的离散阈值Ds,计算归属同层分支上的叶节点离散度D,如果离散度D大于阈值Ds,将相邻分区段进行聚合; 4)重复步骤3),直到叶节点不满足聚合条件,聚合结束,完成IPv6地址的储存。
3.如权利要求I所述的方法,其特征在于,每层的分区用两个数字表示分区大小,ー个是分区开始值,ー个是分区结束值。
4.如权利要求I所述的方法,其特征在干,n=15,从第I层到第15层的映射关系为I:r>16 r>8 r>8 r>8 r>8 r>8 r>8 r>8 r>8 r 8 r>8 r>8 r>8 r>16Z Z Z Z Z Z Z Z Z Z Z Z Z Z o
5.如权利要求I至4任一项所述的方法,其特征在干,采用并行计算的方法确定叶节点,步骤为 1)按照16、8、8、8、8、8、8、8、8、8、8、8、8、16 位分割 128 位; 2)计算分割的IPv6地址,确定该地址所属的层和分区。
6.如权利要求I所述的方法,其特征在于,步骤3)中的聚合方法为 1)计算叶节点离散度0^[队]/216,统计各分区离散度不为零的值;其中DiG D,D= [D0,…,Dn],n=2(128_16),[Ni]为叶节点 IPv6 地址数量; 2)对满足D^Ds或Di+1>DS的分区,([Ni]+[NiJ )〈216,合并相邻的两个分区Di和Di+1为ー个分区Dp
7.如权利要求2所述的方法,其特征在于,所述离散阈值Ds设置为50%。
8.如权利要求2所述的方法,其特征在于,步骤3)所述分区段的IP数量超过叶节点数量,时,不聚合。
9.ー种按照权利要求I所述的IPv6数据分区方法进行IPv6数据查找方法,其特征在于,跟据给定的IPv6地址进行叶节点的定位查找。
10.如权利要求9所述的方法,其特征在于,所述定位查找的步骤为 1)将各层分区范围存放在一个数组或者多hash链表数据结构中; 2)根据并行计算出来的各层分区值,自上而下地按层次进行查找; 3)当路径达到叶节点,完成定位查找。
全文摘要
本发明提出一种IPv6数据分区及快速查找方法,可依据IPv6地址实际应用情况划分规模不同的分区,对IPv6地址进行多层分区储存,使得当IP分区数据无论在什么地区,数据都能较均衡分布在各分区;并且在此基础上实现IPv6地址分段并行查找,快速定位的方法,以适应IPv6地址空间储存与查找。此外,本发明还设定了离散阈值,可对零散的分区进行聚合。本发明在海量分区数据的储存和查找方面较现有技术速度明显提高,同时对24位的IPv4地址也具备良好的兼容性。
文档编号H04L29/12GK102868779SQ20121035316
公开日2013年1月9日 申请日期2012年9月20日 优先权日2012年9月20日
发明者万月亮, 金波, 孔华锋 申请人:北京锐安科技有限公司, 公安部第三研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1