一种内容路由的查询方法及系统的制作方法

文档序号:6550015阅读:118来源:国知局
一种内容路由的查询方法及系统的制作方法
【专利摘要】本申请公开了一种内容路由的查询方法及系统,该方法包括:获取待测内容网络名字;将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素;分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列;查询预先建立的存储阵列,存储阵列中以哈希值的形式存储有路由列表中所有的信息。本申请通过预先将路由列表中的内容网络名字经过哈希处理,以哈希值的形式存储在阵列中,然后对待测的内容网络名字同样进行哈希处理,然后进行哈希值的匹配工作,完成查询过程,相比于传统的查询方式,其路由压缩率更高、搜索效率也更高。
【专利说明】一种内容路由的查询方法及系统
【技术领域】
[0001]本申请涉及通信【技术领域】,更具体地说,涉及一种内容路由的查询方法及系统。
【背景技术】
[0002]随着互联网技术与应用的飞速发展,以及互联网用户的快速增长,传统IP网络中地址既表示节点位置信息又表示身份信息的方式混淆了位置和标识的功能界限,在支持内容分发业务上的局限性越来越明显。
[0003]近年来,将内容与主机在网络层分离的改进方法引起了广泛的关注。以内容为中心的网络成为未来网络的一种重要模式和发展趋势。内容中心网络采用全新的网络架构,使用层次化的数据名字而不是IP地址进行数据传递,让数据本身成为因特网架构中的核心要素。内容网络的名字由一系列的字符串元素及分隔符组成,采用URL形式直接表示传输数据。内容网络直接利用名字转发数据包,作为一种全新的转发和查询机制,其路由查询也面临着很大的挑战:名字的长度可变且没有限制增加了查询的开销;其匹配的是元素字符串而不是IP数字,传统的算法效率低下。
[0004]因此,急需一种内容路由的查询机制,来快速、准确的进行内容路由的查询。

【发明内容】

[0005]有鉴于此,本申请提供了一种内容路由的查询方法及系统,用于提供一种内容路由的查询机制,达到快速、准确的进行内容路由的查询的目的。
[0006]为了实现上述目的,现提出的方案如下:
[0007]一种内容路由的查询方法,包括:
[0008]获取待测内容网络名字;
[0009]将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素;
[0010]分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列;
[0011 ] 查询预先建立的存储阵列;
[0012]其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号;
[0013]其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网络名字分解后处于同一层级的名字元素。
[0014]优选地,所述将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素,包括:
[0015]以分隔符为标志,将所述待测内容网络名字分解为若干个由字符串组成的名字元素。
[0016]优选地,所述存储阵列的建立过程如下:
[0017]将路由列表中所有的内容网络名字进行分解,其中每一个内容网络名字的分解过程为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左到右的顺序,将每一个名字元素确定为一层;
[0018]将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合,形成具有层次结构的名字元素树,该名字元素树中除去根节点外的每个节点均存储有一个名字元素,保存有同一层名字元素的节点属于同一层;
[0019]对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树;
[0020]将所述哈希编码树中的每一个节点进行编号;
[0021 ] 将编号后的哈希编码树以阵列的形式进行存储。
[0022]优选地,所述将编号后的哈希编码树以阵列的形式进行存储,具体为:
[0023]按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信息存储在基础阵列中,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;
[0024]按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名字元素的状态信息存储在对应的过渡阵列中的指定位置处,每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号。
[0025]优选地,所述查询预先建立的存储阵列,包括:
[0026]S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一个哈希值为当前哈希值;
[0027]S2、获取所述当前节点所对应的名字元素的位置信息;
[0028]S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前节点所对应的名字元素的状态信息;
[0029]S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S8;
[0030]S5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的新的当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值;
[0031]S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤S7,否则执行步骤S2 ;
[0032]S7、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由指针;
[0033]S8、提示查找失败,退出查询过程。
[0034]优选地,所述查询预先建立的存储阵列,包括:
[0035]S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一个哈希值为当前哈希值;
[0036]S2、获取所述当前节点所对应的名字元素的位置信息;
[0037]S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前节点所对应的名字元素的状态信息;
[0038]S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S9;
[0039]S5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的新的当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值;
[0040]S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤S7,否则执行步骤S2 ;
[0041 ] S7、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由指针;
[0042]S9、利用待测内容网络名字更新路由列表,退出查询过程。
[0043]优选地,所述存储阵列还包括管理阵列,所述管理阵列存储有每一个过渡阵列中空闲存储条目的起始与终止位置。
[0044]优选地,所述对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,具体为:
[0045]采用递归增量哈希函数H(h,s)对名字元素树中所有的名字元素进行哈希处理,产生一个连续的相关联的哈希值序列:
[0046]定义给定名字元素序列S = (X, S1, s2, S3,…Si),其中X为预设值,Si为第i个名字元素,利用哈希函数H(h,s)进行计算,得到与各个名字元素对应的哈希值Atl = H(Od)'
Ii1 = H(h0, S1)、h2 = H(h1; s2)...h^ = HOv1, si)。
[0047]一种内容路由的查询系统,包括:
[0048]获取单元,用于获取待测内容网络名字;
[0049]第一分解单元,用于将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素;
[0050]第一哈希处理单元,用于分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列;
[0051]查询单元,用于查询预先建立的存储阵列;
[0052]其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号;
[0053]其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网络名字分解后处于同一层级的名字元素。[0054]优选地,还包括:
[0055]存储阵列建立单元,用于建立存储阵列,所述存储阵列建立单元包括:
[0056]第二分解单元,用于将路由列表中所有的内容网络名字进行分解,其中每一个内容网络名字的分解过程为:以分隔符为标志,,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左到右的顺序,将每一个名字元素确定为一层;
[0057]组合单元,用于将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合,形成具有层次结构的名字元素树,该名字元素树中除去根节点外的每个节点均存储有一个名字元素,保存有同一层名字元素的节点属于同一层;
[0058]第二哈希处理单元,用于对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树;
[0059]编号单元,用于将所述哈希编码树中的每一个节点进行编号;
[0060]存储单元,用于将编号后的哈希编码树以阵列的形式进行存储。
[0061 ] 优选地,所述存储单元包括:
[0062]基础阵列构建单元,用于按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信息存储在基础阵列中,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;
[0063]过渡阵列构建单元,用于按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名字元素的状态信息存储在对应的过渡阵列中的指定位置处,每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号。
[0064]优选地,还包括:更新单元,用于在路由列表中不存在与待测内容网络名字相同的路由条目时,利用待测内容网络名字对路由列表进行更新。
[0065]从上述的技术方案可以看出,本申请公开的内容路由的查询方法,通过对获取的待测内容网络名字进行分解,得到若干由字符串组成的名字元素,然后分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列,然后查询预先建立的存储阵列,存储阵列包括基础阵列和若干个过渡阵列,基础阵列中按照节点的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,该位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个过渡阵列按照顺序依次排列,每个过渡阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号;其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网络名字分解后处于同一层级的名字元素。本申请通过预先将路由列表中的内容网络名字经过哈希处理,以哈希值的形式存储在阵列中,然后对待测的内容网络名字同样进行哈希处理,然后进行哈希值的匹配工作,完成查询过程,相比于传统的查询方式,其路由压缩率更高、搜索效率也更高。【专利附图】

【附图说明】
[0066]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0067]图1为本申请实施例公开的一种内容路由的查询方法流程图;
[0068]图2为本申请实施例公开的一种存储阵列的建立方法流程图;
[0069]图3为本申请实施例公开的一种哈希编码树的结构示意图;
[0070]图4为本申请实施例公开的一种将编号后的哈希编码树以阵列形式进行存储的方法流程图;
[0071]图5为本申请实施例公开的一种查询预先建立的存储阵列的方法流程图;
[0072]图6为本申请实施例公开的另一种查询预先建立的存储阵列的方法流程图;
[0073]图7为本申请实施例公开的一种内容路由的查询系统结构示意图;
[0074]图8为本申请实施例公开的另一种内容路由的查询系统结构示意图;
[0075]图9为本申请实施例公开的一种存储单元结构示意图;
[0076]图10为本申请实施例公开的另一种内容路由的查询系统结构示意图。
【具体实施方式】
[0077]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0078]实施例一
[0079]参见图1,图1为本申请实施例公开的一种内容路由的查询方法流程图。
[0080]如图1所示,该内容路由的查询方法包括:
[0081]步骤101:获取待测内容网络名字;
[0082]步骤102:将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素;
[0083]具体地,每个内容网络名字都包含有分隔符,我们以分隔符为标志,将待测内容网络名字分解为若干个由字符串组成的名字元素。以内容网络名字为/org/sina/game/wow举例,经过分解后,得到顺序排列的名字元素:org、sina、game、wow。
[0084]步骤103:分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列;
[0085]具体地,哈希处理将字节较长的名字元素映射为一个字节较短的哈希值,多个名字元素分别进行哈希处理后,得到多个对应的哈希值,多个哈希值组成一个哈希值序列。
[0086]步骤104:查询预先建立的存储阵列。
[0087]其中,所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号;
[0088]其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网络名字分解后处于同一层级的名字元素。
[0089]本申请实施例提供的方法,通过预先将路由列表中的内容网络名字经过哈希处理,以哈希值的形式存储在阵列中,然后对待测的内容网络名字同样进行哈希处理,然后进行哈希值的匹配工作,完成查询过程,相比于传统的查询方式,其路由压缩率更高、搜索效率也更高。
[0090]实施例二
[0091]本实施例将介绍存储阵列的建立过程,如图2所示,该过程包括:
[0092]步骤201:将路由列表中所有的内容网络名字进行分解;
[0093]其中每一个内容网络名字的分解过程为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左到右的顺序,将每一个名字元素确定为一层。
[0094]步骤202:将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合,形成具有层次结构的名字元素树;
[0095]形成的名字元素树中除去根节点外的每个节点均存储有一个名字元素,保存有同一层名字兀素的节点属于同一层。
[0096]步骤203:对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树;
[0097]步骤204:将所述哈希编码树中的每一个节点进行编号;
[0098]步骤205:将编号后的哈希编码树以阵列的形式进行存储。
[0099] 参见下表1以及附图3,表1为路由列表,顺序存储有多个内容网络名字,每个内容网络名字作为一个路由地址,其通过分隔符进行分隔。图3中树状结构为经过上述步骤201-204后形成的哈希编码树。可知,路由列表分解为多个名字元素后,名字元素分属与多个层级。举例如:org和com都属于第二层级,sina、google、baidu、soso、google都属于第二层级,等等。而哈希编码树也可以分为多个层级,其中第一层级为根节点,其不存储任何信息,第二层级包括两个节点,分别存储名字元素org和com,第三层级包括四个节点,分别存储名字元素sina、google、baidu、soso和google。可见,哈希编码树与名字元素树是相互对应的,二者之间互相映射。并且,各节点在存储名字元素的同时,还同时存储有该名字元素对应的哈希值。
[0100]
【权利要求】
1.一种内容路由的查询方法,其特征在于,包括: 获取待测内容网络名字; 将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素; 分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列; 查询预先建立的存储阵列; 其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号; 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网络名字分解后处于同一层级的名字元素。
2.根据权利要求1所述的查询方法,其特征在于,所述将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素,包括: 以分隔符为标志,将所述待测内容网络名字分解为若干个由字符串组成的名字元素。
3.根据权利要求1所述的查询方法,其特征在于,所述存储阵列的建立过程如下: 将路由列表中所有的内容网络名字进行分解,其中每一个内容网络名字的分解过程为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左到右的顺序,将每一个名字兀素确定为一层; 将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合,形成具有层次结构的名字元素树,该名字元素树中除去根节点外的每个节点均存储有一个名字兀素,保存有同一层名字兀素的节点属于同一层; 对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树; 将所述哈希编码树中的每一个节点进行编号; 将编号后的哈希编码树以阵列的形式进行存储。
4.根据权利要求3所述的查询方法,其特征在于,所述将编号后的哈希编码树以阵列的形式进行存储,具体为: 按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信息存储在基础阵列中,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量; 按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名字元素的状态信息存储在对应的过渡阵列中的指定位置处,每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号。
5.根据权利要求4所述的查询方法,其特征在于,所述查询预先建立的存储阵列,包括: . 51、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一个哈希值为当前哈希值;. 52、获取所述当前节点所对应的名字元素的位置信息;.. 53、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前节点所对应的名字元素的状态信息; . 54、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S8 ; . 55、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的新的当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; . 56、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤S7,否则执行步骤S2 ;. 57、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由指针; . 58、提示查找失败,退出查询过程。
6.根据权利要求4所述的查询方法,其特征在于,所述查询预先建立的存储阵列,包括: . 51、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一个哈希值为当前哈希值; . 52、获取所述当前节点所对应的名字元素的位置信息; . 53、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前节点所对应的名字元素的状态信息; . 54、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S9 ; . 55、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的新的当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; . 56、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤S7,否则执行步骤S2 ; . 57、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由指针;. 59、利用待测内容网络名字更新路由列表,退出查询过程。
7.根据权利要求6所述的查询方法,其特征在于,所述存储阵列还包括管理阵列,所述管理阵列存储有每一个过渡阵列中空闲存储条目的起始与终止位置。
8.根据权利要求3所述的查询方法,其特征在于,所述对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,具体为: 采用递归增量哈希函数H(h,s)对名字元素树中所有的名字元素进行哈希处理,产生一个连续的相关联的哈希值序列: 定义给定名字元素序列S= (x, S1, S2, S3,…Si),其中X为预设值,Si为第i个名字元素,利用哈希函数H(h,s)进行计算,得到与各个名字元素对应的哈希值==H(h0, S1)、h2 = H(h1; s2) ---hi = HOv1, si)。
9.一种内容路由的查询系统,其特征在于,包括: 获取单元,用于获取待测内容网络名字; 第一分解单元,用于将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素; 第一哈希处理单元,用于分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列; 查询单元,用于查询预先建立的存储阵列; 其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号; 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网络名字分解后处于同一层级的名字元素。
10.根据权利要求9所述的查询系统,其特征在于,还包括: 存储阵列建立单元,用于建立存储阵列,所述存储阵列建立单元包括: 第二分解单元,用于将路由列表中所有的内容网络名字进行分解,其中每一个内容网络名字的分解过程为:以分隔符为标志,,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左到右的顺序,将每一个名字元素确定为一层; 组合单元,用于将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合,形成具有层次结构的名字元素树,该名字元素树中除去根节点外的每个节点均存储有一个名字元素,保存有同一层名字元素的节点属于同一层; 第二哈希处理单元,用于对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树; 编号单元,用于将所述哈希编码树中的每一个节点进行编号; 存储单元,用于将编号后的哈希编码树以阵列的形式进行存储。
11.根据权利要求10所述的查询系统,其特征在于,所述存储单元包括: 基础阵列构建单元,用于按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信息存储在基础阵列中,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量; 过渡阵列构建单元,用于按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名字元素的状态信息存储在对应的过渡阵列中的指定位置处,每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编号。
12.根据权利要求11所述的查询系统,其特征在于,还包括:更新单元,用于在路由列表中不存在与待测内容网络名字相同的路 由条目时,利用待测内容网络名字对路由列表进行更新。
【文档编号】G06F17/30GK104008205SQ201410272574
【公开日】2014年8月27日 申请日期:2014年6月18日 优先权日:2014年6月18日
【发明者】胡宇翔, 申涓, 杜传震, 伊鹏, 李玉峰, 张传浩, 王鹏 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1