CN109902204A - 一种内容模糊查找方法 - Google Patents
一种内容模糊查找方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 4
- 239000000203 mixture Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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个优先级根据需要调整优先级顺序,五元组关心字段相同的表项再按掩码的位数进行优先级排序,位数越多优先级越高。
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)
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)
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 | 电信科学技术第五研究所有限公司 | 一种基于查表运算的网络通信快速匹配方法及设备 |
-
2019
- 2019-01-16 CN CN201910040131.5A patent/CN109902204A/zh active Pending
Patent Citations (5)
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)
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 |