CN103581023A - 实现最长掩码匹配的方法及装置 - Google Patents
实现最长掩码匹配的方法及装置 Download PDFInfo
- Publication number
- CN103581023A CN103581023A CN201310544159.5A CN201310544159A CN103581023A CN 103581023 A CN103581023 A CN 103581023A CN 201310544159 A CN201310544159 A CN 201310544159A CN 103581023 A CN103581023 A CN 103581023A
- Authority
- CN
- China
- Prior art keywords
- address
- coupling
- hash table
- final result
- tcam
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种实现最长掩码匹配的方法及装置,包括:将需查询的目的IP地址首先在TCAM表中查找匹配,若匹配到第一中间信息或匹配同时得到第一中间信息和第一最终结果,则将所述目的IP地址在第一级哈希表中继续查找匹配,若匹配得到第二中间信息或同时得到第二中间信息和第二最终结果,则将所述目的IP地址在第二级哈希表中进行最后的查找匹配。本发明将TCAM表查找与哈希表查找相结合,在大幅度减少TCAM表使用量的同时,有效控制了软件的复杂度及芯片的读写次数,满足芯片高速转发的需求。
Description
技术领域
本发明涉及最长掩码匹配算法领域,尤其是涉及一种将哈希表查找与TCAM表查找相结合实现最长掩码匹配的方法及装置。
背景技术
最长掩码匹配(LPM)表示了在IP路由查找中普遍应用的原则,即精确匹配。LPM本身并没有规定使用何种算法实现,所有实现了相同输出结果的思想都可以认为是LPM。在路由查找过程中路由的条目常是以192.168.10.0/24或者192.168.10.0/32这样的形式出现,/后表示的是该路由的掩码,掩码包含的是需要关心的内容,未包含的是无需关心的内容,掩码越大路由越精确,在IP相同但是掩码长度不同的情况下选取路由掩码更长的条目。上例中如果报文的目的IP地址是192.168.10.0时应该选取/32掩码的路由条目,如果报文的目的IP地址是192.168.10.10时则只能选取/24掩码的路由条目了(因为/24的条目最后8位不关心)。
目前的交换机通用方式是使用三态内容寻址存储器(TCAM)来实现LPM,TCAM的表项始终是按照一个顺序,从上往下查询并逐条匹配,如果匹配成功就立刻停止查询。如果TCAM表中,只有一条表项是匹配的,那就只能是一个结果;如果存在多条表项匹配,那就只能是优先级高的匹配成功,而优先级低的就不会被匹配了。于是只要将IP掩码大的放在TCAM表项的上部,就能保证LPM。但是由于TCAM占用面积大,能耗高,价格昂贵,所以在交换机中都尽量避免或减少TCAM的使用。
现有的交换机及路由器在存储和读取数据时,也普遍采用哈希算法,同样可以实现最长掩码匹配。哈希算法一种高效的查找算法,是将一组关键词(或者叫键值),通过哈希函数映射到一个连续的空间上,而这个连续的空间则被称之为哈希表,其中该一组关键词包括至少一个关键词。一般的哈希算法包含三个要素:关键词key、哈希函数hash_function和位置position。key是指需要确定位置的关键词,通过采用哈希函数对key进行哈希算法获得存储位置position信息,上述三者之间的关系可以简单的表示如下:Potion=hash_function(key)。但是由于哈希算法较TCAM表查找的方式,在软件复杂度上大幅度提高,同时还导致芯片的读写次数大量增加,从而无法实现芯片高速转发的要求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种实现最长掩码匹配的方法及装置,将TCAM表与哈希表相结合,实现对目的IP地址快速准确地查找。
为实现上述目的,本发明提出如下技术方案:一种实现最长掩码匹配的方法,将需查询的目的IP地址首先在TCAM表中查找匹配,若匹配到第一中间信息或同时匹配得到第一中间信息和第一最终结果,则将所述目的IP地址在第一级哈希表中继续查找匹配,若匹配得到第二中间信息或同时得到第二中间信息和第二最终结果,则将所述目的IP地址在第二级哈希表中进行最后的查找匹配。
优选地,将IP地址的前两个字节划分为第一部分,后两个字节分别划分为第二部分和第三部分,所述第一部分、第二部分和第三部分分别存放在所述TCAM表、第一级哈希表和第二级哈希表中。
所述目的IP地址的前两个字节在所述TCAM表中进行查找匹配,后两个字节分别在所述第一级哈希表和第二级哈希表中进行查找。
所述目的IP地址的前两个字节在所述TCAM表中进行查找匹配后,若未匹配到,则将所述目的IP地址丢弃;若匹配仅得到第一最终结果,则将所述第一最终结果丢弃或直接转发出去。
所述目的IP地址在第一级哈希表中进行查找后,若未匹配到,则将所述第一最终结果转发出去或丢弃;若匹配仅得到第二最终结果,则将所述第二最终结果丢弃或直接转发出去。
所述目的IP地址的最后一个字节在所述第二级哈希表中查找后,若未匹配到,则将所述第二最终结果丢弃或直接转发出去;若匹配到第三最终结果,则将所述第三最终结果丢弃或直接转发出去。
本发明还揭示了一种实现最长掩码匹配的装置,包括第一匹配装置、第二匹配装置和第三匹配装置,所述第一匹配装置中设置TCAM表,所述第二匹配装置和第三匹配装置中分别设置有第一哈希表和第二哈希表,所述TCAM表、第一哈希表和第二哈希表中存放复数个IP地址。
优选地,所述IP地址的前两个字节存放在所述TCAM表中,所述IP地址的后两个字节分别存放在所述第一哈希表和第二哈希表中。
本发明的有益效果是:本发明将TCAM表查找与哈希表查找相结合,在大幅度减少TCAM表使用量的同时,有效控制了软件的复杂度及芯片的读写次数,满足芯片高速转发的需求。
附图说明
图1是IPv4地址划分方式的示意图;
图2是本发明实现最长掩码匹配的方法的流程示意图;
图3是本实施例一实现最长掩码匹配的流程示意图;
图4是本实施例二实现最长掩码匹配的流程示意图;
图5是本发明实现最长掩码匹配的装置的结构示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种实现最长掩码匹配的方法,将TCAM表与哈希表相结合进行IP路由地址的查找,实现了IP路由的准确快速查找。
如图1所示,国际互联网协议第四版(IPv4)将IP地址空间划分为A类、B类、C类、D类和E类,其中A类、B类、C类是基本类,D类、E类作为多播和保留使用。在实际应用中,大都是C类路由,因为A类和B类路由数量本身就有限,其中A类只有127个,B类有4K个。所以实际应用的路由表中,通常掩码长度的范围为16~32之间。
IP地址是一个32位的二进制数,通常被分割为4个字节。如图2所示,本发明将IP地址的前两个字节(即16bit)划分为第一部分,存放到TCAM表中,将后两个字节(即8bit,8bit)再分别划分为第二部分和第三部分,将所述第二部分和第三部分分别存放到第一级哈希表和第二级哈希表中。例如IP地址为:192.168.10.200,则192.168、10、200分别存放在TCAM表、第一级哈希表和第二级哈希表中。
如图1所示,使用本发明进行IP地址查找时,首先将需要查找的目的IP地址的前两个字节在TCAM表中进行第一次查找匹配,匹配后通常会出现四种匹配结果:第一种,未匹配到相应的IP地址;第二种,匹配得到所需的第一最终结果;第三种,匹配得到下一级处理的第一中间信息;第四种,匹配同时得到下一级处理的第一中间信息和第一最终结果。若得到第一种匹配结果,则将该目的IP地址直接丢弃;若得到第二种匹配结果,则将该第一最终结果进行转发或丢弃;若得到第三种或第四种匹配结果,则将得到的第一中间信息在第一级哈希表中进行第二次查找。
在第一级哈希表中查找匹配后,同样会得到四种匹配结果,其中三种匹配后的处理方式与上述第二、三、四种匹配情况相同,即当匹配得到第二最终结果时,将所述第二最终结果转发或丢弃;当匹配得到第二中间信息或同时得到所述第二中间信息和第二最终结果时,则将所述第二中间信息在所述第二级哈希表中进行第三次查找。与在TCAM表中匹配后的处理方式不同,当出现查找未匹配时,则将在TCAM表中匹配得到的第一最终结果进行转发或直接丢弃。
将在第一级哈希表中查找得到的第二中间信息在第二级哈希表中进行最后查找,由于是最后一级,因此不会再有中间信息,只会出现两种匹配结果:第一种,未匹配到相应的IP地址,则将所述目的IP地址丢弃或将上级匹配到的第二最终结果直接进行转发;第二种,匹配得到相应的IP地址,则对匹配到第三最终结果进行转发。
如图3所示,本发明实施例一在TCAM表、第一级哈希表和第二级哈希表中存放两条IP地址,分别为192.168.10.200/32和192.168.0.0/16,若所需查找的目的IP地址为192.168.10.200时,首先在TCAM表中进行第一次查找,由于目的IP地址的前两个字节均为192.168,所以匹配得到一个中间信息192.168.10.200/32和一个最终结果192.168.0.0/16,将得到的中间信息192.168.10.200/32在第一级哈希表中继续查找后,由于该中间信息的第三个字节为10,所以在第一级哈希表中得到一个中间信息192.168.10.200/32,将该中间信息192.168.10.200/32在第二级哈希表中继续查找,根据最后字节200,所以最终匹配得到的结果为192.168.10.200/32。
如图4所示,本发明实施例二中,当所需查找的目的IP地址为192.168.0.0时,在TCAM表中查找同样得到中间信息192.168.10.200/32和一个最终结果192.168.0.0/16,在第一级哈希表中查找时,由于中间信息192.168.10.200/32的第三字节与哈希表中存放的不一致,所以查找未匹配到,此时便直接将在TCAM表中查找得到的最终结果192.168.0.0/16直接转发出去。
如图5所示,本发明还揭示了一种实现最长掩码匹配的装置,将TCAM表与哈希表相结合进行IP路由地址的查找,实现了IP路由的准确快速查找。包括第一匹配装置、第二匹配装置和第三匹配装置,所述第一匹配装置中设置有TCAM表,用于存放IP地址的前两个字节,所述第二匹配装置中设置第一哈希表,用于存放IP地址的第三个字节,第三匹配装置中设置第一第二哈希表,用于存放IP地址的最后一个字节。
查找时,将所需查找的目的IP地址首先在所述第一匹配装置中进行查找,若查找未匹配,则将目的IP地址丢弃;若匹配到第一最终结果,则立即停止查找,将所述第一最终结果直接转发或丢弃;若匹配得到第一中间信息或同时得到第一中间信息和第一最终结果,则将目的IP地址继续在第二匹配装置中进行查找。
在所述第二匹配装置中若未查找匹配到,则将所述第一最终结果直接转发或丢弃;若匹配到第二最终结果,则将所述第二最终结果直接转发或丢弃;若匹配得到第二中间信息或同时得到第二中间信息和第二最终结果,则将目的IP地址继续在第三匹配装置中进行查找。
在所述第三匹配装置中若未查找匹配到,则将所述第二最终结果直接转发或丢弃;若匹配到第三最终结果,则将所述第三最终结果直接转发或丢弃。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (8)
1.一种实现最长掩码匹配的方法,其特征在于,将需查询的目的IP地址首先在TCAM表中查找匹配,若匹配到第一中间信息或同时匹配得到第一中间信息和第一最终结果,则将所述目的IP地址在第一级哈希表中继续查找匹配,若匹配得到第二中间信息或同时得到第二中间信息和第二最终结果,则将所述目的IP地址在第二级哈希表中进行最后的查找匹配。
2.根据权利要求1所述的实现最长掩码匹配的方法,其特征在于,将IP地址的前两个字节划分为第一部分,后两个字节分别划分为第二部分和第三部分,所述第一部分、第二部分和第三部分分别存放在所述TCAM表、第一级哈希表和第二级哈希表中。
3.根据权利要求2所述的实现最长掩码匹配的方法,其特征在于,所述目的IP地址的前两个字节在所述TCAM表中进行查找匹配,后两个字节分别在所述第一级哈希表和第二级哈希表中进行查找。
4.根据权利要求3所述的实现最长掩码匹配的方法,其特征在于,所述目的IP地址的前两个字节在所述TCAM表中进行查找匹配后,若未匹配到,则将所述目的IP地址丢弃;若匹配仅得到第一最终结果,则将所述第一最终结果丢弃或直接转发出去。
5.根据权利要求3所述的实现最长掩码匹配的方法,其特征在于,所述目的IP地址在第一级哈希表中进行查找后,若未匹配到,则将所述第一最终结果转发出去或丢弃;若匹配仅得到第二最终结果,则将所述第二最终结果丢弃或直接转发出去。
6.根据权利要求3所述的实现最长掩码匹配的方法,其特征在于,所述目的IP地址的最后一个字节在所述第二级哈希表中查找后,若未匹配到,则将所述第二最终结果丢弃或直接转发出去;若匹配到第三最终结果,则将所述第三最终结果丢弃或直接转发出去。
7.一种实现最长掩码匹配的装置,其特征在于,包括第一匹配装置、第二匹配装置和第三匹配装置,所述第一匹配装置中设置TCAM表,所述第二匹配装置和第三匹配装置中分别设置有第一哈希表和第二哈希表,所述TCAM表、第一哈希表和第二哈希表中存放复数个IP地址。
8.根据权利要求7所述的实现最长掩码匹配的装置,其特征在于,所述IP地址的前两个字节存放在所述TCAM表中,所述IP地址的后两个字节分别存放在所述第一哈希表和第二哈希表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310544159.5A CN103581023A (zh) | 2013-11-06 | 2013-11-06 | 实现最长掩码匹配的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310544159.5A CN103581023A (zh) | 2013-11-06 | 2013-11-06 | 实现最长掩码匹配的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103581023A true CN103581023A (zh) | 2014-02-12 |
Family
ID=50051985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310544159.5A Pending CN103581023A (zh) | 2013-11-06 | 2013-11-06 | 实现最长掩码匹配的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103581023A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017190559A1 (zh) * | 2016-05-06 | 2017-11-09 | 华为技术有限公司 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
CN108075979A (zh) * | 2017-12-20 | 2018-05-25 | 盛科网络(苏州)有限公司 | 实现最长掩码匹配的方法及系统 |
CN110400578A (zh) * | 2019-07-19 | 2019-11-01 | 广州市百果园信息技术有限公司 | 哈希码的生成及其匹配方法、装置、电子设备和存储介质 |
CN110855629A (zh) * | 2019-10-21 | 2020-02-28 | 新华三信息安全技术有限公司 | Ip地址的匹配方法、匹配表的生成方法及相关装置 |
CN113519144A (zh) * | 2019-01-10 | 2021-10-19 | 马维尔以色列(M.I.S.L.)有限公司 | 用于网络设备的精确匹配和三元内容可寻址存储器(tcam)混合查找 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655533A (zh) * | 2004-02-09 | 2005-08-17 | 阿尔卡特公司 | 基于最长前缀匹配算法的过滤器 |
CN1909518A (zh) * | 2006-08-29 | 2007-02-07 | 华为技术有限公司 | 一种路由方法和路由设备 |
CN101247337A (zh) * | 2008-02-18 | 2008-08-20 | 华为技术有限公司 | 一种报文转发的方法和设备 |
CN101695054A (zh) * | 2009-09-30 | 2010-04-14 | 杭州华三通信技术有限公司 | 路由维护方法和装置以及路由查询方法和装置 |
CN102571599A (zh) * | 2012-02-08 | 2012-07-11 | 福建三元达通讯股份有限公司 | 一种路由表项的快速存储方法 |
US20130031077A1 (en) * | 2011-07-28 | 2013-01-31 | Brocade Communications Systems, Inc. | Longest Prefix Match Scheme |
CN103107945A (zh) * | 2013-01-10 | 2013-05-15 | 中国科学院信息工程研究所 | 一种快速查找ipv6路由的系统及方法 |
CN103220223A (zh) * | 2013-04-26 | 2013-07-24 | 北京百度网讯科技有限公司 | 网络数据流分类方法和系统 |
-
2013
- 2013-11-06 CN CN201310544159.5A patent/CN103581023A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655533A (zh) * | 2004-02-09 | 2005-08-17 | 阿尔卡特公司 | 基于最长前缀匹配算法的过滤器 |
CN1909518A (zh) * | 2006-08-29 | 2007-02-07 | 华为技术有限公司 | 一种路由方法和路由设备 |
CN101247337A (zh) * | 2008-02-18 | 2008-08-20 | 华为技术有限公司 | 一种报文转发的方法和设备 |
CN101695054A (zh) * | 2009-09-30 | 2010-04-14 | 杭州华三通信技术有限公司 | 路由维护方法和装置以及路由查询方法和装置 |
US20130031077A1 (en) * | 2011-07-28 | 2013-01-31 | Brocade Communications Systems, Inc. | Longest Prefix Match Scheme |
CN102571599A (zh) * | 2012-02-08 | 2012-07-11 | 福建三元达通讯股份有限公司 | 一种路由表项的快速存储方法 |
CN103107945A (zh) * | 2013-01-10 | 2013-05-15 | 中国科学院信息工程研究所 | 一种快速查找ipv6路由的系统及方法 |
CN103220223A (zh) * | 2013-04-26 | 2013-07-24 | 北京百度网讯科技有限公司 | 网络数据流分类方法和系统 |
Non-Patent Citations (2)
Title |
---|
张兴明等: "《基于 TCAM 的二级路由查找》", <计算机工程> * |
陈正虎等: "《基于 HASH-TCAM算法的高速模式匹配研究》", 《计算机应用研究》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017190559A1 (zh) * | 2016-05-06 | 2017-11-09 | 华为技术有限公司 | 路由查找方法、装置、分配节点、查找节点及入口节点 |
US10680950B2 (en) | 2016-05-06 | 2020-06-09 | Huawei Technologies Co., Ltd. | Route searching method and apparatus, allocation node, searching node, and ingress node |
CN108075979A (zh) * | 2017-12-20 | 2018-05-25 | 盛科网络(苏州)有限公司 | 实现最长掩码匹配的方法及系统 |
CN108075979B (zh) * | 2017-12-20 | 2020-10-13 | 盛科网络(苏州)有限公司 | 实现最长掩码匹配的方法及系统 |
CN113519144A (zh) * | 2019-01-10 | 2021-10-19 | 马维尔以色列(M.I.S.L.)有限公司 | 用于网络设备的精确匹配和三元内容可寻址存储器(tcam)混合查找 |
CN110400578A (zh) * | 2019-07-19 | 2019-11-01 | 广州市百果园信息技术有限公司 | 哈希码的生成及其匹配方法、装置、电子设备和存储介质 |
CN110400578B (zh) * | 2019-07-19 | 2022-05-17 | 广州市百果园信息技术有限公司 | 哈希码的生成及其匹配方法、装置、电子设备和存储介质 |
CN110855629A (zh) * | 2019-10-21 | 2020-02-28 | 新华三信息安全技术有限公司 | Ip地址的匹配方法、匹配表的生成方法及相关装置 |
CN110855629B (zh) * | 2019-10-21 | 2022-02-11 | 新华三信息安全技术有限公司 | Ip地址的匹配方法、匹配表的生成方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101594319B (zh) | 表项查找方法和装置 | |
CN107770076A (zh) | 一种哈希冲突的处理方法、装置及交换设备 | |
CN103581023A (zh) | 实现最长掩码匹配的方法及装置 | |
CN102402611B (zh) | 一种用tcam实现关键字快速查找并读表的方法 | |
US20160277297A1 (en) | Sdn packet forwarding | |
CN108989209B (zh) | Bier mpls网络设备、及其报文转发方法和介质 | |
CN101834802A (zh) | 转发数据包的方法及装置 | |
US9729447B2 (en) | Apparatus and method for processing alternately configured longest prefix match tables | |
US20140086248A1 (en) | Method for IP Longest Prefix Match Using Prefix Length Sorting | |
CN103107945B (zh) | 一种快速查找ipv6路由的系统及方法 | |
CN104579940A (zh) | 查找访问控制列表的方法及装置 | |
US9848059B2 (en) | Content handling method, apparatus, and system | |
CN106789859B (zh) | 报文匹配方法及装置 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN104468361A (zh) | 带有优先级的tcam储存和查找方法及装置 | |
CN102164080B (zh) | 路由地址查询方法和装置 | |
CN113810287B (zh) | 一种基于ndn和sdn的数据检索与推送方法 | |
US20230041395A1 (en) | Method and Device for Processing Routing Table Entries | |
CN106656816B (zh) | 分布式ipv6路由查找方法和系统 | |
CN103812774A (zh) | 基于tcam的策略配置方法、报文处理方法及相应装置 | |
CN103581020B (zh) | 一种报文转发的方法、装置及系统 | |
CN100366008C (zh) | 构造路由表及用其查找路由项的方法 | |
CN104301227B (zh) | 基于tcam的高速低功耗ip路由表查找方法 | |
CN103209128B (zh) | 同时支持数据报和虚电路服务的数据转发方法及路由器 | |
CN104484281B (zh) | 数据存储方法、查找方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140212 |