一种基于改进的ACBM算法对网络流量进行过滤的装置和方法与流程

文档序号:17626805发布日期:2019-05-10 23:44阅读:701来源:国知局
一种基于改进的ACBM算法对网络流量进行过滤的装置和方法与流程

本发明涉及网络安全和数据中心技术领域,尤其是一种基于改进的acbm算法对网络流量进行过滤的装置和方法。



背景技术:

目前主流的网络流量过滤系统,其系统主要由数据采集设备、流量过滤服务器以及规则服务器组成,流量过滤算法采用传统的acbm算法实现的。数据采集设备负责分光网络流量的接入,并进行负载均衡的分发给流量过滤服务器。流量过滤服务器负责对采集设备采集的流量进行分析,判断是否有需要过滤的网络流量,若流量匹配过滤规则,则对流量做丢弃操作,未匹配规则的流量送至后台分析服务器。

规则服务器负载存储和下发规则。其数据面的流程为:在网络流量经过中心交换机或路由器之后,对其进行分光,一份流量继续去访问相应的互联网服务器,另一份流量接入到数据采集设备;数据采集设备收到流量后,对流量进行负载均衡后,分发给流量过滤服务器;流量过滤服务器对流量进行分析,判断是否有需要过滤的网络流量,若流量匹配过滤规则,则对流量做丢弃操作,未匹配规则的流量送至后台分析服务器。

由于acbm算法在更新字符串树时,需要将字符串树推倒重建,因此其会有较大的时间开销,且随着规则数量的增大,时间开销会变的非常大,所以导致了目前的网络流量过滤装置的规则数量支持的比较少,因为若规则数量多,字符串树的重建时间较长,不能满足实时过滤的应用场景。此外,由于传统的网络流量过滤装置使用的是服务器进行流量的分析,包处理能力较弱,性能较低。



技术实现要素:

本发明所要解决的技术问题在于,提供一种基于改进的acbm算法对网络流量进行过滤的装置和方法,能够提高装置的性能并降低了成本。

为解决上述技术问题,本发明提供一种基于改进的acbm算法对网络流量进行过滤的装置,包括:数据接收与发送模块、交换模块、报文解析模块和控制模块;数据接收与发送模块通过提供的接口接入分光下来的网络流量;交换模块将数据接收模块收到的报文上送到cavium芯片;控制模块负责端口类型的切换以及规则的下发;报文解析模块通过cavium处理器对报文进行解析提取报文信息。

优选的,接口类型支持32xge,32ge,8xge+16ge,8xgew+16xge。

相应的,一种基于改进的acbm算法对网络流量进行过滤的方法,包括如下步骤:

(1)数据接收与发送模块通过提供的接口接入分光下来的网络流量;

(2)交换模块将数据接收模块收到的报文上送到cavium芯片;

(3)控制模块负责端口类型的切换以及规则的下发;

(4)改进的acbm算法负责规则树的创建与更新;其中acbm算法是一种多模式字符串匹配算法;

(5)报文解析模块通过cavium处理器对报文进行解析提取报文信息;

(6)规则的匹配通过cavium处理器提取的报文信息与规则表中预先写入的规则进行比较,得出匹配结果;其中规则表为控制模块下发给芯片的匹配规则。

优选的,步骤(1)中,端口类型支持32xge,32ge,8xge+16ge,8xgew+16xge。

优选的,步骤(5)中,cavium公司提供一款64位的mips架构的高性能、低延时、低功耗的网络处理器,其具有80gbps的处理性能,10微秒的包处理延时。

本发明的有益效果为:本发明对acbm算法进行改进,在添加或者删除规则时,通过动态更新字符串树的方式进行规则的更新,降低了时间开销,大大提高了网络流量过滤装置的规则容量;此外结合高性能低成本的cavium处理器,设计了集数据采集、数据分析、以及流量过滤于一体的网络流量过滤装置,提高了装置的性能并降低了成本。

附图说明

图1为本发明的装置结构示意图。

图2为本发明的数据面转发流程示意图。

图3为本发明的方法流程示意图。

具体实施方式

如图1和2所示,一种基于改进的acbm算法对网络流量进行过滤的装置,包括数据接收与发送模块、交换模块、报文解析、控制模块。其特征在于所述数据接收与发送模块可以提供丰富的高密度接口类型,如32xge或32ge或8xge+16ge等接口,所述报文解析模块具有160gbps的处理性能,具有10微妙以下的转发时延,且功耗较低,所述acbm算法是一种用于多模式字符串匹配算法;所述cavium处理器是一种高性能低延时低功耗的网络处理器;所述acbm算法的改进是动态的更新字符串树,减少规则的生效时间,根据上述的设置与发布,将改进的acbm算法与高性能的cavium结合,实现网络流量的实时过滤。

具体的,本实施例中的改进的acbm算法包括字符串树的更新和字符串的匹配,所述规则更新指字符串树的更新;所述跳转算法用于查找字符串中匹配的字符的具体位置;所述字符位置信息数组用于存储每个字符在每个位置出现的次数;所述子节点链表用于加快匹配字符串速度;通过改进字符串树的更新方法,采用不推倒重建原有字符串树的方式,在原有字符串树中进行插入以及删除节点的方法更新字符串树,从而实现规则的实时更新。

如图3所示,一种基于改进的acbm算法对网络流量进行过滤的方法,该方法包括以下步骤:

s1.所述数据接收与发送模块通过提供的接口接入分光下来的网络流量;其中所述端口类型支持32xge,32ge,8xge+16ge,8xgew+16xge;

s2.所述交换模块将数据接收模块收到的报文上送到cavium芯片;

s3.所述控制模块负责端口类型的切换以及规则的下发;

s4.所述改进的acbm算法负责规则树的创建与更新;其中acbm算法是一种多模式字符串匹配算法;

s5.所述报文解析通过cavium处理器对报文进行解析提取报文信息;其中所述cavium公司的一款64位的mips架构的高性能,低延时,低功耗的网络处理器,其具有80gbps的处理性能,10微秒的包处理延时;

s6.所述规则的匹配通过cavium处理器提取的报文信息与规则表中预先写入的规则进行比较,得出匹配结果。

其中所述规则表为控制模块下发给芯片的匹配规则;其中所述跳转算法用于查找字符串中匹配的字符的具体位置;其中所述字符位置信息数组用于存储每个字符在每个位置出现的次数,有了这些信息,就可以知道每种字符出现的最小位置,而不用遍历整个规则集中的所有特征;其中所述子节点链表分段将子节点链表分为若干段,匹配时,根据要查的子节点是第几个子节点,可以得到该节点属于哪一段内,则可从该段链表的指针出发,最多查找16次即可得到该子节点,加快匹配速度。

规则的添加以及删除,采用的是动态的创建字符串树的方法,极大的降低了规则的生效时间;其中所述生效时间由原来的秒级提升到毫秒级;其中所述动态创建指不推倒原有字符串树;其中所述规则长度信息数组用于添加和删除规则时,不用重新遍历所有规则就可以得到新的最小规则长度。

控制面流程如下:

下发相应的过滤规则,收到下发的规则后,动态的创建字符串树,其流程简述为:假设第一条规则为abcd,则创建一个相应的字符串树;此时又有一条新的规则dcf,检查原字符串树发现d已经在之前的root节点中存在了,不用新建,在第二级节点中,没有字符c对应的子节点,故新建一个字节点,字符f为c的子节点,故也要新建一个子节点;这样就完成了字符串树的动态更新,并没有将原有字符串树推倒重建。

收到报文后,需要进行规则的匹配,其流程简述为:假设要在"substringsearchingalgorithm"查找"search",刚开始时,把子串与文本左边对齐,结果在第二个字符处发现不匹配,于是将子串往后移动;移动的方法是看紧跟在当前子串之后的那个字符(第一个字符串中的'i')。显然,不管移动多少,这个字符是肯定要参加下一步的比较的,也就是说,如果下一步匹配到了,这个字符必须在子串内。所以,可以移动子串,使子串中的最右边的这个字符与它对齐。现在子串'search'中并不存在'i',则说明可以直接跳过一大片,从'i'之后的那个字符开始作下一步的比较,比较的结果,第一个字符就不匹配,再看子串后面的那个字符,是'r',它在子串中出现在倒数第三位,于是把子串向后移动三位,使两个'r'对齐,发现这次匹配成功。

数据面转发流程如下:

设备的接口接入分光下来的流量,经过交换模块,由交换模块将流量上送到cavium处理器进行处理。

cavium处理器对报文进行解析与规则的匹配,未匹配规则的报文直接进行丢弃的操作,对于匹配规则的报文,发送给后台服务器。

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