一种内容路由的查询方法及系统.pdf

上传人:a1 文档编号:4448986 上传时间:2018-10-02 格式:PDF 页数:22 大小:2.42MB
返回 下载 相关 举报
一种内容路由的查询方法及系统.pdf_第1页
第1页 / 共22页
一种内容路由的查询方法及系统.pdf_第2页
第2页 / 共22页
一种内容路由的查询方法及系统.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《一种内容路由的查询方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种内容路由的查询方法及系统.pdf(22页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104008205 A (43)申请公布日 2014.08.27 C N 1 0 4 0 0 8 2 0 5 A (21)申请号 201410272574.4 (22)申请日 2014.06.18 G06F 17/30(2006.01) (71)申请人中国人民解放军信息工程大学 地址 450000 河南省郑州市科学大道62号 (72)发明人胡宇翔 申涓 杜传震 伊鹏 李玉峰 张传浩 王鹏 (74)专利代理机构北京集佳知识产权代理有限 公司 11227 代理人王宝筠 (54) 发明名称 一种内容路由的查询方法及系统 (57) 摘要 本申请公开了一种内容路由的查询方法及系。

2、 统,该方法包括:获取待测内容网络名字;将所述 待测内容网络名字进行分解,得到若干个由字符 串组成的名字元素;分别对每个名字元素进行哈 希处理,得到对应的待测哈希值序列;查询预先 建立的存储阵列,存储阵列中以哈希值的形式存 储有路由列表中所有的信息。本申请通过预先将 路由列表中的内容网络名字经过哈希处理,以哈 希值的形式存储在阵列中,然后对待测的内容网 络名字同样进行哈希处理,然后进行哈希值的匹 配工作,完成查询过程,相比于传统的查询方式, 其路由压缩率更高、搜索效率也更高。 (51)Int.Cl. 权利要求书4页 说明书10页 附图7页 (19)中华人民共和国国家知识产权局 (12)发明专利。

3、申请 权利要求书4页 说明书10页 附图7页 (10)申请公布号 CN 104008205 A CN 104008205 A 1/4页 2 1.一种内容路由的查询方法,其特征在于,包括: 获取待测内容网络名字; 将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素; 分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列; 查询预先建立的存储阵列; 其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编 号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包 括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所。

4、 述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态 信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子 节点的数量、子节点对应的哈希值以及子节点的节点编号; 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的 哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名字进 行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网 络名字分解后处于同一层级的名字元素。 2.根据权利要求1所述的查询方法,其特征在于,所述将所述待测内容网络名字进行 分解,得到若干个由字符串组成的。

5、名字元素,包括: 以分隔符为标志,将所述待测内容网络名字分解为若干个由字符串组成的名字元素。 3.根据权利要求1所述的查询方法,其特征在于,所述存储阵列的建立过程如下: 将路由列表中所有的内容网络名字进行分解,其中每一个内容网络名字的分解过程 为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左到 右的顺序,将每一个名字元素确定为一层; 将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合,形成 具有层次结构的名字元素树,该名字元素树中除去根节点外的每个节点均存储有一个名字 元素,保存有同一层名字元素的节点属于同一层; 对所述名字元素树中的每一个名字元。

6、素进行哈希处理,得到与每一个名字元素对应的 哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树; 将所述哈希编码树中的每一个节点进行编号; 将编号后的哈希编码树以阵列的形式进行存储。 4.根据权利要求3所述的查询方法,其特征在于,所述将编号后的哈希编码树以阵列 的形式进行存储,具体为: 按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信息存储在基础阵 列中,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中 的偏移量; 按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名字元素的状态信 息存储在对应的过渡阵列中的指定位置处,每个节点的名字。

7、元素的状态信息包括:该节点 对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节点编 号。 5.根据权利要求4所述的查询方法,其特征在于,所述查询预先建立的存储阵列,包 权 利 要 求 书CN 104008205 A 2/4页 3 括: S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一个哈 希值为当前哈希值; S2、获取所述当前节点所对应的名字元素的位置信息; S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前节点 所对应的名字元素的状态信息; S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应的哈 希值。

8、组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S8; S5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的新的 当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤S7,否 则执行步骤S2; S7、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由指 针; S8、提示查找失败,退出查询过程。 6.根据权利要求4所述的查询方法,其特征在于,所述查询预先建立的存储阵列,包 括: S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一。

9、个哈 希值为当前哈希值; S2、获取所述当前节点所对应的名字元素的位置信息; S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前节点 所对应的名字元素的状态信息; S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应的哈 希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S9; S5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的新的 当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤S7,否 则执行步骤S2; S7、。

10、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由指 针; S9、利用待测内容网络名字更新路由列表,退出查询过程。 7.根据权利要求6所述的查询方法,其特征在于,所述存储阵列还包括管理阵列,所述 管理阵列存储有每一个过渡阵列中空闲存储条目的起始与终止位置。 8.根据权利要求3所述的查询方法,其特征在于,所述对所述名字元素树中的每一个 名字元素进行哈希处理,得到与每一个名字元素对应的哈希值,具体为: 采用递归增量哈希函数H(h,s)对名字元素树中所有的名字元素进行哈希处理,产生 一个连续的相关联的哈希值序列: 定义给定名字元素序列S(x,s 1 ,s 2 ,s 3 , s i )。

11、,其中x为预设值,s i 为第i个名字元 素,利用哈希函数H(h,s)进行计算,得到与各个名字元素对应的哈希值:h 0 H(0,x)、h 1 权 利 要 求 书CN 104008205 A 3/4页 4 H(h 0 ,s 1 )、h 2 H(h 1 ,s 2 )h i H(h i-1 ,s i )。 9.一种内容路由的查询系统,其特征在于,包括: 获取单元,用于获取待测内容网络名字; 第一分解单元,用于将所述待测内容网络名字进行分解,得到若干个由字符串组成的 名字元素; 第一哈希处理单元,用于分别对每个名字元素进行哈希处理,得到对应的待测哈希值 序列; 查询单元,用于查询预先建立的存储阵列; 。

12、其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点的编 号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信息包 括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干个所 述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的状态 信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子 节点的数量、子节点对应的哈希值以及子节点的节点编号; 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元素的 哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络。

13、名字进 行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内容网 络名字分解后处于同一层级的名字元素。 10.根据权利要求9所述的查询系统,其特征在于,还包括: 存储阵列建立单元,用于建立存储阵列,所述存储阵列建立单元包括: 第二分解单元,用于将路由列表中所有的内容网络名字进行分解,其中每一个内容网 络名字的分解过程为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成的名 字元素,按照从左到右的顺序,将每一个名字元素确定为一层; 组合单元,用于将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级 进行组合,形成具有层次结构的名字元素树,该名字元素树中除去根节。

14、点外的每个节点均 存储有一个名字元素,保存有同一层名字元素的节点属于同一层; 第二哈希处理单元,用于对所述名字元素树中的每一个名字元素进行哈希处理,得到 与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈 希编码树; 编号单元,用于将所述哈希编码树中的每一个节点进行编号; 存储单元,用于将编号后的哈希编码树以阵列的形式进行存储。 11.根据权利要求10所述的查询系统,其特征在于,所述存储单元包括: 基础阵列构建单元,用于按照编号顺序,将哈希编码树中每一个节点对应的名字元素 的位置信息存储在基础阵列中,所述位置信息包括:每个名字元素的状态信息所在的过渡 阵列,以及在该。

15、过渡阵列中的偏移量; 过渡阵列构建单元,用于按照基础阵列中存储的每个名字元素的位置信息的指示,将 对应的名字元素的状态信息存储在对应的过渡阵列中的指定位置处,每个节点的名字元素 的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希 值以及子节点的节点编号。 权 利 要 求 书CN 104008205 A 4/4页 5 12.根据权利要求11所述的查询系统,其特征在于,还包括:更新单元,用于在路由列 表中不存在与待测内容网络名字相同的路由条目时,利用待测内容网络名字对路由列表进 行更新。 权 利 要 求 书CN 104008205 A 1/10页 6 一种内容路由的查。

16、询方法及系统 技术领域 0001 本申请涉及通信技术领域,更具体地说,涉及一种内容路由的查询方法及系统。 背景技术 0002 随着互联网技术与应用的飞速发展,以及互联网用户的快速增长,传统IP网络中 地址既表示节点位置信息又表示身份信息的方式混淆了位置和标识的功能界限,在支持内 容分发业务上的局限性越来越明显。 0003 近年来,将内容与主机在网络层分离的改进方法引起了广泛的关注。以内容为中 心的网络成为未来网络的一种重要模式和发展趋势。内容中心网络采用全新的网络架构, 使用层次化的数据名字而不是IP地址进行数据传递,让数据本身成为因特网架构中的核 心要素。内容网络的名字由一系列的字符串元素及。

17、分隔符组成,采用URL形式直接表示传 输数据。内容网络直接利用名字转发数据包,作为一种全新的转发和查询机制,其路由查询 也面临着很大的挑战:名字的长度可变且没有限制增加了查询的开销;其匹配的是元素字 符串而不是IP数字,传统的算法效率低下。 0004 因此,急需一种内容路由的查询机制,来快速、准确的进行内容路由的查询。 发明内容 0005 有鉴于此,本申请提供了一种内容路由的查询方法及系统,用于提供一种内容路 由的查询机制,达到快速、准确的进行内容路由的查询的目的。 0006 为了实现上述目的,现提出的方案如下: 0007 一种内容路由的查询方法,包括: 0008 获取待测内容网络名字; 00。

18、09 将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字元素; 0010 分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列; 0011 查询预先建立的存储阵列; 0012 其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点 的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信 息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干 个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的 状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应 的子节点的数量、。

19、子节点对应的哈希值以及子节点的节点编号; 0013 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元 素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名 字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内 容网络名字分解后处于同一层级的名字元素。 0014 优选地,所述将所述待测内容网络名字进行分解,得到若干个由字符串组成的名 说 明 书CN 104008205 A 2/10页 7 字元素,包括: 0015 以分隔符为标志,将所述待测内容网络名字分解为若干个由字符串组成的名字元 素。 0016 优选地,所述存储阵列的。

20、建立过程如下: 0017 将路由列表中所有的内容网络名字进行分解,其中每一个内容网络名字的分解过 程为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成的名字元素,按照从左 到右的顺序,将每一个名字元素确定为一层; 0018 将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级进行组合, 形成具有层次结构的名字元素树,该名字元素树中除去根节点外的每个节点均存储有一个 名字元素,保存有同一层名字元素的节点属于同一层; 0019 对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个名字元素对 应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码树; 0020 将。

21、所述哈希编码树中的每一个节点进行编号; 0021 将编号后的哈希编码树以阵列的形式进行存储。 0022 优选地,所述将编号后的哈希编码树以阵列的形式进行存储,具体为: 0023 按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信息存储在基 础阵列中,所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵 列中的偏移量; 0024 按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名字元素的状 态信息存储在对应的过渡阵列中的指定位置处,每个节点的名字元素的状态信息包括:该 节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点的节 点编号。 。

22、0025 优选地,所述查询预先建立的存储阵列,包括: 0026 S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一 个哈希值为当前哈希值; 0027 S2、获取所述当前节点所对应的名字元素的位置信息; 0028 S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前 节点所对应的名字元素的状态信息; 0029 S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应 的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S8; 0030 S5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的 新的。

23、当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; 0031 S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤 S7,否则执行步骤S2; 0032 S7、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的路由 指针; 0033 S8、提示查找失败,退出查询过程。 0034 优选地,所述查询预先建立的存储阵列,包括: 0035 S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的第一 说 明 书CN 104008205 A 3/10页 8 个哈希值为当前哈希值; 0036 S2、获取所述当前节点所对应的名字元素的位置信息; 0。

24、037 S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中当前 节点所对应的名字元素的状态信息; 0038 S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别对应 的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤S9; 0039 S5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列中的 新的当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; 0040 S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步骤 S7,否则执行步骤S2; 0041 S7、获取与待测哈希值序列中最后一个。

25、哈希值相同的哈希值所对应的节点的路由 指针; 0042 S9、利用待测内容网络名字更新路由列表,退出查询过程。 0043 优选地,所述存储阵列还包括管理阵列,所述管理阵列存储有每一个过渡阵列中 空闲存储条目的起始与终止位置。 0044 优选地,所述对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一 个名字元素对应的哈希值,具体为: 0045 采用递归增量哈希函数H(h,s)对名字元素树中所有的名字元素进行哈希处理, 产生一个连续的相关联的哈希值序列: 0046 定义给定名字元素序列S(x,s 1 ,s 2 ,s 3 , s i ),其中x为预设值,s i 为第i个名 字元素,利用哈希函。

26、数H(h,s)进行计算,得到与各个名字元素对应的哈希值:h 0 H(0,x)、 h 1 H(h 0 ,s 1 )、h 2 H(h 1 ,s 2 )h i H(h i-1 ,s i )。 0047 一种内容路由的查询系统,包括: 0048 获取单元,用于获取待测内容网络名字; 0049 第一分解单元,用于将所述待测内容网络名字进行分解,得到若干个由字符串组 成的名字元素; 0050 第一哈希处理单元,用于分别对每个名字元素进行哈希处理,得到对应的待测哈 希值序列; 0051 查询单元,用于查询预先建立的存储阵列; 0052 其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点 。

27、的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信 息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干 个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的 状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应 的子节点的数量、子节点对应的哈希值以及子节点的节点编号; 0053 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元 素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名 字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的。

28、是:路由列表中每个内 容网络名字分解后处于同一层级的名字元素。 说 明 书CN 104008205 A 4/10页 9 0054 优选地,还包括: 0055 存储阵列建立单元,用于建立存储阵列,所述存储阵列建立单元包括: 0056 第二分解单元,用于将路由列表中所有的内容网络名字进行分解,其中每一个内 容网络名字的分解过程为:以分隔符为标志,将内容网络名字分解为若干个由字符串组成 的名字元素,按照从左到右的顺序,将每一个名字元素确定为一层; 0057 组合单元,用于将所有的内容网络名字分解后得到的每一个名字元素按照其所属 层级进行组合,形成具有层次结构的名字元素树,该名字元素树中除去根节点外的。

29、每个节 点均存储有一个名字元素,保存有同一层名字元素的节点属于同一层; 0058 第二哈希处理单元,用于对所述名字元素树中的每一个名字元素进行哈希处理, 得到与每一个名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得 到哈希编码树; 0059 编号单元,用于将所述哈希编码树中的每一个节点进行编号; 0060 存储单元,用于将编号后的哈希编码树以阵列的形式进行存储。 0061 优选地,所述存储单元包括: 0062 基础阵列构建单元,用于按照编号顺序,将哈希编码树中每一个节点对应的名字 元素的位置信息存储在基础阵列中,所述位置信息包括:每个名字元素的状态信息所在的 过渡阵列,以及在。

30、该过渡阵列中的偏移量; 0063 过渡阵列构建单元,用于按照基础阵列中存储的每个名字元素的位置信息的指 示,将对应的名字元素的状态信息存储在对应的过渡阵列中的指定位置处,每个节点的名 字元素的状态信息包括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应 的哈希值以及子节点的节点编号。 0064 优选地,还包括:更新单元,用于在路由列表中不存在与待测内容网络名字相同的 路由条目时,利用待测内容网络名字对路由列表进行更新。 0065 从上述的技术方案可以看出,本申请公开的内容路由的查询方法,通过对获取的 待测内容网络名字进行分解,得到若干由字符串组成的名字元素,然后分别对每个名字元 素。

31、进行哈希处理,得到对应的待测哈希值序列,然后查询预先建立的存储阵列,存储阵列包 括基础阵列和若干个过渡阵列,基础阵列中按照节点的编号顺序,分别存储有哈希编码树 中各个节点对应的名字元素的位置信息,该位置信息包括:每个名字元素的状态信息所在 的过渡阵列,以及在该过渡阵列中的偏移量;若干个过渡阵列按照顺序依次排列,每个过渡 阵列中存储有若干个节点的名字元素的状态信息,其中每个节点的名字元素的状态信息包 括:该节点对应的路由指针、该节点对应的子节点的数量、子节点对应的哈希值以及子节点 的节点编号;其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字 元素的哈希值构成,其中各节点对应保。

32、存的名字元素为通过对路由列表中所有的内容网络 名字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个 内容网络名字分解后处于同一层级的名字元素。本申请通过预先将路由列表中的内容网络 名字经过哈希处理,以哈希值的形式存储在阵列中,然后对待测的内容网络名字同样进行 哈希处理,然后进行哈希值的匹配工作,完成查询过程,相比于传统的查询方式,其路由压 缩率更高、搜索效率也更高。 说 明 书CN 104008205 A 5/10页 10 附图说明 0066 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,。

33、下面描述中的附图仅仅是本 申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。 0067 图1为本申请实施例公开的一种内容路由的查询方法流程图; 0068 图2为本申请实施例公开的一种存储阵列的建立方法流程图; 0069 图3为本申请实施例公开的一种哈希编码树的结构示意图; 0070 图4为本申请实施例公开的一种将编号后的哈希编码树以阵列形式进行存储的 方法流程图; 0071 图5为本申请实施例公开的一种查询预先建立的存储阵列的方法流程图; 0072 图6为本申请实施例公开的另一种查询预先建立的存储阵列的方法流程图; 0073 图7为本。

34、申请实施例公开的一种内容路由的查询系统结构示意图; 0074 图8为本申请实施例公开的另一种内容路由的查询系统结构示意图; 0075 图9为本申请实施例公开的一种存储单元结构示意图; 0076 图10为本申请实施例公开的另一种内容路由的查询系统结构示意图。 具体实施方式 0077 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于 本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它 实施例,都属于本申请保护的范围。 0078 实施例一 0079 参见图1,图1为本申。

35、请实施例公开的一种内容路由的查询方法流程图。 0080 如图1所示,该内容路由的查询方法包括: 0081 步骤101:获取待测内容网络名字; 0082 步骤102:将所述待测内容网络名字进行分解,得到若干个由字符串组成的名字 元素; 0083 具体地,每个内容网络名字都包含有分隔符,我们以分隔符为标志,将待测内容网 络名字分解为若干个由字符串组成的名字元素。以内容网络名字为/org/sina/game/wow 举例,经过分解后,得到顺序排列的名字元素:org、sina、game、wow。 0084 步骤103:分别对每个名字元素进行哈希处理,得到对应的待测哈希值序列; 0085 具体地,哈希处。

36、理将字节较长的名字元素映射为一个字节较短的哈希值,多个名 字元素分别进行哈希处理后,得到多个对应的哈希值,多个哈希值组成一个哈希值序列。 0086 步骤104:查询预先建立的存储阵列。 0087 其中,所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点 的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信 息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵列中的偏移量;若干 个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的 说 明 书CN 104008205 A 10 6/10页 11 状态信息,其中每个节点的名字。

37、元素的状态信息包括:该节点对应的路由指针、该节点对应 的子节点的数量、子节点对应的哈希值以及子节点的节点编号; 0088 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元 素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名 字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内 容网络名字分解后处于同一层级的名字元素。 0089 本申请实施例提供的方法,通过预先将路由列表中的内容网络名字经过哈希处 理,以哈希值的形式存储在阵列中,然后对待测的内容网络名字同样进行哈希处理,然后进 行哈希值的匹配工作,完成查询过程,相比于传。

38、统的查询方式,其路由压缩率更高、搜索效 率也更高。 0090 实施例二 0091 本实施例将介绍存储阵列的建立过程,如图2所示,该过程包括: 0092 步骤201:将路由列表中所有的内容网络名字进行分解; 0093 其中每一个内容网络名字的分解过程为:以分隔符为标志,将内容网络名字分解 为若干个由字符串组成的名字元素,按照从左到右的顺序,将每一个名字元素确定为一层。 0094 步骤202:将所有的内容网络名字分解后得到的每一个名字元素按照其所属层级 进行组合,形成具有层次结构的名字元素树; 0095 形成的名字元素树中除去根节点外的每个节点均存储有一个名字元素,保存有同 一层名字元素的节点属于。

39、同一层。 0096 步骤203:对所述名字元素树中的每一个名字元素进行哈希处理,得到与每一个 名字元素对应的哈希值,将哈希值与对应的名字元素共同保存在节点中,得到哈希编码 树; 0097 步骤204:将所述哈希编码树中的每一个节点进行编号; 0098 步骤205:将编号后的哈希编码树以阵列的形式进行存储。 0099 参见下表1以及附图3,表1为路由列表,顺序存储有多个内容网络名字,每个内 容网络名字作为一个路由地址,其通过分隔符进行分隔。图3中树状结构为经过上述步骤 201-204后形成的哈希编码树。可知,路由列表分解为多个名字元素后,名字元素分属与多 个层级。举例如:org和com都属于第二。

40、层级,sina、google、baidu、soso、google都属于第 二层级,等等。而哈希编码树也可以分为多个层级,其中第一层级为根节点,其不存储任何 信息,第二层级包括两个节点,分别存储名字元素org和com,第三层级包括四个节点,分别 存储名字元素sina、google、baidu、soso和google。可见,哈希编码树与名字元素树是相 互对应的,二者之间互相映射。并且,各节点在存储名字元素的同时,还同时存储有该名字 元素对应的哈希值。 0100 内容网络名字 /org/sina /org/sina/play 说 明 书CN 104008205 A 11 7/10页 12 /org/。

41、sina/game/wow /org/google /org/google/videos /com/baidu /com/baidu/maps /com/soso /com/google /com/google/news 0101 表1 0102 而在对哈希编码树中的节点进行编号时,同理参见图3,我们将根节点编号为1, 从上至下,从左至右遍历哈希编码树,按照顺序为每个节点进行编号。 0103 这里提到了哈希值的概念,我们介绍一下对名字元素进行哈希处理,得到哈希编 码树的过程: 0104 我们采用一种n元语法的递归增量哈希函数H(h,s),来对名字元素树中所有的名 字元素进行哈希处理,产生一个连。

42、续的相关联的哈希值序列。也就是说,哈希函数对于首次 通过第i个语法产生的哈希值与第i-1个语法产生的哈希值是相互关联的。 0105 我们定义名字元素序列S(x,s 1 ,s 2 ,s 3 , s i ),其中x为预设值,主要是为了算 法的需要而引入的一个值,其可以是内容网络名字的格式scheme。s i 为第i个名字元素,利 用哈希函数H(h,s)进行计算,得到与各个名字元素对应的哈希值:h 0 H(0,x)、h 1 H(h 0 , s 1 )、h 2 H(h 1 ,s 2 )h i H(h i-1 ,s i )。可见,每一个哈希值均是产生下一个哈希值所必须的 参数,即哈希值序列中的每个哈希值。

43、均是相关联的。 0106 通过这种哈希处理,降低了名字元素树中属于不同父节点的相同的名字元素可能 产生相同的哈希值的概率。例如,如图3所示,节点7中的名字元素google与节点D中的名 字元素google相同,但是二者分属于不同的父节点2和父节点9。传统的算法有可能会将 节点7中的名字元素与节点D中的名字元素编码为相同的哈希值,这当然是不正确的,而本 申请所采用的哈希处理方法,通过综合考虑当前节点所存储的名字元素以及当前节点的上 一节点的哈希值,生成的哈希值能够有效的避免上述错误情况,提高了名字查询的正确性。 0107 实施例三 0108 上述实施例二中步骤205:将编号后的哈希编码树以阵列的。

44、形式进行存储,其具 体实现过程参见图4所示: 0109 步骤401:按照编号顺序,将哈希编码树中每一个节点对应的名字元素的位置信 息存储在基础阵列中; 0110 所述位置信息包括:每个名字元素的状态信息所在的过渡阵列,以及在该过渡阵 列中的偏移量。 说 明 书CN 104008205 A 12 8/10页 13 0111 步骤402:按照基础阵列中存储的每个名字元素的位置信息的指示,将对应的名 字元素的状态信息存储在对应的过渡阵列中的指定位置处; 0112 每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应的子 节点的数量、子节点对应的哈希值以及子节点的节点编号。 0113 按。

45、照上述建立的基础阵列和过渡阵列,实施例一中的步骤104:查询预先建立的 存储阵列,可以参照图5的方法实现: 0114 步骤S1、令基础阵列中首个编号的节点为当前节点,令所述待测哈希值序列中的 第一个哈希值为当前哈希值; 0115 步骤S2、获取所述当前节点所对应的名字元素的位置信息; 0116 步骤S3、根据所述当前节点所对应的名字元素的位置信息获取指定的过渡阵列中 当前节点所对应的名字元素的状态信息; 0117 步骤S4、判断当前节点所对应的名字元素的状态信息中包含的若干个子节点分别 对应的哈希值组中是否存在与所述当前哈希值相同的,若存在,执行步骤S5,否则执行步骤 S8; 0118 步骤S。

46、5、获取相同哈希值的子节点的节点编号,并将该节点编号确定为基础阵列 中的新的当前节点,将所述待测哈希值序列中的下一个哈希值确定为新的当前哈希值; 0119 步骤S6、判断当前节点是否为待测哈希值序列中最后一个哈希值,如果是,执行步 骤S7,否则执行步骤S2; 0120 步骤S7、获取与待测哈希值序列中最后一个哈希值相同的哈希值所对应的节点的 路由指针; 0121 步骤S8、提示查找失败,退出查询过程。 0122 另外一种实现方式,参见图6所示: 0123 与图5所不同的,仅仅是将原步骤S8改变为步骤S9,步骤S9:利用待测内容网络 名字更新路由列表,退出查询过程。 0124 上述两种实现方式,。

47、当待测内容网络名字在路由列表中时,按照上述方式可以查 找到最终的路由指针,利用该路由指针,确定其在路由列表中的位置。当待测内容网络名字 不在路由列表中时,第二种方式可以将该待测内容网络名字添加到路由列表中,然后由更 新后的路由列表来更新存储阵列。 0125 在上述实施例的基础上,存储阵列除了包括有基础阵列和过渡阵列,还可以包括 一个管理阵列。该管理阵列存储有每一个过渡阵列中空闲存储条目的起始与终止位置。在 此基础上,在向过渡阵列中存放名字元素的状态信息时,可以在管理阵列的指导下,存放在 空闲条目中。 0126 实施例四 0127 与实施例相对应的,本实施例将提供一种内容路由的查询系统,参见图7。

48、: 0128 该查询系统包括: 0129 获取单元71,用于获取待测内容网络名字; 0130 第一分解单元72,用于将所述待测内容网络名字进行分解,得到若干个由字符串 组成的名字元素; 0131 第一哈希处理单元73,用于分别对每个名字元素进行哈希处理,得到对应的待测 说 明 书CN 104008205 A 13 9/10页 14 哈希值序列; 0132 查询单元74,用于查询预先建立的存储阵列; 0133 其中:所述存储阵列包括基础阵列和若干个过渡阵列,所述基础阵列中按照节点 的编号顺序,分别存储有哈希编码树中各个节点对应的名字元素的位置信息,所述位置信 息包括:每个名字元素的状态信息所在的。

49、过渡阵列,以及在该过渡阵列中的偏移量;若干 个所述过渡阵列按照顺序依次排列,每个所述过渡阵列中存储有若干个节点的名字元素的 状态信息,其中每个节点的名字元素的状态信息包括:该节点对应的路由指针、该节点对应 的子节点的数量、子节点对应的哈希值以及子节点的节点编号; 0134 其中,哈希编码树由多个具有编号的节点、各节点对应保存的名字元素及名字元 素的哈希值构成,其中各节点对应保存的名字元素为通过对路由列表中所有的内容网络名 字进行分解而得到的,哈希编码树中处于同一层的节点分别存储的是:路由列表中每个内 容网络名字分解后处于同一层级的名字元素。 0135 本申请实施例提供的查询系统,通过预先将路由列表中的内容。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1