CN106899308B - 一种软硬件结合的自适应实时gzip数据解压缩方法及系统 - Google Patents
一种软硬件结合的自适应实时gzip数据解压缩方法及系统 Download PDFInfo
- Publication number
- CN106899308B CN106899308B CN201710043942.1A CN201710043942A CN106899308B CN 106899308 B CN106899308 B CN 106899308B CN 201710043942 A CN201710043942 A CN 201710043942A CN 106899308 B CN106899308 B CN 106899308B
- Authority
- CN
- China
- Prior art keywords
- decompression
- hardware
- module
- data
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种软硬件结合的自适应实时gzip数据解压缩方法及系统。本方法为:1)自适应选择器从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;2)自适应选择器根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;3)模块控制器根据该确定结果将压缩数据送至相应解压模块。本发明提出的自适应gzip数据解压方法的平均解压性能加速比可达5至7倍。
Description
技术领域
本发明涉及一种应用于网络入侵检测系统的软硬件结合的实时自适应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为软硬件解压方式在解压不同长度数据时的表现,可见数据长度在60K以下时,采用软件解压缩方式较快,数据长度在180K以上时,使用硬件解压方案较快,综合考虑建议选取的数据长度阈值β为120K。硬件模块状态可通过系统函数直接获取,当其在执行解压工作时则为忙状态,否则即为不忙状态。
模块在压缩流量进入系统时获取压缩数据长度,从模块控制器获取解压硬件设备状态,同时从系统获取CPU实时负载情况,以上三项数据作为输入参数传入自适应选择算法,输出选择方案回传给模块控制器。
模块控制器:
本模块负责对解压缩模块的调度和状态监控,具体工作内容如下:
1)自适应选择器通过本模块获取硬件设备状态,进行评定并将结果回传给本模块;
2)获取到回传结果后,直接调用相应软硬件解压模块进行数据解压缩;
3)实时记录当前执行解压工作的模块,并在解压工作完成后,将相应状态进行重置。
解压缩模块:
解压缩模块是本发明得以实施的基础。本模块由硬件解压模块和软件解压模块两部分构成。硬件部分可以使用专用解压缩模块,如Intel公司的Quick Assist Technology实现数据解压工作,软件部分可以使用软件解压缩库,如zlib库提供的软件算法进行数据解压。
通常情况下,对于数据的解压缩工作有两种方式:流式解压缩与非流式解压缩。非流式解压缩需要全部的压缩数据作为输入来进行解压缩工作;流式解压缩支持部分解压,不需要全部的压缩数据即可进行解压缩工作,但是需要对解压的中间状态进行保存和管理。
由于属于同一段会话的数据通常会被封装在多个数据包中进行传输,本模块中所选用的软硬件解压方式均为流式解压缩方式。这样可以对到来的数据包立即解压而不需要进行缓存等到会话结束再进行解压缩工作,但在解压过程中需要注意对中间状态进行维护和管理。
Claims (8)
1.一种软硬件结合的自适应实时gzip数据解压缩方法,其步骤为:
1)自适应选择器从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;
2)自适应选择器根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;
3)模块控制器根据该确定结果将压缩数据送至相应解压模块;
其中,所述自适应策略为:
a)如果CPU负载大于或等于设定负载阈值α,且硬件模块不忙时,则选择硬件解压;
b)如果CPU负载大于或等于设定负载阈值α,且硬件模块忙时,则选择软件解压;
c)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块不忙时,则选择硬件解压;其中,数据长度阈值β为软件解压和硬件解压的性能平衡点时的待解压缩数据包长度;设软件解压缩方式对数据长度小于M的数据解压性能高,设硬件解压方案对数据长度在N以上的数据解压性能高,N大于M,则性能平衡点时的待解压缩数据包长度介于M与N之间;
d)如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块忙时,则选择软件解压;
e)如果CPU负载小于设定负载阈值α、压缩数据长度等于或小于设定数据长度阈值β,则选择软件解压。
2.如权利要求1所述的方法,其特征在于,模块控制器通过系统函数获取硬件模块状态,当硬件模块当前正在执行解压工作则状态为忙,否则为不忙。
3.如权利要求1或2所述的方法,其特征在于,所述负载阈值α为80%,数据长度阈值β为120K。
4.如权利要求1或2所述的方法,其特征在于,所述软件解压、硬件解压均采用流式解压缩方式。
5.一种软硬件结合的自适应实时gzip数据解压缩系统,其特征在于,包括自适应选择器、模块控制器、数据解压模块;其中,
自适应选择器,用于从压缩流量中获取待解压的压缩数据长度,并获取系统当前的CPU负载状态信息以及从模块控制器获取硬件解压模块状态;然后根据获取的信息和设定的自适应策略确定对当前待解压的压缩数据进行软件解压或硬件解压,然后将确定结果发送给模块控制器;
模块控制器,用于根据该确定结果将压缩数据送至相应解压模块,以及对硬件模块状态进行获取和反馈;
解压缩模块,包括软件解压模块和硬件解压模块,用于对当前待解压的压缩数据进行相应的软件解压或硬件解压;
所述自适应策略为:如果CPU负载大于或等于设定负载阈值α,且硬件模块不忙时,则选择硬件解压;如果CPU负载大于或等于设定负载阈值α,且硬件模块忙时,则选择软件解压;如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块不忙时,则选择硬件解压;如果CPU负载小于设定负载阈值α、压缩数据长度大于设定数据长度阈值β,且硬件模块忙时,则选择软件解压;如果CPU负载小于设定负载阈值α、压缩数据长度等于或小于设定数据长度阈值β时,则选择软件解压;其中,数据长度阈值β为软件解压和硬件解压的性能平衡点时的待解压缩数据包长度;设软件解压缩方式对数据长度小于M的数据解压性能高,设硬件解压方案对数据长度在N以上的数据解压性能高,N大于M,则性能平衡点时的待解压缩数据包长度介于M与N之间。
6.如权利要求5所述的系统,其特征在于,模块控制器通过系统函数获取硬件模块状态,当硬件模块当前正在执行解压工作则状态为忙,否则为不忙。
7.如权利要求5或6所述的系统,其特征在于,所述负载阈值α为80%,数据长度阈值β为120K。
8.如权利要求5或6所述的系统,其特征在于,所述软件解压、硬件解压均采用流式解压缩方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710043942.1A CN106899308B (zh) | 2017-01-19 | 2017-01-19 | 一种软硬件结合的自适应实时gzip数据解压缩方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710043942.1A CN106899308B (zh) | 2017-01-19 | 2017-01-19 | 一种软硬件结合的自适应实时gzip数据解压缩方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106899308A CN106899308A (zh) | 2017-06-27 |
CN106899308B true CN106899308B (zh) | 2020-05-22 |
Family
ID=59199180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710043942.1A Active CN106899308B (zh) | 2017-01-19 | 2017-01-19 | 一种软硬件结合的自适应实时gzip数据解压缩方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106899308B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108599774B (zh) * | 2018-04-26 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、装置及计算机可读存储介质 |
CN114461589B (zh) * | 2021-08-24 | 2023-04-11 | 荣耀终端有限公司 | 读取压缩文件的方法、文件系统及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102074257A (zh) * | 2011-01-17 | 2011-05-25 | 博视联(苏州)信息科技有限公司 | 软硬件结合解码的通用多媒体播放设备及其播放方法 |
CN102098513A (zh) * | 2010-12-20 | 2011-06-15 | 北京交通大学 | 无线视频实时传输方法 |
US9176977B2 (en) * | 2013-03-15 | 2015-11-03 | International Business Machines Corporation | Compression/decompression accelerator protocol for software/hardware integration |
CN105068875A (zh) * | 2015-08-12 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种智能数据处理方法及装置 |
CN106293542A (zh) * | 2016-08-23 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种文件解压缩的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101198045B (zh) * | 2007-12-20 | 2012-07-25 | 清华大学 | 一种流媒体数字水印系统 |
-
2017
- 2017-01-19 CN CN201710043942.1A patent/CN106899308B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098513A (zh) * | 2010-12-20 | 2011-06-15 | 北京交通大学 | 无线视频实时传输方法 |
CN102074257A (zh) * | 2011-01-17 | 2011-05-25 | 博视联(苏州)信息科技有限公司 | 软硬件结合解码的通用多媒体播放设备及其播放方法 |
US9176977B2 (en) * | 2013-03-15 | 2015-11-03 | International Business Machines Corporation | Compression/decompression accelerator protocol for software/hardware integration |
CN105068875A (zh) * | 2015-08-12 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种智能数据处理方法及装置 |
CN106293542A (zh) * | 2016-08-23 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种文件解压缩的方法及装置 |
Non-Patent Citations (1)
Title |
---|
Gzip压缩的硬件加速电路设计;李冰等;《电子学报》;20170325;第45卷(第3期);正文第540-545页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106899308A (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2786544B1 (en) | Flow-based compression management | |
CN106612284B (zh) | 一种流数据的传输方法和装置 | |
CN109639591B (zh) | 配电数据反向传输方法及系统和计算机可读存储介质 | |
CN112822724B (zh) | 一种报文转发方法及装置 | |
US11799794B2 (en) | Selective compression of packet payload data in a 5G network | |
CN106899308B (zh) | 一种软硬件结合的自适应实时gzip数据解压缩方法及系统 | |
CN106330762A (zh) | 交换机加速处理数据的方法、cpu核和交换机 | |
WO2017067313A1 (zh) | 数据压缩方法及装置 | |
CN110708234B (zh) | 消息发送的处理方法、消息发送的处理装置及存储介质 | |
CN116233018A (zh) | 报文处理方法、装置、电子设备及存储介质 | |
CN114189477A (zh) | 一种报文拥塞控制方法及装置 | |
JP2012039198A (ja) | データ圧縮転送システム、伝送装置及びそれらに用いるデータ圧縮転送方法 | |
CN109558442B (zh) | 一种数据实时汇聚方法及系统 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
CN104038307A (zh) | 数据流传输系统及方法 | |
CN111431812A (zh) | 一种报文转发控制方法及装置 | |
CN112671662B (zh) | 数据流加速方法、电子设备和存储介质 | |
US20170085487A1 (en) | Delay Requirement Aware Packet Forwarding Control | |
CN114401454A (zh) | 视频上传分片方法及装置 | |
CN108966160B (zh) | 一种短信处理方法、装置及计算机可读存储介质 | |
CN112994934A (zh) | 数据交互方法、装置及系统 | |
CN107872820B (zh) | Epc网络数据处理方法、装置及epc网络 | |
CN106941474B (zh) | 一种会话初始协议服务器过载控制方法、服务器 | |
KR101392479B1 (ko) | 네트워크 장비의 로드 밸런싱 시스템 및 그 로드 밸런싱 방법 | |
CN114666398B (zh) | 应用分类方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |