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

文档序号:9237990阅读:210来源:国知局
一种网络数据包的多类型规则高速匹配方法及装置的制造方法
【技术领域】
[0001] 本发明涉及数据处理技术领域,特别涉及一种网络数据包的多类型规则高速匹配 方法及装置。
【背景技术】
[0002] 随着微电子技术和计算机技术的不断发展,以及人们对互联网应用需求的不断增 长,计算机网络的规模变得越来越庞大,网络上的各种应用也层出不穷,网络安全也就成为 了互联网应用中一个非常重要的考虑因素。网络数据的规则匹配作为减少需要深度处理的 数据的重要手段,在网络安全起到非常关键的作用,所谓的数据的规则匹配,例如:从预先 设定的匹配规则中确定是否需要对当前的网络数据进行复制操作、删除操作或者其它的处 理,以便确定当前的网络数据是否需要进行下一步的处理以及下一步处理的内容,从而确 定出需要进行下一步处理的数据,可以有效避免对无需进行的处理的数据进行了不必要的 操作,缩减了需要深度处理的网络数据。
[0003] 然而,目前一般都是采用将网络数据与预先设定的规则按照顺序一一进行比对的 方式,来进行网络规则的匹配,处理效率低下。

【发明内容】

[0004] 本发明实施例提供了一种网络数据包的多类型规则高速匹配方法,以达到有效提 高网络数据的规则匹配效率的目的,该方法包括:
[0005] 接收待匹配的网络数据包;
[0006] 获取所述网络数据包的元组信息;
[0007] 同时将所述元组信息与预先设定的多种规则类型的规则进行匹配。
[0008] 在一个实施例中,同时将所述元组信息与预先设定的多种规则类型的规则进行匹 配,包括:
[0009] 对于每种规则类型采用以下方式进行匹配:
[0010] 根据所述元组信息和为该规则类型分配的掩码进行哈希运算;
[0011] 将哈希运算得到的哈希值作为哈希地址,到预先建立的规则表中查找存储在该哈 希地址对应的存储空间中的规则;
[0012] 如果在该哈希地址对应的存储空间中存储的规则为有效规则,且该有效规则与所 述元组信息匹配,则表示规则匹配成功,否则,匹配不成功。
[0013] 在一个实施例中,所述规则表是按照以下方式建立和存储的:
[0014] 设置哈希运算规则;
[0015] 为每一种规则类型分配掩码,不同的规则类型对应不同的掩码;
[0016] 确定分属于各个规则类型的规则,根据为各个规则类型分配的掩码和各条规则对 应的元组信息,按照哈希运算规则,计算出各条规则的哈希值;
[0017] 将各条规则的规则信息以记录的形式,存储至以该规则的哈希值作为哈希地址的 存储空间中。
[0018] 在一个实施例中,所述规则表中的各条记录在物理上采用混合方式进行存储。
[0019] 在一个实施例中,在到预先建立的规则表中查找该哈希地址对应的规则信息之 后,所述方法还包括:
[0020] 如果在所述规则表中该哈希地址对应的规则为有效规则,且该有效规则与所述元 组信息不匹配,则将当前的哈希值加一后作为哈希地址重新进行查找匹配。
[0021] 在一个实施例中,同时将所述元组信息与预先设定的多种规则类型的规则进行匹 配,包括:
[0022] 在同一种规则类型中匹配出两条或者两条以上的规则,则选取优先级高的规则作 为对应于该规则类型的匹配结果;
[0023] 在两种或者两种以上规则类型中匹配出规则,则选择优先级高的规则作为匹配结 果。
[0024] 本发明实施例提供了还一种网络数据包的多类型规则高速匹配装置,以达到有效 提高网络数据的规则匹配效率的目的,该装置包括:
[0025] 接收模块,用于接收待匹配的网络数据包;
[0026] 获取模块,用于获取所述网络数据包的元组信息;
[0027] 匹配模块,用于同时将所述元组信息与预先设定的多种规则类型的规则进行匹 配。
[0028] 在一个实施例中,所述匹配模块具体用于对每种规则类型采用以下方式进行匹 配:
[0029] 根据所述元组信息和为该规则类型分配的掩码进行哈希运算;
[0030] 将哈希运算得到的哈希值作为哈希地址,到预先建立的规则表中查找存储在该哈 希地址对应的存储空间中的规则;
[0031] 如果在该哈希地址对应的存储空间中存储的规则为有效规则,且该有效规则与所 述元组信息匹配,则表示规则匹配成功,否则,匹配不成功。
[0032] 在一个实施例中,所述规则表是按照以下方式建立和存储的:
[0033] 设置哈希运算规则;
[0034] 为每一种规则类型分配掩码,不同的规则类型对应不同的掩码;
[0035] 确定分属于各个规则类型的规则,根据为各个规则类型分配的掩码和各条规则对 应的元组信息,按照哈希运算规则,计算出各条规则的哈希值;
[0036] 将各条规则的规则信息以记录的形式,存储至以该规则的哈希值作为哈希地址的 存储空间中。
[0037] 在一个实施例中,所述匹配模块包括:
[0038] 第一匹配单元,用于在同一种规则类型中匹配出两条或者两条以上的规则,则选 取优先级高的规则作为对应于该规则类型的匹配结果;
[0039] 第二匹配单元,用于在两种或者两种以上规则类型中匹配出规则,则选择优先级 高的规则作为匹配结果。
[0040] 在本发明实施例中,在接收到待进行规则匹配的网络数据包后,获取该网络数据 包的元组信息,然后根据预先设定的规则类型,同时对多种规则类型的规则进行匹配,所谓 同时进行匹配,就是采用并行的方式对该元组信息进行规则匹配,即,同时在多种类型的规 则中查找与该元组信息匹配的规则,因为采用并行的方式进行规则匹配,从而可以快速确 定出与该网络数据包匹配的规则,解决了现有技术中规则匹配效率低下的技术问题,达到 了有效提高数据包的规则匹配效率的技术效果。
【附图说明】
[0041] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不 构成对本发明的限定。在附图中:
[0042] 图1是本发明实施例的网络数据包的多类型规则高速匹配方法的方法流程图;
[0043] 图2是本发明实施例的网络数据包的多类型规则高速匹配装置的一种结构框图; [0044]图3是本发明实施例的网络数据包的多类型规则高速匹配装置的另一种结构框 图。
【具体实施方式】
[0045] 为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对 本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并 不作为对本发明的限定。
[0046] 在本发明实施例中,提出了一种网络数据包的多类型规则高速匹配方法,如图1 所示,包括以下步骤:
[0047] 步骤101 :接收待匹配的网络数据包;
[0048] 步骤102 :获取所述网络数据包的元组信息;
[0049] 步骤103 :同时将所述元组信息与预先设定的多种规则类型的规则进行匹配。
[0050] 在上述实施例中,在接收到待进行规则匹配的网络数据包后,获取该网络数据包 的元组信息,然后根据预先设定的规则类型,同时对多种规则类型的规则进行匹配,所谓同 时进行匹配,就是采用并行的方式对该元组信息进行规则匹配,即,同时在多种类型的规则 中查找与该元组信息匹配的规则,因为采用并行的方式进行规则匹配,从而可以快速确定 出与该网络数据包匹配的规则,解决了现有技术中规则匹配效率低下的技术问题,达到了 有效提高数据包的规则匹配效率的技术效果。
[0051] 上述的规则类型可以是用户按照需求设定的,具体的,每种规则类型对应哪些操 作规则也可以是用户按照需求或者习惯设定的,操作规则可以包括:对数据包进行修改,对 数据包进行复制粘贴操作、对数据包进行删除操作等等。
[0052] 为了描述方便,在下面的描述中,为同时对多个规则类型进行规则匹配的执行主 体,赋予一个名字叫匹配模块,一个匹配模块对应一种规则类型,多个匹配模块并行进行处 理。具体的,在上述步骤103中,可以是按照以下方式将所述元组信息与每种规则类型进行 规则匹配的:根据所述元组信息和为该规则类型分配的掩码进行哈希运算;将哈希运算得 到的哈希值作为哈希地址,到预先建立的规则表中查找存储在该哈希地址对应的存储空间 中的规则(或者说是规则信息);如果在该哈希地址对应的存储空间中存储的规则为有效 规则,且该有效规则与所述元组信息匹配,则表示规则匹配成功,否则,匹配不成功。即,预 先设定了一个规则表,在这个规则表中已经记录了多条规则的信息,在匹配模块进行匹配 的时候,只需要按照对应的哈希算法进行哈希运算得到哈希值,然后到规则表对应的地址 中查找规则进行匹配即可。具体的,所谓的匹配就是匹配在规则表中对应的这条记录中记 载的元组信息是否与当前的元组信息相同,如果相同,则表明匹配成功,后续就可以按照这 条记录中的处理方式对该网络数据包进行处理。
[0053] 考虑到需要使得每个规则类型所对应的存储地址不同,可以采用为规则类型分配 掩码的方式,例如:〇〇〇到111,可以对应8种规则,根据分配的掩码,按照预定的哈希算法进 行计算,以确定哈希存储地址,具体的,上述的规则表可以是按照以下方式建立的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1