[发明专利]表项查找方法和装置无效
申请号: | 200910088361.5 | 申请日: | 2009-06-26 |
公开(公告)号: | CN101594319A | 公开(公告)日: | 2009-12-02 |
发明(设计)人: | 裴龑 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/12;H04L29/06 |
代理公司: | 北京同立钧成知识产权代理有限公司 | 代理人: | 刘 芳 |
地址: | 518129广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查找 方法 装置 | ||
技术领域
本发明涉及通信技术,尤其涉及一种表项查找方法和装置。
背景技术
随着网络的发展,IPv6和精细化管理是日后发展的必然趋势。现在的IPv4的网络地址为32bit,IPv6网络地址为128bit,从而导致使用网络地址作为关键(Key)值进行完全匹配(Full Match,以下简称:FM)表的表项查找的关键值长度有了巨大的增长,使得表项查找效率急剧下降。同理,网络上现在流行的对数据流量进行精细化管理则是基于数据流的处理,其利用报文五元组(源IP地址+目的IP地址+协议类型+源端口号+目的端口号)来区分报文所属的数据流,需要的关键值长度约为120bit,随着网络精细化管理需要的进一步提升,会出现利用七元组、九元组等,区分报文所属的数据流所需要的关键值长度更为庞大,也会使得FM表的表项查找效率急剧下降。
现在普遍使用的一种FM表的表项查找方案是哈希(harsh)表。哈希表指的是通过设定的哈希函数和所选中的处理冲突的方法,将一组关键字映像到一个有限的、地址连续的地址集上,并以关键字在地址集中的索引作为相应记录在FM表中的存储位置。在哈希表中,若输入的两个关键字不同而输出的函数值相同,则称这两个关键字为“同义词”,称这种现象为“冲突”。对于FM表而言,很难找到没有冲突的哈希函数。可以采用多次哈希解决冲突问 题。但是,对于长关键值的FM表而言,表项数据较多,表项冲突严重,查找效率较低。即使采用多次哈希后表项数据仍然较多,查找效率仍然较低。
发明内容
本发明实施例提供了一种提高长关键字表项查找效率的表项查找方法和装置,用以实现提高长关键值表项的查找效率。
本发明实施例提供了一种提高长关键字表项查找效率的表项查找方法,其中,所述长关键字为原始关键字,所述方法包括:
将所述原始关键字分割为子关键字,分别以各子关键字作为第一关键字查找相应的第一级散列表,得到与所述第一关键字对应的第一表项,所述第一表项中保存有所述第一关键字的同义词的数量值以及指向第二级散列表的第一索引;
根据第一关键字的同义词的数量值最小的第一表项中保存的第一索引,获取所述第二级散列表,以所述原始关键字中除与所述第一关键字的同义词的数量值最小的第一表项对应的第一子关键字外的其他子关键字作为第二关键字查找所述第二级散列表,得到与所述第二关键字对应的第二表项,所述第二表项中保存有指向第三级散列表的第二索引;
根据所述第二索引,获取所述第三级散列表,所述第三级散列表的表项中保存有散列值以及指向内存空间的内存索引,以所述原始关键字作为第三关键字进行散列运算得到第三散列值,在所述第三级散列表中找到保存有所述第三散列值的第三表项,根据所述第三表项中保存的所述内存索引,通过关键字匹配,在所述内存空间中获取与所述原始关键字对应的数据项;
其中,所述原始关键字为网络地址。
本发明实施例提供了一种提高长关键字表项查找效率的表项查找装置,其中,所述长关键字为原始关键字,所述装置包括:
分割模块,用于将所述原始关键字分割为子关键字;
第一查找模块,用于分别以各子关键字作为第一关键字查找相应的第一级散列表,得到与所述第一关键字对应的第一表项,所述第一表项中保存有所述第一关键字的同义词的数量值以及指向第二级散列表的第一索引;
第二查找模块,用于根据第一关键字的同义词的数量值最小的第一表项中保存的第一索引,获取所述第二级散列表,以所述原始关键字中除与所述第一关键字的同义词的数量值最小的第一表项对应的第一子关键字外的其他子关键字作为第二关键字查找所述第二级散列表,得到与所述第二关键字对应的第二表项,所述第二表项中保存有指向第三级散列表的第二索引;
第三查找模块,用于根据所述第二索引,获取所述第三级散列表,所述第三级散列表的表项中保存有散列值以及指向内存空间的内存索引,以所述原始关键字作为第三关键字进行散列运算得到第三散列值,在所述第三级散列表中找到保存有所述第三散列值的第三表项;
匹配模块,用于根据所述第三表项中保存的所述内存索引,通过关键字匹配,在所述内存空间中获取与所述原始关键字对应的数据项;
其中,所述原始关键字为网络地址。
本发明实施例将原始关键字分割为子关键字,找到第一关键字的同义词最少的第一表项进行下一步查找,以有限的空间资源换取查找效率的提升,采用具有较少散列值的第三级散列表进行关键字匹配,优化了关键字匹配的效率,大幅度地提高了长关键字表项的查找效率。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910088361.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:上传动快锻液压机的快速换砧装置
- 下一篇:板片矫正机