CN101848248B - 一种规则查找方法和装置 - Google Patents

一种规则查找方法和装置 Download PDF

Info

Publication number
CN101848248B
CN101848248B CN 201010193518 CN201010193518A CN101848248B CN 101848248 B CN101848248 B CN 101848248B CN 201010193518 CN201010193518 CN 201010193518 CN 201010193518 A CN201010193518 A CN 201010193518A CN 101848248 B CN101848248 B CN 101848248B
Authority
CN
China
Prior art keywords
segmentation
rule
searching
keyword
data flow
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.)
Expired - Fee Related
Application number
CN 201010193518
Other languages
English (en)
Other versions
CN101848248A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 201010193518 priority Critical patent/CN101848248B/zh
Publication of CN101848248A publication Critical patent/CN101848248A/zh
Application granted granted Critical
Publication of CN101848248B publication Critical patent/CN101848248B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种规则查找方法和装置,方法包括:将数据流关键字按照预设分段方法进行分段;根据该数据流关键字的各分段在线性索引表中进行精确匹配查找,得到每个分段对应的位向量;将所述位向量进行向量叉乘,并在叉乘结果中查找第一个非零位得到所述第一个非零位的索引值;根据所述索引值查找到所述数据流对应的规则。本发明实施例通过对各种数据流关键字进行分段,将数据流关键字的匹配方式都转换成线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,从而简化了查找过程中的匹配算法,提高了查找效率。

Description

一种规则查找方法和装置
技术领域
本发明涉及网络技术领域,尤其是涉及一种规则查找方法和装置。
背景技术
在现有网络技术中,经常会遇到需要查找规则的情况,比如在交换机或者路由器等网络设备中都包含一定的转发规则,这些转发规则位于转发规则表中,这些网络设备需要根据其接收的数据流中的关键字来查找该数据流符合哪种规则,然后根据该规则进行数据转发。
一种规则中可能会包括多种具体的匹配方式,比如一种规则可能需要包括IP地址匹配、端口号匹配或者协议类型匹配等多种匹配方式,这几种匹配方式所对应的关键字可以分别为因特网协议(Internet Protocol,IP)地址、端口号和协议。在接收到数据流时,上述网络设备就需要利用数据流中的上述关键字来进行规则匹配,只有完全匹配的数据流,才能以该规则进行转发。
但是,上述的IP地址匹配、端口号匹配或者协议类型匹配的匹配方式是各不相同的,比如IP地址采用最长前缀匹配、端口号采用范围匹配、而协议类型采用精确匹配等,另外再加上上述关键字的二进制位宽都比较长,因此实现规则查找操作的时候往往算法复杂,且执行效率不高。
发明内容
本发明实施提供了一种规则查找方法和装置,用于简化关键字匹配查找操作,高效率地支持多种二进制位宽的关键字匹配查找操作。
一方面,本发明实施提供了一种规则查找方法,该方法包括:将数据流关键字按照预设分段方法进行分段;根据该数据流关键字的各分段在线性索引表中进行精确匹配查找,得到每个分段对应的位向量;将所述位向量进行向量叉乘,并在叉乘结果中查找第一个非零位得到所述第一个非零位的索引值;根据所述索引值查找到所述数据流对应的规则。
另一方面,本发明实施还提供了一种规则查找装置,包括:分段单元,用于将数据流关键字按照预设分段方法进行分段;位向量查找单元,用于根据该数据流关键字的各分段在线性索引表中进行精确匹配查找,得到每个分段对应的位向量;向量叉乘单元,用于将所述位向量查找单元查找到的各分段的位向量进行向量叉乘;索引查找单元,用于在向量叉乘结果中查找第一个非零位得到所述第一个非零位的索引值;规则查找单元,用于根据所述索引值查找到所述数据流对应的规则。
另一方面,本发明实施还提供了一种查找引擎,包括至少两个如上所述的规则查找装置。
本发明实施例通过对各种数据流关键字进行分段,将数据流关键字的匹配方式都转换成线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,从而简化了查找过程中的匹配算法,提高了查找效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种规则查找方法的流程示意图;
图2为本发明实施例提供的另一种规则查找方法的流程示意图;
图3为本发明实施例提供的一种规则查找方法的结构化操作示意图;
图4为本发明实施例提供的一种规则查找装置的结构示意图;
图5为本发明实施例提供的另一种规则查找装置的结构示意图;
图6为本发明实施例提供的一种查找引擎的结构示意图;
图7为本发明实施例提供的一种扩大查找二进制位宽的查找引擎的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明实施例提供的一种规则查找方法的流程示意图,该方法可以运用在网络设备中,比如运用在交换机或者路由器中对数据流进行分类匹配,找到该数据流所符合的规则,然后根据该规则转发数据流,具体来说,该系统可以体现在网络设备的片上系统(System on Chip,SOC)中。
需要指出的是,在运用本发明实施例的查找方法前,需要先得到一线性索引表,该线性索引表是对规则关键字按照预设分段方法进行分段后根据分段结果生成的。由于数据流中的关键字都是确定的,因此无论何种匹配方式都是可以转换成精确匹配的,而该线性索引表就允许根据关键字在该表中进行精确匹配查找,即直接查找。
比如,如果规则是IP地址匹配,则在线性索引表中将规则划分为4段,每段是一个字节,每段可以表示的数值范围是0-255,其中每个数值都可以对应一个标识。则数据流中的IP地址也可以分为4段,每段都可以根据其数值直接查找到相应的标识。在本实施例中该标识即为下述的位向量。
在本发明实施例中,该线性索引表可以是在网络设备中自动生成的,也可以是由用户建立后再放入网络设备的存储单元,比如内存中。在本发明实施例中对此并不加以限定。
该规则查找方法包括:
S101:将数据流关键字按照预设分段方法进行分段。
这里的预设分段方法和上述对规则关键字分段所采用的分段方法是相同的,这是为了后续匹配查找的需要。
作为本发明的一个实施例,这里的预设分段方法可以是将数据流关键字按照逻辑元组进行分段,或者是将数据流关键字按照固定位长进行分段。举例来说,当按照逻辑元组进行分段时,可以将数据流关键字按照IP地址、端口号、协议类型分为3段;当按照固定位长进行分段时,可以以字节或者字为单位进行分段,这样,如果以字节为单位,则IP地址为4个字节可以划分成4段,传输控制协议/用户数据包协议(Transmission Control Protocol/User Datagram Protocol,TCP/UDP)的端口号为2个字节可以划分为2段,协议类型为1个字节可以不再分段。
S102:根据该数据流关键字的各分段在该线性索引表中进行精确匹配查找,得到每个分段对应的位向量;
由于线性索引表和该数据流关键字的各分段间是精确匹配的关系,即把原先多种匹配算法都转换成了精确匹配,因此本步骤的查询速度较快,且匹配算法实现较为简单。在本实施例中得到的和数据流关键字的每个分段相对应的位向量是为后续计算得到规则索引值的参数。
作为本发明的一个实施例,本步骤中的精确匹配查找可以是一种并行查找,为了实现该并行查找,线性索引表也可以进行分段,该分段数和数据流关键字的分段数相同,然后将线性索引表的各段存储在不同的存储单元中,以此来实现并行查找。当然,作为本发明的一个实施例,也可以将线性索引表复制多份并存入不同的存储单元来实现并行查找的操作。
S103:将所述位向量进行向量叉乘,即将各个位向量的对应位进行与运算,比如有两个位向量0110b和1010b则向量叉乘后结果为0010b,接着在叉乘结果中查找第一个非零位得到所述第一个非零位的索引值;
需要指出的是,本步骤所得出的第一个非零位的索引值也是规则的索引值,该索引值是预先赋予给各个规则的。
S104:根据所述索引值查找到该数据流对应的规则。
本发明实施例通过对各种数据流关键字进行分段,将数据流关键字的匹配方式都转换成线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,从而简化了查找过程中的匹配算法,提高了查找效率。
如图2所示为本发明实施例提供的另一种规则查找方法的流程示意图,该方法包括:
S201:将规则按照优先级降序或者升序的次序进行排序。
S202:对规则关键字按照预设分段方法进行分段。这里的预设分段方法和上述实施例中相类似,即采用和数据流关键字相同的分段方法。
S203:根据分段结果对规则进行预处理生成线性索引表,所述预处理包括:获得第x条规则Rx的第y个分段Fy所可能对应的数值;将该数值所对应的位向量的第x位置1,x为该规则的索引值,具体可以参见对表3的描述。在本实施例中,上述步骤S201-S203是为本发明实施例提供线性索引表的步骤,在本实施例中上述步骤由网络设备完成,当然,也可以由用户完成后将直接线性查找表存入网络设备的存储单元内。
S204:将数据流关键字按照预设分段方法进行分段。
S205:根据该数据流关键字的各分段在线性索引表中进行精确匹配查找,得到对应的位向量。
S206:将所述位向量进行向量叉乘,并在叉乘结果中查找第一个非零位得到所述第一个非零位的索引值,需要指出的是,当步骤S201中将规则按照优先级降序的次序进行排序时,本步骤中“在叉乘结果中查找第一个非零位”是从低位向高位查找第一位非零位,而当步骤S201中将规则按照优先级升序的次序进行排序时,本步骤中“在叉乘结果中查找第一个非零位”是从高位向低位查找第一位非零位。
S207:根据所述索引值查找到该数据流对应的规则。
在本实施例中步骤S204-S207为查找步骤。
如图3所示为本发明实施例提供的一种规则查找方法的结构化操作示意图,从图中可见,在执行查找时,首先将原始关键字(key)分为了m段,即key1-keym,然后从线性索引表中查找到key1-keym中每个分段相应的位向量,然后再对这些位向量进行叉乘,从而得到一个新的位向量,接着对该新的位向量执行第一个非零位查找操作,得到第一个非零位的索引值,最后根据该索引值从降序排序的规则表中找到对应的规则。
下面举一具体实例来对本实施例进行进一步详细的描述:
在本实施例中,如表1所示,列举了3种规则,该3种规则都是以源IP+目的IP+协议的形式存在的。
  规则索引值   优先级   规则(源IP+目的IP+协议)   动作
  0   3   1.1.1.1/32+2.2.2.2/32+TCP   permit
  1   2   1.1.1.0/24+2.2.2.0/24+TCP   deny
  2   1   *+3.3.3.0/24+UDP   permit
表1
这3种规则具体为:
1.1.1.1/32+2.2.2.2/32+TCP、1.1.1.0/24+2.2.2.0/24+TCP以及*+3.3.3.0/24+UDP。
上述3种规则的优先级分别为3、2、1,其中序号越大表示优先级越高;3种规则所对应的动作分别为允许(permit)、拒绝(deny)、允许;3种规则所对应的索引值分别为0、1、2。
根据上述规则,比如:
对于报文1:源IP=1.1.1.2,目的IP=2.2.2.2,协议=TCP,应该命中第二条规则;
对于报文2:源IP=1.1.1.1,目的IP=2.2.2.2,协议=TCP,应该命中第一条规则;虽然也符合第二条规则,但第一条规格优先级较高;
对于报文3:源IP=4.4.4.4,目的IP=3.3.3.20,协议=UDP,应该命中第三条规则;
对于上述匹配过程,现有技术中最简单的办法就是从报文中提取key,然后按规则的优先级由高到低依次比较,命中的第一条规则就是最终的结果;在匹配的过程中,SIP和DIP字段都需要按最长前缀进行匹配。
而在本实施例中,则是先对上述规则的规则关键字:源IP、目的IP和协议进行分段,分段的方法可以按逻辑分段或按固定位长分段,在本实施例中采用按固定位长分段,即按照字节为单位进行分段。
由于采用以字节为单位进行分段,因此源IP、目的IP都可以从左至右分为4段,其分别对应段1-段4,而协议分为1段(如表2所示)。
Figure GSA00000134463600071
表2
分段后,再根据分段结果对规则进行预处理生成线性索引表,该线性索引表的生成过程主要是获得各分段对应的位向量的过程,该预处理包括:获得第x条规则Rx的第y个分段Fy所可能对应的数值;将该数值所所对应的位向量的第x位置1,x为该规则的索引值。即假设分段Fy可能对应的数值为Fy1、Fy2……、Fyn,则将这些数值所对应的位向量的第x位置1,比如:索引值为2的规则中源IP为*(任意),即表示分段后源IP的段1可能对应的数值为[0,255],则将[0,255]所对应的位向量的第2位都置1(位向量从低位至高位分别对应索引值0-2)即x1xxb;又比如:索引值为0的规则中源IP为1.1.1.1/32,即表示分段后源IP的段1可能对应的数值只为1,则将1所对应的位向量的第0位置1;再比如:索引值为1的规则中源IP为1.1.1.1/24,即表示分段后源IP的段1可能对应的数值也只为1,则将1所对应的位向量的第1位置1。经过该预处理可以得到各分段后的规则关键字所对应的位向量表,比如表2中源IP的段1所对应的位向量表如表3所示:
  0   100b
  1   111b
  2   100b
  …   …
  255   100b
表3
上述表3表示段1取数值0-255时,各数值所对应的二进制位向量。
上述表2的形成可以是在网络设备内部完成的,也可以是在外部完成后存入网络设备的。
然后,当网络设备收到一数据流中的报文,比如报文2后,具体的查找步骤如下:
按照和规则关键字分段所相同的方法对该报文2的关键字进行分段,分段后各段的值依次为:1/1/1/1/2/2/2/2/TCP;
接着以各段的值为索引分别在表2中进行精确匹配查找,得到如下对应的位向量:111b/111b/111b/111b/011b/011b/011b/011b/011b;
对上述各个位向量进行向量叉乘处理,得到结果为011b;由于位向量从低位至高位分别对应索引值0-2,因此叉乘结果从低位至高位也分别对应索引值0-2。
最后在上述叉乘结果中查找第一个非零位,由于在本实施例中的规则是降序排序的,因此从低位向高位开始查找,得到第一个非零位为最低位,其对应的规则索引值为0,即索引值为0的第一条规则命中。
从上述的过程中可以看出,整个查找过程都是简单的查找线性表,没有其他复杂的算法。另外,在本实施例中,为了实现并行查找,可以将每个分段所对应的位向量表存在一个单独的存储空间内,比如一个内存中可以独立读/写的内存块(bank)中,而使得各个数据流关键字段可以同时进行查找而互不影响。
本发明实施例通过对各种数据流关键字进行分段,将数据流关键字的匹配方式都转换成线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,简化了查找过程中的匹配算法,提高了查找效率。另外,采用分段的方式进行线性索引表的查找,可以方便地进行并行查找,可以进一步提高查找效率。
如图4所示为本发明实施例提供的一种规则查找装置的结构示意图,该装置包括:分段单元410、位向量查找单元420、向量叉乘单元430、索引查找单元440和规则查找单元450,其中,位向量查找单元420分别和分段单元410及向量叉乘单元430相连,而索引查找单元440则分别和向量叉乘单元430及规则查找单元450相连。
分段单元410用于将数据流关键字按照预设分段方法进行分段。
作为本发明的一个实施例,这里的预设分段方法可以是将数据流关键字按照逻辑元组进行分段,或者也可以是将数据流关键字按照固定位长进行分段。
位向量查找单元420用于根据分段单元410所分出的该数据流关键字的各个分段在线性索引表中进行并行查找,得到各个分段对应的位向量。
该线性索引表是对规则关键字按照预设分段方法进行分段后根据分段结果生成的。由于数据流中的关键字都是确定的,因此无论何种匹配方式都是可以转换成精确匹配的,而该线性索引表就允许根据关键字在该表中进行精确匹配查找,即直接查找。
由于线性索引表和数据流关键字的分段间是精确匹配的关系,即把原先多种匹配算法都转换成了精确匹配,因此本步骤的查询速度较快,且匹配算法实现较为简单。在本实施例中得到的和数据流关键字的分段相对应的位向量是为后续计算得到规则索引值的前提参数。
向量叉乘单元430用于将位向量查找单元420所查找到的各个分段的位向量进行向量叉乘,即将各个位向量的对应位进行与运算。
索引查找单元440用于在向量叉乘单元430的叉乘结果中查找第一个非零位得到所述第一个非零位的索引值。
规则查找单元450用于根据索引查找单元440查找到的索引值查找到数据流对应的规则。
本发明实施例将各种数据流关键字进行分段,并将数据流关键字的匹配方式都转换成了线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,从而简化了查找过程中的匹配算法,提高了查找效率。
如图5所示为本发明实施例提供的另一种规则查找装置的结构示意图,该规则装置包括:分段单元410、位向量查找单元420、向量叉乘单元430、索引查找单元440、规则查找单元450、存储单元460和生成单元470。
生成单元470用于生成线性索引表,具体来说,其用于将规则按照优先级降序或者升序的次序进行排序;对规则关键字按照所述预设分段方法进行分段;根据分段结果对规则进行预处理生成线性索引表,所述预处理包括:获得第x条规则Rx的第y个分段Fy所可能对应的数值;将该数值所对应的位向量的第x位置1,x为该规则的索引值。
当生成单元470将规则按照优先级降序的次序进行排序时,索引查找单元440用于对叉乘结果从低位向高位查找第一个非零位;当生成单元470将规则按照优先级升序的次序进行排序时,索引查找单元440用于对叉乘结果从高位向低位查找第一个非零位。存储单元460用于存储生成单元470生成的线性索引表,其可以包括m个存储子模块,所述线性索引表分成m段分别存储于所述m个存储子模块中,m为数据流关键字按照预设分段方法进行分段后的分段数。这样可以使得位向量查找单元420实现并行查找,进一步提高查找效率。在本实施例中,存储单元460例如可以是内存,而存储子模块例如可以是内存中的bank。
具体的线性索引表的生成实例以及查找实例可以参见上述方法实施例中的描述,在此不再赘述。
本发明实施例将各种数据流关键字进行分段,并将数据流关键字的匹配方式都转换成了线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,从而简化了查找过程中的匹配算法,提高了查找效率。
如图6所示为本发明实施例提供的一种查找引擎的结构示意图,该查找引擎600包括至少两个规则查找装置610,该规则查找装置610可以如图4或者图5对应实施例中所述的规则查找装置,每个查找装置610都可以独立进行工作,这样,就可以同时处理多个数据流的规则查找操作。
作为本发明的一个实施例,为了扩大查找引擎所能查找的数据流关键字的二进制位宽,可以将至少两个规则查找装置610的向量叉乘单元进行相连,以此来扩大查找二进制位宽。
比如,如图7所示,将规则查找装置700和规则查找装置800的向量叉乘单元440相连,在本实施例中是将规则查找装置800中向量叉乘单元430的结果输出给查找装置700的向量叉乘单元430。
上述结合方式相当于将规则查找装置700的查找二进制位宽扩大了一倍,而规则查找装置800的查找二进制位宽不变,可见本发明实施例根据需要就可以将规则查找装置700的二进制位宽扩大整数倍。
本发明实施例的查找引擎将各种数据流关键字进行分段,并将数据流关键字的匹配方式都转换成了线性索引表的查找方式,并根据对查找结果的处理来找到相应规则,从而简化了查找过程中的匹配算法,提高了查找效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种规则查找方法,其特征在于,所述方法包括:
将数据流关键字按照预设分段方法进行分段;
根据该数据流关键字的各分段在线性索引表中进行精确匹配查找,得到每个分段对应的位向量;
将所述位向量进行向量叉乘,并在叉乘结果中查找第一个非零位得到所述第一个非零位的索引值;
根据所述索引值查找到所述数据流对应的规则;
所述线性索引表的生成步骤包括:
对规则关键字按照所述预设分段方法进行分段;
根据分段结果对规则进行预处理生成线性索引表,所述预处理包括:获得第x条规则Rx的第y个分段Fy所可能对应的数值;将该数值所对应的位向量的第x位置1,x为该规则的索引值。
2.如权利要求1所述的方法,其特征在于,所述根据该数据流关键字的各分段在线性索引表中进行精确匹配查找包括:
根据该数据流关键字段的各分段在线性索引表中并行地进行精确匹配查找。
3.如权利要求1所述的方法,其特征在于,所述预设分段方法包括:
按照逻辑元组进行分段,或者按照固定位长进行分段。
4.如权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:
将规则按照优先级降序的次序进行排序;
所述在叉乘结果中查找第一个非零位包括:对叉乘结果从低位向高位查找第一个非零位。
5.如权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:
将规则按照优先级升序的次序进行排序;
所述在叉乘结果中查找第一个非零位包括:对叉乘结果从高位向低位查找第一个非零位。
6.一种规则查找装置,其特征在于,包括:
分段单元,用于将数据流关键字按照预设分段方法进行分段;
位向量查找单元,用于根据该数据流关键字的各分段在线性索引表中进行精确匹配查找,得到每个分段对应的位向量;
向量叉乘单元,用于将所述位向量查找单元查找到的各分段的位向量进行向量叉乘;
索引查找单元,用于在向量叉乘结果中查找第一个非零位得到所述第一个非零位的索引值;
规则查找单元,用于根据所述索引值查找到所述数据流对应的规则;
所述规则查找装置还包括:生成单元,用于对规则关键字按照所述预设分段方法进行分段;根据分段结果对规则进行预处理生成线性索引表,所述预处理包括:获得第x条规则Rx的第y个分段Fy所可能对应的数值;将该数值所对应的位向量的第x位置1,x为该规则的索引值。
7.如权利要求6所述的装置,其特征在于,所述规则查找装置还包括:
存储单元,用于存储所述线性索引表,所述线性索引表是对规则关键字按照所述预设分段方法进行分段后根据分段结果生成的。
8.如权利要求7所述的装置,其特征在于,所述存储单元分为m个存储子模块,所述线性索引表被分成m段分别存储于所述m个存储子模块中,m为数据流关键字按照预设分段方法进行分段后的分段数。
9.如权利要求6所述的装置,其特征在于,所述生成单元,还用于将规则按照优先级降序的次序进行排序;
所述索引查找单元在向量叉乘结果中查找第一个非零位包括:对叉乘结果从低位向高位查找第一个非零位。
10.如权利要求6所述的装置,其特征在于,所述生成单元,还用于将规则按照优先级升序的次序进行排序;
所述索引查找单元在向量叉乘结果中查找第一个非零位包括:对叉乘结果从高位向低位查找第一个非零位。
11.一种查找引擎,其特征在于,包括:至少两个如权利要求6-10任一所述的规则查找装置。
12.如权利要求11所述的查找引擎,其特征在于,至少有两个规则查找装置的向量叉乘单元进行相连,以扩大查找引擎所能查找的数据流关键字的二进制位宽。
CN 201010193518 2010-06-04 2010-06-04 一种规则查找方法和装置 Expired - Fee Related CN101848248B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010193518 CN101848248B (zh) 2010-06-04 2010-06-04 一种规则查找方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010193518 CN101848248B (zh) 2010-06-04 2010-06-04 一种规则查找方法和装置

Publications (2)

Publication Number Publication Date
CN101848248A CN101848248A (zh) 2010-09-29
CN101848248B true CN101848248B (zh) 2012-12-26

Family

ID=42772706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010193518 Expired - Fee Related CN101848248B (zh) 2010-06-04 2010-06-04 一种规则查找方法和装置

Country Status (1)

Country Link
CN (1) CN101848248B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220231B (zh) * 2012-01-19 2016-04-06 上海未来宽带技术股份有限公司 一种HiNOC数据流处理系统及方法
US8990277B2 (en) * 2012-05-08 2015-03-24 GM Global Technology Operations LLC Method for searching a lookup table
CN104424196B (zh) * 2013-08-20 2018-05-01 北大方正集团有限公司 补字的排序存储方法及装置、创建补充字库的方法及装置
EP3761575A1 (en) 2014-04-30 2021-01-06 Huawei Technologies Co., Ltd. Search apparatus and method
CN105302912B (zh) * 2015-11-11 2018-06-29 中国联合网络通信集团有限公司 一种数据存储方法及设备
CN109672623B (zh) * 2018-12-28 2020-12-25 大唐软件技术股份有限公司 一种报文处理方法和装置
CN113688289B (zh) * 2020-05-19 2023-11-24 中移(成都)信息通信科技有限公司 数据包关键字段匹配方法、装置、设备及存储介质
CN112380257A (zh) * 2020-11-26 2021-02-19 厦门市美亚柏科信息股份有限公司 一种网络数据流锁定方法、终端设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477494A (zh) * 2002-08-20 2004-02-25 深圳市中兴通讯股份有限公司上海第二 一种数据包递归流分类方法
CN1852241A (zh) * 2005-10-24 2006-10-25 华为技术有限公司 一种流分类装置和方法以及采用该流分类装置的基站

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477494A (zh) * 2002-08-20 2004-02-25 深圳市中兴通讯股份有限公司上海第二 一种数据包递归流分类方法
CN1852241A (zh) * 2005-10-24 2006-10-25 华为技术有限公司 一种流分类装置和方法以及采用该流分类装置的基站

Also Published As

Publication number Publication date
CN101848248A (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101848248B (zh) 一种规则查找方法和装置
US9627063B2 (en) Ternary content addressable memory utilizing common masks and hash lookups
CN101594319B (zh) 表项查找方法和装置
US9984144B2 (en) Efficient lookup of TCAM-like rules in RAM
CN101753445A (zh) 基于关键字分解Hash算法的快速流分类方法
CN103514201B (zh) 一种非关系型数据库的数据查询方法和装置
CN104580027A (zh) 一种OpenFlow报文转发方法及设备
US10462062B2 (en) Memory efficient packet classification method
CN103107945B (zh) 一种快速查找ipv6路由的系统及方法
CN105515997B (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN106776787A (zh) 一种对互联网数据进行采集的方法
CN111988231B (zh) 一种掩码五元组规则匹配的方法及装置
CN103338155A (zh) 一种数据包的高效过滤方法
CN107330094A (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
Yang et al. Fast OpenFlow table lookup with fast update
CN101556610B (zh) 网络处理器使用的建表和查表方法
CN106802927A (zh) 一种数据存储方法及查询方法
CN107204891A (zh) 一种海量规则下报文识别的方法及装置
CN104253754A (zh) 一种acl快速匹配的方法和设备
Kekely et al. Packet classification with limited memory resources
CN111163077A (zh) 一种基于网络处理器实现多维连续掩码的系统和方法
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
CN106776617A (zh) 日志文件的保存方法和装置
CN106067876B (zh) 一种基于模式匹配的http请求报文识别方法
CN104462104A (zh) 过滤方法和服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121226

Termination date: 20180604

CF01 Termination of patent right due to non-payment of annual fee