一种抗隐蔽通道的信息隔离方法及装置制造方法

文档序号:7810043阅读:281来源:国知局
一种抗隐蔽通道的信息隔离方法及装置制造方法
【专利摘要】一种抗隐蔽通道的网络隔离通信方法及装置;方法包括:将第一网络和第二网络通过隔离控制装置相连;当所述第一/第二接口收到第一/第二网络发送给第二/第一网络的上/下行通信数据时,将该上/下行通信数据拆分为多个作业包,发送给控制单元C1/CP的上/下行数据缓冲区;当控制单元Ci的上/下行数据缓冲区里有作业包时,控制单元Ci的中间转发模块当i不为P/1时将该作业包转发给控制单元Ci+1/Ci-1的上/下行数据缓冲区,当i为P/1时将该作业包转发给第二/第一接口;第二/第一接口将收到的作业包重组后发送给第二/第一网络。本发明在网络间进行数据交换时能够保证抗隐蔽通道特性及数据传输的高可靠性。
【专利说明】一种抗隐蔽通道的信息隔离方法及装置

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种抗隐蔽通道的信息隔离方法及装置。

【背景技术】
[0002]随着计算机和网络技术的发展,特别是云计算和物联网技术的快速发展,企业、银行、学校、政府、军队等部门均建立了自己的各种计算机网络和业务信息系统,各信息系统之间的信息安全交互需求也越发强烈。这些部门既需要高安全的网络环境,又需要数据交换及资源共享,对信息交互的实时性、可靠性、安全性等方面提出了高的要求。
[0003]网络的开放性使得网络安全和信息保密成为了一个至关重要的问题。传统的物理隔离方法通常需要以人工方式(如通过U盘、光盘等介质)将数据从一个网络导入另一网络,这种方法效率低、成本高,容易将病毒在不同网络间摆渡。尽管现在已经有防火墙、安全网关、隔离网闸等基于策略或专有协议的保护来提升网络环境的安全性,但这些技术手段还存在不足,尤其不能抵抗来自隐蔽通道的攻击,不足以满足跨网、跨行业信息系统互联和数据共享所需的安全要求。


【发明内容】

[0004]本发明要解决的技术问题是在网络间进行数据交换时如何保证抗隐蔽通道特性及数据传输的高可靠性。
[0005]为了解决上述问题,本发明提供了一种抗隐蔽通道的网络隔离通信方法,包括:
[0006]将第一网络和第二网络通过隔离控制装置相连;所述隔离控制装置包括第一接口、第二接口、P个控制单元Ci, P为正整数,i取值为从I到P的整数;所述控制单元包括中间转发模块、上行数据缓冲区及下行数据缓冲区;
[0007]当所述第一接口收到所述第一网络发送给所述第二网络的上行通信数据时,将该上行通信数据拆分为多个作业包,发送给所述控制单元C1的上行数据缓冲区;当控制单元Ci的上行数据缓冲区里有作业包时,控制单元Ci的中间转发模块当i不为P时将该作业包转发给控制单元ci+1的上行数据缓冲区,当i为P时将该作业包转发给所述第二接口 ;所述第二接口将收到的作业包重组后发送给所述第二网络;
[0008]当所述第二接口收到所述第二网络发送给所述第一网络的下行通信数据时,将该下行通信数据拆分为多个作业包,发送给所述控制单元Cp的下行数据缓冲区;当控制单元Ci的下行数据缓冲区里有作业包时,所述控制单元Ci的中间转发模块当i不为I时将该作业包转发给控制单元Cp1的下行数据缓冲区,当i为I时将该作业包转发给所述第一接口 ;所述第一接口将收到的作业包重组后发送给所述第一网络。
[0009]可选地,所述上行数据缓冲区包括:上行输入缓冲区和上行输出缓冲区;其中,所述控制单元C1的上行数据缓冲区为上行输入缓冲区,所述控制单元Cp的上行数据缓冲区为上行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个上行数据缓冲区,一个为上行输入缓冲区,用于存储从控制单元Cp1的上行数据缓冲区转发来的作业包,另一个为上行输出缓冲区,用于保存待转发给控制单元ci+1的上行数据缓冲区的作业包,所述方法还包括:控制单元Ci的中间转发模块将本控制单元的上行输入缓冲区的作业包转发给本控制单元的上行输出缓冲区;
[0010]所述下行数据缓冲区包括:下行输入缓冲区和下行输出缓冲区;其中,所述控制单元Cp的下行数据缓冲区为下行输入缓冲区,所述控制单元C1的下行数据缓冲区为下行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个下行数据缓冲区,一个为下行输入缓冲区,用于保存从控制单元ci+1的下行数据缓冲区转发的作业包,另一个为下行输出缓冲区,用于保存待转发给控制单元Cp1的下行数据缓冲区的作业包,所述方法还包括:控制单元Ci的中间转发模块将本控制单元的下行输入缓冲区的作业包转发给本控制单元的下行输出缓冲区。
[0011]可选地,所述的方法还包括:
[0012]当控制单元Ci的中间转发模块要将作业包转发给本控制单元中的上行/下行输入缓冲区时,先对该作业包进行正确性校验;校验通过后存入相应的上行/下行输入缓冲区;如果校验没通过,则申请重传。
[0013]可选地,所述作业包内包含:包控制信息;所述包控制信息包括:作业包序号、状态标志、网络连接标识符;
[0014]所述作业包序号用于对作业包进行重组;所述状态标志用于区分当前作业包的处理状态,所述网络连接标识符用于区分上行和下行的不同数据流;
[0015]所述方法还包括:
[0016]所述中间控制模块将校验通过的作业包存入所述上行/下行输入缓冲区时,如果所述上行/下行输入缓冲区空间不足,则按所述作业包序号淘汰所述上行/下行输入缓冲区中已完成转发的作业包;当不能通过淘汰作业包腾出空间时,等待完成所述上行/下行输入缓冲区中的作业包转发,淘汰已转发作业包腾出足够空闲空间后,再保存接收的作业包。
[0017]可选地,所述作业包还包括:校验码和纠错码;
[0018]所述拆分为多个作业包的步骤后还包括:
[0019]对于拆分得到的各作业包,分别根据该作业包中预定位置的多个字节计算校验值,将计算结果作为校验码加入该作业包;分别对每个作业包中的数据段计算其纠错码,将纠错码加入该作业包;
[0020]所述对作业包进行正确性校验的步骤包括:
[0021]根据作业包中预定位置的多个字节计算校验值,将计算出的校验值与作业包携带的校验码进行对比,相同则校验通过,不同则校验未通过;
[0022]当校验未通过时,若错误在所述纠错码允许的范围内,则基于所述纠错码恢复出正确的数据;若错误超出纠错码允许的范围,则申请重传作业包。
[0023]本发明还提供了一种抗隐蔽通道的网络隔离通信装置,包括:
[0024]第一接口、第二接口、P个控制单元Ci, P为正整数,i为控制单元的序号,取值是从I到P的整数;所述控制单元各包括中间转发模块、上行数据缓冲区及下行数据缓冲区;
[0025]所述第一接口用于当收到第一网络发送给第二网络的上行通信数据时,将该上行通信数据拆分为多个作业包,发送给控制单元C1的上行数据缓冲区;收到所述控制单元C1的中间转发模块转发的作业包后,重组成下行通信数据,发送给所述第一网络;
[0026]所述第二接口用于当收到所述第二网络发送给所述第一网络的下行通信数据时,将该下行通信数据拆分为多个作业包,发送给控制单元Cp的下行数据缓冲区;收到所述控制单元Cp的中间转发模块转发的作业包后,重组成所述上行通信数据,发送给所述第二网络;
[0027]所述控制单元Ci的中间转发模块用于当本控制单元Ci的上行数据缓冲区里有作业包时,i不为P时将该作业包转发给控制单元ci+1的上行数据缓冲区,i为P时将该作业包转发给所述第二接口 ;当本控制单元Ci的下行数据缓冲区里有作业包时,i不为I时将该作业包转发给控制单元Cp1的下行数据缓冲区,当i为I时将该作业包转发给所述第一接口。
[0028]可选地,所述上行数据缓冲区包括:上行输入缓冲区和上行输出缓冲区;其中,所述控制单元C1的上行数据缓冲区为上行输入缓冲区,所述控制单元Cp的上行数据缓冲区为上行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个上行数据缓冲区,一个为上行输入缓冲区,用于存储从控制单元Cp1的上行数据缓冲区转发来的作业包,另一个为上行输出缓冲区,用于保存待转发给控制单元Ci+1的上行数据缓冲区的作业包;
[0029]所述下行数据缓冲区包括:下行输入缓冲区和下行输出缓冲区;其中,所述控制单元Cp的下行数据缓冲区为下行输入缓冲区,所述控制单元C1的下行数据缓冲区为下行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个下行数据缓冲区,一个为下行输入缓冲区,用于保存从控制单元ci+1的下行数据缓冲区转发的作业包,另一个为下行输出缓冲区,用于保存待转发给控制单元Cg的下行数据缓冲区的作业包;
[0030]所述控制单元Ci的中间转发模块还用于当本控制单元中有两个上行数据缓冲区时,将本控制单元的上行输入缓冲区的作业包转发给本控制单元的上行输出缓冲区;当本控制单元中有两个下行数据缓冲区时,将本控制单元的下行输入缓冲区的作业包转发给本控制单元的下行输出缓冲区。
[0031]可选地,所述控制单元Ci的中间转发模块还用于在要将作业包转发给本控制单元中上行/下行输入缓冲区时,先对该作业包进行正确性校验;校验通过后存入相应的上行/下行输入缓冲区;如果校验没通过,则申请重传。
[0032]可选地,所述第一接口、第二接口还用于在拆分所述作业包后,在所述作业包中增加包控制信息;所述包控制信息包括:作业包序号、状态标志、网络连接标识符;所述作业包序号用于对作业包进行重组;所述状态标志用于区分作业包的处理状态,所述网络连接标识符用于区分上行和下行的不同数据流;
[0033]所述中间转发模块还用于在将校验通过的作业包存入所述上行/下行输入缓冲区时,如果所述上行/下行输入缓冲区空间不足,则按所述作业包序号淘汰所述上行/下行输入缓冲区中已完成转发的作业包;当不能通过淘汰作业包腾出空间时,等待完成所述上行/下行输入缓冲区中的作业包转发,淘汰已转发作业包腾出足够空闲空间后,再保存接收的作业包。
[0034]可选地,所述第一接口、第二接口还用于对于拆分得到的各作业包,分别根据该作业包中预定位置的多个字节计算校验值,将计算结果作为校验码加入该作业包;分别对每个作业包中的数据段计算其纠错码,将纠错码加入该作业包;
[0035]所述中间转发模块对作业包进行正确性校验是指:
[0036]根据作业包中预定位置的多个字节计算校验值,将计算出的校验值与作业包携带的校验码进行对比,相同则校验通过,不同则校验未通过;当校验未通过时,若错误在所述纠错码允许的范围内,则基于所述纠错码恢复出正确的数据;若错误超出纠错码允许的范围,则申请重传作业包。
[0037]本发明的一个实施例可保证在硬件上将两个网络完全隔离开;本发明的又一个实施例通过每一次转发前必须校验成功,保证数据传输具有100%的可靠性。

【专利附图】

【附图说明】
[0038]图1为隔离控制装置(P个控制单元时)结构示意框图;
[0039]图2为隔离控制装置(P个控制单元时)内部上行数据处理过程示意框图;
[0040]图3为隔离控制装置(3个控制单元时)结构示意框图;
[0041]图4为隔离控制装置(3个控制单元时)内部上行数据处理过程示意框图;
[0042]图5为上行通信数据处理过程流程图。

【具体实施方式】
[0043]下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0044]需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0045]实施例一、一种抗隐蔽通道的网络隔离通信方法,包括:
[0046]将第一网络和第二网络通过隔离控制装置相连;所述隔离控制装置包括与所述第一网络相连的第一接口、与所述第二网络相连的第二接口、P个控制单元Ci, P为正整数,i为控制单元的序号,取值是从I到P的整数;所述控制单元各包括中间转发模块、上行数据缓冲区及下行数据缓冲区;
[0047]当所述第一接口收到所述第一网络发送给所述第二网络的上行通信数据时,将该上行通信数据拆分为多个作业包,发送给所述控制单元C1的上行数据缓冲区;当控制单元Ci的上行数据缓冲区里有作业包时,控制单元Ci的中间转发模块当i不为P时将该作业包转发给控制单元ci+1的上行数据缓冲区,当i为P时将该作业包转发给所述第二接口 ;所述第二接口将收到的作业包重组后发送给所述第二网络;
[0048]当所述第二接口收到所述第二网络发送给所述第一网络的下行通信数据时,将该下行通信数据拆分为多个作业包,发送给所述控制单元Cp的下行数据缓冲区;当控制单元Ci的下行数据缓冲区里有作业包时,所述控制单元Ci的中间转发模块当i不为I时将该作业包转发给控制单元Cp1的下行数据缓冲区,当i为I时将该作业包转发给所述第一接口 ;所述第一接口将收到的作业包重组后发送给所述第一网络。
[0049]本实施例中,所述第一网络A与第一接口之间、第二网络B与第二接口之间的通信数据格式可以遵从网络A或网络B的通信协议,也可以为重新自定义的私有协议。所述网络隔离通信是指需要进行信息交互的两个完全独立的网络:第一网络A、第二网络B通过一个隔离控制装置M进行通信,第一网络A和第二网络B之间的所有通信都必须经由该隔离控制装置M来完成,所有要在第一网络A、第二网络B之间传递的数据,都必须首先进入隔离控制装置M ;所述第一网络A、第二网络B与隔离控制装置M之间可以有多种接口方式;在通信数据传输的整个过程中,对传输的通信数据可进行各种处理和变换,以实现各种过滤和阻断。
[0050]本实施例中,所述隔离控制装置是将所述第一网络、第二网络之间的通信数据都拆分成作业包,以所述作业包为单位进行分组交换;同一个作业包在某一时刻只能在相邻的控制单元(;和(;+1(1 = 1,…,P — I)之间接力传递,任意非相邻的两个控制单元之间不能进行直接通信,可保证非相邻的控制单元不能控制对方在数据传输中的状态。不同的作业包可以同时进行转发通信,上行下行可以全双工或半双工操作。
[0051]本实施例中,各控制单元中的上行数据缓冲区和下行数据缓冲区完全独立;各上行数据缓冲区和各下行数据缓冲区可形成两条完全隔离的读写通道,在硬件上将两个网络完全隔离开。
[0052]本实施例中,“第一网络”、“第二网络”中的“第一”、“第二”是为了区分不同网络,具体第一、第二网络各是哪个网络,可自行规定;比如第一网络是专用网络,第二网络是公共网络;同样地,“上行/下行通信数据”、“上行/下行数据缓冲区”中的“上行/下行”也是为了区分不同流向(从第一网络流向第二网络,和从第二网络流向第一网络)。
[0053]本实施例的一种实施方案中,所述第一、第二接口可以包括接口总线、接口处理程序等,不局限于PC1-E总线、串口、以太网网口等形式,可在具体设计时,视具体应用场景及需求而定,用以完成和相邻控制单元或所连接网络之间的数据交换。
[0054]本实施例的一种实施方案中,所述上行/下行数据缓冲区可以但不限于是异步FIFO存储器,读写分别采用相互异步的不同时钟,以便于能够快速的插入数据校验码、纠错码和开启重发机制。
[0055]本实施例的一种实施方式中,所述上行数据缓冲区可以包括:上行输入缓冲区和上行输出缓冲区;其中,所述控制单元仏的上行数据缓冲区为上行输入缓冲区,所述控制单元Cp的上行数据缓冲区为上行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个上行数据缓冲区,一个为上行输入缓冲区,用于存储从控制单元Cp1的上行数据缓冲区转发来的作业包,另一个为上行输出缓冲区,用于保存待转发给控制单元Ci+1的上行数据缓冲区的作业包,所述方法还包括:控制单元(;的中间转发模块将本控制单元的上行输入缓冲区的作业包转发给本控制单元的上行输出缓冲区;
[0056]所述下行数据缓冲区可以包括:下行输入缓冲区和下行输出缓冲区;其中,所述控制单元Cp的下行数据缓冲区为下行输入缓冲区,所述控制单元C1的下行数据缓冲区为下行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个下行数据缓冲区,一个为下行输入缓冲区,用于保存从控制单元Ci+1的下行数据缓冲区转发的作业包,另一个为下行输出缓冲区,用于保存待转发给控制单元Cp1的下行数据缓冲区的作业包,所述方法还包括:控制单元Ci的中间转发模块将本控制单元的下行输入缓冲区的作业包转发给本控制单元的下行输出缓冲区。
[0057]本实施例的一种实施方式中,如图1、2所示,对于有两个上行数据缓冲区的各所述控制单元CiQ = 2,……,p_l),其中i = 2,p-l时有所不同。当i = 2时,其上行输入缓冲区S3用于存储从控制单元C1的上行输入缓冲区S1转发来的作业包;其上行输出缓冲区S6用于保存待转发给控制单元C3的上行输入缓冲区的作业包。当i = 3,……,p-2时,其上行输入缓冲区用于存储从控制单元Cp1的上行输出缓冲区转发来的作业包;其上行输出缓冲区用于保存待转发给控制单元Cf1的上行输入缓冲区的作业包。i = p-1时,其上行输入缓冲区S2+(p_3)*4+1用于存储从控制单元Cp_2的上行输出缓冲区转发来的作业包;其上行输出缓冲区 §2+(ρ-3) *4+4 用于保存待转发给控制单元Cp的上行输出缓冲区
§2+(ρ—2) *4+2 的作业包。
[0058]当P = 3时,如图3、4所示,则仅有控制单元C2有两个上行数据缓冲区:S3和S6,其上行输入缓冲区S3用于存储从控制单元C1的上行输入缓冲区S1转发来的作业包;其上行输出缓冲区S6用于保存待转发给控制单元C3的上行输出缓冲区S8的作业包。
[0059]本实施例的一种实施方式中,如图1、2所示,对于有两个下行数据缓冲区的各所述控制单元CiQ = 2,......,p-1),其中i = 2, p-1时有所不同。当i = p_l时,其下行输入缓冲区 §2+(ρ-3) *4+2 用于存储从控制单元Cp的下行输入缓冲区
§2+(ρ-2)*4+1 转发来的作业包;
其下行输出缓冲区 §2+(P-3) *4+3 用于保存待转发给控制单元Cp_2的下行数据缓冲区的作业包。当i = 3,……,P-2时,其下行输入缓冲区用于存储从控制单元Ci+1的下行输出缓冲区转发来的作业包;其下行输出缓冲区用于保存待转发给控制单元C^1的下行输入缓冲区的作业包。i = 2时,其下行输入缓冲区S4用于存储从控制单元C3的下行输出缓冲区转发来的作业包;其下行输出缓冲区S5用于保存待转发给控制单元C1的下行输出缓冲区S2的作业包。
[0060]当P = 3时,如图3、4所示,则仅有控制单元C2有两个下行数据缓冲区,S4和S5,其下行输入缓冲区S4用于存储从控制单元C3的下行输入缓冲区S7转发来的作业包;其下行输出缓冲区S5用于保存待转发给控制单元C1的下行输出缓冲区S2的作业包。
[0061]本实施例的一种实施方式中所述方法还可以包括:
[0062]当控制单元Ci的中间转发模块要将作业包转发给本控制单元中的上行/下行输入缓冲区时,先对该作业包进行正确性校验;校验通过后存入相应的上行/下行输入缓冲区;如果校验没通过则申请重传。
[0063]本实施方式中,通信数据(将每一次发送的通信数据作为一个数据流)以作业包的方式流水进入隔离控制装置M,相邻的控制单元之间传递的数据都需要进行正确性校验,作业包只有在被控制单元正确接收(校验通过)后才会继续在后续的两个控制单元(以上行数据为例,依次为(:2和(:3、…、Cim和Cp)之间传递,否则,会启动当前两个相邻控制单元之间的作业包重传机制,请求重传当前作业包,直到收到的作业包完全正确为止;最终校验正确后的作业包再以流水线的方式流出;如果作业包中有所属数据流的标识和表示作业包顺序的编号,那么流出的作业包的顺序与流入的作业包顺序可以不一致,可保证数据传输具有100%的可靠性。
[0064]本实施方式的一种备选方案中,所述作业包内除了数据载荷外,还可以包含:包控制信息;所述包控制信息是指作业包在隔离控制装置M中被转发或存储的过程中,可作为对其进行控制的管理信息的各有效字段。
[0065]所述包控制信息具体可以包括:作业包序号、状态标志、网络连接标识符等字段。
[0066]本备选方案中,所述作业包可包含固定长度的包头和可变长度的数据区,作业包的包头是拆分作业包时增加的,在重组时删除,用于承载所述包控制信息,采用固定长度,如定义为16字节;当本实施例的方法应用在不同系统中时,可以由系统设计者自定义包头的长度。作业包的数据区长度采用固定长度范围,即数据区的长度有最小长度和最大长度限制,如128?2K字节内的任意值。当作业包长度为变长时,包头中还可携带作业包中数据区的长度。
[0067]在有的备选方案中,所述作业包也可以是固定长度的,即包含固定长度的数据区;放在最后一个拆分出的作业包中的数据如果长度不够,可以用无意义的字节填充,在重组时再删除。
[0068]借助于所述作业包序号,可将接收到的作业包进行重组,重组出正确的通信数据;当作业包校验未通过需要重传时,可根据作业包序号覆盖缓冲区中相应序号的作业包,重新利用缓冲区资源;也可根据作业包序号请求作业包重传;还可以根据作业包序号判断出已经正确接收的作业包,从而清理并腾出更多的缓冲区空间。利用所述状态标志来区分作业包的处理状态,比如所述状态标志可以用来判断所属的作业包是否为该作业包所属数据流的所有作业包中的最后一个作业包,从而判断属于同一数据的所有作业包是否已经接收完毕;利用网络连接标识符区分上行和下行的不同数据流,确定作业包与数据流之间的对应关系;所述网络连接标识符可以但不限于为以太网协议栈套接字ID、TCP/IP协议套接字ID等。
[0069]所述方法还可以包括:
[0070]所述中间控制模块将校验通过的作业包存入所述上行/下行输入缓冲区时,如果所述上行/下行输入缓冲区空间不足,则按所述作业包序号淘汰所述上行/下行输入缓冲区中已完成转发的作业包;当不能通过淘汰作业包腾出空间时,等待完成所述上行/下行输入缓冲区中的作业包转发,淘汰已转发作业包腾出足够空闲空间后,再保存接收的作业包。
[0071]本实施方式的一种备选方案中,所述作业包还可以包括:校验码;另外还可以进一步包括纠错码;所述拆分为多个作业包的步骤后还可以包括:
[0072]对于拆分得到的各作业包,分别根据该作业包中预定位置的多个字节计算校验值,将计算结果作为校验码加入该作业包;分别对每个作业包中的数据段计算其纠错码,将纠错码加入该作业包。
[0073]所述对作业包进行正确性校验的步骤具体可以包括:
[0074]根据作业包中预定位置的多个字节计算校验值,将计算出的校验值与作业包携带的校验码进行对比,相同则校验通过,不同则校验未通过。
[0075]本备选方案中,隔离控制装置M的各控制单元都采用同样的方法来确保接收到的作业包完全正确。
[0076]本备选方案中,所述方法还可以包括:
[0077]当校验未通过时,若错误在所述纠错码允许的范围内,则基于所述纠错码恢复出正确的数据;若错误超出纠错码允许的范围,则申请重传作业包。
[0078]若经纠错,可计算出正确的作业包,则将正确的作业包存入输入数据缓冲区,并进行后续的转发。作业包携带纠错码是为了减少每阶段作业包的重传次数。基于作业包全程校验可便于随时判断所传输的作业包的正确性,保证仅将正确的作业包继续传输,避免当作业包出错时需回溯至作业包源获取正确作业包,提高了传输效率。
[0079]实施例二、一种抗隐蔽通道的网络隔离通信装置,包括:
[0080]第一接口 D1、第二接口 D2、P个控制单元CiQ = 1,…,P),P为正整数,i为控制单元的序号,取值是从I到P的整数;所述控制单元各包括中间转发模块、上行数据缓冲区及下行数据缓冲区;
[0081]所述第一接口 D1用于当收到第一网络发送给第二网络的上行通信数据时,将该上行通信数据拆分为多个作业包,发送给控制单元C1的上行数据缓冲区;收到所述控制单元C1的中间转发模块转发的作业包后,重组成下行通信数据,发送给所述第二网络;
[0082]当所述第二接口 D2用于当收到所述第二网络发送给所述第一网络的下行通信数据时,将该下行通信数据拆分为多个作业包,发送给控制单元Cp的下行数据缓冲区;收到所述控制单元Cp的中间转发模块转发的作业包后,重组成所述下行通信数据,发送给所述第二网络;
[0083]所述控制单元Ci的中间转发模块用于当本控制单元Ci的上行数据缓冲区里有作业包时,i不为P时将该作业包转发给控制单元ci+1的上行数据缓冲区,i为P时将该作业包转发给所述第二接口 D2 ;当本控制单元Ci的下行数据缓冲区里有作业包时,i不为I时将该作业包转发给控制单元Cp1的下行数据缓冲区,当i为I时将该作业包转发给所述第一接口 D10
[0084]本实施例的一种实施方式中,所述上行数据缓冲区可以包括:上行输入缓冲区和上行输出缓冲区;
[0085]上行输入缓冲区,用于存储由中间转发模块转发的来自第一接口 D1或来自控制单元CpJ当i = 2时)的上行输入缓冲区的作业包,或来自控制单元Cp1 (当i = 3,..., P时)的上行输出缓冲区的作业包。
[0086]上行输出缓冲区,用于存储经由中间转发模块转发的来自本控制单元(当i =2,…,P-1时)中上行输入缓冲区中存储的作业包、或来自控制单元Cp1(当i = P时)的上行输出缓冲区的作业包。
[0087]具体而言,所述控制单元C1的上行数据缓冲区为上行输入缓冲区,所述控制单元Cp的上行数据缓冲区为上行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个上行数据缓冲区,一个为上行输入缓冲区,用于存储从控制单元Cp1的上行数据缓冲区转发来的作业包,另一个为上行输出缓冲区,用于保存待转发给控制单元Ci+1的上行数据缓冲区的作业包;
[0088]所述下行数据缓冲区可以包括:下行输入缓冲区和下行输出缓冲区;
[0089]下行输入缓冲区,用于存储由中间转发模块转发的来自第二接口 D2或来自控制单元Ci+1(当i = P-1时)的下行输入缓冲区的作业包,或来自控制单元Ci+1(当i = I,...,P-2时)的下行输出缓冲区的作业包。
[0090]下行输出缓冲区,用于存储由中间转发模块转发的来自本控制单元(当i = 2,…,P-1时)中下行输入缓冲区中存储的作业包、或来自控制单元ci+1(当i = I时)的下行输出缓冲区的作业包。
[0091]具体而言,所述控制单元Cp的下行数据缓冲区为下行输入缓冲区,所述控制单元C1的下行数据缓冲区为下行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个下行数据缓冲区,一个为下行输入缓冲区,用于保存从控制单元ci+1的下行数据缓冲区转发的作业包,另一个为下行输出缓冲区,用于保存待转发给控制单元Cp1的下行数据缓冲区的作业包;
[0092]所述控制单元Ci的中间转发模块还用于当本控制单元中有两个上行数据缓冲区时,将本控制单元的上行输入缓冲区的作业包转发给本控制单元的上行输出缓冲区;当本控制单元中有两个下行数据缓冲区时,将本控制单元的下行输入缓冲区的作业包转发给本控制单元的下行输出缓冲区。
[0093]本实施例的一种实施方式中,所述控制单元Ci的中间转发模块还用于在要将作业包转发给本控制单元中上行/下行输入缓冲区时,先对该作业包进行正确性校验;校验通过后存入相应的上行/下行输入缓冲区;如果校验没通过则申请重传。
[0094]本实施方式的一种备选方案中,所述第一接口、第二接口还可以用于在拆分所述作业包后,在所述作业包中增加包控制信息;所述包控制信息包括:作业包序号、状态标志、网络连接标识符;所述作业包序号用于对作业包进行重组;所述状态标志用于区分作业包的处理状态,所述网络连接标识符用于区分上行和下行的不同数据流;
[0095]所述中间转发模块还可以用于在将校验通过的作业包存入所述上行/下行输入缓冲区时,如果所述上行/下行输入缓冲区空间不足,则按所述作业包序号淘汰所述上行/下行输入缓冲区中已完成转发的作业包;当不能通过淘汰作业包腾出空间时,等待完成所述上行/下行输入缓冲区中的作业包转发,淘汰已转发作业包腾出足够空闲空间后,再保存接收的作业包。
[0096]该备选方案中,所述第一接口、第二接口还可以用于对于拆分得到的各作业包,分别根据该作业包中预定位置的多个字节计算校验值,将计算结果作为校验码加入该作业包;分别对每个作业包中的数据段计算其纠错码,将纠错码加入该作业包;
[0097]所述中间转发模块Ci对作业包进行正确性校验具体可以是指:
[0098]根据作业包中预定位置的多个字节计算校验值,将计算出的校验值与作业包携带的校验码进行对比,相同则校验通过,不同则校验未通过;当校验未通过时,若错误在所述纠错码允许的范围内,则基于所述纠错码恢复出正确的数据;若错误超出纠错码允许的范围,则申请重传作业包。
[0099]本备选方案中,在重组时依照作业包序号,将去掉包控制信息、纠错码和校验码等附加信息的纯数据重组恢复成进入该隔离控制装置M前的原始通信数据。
[0100]下面用一个具体的例子来说明本实施例。如图3所示,隔离控制装置M包括3个控制单元CpC2和C3。仅第一网络A与CpC1与C2、C2与C3、C3与第二网络B通过上述接口模式直接相连,第一网络A、第二网络B、控制单元C1、控制单元C2、控制单元C3之间不再有任何连接(即可相互交互信息的链路)。
[0101]本例子中,所述控制单元C1和C3,可以是任意的拥有自己的CPU内存和总线的独立的主控模块,此处包括上述、中间转发模块、上行输入缓冲区(C1中为Si)、上行输出缓冲区(C3中为S8)、下行输入缓冲区(C3中为S7)、下行输出缓冲区(C1中为S2)。
[0102]所述控制单元C2,此处为FPGA隔离卡,如图3所示,包括上述中间转发模块、上行输入缓冲区S3、下行输入缓冲区S4、下行输出缓冲区S5、上行输出缓冲区s6。
[0103]本具体示例中,把数据缓冲区分成两组,如图4所示。上行数据缓冲区Sp S3、S6、S8为一组,S1存储来自第一网络A的作业包,S3存储来自S1的作业包,S6存储来自S3的作业包,S8存储来自S6的作业包,即该组缓冲区仅处理自第一网络A至第二网络B的作业包流;同理,下行数据缓冲区S7、S4、S5、S2为一组,仅处理自第二网络B至第一网络A的作业包流。这两条完全隔离的读写通道,可同时工作,互不干扰,将A、B两个网络在硬件上完全隔离开。
[0104]第一接口 D1遵从通信接口进行转发,按照相应的通信协议传输之后,确保数据的正确性。
[0105]在本例子中,当来自第一网络A的数据要经由隔离装置M进入第二网络B时,如图4、5所示,可包括如下步骤:
[0106]步骤1:第一接口 D1接收到来自第一网络A的输入数据流(此处数据由原通信协议保证其正确性),校验未通过则由第一网络A的协议自行处理,校验通过则将其拆分为η (η=接收到的数据长度/每个作业包中有效数据长度,每个作业包中有效数据长度固定为256字节)个作业包,并为作业包添加包头信息,包括作业包序号ID (4字节)、作业包有效数据长度Length (4字节)、状态标志(I字节,I表示当前作业包后续还有作业包,O表示当前作业包为本次拆分的最后一包作业包)。对每个作业包中的数据段计算其纠错码,添加至作业包尾部,再对当前整个作业包计算校验码,将校验码添加至作业包尾部。将组合完毕的作业包存入上行输入缓冲区
[0107]步骤2:中间转发模块将S1中存储的作业包转发至S3,S3对接收到的每一个作业包进行校验,由于作业包长度固定,故而直接从作业包包头开始提取固定长度L字节(L =4+4+1+256+纠错码长度)计算其校验值,并与作业包尾部(作业包头开始偏移L字节处)的校验码进行对比,若两值相等,则说明收到的作业包正确,直接存入S3 ;若两值不相等,则说明作业包错误,判断错误是否在纠错码的纠错能力范围内,若已超出纠错码的纠错能力,则请求重传当前序号的作业包,否则,通过纠错码计算出正确的作业包,并存入上行输入缓冲区S3。
[0108]步骤3:同步骤2,中间转发模块将S3中存储的作业包转发至S6,S6对接收到的每一个作业包进行校验,比对校验值是否若两值相等,则说明收到的作业包正确,直接存入S6 ;若两值不相等,则说明作业包错误,若已超出纠错码的纠错能力,则向S3请求重传当前序号的作业包,否则,通过纠错码计算出正确的作业包,并存入上行输出缓冲区s6。
[0109]步骤4:经同样的校验步骤,将作业包存入上行输出数据缓冲区S8。
[0110]步骤5:中间转发模块将S8中存储的作业包转发至第二接口 D2, D2经如上类似的步骤确定收到的作业包正确后,依照作业包头部的作业包序号ID及作业包状态标识,将去掉包头和包尾的数据部分遵从第二网络B的通信协议加入必要的控制信息,进行重组,恢复出进入隔离控制装置M前的符合相关协议的原始数据,并经由第二接口通过相应的通信协议机制转发至第二网络B (图4中的输出数据流)。
[0111]从第二网络B发送数据到第一网络A的过程类似,这里不再赘述。
[0112]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0113]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
【权利要求】
1.一种抗隐蔽通道的网络隔离通信方法,其特征在于,包括: 将第一网络和第二网络通过隔离控制装置相连;所述隔离控制装置包括第一接口、第二接口、P个控制单元Ci, P为正整数,i取值为从I到P的整数;所述控制单元包括中间转发模块、上行数据缓冲区及下行数据缓冲区; 当所述第一接口收到所述第一网络发送给所述第二网络的上行通信数据时,将该上行通信数据拆分为多个作业包,发送给所述控制单元C1的上行数据缓冲区;当控制单元Ci的上行数据缓冲区里有作业包时,控制单元Ci的中间转发模块当i不为P时将该作业包转发给控制单元ci+1的上行数据缓冲区,当i为P时将该作业包转发给所述第二接口 ;所述第二接口将收到的作业包重组后发送给所述第二网络; 当所述第二接口收到所述第二网络发送给所述第一网络的下行通信数据时,将该下行通信数据拆分为多个作业包,发送给所述控制单元Cp的下行数据缓冲区;当控制单元Ci的下行数据缓冲区里有作业包时,所述控制单元Ci的中间转发模块当i不为I时将该作业包转发给控制单元Cp1的下行数据缓冲区,当i为I时将该作业包转发给所述第一接口 ;所述第一接口将收到的作业包重组后发送给所述第一网络。
2.如权利要求1所述的方法,其特征在于: 所述上行数据缓冲区包括:上行输入缓冲区和上行输出缓冲区;其中,所述控制单元仏的上行数据缓冲区为上行输入缓冲区,所述控制单元Cp的上行数据缓冲区为上行输出缓冲区;当1不为I和P时,控制单元Ci中包括两个上行数据缓冲区,一个为上行输入缓冲区,用于存储从控制单元Cp1的上行数据缓冲区转发来的作业包,另一个为上行输出缓冲区,用于保存待转发给控制单元Ci+1的上行数据缓冲区的作业包,所述方法还包括:控制单元Ci的中间转发模块将本控制单元的上行输入缓冲区的作业包转发给本控制单元的上行输出缓冲区; 所述下行数据缓冲区包括:下行输入缓冲区和下行输出缓冲区;其中,所述控制单元Cp的下行数据缓冲区为下行输入缓冲区,所述控制单元C1的下行数据缓冲区为下行输出缓冲区;当i不为I和P时,控制单元Ci中包括两个下行数据缓冲区,一个为下行输入缓冲区,用于保存从控制单元Ci+1的下行数据缓冲区转发的作业包,另一个为下行输出缓冲区,用于保存待转发给控制单元C^1的下行数据缓冲区的作业包,所述方法还包括:控制单元Ci的中间转发模块将本控制单元的下行输入缓冲区的作业包转发给本控制单元的下行输出缓冲区。
3.如权利要求2所述的方法,其特征在于,还包括: 当控制单元Ci的中间转发模块要将作业包转发给本控制单元中的上行/下行输入缓冲区时,先对该作业包进行正确性校验;校验通过后存入相应的上行/下行输入缓冲区;如果校验没通过,则申请重传。
4.如权利要求2所述的方法,其特征在于: 所述作业包内包含:包控制信息;所述包控制信息包括:作业包序号、状态标志、网络连接标识符; 所述作业包序号用于对作业包进行重组;所述状态标志用于区分当前作业包的处理状态,所述网络连接标识符用于区分上行和下行的不同数据流; 所述方法还包括: 所述中间控制模块将校验通过的作业包存入所述上行/下行输入缓冲区时,如果所述上行/下行输入缓冲区空间不足,则按所述作业包序号淘汰所述上行/下行输入缓冲区中已完成转发的作业包;当不能通过淘汰作业包腾出空间时,等待完成所述上行/下行输入缓冲区中的作业包转发,淘汰已转发作业包腾出足够空闲空间后,再保存接收的作业包。
5.如权利要求4所述的方法,其特征在于,所述作业包还包括:校验码和纠错码; 所述拆分为多个作业包的步骤后还包括: 对于拆分得到的各作业包,分别根据该作业包中预定位置的多个字节计算校验值,将计算结果作为校验码加入该作业包;分别对每个作业包中的数据段计算其纠错码,将纠错码加入该作业包; 所述对作业包进行正确性校验的步骤包括: 根据作业包中预定位置的多个字节计算校验值,将计算出的校验值与作业包携带的校验码进行对比,相同则校验通过,不同则校验未通过; 当校验未通过时,若错误在所述纠错码允许的范围内,则基于所述纠错码恢复出正确的数据;若错误超出纠错码允许的范围,则申请重传作业包。
6.一种抗隐蔽通道的网络隔离通信装置,其特征在于,包括: 第一接口、第二接口、p个控制单元Ci,P为正整数,i为控制单元的序号,取值是从1到P的整数;所述控制单元各包括中间转发模块、上行数据缓冲区及下行数据缓冲区; 所述第一接口用于当收到第一网络发送给第二网络的上行通信数据时,将该上行通信数据拆分为多个作业包,发送给控制单元Ci的上行数据缓冲区;收到所述控制单元Ci的中间转发模块转发的作业包后,重组成下行通信数据,发送给所述第一网络; 所述第二接口用于当收到所述第二网络发送给所述第一网络的下行通信数据时,将该下行通信数据拆分为多个作业包,发送给控制单元Cp的下行数据缓冲区;收到所述控制单元Cp的中间转发模块转发的作业包后,重组成所述上行通信数据,发送给所述第二网络;所述控制单元Ci的中间转发模块用于当本控制单元Ci的上行数据缓冲区里有作业包时,i不为P时将该作业包转发给控制单元ci+1的上行数据缓冲区,i为P时将该作业包转发给所述第二接口 ;当本控制单元Q的下行数据缓冲区里有作业包时,i不为1时将该作业包转发给控制单元Cg的下行数据缓冲区,当i为1时将该作业包转发给所述第一接口。
7.如权利要求6所述的装置,其特征在于: 所述上行数据缓冲区包括:上行输入缓冲区和上行输出缓冲区;其中,所述控制单元仏的上行数据缓冲区为上行输入缓冲区,所述控制单元CP的上行数据缓冲区为上行输出缓冲区;当i不为1和P时,控制单元Q中包括两个上行数据缓冲区,一个为上行输入缓冲区,用于存储从控制单元Cg的上行数据缓冲区转发来的作业包,另一个为上行输出缓冲区,用于保存待转发给控制单元Ci+1的上行数据缓冲区的作业包; 所述下行数据缓冲区包括:下行输入缓冲区和下行输出缓冲区;其中,所述控制单元CP的下行数据缓冲区为下行输入缓冲区,所述控制单元仏的下行数据缓冲区为下行输出缓冲区;当i不为1和P时,控制单元Q中包括两个下行数据缓冲区,一个为下行输入缓冲区,用于保存从控制单元Ci+1的下行数据缓冲区转发的作业包,另一个为下行输出缓冲区,用于保存待转发给控制单元Cg的下行数据缓冲区的作业包; 所述控制单元(^的中间转发模块还用于当本控制单元中有两个上行数据缓冲区时,将本控制单元的上行输入缓冲区的作业包转发给本控制单元的上行输出缓冲区;当本控制单元中有两个下行数据缓冲区时,将本控制单元的下行输入缓冲区的作业包转发给本控制单元的下行输出缓冲区。
8.如权利要求7所述的装置,其特征在于: 所述控制单元Ci的中间转发模块还用于在要将作业包转发给本控制单元中上行/下行输入缓冲区时,先对该作业包进行正确性校验;校验通过后存入相应的上行/下行输入缓冲区;如果校验没通过,则申请重传。
9.如权利要求7所述的装置,其特征在于: 所述第一接口、第二接口还用于在拆分所述作业包后,在所述作业包中增加包控制信息;所述包控制信息包括:作业包序号、状态标志、网络连接标识符;所述作业包序号用于对作业包进行重组;所述状态标志用于区分作业包的处理状态,所述网络连接标识符用于区分上行和下行的不同数据流; 所述中间转发模块还用于在将校验通过的作业包存入所述上行/下行输入缓冲区时,如果所述上行/下行输入缓冲区空间不足,则按所述作业包序号淘汰所述上行/下行输入缓冲区中已完成转发的作业包;当不能通过淘汰作业包腾出空间时,等待完成所述上行/下行输入缓冲区中的作业包转发,淘汰已转发作业包腾出足够空闲空间后,再保存接收的作业包。
10.如权利要求9所述的装置,其特征在于: 所述第一接口、第二接口还用于对于拆分得到的各作业包,分别根据该作业包中预定位置的多个字节计算校验值,将计算结果作为校验码加入该作业包;分别对每个作业包中的数据段计算其纠错码,将纠错码加入该作业包; 所述中间转发模块对作业包进行正确性校验是指: 根据作业包中预定位置的多个字节计算校验值,将计算出的校验值与作业包携带的校验码进行对比,相同则校验通过,不同则校验未通过;当校验未通过时,若错误在所述纠错码允许的范围内,则基于所述纠错码恢复出正确的数据;若错误超出纠错码允许的范围,则申请重传作业包。
【文档编号】H04L1/00GK104270222SQ201410363940
【公开日】2015年1月7日 申请日期:2014年7月28日 优先权日:2014年7月28日
【发明者】李凤华, 谈苗苗, 赵甫, 李昕, 耿魁, 刘振权 申请人:中国科学院信息工程研究所, 北京航天数控系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1