一种网络数据包的多类型规则高速匹配方法及装置的制造方法_4

文档序号:9237990阅读:来源:国知局
规则,不匹配。
[0165] 读取地址为33处的规则,为无效规则,不匹配。
[0166] 读取地址为86处的规则,为无效规则,不匹配。
[0167] 读取地址为86处的规则,为无效规则,不匹配。
[0168] 综上所述,网络数据包D同时命中了规则R2和R3。
[0169] 假设各个规则之间的优先级如表7所示:
[0170]表 7
[0171]
[0172] 假设上述表7中设定的优先级编号值越大,优先级越低,那么,数据包D同时命中 了规则R2和R3,由于规则R2的优先级更高,进行匹配结果综合后,数据包D最终的匹配结 果为,命中规则R2。
[0173] 在上述实施例中,以TCP/IP协议为实例进行的说明,但是值得注意的是,该方法 不限于TCP/IP协议,也可以应用到其它协议的网络环境中。
[0174] 基于同一发明构思,本发明实施例中还提供了一种网络数据包的多类型规则高速 匹配装置,如下面的实施例所述。由于网络数据包的多类型规则高速匹配装置解决问题的 原理与网络数据包的多类型规则高速匹配方法相似,因此网络数据包的多类型规则高速匹 配装置的实施可以参见网络数据包的多类型规则高速匹配方法的实施,重复之处不再赘 述。以下所使用的,术语"单元"或者"模块"可以实现预定功能的软件和/或硬件的组合。 尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的 实现也是可能并被构想的。图3是本发明实施例的网络数据包的多类型规则高速匹配装置 的一种结构框图,如图3所示,包括:接收模块301、获取模块302和匹配模块303下面对该 结构进行说明。
[0175] 接收模块301,用于接收待匹配的网络数据包;
[0176] 获取模块302,用于获取所述网络数据包的元组信息;
[0177] 匹配模块303,用于同时将所述元组信息与预先设定的多种规则类型的规则进行 匹配。
[0178] 在一个实施例中,匹配模块303具体用于对每种规则类型采用以下方式进行匹 配:根据所述元组信息和为该规则类型分配的掩码进行哈希运算;将哈希运算得到的哈希 值作为哈希地址,到预先建立的规则表中查找存储在该哈希地址对应的存储空间中的规 贝1J;如果在该哈希地址对应的存储空间中存储的规则为有效规则,且该有效规则与所述元 组信息匹配,则表示规则匹配成功,否则,匹配不成功。
[0179] 在一个实施例中,所述规则表是按照以下方式建立和存储的:设置哈希运算规 则;
[0180] 为每一种规则类型分配掩码,不同的规则类型对应不同的掩码;确定分属于各个 规则类型的规则,根据为各个规则类型分配的掩码和各条规则对应的元组信息,按照哈希 运算规则,计算出各条规则的哈希值;将各条规则的规则信息以记录的形式,存储至以该规 则的哈希值作为哈希地址的存储空间中。
[0181] 在一个实施例中,匹配模块303包括:第一匹配单元,用于在同一种规则类型中 匹配出两条或者两条以上的规则,则选取优先级高的规则作为对应于该规则类型的匹配结 果;第二匹配单元,用于在两种或者两种以上规则类型中匹配出规则,则选择优先级高的规 则作为匹配结果。
[0182] 在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实 施方式中描述的技术方案。
[0183] 在另外一个实施例中,还提供了 一种存储介质,该存储介质中存储有上述软件,该 存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
[0184] 从以上的描述中,可以看出,本发明实施例实现了如下技术效果:在接收到待进 行规则匹配的网络数据包后,获取该网络数据包的元组信息,然后根据预先设定的规则类 型,同时对多种规则类型的规则进行匹配,所谓同时进行匹配,就是采用并行的方式对该元 组信息进行规则匹配,即,同时在多种类型的规则中查找与该元组信息匹配的规则,因为采 用并行的方式进行规则匹配,从而可以快速确定出与该网络数据包匹配的规则,解决了现 有技术中规则匹配效率低下的技术问题,达到了有效提高数据包的规则匹配效率的技术效 果。
[0185] 显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以 用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置 所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它 们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执 行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个 模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬 件和软件结合。
[0186] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的 任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种网络数据包的多类型规则高速匹配方法,其特征在于,包括: 接收待匹配的网络数据包; 获取所述网络数据包的元组信息; 同时将所述元组信息与预先设定的多种规则类型的规则进行匹配。2. 如权利要求1所述的方法,其特征在于,同时将所述元组信息与预先设定的多种规 则类型的规则进行匹配,包括: 对于每种规则类型采用以下方式进行匹配: 根据所述元组信息和为该规则类型分配的掩码进行哈希运算; 将哈希运算得到的哈希值作为哈希地址,到预先建立的规则表中查找存储在该哈希地 址对应的存储空间中的规则; 如果在该哈希地址对应的存储空间中存储的规则为有效规则,且该有效规则与所述元 组信息匹配,则表示规则匹配成功,否则,匹配不成功。3. 如权利要求2所述的方法,其特征在于,所述规则表是按照以下方式建立和存储的: 设置哈希运算规则; 为每一种规则类型分配掩码,不同的规则类型对应不同的掩码; 确定分属于各个规则类型的规则,根据为各个规则类型分配的掩码和各条规则对应的 元组信息,按照哈希运算规则,计算出各条规则的哈希值; 将各条规则的规则信息以记录的形式,存储至以该规则的哈希值作为哈希地址的存储 空间中。4. 如权利要求3所述的方法,其特征在于,所述规则表中的各条记录在物理上采用混 合方式进行存储。5. 如权利要求2所述的方法,其特征在于,在到预先建立的规则表中查找该哈希地址 对应的规则信息之后,所述方法还包括: 如果在所述规则表中该哈希地址对应的规则为有效规则,且该有效规则与所述元组信 息不匹配,则将当前的哈希值加一后作为哈希地址重新进行查找匹配。6. 如权利要求1至5中任一项所述的方法,其特征在于,同时将所述元组信息与预先设 定的多种规则类型的规则进行匹配,包括: 在同一种规则类型中匹配出两条或者两条以上的规则,则选取优先级高的规则作为对 应于该规则类型的匹配结果; 在两种或者两种以上规则类型中匹配出规则,则选择优先级高的规则作为匹配结果。7. -种网络数据包的多类型规则高速匹配装置,其特征在于,包括: 接收模块,用于接收待匹配的网络数据包; 获取模块,用于获取所述网络数据包的元组信息; 匹配模块,用于同时将所述元组信息与预先设定的多种规则类型的规则进行匹配。8. 如权利要求7所述的装置,其特征在于,所述匹配模块具体用于对每种规则类型采 用以下方式进行匹配: 根据所述元组信息和为该规则类型分配的掩码进行哈希运算; 将哈希运算得到的哈希值作为哈希地址,到预先建立的规则表中查找存储在该哈希地 址对应的存储空间中的规则; 如果在该哈希地址对应的存储空间中存储的规则为有效规则,且该有效规则与所述元 组信息匹配,则表示规则匹配成功,否则,匹配不成功。9. 如权利要求8所述的装置,其特征在于,所述规则表是按照以下方式建立和存储的: 设置哈希运算规则; 为每一种规则类型分配掩码,不同的规则类型对应不同的掩码; 确定分属于各个规则类型的规则,根据为各个规则类型分配的掩码和各条规则对应的 元组信息,按照哈希运算规则,计算出各条规则的哈希值; 将各条规则的规则信息以记录的形式,存储至以该规则的哈希值作为哈希地址的存储 空间中。10. 如权利要求7至9中任一项所述的装置,其特征在于,所述匹配模块包括: 第一匹配单元,用于在同一种规则类型中匹配出两条或者两条以上的规则,则选取优 先级高的规则作为对应于该规则类型的匹配结果; 第二匹配单元,用于在两种或者两种以上规则类型中匹配出规则,则选择优先级高的 规则作为匹配结果。
【专利摘要】本发明提供了一种网络数据包的多类型规则高速匹配方法及装置,其中,该方法包括:接收待匹配的网络数据包;获取所述网络数据包的元组信息;同时将所述元组信息与预先设定的多种规则类型的规则进行匹配。本发明解决了现有技术中规则匹配效率低下的技术问题,达到了有效提高数据包的规则匹配效率的技术效果。
【IPC分类】H04L12/26
【公开号】CN104954200
【申请号】CN201510336583
【发明人】邹昕, 周立, 张家琦, 黄文廷, 汪锐, 周志雄, 董杰, 彭义刚, 金暐, 唐积强
【申请人】国家计算机网络与信息安全管理中心, 北京恒光信息技术有限公司
【公开日】2015年9月30日
【申请日】2015年6月17日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1