一种软硬件结合的自适应实时gzip数据解压缩方法及系统技术方案

技术编号:15726759 阅读:25 留言:0更新日期:2017-06-29 21:43
本发明专利技术公开了一种软硬件结合的自适应实时gzip数据解压缩方法及系统。本方法为:1)自适应选择器从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;2)自适应选择器根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;3)模块控制器根据该确定结果将压缩数据送至相应解压模块。本发明专利技术提出的自适应gzip数据解压方法的平均解压性能加速比可达5至7倍。

【技术实现步骤摘要】
一种软硬件结合的自适应实时gzip数据解压缩方法及系统
本专利技术涉及一种应用于网络入侵检测系统的软硬件结合的实时自适应gzip数据解压缩方法及系统,属于网络安全领域。
技术介绍
网络流量中存在着大量的gzip格式的压缩数据,包括大量的gzip压缩的网页流量、邮件传输的大文件、虚拟专用网的网络层和应用层流量。然而,大多数网络安全设备在对压缩流量的处理上做出不同的选择:1)修改数据报文头部字段,通知服务端本地不接受gzip格式的压缩数据,从而避免http流量中出现gzip数据而不能进行检测的情况。但是这种做法将会降低传输效率;2)将接收到的gzip格式压缩数据转为离线处理。这种方法对实时性要求较高的安全审查有着很大的弊端;3)忽略压缩数据。当压缩数据中包含了木马、恶意代码等威胁信息时,这种做法会给系统带来很大危害。为此,考虑设计一种高速实时gzip数据解压缩方法来将压缩数据还原为正常流量以供安全设备进行检测。目前,针对于gzip数据的解压缩方法主要分两类,即完全利用软件进行解压和借助专用硬件实现解压缩。软件解压具有对小数据包解压速度快的优势,却伴随着维持所有流状态的开销和进行状态切换的开销大的缺点。硬件解压占用CPU低,由于需要通过总线进行数据的传输,因此对小数据包的解压速度较慢,但对大数据包的解压效率高。网络中的压缩数据长度往往是不定的,比如静态网页文本的压缩往往得到的是比较短的压缩数据,而对于邮件附件来说,压缩数据可能具有比较大的数据长度。当固定使用纯软件或纯硬件某一种方式进行解压处理时,会降低整体处理速率。
技术实现思路
为了解决gzip数据解压代价大的问题,本专利技术提供了一种软硬件结合的自适应实时gzip数据解压缩的方法及系统,主要适用于部署在高速网络中的入侵检测系统中。本专利技术的技术方案为:一种软硬件结合的自适应实时gzip数据解压缩方法,其步骤为:1)自适应选择器从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;2)自适应选择器根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;3)模块控制器根据该确定结果将压缩数据送至相应解压模块;其中,所述自适应策略为:a)如果CPU负载大于或等于设定负载阈值α,且硬件模块不忙时,则选择硬件解压;b)如果CPU负载大于或等于设定负载阈值α,且硬件模块忙时,则选择软件解压;c)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块不忙时,则选择硬件解压;d)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块忙时,则选择软件解压;e)如果CPU负载小于设定负载阈值α、压缩数据长度等于或小于设定数据长度阈值β,则选择软件解压。进一步的,取软件解压和硬件解压的性能平衡点时的待解压缩数据包长度作为数据长度阈值β。进一步的,模块控制器通过系统函数获取硬件模块状态,当硬件模块当前正在执行解压工作则状态为忙,否则为不忙。进一步的,所述负载阈值α为80%,数据长度阈值β为120K。进一步的,所述软件解压、硬件解压均采用流式解压缩方式。一种软硬件结合的自适应实时gzip数据解压缩系统,其特征在于,包括自适应选择器、模块控制器、数据解压模块;其中,自适应选择器,用于从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;然后根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;模块控制器,用于根据该确定结果将压缩数据送至相应解压模块,以及对硬件模块状态进行获取和反馈;解压缩模块,包括软件解压模块和硬件解压模块,用于对当前待解压的压缩数据进行相应的软件解压或硬件解压;所述自适应策略为:如果CPU负载大于或等于设定负载阈值α,且硬件模块不忙时,则选择硬件解压;如果CPU负载大于或等于设定负载阈值α,且硬件模块忙时,则选择软件解压;如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块不忙时,则选择硬件解压;如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块忙时,则选择软件解压;如果CPU负载小于设定负载阈值α、压缩数据长度等于或小于设定数据长度阈值β时,则选择软件解压。进一步的,取软件解压和硬件解压的性能平衡点时的待解压缩数据包长度作为数据长度阈值β。进一步的,模块控制器通过系统函数获取硬件模块状态,当硬件模块当前正在执行解压工作则状态为忙,否则为不忙。进一步的,所述负载阈值α为80%,数据长度阈值β为120K。进一步的,所述软件解压、硬件解压均采用流式解压缩方式。本专利技术的主要内容为1)自适应数据解压架构;2)基于实时状况的自适应解压方案选择策略。软硬件结合的自适应gzip数据解压缩方法的核心是为网络流量中的gzip数据选择快速解压方案以减小解压操作的耗时,降低系统在此部分的时间开销。基于此,该策略的设计主要包含以下几个方面:1)解压方式选择依据包括:压缩数据的长度、CPU当前负载情况、硬件模块忙闲状态。压缩数据长度直接影响解压方式,短数据适用软件方式解压,长数据适用硬件方式解压;CPU负载大的情况下适用于硬件解压,不占用过多CPU资源;硬件模块忙时偏向于使用软件方式进行解压工作;2)自适应算法的高效性和灵活性。自适应算法会引入一定的时间开销,好的解压方式的选择会很大程度上降低解压数据的时间,提高整体系统的工作效率。与现有技术相比,本专利技术的积极效果为:对比仅采用纯软件或纯硬件进行gzip数据解压缩,在现网环境下进行测试,提出的自适应gzip数据解压方法的平均解压性能加速比可达5至7倍。附图说明图1为本专利技术的系统结构图。图2为软硬件解压方式在解压不同长度的数据时的表现。具体实施方式以下结合实施例和附图对本专利技术进行详细说明,但不构成对本专利技术的限制。本专利技术的系统总体框架如图1所示,由自适应选择器、模块控制器、解压缩模块三部分组成,运行步骤如下:1)压缩流量进入系统时,自适应选择器获取压缩数据长度,获取系统CPU的负载状态信息,并从模块控制器获取硬件解压模块的模块状态;2)自适应选择器通过自适应选择算法进行模块选择判定;3)模块控制器根据自适应选择器判定的结果将压缩数据送至相应解压模块;4)解压缩模块进行快速数据解压。下面,就运行步骤做详细地论述。自适应选择器:本模块的核心为自适应策略,该策略进行自适应选择算法设计如下:1)在CPU负载为α或以上时,硬件模块不忙时,选择硬件解压方案;2)在CPU负载为α或以上时,硬件模块忙时,选择软件解压方案;3)在CPU负载为α以下,数据长度为β以上,硬件模块不忙时,选择硬件解压方案;4)在CPU负载为α以下,数据长度为β以上,硬件模块忙时,选择软件解压方案;5)在CPU负载为α以下,数据长度为β以下时,选择软件解压方案。其中,CPU负载阈值α可根据用户需求进行设置,经测试,建议CPU负载阈值取为80%。在预先测试过软硬件两种方式进行解压缩的性能后,取其性能平衡点时的待解压缩数据包长度β作为阈值。图2为软硬件本文档来自技高网...
一种软硬件结合的自适应实时gzip数据解压缩方法及系统

【技术保护点】
一种软硬件结合的自适应实时gzip数据解压缩方法,其步骤为:1)自适应选择器从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;2)自适应选择器根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;3)模块控制器根据该确定结果将压缩数据送至相应解压模块;其中,所述自适应策略为:a)如果CPU负载大于或等于设定负载阈值α,且硬件模块不忙时,则选择硬件解压;b)如果CPU负载大于或等于设定负载阈值α,且硬件模块忙时,则选择软件解压;c)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块不忙时,则选择硬件解压;d)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块忙时,则选择软件解压;e)如果CPU负载小于设定负载阈值α、压缩数据长度等于或小于设定数据长度阈值β,则选择软件解压。

【技术特征摘要】
1.一种软硬件结合的自适应实时gzip数据解压缩方法,其步骤为:1)自适应选择器从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;2)自适应选择器根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;3)模块控制器根据该确定结果将压缩数据送至相应解压模块;其中,所述自适应策略为:a)如果CPU负载大于或等于设定负载阈值α,且硬件模块不忙时,则选择硬件解压;b)如果CPU负载大于或等于设定负载阈值α,且硬件模块忙时,则选择软件解压;c)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块不忙时,则选择硬件解压;d)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块忙时,则选择软件解压;e)如果CPU负载小于设定负载阈值α、压缩数据长度等于或小于设定数据长度阈值β,则选择软件解压。2.如权利要求1所述的方法,其特征在于,取软件解压和硬件解压的性能平衡点时的待解压缩数据包长度作为数据长度阈值β。3.如权利要求1所述的方法,其特征在于,模块控制器通过系统函数获取硬件模块状态,当硬件模块当前正在执行解压工作则状态为忙,否则为不忙。4.如权利要求1或2或3所述的方法,其特征在于,所述负载阈值α为80%,数据长度阈值β为120K。5.如权利要求1或2或3所述的方法,其特征在于,所述软件解压、硬件解压均采用流式解压缩方式。6.一种软硬件结合的自适应实时gzip数据解压缩系统,其特征在于,包括自适应选...

【专利技术属性】
技术研发人员:周舟张曦刘庆云郑超杨威杨嵘郭莉
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1