专利名称:一种基于以太网实现数据流高速比对的方法
技术领域:
本发明涉及网络安全领域,特别涉及一种基于以太网实现数据流高速比对的方法,具体 涉及一种基于以太网实现数据流与大规模规则库的高速比对的方法。
本发明应用但不限于网络流的病毒过滤、网络流的内容特征搜索、入侵检査技术及应用、 入侵防御技术及应用、针对网络特殊应用流的访问控制、统计等以太网领域中。
背景技术:
随着以以太网技术为主流的网络发展,内容安全开始成为目前信息安全中的关键问题之 一,基于内容比对的安全技术将是当今网络安全防护的又一发展趋势。网络数据流的病毒过 滤、内容特征搜索、入侵检查技术、入侵防御技术、针对网络特殊应用流的访问控制、统计 等技术都被使用到了网络安全技术领域。在这些应用中,都必不可少的需要完成基于以太网 数据包的规则比对和内容比对。
采用CPU完成基于以太网数据包的规则比对和内容比对的模式成为了上述应用的一种 普遍的解决方案。在该模式下,所有以太网数据包的规则比对和内容比对操作都由CPU (Central Processing Unit,中央处理器)完成,CPU需要同时进行多进程处理,而且每个进 程处理内容各不相同,其中包括数据包解析,规则比对,数据还原,内容比对等,各种资源 消耗都集中在了CPU上。
上述解决方案在低流量网络或只含少数规则的规则库下是可行的,但随着网络性能的提 高,网络数据流量和规则库日益增大,CPU的处理能力就逐渐显得不足,开始成为各种应用 的瓶颈。
发明内容
为了克服现有技术中存在的问题,本发明提出一种基于多模块分工协作进行以太网数据 包高速比对的方法。
本发明把整个以太网数据包进行的规则比对和内容比对操作分化到多个模块进行处理, 采用各模块间相互协作,整体流水线的操作方式。
本发明具体是这样实现的
一种基于以太网实现数据流高速比对的方法,包括如下步骤
步骤1、建立数据包解析模块、规则比对模块、内容还原模块、内容比对模块和比对结 果处理模块,由CPU通过PCI通道传送本地管理指令进行本地管理;
步骤2、进行以太网数据包的解析,遵照TCP协议,对TCP数据包作流重组;
步骤3、对解析后的数据,进行规则比对,根据比对结果分流到内容还原模块和内容比 对模块;
步骤4、对分流到内容还原模块的数据进行内容还原,还原后,输出到内容比对模块; 步骤5、对还原后的数据和分配到内容比对模块的数据根据对应的规则库进行内容比对;
步骤6、根据内容比对结果,进行相应的处理,g卩,丢弃数据流或让数据流正常通过CPU 或将数据流传送给CPU。
所述步骤1—6,采用流水作业的顺序进行,后一数据包,在前一数据包执行完当前步骤 的处理进入下一步骤时,进入当前步骤,依次类推。
所述步骤2中,
所述以太网数据包的解析,包括
(1) 按照以太网数据包格式从数据包类型角度区分数据包,处理二层,三层和四层以太 网数据包头;
(2) 从数据包应用层数据的指定位置取出数据内容,根据取出的数据内容对数据流进行 应用类型的区分;
所述对TCP数据包作流重組.,是根据TCP数据包首部序列号连续的方式对TCP数据包 进行顺序重组。
所述步骤4中,
在进行内容还原时,若存在数据还原模块不能支持的数据流,则分流到CPU进行内容还原。
所述步骤5中,
所述内容比对,采用多个比对引擎并行对数据流进行比对;
所述比对引擎采用与比对规则逐一比较的方式进行比对。
所述步骤6中,
根据预存入比对结果处理模块的索引号,利用内容比对模块传入的命中索引号,比对出
数据流对应的处理方式,进行处理。
采用本发明所述方法,把对整个以太网数据包进行的规则比对和内容比对操作分化到多 个模块进行处理,模块间相互协作,采用流水线操作的方式,确保数据包处理间隔时间最短, 从而提高了千兆线速的规则比对和内容比对速度。减小了CPU的负担,大大提高了系统处理 网络数据流的速度,满足了日益增长的网路数据流和规则库的要求。
图1为实现本发明所述方法的结构图; 图2为本发明所述方法的流程图。
具体实施例方式
以下结合附图对本发明所述方法的具体实施方式
进行详细的描述。 本发明所述方法,具体包括
第一步,预先建立以太网数据包解析模块、规则比对模块、内容还原模块、内容比对模 块和比对结果处理模块,由CPU通过PCI通道传送本地管理指令进行对系统各个模块的管理;
第二步、在以太网数据包解析模块,完成以太网数据包的解析功能以及TCP流重组功能, 具体如下
1、 按照以太网数据包格式从数据包类型角度区分数据包,处理二层,三层和四层以太网 数据包头;
2、 从数据包应用层数据的指定位置取出数据内容,根据取出的数据内容对数据流进行应 用类型的区分,例如邮件数据流等,适用于对数据包的应用层数据进行解析;
3、 遵照TCP协议对数据包作流重组,根据TCP数据包首部序列号连续的方式对TCP数
据包进行顺序重组,防止TCP数据流乱序;
4、 将处理完成的数据包和解析信息一并传送到规则比对模块,进行基于规则的分流操作。 第三步,在规则比对模块中,根据从数据包中解析出协议、网络地址、网络端口和应用
层数据的特征,对数据进行规则比对,根据比对结果对数据包进行分流处理,处理方式如下:
1、 分流到内容比对模块进行内容比对;
2、 分流到内容还原模块进行内容还原,还原后,输出到内容比对模块。 根据规则比对的结果,将数据流分类成压縮数据流、邮件数据流、编码数据流、明文数
据流等。
第四步,在内容还原模块中,进行内容还原,对于需要进行内容还原,但是内容还原模
块不能支持的数据流,分流到CPU,利用CPU处理的灵活性,将CPU作为内容还原的扩展
引擎,进行内容还原。在内容还原模块完成对数据流的内容还原操作,例如邮件数据流,编
码数据流。CPU作为内容还原的扩展引擎,进行复杂数据流还原操作,例如压縮数据流。 此外CPU利用PCI通道与系统的各模块进行通信,实现本地管理。具体是指,CPU利
用本地管理指令,与以太网数据包解析模块、规则比对模块、内容还原模块、内容比对模块 和比对结果处理模块等模块之间,进行数据包的收发,完成本地管理指令的收发,实现本地 管理。
第五步,在内容比对模块中,对经过内容还原后的数据流和经过分流处理后分配到内容 比对模块的数据流作基于内容的比对。
采用多个比对引擎并行比对的方式对数据流作基于内容的比对,每个比对引擎采用与比
对规则逐一比较的方式进行比对,比对消耗时间可按以下方式进行计算
当比对引擎数为2时,比对消耗时间为单引擎的1/2;
当比对引擎数为4时,比对消耗时间为单引擎的1/4;
当比对引擎数为n时,比对消耗时间为单引擎的1/n; 以此可以达到高速的内容比对速度。
最后根据比对是否命中,输出比对结果,所述比对结果包括命中索引号。 第六步,在比对结果处理模块中,根据内容比对结果,进行相应的处理。 在比对结果处理模块中,预存各索引号对应的处理方式(丢弃数据流或让数据流正常通 过CPU或将数据流传送给CPU),利用从内容比对模块传入的命中索引号进行比对,得到数 据流的处理方式(丢弃数据流或让数据流正常通过CPU或将数据流传送给CPU)。
上面六个步骤都是采用流水线操作,即第二个数据包不必等待第一个数据包六步处理完 成后才做第一步操作,而是在第--个数据包处理完第一步,进入第二步时,第二个包就可以 进入第一步操作,后面以此类推。这样可以确保数据包处理间隔时间最短,从而实现千兆线
速的规则比对和内容比对。
利用本发明所提供的方法,可进行多级串联,以支持更大规模的规则比对和内容比对。
权利要求
1、一种基于以太网实现数据流高速比对的方法,其特征在于,包括如下步骤步骤1、建立数据包解析模块、规则比对模块、内容还原模块、内容比对模块和比对结果处理模块,由CPU通过PCI通道传送本地管理指令进行本地管理;步骤2、进行以太网数据包的解析,遵照TCP协议,对TCP数据包作流重组;步骤3、对解析后的数据,进行规则比对,根据比对结果分流到内容还原模块和内容比对模块;步骤4、对分流到内容还原模块的数据进行内容还原,还原后,输出到内容比对模块;步骤5、对还原后的数据和分配到内容比对模块的数据根据对应的规则库进行内容比对;步骤6、根据内容比对结果,进行相应的处理,即,丢弃数据流或让数据流正常通过CPU或将数据流传送给CPU。
2、 如权利要求l所述的基于以太网实现数据流高速比对的方法,其特征在于-所述步骤1一6,采用流水作业的顺序进行,后一数据包,在前一数据包执行完当前步骤的处理进入下一步骤时,进入当前步骤,依次类推。
3、 如权利要求1或2所述的基于以太网实现数据流高速比对的方法,其特征在于 所述步骤2中,所述以太网数据包的解析,包括(1) 按照以太网数据包格式从数据包类型角度区分数据包,处理二层,三层和四层以太 网数据包头;(2) 从数据包应用层数据的指定位置取出数据内容,根据取出的数据内容对数据流进行 应用类型的区分;所述对TCP数据包作流重组,是根据TCP数据包首部序列号连续的方式对TCP数据包 进行顺序重组。
4、 如权利要求1或2所述的基于以太网实现数据流高速比对的方法,其特征在于所述步骤4中,在进行内容还原时,若存在数据还原模块不能支持的数据流,则分流到CPU进行内容还原。
5、 如权利要求1或2所述的基于以太网实现数据流高速比对的方法,其特征在于-所述步骤5中,所述内容比对,采用多个比对引擎并行对数据流进行比对; 所述比对引擎采用与比对规则逐一比较的方式进行比对。
6、如权利要求1或2所述的基于以太网实现数据流高速比对的方法,其特征在于 所述步骤6中,根据预存入比对结果处理模块的索引号,利用内容比对模块传入的命中索引号,比对出 数据流对应的处理方式,进行处理。
全文摘要
本发明公开了一种基于以太网实现数据流高速比对的方法,包括,建立数据包解析模块、规则比对模块、内容还原模块、内容比对模块和比对结果处理模块,由CPU通过PCI通道传送本地管理指令进行本地管理;进行以太网数据包的解析,遵照TCP协议,对TCP数据包作流重组;对解析后的数据,进行规则比对,根据比对结果分流到内容还原模块和内容比对模块;对分流到内容还原模块的数据进行内容,还原后输出到内容比对模块;对还原后的数据和分流到内容比对模块的数据进行内容比对;根据内容比对结果进行相应处理。采用本发明,减小了CPU的负担,大大提高了系统处理网络数据流的速度,满足了日益增长的网路数据流和规则库的要求。
文档编号H04L12/24GK101114991SQ20061010372
公开日2008年1月30日 申请日期2006年7月27日 优先权日2006年7月27日
发明者包雅林, 华海宏, 杰 孙, 屈仁杰, 聿 张, 李为民, 杨成勇, 游 游, 赵承志, 卓 陈 申请人:北京南山之桥微电子有限公司