2024年4月27日发(作者:)

一种基于隔离网闸的大文件高效传输方案

作者:任晨 刘立 陈鹏

来源:《信息化建设》2021年第02期

为保障网络安全,通常会把网络分为内、外两个不同安全级别的网络环境。内网为一般企

事业单位内部使用网络,安全等级较高,是防控严格的可信网络;外网拥有开放而丰富的资

源,但是安全等级比较低,为不可信的网络。为保证2个不同安全等级网络的物理连接和网络

协议互联互通,通常会采用隔离网闸,以信息“摆渡”的方式,实现2个网络间的数据交换。然

而基于安全考虑,网闸通常会对传输速度和内容进行限制,对于数据量较小的信息交换一般问

题不大,但是对于数据量较大的大文件,传输耗费时间较长,而网闸使用的实际情况是多个应

用共同使用,网络环境取决于各个应用共同作用的结果,如果长时间传输,碰到网络比较拥堵

的时候,会对传输造成影响,严重的时候甚至会导致连接主动断开,进而造成数据重传风险,

影响传输效率。

为此,基于隔离网闸的实际使用情况,笔者提出一种基于隔离网闸的大文件传输方案。方

案从两个方面改进传输效率,首先尽可能减少传输的数据量,采用压缩率最高的改进LZMA

算法,最大限度减少传输数据量;然后尽可能减少或规避连接断开带来的数据重传风险,采用

文件切片和动态反馈传输算法,把原有整个大文件重传变为切片重传,大大减少重传量,同时

利用动态反馈传输算法尽量避免文件过快传输带来的断开风险。经过实际验证,该方案能够动

态适应网络变化情况,大大提高传输大文件的效率。

隔离网闸

隔离网闸是内部网络与外部网络之间的一个安全防护装置,可以识别非法请求并阻止超越

权限的数据访问和操作,从而有效地抵御病毒、黑客等恶意破坏和攻击活动。隔离网闸由外网

处理单元、内网处理单元和安全隔离模块3个部分组成,内网和外网处理单元分别处理内外网

的连接请求,安全隔离模块包含了控制单元和存储介质,控制单元从硬件层面上实现了数据交

换区在任一时刻只与内网系统或外网系统相连,这样便能保证在任一时刻内网与外网没有连

通,从而实现了链路的物理隔离。存储介质用于在隔离网闸进行数据通信过程中,临时保存内

外网的连接数据,在发送方断开后,从存储介质中取出发送给接受方。由于一次数据交互需要

进行连接一方控制单元、传输数据、保存数据到存储介质、断开原有连接控制单元、再使用另

外一方连接控制单元、从存储介质取出数据并传输等6个步骤,隔离网闸相较于其他一些用于

安全防护设备,性能在传输过程中损耗较大。基于大文件本身的特性和隔离网闸的情况,大文

件传输会长时间占用隔离网闸带宽,同时对存储介质中的数据流转也带来巨大挑战,会给隔离

网闸的数据传输带来风险,进而影响传输效率。如何保证传输效率,笔者结合国标

《GB/T20279-2015信息安全技術网络和终端隔离产品安全技术要求》对隔离网闸提出的吞吐

量和性能延迟要求,对大文件进行分割传输。

在实际使用过程中,一般采用图1所示网络架构。图1中外网想要请求内网服务器,必须

通过隔离网闸,隔离网闸安全检验通过后,再通过路由等方式发送给对应内网服务器,外网会

有多个应用同时请求数据通过隔离网闸并发送到不同的内网服务器,内网服务器收到请求后,

根据请求类型和内容进行回复。

结合隔离网闸的物理特性和实际应用情况,为保证大文件的传输效率,需要根据隔离网闸

的实际情况进行测试,把测试结果作为方案的输入项。测试过程中,把吞吐量和性能延迟指标

综合为传输速率,结合切片文件的传输过程,得到切片大小相对的传输效率值。具体做法为准

备不同大小的切片文件,每次测试使用一种大小的切片文件进行反复持续传输,根据传输的数

据总量和传输的总时间得到平均传输速率,多次测试后,得到以文件大小为横轴、传输速率为

纵轴的负债测试结果,取传输速率最高值作为推荐带宽值,同时相对应的切片文件大小则为推

荐的切片文件大小。

数据压缩

隔离网闸基于安全考虑,对网络流量有非常严格的限制。大文件如果想在内外网通过隔离

网闸传播,必须尽可能减少传输文件的大小。如何在保证文件完整的情况下,尽量减少传输文

件的大小?针对这种情况,一般会采用对文件进行无损压缩后再传输的方式,文件压缩算法一

般有RLE、LZW、LZSS、bzip2、gzip等。LZMA是通过Deflate和LZ77算法改良和优化后的

压缩算法,该算法压缩率相较于RLE、LZW、LZSS、bzip2(-9)、gzip(-9)等压缩算,表

现更优异。为了更大提高压缩率和安全性,采用LZMA算法进行实验,根据该算法设计

LzmaDeal压缩类,核心内容如图2所示。

该类中包含两个成员变量,key表示用于加密密钥、sMap表示压缩字典,采用字典格式,

字典key为整形,value值使用类WsData,类中包含权值和二进制串。类中一共包含5个核心

方法,其中Init是在类实例化的时候使用,主要作用是初始sMap成员变量;Encryption方法用

来加密数据,传入src表示需要加密的数据,dst表示加密后的数据,方法返回值为bool类

型,表示加密是否成功;Compress方法用来压缩文件,该方法中可以分多个线程进行压缩,src

表示带压缩数据,dst表示压缩结果,threads表示使用线程数据。SmapSearch是sMap字典搜

索方法,src表示待编码字符串,dst返回src编码结果;CompressFile功能为实现文件压缩,传

入参数为源文件和压缩文件地址,该方法中会调用其他几个方法完成文件的加密和压缩。经过

测试,该压缩算法的压缩率一般能达到35%左右,有些文件甚至能达到20%。按照该效率计

算,传输数据量能够减少65%—80%,对于网闸的压力减少和传输效率的提高都有很大的帮

助,同时该算法使用了加密算法,兼顾了网络数据安全。

切片及动态反馈

使用网闸时会给使用网闸的应用分配一定大小带宽,在内外网传输过程中,这个带宽是传

输文件时能够达到的最大带宽。但是网闸在实际使用中,经常是大量应用共同使用同一个网

闸。当其他应用比较忙、对网闸的使用率比较高的时候,传输应用在使用网闸时无法达到最大

带宽,如果对传输速率不进行限制,网闸会基于安全考虑,主动断开连接。为了防止出现断开

连接导致的数据重传,同时最大利用网闸带宽,笔者采用对文件进行切片的方式进行传输,同

时在传输时利用动态反馈的传输机制,调整传输速率。

传输切片文件时首先需要网络连接请求操作,如果切片太小,连接操作会耗费大量时间,

如果切片过大,动态反馈机制会延迟,有被强制断开连接的风险,所以切片必须根据实际传输

情况进行调整。假定X(n),n=1,2,3…N代表每次切片的大小, 假定P(n),n=1,2,

3…N代表每次切片传输的时间,T代表推荐调整间隔。为保证调整间隔接近T,采用前n-1次

传输的情况按照公式求取最佳切片文件大小:

该公式先求得第1到n-2次的传输平均速率,然后与n-1次的速率求平均速率,得到结果

乘以T得到切片文件大小。其中X(1)和X(2)的值为T与最大带宽的乘积。其中T作为可

变参数,可根据实际情况调整该参数。

切片完成后进行数据传输,为保证传输数据效率,使用如图3所示流程进行数据传输。

第一步,对数据进行切片,按照切片节中的X(n)进行计算切片大小。若文件传输完

成,则结束传输。第二步,传输切片文件,并记录传输的开始和结束时间。第三步,判断传输

过程是否正常,如果正常跳到第四步,如果传输错误则跳到第五步。第四步,使用动态反馈算

法计算确定传输速率是否过快,如果正常则跳到第一步,如果速率过快,则根据动态反馈算法

计算结果,使用睡眠的方式暂停指定时间,然后再回到第一步,抑制传输速率过快。第五步,

标记当前切片传输失败,然后把当前切片作为下一次的传输切片数据。在重新传输前,需要先

判断该切片是否已经失敗过3次或3次以上,如果不是则直接回到第一步,如果是则需要长时

间睡眠等待。该睡眠等待时间作为可变参数,可以根据实际情况调整。

动态反馈算法根据传输速率动态调整传输过程,通过睡眠方式抑制传输过快带来的风险。

动态反馈算法结合切片文件大小、传输时间、分配带块、上一次传输速率等因素。假定使用X

(n),n=1,2,3…N代表每次切片的大小,使用T1(n),n=1,2,3…N表示每次传输开

始时间,使用T2(n),n=1,2,3…N表示传输结束时间,则可以使用公式X(n)/(T2

(n)-T1(n))计算出当前文件的传输速率,假定网闸分配最大带宽为R,使用D(n),

n=1,2,3…N表示第n次传输速率偏差值,结合上一次切片传输偏差值使用公式(X(n)/

(T2(n)-T1(n))-R+D(n-1))/2得到当次实际偏差值,为避免偏差值多余强烈变化,

使用P表示单次最大偏差值,使用MIN表示取最小值,使用如下公式表示速率偏差值的求

取:

其中R,P值为可变参数,其中R值在实际测试过程中,可以不必写理论值,推荐为理论

值的90%。D(0)=0,若D(n)<0,则D(n)=0。得到速率偏差之后,如果速率偏差值大

于0,则需要做睡眠处理,睡眠时间使用如下公式计算:

本方案通过实际环境测试,在保证文件正常传输的情况下,能够以接近最大带宽的速率进

行传输。

隔离网闸广泛应用于内外网数据通信,而大文件以其特殊性,在经过隔离网闸时需要特别

予以关注。本文所提出的解决方案,能够基于隔离网闸情况下,保证大文件的传输效率,进而

保证业务的正常进行。同时该方案还可以扩展到类似大文件数据交互的限速环境中,通过应用

本文所提供的单个或者所有方法结合的方式,能够有效减少因为大文件传输效率过慢带来的影

响。

(作者单位:国网新疆电力有限公司物资公司)