[发明专利]一种域名类信息的存储及查询方法以及系统有效
申请号: | 200610060345.1 | 申请日: | 2006-04-13 |
公开(公告)号: | CN101055574A | 公开(公告)日: | 2007-10-17 |
发明(设计)人: | 刘竟;郑志彬;刘廷永;孙知信;宫婧 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;H04L29/12 |
代理公司: | 中原信达知识产权代理有限责任公司 | 代理人: | 王永文 |
地址: | 518129广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 域名 信息 存储 查询 方法 以及 系统 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种域名类信息的存储及快速查询方法以及域名类信息存储查询系统。
背景技术
随着计算机技术的飞速发展,信息的数量呈几何级数增长。如此大的信息量对于查找和存放信息都带来了不少困难。我们就需要有效找到数据的方法,查找的目的在于从一些数据中寻找一个特定的值,由此产生的各种查找方法都是为了追求更高的效率与更方便的操作。对于域名的查找同样如此,例如在具体的某个网络应用中如果需要知道某个域名是否已经被保存,如果已经被保存,就需要对发来的数据包做一次重定向。这种情况下,就需要很快的知道某个域名是否被存储了,如果花费大量时间在查询上会使网络的性能大打折扣,并且可能出现很多网络问题。
现有的相关检索技术主要有前缀树,BSD radix树两种。
BSD radix树是一种为查找IP地址而设计的数据结构。BSD radix树的节点的存储结构如图1所示,其内部节点和叶子节点使用的都是radix_node结构体,只是少数字段的定义有所不同。首先通过内部节点来查看radix_node结构体中的各个字段。该结构主要保存了指向子节点的指针和指向父节点的指针,还有需要检测的bit位的位置信息。BSDradix树的查找过程分为三步完成:第一步,如图2所示,寻找叶子节点,假设现在需要在这个radix树中查找某个条路由。从树的顶端开始,根据沿途内部节点指定的bit进行测试。首先测试根节点的测试位,如果根据根节点的测试位测试结果是1那么进入左子树,如果测试结果是0就进入右子树。下面按照上述方法继续判断,将会遇到一个待测试字段为负值的节点,即叶子节点,于是查找操作将停止在此处。第二步,辨重:如果在第一步中找到的叶子节点与查找键不满足匹配的条件,则需要遍历这个叶子节点的重复键链表。由于重复键链表中的叶子节点与第一步中找到的叶子节点的键值(也就是IP地址)是完全相同的,只是掩码呈逐渐缩短的趋势,因此可能在重复键链表中存在网络匹配的可能。重复键处理的过程如图3所示。第三步,回溯:到目前为止,只是使用作为查找键的IP地址在radix树中根据内部节点指示的bit测试位置找到了某个叶子节点,并进行了重复键处理,仍然没有找到匹配的叶子节点。这并不能排除在radix树中还存在有其它可能满足网络匹配条件的叶子节点,因此就需要沿着来时的内部节点路径向树顶回溯,寻求网络匹配的可能。回溯过程如图4所示。回溯途中经过的是一系列的内部节点,对于每一个内部节点,将会判断它是否挂的有掩码链表,掩码链表在图4中用粗实线表示。没有掩码链表的内部节点将不予考虑,直接通过。如果某个内部节点挂的有掩码链表,那说明在它的子树中可能存在着网络匹配的可能,需要停下来做一下判断再决定是否继续回溯。
BSD radix树是一种基于以二进制表示的键值的查找树,尤其适合于处理非常长的、可变长度的键值。字符串当然也可以看作是一个二进制的键值,但是字符串中的每个字符的可能取值只有几十种(a-z,A-Z,等等),比起纯的二进制键值的每个字节可以取256种的情况小很多,但该方法将字符串也当作二进制流来做查询,因此用这种方法查询字符串不能很好体现出速度的优势。
前缀树多在数据挖掘中被使用,其存储方式如图5所示。前缀树如果把它的节点的字符集限定在26个英文字母之内,可以看作是最多只有26叉的树型结构。前缀树也可以提供一种相对比较快速的查询方法。但前缀树的结构保存了很多多余的字符串信息,这导致了在查找域名的时候会引起不必要的回溯。例如:如图4所示的前缀树中要查找“中国人”,首先从根节点找起,“中”字匹配,进入“中国”子树。然后从头开始比较“中国”是否匹配,造成回溯。接着又进入“中国人”节点,又重新开始匹配,大量的时间浪费在不必要的回溯上了。该方法用于域名类字符串存储时,既浪费存储空间,又由于树结构深度深,查找速度就慢,并且,这种技术同样不能压缩数据的存储量。
发明内容
本发明所要解决的技术问题是:提供一种适应快速查找域名类字符串的存储方式;
本发明要解决的另一问题是:提供一种与上述存储方法相对应的域名类字符串查询方法,该查询方法可以快速有效地判断某个域名类字符串是否已经被存储。
本发明还提供一种域名类信息存储查询系统。
本发明为解决上述技术问题所采用的技术方案为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610060345.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种浓缩处理低放废水的方法
- 下一篇:智能菜单电控加热炉
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置