一种基于单向光闸的高可靠性安全传输与控制系统及方法转让专利

申请号 : CN202111657245.8

文献号 : CN114499993B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡传平任楷奚昊王振海王清芳李静杨晓鹏

申请人 : 郑州大学山东首瀚信息科技有限公司

摘要 :

本发明公开了一种基于单向光闸的高可靠性安全传输与控制系统及方法,属于单向光闸信息传输技术领域;方法包括以下步骤:在光闸外端将待传输文件进行前向纠错FEC编码操作;将编码后的文件剥离拆分成数据包并封装单向传输私有协议;采用多通道协程传输控制方法来构建数据包待发送消息列队;数据包通过单向传输所用网卡发送至光闸内端,后续编程使用协程方法循环获取数据包构建接收新文件集合;对接收新文件集合进行解包并做MD5值校验,还原为小文件集合后合并得到源文件,文件传输完成。本发明通过前向纠错编码技术减小传输计算量和丢包纠正弥补,确保传输文件的可靠性;通过封装单向传输私有协议使传输更加稳定,提高传输效率。

权利要求 :

1.一种基于单向光闸的高可靠性安全传输与控制方法,其特征在于:包括以下步骤:

S1、在使用光闸对多种类型的源内容进行单向传输前,在光闸外端先将待传输文件基于前向纠错FEC编码技术进行前向纠错的编码操作;

编码操作包括:将源文件拆分成固定大小的小文件集合,对小文件集合做前向纠错编码形成编码后的新文件集合,并在新文件集合内采用MD5校验原理对内部的每份文件加入自身文件的MD5校验值,校验编码完成后的文件集合合并为一个待发送新文件;

S2、对于单向传输的网络流数据经过协议剥离后得到裸数据,文件则按照上述步骤S1中合并的待发送新文件以固定长度拆分成裸数据的形式,然后对裸数据用单向传输私有协议进行封装,生成待传输的数据包;

S3、当同时发送多个文件,或同时发送不同传输类型的数据包时,将多个待传输任务分别利用上述步骤S2中的单向传输私有协议封装成多个数据包,并采用多通道协程传输控制方法来构建数据包待发送消息列队;

多通道协程传输控制方法:根据不同待传输任务的所需带宽比例要求编程划分出多个对应长度的缓存通道,不同任务的数据包顺序被相对应的通道接收后,使用GO语言协程技术同时传输所有通道中的数据到待发送缓存中;

S4、上述步骤S3中待发送缓存中的全部数据包依次通过单向传输发送至光闸内端,单个数据包到达光闸内端后编程循环接收数据包并直接存入接收通道缓存中,后续编程使用协程方法循环获取接收通道缓存中的数据包,并按顺序还原成多个接收任务;

S5、将上述步骤S4中接收并还原成的多个接收任务依次整理为一个接收新文件集合,对接收新文件集合按照上述步骤S1中的固定大小方式拆分解包为带编码的新文件集合并做MD5值校验,校验合格后还原为小文件集合,还原后的小文件集合通过合并得到源文件,文件传输完成。

2.根据权利要求1所述的安全传输与控制方法,其特征在于:所述步骤S1中,将源文件以固定大小方式拆分是将待传输文件根据文件的大小设定,拆分为固定数量的小文件集合;具体拆分文件方法为:为保证纠错和还原效率并且满足丢包率小于纠错率,所以满足其中丢包率根据单向传输光闸系统硬件的传输性能决定;对较小的待传输文件来说,又需要满足拆分文件的大小大于单个数据包大小,其中单个数据包大小是根据不同硬件环境测试中最佳传输效率时使用的数据包大小来决定的。

3.根据权利要求1所述的安全传输与控制方法,其特征在于:所述步骤S1中,编码后的新文件集合中包含新生成的多个纠错文件,多个纠错文件的数量根据纠错强度自行设定,纠错能力的指标为FEC编码增益,每个纠错文件使用不同的FEC编码增益。

4.根据权利要求1所述的安全传输与控制方法,其特征在于:所述步骤S2中,所述待传输的数据包结构的内部包括类型编码字节、重传数字节、序列数字节、校验位字节、任务ID字节和数据存储空间;所述类型编码字节分为传输类型编码和数据类型编码,传输类型编码指代该数据包传输的是文件或流数据类型,数据类型编码标识该数据包内所包含的数据的应用类型。

5.根据权利要求1所述的安全传输与控制方法,其特征在于:所述步骤S3中,多个相应长度的缓存通道包括10位通道、20位通道、40位通道、60位通道和80位通道,不同待传输任务的数据包按照传输速率放入相应长度的缓存通道内,

6.根据权利要求1所述的安全传输与控制方法,其特征在于:所述步骤S4中,待发送缓存中的单个数据包大小的最优值介于1500~9000字节之间,相应单向传输所用网卡的最大传输单元MTU设置为:单向传输所用网卡的MTU值=单个数据包最优值+8。

7.根据权利要求1所述的安全传输与控制方法,其特征在于:所述步骤S5中,做MD5值校验的具体方法为,将拆分解包后带编码的新文件集合中每个小文件的MD5值依次与上述步骤S1中编码附加的值进行对照,校验MD5值是否一致,若不一致则舍弃该份小文件,使用纠错还原算法恢复为还原后的小文件集合。

8.根据上述任一权利要求中所述的安全传输与控制方法所基于的安全传输与控制系统,其特征在于:所述安全传输与控制系统包括基于单向光闸构建的传输系统,以及应用在传输系统中的控制系统;

传输系统由位于光闸外端的外网用户端、位于光闸内端的内网用户端、以及连通两端用户的单向传输所用网卡构成,外网用户端传输文件前和内网用户端接收文件后均采用前向纠错编码FEC技术进行文件传输的可靠性验证;

控制系统包括:用于处理发送光闸内端之前文件的单向传输数据包,构建多通道协程传输控制的数据包待发送消息列队,以及协程循环处理发送到光闸内端后的后续数据包。

说明书 :

一种基于单向光闸的高可靠性安全传输与控制系统及方法

技术领域

[0001] 本发明涉及一种基于涉密网络与非涉密网络之间的安全传输方法,具体涉及一种基于单向光闸的高可靠性安全传输与控制系统及方法,属于单向光闸信息传输技术领域。

背景技术

[0002] “光闸”系统命名也是部分学者和厂商根据“网闸”的命名由来的,但是在学术上该类系统普遍使用“单向安全系统”、“单向安全传输系统”、“单向传输系统”等不同的称呼。目前涉及此方面的研究较多,但是大多实现技术仍存在传输不完整、传输无过滤、传输性能不高的问题。
[0003] 因此,在涉密网络与非涉密网络之间开发一套具备单向、安全、高效、稳定等特性的单向安全传输系统具有实际应用背景和重要意义。

发明内容

[0004] 本发明的目的是:克服现有技术中存在的不足,提供一种基于单向光闸的高可靠性安全传输与控制系统及方法,本发明方法通过前向纠错编码技术减小传输计算量和丢包纠正弥补,确保传输文件的可靠性;通过封装单向传输私有协议使传输更加稳定,提高传输效率,达到安全传输的可靠性和高效性目的。
[0005] 为实现上述目的,本发明采用了以下技术方案:一种基于单向光闸的高可靠性安全传输与控制方法,包括以下步骤:
[0006] S1、在使用光闸对多种类型的源内容进行单向传输前,在光闸外端先将待传输文件基于前向纠错FEC编码技术进行前向纠错的编码操作;
[0007] 编码操作包括:将源文件拆分成固定大小的小文件集合,对小文件集合做前向纠错编码形成编码后的新文件集合,并在新文件集合内采用MD5校验原理对内部的每份文件加入自身文件的MD5校验值,校验编码完成后的文件集合合并为一个待发送新文件。
[0008] S2、对于单向传输的网络流数据经过协议剥离后得到裸数据,文件则按照上述步骤S1中合并的待发送新文件以固定长度拆分成裸数据的形式,然后对裸数据用单向传输私有协议进行封装,生成待传输的数据包。
[0009] S3、当同时发送多个文件,或同时发送不同传输类型的数据包时,将多个待传输任务分别利用上述步骤S2中的单向传输私有协议封装成多个数据包,并采用多通道协程传输控制方法来构建数据包待发送消息列队;
[0010] 多通道协程传输控制方法:根据不同待传输任务的所需带宽比例要求编程划分出多个对应长度的缓存通道,不同任务的数据包顺序被相对应的通道接收后,使用GO语言协程技术同时传输所有通道中的数据到待发送缓存中。
[0011] S4、上述步骤S3中待发送缓存中的全部数据包依次通过单向传输发送至光闸内端,单个数据包到达光闸内端后编程循环接收数据包并直接存入接收通道缓存中,后续编程使用协程方法循环获取接收通道缓存中的数据包,并按顺序还原成多个接收任务。
[0012] S5、将上述步骤S4中接收并还原成的多个接收任务依次整理为一个接收新文件集合,对接收新文件集合按照上述步骤S1中的固定大小方式拆分解包为带编码的新文件集合并做MD5值校验,校验合格后还原为小文件集合,还原后的小文件集合通过合并得到源文件,文件传输完成。
[0013] 所述步骤S1中,将源文件以固定大小方式拆分是将待传输文件根据文件的大小设定,拆分为固定数量的小文件集合。具体拆分文件方法为:为保证纠错和还原效率并且满足丢包率小于纠错率,所以满足纠错文件数/拆分文件数>丢包率,其中丢包率根据单向传输光闸系统硬件的传输性能决定;对较小的待传输文件来说,又需要满足拆分文件的大小大于单个数据包大小,其中单个数据包大小是根据不同硬件环境测试中最佳传输效率时使用的数据包大小来决定的。
[0014] 所述步骤S1中,编码后的新文件集合中包含新生成的多个纠错文件,多个纠错文件的数量根据纠错强度自行设定,纠错能力的指标为FEC编码增益,每个纠错文件使用不同的FEC编码增益。
[0015] 所述步骤S2中,所述待传输的数据包结构的内部包括类型编码字节、重传数字节、序列数字节、校验位字节、任务ID字节和数据存储空间;所述类型编码字节分为传输类型编码和数据类型编码,传输类型编码指代该数据包传输的是文件或流数据类型,数据类型编码标识该数据包内所包含的数据的应用类型。
[0016] 所述步骤S3中,多个相应长度的缓存通道包括10位通道、20位通道、40位通道、60位通道和80位通道,不同待传输任务的数据包按照传输速率放入相应长度的缓存通道内,传输速率=放入通道位数/所有通道位数和。
[0017] 所述步骤S4中,待发送缓存中的单个数据包大小的最优值介于1500 9000字节之~间,相应单向传输所用网卡的最大传输单元MTU设置为:单向传输所用网卡的MTU值=单个数据包最优值+8。
[0018] 所述步骤S5中,做MD5值校验的具体方法为,将拆分解包后带编码的新文件集合中每个小文件的MD5值依次与上述步骤S1中编码附加的值进行对照,校验MD5值是否一致,若不一致则舍弃该份小文件,使用纠错还原算法恢复为还原后的小文件集合。
[0019] 一种基于单向光闸的高可靠性安全传输与控制系统,所述安全传输与控制系统包括基于单向光闸构建的传输系统,以及应用在传输系统中的控制系统;传输系统由位于光闸外端的外网用户端、位于光闸内端的内网用户端、以及连通两端用户的单向传输所用网卡构成,外网用户端传输文件前和内网用户端接收文件后均采用前向纠错编码FEC技术进行文件传输的可靠性验证;控制系统包括用于处理发送到光闸内端之前文件的单向传输私有协议和多通道协程传输控制方法,以及发送到光闸内端后使用协程循环处理后续数据包的方法。
[0020] 本发明的有益效果是:
[0021] 1)本发明在单向传输底层采用用户态零拷贝技术提高传输效率,通过单向传输将数据包收发缓存,并采用PMD技术(基于用户态的轮询机制)直接映射到用户内存空间中,节省了数据包从网卡缓存拷贝到内核空间的步骤,不需要频繁内存拷贝和系统调用,能够让单向传输所用网卡发送包的时钟周期从2K‑4K减小到80,从而显著提高单向传输所用网卡设备的数据发送效率。
[0022] 2)本发明对单向传输的数据包采用协议剥离技术提高传输性能,并封装了单向传输私有协议,能够减小数据包大小,使传输更加稳定,且数据传输效率更高。
[0023] 3)本发明采用传输前的前向纠错编码技术保证数据传输中的可靠性,既减小了传输的计算量,大大减少底层收发包程序处理纠错编码所耗损的性能,提高了传输效率,又实现了对丢包后对错误编码的纠正弥补,并能够验证并恢复丢失的数据包所涵盖的内容,在丢包率低的环境中传输可靠性和高性能同时兼顾。
[0024] 4)本发明中使用多通道协程传输控制方法对待传输数据包列队,实现单网卡的高效可控并发数据流;可解决使用单列队网卡并行发送多种数据抢占带宽的现象,并且可以精准控制带宽的问题;这种传输控制策略既能够为各个任务的传输带宽提供保障,当某个任务停止或者达不到设定带宽流量时又能够充分利用全部带宽高效传输其他任务。

附图说明

[0025] 图1为本发明方法中前向纠错编码方式的流程图;
[0026] 图2为本发明方法中封装单向传输私有协议的待传输的数据包结构图;
[0027] 图3为本发明方法中多任务单向传输的控制策略流程图。

具体实施方式

[0028] 下面结合附图和具体实施例对本发明作进一步的解释说明。
[0029] 实施例:如图1‑3所示,本发明提供一种基于单向光闸的高可靠性安全传输与控制系统及方法,安全传输与控制系统包括基于单向光闸构建的传输系统,以及应用在传输系统中的控制系统;
[0030] 传输系统由位于光闸外端的外网用户端、位于光闸内端的内网用户端、以及连通两端用户的单向传输所用网卡构成,外网用户端传输文件前和内网用户端接收文件后均采用前向纠错编码FEC技术进行文件传输的可靠性验证;
[0031] 控制系统包括用于处理发送到光闸内端之前文件的单向传输私有协议和多通道协程传输控制方法,以及发送到光闸内端后使用协程循环处理后续数据包的方法。
[0032] 在使用光闸进行单向传输的场景中,一般会对多种类型的源内容进行单向传输操作,但是最终在通过单向光闸传输的时候都会以数据流的方式通过,然后在光闸内端再以一定的方式还原源内容或发送至目标服务器。
[0033] 基于单向光闸的高可靠性安全传输与控制方法,包括以下步骤:
[0034] S1、在使用光闸对多种类型的源内容进行单向传输前,在光闸外端先将待传输文件基于前向纠错FEC编码技术进行前向纠错的编码操作;
[0035] 编码操作包括:将源文件拆分成固定大小的小文件集合,对小文件集合做前向纠错编码形成编码后的新文件集合,并在新文件集合内采用MD5校验原理对内部的每份文件加入自身文件的MD5校验值来确定该文件的完整性,校验编码完成后的文件集合合并为一个待发送新文件。
[0036] 将源文件以固定大小方式拆分是将待传输文件根据文件的大小设定,拆分为固定数量的小文件集合。具体拆分文件方法为:为保证纠错和还原效率并且满足丢包率小于纠错率,所以满足纠错文件数/拆分文件数>丢包率,其中丢包率根据单向传输光闸系统硬件的传输性能决定;对较小的待传输文件来说,又需要满足拆分文件的大小大于单个数据包大小,其中单个数据包大小是根据不同硬件环境测试中最佳传输效率时使用的数据包大小来决定的。
[0037] 前向纠错编码FEC技术通过在传输中加入冗余纠错码,在一定条件下通过解码可以自动纠正传输错误或者丢包产生的错误,降低接收信号的误码率BER,纠错能力的指标为FEC编码增益,该增益强度越强表示纠错性能越强,但传输带宽占用也会越大,传输文件根据大小切割成为多个纠错片段,并使用不同FEC编码增益,确保纠错能力与传输效率保持最佳比例。
[0038] 编码后的新文件集合中包含新生成的多个纠错文件,多个纠错文件的数量根据纠错强度自行设定,纠错能力的指标为FEC编码增益,每个纠错文件使用不同的FEC编码增益。
[0039] S2、对于单向传输的网络流数据经过协议剥离后得到裸数据,文件则按照上述步骤S1中合并的待发送新文件以固定长度拆分成裸数据的形式,然后对裸数据用单向传输私有协议进行封装,生成待传输的数据包。
[0040] 待传输的数据包结构的内部包括类型编码字节、重传数字节、序列数字节、校验位字节、任务ID字节和数据存储空间;其中前两个字节为类型编码,类型编码又分为传输类型编码和数据类型编码,传输类型编码指的是数据包传输的是文件还是流数据,而数据类型编码则是为了标识该数据包内所包含的数据的应用类型,如:流媒体、邮件还是DNS等其他类型数据包。
[0041] 第三个字节用来记录该数据包重传的次数,当单向光闸系统所传输的数据十分重要时,通过该标识来判断数据包多次传输数量;第4‑7个字节用来存放数据包顺序,由于单向传输的不确定性,在有有序传输需求的情况下该标识位能够用于确保数据包到达顺序正确;第8‑9字节用来校验数据包完整性;第10‑11字节用来存放任务ID;最后的数据存储空间就是存放数据的空间。
[0042] S3、当同时发送多个文件,或同时发送流应用和文件的数据包时,将多个待传输任务分别利用上述步骤S2中的单向传输私有协议封装成多个数据包,并采用多通道协程传输控制方法来构建数据包待发送消息列队;
[0043] 多通道协程传输控制方法:根据不同待传输任务的所需带宽比例要求编程划分出多个对应长度的缓存通道,不同任务的数据包顺序被相对应的通道接收后,使用GO语言协程技术同时传输所有通道中的数据到待发送缓存中,以达到控制每个任务传输速率的目的。
[0044] 多个相应长度的缓存通道包括10位通道、20位通道、40位通道、60位通道和80位通道等,不同待传输任务的数据包按照传输速率放入相应长度的缓存通道内,传输速率=放入通道位数/所有通道位数和。
[0045] S4、上述步骤S3中待发送缓存中的全部数据包依次通过单向传输发送至光闸内端,单个数据包到达光闸内端后编程循环接收数据包并直接存入接收通道缓存中,然后等待下个数据包到来,接收程序不直接对数据包处理以免影响数据接收效率产生丢包,后续编程使用协程方法循环获取接收通道缓存中的数据包,并按顺序还原成多个接收任务。
[0046] 待发送缓存中的单个数据包大小的最优值介于1500 9000字节之间,相应单向传~输所用网卡的最大传输单元MTU设置为:单向传输所用网卡的MTU值=单个数据包最优值+8;
能够平衡网卡反弹数据包耗时,以及大以太帧传输耗时最小化。
[0047] S5、将上述步骤S4中接收并还原成的多个接收任务依次整理为一个接收新文件集合,对接收新文件集合按照上述步骤S1中的固定大小方式拆分解包为带编码的新文件集合并做MD5值校验,校验合格后还原为小文件集合,还原后的小文件集合通过合并得到源文件,文件传输完成。
[0048] 做MD5值校验的具体方法为,将拆分解包后带编码的新文件集合中每个小文件的MD5值依次与上述步骤S1中编码附加的值进行对照,校验MD5值是否一致,若不一致则舍弃该份小文件,使用纠错还原算法恢复为还原后的小文件集合。
[0049] 本发明单向传输中分别通过采用用户态零拷贝技术提高传输效率、通过封装单向传输私有协议提高稳定性、通过采用传输前的前向纠错编码技术保证数据传输中的可靠性和高性能、通过使用多通道协程传输控制方法对待传输数据包列队,实现单网卡的高效可控并发数据流;构建出一种通用型高效、高可靠性的流传输控制方法。
[0050] 以上所述仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。