一种范围型报文匹配电路及方法与流程

文档序号:15262175发布日期:2018-08-24 21:56阅读:156来源:国知局

本发明涉及信息技术领域,特别涉及一种范围型报文匹配电路及方法。



背景技术:

在网络交换设备中,通常需要利用专用报文匹配电路或集成有报文匹配电路的芯片对报文进行规则匹配。

目前,通常需要在报文匹配电路中存储每一个待匹配报文所对应的报文策略。当来往的报文数量过大时,报文匹配电路则需要存储大量的报文规则,需要占用大量的存储资源及网络资源,对待匹配报文进行匹配时,匹配效率较低。



技术实现要素:

本发明实施例提供了一种范围型报文匹配电路及方法,匹配效率较高。

第一方面,本发明提供了一种范围型报文匹配电路,包括:

规则解析模块、规则存储模块、规则匹配模块及报文解析模块;其中,

所述规则解析模块,用于解析上位机下发的报文策略以提取所述报文策略携带的五元组数据及报文规则,其中,所述五元组数据中包括5个与源ip地址、目的ip地址、协议号、源端口及目的端口等五个数据条目一一对应的标识数据,且各个所述标识数据中存在至少一个范围型数据;根据预设转化规则对所述五元组数据进行转化处理以形成存储标识;将所述报文规则存储至所述规则存储模块,并利用所述存储标识标记所述报文规则在所述规则存储模块中的存储位置;

所述报文解析模块,用于接收并解析待匹配报文以提取所述待匹配报文所携带的当前五元组数据,并根据所述至少一个范围型数据所对应的至少一个目标数据条目对所述当前五元组数据的部分标识数据进行置零处理,并根据所述预设转化规则对置零处理后的所述当前五元组数据进行转化处理以形成待匹配存储标识;

所述规则匹配模块,用于检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

优选地,

所述规则解析模块,包括:第一转化单元;其中,

所述第一转化单元,用于在所述源ip地址和所述目的ip地址所分别对应的标识数据的数据类型是子网掩码时,将所述五元组数据的每8位作亦或运算以形成一个8位的存储标识。

优选地,

所述规则解析模块,包括:第二转化单元;其中,

所述第二转化单元,用于在所述源ip地址所对应的标识数据包括第一起始ip地址和第一终止ip地址、且所述目的ip地址所对应的标识数据包括第第二起始ip地址和第二终止ip地址时,读取所述第一起始ip地址或所述第一终止ip地址的第一高n位地址,读取所述第二起始ip地址或所述第二终止ip地址的第二高n位地址,将读取的所述第一高n位地址、所述第二高n位地址与协议号、源端口及目的端口等三个数据条目所分别对应的标识数据相组合,将组合得到的组合数据的每8位作亦或运算以形成一个8位的参考存储标识,并生成一个8位的表示地址冲突的标志数据,将所述参考存储标识与所述标志数据作亦或运算以得到存储标识;将所述第一起始ip地址的低m位地址、所述第一终止ip地址的低m位地址、所述第二起始ip地址的低m位地址、所述第二终止ip地址的低m位地址与所述报文规则存储至所述规则存储模块,并利用所述存储标识标记所述报文规则在所述存储模块中的存储位置,其中,m及n均为4的整数倍。

优选地,

所述规则匹配模块,包括:第一检测单元、第二检测单元、第三检测单元及数据处理单元;其中,

所述第一检测单元,用于检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则触发所述第二检测单元;

所述第二检测单元,用于在所述第一检测单元的触发下检测所述当前五元组数据中携带的当前源ip地址的低m位地址是否位于所述第一起始ip地址的低m位地址与所述第一终止ip地址的低m位地址之间,若是,则触发所述第三检测单元;

所述第三检测单元,用于在所述第二检测单元的触发下检测所述当前五元组数据中携带的当前目的ip地址的低m位地址是否位于所述第二起始ip地址的低m位地址与所述第二终止ip地址的低m位地址之间,若是,则触发所述数据处理单元;

所述数据处理单元,用于在所述第三检测单元的触发下读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

第二方面,本发明实施例提供了一种利用第一方面中任一所述的报文匹配电路进行报文匹配的方法,包括:

利用所述规则解析模块解析上位机下发的报文策略以提取所述报文策略携带的五元组数据及报文规则,其中,所述五元组数据中包括5个与源ip地址、目的ip地址、协议号、源端口及目的端口等五个数据条目一一对应的标识数据,且各个所述标识数据中存在至少一个范围型数据;根据预设转化规则对所述五元组数据进行转化处理以形成存储标识;将所述报文规则存储至所述规则存储模块,并利用所述存储标识标记所述报文规则在所述规则存储模块中的存储位置;

利用所述报文解析模块接收并解析待匹配报文以提取所述待匹配报文所携带的当前五元组数据,并根据所述至少一个范围型数据所对应的至少一个目标数据条目对所述当前五元组数据的部分标识数据进行置零处理,并根据所述预设转化规则对置零处理后的所述当前五元组数据进行转化处理以形成待匹配存储标识;

利用所述规则匹配模块检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

优选地,

在所述规则解析模块包括所述第一转化单元时,

所述根据预设转化规则对所述五元组数据进行转化处理以形成存储标识,包括:利用所述第一转化单元在所述源ip地址和所述目的ip地址所分别对应的标识数据的数据类型是子网掩码时,将所述五元组数据的每8位作亦或运算以形成一个8位的存储标识。

优选地,

在所述规则解析模块包括所述第二转化单元时,

所述根据预设转化规则对所述五元组数据进行转化处理以形成存储标识,包括:利用所述第二转化单元在所述源ip地址所对应的标识数据包括第一起始ip地址和第一终止ip地址、且所述目的ip地址所对应的标识数据包括第第二起始ip地址和第二终止ip地址时,读取所述第一起始ip地址或所述第一终止ip地址的第一高n位地址,读取所述第二起始ip地址或所述第二终止ip地址的第二高n位地址,将读取的所述第一高n位地址、所述第二高n位地址与协议号、源端口及目的端口等三个数据条目所分别对应的标识数据相组合,将组合得到的组合数据的每8位作亦或运算以形成一个8位的参考存储标识,并生成一个8位的表示地址冲突的标志数据,将所述参考存储标识与所述标志数据作亦或运算以得到存储标识;将所述第一起始ip地址的低m位地址、所述第一终止ip地址的低m位地址、所述第二起始ip地址的低m位地址、所述第二终止ip地址的低m位地址与所述报文规则存储至所述规则存储模块,并利用所述存储标识标记所述报文规则在所述存储模块中的存储位置,其中,m及n均为4的整数倍。

优选地,

在所述规则匹配模块包括所述第一检测单元、所述第二检测单元、所述第三检测单元及所述数据处理单元时,

所述利用所述利用所述规则匹配模块检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出,包括:

利用所述第一检测单元检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则触发所述第二检测单元;

利用所述第二检测单元在所述第一检测单元的触发下检测所述当前五元组数据中携带的当前源ip地址的低m位地址是否位于所述第一起始ip地址的低m位地址与所述第一终止ip地址的低m位地址之间,若是,则触发所述第三检测单元;

利用所述第三检测单元在所述第二检测单元的触发下检测所述当前五元组数据中携带的当前目的ip地址的低m位地址是否位于所述第二起始ip地址的低m位地址与所述第二终止ip地址的低m位地址之间,若是,则触发所述数据处理单元;

利用所述数据处理单元在所述第三检测单元的触发下读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

本发明实施例提供了一种报文匹配电路及方法,该报文匹配电路由规则解析模块、规则存储模块、规则匹配模块及报文解析模块构成,利用范围型数据来描述五元组数据中一个或多个数据条目所对应的标识数据,使得一个报文规则可以对应于具有相同特点的一类待匹配报文,当需要对大批量的待处理报文进行匹配时,则可减少规则存储模块中存储的报文规则的数量,节约存储资源;同时,规则解析模块可以利用预设转化规则对报文规则所对应的五元组数据进行转化以得到存储标识,并利用得到的存储标识标记报文规则在规则存储模块中的存储位置,报文解析模块在后续过程中利用相同的预设规则对待匹配报文所对应的当前五元组数据进行转化以得到当前存储标识之后,则可根据当前存储标识以及规则存储模块中存储的各个报文规则所分别对应的存储标识,在规则存储模块中快速查找到与该待匹配报文相匹配的报文规则,并将带匹配报文以及与该带匹配报文相匹配的报文规则输出。综上所述,通过本发明的技术方案,可节约存储资源,并能够更为快速的查找到与待匹配报文相对应的报文规则,匹配效率较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种范围型报文匹配电路的结构示意图;

图2是本发明一实施例提供的另一种范围型报文匹配电路的结构示意图;

图3是本发明一实施例提供的一种范围型报文匹配方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种范围型报文匹配电路,包括:

规则解析模块101、规则存储模块102、规则匹配模块103及报文解析模块104;其中,

所述规则解析模块101,用于解析上位机下发的报文策略以提取所述报文策略携带的五元组数据及报文规则,其中,所述五元组数据中包括5个与源ip地址、目的ip地址、协议号、源端口及目的端口等五个数据条目一一对应的标识数据,且各个所述标识数据中存在至少一个范围型数据;根据预设转化规则对所述五元组数据进行转化处理以形成存储标识;将所述报文规则存储至所述规则存储模块102,并利用所述存储标识标记所述报文规则在所述规则存储模块102中的存储位置;

所述报文解析模块103,用于接收并解析待匹配报文以提取所述待匹配报文所携带的当前五元组数据,并根据所述至少一个范围型数据所对应的至少一个目标数据条目对所述当前五元组数据的部分标识数据进行置零处理,并根据所述预设转化规则对置零处理后的所述当前五元组数据进行转化处理以形成待匹配存储标识;

所述规则匹配模块104,用于检测所述规则存储模块102中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

如图1所示的实施例,该报文匹配电路由规则解析模块、规则存储模块、规则匹配模块及报文解析模块构成,利用范围型数据来描述五元组数据中一个或多个数据条目所对应的标识数据,使得一个报文规则可以对应于具有相同特点的一类待匹配报文,当需要对大批量的待处理报文进行匹配时,则可减少规则存储模块中存储的报文规则的数量,节约存储资源;同时,规则解析模块可以利用预设转化规则对报文规则所对应的五元组数据进行转化以得到存储标识,并利用得到的存储标识标记报文规则在规则存储模块中的存储位置,报文解析模块在后续过程中利用相同的预设规则对待匹配报文所对应的当前五元组数据进行转化以得到当前存储标识之后,则可根据当前存储标识以及规则存储模块中存储的各个报文规则所分别对应的存储标识,在规则存储模块中快速查找到与该待匹配报文相匹配的报文规则,并将带匹配报文以及与该带匹配报文相匹配的报文规则输出。综上所述,通过本发明的技术方案,可节约存储资源,并能够更为快速的查找到与待匹配报文相对应的报文规则,匹配效率较高。

上述实施例中,可以利用n*8位的二进制数据来分别作为协议号、源端口及目的端口所分别对应的标识数据,当协议号、源端口及目的端口中任一个数据条目所对应的标识数据时范围型数据时,即可将相应数据条目所对应的二进数数据全部置零,表征携带该范围型数据的五元组数据所对应的报文规则的适用范围对相应的数据条目无限制;举例来说,利用一个8位的二进制数据作为协议号所对应的标识数据,当该8位的二进制数据全部为0时,则说明携带该8位二进制数据的五元组数据所对应的报文规则适用于所述的协议号。

具体地,在一种可能实现的方式中,所述规则解析模块,包括:第一转化单元(附图中未示出);其中,

所述第一转化单元,用于在所述源ip地址和所述目的ip地址所分别对应的标识数据的数据类型是子网掩码时,将所述五元组数据的每8位作亦或运算以形成一个8位的存储标识。

本发明上述实施例中,第一转化单元具体可以通过如下公式计算出存储标识:addr[7:0]=sip[31:24]^sip[23:16]^sip[15:8]^sip[7:0]^dip[31:24]^dip[23:16]^dip[15:8]^dip[7:0]^protocol[7:0]^sport[15:8]^sport[7:0]^dport[15:8]^dport[7:0]。

不难理解的,报文解析模块也可在根据相应的范围型数据对待匹配报文携带的当前五元组数据中的部分标识数据进行置零处理后,通过上述方式(或上述公式)计算待匹配报文携带的当前五元组数据所对应的。

如图2所示,在另一种可能实现的方式中,所述规则解析模块101,包括:第二转化单元1011;其中,

所述第二转化单元1011,用于在所述源ip地址所对应的标识数据包括第一起始ip地址和第一终止ip地址、且所述目的ip地址所对应的标识数据包括第第二起始ip地址和第二终止ip地址时,读取所述第一起始ip地址或所述第一终止ip地址的第一高n位地址,读取所述第二起始ip地址或所述第二终止ip地址的第二高n位地址,将读取的所述第一高n位地址、所述第二高n位地址与协议号、源端口及目的端口等三个数据条目所分别对应的标识数据相组合,将组合得到的组合数据的每8位作亦或运算以形成一个8位的参考存储标识,并生成一个8位的表示地址冲突的标志数据,将所述参考存储标识与所述标志数据作亦或运算以得到存储标识;将所述第一起始ip地址的低m位地址、所述第一终止ip地址的低m位地址、所述第二起始ip地址的低m位地址、所述第二终止ip地址的低m位地址与所述报文规则存储至所述规则存储模块102,并利用所述存储标识标记所述报文规则在所述存储模块102中的存储位置,其中,m及n均为4的整数倍。

相应的,请参考图2,在本发明一个实施例中,所述规则匹配模104,包括:第一检测单元1041、第二检测单元1042、第三检测单元1043及数据处理单元1044;其中,

所述第一检测单元1041,用于检测所述规则存储模块102中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则触发所述第二检测单元1042;

所述第二检测单元1042,用于在所述第一检测单元1041的触发下检测所述当前五元组数据中携带的当前源ip地址的低m位地址是否位于所述第一起始ip地址的低m位地址与所述第一终止ip地址的低m位地址之间,若是,则触发所述第三检测单元1043;

所述第三检测单元1043,用于在所述第二检测单元1042的触发下检测所述当前五元组数据中携带的当前目的ip地址的低m位地址是否位于所述第二起始ip地址的低m位地址与所述第二终止ip地址的低m位地址之间,若是,则触发所述数据处理单元1044;

所述数据处理单元1044,用于在所述第三检测单元1043的触发下读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

上述实施例中,通过第二转化单元生成相应的存储地址,后续过程中通过规则模块下的第一检测单元、第二检测单元和第三检测单元想配合,可更为快速而准确的在规则存储电路中查找到待匹配报文所对应的报文规则。

如图3所示,本发明实施例提供了一种利用本发明任一实施例中提供的报文匹配电路进行报文匹配的方法,包括:

步骤301,利用所述规则解析模块解析上位机下发的报文策略以提取所述报文策略携带的五元组数据及报文规则,其中,所述五元组数据中包括5个与源ip地址、目的ip地址、协议号、源端口及目的端口等五个数据条目一一对应的标识数据,且各个所述标识数据中存在至少一个范围型数据;根据预设转化规则对所述五元组数据进行转化处理以形成存储标识;将所述报文规则存储至所述规则存储模块,并利用所述存储标识标记所述报文规则在所述规则存储模块中的存储位置;

步骤302,利用所述报文解析模块接收并解析待匹配报文以提取所述待匹配报文所携带的当前五元组数据,并根据所述至少一个范围型数据所对应的至少一个目标数据条目对所述当前五元组数据的部分标识数据进行置零处理,并根据所述预设转化规则对置零处理后的所述当前五元组数据进行转化处理以形成待匹配存储标识;

步骤303,利用所述规则匹配模块检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

本发明一个实施例中,在所述规则解析模块包括所述第一转化单元时,

所述根据预设转化规则对所述五元组数据进行转化处理以形成存储标识,包括:利用所述第一转化单元在所述源ip地址和所述目的ip地址所分别对应的标识数据的数据类型是子网掩码时,将所述五元组数据的每8位作亦或运算以形成一个8位的存储标识。

本发明一个实施例中,在所述规则解析模块包括所述第二转化单元时,

所述根据预设转化规则对所述五元组数据进行转化处理以形成存储标识,包括:利用所述第二转化单元在所述源ip地址所对应的标识数据包括第一起始ip地址和第一终止ip地址、且所述目的ip地址所对应的标识数据包括第第二起始ip地址和第二终止ip地址时,读取所述第一起始ip地址或所述第一终止ip地址的第一高n位地址,读取所述第二起始ip地址或所述第二终止ip地址的第二高n位地址,将读取的所述第一高n位地址、所述第二高n位地址与协议号、源端口及目的端口等三个数据条目所分别对应的标识数据相组合,将组合得到的组合数据的每8位作亦或运算以形成一个8位的参考存储标识,并生成一个8位的表示地址冲突的标志数据,将所述参考存储标识与所述标志数据作亦或运算以得到存储标识;将所述第一起始ip地址的低m位地址、所述第一终止ip地址的低m位地址、所述第二起始ip地址的低m位地址、所述第二终止ip地址的低m位地址与所述报文规则存储至所述规则存储模块,并利用所述存储标识标记所述报文规则在所述存储模块中的存储位置,其中,m及n均为4的整数倍。

本发明一个实施例中,在所述规则匹配模块包括所述第一检测单元、所述第二检测单元、所述第三检测单元及所述数据处理单元时,

所述利用所述利用所述规则匹配模块检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出,包括:

利用所述第一检测单元检测所述规则存储模块中是否存在目标存储位置被标记为所述待匹配存储标识,若是,则触发所述第二检测单元;

利用所述第二检测单元在所述第一检测单元的触发下检测所述当前五元组数据中携带的当前源ip地址的低m位地址是否位于所述第一起始ip地址的低m位地址与所述第一终止ip地址的低m位地址之间,若是,则触发所述第三检测单元;

利用所述第三检测单元在所述第二检测单元的触发下检测所述当前五元组数据中携带的当前目的ip地址的低m位地址是否位于所述第二起始ip地址的低m位地址与所述第二终止ip地址的低m位地址之间,若是,则触发所述数据处理单元;

利用所述数据处理单元在所述第三检测单元的触发下读取所述目标存储位置下存储的目标报文规则,并将所述目标报文规则和所述待匹配报文输出。

综上所述,本发明各个实施例至少具有如下有益效果:

1、本发明一实施例中,该报文匹配电路由规则解析模块、规则存储模块、规则匹配模块及报文解析模块构成,利用范围型数据来描述五元组数据中一个或多个数据条目所对应的标识数据,使得一个报文规则可以对应于具有相同特点的一类待匹配报文,当需要对大批量的待处理报文进行匹配时,则可减少规则存储模块中存储的报文规则的数量,节约存储资源;同时,规则解析模块可以利用预设转化规则对报文规则所对应的五元组数据进行转化以得到存储标识,并利用得到的存储标识标记报文规则在规则存储模块中的存储位置,报文解析模块在后续过程中利用相同的预设规则对待匹配报文所对应的当前五元组数据进行转化以得到当前存储标识之后,则可根据当前存储标识以及规则存储模块中存储的各个报文规则所分别对应的存储标识,在规则存储模块中快速查找到与该待匹配报文相匹配的报文规则,并将带匹配报文以及与该带匹配报文相匹配的报文规则输出。综上所述,通过本发明的技术方案,可节约存储资源,并能够更为快速的查找到与待匹配报文相对应的报文规则,匹配效率较高。

2、本发明一实施例中,通过第二转化单元生成相应的存储地址,后续过程中通过规则模块下的第一检测单元、第二检测单元和第三检测单元想配合,可更为快速而准确的在规则存储电路中查找到待匹配报文所对应的报文规则。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1