CN110851672A - 一种基于tcam实现多命中的方法 - Google Patents

一种基于tcam实现多命中的方法 Download PDF

Info

Publication number
CN110851672A
CN110851672A CN201911106419.4A CN201911106419A CN110851672A CN 110851672 A CN110851672 A CN 110851672A CN 201911106419 A CN201911106419 A CN 201911106419A CN 110851672 A CN110851672 A CN 110851672A
Authority
CN
China
Prior art keywords
tcam
hit
key
rule
packet
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.)
Withdrawn
Application number
CN201911106419.4A
Other languages
English (en)
Inventor
贾朋朋
刘凤新
陈伟峰
李灵侠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Optical Electrical Communication Technology Co Ltd
Original Assignee
Tianjin Optical Electrical Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Optical Electrical Communication Technology Co Ltd filed Critical Tianjin Optical Electrical Communication Technology Co Ltd
Priority to CN201911106419.4A priority Critical patent/CN110851672A/zh
Publication of CN110851672A publication Critical patent/CN110851672A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于TCAM实现多命中的方法。该方法控制TCAM的逻辑在基于FPGA的硬件平台上实现,通过利用TCAM中的uda字段,即在TCAM对当前key搜索命中后,会将该key对应规则rule的uda字段与命中结果一并返回,而FPGA内部逻辑在收到TCAM返回的响应结果后会对uda字段进行分析,以决定如何对当前命中的包进行复制。该方法通过利用TCAM中的uda字段,只需对当前包进行一次TCAM查询,无需将包缓存后查询多次,从而加快了搜索速度,提高了搜索性能。本发明提出的方法在数据匹配搜索技术领域有广泛的应用价值。

Description

一种基于TCAM实现多命中的方法
技术领域
本发明涉及数据包搜索匹配技术领域,尤其涉及一种基于TCAM实现多命中的方法,用于实现基于TCAM进行搜索匹配时数据包的多命中问题。
背景技术
在数据包搜索匹配技术领域,由于TCAM具有规则存储条数多、搜索匹配速度快的优点而被广泛采用。例如,博通公司生产的TCAM芯片NLA12000可存储按160b计算的规则达52万条,且搜索匹配速度达20亿次每秒。在利用TCAM实现数据搜索匹配的方案中,一个技术难点就是多命中问题,即当前的数据包可能命中TCAM数据库database中的多条规则。但由于TCAM的优先级匹配特性,即在数据包命中优先级最高亦即存储在数据库中地址低的规则后,后面的规则即便也会命中当前包,TCAM也不会再去进行搜索匹配。所以,在使用TCAM作为数据搜索匹配方案时,如何解决多命中问题便显得尤其重要。在论文“Algorithms forAdvanced Packet Classification with Ternary CAMs”中提到如何利用TCAM实现数据搜索的多命中,其思想是,将数据包进行缓存,然后从数据包中提取key后发送到TCAM进行搜索匹配,比如匹配到地址为m的规则,接下来将地址为m的规则禁掉,将先前的key再次发送到TCAM进行搜索匹配,由于地址为m的规则已经禁掉,所以TCAM不会再命中地址m的规则,而是继续向后查找,比如又匹配到地址为n的规则,这样的过程一直反复到在将key送到TCAM后,TCAM返回未命中的结果而结束。在多次查询结束后,最后的动作是要将TCAM中先前禁掉的规则重新使能,以便不对接下来的包搜索产生影响。上述论文通过反复查询多次并配合禁掉已经命中的规则的方法,从而实现了基于TCAM的多命中。但从该论文实现的方法中可以看到,此方法需要搜索匹配多次,从而降低了搜索性能,即单位时间搜索匹配包的数量变少。所以,一种好的基于TCAM实现多命中的方法在数据搜索匹配技术领域起到了至关重要的作用。
发明内容
本发明的目的就是要解决上述技术中存在的问题,提供一种基于TCAM实现的查找速度快、搜索性能高的多命中方案,即一种基于TCAM实现多命中的方法。
本发明采取的技术方案是:一种基于TCAM实现多命中的方法,该方法控制TCAM的逻辑在基于FPGA的硬件平台上实现,其特征在于,步骤如下:
1)、收到的数据包pkg分别送到key_extract模块与pkg_filter模块,其中,key_extract模块负责从数据包中提取待搜索的key,通常该key为数据包中的IP五元组;pkg_filter模块会将收到的数据包进行缓存,因为此时还未对当前包进行搜索,并不知道如何对当前包进行处理,即是否舍弃;
2)、key_extract模块将从数据包中提取的key送至TCAM,TCAM会将此key与在数据库database中事先存储的规则rule进行对比,如果key值与rule值相等,则表明当前待搜索的数据包中有关心的信息存在,从而TCAM返回命中的结果;
TCAM中的uda字段,是用户可自定义的字段,与每一条规则一一对应,即当TCAM返回命中结果的同时,会将事先定义好的uda字段一并返回,其核心就在于此,通过利用TCAM中用户可自定义的uda字段,来告知FPGA内部逻辑在当前包命中后该如何去做;
3)、规定uda字段中包含两个字,一个字为rule_id表示规则的ID号,一个字为multi_match表示当前包实则命中了多条规则;pkg_filter模块接收TCAM返回的响应结果,并根据响应结果决定如何对先前缓存的数据包进行处理,如若TCAM返回未命中的结果,pkg_filter模块会将缓存的数据包丢掉;如若TCAM返回了命中的结果,pkg_filter会根据uda字段中的multi_match字将包复制多份,即产生多个命中结果;复制多份的原则是,multi_match字中的每个位表示有另外一条规则也会命中,故pkg_filter模块根据multi_match中的各个比特位是否为1决定rule_id加多少,比如,TCAM返回的uda={rule_id=255,multi_match =’b0000_0000_1111_1111},那么pkg_filter在读到multi_match中最低8个位为1时,便会将命中的包复制8份,并分别赋以255+0、255+1、255+2、255+3、255+4、255+5、255+6、255+7的不同ID号给新复制的8个包,用以标识有8条不同的规则实则都命中了当前包。
本发明所产生的有益效果是:在基于TCAM实现多命中的方案中,通过利用TCAM中的uda字段,只需对当前包进行一次TCAM查询,无需将包缓存后查询多次,一方面由于无需对数据包进行缓存,故节省了FPGA内的存储资源,另一方面对当前包只需搜索一次,故提高了系统搜索性能。本发明提供的方法在数据搜索匹配技术领域有广泛的应用价值。
附图说明
图1为本发明基于TCAM实现多命中方法的原理图。
具体实施方式
以下结合附图对本发明做进一步说明:
图1示意了本发明基于TCAM实现多命中方法的原理图,现从数据流的角度结合图示对本发明提出的方法做详细叙述。收到的数据包pkg分别流入key_extract模块与pkg_filter模块;其中,key_extract模块负责从数据包中提取待搜索的key,通常该key为数据包中的IP五元组;pkg_filter模块会将收到的数据包进行缓存,因为此时还未对当前包进行搜索,并不知道如何对当前包进行处理,即是否舍弃。图中的TCAM是专用于数据搜索匹配的芯片,其内部的database即数据库存储区域用于存储事先设定的规则rule,TCAM芯片本身并不规定rule的格式,可按照项目应用场景的不同自行定义rule格式,通常在网络分流技术领域中,都选定数据包中的IP五元组字段作为关心的rule信息;与每一条规则一一对应的为uda,即用户可自定义的字段,其用法是,在TCAM芯片搜索匹配命中后,比如命中了在数据库database中的地址为m的规则,那么TCAM在返回命中信息的同时,会将该地址为m规则对应的uda信息一并返回,需要强调的是,uda字段是用户自定义的,且与每一条规则一一对应。key_extract模块将从数据包中提取的key送至TCAM,TCAM会将此key与在数据库database中事先存储的规则rule进行对比,如果key值与rule值相等,则表明当前待搜索的数据包中有关心的信息存在,从而TCAM返回命中的结果,与此同时带回相应的uda值。规定uda字段中包含两个字,一个字为rule_id表示规则的ID号,一个字为multi_match表示当前包实则命中了多条规则。pkg_filter模块接收TCAM返回的响应结果,并根据响应结果决定如何对先前缓存的数据包进行处理。如若TCAM返回未命中的结果,pkg_filter模块会将缓存的数据包丢掉;如若TCAM返回了命中的结果,pkg_filter会根据uda字段中的multi_match字将包复制多份,即产生多个命中结果;复制多份的原则是,multi_match字中的每个位表示有另外一条规则也会命中,故pkg_filter模块根据multi_match中的各个比特位是否为1决定rule_id加多少,比如,TCAM返回的uda={rule_id=255,multi_match =’b0000_0000_1111_1111},那么pkg_filter在读到multi_match中最低8个位为1时,便会将命中的包复制8份,并分别赋以255+0、255+1、255+2、255+3、255+4、255+5、255+6、255+7的不同ID号给新复制的8个包,用以标识有8条不同的规则实则都命中了当前包。
从上述对本发明基于TCAM实现多命中的方法可以看出,该方法通过利用TCAM的用户可自定义的uda字段,并规定uda字段包含rule_id与multi_match两个字的方案,合理的解决了需要向TCAM查询多次以得到多个命中结果的性能瓶颈,通过扩充multi_match的位数,原则上查询一次命中多个结果的数目没有上限,这当然要根据实际使用的FPGA资源多少、项目对于多命中个数的需求等各方面因素综合考虑。综上,在基于TCAM实现多命中的搜索匹配方案时,本发明提供的方法具有查找速度快、搜索性能高的优点,在数据搜索匹配技术领域有广泛的应用价值。

Claims (1)

1.一种基于TCAM实现多命中的方法,该方法控制TCAM的逻辑在基于FPGA的硬件平台上实现,其特征在于,步骤如下:
1)、收到的数据包pkg分别送到key_extract模块与pkg_filter模块,其中,key_extract模块负责从数据包中提取待搜索的key,通常该key为数据包中的IP五元组;pkg_filter模块会将收到的数据包进行缓存,因为此时还未对当前包进行搜索,并不知道如何对当前包进行处理,即是否舍弃;
2)、key_extract模块将从数据包中提取的key送至TCAM,TCAM会将此key与在数据库database中事先存储的规则rule进行对比,如果key值与rule值相等,则表明当前待搜索的数据包中有关心的信息存在,从而TCAM返回命中的结果;
TCAM中的uda字段,是用户可自定义的字段,与每一条规则一一对应,即当TCAM返回命中结果的同时,会将事先定义好的uda字段一并返回,其核心就在于此,通过利用TCAM中用户可自定义的uda字段,来告知FPGA内部逻辑在当前包命中后该如何去做;
3)、规定uda字段中包含两个字,一个字为rule_id表示规则的ID号,一个字为multi_match表示当前包实则命中了多条规则;pkg_filter模块接收TCAM返回的响应结果,并根据响应结果决定如何对先前缓存的数据包进行处理,如若TCAM返回未命中的结果,pkg_filter模块会将缓存的数据包丢掉;如若TCAM返回了命中的结果,pkg_filter会根据uda字段中的multi_match字将包复制多份,即产生多个命中结果;复制多份的原则是,multi_match字中的每个位表示有另外一条规则也会命中,故pkg_filter模块根据multi_match中的各个比特位是否为1决定rule_id加多少,比如,TCAM返回的uda={rule_id=255,multi_match =’b0000_0000_1111_1111},那么pkg_filter在读到multi_match中最低8个位为1时,便会将命中的包复制8份,并分别赋以255+0、255+1、255+2、255+3、255+4、255+5、255+6、255+7的不同ID号给新复制的8个包,用以标识有8条不同的规则实则都命中了当前包。
CN201911106419.4A 2019-11-13 2019-11-13 一种基于tcam实现多命中的方法 Withdrawn CN110851672A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911106419.4A CN110851672A (zh) 2019-11-13 2019-11-13 一种基于tcam实现多命中的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911106419.4A CN110851672A (zh) 2019-11-13 2019-11-13 一种基于tcam实现多命中的方法

Publications (1)

Publication Number Publication Date
CN110851672A true CN110851672A (zh) 2020-02-28

Family

ID=69600798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911106419.4A Withdrawn CN110851672A (zh) 2019-11-13 2019-11-13 一种基于tcam实现多命中的方法

Country Status (1)

Country Link
CN (1) CN110851672A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111404798A (zh) * 2020-03-09 2020-07-10 湖北微源卓越科技有限公司 一种多用户规则匹配以及流量复制的系统和方法
CN113709110A (zh) * 2021-07-27 2021-11-26 深圳市风云实业有限公司 一种软硬结合的入侵检测系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111404798A (zh) * 2020-03-09 2020-07-10 湖北微源卓越科技有限公司 一种多用户规则匹配以及流量复制的系统和方法
CN113709110A (zh) * 2021-07-27 2021-11-26 深圳市风云实业有限公司 一种软硬结合的入侵检测系统及方法
CN113709110B (zh) * 2021-07-27 2023-07-21 深圳市风云实业有限公司 一种软硬结合的入侵检测系统及方法

Similar Documents

Publication Publication Date Title
Vamanan et al. EffiCuts: Optimizing packet classification for memory and throughput
US5946679A (en) System and method for locating a route in a route table using hashing and compressed radix tree searching
Goel et al. Small subset queries and bloom filters using ternary associative memories, with applications
US7653670B2 (en) Storage-efficient and collision-free hash-based packet processing architecture and method
KR100612256B1 (ko) 터너리 내용 주소화 메모리 관리 장치 및 그 방법
US8335780B2 (en) Scalable high speed relational processor for databases and networks
CN102377664B (zh) 一种基于tcam的区域匹配装置和方法
Dong et al. Packet classifiers in ternary CAMs can be smaller
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6826561B2 (en) Method and apparatus for performing a binary search on an expanded tree
AU2003214223B2 (en) Longest prefix matching using tree bitmap data structures
US7592935B2 (en) Information retrieval architecture for packet classification
CN111131084B (zh) 一种QoS感知的OpenFlow流表查找方法
CN107528783B (zh) 利用对前缀长度进行两个搜索阶段的ip路由缓存
CN102333036B (zh) 一种实现高速路由查找的方法和系统
CN110858823B (zh) 一种数据包的分类方法、装置及计算机可读存储介质
CN111984835B (zh) 一种IPv4掩码五元组规则存储压缩方法及装置
Dong et al. Wire speed packet classification without TCAMs: A few more registers (and a bit of logic) are enough
CN110851672A (zh) 一种基于tcam实现多命中的方法
US20190294549A1 (en) Hash Table-Based Mask Length Computation for Longest Prefix Match Caching
Daly et al. Tuplemerge: Building online packet classifiers by omitting bits
US6970971B1 (en) Method and apparatus for mapping prefixes and values of a hierarchical space to other representations
US20140114995A1 (en) Scalable high speed relational processor for databases and networks
CN107248939B (zh) 基于hash存储器的网络流高速关联方法
CN111240599A (zh) 数据流存储方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20200228

WW01 Invention patent application withdrawn after publication