当前位置: 首页 > 专利查询>王颖专利>正文

基于MPI的WM串匹配并行算法的网络信息过滤系统技术方案

技术编号:18788854 阅读:31 留言:0更新日期:2018-08-29 09:25
本发明专利技术提供一种基于MPI的WM串匹配并行算法的网络信息过滤系统,包括:S1、多核系统初始化,初始化数据报文队列和报文鉴别队列;S2、并行加载缓冲区报文到数据报文队列,并行转发报文;S3、利用WM算法对数据报文队列进行并行筛选,对报文鉴别队列进行并行审查;S4、根据网络带宽和多核处理器的负载,实现基于消息传递的指令控制。本发明专利技术对WM算法进行了并行化改进,实现对报文进行并行处理,能够并行鉴别报文中的审查内容,控制模块优化设计了多核系统的计算资源和带宽的分配,加速了报文处理速度,有效提高了报文转发功能;特别适合网络信息安全领域对报文的过滤和内容的审查,以及防止网络攻击导致的性能的降低。

【技术实现步骤摘要】
基于MPI的WM串匹配并行算法的网络信息过滤系统
本专利技术涉及网络与信息安全
,尤其涉及一种基于MPI的WM串匹配并行算法的网络信息过滤系统。
技术介绍
随着计算机技术的迅速发展,信息在人们的生活中起着重要的作用。计算机网络中存在的大量信息影响着国家、政府、企事业单位和个人。网络信息为人们提供了丰富的资源和有益的信息,但是,在其中也存在着大量非法的、暴力的、恐怖的和色情等严重干扰社会和人们生活的不良内容。这些不良信息不仅会给社会带来严重的政治动乱,而且也会严重干扰人们的正常的生活。网络信息过滤系统是对网络中的信息进行筛选,并把不符合要求的网络信息进行屏蔽或者过滤,预警和报告给计算机网络管理人员,以便进行处理。目前使用的网络信息过滤系统,一种是安装在网络代理防火墙中,代理防火墙设置在内网和外网之间。代理防火墙主要的问题在于代理型防火墙自身所存在的缺点,防火墙虽然能够抵御大部分外部的攻击,但是对于防火墙内部的防范却很有限,如果黑客攻击内部网络主机成功,很容易造成单点失效的问题。此外,防火墙很难对网络信息的内容进行有效监控。另一种主要使用的方法是把网络信息过滤系统安装在代理路由器中,由于代理路由器需要大量转发网络数据包,在安装网络信息过滤系统之后,网络信息过滤系统会成为代理路由器的瓶颈,因此,影响着代理路由器的工作效率。如何让网络信息过滤系统即保持着防火墙的基本功能,又能够实现在代理路由器中对网络数据包的有效过滤是一个技术难题。深度数据包检测(DeepPacketInspection)技术是网络信息过滤系统中的核心技术。深度数据包检测能够结合入侵检测系统、入侵防御系统及状态防火墙等功能,实现对网络数据包的数据部分的特征数据进行甄别和分类处理,因此,深度数据包检测比依靠数据包头部能够更精确地实现控制。同时,深度数据包检测也能够有效阻挡来自病毒、蠕虫和拒绝服务攻击等。深度数据包检测技术中主要的算法来源于字符串匹配算法。在众多的字符串匹配算法中经典的是:Aho-Corasick(AC)算法和Wu-Manber(WM)算法。AC算法和WM算法都是多模式串匹配算法。AC算法是AlfredV.Aho和MargaretJ.Corasick于1975年提出的,因此,简称为AC算法。WM算法是SunWu和他的导师UdiManber在20世纪90年代提出来的,因此,简称为WM算法。多核处理器的出现,是计算机发展的一次革命性的飞跃。多核处理器极大地提高了计算机数据处理的速度,减少了计算机数据处理的时间,增加了计算机系统的性能。但是,在实际应用中所使用的传统的计算机算法,最初的设计是在单处理器系统中,因此,很难适应多核处理器的平台。OpenMulti-Processing(OpenMP)和MessagePassingInterface(MPI)是目前并行程序设计流行的接口,并被很多计算机厂商所接受。消息传递接口(MPI)是一种基于消息传递的并行程序接口。MPI比OpenMP在并行程序设计上具有更大的灵活性。MPI具有独立的运行空间,进程之间通过消息(Message)交换数据。但是,基于MPI的并行程序设计比OpenMP更加复杂。设计在代理路由器和代理防火墙中的网络信息过滤系统要求更高的处理速度和响应时间。因此,在多核处理器时代,网络信息过滤系统如何实现快速、并行的处理是亟待解决的技术难题。
技术实现思路
(一)要解决的技术问题本专利技术的目的是提出一种基于MPI的WM串匹配并行算法的网络信息过滤系统,解决网络信息过滤系统中的核心算法难以适应多核处理器的并行结构,实现网络信息过滤系统快速和并行的数据处理。(二)技术方案为了解决上述技术问题,本专利技术提供了一种基于MPI的WM串匹配并行算法的网络信息过滤系统,包括:Part1、多核系统初始化,初始化数据报文队列,初始化报文鉴别队列;Part2、并行加载缓冲区报文到数据报文队列,并行转发报文;Part3、利用WM算法对数据报文队列进行并行筛选,对报文鉴别队列进行并行审查;Part4、根据网络带宽和多核处理器的负载,实现基于消息传递的指令控制。首先,一种基于MPI的WM串匹配并行算法的网络信息过滤系统的数据结构定义,包括如下部分:模式字符串,简称模式,包括网络协议类型,数据报文中需要鉴别的规则,过滤条件和审查内容。模式集合,记为:Set_Pattern,形式描述为:Set_Pattern={p1,p2,…,pi,…},其中,pi是模式集合Set_Pattern的第i个模式字符串。模式字符串pi形式描述为:pi=pi1…pin,pi1是模式字符串pi的左面第一个字符,pin是模式字符串pi的右面最末尾的字符。Len(P)表示字符串P的长度。字符串B是pi的子串,表示为:B=pij-Len(B)+1…pij。Pmin是模式集合Set_Pattern中模式字符串长度最小的模式。哈希函数记为:Hash(),Hash(P)表示对字符串P进行哈希运算所获得的数值。在WM算法中跳转表Shift记为:Table_Shift_B,包括:表Table_Shift_B定义开始;数据项1、字符串B的哈希值,即Hash(B);数据项2、在WM算法中跳转的距离,定义为偏移值,记为:Offset;数据项3、当偏移值Offset等于0时,包含子串B的模式集合,记为:SubSet_Pattern,SubSet_Pattern的初始值为空集;表Table_Shift_B定义结束。数据报文队列,记为:Queue_Datagram,包括:数据报文队列Queue_Datagram定义开始;数据项1、数据报文的编号,记为:ID_Datagram;数据项2、编号为ID_Datagram的数据报文的处理状态,记为:Status_Datagram;当Status_Datagram等于0时,表示该报文转发;当Status_Datagram等于1时,表示该报文禁止转发;当Status_Datagram等于2时,表示该报文正在处理中;Status_Datagram的初始值设定为-1;数据项3、编号为ID_Datagram的数据报文正在处理器中利用WM算法对数据报文进行筛选的状态,记为:Status_WM_Slave_Work;当Status_WM_Slave_Work等于0时,表示报文处理过程已经完成;当Status_WM_Slave_Work等于1时,表示报文处理过程正在进行中;Status_WM_Slave_Work的初始值设定为-1;数据项4、编号为ID_Datagram的数据报文正在处理器中进行内容鉴别过程的处理状态,记为:Status_WM_Judge_Work;当Status_WM_Judge_Work等于0时,表示报文的鉴别过程已经完成;当Status_WM_Judge_Work等于1时,表示报文的鉴别过程正在进行中;Status_WM_Judge_Work的初始值设定为-1;数据项5、编号为ID_Datagram的数据报文的鉴别结果,记为:Status_WM_Judge_Result;当Status_WM_Judge_Result等于0时,表示内容审查后报文符合要求,转发该报文;当Status_WM_Judge_Resu本文档来自技高网
...

【技术保护点】
1.一种基于MPI的WM串匹配并行算法的网络信息过滤系统,其特征在于,包括:Part1、多核系统初始化,初始化数据报文队列,初始化报文鉴别队列;Part2、并行加载缓冲区报文到数据报文队列,并行转发报文;Part3、利用WM算法对数据报文队列进行并行筛选,对报文鉴别队列进行并行审查;Part4、根据网络带宽和多核处理器的负载,实现基于消息传递的指令控制;第一、一种基于MPI的WM串匹配并行算法的网络信息过滤系统的数据结构定义,包括:模式字符串,简称模式,包括网络协议类型,数据报文中需要鉴别的规则,过滤条件和审查内容;模式集合,记为:Set_Pattern,形式描述为:Set_Pattern={p1,p2,…,pi,…},其中,pi是模式集合Set_Pattern的第i个模式字符串;模式字符串pi形式描述为:pi=pi1…pin,pi1是模式字符串pi的左面第一个字符,pin是模式字符串pi的右面最末尾的字符;Len(P)表示字符串P的长度;字符串B是p

【技术特征摘要】
1.一种基于MPI的WM串匹配并行算法的网络信息过滤系统,其特征在于,包括:Part1、多核系统初始化,初始化数据报文队列,初始化报文鉴别队列;Part2、并行加载缓冲区报文到数据报文队列,并行转发报文;Part3、利用WM算法对数据报文队列进行并行筛选,对报文鉴别队列进行并行审查;Part4、根据网络带宽和多核处理器的负载,实现基于消息传递的指令控制;第一、一种基于MPI的WM串匹配并行算法的网络信息过滤系统的数据结构定义,包括:模式字符串,简称模式,包括网络协议类型,数据报文中需要鉴别的规则,过滤条件和审查内容;模式集合,记为:Set_Pattern,形式描述为:Set_Pattern={p1,p2,…,pi,…},其中,pi是模式集合Set_Pattern的第i个模式字符串;模式字符串pi形式描述为:pi=pi1…pin,pi1是模式字符串pi的左面第一个字符,pin是模式字符串pi的右面最末尾的字符;Len(P)表示字符串P的长度;字符串B是pi的子串,表示为:Pmin是模式集合Set_Pattern中模式字符串长度最小的模式;哈希函数记为:Hash(),Hash(P)表示对字符串P进行哈希运算所获得的数值;在WM算法中跳转表Shift记为:Table_Shift_B,包括:表Table_Shift_B定义开始;数据项1、字符串B的哈希值,即Hash(B);数据项2、在WM算法中跳转的距离,定义为偏移值,记为:Offset;数据项3、当偏移值Offset等于0时,包含子串B的模式集合,记为:SubSet_Pattern,SubSet_Pattern的初始值为空集;表Table_Shift_B定义结束;数据报文队列,记为:Queue_Datagram,包括:数据报文队列Queue_Datagram定义开始;数据项1、数据报文的编号,记为:ID_Datagram;数据项2、编号为ID_Datagram的数据报文的处理状态,记为:Status_Datagram;当Status_Datagram等于0时,表示该报文转发;当Status_Datagram等于1时,表示该报文禁止转发;当Status_Datagram等于2时,表示该报文正在处理中;Status_Datagram的初始值设定为-1;数据项3、编号为ID_Datagram的数据报文正在处理器中利用WM算法对数据报文进行筛选的状态,记为:Status_WM_Slave_Work;当Status_WM_Slave_Work等于0时,表示报文处理过程已经完成;当Status_WM_Slave_Work等于1时,表示报文处理过程正在进行中;Status_WM_Slave_Work的初始值设定为-1;数据项4、编号为ID_Datagram的数据报文正在处理器中进行内容鉴别过程的处理状态,记为:Status_WM_Judge_Work;当Status_WM_Judge_Work等于0时,表示报文的鉴别过程已经完成;当Status_WM_Judge_Work等于1时,表示报文的鉴别过程正在进行中;Status_WM_Judge_Work的初始值设定为-1;数据项5、编号为ID_Datagram的数据报文的鉴别结果,记为:Status_WM_Judge_Result;当Status_WM_Judge_Result等于0时,表示内容审查后报文符合要求,转发该报文;当Status_WM_Judge_Result等于1时,表示内容审查后报文不符合要求,禁止转发该报文;Status_WM_Judge_Result的初始值设定为-1;数据项6、编号为ID_Datagram的数据报文中需要鉴别内容的数量,记为:Status_WM_Judge_Count;当Status_WM_Judge_Count等于0时,表示报文中没有需要鉴别的内容,当Status_WM_Judge_Count为大于0的数值时,表示报文中需要鉴别内容的总数量;Status_WM_Judge_Count的初始值设定为0;数据项7、编号为ID_Datagram的数据报文在数据缓冲区中的地址信息,记为:ID_Datagram_AddressInfo;数据报文队列Queue_Datagram定义结束;数据报文需要鉴别内容的队列,定义为报文鉴别队列,记为:Queue_Judge,包括:报文鉴别队列Queue_Judge定义开始;数据项1、鉴别的数据报文的编号,记为:ID_Datagram;数据项2、在鉴别的数据报文中,鉴别内容所在报文中的位置信息,记为:Location_i;数据项3、在鉴别的数据报文中,鉴别内容需要匹配的模式集合信息;记为:Set_MatchingPattern_Info;报文鉴别队列Queue_Judge定义结束;在多核处理器系统中使用的处理器的工作状态队列,记为:Queue_CoreStatusWork,包括:处理器工作状态队列Queue_CoreStatusWork定义开始;数据项1、处理器在多核系统中的编号,记为:ID_Core;数据项2、编号为ID_Core的处理器当前的工作状态,记为:CoreStatusWork;当CoreStatusWork等于0时,表示该处理器处于空闲状态;当CoreStatusWork等于1时,表示该处理器处于忙状态,也就是正在被应用程序占用;处理器工作状态队列Queue_CoreStatusWork定义结束;在MPI系统中,消息传递过程记为:Message(Information1,Information2,…,ID_Core_i),其中,Information表示传递的信息内容,ID_Core_i表示多核系统中处理器的编号;记录数据报文队列Queue_Datagram的锁状态,记为:Lock_Queue_Datagram;当Lock_Queue_Datagram等于0时,表示当前数据报文队列Queue_Datagram没有加锁;当Lock_Queue_Datagram等于1时,表示当前数据报文队列Queue_Datagram处于锁定状态;第二、一种基于MPI的WM串匹配并行算法的网络信息过滤系统的过程描述,包括:模式集合Set_Pattern初始化过程,包括:S1、建立过滤网络协议库,过滤网络层数据包头部规则,过滤IP数据包规则,过滤TCP数据包规则,过滤UDP数据包规则,审查内容关键字;S2、由网络协议库,过滤规则和审查内容建立模式集合,确定过滤条件和审查内容,统计模式的总数量,模式的最小长度;S3、如果模式最小长度小于2,则对该模式进行补位处理,具体为:处理后的模式的第一位填加原模式的字符,在第二位填加ASCII码NUL操作符;S4、过程结束;在WM算法中,表Table_Shift_B的建立过程,包括:S1、初始化表Table_Shift_B的字符串B的偏移值Offset,设定为Len(Pmin)-Len(B)+1;S2、i为循环计数器,获得模式集合Set_Pattern的第i个模式pi,计算pi中的每个B子串的跳转距离Len(pi)-j;如果表Table_Shift_B中对应B的Hash(B)的偏移值Offset大于Len(pi)-j,则把Offset的值修改为Len(pi)-j;如果Len(pi)-j等于0,那么把模式pi添加到对应B的Hash(B)的SubSet_Pattern集合中;S3、重复步骤S2,直到模式集合Set_Pattern的所有模式处理完毕;S4、过程结束;并行加载缓冲区报文到数据报文队列Queue_Datagram的过程,包括:S1、如果Lock_Queue_Datagram当前为锁定状态,则继续进行查询;否则,转到S2;S2、如果当前数据报文队列Queue_Datagram没有加锁,则设置Lock_Queue_Datagram为锁定状态;S3、从缓冲区读取报文,创建数据报文队列Queue_Datagram新的结点,编号设定为ID_Datagram,初始化Status_Datagram,Status_WM_Slave_Work,Status_WM_Judge_Work,Status_WM_Judge_Result的值为-1,初始化Status_WM_Judge_Count的值为0,初始化ID_Datagram_AddressInfo为缓冲区的报文的地址,将该报文信息插入数据报文队列Queue_Datagram;S4、重复步骤S3,直到缓冲区所有报文处理完毕;S5、设置Lock_Queue_Datagram为解锁状态;S6、过程结束;对数据报文队列Queue_Datagram中的报文进行并行转发的过程,包括:S1、如果Lock_Queue_Datagram当前为锁定状态,则继续进行查询;否则,转到S2;S2、如果当前数据报文队列Queue_Datagram没有加锁,则设置Lock_Queue_Datagram为锁定状态;S3、由数据报文队列Queue_Datagram的头结点开始,查询数据报文队列中编号为ID_Datagram的报文的Status_Datagram状态;如果Status_Datagram等于0,则消息传递Message(ID_Datagram,ID_Datagram_AddressInfo,转发,ID_Core),通知处理器ID_Core的进程对报文编号为ID_Datagram和缓冲区地址为ID_Datagram_AddressInfo的报文进行转发处理;如果Status_Datagram等于1,则消息传递Message(ID_Datagram,ID_Datagram_AddressInfo,禁止转发,ID_Core),通知处理器ID_Core的进程对报文编号为ID_Datagram和缓冲区地址为ID_Datagram_AddressInfo的报文禁止转发;如果Status_Datagram等于0和1,将编号为ID_Datagram的结点移出数据报文队列Queue_Datagram;如果Status_Datagram等于2,则查询数据报文队列Queue_Datagram的下一个结点;重复步骤S3,直到数据报文队列Queue_Datagram的所有结点查询完毕;S4、设置Lock_Queue_Datagram为解锁状态;S5、等待系统主进程的消息传递的指令信息,指令信息如果为:继续执行,则转到S1;指令信息如果为:停止转发过程,则转到S6;S6、过程结束;报文转发状态结果处理过程,包括:S1、查询数据报文队列Queue_Datagram中的编号为ID_Datagram的报文的Status_WM_Slave_Work,Status_WM_Judge_Work,Status_WM_Judge_Result的状态;如果Status_WM_Slave_Work等于0,并且,Status_WM_Judge_Work等于0,并且,Status_WM_Judge_Result等于0,则设置Status_Datagram的值为0,该报文将进行转发处理;如果Status_WM_Slave_Work等于0,并且,Status_WM_Judge_Work...

【专利技术属性】
技术研发人员:王颖常红马艳敏
申请(专利权)人:王颖马艳敏
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1