CN109902204A - 一种内容模糊查找方法 - Google Patents

一种内容模糊查找方法 Download PDF

Info

Publication number
CN109902204A
CN109902204A CN201910040131.5A CN201910040131A CN109902204A CN 109902204 A CN109902204 A CN 109902204A CN 201910040131 A CN201910040131 A CN 201910040131A CN 109902204 A CN109902204 A CN 109902204A
Authority
CN
China
Prior art keywords
list item
mask
content
bit
address
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
Application number
CN201910040131.5A
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.)
Beijing Polytron Technologies Inc
Original Assignee
Beijing Polytron Technologies Inc
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 Beijing Polytron Technologies Inc filed Critical Beijing Polytron Technologies Inc
Priority to CN201910040131.5A priority Critical patent/CN109902204A/zh
Publication of CN109902204A publication Critical patent/CN109902204A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种内容模糊查找方法,其中,包括:建立表项,包括:表项内容包括:网络网络通讯协议中的报文各元素表,每个元素表包括要素内容、要素使能以及要素掩码;查表,包括:按照输入的网络协议报文元素的索引要素进行查找比对操作,查表过程中查表引擎从0地址开始,地址每递加1,读取该地址内容,当表项中某要素使能为有效,且索引要素与表项中该索引要素对应的掩码相与后得到的值,去匹配表项内的要素内容,如果二者相等,则认为要素匹配成功;匹配成功,则查表完毕,并返回该地址的结果和查表成功标志;否则地址递加,继续进行规则匹配,当地址达到最大值时,仍匹配不成功,返回查表失败标志。

Description

一种内容模糊查找方法
技术领域
本发明涉及网络通信技术,特别涉及一种内容模糊查找方法。
背景技术
在网络通信系统中经常涉及表项查找处理,现有的表项查找通常采用基于地址的查找方式,即按照地址的顺序逐个对表项进行查找,此方法查找方式不够灵活,而且效率不高。
发明内容
本发明的目的在于提供一种内容模糊查找方法,用于解决上述现有技术的问题。
本发明一种内容模糊查找方法,其中,包括:建立表项,包括:表项内容包括:网络网络通讯协议中的报文各元素表,每个元素表包括要素内容、要素使能以及要素掩码;查表,包括:按照输入的网络协议报文元素的索引要素进行查找比对操作,查表过程中查表引擎从0地址开始,地址每递加1,读取该地址内容,当表项中某要素使能为有效,且索引要素与表项中该索引要素对应的掩码相与后得到的值,去匹配表项内的要素内容,如果二者相等,则认为要素匹配成功;匹配成功,则查表完毕,并返回该地址的结果和查表成功标志;否则地址递加,继续进行规则匹配,当地址达到最大值时,仍匹配不成功,返回查表失败标志。
根据本发明的内容模糊查找方法的一实施例,其中,网络协议报文元素为报文五元组,五元组包括DIP、SIP、DPORT、SPORT以及PROTOCOL,在表项内修改每个索引要素的掩码匹配规则,其中掩码由多位bit组成,掩码多位全为1时为精确匹配,非全为1时为模糊匹配,单条表项位宽为k比特;表项中要素A内容:DIP目的IP,占据表项的1到a比特;表项中要素A使能:目的IP查表使能,占据表项的a+1比特;表项中要素A掩码:目的IP内容掩码,占据表项的a+2到b比特;表项中要素B内容:SIP的源IP,占据表项的b+1到c比特;表项中要素B使能:源IP,占据表项的c+1比特;表项中要素B掩码:源IP,占据表项的c+2到d比特;表项中要素C内容:DPORT的目的端口,占据表项的d+1到e比特;表项中要素C使能:目的端口,占据表项的e+1比特;表项中要素C掩码:目的端口,占据表项的e+2到f比特;表项中要素D内容:SPORT的源端口,占据表项的f+1到g比特;表项中要素D使能:源端口,占据表项的g+1比特;表项中要素D掩码:源端口,占据表项的g+2到h比特;表项中要素E内容:PROTOCOL的协议号,占据表项的h+1到i比特;表项中要素E使能:协议号,占据表项的i+1比特;表项中要素E掩码:协议号,占据表项的i+2到j比特;表项中结果:根据五元组内容、相应查表使能以及相应掩码等均匹配后的结果,占据表项的j+1到k比特。
根据本发明的内容模糊查找方法的一实施例,其中,按照输入的五元组索引要素进行查找比对操作,当表项中某要素使能为有效,且索引要素与表项中该索引要素对应的掩码相与后得到值去匹配表项内的要素内容,如果二者相等,则认为该要素匹配成功,索引X由DIP的索引要素A、SIP的索引要素B、DPORT的索引要素C、SPORT的索引要素D和PROTOCOL的索引要素E五个要素组成,需要建立的表项内容为要素A内容、要素A使能、要素A掩码、要素B内容、要素B使能、要素B掩码、要素C内容、要素C使能、要素C掩码、要素D内容、要素D使能、要素D掩码、要素E内容、要素E使能、要素E掩码和命中此表所对应的结果,查表过程中查表引擎从0地址开始,地址每递加1,读取该地址内容,进行规则匹配,匹配成功,查表完毕,并返回该地址的结果和查表成功标志;否则地址递加,继续进行规则匹配。当地址达到最大值时,仍匹配不成功,返回查表失败标志。
根据本发明的内容模糊查找方法的一实施例,其中,对IP网络报文的5元组,根据实际需要下发表项,DIP和SIP根据IP掩码匹配规则进行匹配,IP网络报文的DIP和SIP分别与表项中的DIP和SIP的掩码相与后得到DIP和SIP网段地址,如果DIP和SIP网段地址分别与表项中的DIP和SIP相同则匹配成功,当IP掩码位数为32bit的1时为IP精确匹配,不为32bit的1时为IP模糊匹配。
根据本发明的内容模糊查找方法的一实施例,其中,根据五元组字段关心使能的组合分为32个优先级,32个优先级根据需要调整优先级顺序,五元组关心字段相同的表项再按掩码的位数进行优先级排序,位数越多优先级越高。
本发明的内容模糊查找方法,可以按照指定条件灵活的对表项进行配置,通过调整内容匹配的优先级,提高查找的效率和精确性。
附图说明
图1所示为内容模糊查找方法的流程图;
图2所示为表项组成结构示意图;
图3所示为表项组成结构示意图;
图4所示为五元组表项列表示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示为内容模糊查找方法的流程图,图2所示为表项组成结构示意图,如图1以及图2所示,内容模糊查找方法包括:
第一步:建立表项,包括:
根据实际需要建立五元组(五元组包括DIP、SIP、DPORT、SPORT、PROTOCOL)表项,表项内容为要素内容、要素使能、要素掩码,为了达到模糊匹配的目的,可以在表项下发时,在表项内修改每个索引要素的掩码匹配规则。其中掩码由多位bit组成,掩码多位全为1时为精确匹配,非全为1时为模糊匹配。单条表项位宽为k比特。
表项中要素A内容:目的IP(DIP),占据表项的1到a比特;
表项中要素A使能:目的IP查表使能,占据表项的a+1比特;
表项中要素A掩码:目的IP内容掩码,占据表项的a+2到b比特;
表项中要素B内容:源IP(SIP),占据表项的b+1到c比特;
表项中要素B使能:源IP,占据表项的c+1比特;
表项中要素B掩码:源IP,占据表项的c+2到d比特;
表项中要素C内容:目的端口(DPORT),占据表项的d+1到e比特;
表项中要素C使能:目的端口,占据表项的e+1比特;
表项中要素C掩码:目的端口,占据表项的e+2到f比特;
表项中要素D内容:源端口(SPORT),占据表项的f+1到g比特;
表项中要素D使能:源端口,占据表项的g+1比特;
表项中要素D掩码:源端口,占据表项的g+2到h比特;
表项中要素E内容:协议号(PROTOCOL),占据表项的h+1到i比特;
表项中要素E使能:协议号,占据表项的i+1比特;
表项中要素E掩码:协议号,占据表项的i+2到j比特;
表项中结果:根据五元组内容、相应查表使能、相应掩码等均匹配后的结果,占据表项的j+1到k比特。
第二步:查表,包括:
图3所示为表项组成结构示意图,如图3所示,表项建立完成后,可以进行查表。查表按照输入的五元组索引要素进行查找比对操作。当表项中某要素使能为有效,且索引要素与表项中该索引要素对应的掩码相与后得到值去匹配表项内的要素内容,如果二者相等,则认为该要素匹配成功。索引X由索引要素A(DIP)、索引要素B(SIP)、索引要素C(DPORT)、索引要素D(SPORT)和索引要素E(PROTOCOL)五个要素组成,需要建立的表项内容为要素A内容、要素A使能、要素A掩码、要素B内容、要素B使能、要素B掩码、要素C内容、要素C使能、要素C掩码、要素D内容、要素D使能、要素D掩码、要素E内容、要素E使能、要素E掩码和命中此表所对应的结果。查表过程中查表引擎从0地址开始,地址每递加1,读取该地址内容,进行规则匹配,匹配成功,查表完毕,并返回该地址的结果和查表成功标志;否则地址递加,继续进行规则匹配。当地址达到最大值时,仍匹配不成功,返回查表失败标志。
可以通过配置表项要素使能的方法实现对五个要素的多种查找组合。比如配置要素A使能为有效,配置要素B使能为有效,配置要素C使能为无效,配置要素D使能为无效,配置要素E使能为无效。那么对于索引X,只要索引中的索引要素A与某地址中索引要素A掩码相与之后的值等于该地址中索引要素A内容,则表示索引要素A匹配成功。同理,索引要素B与该地址中索引要素B掩码相与之后的值等于该地址中索引要素B内容,则表示索引要素B也匹配成功。即当索引要素A和索引要素B都匹配成功,则认为整个索引与该表项匹配,即查表命中,取出该地址内相应的结果。
图4所示为五元组表项列表示意图,如图4所示,在实际应用中,对IP网络报文的5元组(DIP,SIP,DPORT,SPORT,PROTOCOL),根据实际需要下发表项,DIP和SIP根据IP掩码匹配规则进行匹配,即IP网络报文的DIP和SIP分别与表项中的DIP和SIP的掩码相与后得到DIP和SIP网段地址,如果DIP和SIP网段地址分别与表项中的DIP和SIP相同则匹配成功。当IP掩码位数为32bit的1时为IP精确匹配,不为32bit的1时为IP模糊匹配。
支持模糊匹配引来了一个问题,一个索引可能会匹配上多个掩码不同的表项。例如,一个DIP为192.168.2.16,SIP为192.168.1.16,Protocol为6,目的端口为200,源端口为210的IP网络报文会精确匹配上DIP为192.168.2.16/32,SIP为192.168.1.16/32,Protocol为6的表项,也会模糊匹配上DIP为192.168.2.0/24,SIP为192.168.1.0/24,Protocol为6的表项。为了解决这个问题,设计了以按精确匹配优先级高,模糊匹配优先级低的优先级排序规则为基础,按关心的五元组字段优先级排序规则为辅的表项排序规则。
根据五元组字段关心使能的组合分为32个优先级,这个32个优先级可以根据需要调整优先级顺序,五元组关心字段相同的表项再按掩码的位数进行优先级排序,位数越多优先级越高。
鉴于以上所述,本发明可以通过对表项的灵活配置,既能实现对内容的精确匹配,又能实现对内容的模糊匹配。根据表项优先级调整表项配置的顺序,使得表项查找的效率和精确性相对于传统的基于地址的查找方式有很大的提高。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (5)

1.一种内容模糊查找方法,其特征在于,包括:
建立表项,包括:
表项内容包括:网络网络通讯协议中的报文各元素表,每个元素表包括要素内容、要素使能以及要素掩码;
查表,包括:
按照输入的网络协议报文元素的索引要素进行查找比对操作,查表过程中查表引擎从0地址开始,地址每递加1,读取该地址内容,当表项中某要素使能为有效,且索引要素与表项中该索引要素对应的掩码相与后得到的值,去匹配表项内的要素内容,如果二者相等,则认为要素匹配成功;匹配成功,则查表完毕,并返回该地址的结果和查表成功标志;否则地址递加,继续进行规则匹配,当地址达到最大值时,仍匹配不成功,返回查表失败标志。
2.如权利要求1所述的内容模糊查找方法,其特征在于,网络协议报文元素为报文五元组,五元组包括DIP、SIP、DPORT、SPORT以及PROTOCOL,在表项内修改每个索引要素的掩码匹配规则,其中掩码由多位bit组成,掩码多位全为1时为精确匹配,非全为1时为模糊匹配,单条表项位宽为k比特;
表项中要素A内容:DIP目的IP,占据表项的1到a比特;
表项中要素A使能:目的IP查表使能,占据表项的a+1比特;
表项中要素A掩码:目的IP内容掩码,占据表项的a+2到b比特;
表项中要素B内容:SIP的源IP,占据表项的b+1到c比特;
表项中要素B使能:源IP,占据表项的c+1比特;
表项中要素B掩码:源IP,占据表项的c+2到d比特;
表项中要素C内容:DPORT的目的端口,占据表项的d+1到e比特;
表项中要素C使能:目的端口,占据表项的e+1比特;
表项中要素C掩码:目的端口,占据表项的e+2到f比特;
表项中要素D内容:SPORT的源端口,占据表项的f+1到g比特;
表项中要素D使能:源端口,占据表项的g+1比特;
表项中要素D掩码:源端口,占据表项的g+2到h比特;
表项中要素E内容:PROTOCOL的协议号,占据表项的h+1到i比特;
表项中要素E使能:协议号,占据表项的i+1比特;
表项中要素E掩码:协议号,占据表项的i+2到j比特;
表项中结果:根据五元组内容、相应查表使能以及相应掩码等均匹配后的结果,占据表项的j+1到k比特。
3.如权利要求2所述的内容模糊查找方法,其特征在于,按照输入的五元组索引要素进行查找比对操作,当表项中某要素使能为有效,且索引要素与表项中该索引要素对应的掩码相与后得到值去匹配表项内的要素内容,如果二者相等,则认为该要素匹配成功,索引X由DIP的索引要素A、SIP的索引要素B、DPORT的索引要素C、SPORT的索引要素D和PROTOCOL的索引要素E五个要素组成,需要建立的表项内容为要素A内容、要素A使能、要素A掩码、要素B内容、要素B使能、要素B掩码、要素C内容、要素C使能、要素C掩码、要素D内容、要素D使能、要素D掩码、要素E内容、要素E使能、要素E掩码和命中此表所对应的结果,查表过程中查表引擎从0地址开始,地址每递加1,读取该地址内容,进行规则匹配,匹配成功,查表完毕,并返回该地址的结果和查表成功标志;否则地址递加,继续进行规则匹配。当地址达到最大值时,仍匹配不成功,返回查表失败标志。
4.如权利要求2所述的内容模糊查找方法,其特征在于,对IP网络报文的5元组,根据实际需要下发表项,DIP和SIP根据IP掩码匹配规则进行匹配,IP网络报文的DIP和SIP分别与表项中的DIP和SIP的掩码相与后得到DIP和SIP网段地址,如果DIP和SIP网段地址分别与表项中的DIP和SIP相同则匹配成功,当IP掩码位数为32bit的1时为IP精确匹配,不为32bit的1时为IP模糊匹配。
5.如权利要求4所述的内容模糊查找方法,其特征在于,根据五元组字段关心使能的组合分为32个优先级,32个优先级根据需要调整优先级顺序,五元组关心字段相同的表项再按掩码的位数进行优先级排序,位数越多优先级越高。
CN201910040131.5A 2019-01-16 2019-01-16 一种内容模糊查找方法 Pending CN109902204A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910040131.5A CN109902204A (zh) 2019-01-16 2019-01-16 一种内容模糊查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910040131.5A CN109902204A (zh) 2019-01-16 2019-01-16 一种内容模糊查找方法

Publications (1)

Publication Number Publication Date
CN109902204A true CN109902204A (zh) 2019-06-18

Family

ID=66943823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910040131.5A Pending CN109902204A (zh) 2019-01-16 2019-01-16 一种内容模糊查找方法

Country Status (1)

Country Link
CN (1) CN109902204A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442586A (zh) * 2019-07-03 2019-11-12 北京左江科技股份有限公司 一种基于分类优先级的五元组查询方法
CN112367262A (zh) * 2020-08-20 2021-02-12 国家计算机网络与信息安全管理中心 一种五元组规则的匹配方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101707619A (zh) * 2009-12-10 2010-05-12 福建星网锐捷网络有限公司 报文过滤方法、装置及网络设备
CN102801659A (zh) * 2012-08-15 2012-11-28 成都卫士通信息产业股份有限公司 一种基于流策略的安全网关实现方法及装置
CN103139222A (zh) * 2013-03-19 2013-06-05 成都卫士通信息产业股份有限公司 一种ipsec隧道数据传输方法及装置
CN107493238A (zh) * 2016-06-13 2017-12-19 华为技术有限公司 一种网络拥塞控制方法、设备及系统
CN108881036A (zh) * 2018-07-03 2018-11-23 电信科学技术第五研究所有限公司 一种基于查表运算的网络通信快速匹配方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101707619A (zh) * 2009-12-10 2010-05-12 福建星网锐捷网络有限公司 报文过滤方法、装置及网络设备
CN102801659A (zh) * 2012-08-15 2012-11-28 成都卫士通信息产业股份有限公司 一种基于流策略的安全网关实现方法及装置
CN103139222A (zh) * 2013-03-19 2013-06-05 成都卫士通信息产业股份有限公司 一种ipsec隧道数据传输方法及装置
CN107493238A (zh) * 2016-06-13 2017-12-19 华为技术有限公司 一种网络拥塞控制方法、设备及系统
CN108881036A (zh) * 2018-07-03 2018-11-23 电信科学技术第五研究所有限公司 一种基于查表运算的网络通信快速匹配方法及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442586A (zh) * 2019-07-03 2019-11-12 北京左江科技股份有限公司 一种基于分类优先级的五元组查询方法
CN112367262A (zh) * 2020-08-20 2021-02-12 国家计算机网络与信息安全管理中心 一种五元组规则的匹配方法及装置

Similar Documents

Publication Publication Date Title
US7412507B2 (en) Efficient cascaded lookups at a network node
EP3293929B1 (en) Efficient matching of tcam rules using hash tables in ram
US10003533B2 (en) SDN packet forwarding
US7400634B2 (en) MAC address learning apparatus
US8432914B2 (en) Method for optimizing a network prefix-list search
US20170053012A1 (en) High-performance bloom filter array
CN113542125B (zh) 一种基于集成流表转发报文的方法及装置
US8923298B2 (en) Optimized trie-based address lookup
CN105429879B (zh) 流表项查询方法、设备及系统
WO2021135491A1 (zh) 流表的匹配方法及装置
WO2021169235A1 (zh) 路由报文的处理方法及装置、存储介质和电子装置
CN109902204A (zh) 一种内容模糊查找方法
EP2429132B1 (en) Table creating and searching method used by network processor
US7551609B2 (en) Data structure for storing and accessing multiple independent sets of forwarding information
US8432910B2 (en) Transmission information transfer apparatus and its method
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
US20230041395A1 (en) Method and Device for Processing Routing Table Entries
CN104734961B (zh) 基于fc交换网络的路由选择方法
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
CN112667640B (zh) 一种路由地址存储方法及装置
US20170068453A1 (en) T-cam bier bit-string lookups
CN103051595B (zh) 一种标识网中映射表项的整合方法及装置
CN106603414B (zh) 路由表快速比对方法
CN112822112B (zh) 一种路由地址存储方法及装置
CN108989313B (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
CB03 Change of inventor or designer information

Inventor after: Zhao Yongjie

Inventor after: Zhang Wei

Inventor after: Yu Libin

Inventor after: Chen Junlai

Inventor before: Zhao Yongjie

CB03 Change of inventor or designer information
RJ01 Rejection of invention patent application after publication

Application publication date: 20190618

RJ01 Rejection of invention patent application after publication