单向传输(共3篇)
单向传输 篇1
0 引 言
目前,计算机之间以及计算机和一些USB设备之间通信的广泛应用,实现了信息交换和共享,但是在一些特定的应用环境中,对通信中数据的交换和共享需要遵循一些特定的要求。文献[1]中利用USB控制芯片以及光电耦合实现单向传输;文献[2]中采用CY7C68013和先入先出存储器IDT72V06来实现单向传输;文献[3]中提出了基于EZ-USBFX2LP的高速的传输设备,但是他们都没有同时考虑到效率性、单向性和可扩展性。由此,我们首次提出了一种双重保障的高效、安全单向传输系统。系统在硬件设计上真正实现物理上的单向传输,保证了单向性、安全性和传输速率,在软件上使用了自设计的程序流程和自定义的传输层协议,发送端只实现发送部分,不接受任何过来的数据,保证了低保密级别安全域中的计算机或存储设备向高保密级别安全域中的计算机进行单向、安全、快速地数据传输时,即使高保密级别的计算机被非法控制了,文件数据也不能向低保密级别的存储设备进行数据传输。本设备采用微处理器构成的嵌入式系统与其专属的软件,结合通用串行总线USB2.0接口,达到了系统操作效率成本的最高比。
1 总体框架设计
安全单向信息传输系统总体框架如图1所示,主要是USB接口的微控制芯片CY7C68013、 ARM核心板S3C2410以及光发送器和光接收器(各芯片的作用在硬件系统阐述)。这个总体系统框架设计对外接USB存储设备和低安全域的PC机向目标主机进行数据传输时实现了真正的物理上的单向传输。
整个设计方案除了硬件模块选择和设计外,另一个重要的设计就是自定义UDP协议。安全单向信息传输系统主要涉及硬件设计和软件设计,在软件设计中,自定义UDP设计模块是关键技术和难点设计,由于要进行通过光纤的单向传输,这不仅要解决不同操作系统之间传送大文件或文件夹的必备通用属性,更要解决可靠性和传输速率等问题。
2 模块设计
2.1 硬件流程
系统工作流程为USB设备通过USB2.0端口跟USB控制芯片(CY7C68013)相连接,然后经过USB收发器进行转换,保存到数据接收缓冲区(FIFO),接着由内部8051核进行控制处理一系列的操作[4]。S3C2410的USB HOST支持OHIC(Open Host Controller Interface)标准。OHIC规定了一系列连续的寄存器,作为硬件和软件交互的界面。Linux内核包括了OHIC机制实现部分,因此对于S3C2410芯片,唯一需要对内核进行修改的就是指定S3C2410的OHIC寄存器基地址。当USB设备通过串行总线连接上来时,USB主控制器会经过设备初始化、中断发生、查询中断寄存器、USB总线枚举、配置、文件操作命令、挂起等一系列流程。然后ARM把检测到的USB设备当作文件来进行处理,并通过自定义UDP传输,由S3C2410控制光发送器把数据发送给光发送器,光发送器把从CMOS系统器件的电子位流转换为光数据流,通过多模单向光纤发送出去。光接收器把接收的光信号还原成电信号通过RJ45接口发送给目标主机。目标主机通过复位信号、上下移动信号、进入下一级目录信号、返回上一级目录信号、发送信号和心跳信号来对USB里的文件进行操作。
2.2 软件流程
软件程序设计分为发送端程序设计和接收端程序,发送端程序是在Linux系统下用C语言来编写、调试、编译完成的,然后移植到uClinux内核中。接收端程序在Windows系统下用VC++6.0来实现的。发送端流程图如图2所示。
在发送端,嵌入式系统首先完成各个初始化,包括:微处理器的初始化和CY7C68013的初始化。微处理器的初始化主要是完成外部中断INTO、I/0口等的初始化。CY7C68013的初始化来检测外部USB设备的接入,并以中断方式告知微处理器,微处理器做相应处理。接着,CY7C68013对USB设备做初始化配置,如对USB设备分配地址、获得设备描述符,而后根据得到的数据对USB设备进行正确的配置,在S3C2410上创建节点、挂载设备、遍历各个分区。然后,根据需要进行文件操作。最后,卸载节点,监测设备是否离开。
接收端程序是在Windows下来接收的。利用循环检测是否有数据到来,然后根据到来的数据处理不同的事情。当接收到是文件路径时创建目录,是文件时创建文件。所有的文件被虚拟储存在磁盘上,用户像操作自己的磁盘一样来拷贝自己需要的文件。在拷贝完自己的文件后,拔除USB设备时,自动删除磁盘上用户不需要的文件。接收端程序注意在接收时要清理接收内存,不然会出现乱码或丢包现象。
3 通信协议设计
系统选用UDP广播来发送信息如图2所示,因为我们的系统是单向传输的,没有返回信号,而TCP协议提供可靠的连接,需要三次握手建立一个连接。UDP协议是面向无连接的,且基于广播发送机制,不需要接收端返回确认消息,因此支持单向传输且延迟性小。但UDP协议也存在一些不足之处,一般应用在数据传输量不大且可靠性要求不高的场合。面对大容量U盘或移动硬盘,必须解决传输上的可靠性问题,不能出现丢包现象,这就要求设计自定义UDP协议来适应需求,有效解决以上问题。
3.1 自定义UDP通信协议原理
面对大容量的文件传输,必须使用UDP分包,但一个文件的多个数据包在接收端可能出现丢包现象,很难重组成一个完整的原文件。因此,需要对UDP协议进行扩展,使之能完成大文件的传送和接收。自定义UDP协议如下,即对每个UDP数据包增加一个包头,格式如下:
UDP数据包=自定义UDP包头+UDP有效载荷
自定义UDP通信包头格式如下:
typedef struct tPackHead
{
unsigned char byVersion; //版本号 0x01
unsigned char byCmdClass; //命令类别
unsigned char byCmdType; //命令类型
long lSessionNo; //会话号
long lPacketNum; //包序列号
long iFileSize; //即将要发送文件的大小,以字节为单,这里为1024个字节
int lPayloadLength; //数据长度,以字节为单位
}PackHead;
通信包格式如下:
typedef struct tAppPacket
{
PackHead tAppPackHead;
char byData[MAX_LENGTH]; //包负载,MA
int iChksum; //校验和,校验范围:tAppPackHead+ byData
}AppPacket;其中byVersion是自定义UDP协议的版本,目前为1.0版本。byCmdClass是为了区分信息类别,共有六种类别,分别为:(1)“复位信号”用来当用户按下“复位”键时,发送当前接入移动存储设备的盘符信息;(2)“上下移动信号”用于在某个目录中上下移动“定位指针”,如果该目录中只有一个子目录或文件,则上下移动无效,无须向PC机发送信号;(3)“进入下一级目录信号”用于进入“定位指针”当前指向的目录,将该目录下的所有目录和文件信息发送给PC机,并且“定位指针”指向该目录下的第一个子目录或文件;(4)“返回上一级目录信号”用于返回“定位指针”当前所在目录的上一级目录(如果“定位指针”当前指向的目录为根目录,则返回上一级目录无效),且“定位指针”指向上级目录下的第一个子目录或文件;(5)“传送信号”用于确认“定位指针”当前指向的是目录或文件,发送给PC机;(6)“心跳信号”用于PC机了解外端设备是否正常工作,每隔1秒,外端设备向PC机连续发送3个心跳信号。byCmdType 用来判断传输的是文件目录还是文件。lSessionNo和lPacketNum用来确认发的是不是同一个数据包。
通信包封装了自定义UDP包头和包负载、校验和来填充UDP数据包的数据区。接收端根据接收到的数据,分析数据结构,层层剖析来判断。
3.2 自定义UDP通信方法
发送端首先对一个超过1024字节的文件进行分包,求出分包个数,然后根据协议协商原则,先连续发送三个“心跳信号”,然后发送一个“UDP通知数据包”,并进行一定时间的延迟(0.01秒),以确保接收端首先接收到“通知数据包”,它的作用是告诉接收端即将接收的文件有多大,接收的如果是文件夹则建立相应的目录文件,如图3所示。
为了提高通信的可靠性,对于需要从外端机向内部PC机发送的每个包,外端机都要重发两次。接收端接收到数据,首先根据“会话号”和“包序列号”判断是否是重复的包,如果“会话号”和“包序列号”都相同,则为重复包,丢弃。在每次会话开始时,随机产生该会话的会话号。接着根据命令类别来判断是哪种数据包。由于自定义UDP包头放在每个数据包的头部,并且长度是固定的,因此能很容易地进行读取和比较。
对于目录传输,设计了支持20级目录嵌套的递归搜索方法。对文件大小方面,支持单个文件超过3G,设计了一系列指示信号[5]。
在安全单向信息传输系统设备上,我们通过四只LED指示灯来识别它们的各种操作。
4 结束语
本系统的固件程序采用集成开发环境KeiluVision2编写,它支持C程序和汇编程序混合编程。驱动是用Windows DDK编写的,PC机应用程序基于固件和驱动程序基础上编写的,可以灵活地与硬件设备进行数据交换。以VC++6.0作为辅助开发环时,经过测试,决定每个包发送三次可以解决丢包问题,如图4所示。系统实现了在不可逆场合下,保证了数据能快速、单向、可靠地传输。
参考文献
[1]肖远军,方勇,周安民,等.基于USB2.0接口的单向数据传输系统设计[J].计算机应用,2006,26(6):1490-1495.
[2]李波,刘嘉勇,姜瑜,等.基于EZ-USB FX2的单向传输系统设计与实现[J].信息与电子工程,2008,6(1):46-50.
[3]傅得立,马忠松.基于EZ-USB FX2LP的高速数据传输系统设计[J].嵌入式系统应用,2008,24(2-2):16-18.
[4]Cypress Semiconductor Corporation.EZ-USB FX2 Technical ReferenceManual[Z].2001.
[5]杜根远,谭水木.一种利用UDP封装实现IPSec-NAT穿越的改进方案[J].计算机应用与软件,2007,24(3):189-191.
单向传输 篇2
办公系统是基于Internet/Intranet以及工作流技术,在企业内部建立的提高工作效率、方便信息共享的计算机信息系统。
试验系统与办公系统通常是两套相互独立的业务系统,之间没有关联。但是为了实现对试验系统中自动采集数据的分析、评估、存储备份及事后利用,需要在采集系统与办公系统之间建立一条安全传输通路。在确保试验系统安全可靠、不受外来病毒、人为干扰攻击等的基础上,实现由试验系统向办公系统单方向实时传输正确有效的数据是一个迫切需要解决的问题。
1 单向网闸技术
1.1 网闸技术
网闸技术(Net Gap)是使用带有多种控制功能的硬件,通过没有物理连接的“数据摆渡”方式,实现两个独立的网络系统之间的数据交换技术。因为没有物理连接,所以可以阻止网络间的入侵攻击,实现系统间隔离与安全。网络间的数据交换,通常是通过TCP/IP协议交换数据包实现,网闸是采用硬件模块切断网络之间的TCP/IP连接,通过私有协议对数据包进行转发。而且,网闸与需要摆渡数据的两个网络之间,在同一时刻只与一个网络连接,阻止两个网络之间的物理连接。通过这两方面,防止了网络之间的双向连接,起到了单向连通、避免反向病毒、主动攻击等行为的发生。
网闸技术基本示意如图1所示。网闸在两个需要交换数据的主机之间设置两个开关,通过系统控制这两个开关使得一个开启的时刻另外一个关闭,以此确保网络A与网络B永不相连,从而达到安全隔离与数据摆渡的目的。
1.2 单向光闸技术
第一代网闸技术是采用单刀双掷开关,通过内部处理模块分时存取共享存储设备来实现数据交换,通过应用层数据交换与安全控制来实现对协议层攻击的阻止和应用层安全的加强。该技术可以保障安全,但是数据交换速度相对较慢。
第二代网闸技术是在第一代网闸的基础上,创造性的采用了专用交换通道PET(Private Exchange Tunnel)技术,也就是通过专用硬件通信卡、私有通信协议、加密签名机制来实现安全的数据交换。PET新技术的引入在保障数据安全性、准确性的前提下使两网之间的数据交换速度提高了几十倍甚至上百倍。
单向光闸,正是在第二代网闸技术的基础上,利用光单向传输通道的物理特性,采用单根光纤,通过光传输模块,实现两个隔离网络之间的安全准确的单向无反馈数据传输。
单向光闸技术通常包括软件和硬件两部分,其中硬件部分如图2所示,采用“2+1”架构模型,即包括主机1、主机2、单向隔离传输模块三部分。单向隔离传输模块由两个通用的光传输模块组成,模块之间采用单根光纤连接。通常,光传输模块由两根光纤完成通信,一根用于接收数据,一根用于发送数据,从物理上,无法通过单根光纤实现既进行接收又进行发送数据。因此单根光纤保证了数据的绝对单向无反馈传输。单向隔离传输模块基于专有的安全隔离芯片和交换芯片。其中安全隔离芯片通过多线程并行固化处理将数据块转化为私有协议格式的数据包,交换芯片的交换子系统和开关控制子系统实现对数据的临时缓存和安全交换。
单向光闸技术的软件部分包括三部分:单向传输控制模块、应用服务模块、管理模块。软件架构示意图如图3所示,其中应用服务模块至少提供以下服务功能:单向文件传输、单向数据库同步、单向邮件传输、单向传输API等。
1)单向传输控制模块:保证在单向无反馈通信环境中数据传输的完整性和可靠性;
2)应用服务模块:提供基于单向传输的业务应用,包括:单向文件传输、单向数据库同步、单向邮件传输和单向传输API接口;
3)管理模块:系统配置和管理的接口,通过该平台配置管理主机系统和业务应用系统,并提供启动或关闭一些特殊引擎接口,例如:病毒检测等引擎接口。
2 部署方法
2.1 安全域划分
试验系统是完成飞机结构强度试验的物理试验的平台,该平台对试验设备的安全性、精确性要求极高,任何来自外部的病毒、或者利用系统漏洞对试验过程造成影响都将会破坏整个试验过程,因此试验系统的安全性要求极高。为此,设计了如下安全域划分模型见图3,以阻止来自不同网络的安全威胁。
试验系统中的试验控制系统、试验采集系统都是以太网络连接的计算机系统,内部有服务器、工作站、网络交换设备、电液伺服自动协调加载控制设备、数据采集设备等。
隔离交换区包括一台单向光网闸设备。
办公系统是计算机信息系统,包括网络交换设备、服务器、存储设备、计算机终端、防火墙等。
2.2 系统拓扑结构
试验系统与办公系统单向安全传输方法部署拓扑结构如图4所示。
其中,试验系统区在数据采集系统的网络环境中部署一台数据发送计算机终端,上游连至采集系统网络,下游连至单向光闸的输入端,实时将采集系统中的采集数据文件发送出去。办公系统中设置一台数据接收计算终端,上游连至单向光闸的输出端,下游连至办公系统网络。在办公系统中,根据安全保密要求部署相应的防火墙并设置安全访问控制策略,保障系统内部安全及杜绝泄密隐患。
在目前的飞机结构强度试验中需要单向传递的数据都是数据文件(例如:***.55%-20160708.xlsxtemp、***.55%-20160708.txttemp等),没有邮件,也无需数据库同步。因此在单向光闸的软件管理端配置网闸地址、文件传输通道、任务监听端口、收发目录、收发用户、时间策略、备份策略、过滤策略以及优先级等基本设置。
3 应用效果评价
在2015-2016年期间,中国飞机强度研究所承担了C919大型客机全机静力试验,试验过程即采用了该试验系统与办公系统单向安全传输方法,完全实现了物理试验现场采集系统实时采集的试验过程数据到所内部员工办公网络之间的实时单向数据传递,传输效率高,未发现丢包现象,也未发现试验系统有来自办公系统的任何干扰,是绝对的物理单向传输。同时,该方法也符合国家、行业的有关安全防护标准、法规。该方法在我所已经运行6个月有余,运行状态稳定。该方法使得两套网络之间的数据传递效率得到极大的提高,显著提升了工程技术人员的办公效率。同时,这种效率提升未对两套网络系统造成任何安全防护隐患,充分保障了原有业务系统的安全防护级别。图5展示了2016年7月8日C919大型客机全机静力试验的办公系统接收数据界面。
4 结束语
本文针对中国飞机强度研究所试验系统与办公系统之间单向数据传递的需求,在深入分析数据传递需求及安全隔离需求的基础上,通过研究单向光闸技术,利用单向光闸技术搭建了数据单向交换平台,在确保试验系统全面安全的前提下实现了物理隔离环境下的试验系统至办公系统之间的单向数据传递。该方法在研究所内部得到了高度认可,同时也在其他行业得到了认可,可以在行业内部以及其他行业的类似网络环境下推广应用。
参考文献
[1]李佩玥,石俊霞,陈雪,章明朝.单纤单向数据隔离系统的设计与实现[J].电子测量技术,2014,37(6):115-117.
[2]闵涛,李贷松.徐州国土资源局基于单向光网闸的数据交换平台建设经验介绍[J].国土资源信息化,2013(2):51-54.
[3]颜敏燕,韦樑.单向隔离网闸的设计及其传输可靠性探讨[J].价值工程,2014,(27):219-220.
单向传输 篇3
一、SIMOOED以太网传输设备方案
传统模式下设备交换机接入方案主要采用方式数据冲突的检测技术、数据路由交换技术和生成树技术来确保信息的正确传输, 但传统的交换机接入方案具有建设成本高、开发周期长的特, 并且在硬件设施上交换机需要高度的CPU来转发数据。因此, 采用SIMOOED设备在变电站自动化系统中的接入方案, 如图1所示, 其具有开发难度小、无数据冲突和硬件实时转发的特点, 与传统模式下交换机接入方案相比, SIMOOED设备具有更多的优势。
二、SIMOOED设备结构组成
SIMOOED设备使用由以太网PHY芯片DP83849IF和零延时缓存芯片CY2309, 其设备原理主要是通过外部布线及双口PHY芯片DP83849IF内部具有丰富的数据路由功能将多个DP83849I联系起来, 从而实现数据的传输。其中, 对u影5MHz的晶振, 可以通过零延时缓存芯片CY2309为每片DP83849IF提供时钟, 对于LED显示器, 可以显示SIMOOED的工作状态, 其系统电压为3.3v, MCU的主要任务是通过I/O对DP83849IF进行有效设置。如图2所示, 表示SIMOOED设备原理。
三、SIMOOED设备设计思路构建
(一) 硬件模块
1数据转发模块, 数据转发模块主要使用双口10/100MPHY的芯片DP83849IF, 其支持MII、RMII、SCMII模式, 同时也支持电口、光口等两种物理接口, DIMOOED设备主要采用SCMII模式、速率为100Mbit/s的光接口和使用6快DP83849IF来实现“一入十一出”、“一入五出”的两种工作状态, 为了实现两个工作状态的切换, 可以通过设置DP83849IF内部寄存器来改变两个端口的数据路由方式, 由于变电站现场间隔层装置的个数直接决定了工作状态的选择, 若合并单元需要传递数据的间隔层装置不超过4个, 则应选择“一入五出”的工作状态, 反之, 选择“一入十一出”的工作状态。在设备设计中, 一般芯片主要分为数据流入口和数据流出口, 每个端口所对应的物理接口, 其都为标准光接口, 然而, 对于寄存器的设置, 应设置由芯片地址和端口片内地址等端口地址, 当芯片地址设置完成后, 则需要固定端口地址。对于“一入五出”的工作状态来说, 与“一入十一出”设计相比, 一些端口没有信号输出, 虽然“一入五出”与“一入十一出”两个工作状态芯片的一些外部连线有所不一样, 但其并不发生冲突, 在进行PCB布线时, 其外部连线可以并存。由于芯片内部数据路由方式有所改变, 但这个方式的改变可以通过软件来实现, 无需变更布线。
2时钟模块, 芯片DP83849IF在SCMII模式下所需的时钟频率为25MHz, 这就要求设备中时钟先与数据线延时需保持一致, 并且在布线过程中每个芯片的4根数据线距数据源的长度应保持一致。SIMOOED可以通过芯片CT2309的引脚REF输入频率为25MHz的时钟并同时输出9个同频率的时钟信号, 一般CT2309的输入、输出的典型延时控制在5~8.7ns内, 若在相同负载条件下, 同一个芯片的输入、输出之间的典型延时为60ns。
(二) 软件模块
软件模块的主要作用是对寄存器的值进行修改, 通过LED指示灯显示设备的工作状态, 并通过设置一个跳线来选择设备的运行状态, 一般情况下, ON表示“一入十一出”的运行状态, OFF表示“一入五出”的运行状态。对于软件模块的串行总线, 主要由MDIO和MDC组成, 一般通过读写指令对串行总线的操作码、端口地址及寄存器地址进行操作, 一般将读写指令中的“开始、端口地址、数据”位均设置到MDIO, 在读指令中, “转变吗、数据”位需要从MDIO中读取, 一般转变码中的Z为高阻状态;在写指令中, “转变码、数据”位则需要设置到MDIO。但需要注意的是:写指令中位的读取与设置需要与MDC时钟配合, 即在MDC下降过程中, 需要从MDIO读取1位二进制数, 而在MDC上升过程中, 应设置1位二进制数到MDIO。
四、设备测试方案调试
设备测试方案如图3所示, 在GPS时钟对所有设备测量装置和保护装置进行校时, 应由一个合并单元来测试数据, 即采用IEC61850-9-1格式来发送最高采样速率, 一般最高采样速率为10k Hz, 通过对比分析测量装置和保护装置的数据, 可以得出SIMOOED数据延时为4.5μs, 其误码率为0, 由此可知, SIMOOED设备满足数字化变电站的应用需求。
结语
在数字化变电站建设中, 确保数据传输可靠性是变电站建设的重要前提, 为了实现数字化变电站单向数据的传输设备, 采用EC61850协议基于网络通信平台的变电站自动化系统, 实现单点对多点传输的功能, 由于SIMOOED具有建设成本低、延时固定等有点, 因此, SIMOOED设备满足数字化变电站单向数据传输设备的需求。
参考文献
[1]陈文杰.基于IEC61850的数字化变电站技术的实用化探讨[D].华南理工大学, 2012.
[2]戚磊.数字化变电站系统构建方法及其工程实践[D].华北电力大学, 2012.
[3]周金秋.基于移动存储介质的单向数据传输设备的设计与实现[D].中国科学院研究生院 (长春光学精密机械与物理研究所) , 2012.
[4]徐天奇.基于IEC61850的数字化变电站信息系统构建及可靠性研究[D].华中科技大学, 2009.