CN103368852A - 用于处理哈希冲突的方法和系统 - Google Patents
用于处理哈希冲突的方法和系统 Download PDFInfo
- Publication number
- CN103368852A CN103368852A CN2013102177764A CN201310217776A CN103368852A CN 103368852 A CN103368852 A CN 103368852A CN 2013102177764 A CN2013102177764 A CN 2013102177764A CN 201310217776 A CN201310217776 A CN 201310217776A CN 103368852 A CN103368852 A CN 103368852A
- Authority
- CN
- China
- Prior art keywords
- lookup table
- hash
- fast lookup
- list item
- collision
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种用于处理哈希冲突的方法和系统,所述方法包括:构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项;查找所述哈希表和所述快速查找表,确定所述发生哈希冲突的表项是否被命中。上述技术方案中,与哈希表中存储的表项发生哈希冲突的表项存储在快速查找表中。可以通过查找所述快速查找表和所述哈希表确定所述与哈希表中存储的表项发生哈希冲突的表项是否被命中。上述技术方案有助于扩大能够被查找的表项的范围。
Description
技术领域
本发明涉及信息处理领域,尤其涉及一种用于处理哈希冲突的方法和系统。
背景技术
通信领域经常会涉及到查找表(lookup table)。所述查找表可以是路由表、媒体访问控制(Media Access Control,MAC)协议地址表、地址解析协议(AddressResolution Protocol,ARP)表或者入标签映射表(incoming label mapping,ILM)表。查找表可以通过哈希表实现。构建哈希表时有可能发生哈希冲突。这使得能够被查找的表项受到了限制。
发明内容
本发明实施例的目的在于提供一种用于处理哈希冲突的方法和系统,有助于扩大能够被查找的表项的范围。
第一方面,提供了一种用于处理哈希冲突的方法,所述方法包括:
构建快速查找表,并将所述快速查找表存储到随机访问存储器(RandomAccess Memory简称RAM),所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项;
查找所述哈希表和所述快速查找表,确定所述发生哈希冲突的表项是否被命中。
在第一方面的第一种可能的实施方式中,在所述构建快速查找表,并将所述快速查找表存储到随机访问存储器的步骤之后,查找所述哈希表和所述快速查找表的步骤之前,所述方法还包括:
按照所述快速查找表的表项排序规则对所述快速查找表中的表项进行排序。
结合第一方面或者第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述快速查找表包括:二分表、全匹配表、线性表、链表或者树表。
结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述查找所述快速查找表的步骤,包括:
根据所述快速查找表的查找规则查找所述快速查找表。
第二方面,提供了一种用于处理哈希冲突的系统,所述系统包括:
构建单元,用于构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项;
确定单元,用于查找所述哈希表和所述构建单元构建的快速查找表,确定所述发生哈希冲突的表项是否被命中。
在第二方面的第一种可能的实施方式中,所述系统还包括:
排序单元,用于在所述构建单元将所述快速查找表存储到所述随机访问存储器后,以及所述确定单元确定所述发生哈希冲突的表项是否被命中之前,按照所述快速查找表的表项排序规则对所述快速查找表中的表项进行排序。
结合第二方面或者第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述快速查找表构建单元构建的快速查找表包括:二分表、全匹配表、线性表、链表或者树表。
结合第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述确定单元包括:
查找子单元,用于根据所述快速查找表的查找规则查找所述快速查找表。
上述技术方案中,与哈希表中存储的表项发生哈希冲突的表项存储在快速查找表中。可以通过查找所述快速查找表和所述哈希表确定所述与哈希表中存储的表项发生哈希冲突的表项是否被命中。因此,上述有助于扩大能够被查找的表项的范围。
附图说明
图1是本发明实施例提供的用于处理哈希冲突方法的流程示意图;
图2是本发明实施例提供的用于处理哈希冲突系统的结构示意图;
图3是本发明实施例提供的用于处理哈希冲突系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示为本发明实施例提供的用于处理哈希冲突方法的流程图。所述方法的执行主体可以是网络设备。所述网络设备可以是路由器、交换机、防火墙或者负载均衡器。所述方法包括:
S101、构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项。
S101的执行主体可以是所述网络设备的中央处理单元(central processingunit,CPU)。所述CPU可以位于所述网络设备的控制平面。
举例来说,所述快速查找表可以是二分表(dichotomy table)、全匹配表(exact matching table)、线性表(linear table)、链表(linked list)或者树表。所述树表可以是二叉树表。所述随机访问存储器可以是同步动态随机存取存储器(Synchronous Dynamic Random Access Memory简称SARAM)或者同步静态随机存取存储器(Synchronous Static Random Access Memory简称SSRAM)。所述快速查找表可以是ARP表、路由表、MAC协议地址表或者ILM表。
举例来说,S101可以是,如果哈希关键字(hash key)1对应的哈希值(hashvalue)等于hash key2对应的哈希值,则将hash key1存储在所述哈希表中。将所述hash key2存储在所述快速查找表中。
举例说明:
假设有网际协议(Internet Protocol,IP)地址1和IP2两个表项需要进行哈希计算,IP1经过哈希函数计算得到哈希值1,则将IP1-哈希值1放入哈希表中;IP2经过哈希函数计算得到哈希值2,如果哈希值2与哈希值1发生哈希冲突,则将IP2-哈希值2放入快速查找表中。
S102、查找所述哈希表和所述快速查找表,确定所述发生哈希冲突的表项是否被命中。
S102的执行主体可以是所述网络设备中的网络处理器(network processor,NP)。具体来说,可以是所述NP中的查找逻辑(search logic)。
举例来说,快速查找表为二分表,则根据二分查找法对表项进行快速查找。
举例来说,可以并行查找所述哈希表和所述快速查找表。也可以先查找所述哈希表,再查找所述快速查找表。也可以先查找所述快速查找表,再查找所述哈希表。
举例来说,如果快速查找表是二分表,则按照二分查找法对发生哈希冲突的表项进行查找;如果快速查找表是全匹配表,则按照全匹配查找法对发生哈希冲突的表项进行查找。二分查找法和全匹配查找法均使用现有技术,在此不做赘述。此处的二分查找法和全匹配查找法只是为了举例说明,并不用于限制本发明。
上述技术方案中,与哈希表中存储的表项发生哈希冲突的表项存储在快速查找表中。可以通过查找所述快速查找表和所述哈希表确定所述与哈希表中存储的表项发生哈希冲突的表项是否被命中。因此,上述技术方案有助于扩大能够被查找的表项的范围。
作为本发明的一个可选实施例,在所述构建快速查找表,并将所述快速查找表存储到随机访问存储器之后,以及,查找所述哈希表和所述快速查找表,确定所述发生冲突的表项是否被命中之前,所述方法还包括:
按照所述快速查找表的表项排序规则对所述快速查找表中的表项进行排序。
假设所述快速查找表是二分表。按照排序规则对所述快速查找表进行排序后,所述排序后的快速查找表可以参考情况(1):
0 IP1
1 IP2
2 IP3 (1)
……
情况(1)中,IP1的值小于IP2的值,IP2的值小于IP3的值。
如果IP2先被放入到二分表中,而IP1后被放入二分表中,有可能出现情况(2):
0 IP2
1 IP1 (2)
对情况(2)中的表项按照二分表的排序规则进行排序后,有助于达到快速查找的效果。
如图2所示为本发明实施例提供的用于处理哈希冲突的系统的结构示意图。所述系统可以用于执行图1所示的方法。所述系统可以是网络设备。所述网络设备可以是路由器、交换机、防火墙或者负载均衡器。所述系统包括:
构建单元201,用于构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项。
举例来说,构建单元201可以是所述网络设备的CPU。所述CPU可以位于所述网络设备的控制平面。
该快速查找表可以是:二分表、全匹配表、线性表、链表或者树表。所述随机访问存储器可以是:SARAM或者SSRAM。举例来说,构建单元201可以是,如果hash key 1对应的哈希值等于hash key 2对应的哈希值,则将hash key1存储在所述哈希表中。将所述hash key 2存储在所述快速查找表中。
举例来说,所述确定单元201包括:
查找子单元2011,用于根据所述快速查找表的查找规则查找所述快速查找表。
举例说明:
假设有IP1和IP2两个表项需要进行哈希计算,IP1经过哈希函数计算得到哈希值1,则将IP1-哈希值1放入哈希表中;IP2经过哈希函数计算得到哈希值2,如果哈希值2与哈希值1发生哈希冲突,则将IP2-哈希值2放入快速查找表中。
确定单元202,用于查找所述哈希表和所述构建单元201构建的快速查找表,确定所述发生哈希冲突的表项是否被命中。
确定单元202可以是所述网络设备中的NP。具体来说,可以是所述NP中的查找逻辑。
举例来说,快速查找表为二分表,则根据二分查找法对表项进行快速查找。
举例来说,可以并行查找所述哈希表和所述快速查找表。也可以先查找所述哈希表,再查找所述快速查找表。也可以先查找所述快速查找表,再查找所述哈希表。
举例来说,如果快速查找表是二分表,则按照二分法查找法对发生哈希冲突的表项进行查找;如果快速查找表是全匹配表,则按照全匹配查找法对发生哈希冲突的表项进行查找。二分查找法和全匹配查找法均使用现有技术,在此不做赘述。此处的二分查找法和全匹配查找法只是为了举例说明,并不用于限制本发明。
上述技术方案中,与哈希表中存储的表项发生哈希冲突的表项存储在快速查找表中。可以通过查找所述快速查找表和所述哈希表确定所述与哈希表中存储的表项发生哈希冲突的表项是否被命中。因此,上述有助于扩大能够被查找的表项的范围。
作为本发明的一个可选实施例,所述系统还包括:
排序单元,用于在所述构建单元将所述快速查找表存储到所述随机访问存储器后,以及所述确定单元确定所述发生哈希冲突的表项是否被命中之前,按照所述快速查找表的表项排序规则对所述快速查找表中的表项进行排序。
假设所述快速查找表是二分表。按照排序规则对所述快速查找表进行排序后,所述排序后的快速查找表可以参考情况(1):
0 IP1
1 IP2
2 IP3 (1)
……
情况(1)中,IP1的值小于IP2的值,IP2的值小于IP3的值。
如果IP2先被放入到二分表中,而IP1后被放入二分表中,有可能出现情况(2):
0 IP2
1 IP1 (2)
对情况(2)中的表项按照二分表的排序规则进行排序后,有助于达到快速查找的效果。
如图3所示为本发明实施例提供的用于处理哈希冲突的系统的结构示意图。所述系统可以用于执行图1所示的方法。所述系统可以是网络设备。所述网络设备可以是路由器、交换机、防火墙或者负载均衡器。如图3所示,本实施例提供的系统包括:至少一个处理器301、存储器302、通信接口303和总线。处理器301、存储器302和通信接口303通过总线连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Componet Interconnect 简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、控制总线等。为了便于表示,图3中仅用一条粗线表示,但并不表示图3所示的系统只能有一根总线或一种类型的总线。其中:
存储器302用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器302可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个存盘存储器。
在一个实施例中,处理器301通过读取存储器302中存储的可执行程序代码来运行于所述可执行程序代码对应的程序,以用于:
构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项。
所述快速查找表包括但不限于:二分表、全匹配表、线性表、链表、树表等。所述随机访问存储器包括但不限于:SARAM、SSRAM等。构建快速查找表,并将所述快速查找表存储到随机访问存储器可以是,如果hash key1对应的哈希值等于hash key2对应的哈希值,则将hash key1存储在所述哈希表中。将所述hash key2存储在所述快速查找表中。
举例说明:
假设有IP1和IP2两个表项需要进行哈希计算,IP1经过哈希函数计算得到哈希值1,则将IP1-哈希值1放入哈希表中;IP2经过哈希函数计算得到哈希值2,如果哈希值2与哈希值1发生哈希冲突,则将IP2-哈希值2放入快速查找表中。
查找所述哈希表和所述快速查找表,确定所述发生哈希冲突的表项是否被命中。
举例来说,如果快速查找表是二分表,则按照二分查找法对发生哈希冲突的表项进行快速查找;如果快速查找表是全匹配表,则按照全匹配查找法对发生哈希冲突的表项进行快速查找。二分查找法和全匹配查找法均使用现有技术,在此不做赘述。此处的二分查找法和全匹配查找法只是为了举例说明,并不用于限制本发明。
上述技术方案中,与哈希表中存储的表项发生哈希冲突的表项存储在快速查找表中。可以通过查找所述快速查找表和所述哈希表确定所述与哈希表中存储的表项发生哈希冲突的表项是否被命中。因此,上述技术方案有助于扩大能够被查找的表项的范围。
作为本发明的一个可选实施例,在所述构建快速查找表,并将所述快速查找表存储到随机访问存储器的步骤之后,查找所述哈希表和所述快速查找表,确定所述发生冲突的表项是否被命中的步骤之前,还包括:
按照所述快速查找表的表项排序规则对所述快速查找表中的表项。
在本发明实施例中,快速查找表中的表项通常需要根据快速查找表的表项排序规则进行排序,经过排序的表项在后续的步骤中,才可以起到快速查找的效果。
处理器301可能是一个CPU,或者是特定集成电路(Application SpecificIntegrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
需说明的是,上述处理器301除了具有上述功能之外,还可用于执行上述方法实施例中的其他流程,再此不再赘述。
通信接口303主要用于实现本实施例的流量来源,确定设备与其他设备或装置之间的通信。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种用于处理哈希冲突的方法,其特征在于,所述方法包括:
构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项;
查找所述哈希表和所述快速查找表,确定所述发生哈希冲突的表项是否被命中。
2.如权利要求1所述的方法,其特征在于,在所述构建快速查找表,并将所述快速查找表存储到随机访问存储器之后,查找所述哈希表和所述快速查找表之前,所述方法还包括:
按照所述快速查找表的表项排序规则对所述快速查找表中的表项进行排序。
3.如权利要求1~2任一项所述的方法,其特征在于,所述快速查找表包括二分表、全匹配表、线性表、链表或者树表。
4.如权利要求3所述的方法,其特征在于,所述查找所述快速查找表,包括:
根据所述快速查找表的查找规则查找所述快速查找表。
5.一种用于处理哈希冲突的系统,其特征在于,所述系统包括:
构建单元,用于构建快速查找表,并将所述快速查找表存储到随机访问存储器,所述快速查找表用于存储与哈希表中存储的表项发生哈希冲突的表项;
确定单元,用于查找所述哈希表和所述快速查找表构建单元构建的快速查找表,确定所述发生哈希冲突的表项是否被命中。
6.如权利要求5所述的系统,其特征在于,所述系统还包括:
排序单元,用于在所述构建单元将所述快速查找表存储到所述随机访问存储器后,以及所述确定单元确定所述发生哈希冲突的表项是否被命中之前,按照所述快速查找表的表项排序规则对所述快速查找表中的表项进行排序。
7.如权利要求5~6任一项所述的系统,其特征在于,所述快速查找表包括二分表、全匹配表、线性表、链表或者树表。
8.如权利要求7所述的系统,其特征在于,所述确定单元包括:
查找子单元,用于根据所述快速查找表的查找规则查找所述快速查找表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102177764A CN103368852A (zh) | 2013-06-04 | 2013-06-04 | 用于处理哈希冲突的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102177764A CN103368852A (zh) | 2013-06-04 | 2013-06-04 | 用于处理哈希冲突的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103368852A true CN103368852A (zh) | 2013-10-23 |
Family
ID=49369417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102177764A Pending CN103368852A (zh) | 2013-06-04 | 2013-06-04 | 用于处理哈希冲突的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103368852A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992577A (zh) * | 2017-12-04 | 2018-05-04 | 北京奇安信科技有限公司 | 一种哈希表数据冲突处理方法及装置 |
CN111221823A (zh) * | 2019-12-31 | 2020-06-02 | 上海铿诚智能科技有限公司 | 一种基于链路管理表的数据处理方法及装置 |
CN115118662A (zh) * | 2022-06-16 | 2022-09-27 | 浪潮思科网络科技有限公司 | 一种基于arp表的哈希冲突处理方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040100950A1 (en) * | 2002-11-21 | 2004-05-27 | Anindya Basu | Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures |
CN101072178A (zh) * | 2007-06-22 | 2007-11-14 | 中兴通讯股份有限公司 | 一种交换机路由表的管理方法 |
CN102346735A (zh) * | 2010-07-29 | 2012-02-08 | 高通创锐讯通讯科技(上海)有限公司 | 一种减少哈希冲突的哈希查找方法 |
-
2013
- 2013-06-04 CN CN2013102177764A patent/CN103368852A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040100950A1 (en) * | 2002-11-21 | 2004-05-27 | Anindya Basu | Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures |
CN101072178A (zh) * | 2007-06-22 | 2007-11-14 | 中兴通讯股份有限公司 | 一种交换机路由表的管理方法 |
CN102346735A (zh) * | 2010-07-29 | 2012-02-08 | 高通创锐讯通讯科技(上海)有限公司 | 一种减少哈希冲突的哈希查找方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992577A (zh) * | 2017-12-04 | 2018-05-04 | 北京奇安信科技有限公司 | 一种哈希表数据冲突处理方法及装置 |
CN107992577B (zh) * | 2017-12-04 | 2020-08-11 | 奇安信科技集团股份有限公司 | 一种哈希表数据冲突处理方法及装置 |
CN111221823A (zh) * | 2019-12-31 | 2020-06-02 | 上海铿诚智能科技有限公司 | 一种基于链路管理表的数据处理方法及装置 |
CN111221823B (zh) * | 2019-12-31 | 2023-05-23 | 上海铿诚智能科技有限公司 | 一种基于链路管理表的数据处理方法及装置 |
CN115118662A (zh) * | 2022-06-16 | 2022-09-27 | 浪潮思科网络科技有限公司 | 一种基于arp表的哈希冲突处理方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107783815B (zh) | 一种确定虚拟机迁移的方法和装置 | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
US20180241608A1 (en) | Forwarding ethernet packets | |
CN108848034B (zh) | 一种网络设备及表项学习方法 | |
CN106789859B (zh) | 报文匹配方法及装置 | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
US9253090B2 (en) | System and method for reduced forwarding information storage | |
US11463360B2 (en) | System and method for range matching | |
US10574570B2 (en) | Communication processing method and apparatus | |
US10659361B2 (en) | Packet processing | |
US20200328914A1 (en) | Packet transmission | |
CN107147581B (zh) | 路由表项的维护方法和装置 | |
CN104239337A (zh) | 基于tcam的查表处理方法及装置 | |
CN103368852A (zh) | 用于处理哈希冲突的方法和系统 | |
CN104539538B (zh) | 路由器的ip地址匹配方法和路由器的数据包转发方法 | |
CN112187636B (zh) | Ecmp路由的存储方法及装置 | |
US20230041395A1 (en) | Method and Device for Processing Routing Table Entries | |
US20170012874A1 (en) | Software router and methods for looking up routing table and for updating routing entry of the software router | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
CN108632125B (zh) | 一种组播表项管理方法、装置、设备及机器可读存储介质 | |
US9294399B2 (en) | Method for learning media access control address, network device, and system | |
CN104994186A (zh) | 媒体访问控制地址的查询方法、处理器及装置 | |
US11563715B2 (en) | Pattern matching by a network device for domain names with wildcard characters | |
CN112491723B (zh) | 网关报文转发方法、装置、存储介质及网关 | |
US20130230053A1 (en) | System and Method for Facilitating Communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131023 |
|
RJ01 | Rejection of invention patent application after publication |