CN109408517B - 规则的多维度搜索方法、装置、设备及可读存储介质 - Google Patents

规则的多维度搜索方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN109408517B
CN109408517B CN201811305941.0A CN201811305941A CN109408517B CN 109408517 B CN109408517 B CN 109408517B CN 201811305941 A CN201811305941 A CN 201811305941A CN 109408517 B CN109408517 B CN 109408517B
Authority
CN
China
Prior art keywords
rule
search
array
rules
matched
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.)
Active
Application number
CN201811305941.0A
Other languages
English (en)
Other versions
CN109408517A (zh
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201811305941.0A priority Critical patent/CN109408517B/zh
Publication of CN109408517A publication Critical patent/CN109408517A/zh
Application granted granted Critical
Publication of CN109408517B publication Critical patent/CN109408517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种规则的多维度搜索方法,包括:创建由所有规则组成的规则数组;以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建规则数组的索引结构,并使搜索结构与索引结构进行关联;在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;基于搜索结构中树节点或数组项与索引结构的关联关系,分别确定与待匹配数据的各数据项相匹配的规则。本发明还公开了一种规则的多维度搜索装置、设备及计算机可读存储介质。本发明能够在避免搜索性能大幅下降的前提下,通过一次搜索即可从海量规则中快速得出匹配的规则。

Description

规则的多维度搜索方法、装置、设备及可读存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种规则的多维度搜索方法、装置、设备及计算机可读存储介质。
背景技术
在数据处理技术领域,通常存在需要通过查找相应的匹配规则来处理数据,比如报文需要匹配相应的路由规则才能进行转发,如果待匹配数据存在多个数据项,则需要分别进行多次匹配,也即无法通过一次查找即可得到与所有数据项匹配的所有规则。此外,现有的规则匹配算法通常只适用于少量规则,若是对于上万的规则匹配,则性能会随着规则的增多而直线下降。
发明内容
本发明的主要目的在于提供一种规则的多维度搜索方法、装置、设备及计算机可读存储介质,旨在解决现有规则匹配无法从海量规则中快速得出匹配结果的技术问题。
为实现上述目的,本发明提供一种规则的多维度搜索方法,所述规则的多维度搜索方法包括:
创建由所有规则组成的规则数组;
以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;
在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。
可选地,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则。
可选地,所述使所述搜索结构与所述索引结构进行关联包括:
若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;
将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联。
可选地,所述使所述搜索结构与所述索引结构进行关联包括:
若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
可选地,所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则包括:
基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则。
可选地,在所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则的步骤之后,还包括:
将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;
若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。
进一步地,为实现上述目的,本发明还提供一种规则的多维度搜索装置,所述规则的多维度搜索装置包括:
创建模块,用于创建由所有规则组成的规则数组;
构建模块,用于以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;
搜索模块,用于在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
规则确定模块,用于基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。
可选地,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则。
可选地,所述构建模块还用于:
若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;
将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联;
若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
可选地,所述规则确定模块还用于:
基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则。
可选地,所述规则确定模块还用于:
将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;
若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。
进一步地,为实现上述目的,本发明还提供一种规则的多维度搜索设备,所述规则的多维度搜索设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的规则的多维度搜索程序,所述规则的多维度搜索程序被所述处理器执行时实现如上述任一项所述的规则的多维度搜索方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有规则的多维度搜索程序,所述规则的多维度搜索程序被处理器执行时实现如上述任一项所述的规则的多维度搜索方法的步骤。
本发明先以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建由所有规则组成的规则数组的索引结构,并使搜索结构与索引结构进行关联;然后在搜索每一个搜索维度对应的搜索结构,分别获得各搜索结构中与待匹配数据的各数据项相匹配的树节点或数组项;最后再基于搜索结构中树节点或数组项与索引结构的关联关系,分别确定与待匹配数据的各数据项相匹配的规则。本发明将海量规则匹配转换为对树型或数组型的搜索结构进行搜索,多个搜索维度可以同时进行,进而能够一次搜索维度即可以从海量的规则中得出最优结果,并且随着规则的数量增加,查找性能下降幅度小。
附图说明
图1为本发明多维度搜索设备实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本发明规则的多维度搜索方法一实施例的流程示意图;
图3为本发明规则的多维度搜索装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种规则的多维度搜索设备。
参照图1,图1为本发明多维度搜索设备实施例方案涉及的设备硬件运行环境的结构示意图。
如图1所示,该多维度搜索设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的多维度搜索设备的硬件结构并不构成对多维度搜索设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及规则的多维度搜索程序。其中,操作系统是管理和控制多维度搜索设备与软件资源的程序,支持网络通信模块、用户接口模块、规则的多维度搜索程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的多维度搜索设备硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;多维度搜索设备通过处理器1001调用存储器1005中存储的规则的多维度搜索程序,并执行以下操作:
创建由所有规则组成的规则数组;
以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;
在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。
进一步地,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的每一索引号对应一条规则;多维度搜索设备通过处理器1001调用存储器1005中存储的规则的多维度搜索程序,还执行以下操作:
若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;
将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联。
进一步地,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则;多维度搜索设备通过处理器1001调用存储器1005中存储的规则的多维度搜索程序,还执行以下操作:
若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
进一步地,多维度搜索设备通过处理器1001调用存储器1005中存储的规则的多维度搜索程序,还执行以下操作:
基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则。
进一步地,多维度搜索设备通过处理器1001调用存储器1005中存储的规则的多维度搜索程序,还执行以下操作:
将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;
若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。
基于上述多维度搜索设备实施例方案涉及的设备硬件运行环境,提出本发明规则的多维度搜索方法的以下各实施例。
参照图2,图2为本发明规则的多维度搜索方法一实施例的流程示意图。本实施例中,所述规则的多维度搜索方法包括:
步骤S10,创建由所有规则组成的规则数组;
本实施例中,为便于对规则进行多维度搜索,同时提升规则的搜索性能,因此,将规则内容与规则名称拆分,其中,规则内容用于构建搜索结构,而规则名称用于构建索引结构,而所有规则采用规则数组进行存储。由于规则数组可通过索引号区分各数组项,因此可使用数组索引号替代规则名称以用于构建索引结构。
需要说明的是,本发明所述的规则优选指存在多个相同规则字段的规则,每一个规则字段是一个匹配项,例如,NAT规则存在源IP(srcip字段)、目的IP(dstip字段)、服务(每个服务包括协议和目的端口字段)、出入接口所在的区域划分(zone字段)等多个规则字段。
步骤S20,以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;
(1)搜索结构
本实施例以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构,当外部输入待匹配数据时,可同时对所有搜索结构进行查找匹配,进而实现一次搜索即可快速得出与待匹配数据的各数据项都相匹配的规则。
为提升搜索性能,因此本实施例中,搜索结构优选为树结构或数组结构。其中,树型搜索结构优选用于处理数值较大或字段长度较长的规则字段,而数组型搜索结构则优选用于处理数值较小或字段长度较短的规则字段。
本实施例中,同一树型搜索结构的所有树节点或者同一数组型搜索结构的所有数组项具体由所有规则同一匹配项的所有规则字段的数值构成。
例如,有rule1、rule2、rule3这三条NAT规则,其中,rule1的源IP的字段值为IP1、rule2的源IP的字段值为IP2、rule3的源IP的字段值为IP3,则上述三条NAT规则的源IP搜索维度所对应的树型搜索结构所有树节点对应的数值为IP1、IP2、IP3。
本实施例对于树型搜索结构的设置不限,具体根据实际需要进行设置。例如,某一搜索维度对应的匹配项数值之间具有父子关系,则可采用基数树、平衡二叉树或者字典树作为该搜索维度对应的搜索结构。又例如,某一搜索维度对应的匹配项数值之间不仅具有父子关系,而且还可以采用二进制进行表示,因此,优选采用基数树作为该搜索维度对应的搜索结构。
本实施例中,数组型搜索结构优选适用于数值较小或字段长度较短,并且不具有包含关系或父子关系的数据。
本实施例给出了用于构建搜索结构的数据集:所有规则同一搜索维度对应的匹配项数值,而对于构建搜索结构的具体实现方式不限。
(2)索引结构
本实施例中,索引结构用于实现对规则的索引,也即通过索引结构查找搜索结果所匹配到的具体规则。因此,在构建搜索结构和索引结构时,还需进一步将搜索结构与索引结构进行关联,进而实现从规则内容(也即匹配项数值)到规则名称之间的关联。
可选的,为简化索引结构,同时便于不同搜索维度之间进行索引运算,因此,在一实施例中,优选规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应规则数组的每一索引号,而规则数组的一个索引号对应一条规则。
步骤S30,在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
本实施例对于进行规则匹配的具体实现方式不限,具体与搜索结构对应的搜索算法相关。比如,以待匹配数据的某一数据项为匹配条件,采用基数树搜索方式进行匹配、或者采用字典树搜索方式进行匹配、或者采用数组搜索方式进行匹配等。
需要说明的是,本发明所述的规则是指用于规定数据处理方式的规则,待匹配数据需要从所有规则找出与其匹配的规则,然后基于匹配到的规则,对数据进行相应处理。此外,需要进一步说明的是,本发明所述的规则是涵盖了所有待匹配数据的,也即任意的待匹配数据都存在相应的规则与之匹配。
本实施例中,待匹配数据存在多个数据项,若要处理待匹配数据,则需要先确定待匹配数据各数据项分别对应的处理规则。由于每一个搜索维度都对应有一个搜索结构,因此可对待匹配数据同时进行多维度搜索,也即一次搜索即可从每一搜索结构中找出与待匹配数据的各数据项相匹配的所有树节点或数组项。
步骤S40,基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。
本实施例中,由于搜索结构与索引结构关联,因此,对每个搜索维度的搜索结构进行搜索而得出的搜索结果为一个索引结构,进而通过该索引结构即可查找到搜索结果所匹配到的具体规则。
本实施例先以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建由所有规则组成的规则数组的索引结构,并使搜索结构与索引结构进行关联;然后在搜索每一个搜索维度对应的搜索结构,分别获得各搜索结构中与待匹配数据的各数据项相匹配的树节点或数组项;最后再基于搜索结构中树节点或数组项与索引结构的关联关系,分别确定与待匹配数据的各数据项相匹配的规则。本实施例将海量规则匹配转换为对树型或数组型的搜索结构进行搜索,多个搜索维度可以同时进行,进而能够一次搜索维度即可以从海量的规则中得出最优结果,并且随着规则的数量增加,查找性能下降幅度小。
进一步地,在本发明规则的多维度搜索方法一实施例中,优选以规则数组的索引结构为Bitmap结构,对搜索结构与索引结构的关联进行举例说明。
(一)搜索结构为树结构
本实施例中,树结构优选适用于具有父子关系的规则匹配项,例如NAT规则中的IP地址匹配项,不同的IP地址之间具有父子关系。若将树节点之间的父子关系引入搜索结构中,则可进一步提升搜索性能。
本实施例中,若搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联。
由于搜索树结构与父子关系数都是基于同一匹配项数值所构成,也即二者的树节点之间存在对应关系,因此,将父子关系树的每一树节点与搜索结构的每一树节点进行关联,以实现使搜索结构与索引结构进行关联。
本实施例中,在构建父子关系树时,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中。
例如,五条NAT规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。假设某一树节点对应的规则为rule1,则可确定该树节点对应的Bitmap结构为:010000;假设某一树节点对应的规则为rule1、rule3、rule4,则可确定该树节点对应的Bitmap结构为:010110。
需要进一步说明的是,本实施例中,由于子树节点具有父树节点对应匹配项的数据特征,因此,父树节点对应的规则同样适用于子树节点。例如,1.1.0.0/255.255.0.0、1.1.1.0/255.255.255.0具有父子关系,因此适用于1.1.0.0/255.255.0.0的规则亦同样适用于1.1.1.0/255.255.255.0。
(二)搜索结构为数组结构
本实施例中,树结构优选适用于不具有父子关系的规则匹配项,例如NAT规则中的zone字段。
本实施例中,若搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,并将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
例如,五条NAT规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。假设某一数组项对应的规则为rule1,则可确定该数组项对应的Bitmap结构为:010000;假设某一数组项对应的规则为rule1、rule3、rule4,则可确定该数组项对应的Bitmap结构为:010110。
此外,需要进一步说明的是,本发明在初始化规则时,预先构建所有规则各搜索维度对应的搜索结构以及构建规则数组的索引结构,并使搜索结构与索引结构进行关联。当规则发生变化时,比如增加规则、删除规则或修改规则匹配项,无需重新构建搜索结构和索引结构,只需调整相应搜索结构的树节点或数组项,同时更改新的搜索结构与索引结构的关联关系即可。
进一步地,在本发明规则的多维度搜索方法另一实施例中,基于上述实施例中关于搜索结构与索引结构的关联关系,具体通过以下方式确定与待匹配数据的各数据项相匹配的规则:
基于搜索结构中树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与待匹配数据的各数据项相匹配的规则。
例如,五条NAT规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。
假设某一搜索维度的搜索结果对应的Bitmap结构为:010000,则可确定本次搜索所匹配的规则为第2比特位对应的规则,具体为rule1;假设某一搜索维度的搜索结果对应的Bitmap结构为:010110,则可确定本次搜索所匹配的规则为第2、4、5比特位对应的规则,具体为rule1、rule3、rule4。
本实施例中,基于搜索结构中树节点或数组项对应的Bitmap结构所确定的规则只是适用于待匹配数据的单一数据项,而不适用于待匹配数据的所有数据项。例如,以NAT规则为例,IP字段搜索维度对应的Bitmap结构为:010000,zone字段搜索维度对应的Bitmap结构为:010110,则IP字段只适用于rule1,而zone字段只适用于rule1、rule3、rule4。而待匹配数据的处理是以所有数据项为一整体进行规则匹配的。
进一步可选的,具体通过以下方式实现对待匹配数据所有数据项的整体规则匹配:
将与待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与待匹配数据的所有数据项相匹配的规则。
本可选实施例中,由于规则数据的索引结构采用Bitmap结构并通过二进制进行表示,因此,待匹配数据的各数据项对应的Bitmap结构可进行与运算,而与运算的结果仍然是一个Bitmap结构,只不过该Bitmap结构对应的规则是与待匹配数据的所有数据项相匹配的规则。
例如,假设有以下五条规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。
假设有一匹配项A对应的Bitmap结构010110,也即匹配项A对应的规则为rule1、rule3、rule4,另一匹配项B对应的Bitmap结构011010,也即匹配项B对应的规则为rule1、rule2、rule4,两Bitmap结构进行与运算,得到的Bitmap结构为010010,则确定rule1和rule4为与待匹配数据的数据项A、B相匹配的规则。
此外,若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。其中,对于Bitmap结构中规则优先级的确定方式不限,比如通过一预先设置的映射关系表进行确定,或者在创建规则数组时,将各规则按照优先级顺序存储,比如将高优先级的规则存储在数组索引号小的位置。
例如,进行与运算后得到的Bitmap结构为010010,则确定rule1和rule4为与待匹配数据的数据项A、B相匹配的规则,由于rule1对应的数组项索引号小于rule4对应的数组项索引号,因此将rule1作为最终匹配的规则,也即待匹配数据最终基于rule1进行处理。
本发明还提供一种规则的多维度搜索装置。
参照图3,图3为本发明规则的多维度搜索装置一实施例的功能模块示意图。本实施例中,所述规则的多维度搜索装置包括:
创建模块10,用于创建由所有规则组成的规则数组;
本实施例中,为便于对规则进行多维度搜索,同时提升规则的搜索性能,因此,将规则内容与规则名称拆分,其中,规则内容用于构建搜索结构,而规则名称用于构建索引结构,而所有规则采用规则数组进行存储。由于规则数组可通过索引号区分各数组项,因此可使用数组索引号替代规则名称以用于构建索引结构。
需要说明的是,本发明所述的规则优选指存在多个相同规则字段的规则,每一个规则字段是一个匹配项,例如,NAT规则存在源IP(srcip字段)、目的IP(dstip字段)、服务(每个服务包括协议和目的端口字段)、出入接口所在的区域划分(zone字段)等多个规则字段。
构建模块20,用于以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构;
(1)搜索结构
本实施例以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构,当外部输入待匹配数据时,可同时对所有搜索结构进行查找匹配,进而实现一次搜索即可快速得出与待匹配数据的各数据项都相匹配的规则。
为提升搜索性能,因此本实施例中,搜索结构优选为树结构或数组结构。其中,树型搜索结构优选用于处理数值较大或字段长度较长的规则字段,而数组型搜索结构则优选用于处理数值较小或字段长度较短的规则字段。
本实施例中,同一树型搜索结构的所有树节点或者同一数组型搜索结构的所有数组项具体由所有规则同一匹配项的所有规则字段的数值构成。
例如,有rule1、rule2、rule3这三条NAT规则,其中,rule1的源IP的字段值为IP1、rule2的源IP的字段值为IP2、rule3的源IP的字段值为IP3,则上述三条NAT规则的源IP搜索维度所对应的树型搜索结构所有树节点对应的数值为IP1、IP2、IP3。
本实施例对于树型搜索结构的设置不限,具体根据实际需要进行设置。例如,某一搜索维度对应的匹配项数值之间具有父子关系,则可采用基数树、平衡二叉树或者字典树作为该搜索维度对应的搜索结构。又例如,某一搜索维度对应的匹配项数值之间不仅具有父子关系,而且还可以采用二进制进行表示,因此,优选采用基数树作为该搜索维度对应的搜索结构。
本实施例中,数组型搜索结构优选适用于数值较小或字段长度较短,并且不具有包含关系或父子关系的数据。
本实施例给出了用于构建搜索结构的数据集:所有规则同一搜索维度对应的匹配项数值,而对于构建搜索结构的具体实现方式不限。
(2)索引结构
本实施例中,索引结构用于实现对规则的索引,也即通过索引结构查找搜索结果所匹配到的具体规则。因此,在构建搜索结构和索引结构时,还需进一步将搜索结构与索引结构进行关联,进而实现从规则内容(也即匹配项数值)到规则名称之间的关联。
可选的,为简化索引结构,同时便于不同搜索维度之间进行索引运算,因此,在一实施例中,优选规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应规则数组的每一索引号,而规则数组的一个索引号对应一条规则。
搜索模块30,用于在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
本实施例对于进行规则匹配的具体实现方式不限,具体与搜索结构对应的搜索算法相关。比如,以待匹配数据的某一数据项为匹配条件,采用基数树搜索方式进行匹配、或者采用字典树搜索方式进行匹配、或者采用数组搜索方式进行匹配等。
需要说明的是,本发明所述的规则是指用于规定数据处理方式的规则,待匹配数据需要从所有规则找出与其匹配的规则,然后基于匹配到的规则,对数据进行相应处理。此外,需要进一步说明的是,本发明所述的规则是涵盖了所有待匹配数据的,也即任意的待匹配数据都存在相应的规则与之匹配。
本实施例中,待匹配数据存在多个数据项,若要处理待匹配数据,则需要先确定待匹配数据各数据项分别对应的处理规则。由于每一个搜索维度都对应有一个搜索结构,因此可对待匹配数据同时进行多维度搜索,也即一次搜索即可从每一搜索结构中找出与待匹配数据的各数据项相匹配的所有树节点或数组项。
规则确定模块40,用于基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则。
本实施例中,由于搜索结构与索引结构关联,因此,对每个搜索维度的搜索结构进行搜索而得出的搜索结果为一个索引结构,进而通过该索引结构即可查找到搜索结果所匹配到的具体规则。
本实施例先以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建由所有规则组成的规则数组的索引结构,并使搜索结构与索引结构进行关联;然后在搜索每一个搜索维度对应的搜索结构,分别获得各搜索结构中与待匹配数据的各数据项相匹配的树节点或数组项;最后再基于搜索结构中树节点或数组项与索引结构的关联关系,分别确定与待匹配数据的各数据项相匹配的规则。本实施例将海量规则匹配转换为对树型或数组型的搜索结构进行搜索,多个搜索维度可以同时进行,进而能够一次搜索维度即可以从海量的规则中得出最优结果,并且随着规则的数量增加,查找性能下降幅度小。
进一步地,在本发明规则的多维度搜索装置的以下实施例中,优选以规则数组的索引结构为Bitmap结构,对构建模块20关联搜索结构与索引结构进行举例说明。
(一)搜索结构为树结构
本实施例中,树结构优选适用于具有父子关系的规则匹配项,例如NAT规则中的IP地址匹配项,不同的IP地址之间具有父子关系。若将树节点之间的父子关系引入搜索结构中,则可进一步提升搜索性能。
本实施例中,若搜索结构为树结构,则构建模块20基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联。
由于搜索树结构与父子关系数都是基于同一匹配项数值所构成,也即二者的树节点之间存在对应关系,因此,将父子关系树的每一树节点与搜索结构的每一树节点进行关联,以实现使搜索结构与索引结构进行关联。
本实施例中,构建模块20在构建父子关系树时,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中。
例如,五条NAT规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。假设某一树节点对应的规则为rule1,则可确定该树节点对应的Bitmap结构为:010000;假设某一树节点对应的规则为rule1、rule3、rule4,则可确定该树节点对应的Bitmap结构为:010110。
需要进一步说明的是,本实施例中,由于子树节点具有父树节点对应匹配项的数据特征,因此,父树节点对应的规则同样适用于子树节点。例如,1.1.0.0/255.255.0.0、1.1.1.0/255.255.255.0具有父子关系,因此适用于1.1.0.0/255.255.0.0的规则亦同样适用于1.1.1.0/255.255.255.0。
(二)搜索结构为数组结构
本实施例中,树结构优选适用于不具有父子关系的规则匹配项,例如NAT规则中的zone字段。
本实施例中,若搜索结构为数组结构,则构建模块20使数组结构的每一数组项与一Bitmap结构关联,并将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
例如,五条NAT规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。假设某一数组项对应的规则为rule1,则可确定该数组项对应的Bitmap结构为:010000;假设某一数组项对应的规则为rule1、rule3、rule4,则可确定该数组项对应的Bitmap结构为:010110。
此外,需要进一步说明的是,本发明在初始化规则时,构建模块20预先构建所有规则各搜索维度对应的搜索结构以及构建规则数组的索引结构,并使搜索结构与索引结构进行关联。当规则发生变化时,比如增加规则、删除规则或修改规则匹配项,无需重新构建搜索结构和索引结构,只需调整相应搜索结构的树节点或数组项,同时更改新的搜索结构与索引结构的关联关系即可。
本实施例中,采用Bitmap结构作为规则数组的索引结构,不仅可以减少规则数组的索引结构的数据量,提升存储性能,同时由于Bitmap结构为二进制形式,可以进行二进制运算,也即相当于可以对不同规则进行与运算,进而快速匹配到最有的规则,提升了规则匹配时的搜索性能。
进一步地,在本发明规则的多维度搜索装置的以下实施例中,基于上述实施例中关于搜索结构与索引结构的关联关系,规则确定模块40具体通过以下方式确定与待匹配数据的各数据项相匹配的规则:
基于搜索结构中树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与待匹配数据的各数据项相匹配的规则。
例如,五条NAT规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。
假设某一搜索维度的搜索结果对应的Bitmap结构为:010000,则可确定本次搜索所匹配的规则为第2比特位对应的规则,具体为rule1;假设某一搜索维度的搜索结果对应的Bitmap结构为:010110,则可确定本次搜索所匹配的规则为第2、4、5比特位对应的规则,具体为rule1、rule3、rule4。
基于搜索结构中树节点或数组项对应的Bitmap结构所确定的规则只是适用于待匹配数据的单一数据项,而不适用于待匹配数据的所有数据项。例如,以NAT规则为例,IP字段搜索维度对应的Bitmap结构为:010000,zone字段搜索维度对应的Bitmap结构为:010110,则IP字段只适用于rule1,而zone字段只适用于rule1、rule3、rule4。而待匹配数据的处理是以所有数据项为一整体进行规则匹配的。
进一步可选的,在一实施例中,规则确定模块40具体通过以下方式实现对待匹配数据所有数据项的整体规则匹配:
将与待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并确定与运算后的Bitmap结构中所有置1的比特位所对应的规则为与待匹配数据的所有数据项相匹配的规则。
本可选实施例中,由于规则数据的索引结构采用Bitmap结构并通过二进制进行表示,因此,待匹配数据的各数据项对应的Bitmap结构可进行与运算,而与运算的结果仍然是一个Bitmap结构,只不过该Bitmap结构对应的规则是与待匹配数据的所有数据项相匹配的规则。
例如,假设有以下五条规则:rule1、rule2、rule3、rule4、rule5,对应的规则数组从左到右依次存储0、rule1、rule2、rule3、rule4、rule5,由于存在六个索引号,因此,Bitmap结构设置为6个比特位。
假设有一匹配项A对应的Bitmap结构010110,也即匹配项A对应的规则为rule1、rule3、rule4,另一匹配项B对应的Bitmap结构011010,也即匹配项B对应的规则为rule1、rule2、rule4,两Bitmap结构进行与运算,得到的Bitmap结构为010010,则确定rule1和rule4为与待匹配数据的数据项A、B相匹配的规则。
此外,规则确定模块40还用于:若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。
其中,对于Bitmap结构中规则优先级的确定方式不限,比如通过一预先设置的映射关系表进行确定,或者在创建规则数组时,将各规则按照优先级顺序存储,比如将高优先级的规则存储在数组索引号小的位置。
例如,进行与运算后得到的Bitmap结构为010010,则确定rule1和rule4为与待匹配数据的数据项A、B相匹配的规则,由于rule1对应的数组项索引号小于rule4对应的数组项索引号,因此将rule1作为最终匹配的规则,也即待匹配数据最终基于rule1进行处理。
本发明还提供一种计算机可读存储介质。
本发明中,计算机可读存储介质上存储有规则的多维度搜索程序,所述规则的多维度搜索程序被处理器执行时实现如上述任一项实施例中所述的规则的多维度搜索方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。

Claims (6)

1.一种规则的多维度搜索方法,其特征在于,所述规则的多维度搜索方法包括:
创建由所有规则组成的规则数组;
以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构,其中,同一所述树结构的搜索结构的所有树节点或者同一数组型搜索结构的所有数组项由所有规则同一匹配项的所有规则字段的数值构成;
在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则;
其中,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则;
其中,所述使所述搜索结构与所述索引结构进行关联包括:
若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;
将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联;
或者,所述使所述搜索结构与所述索引结构进行关联包括:
若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
2.如权利要求1所述的规则的多维度搜索方法,其特征在于,在所述基于所述搜索结构中所述树节点或数组项与所述索引结构的关联关系,分别确定与所述待匹配数据的各数据项相匹配的规则的步骤之后,还包括:
将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;
若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。
3.一种规则的多维度搜索装置,其特征在于,所述规则的多维度搜索装置包括:
创建模块,用于创建由所有规则组成的规则数组;
构建模块,用于以规则的每一匹配项为一搜索维度,分别构建所有规则各搜索维度对应的搜索结构以及构建所述规则数组的索引结构,并使所述搜索结构与所述索引结构进行关联,其中,所述搜索结构为树结构或数组结构,其中,同一所述树结构的搜索结构的所有树节点或者同一数组型搜索结构的所有数组项由所有规则同一匹配项的所有规则字段的数值构成;
搜索模块,用于在进行规则匹配时,搜索每一个搜索维度对应的搜索结构,以分别从各搜索结构中,获得与待匹配数据的各数据项相匹配的树节点或数组项;
规则确定模块,用于基于所述搜索结构中所述树节点或数组项对应的Bitmap结构,分别确定各Bitmap结构中置1的比特位所对应的规则为与所述待匹配数据的各数据项相匹配的规则;
其中,所述规则数组的索引结构为Bitmap结构,所述Bitmap结构的每一比特位对应所述规则数组的每一索引号,所述规则数组的一个索引号对应一条规则;
其中,所述规则的多维度搜索装置还包括:
若所述搜索结构为树结构,则基于所有规则同一匹配项数值之间的父子关系,构建父子关系树,并使所述父子关系树的每一树节点与一Bitmap结构关联,其中,将Bitmap结构中与树节点数值匹配的规则所对应的比特位置1,其他比特位置0,以及将父树节点关联的Bitmap结构添加到子树节点关联的Bitmap结构中;
将所述父子关系树的每一树节点与所述搜索结构的每一树节点进行关联;
或者,所述规则的多维度搜索装置还包括:
若所述搜索结构为数组结构,则使数组结构的每一数组项与一Bitmap结构关联,其中,将Bitmap结构中与数组项数值匹配的规则所对应的比特位置1,其他比特位置0。
4.如权利要求3所述的规则的多维度搜索装置,其特征在于,所述规则确定模块还用于:
将与所述待匹配数据的各数据项相匹配的树节点或数组项对应的Bitmap结构进行与运算,并将与运算后的Bitmap结构中所有置1的比特位所对应的规则,确定为与所述待匹配数据的所有数据项相匹配的规则;
若进行与运算后的Bitmap结构中存在多个置1的比特位,则将该Bitmap结构中优先级最高且置1的比特位对应的规则作为最终匹配的规则。
5.一种规则的多维度搜索设备,其特征在于,所述规则的多维度搜索设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的规则的多维度搜索程序,所述规则的多维度搜索程序被所述处理器执行时实现如权利要求1或2所述的规则的多维度搜索方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有规则的多维度搜索程序,所述规则的多维度搜索程序被处理器执行时实现如权利要求1或2所述的规则的多维度搜索方法的步骤。
CN201811305941.0A 2018-11-01 2018-11-01 规则的多维度搜索方法、装置、设备及可读存储介质 Active CN109408517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811305941.0A CN109408517B (zh) 2018-11-01 2018-11-01 规则的多维度搜索方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811305941.0A CN109408517B (zh) 2018-11-01 2018-11-01 规则的多维度搜索方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN109408517A CN109408517A (zh) 2019-03-01
CN109408517B true CN109408517B (zh) 2022-04-29

Family

ID=65471492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811305941.0A Active CN109408517B (zh) 2018-11-01 2018-11-01 规则的多维度搜索方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN109408517B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442570B (zh) * 2019-06-06 2021-08-17 北京左江科技股份有限公司 一种BitMap高速模糊查找方法
CN111274274B (zh) * 2020-02-06 2023-08-15 北京百度网讯科技有限公司 规则匹配方法、装置、电子设备及存储介质
CN113821508B (zh) * 2021-08-20 2023-09-22 达梦数据技术(江苏)有限公司 一种数组索引的实现方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939269A (zh) * 2015-12-18 2016-09-14 杭州迪普科技有限公司 基于网络地址转换规则的报文转换方法及装置
CN107480156A (zh) * 2016-06-08 2017-12-15 北京新岸线网络技术有限公司 一种视频搜索方法

Also Published As

Publication number Publication date
CN109408517A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
JP4452183B2 (ja) プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置)
CN109408517B (zh) 规则的多维度搜索方法、装置、设备及可读存储介质
CN101345707B (zh) 一种实现IPv6报文分类的方法及设备
US11595503B2 (en) Efficient packet classification for dynamic containers
US8750144B1 (en) System and method for reducing required memory updates
US8914320B2 (en) Graph generation method for graph-based search
US9270636B2 (en) Neighbor lookup operations in a network node
US20140122791A1 (en) System and method for packet classification and internet protocol lookup in a network environment
US20150242429A1 (en) Data matching based on hash table representations of hash tables
US20130294450A1 (en) Optimized trie-based address lookup
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
Yang et al. Fast OpenFlow table lookup with fast update
KR101754618B1 (ko) 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치
US11888743B1 (en) Network device storage of incremental prefix trees
US7027446B2 (en) Method and apparatus for set intersection rule matching
Han et al. A novel routing algorithm for IoT cloud based on hash offset tree
US20150172252A1 (en) Visual representation of complex network address translation rules
US8166536B1 (en) Transformation of network filter expressions to a content addressable memory format
CN112187743B (zh) 一种基于ip地址最长前缀的网络策略匹配方法及系统
CN112260951A (zh) 期待连接处理方法、装置、可读存储介质和电子设备
US9590897B1 (en) Methods and systems for network devices and associated network transmissions
CN114006831B (zh) 报文数据处理方法及装置
WO2015187200A1 (en) Efficient packet classification for dynamic containers
CN112910894A (zh) 一种实现策略的快速匹配的方法
KR20050074903A (ko) 임의적인 ip 범위 구성으로 고속 규칙 검색

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
GR01 Patent grant
GR01 Patent grant