1. 引言
智慧交通(Intelligent Transportation System, ITS)是通过物联网、云计算、大数据、人工智能等技术,对交通管理、车辆调度、路网优化等环节进行智能化改造的系统。随着智慧交通系统的快速发展,海量交通数据的实时采集、传输与安全性问题日益突出,数据安全传输成为关注焦点[1] [2]。由于智慧交通系统涉及大量敏感信息,如交通流量、车辆信息、个人出行数据等,因此交通系统中通常采用内外网隔离结合专用移动存储介质结合的方式来保护这些数据免受未经授权的访问、使用或泄露[3] [4]。通过将内部网络与外部网络进行隔离,可以有效地防止外部攻击者侵入内部网络,窃取或篡改敏感信息。在需要将内部网络的数据传输到外部网络进行备份或分析时,可以使用移动存储介质来完成。但在移动存储介质使用过程中,仍存在专用存储介质管理不便和在外网受干扰后造成摆渡攻击等问题[5]。
单向数据传输设备是一种专门设计用于数据单向传输的硬件设备。其核心功能在于允许数据从高安全级别的系统或设备向低安全级别的系统或设备单向导出,而严格禁止数据反向传输,因此在信息安全领域具有广泛应用。单向数据传输设备的方案主要基于数据泵技术和数据二极管技术[6]。数据泵技术是一种用于低级向高级数据库或网络间可靠数据拷贝的解决方案[7]。通过协议控制数据包的传输,实现了数据的单向流动。在这个过程中,数据泵技术不仅传输数据本身,还可传输用于数据纠错、流量控制等状态控制的数据包。实现数据泵技术单向传输需要复杂的协议栈,会降低传输速率。由于数据泵技术使用协议层隔离,传输的物理通道仍然是双向的,当传输出现协议漏洞或者是传输协议模式不正确时,将会导致反向数据传输。近年来,数据二极管技术逐渐成为数据单向传输的主要方向,该技术主要有电信号和光信号两种传输载体[8]。以电信号为载体的方式通过电子电路设计实现了数据单向传输,其电路设计复杂,无法实现数据的快速传输,且易受环境干扰,可靠性低。以光信号为载体的传输方式通常采用光–电耦合器即光模块,其工作方式是将发送的数据电信号转换调制成光信号,光信号通过单向控制器发送给对方,对方接收到光的信号后再转换成电信号,解成需要的数据包。由于数据信号在传输过程中是单向的,因此无法通过反向通道获取或控制内部网络的数据。但在具体应用中,该方案的可靠性非常依赖于光模块的质量。在传输过程中,采用缺乏交互控制协议的单向盲发形式很难保证信息传输和接收的完整性和正确性,且易出现数据泄漏现象[9]。
本文提出一种基于光纤技术的移动介质数据单向传输设备,通过光纤传输与硬件隔离,彻底阻断反向数据传输路径,基于RawGadget内核模块和自反馈校验机制,实现了上位机向USB设备高效稳定下发数据。
2. 基于光纤的单向数据传输原理
光纤是光导纤维的简称,是由高透射率材料构成的圆柱形波导,其结构如图1所示,一般由纤芯和包层和涂覆层构成。纤芯和包层共同构成波导结构,主要材料为不同掺杂的二氧化硅。纤芯的折射率略高于包层,光波在纤芯与包层的交界面发生全反射,将光能量束缚在纤芯中,从而实现光信号的长距离传输。在包层外由丙烯酸酯、硅橡胶、尼龙或其他高性能弹性材料组成光纤涂覆层,以防止波导受外界影响导光效率。光纤的传光原理决定了其信号只能沿波导物理结构传输,当有外部干扰介入结构时,将会使光信号迅速衰减。
Figure 1. Structure of optical fiber
图1. 光纤结构图
使用光纤进行数据传输的过程如图2所示,过程经过电/光转换和光/电转换。带有信息的电信号首先经过编码器由双极性码转换为单极性码并进行扰码。通过调制器对光源进行调制,通常采用的是光强度调制方式,即根据电信号的变化来调制光信号的强度。已调的光信号耦合到光纤中进行传输,到达接收端。在接收端,光信号经过光检测器转变为电信号,再由处理电路恢复出原始信息。由于光源和接收器均为单向器件且光信号的传输具有方向性,因此可以在发送端和接收端由光纤连接构建一条单向物理通道,保证电信号在链路上的单向传输。
Figure 2. The schematic diagram for unidirectional transmission of optical signals
图2. 信号单向传输示意图
3. 单向数据传输设备设计与实现
3.1. 系统结构
如图3所示,设备的硬件部分主要由LubanCat-A1核心板,收发光模块和光纤耦合器构成。LubanCat-A1核心板是一款基于全志处理器设计的高性能卡片电脑核心组件,具备出色的计算能力和能效比。该核心板全面支持Linux系统,具有高度的可定制性和灵活性,且体积小巧便于集成到各种设备中,同时提供了丰富的接口资源,如USB、以太网、Wi-Fi等。核心板间由光模块和光纤耦合器组成的单向光学数据传输通道连接,并分别采用上位机供电(核心板a)和独立电源供电(核心板b),保证两板间无电学物理连接,以阻断电信号的物理传输。核心板1通过Type-C接口接收上位机发送数据,通过Gadget协议将设备虚拟为U盘,因此可直接被上位机识别。核心板b连接移动存储介质端的接口为USB2.0接口,作为USB设备的主机向移动存储介质中写入数据。
Figure 3. Diagram of unidirectional data transmission device
图3. 单向数据传输设备结构图
3.2. 单向传输光路设计
使用光信号进行数据传输,是保证物理通路单向导通的关键。设备光路部分的设计如图4所示,采用光模块和光纤耦合器构成。光模块是一种能够完成光信号与电信号之间转换的设备,它主要由光电子器件(如光发射器、光接收器)、功能电路和光接口等部分组成。光模块包含发射光口(TX)和接收光口(RX)两个接口。在发送端,光模块能够接收来自电信号源的电信号,并通过驱动电路处理后,驱动激光器产生相应频率的光信号。在接收端,光模块通过光纤接口接收来自发射端的光信号,光信号被光电探测器接收并转换成电信号。转换后的电信号经过放大和整形处理,最后输出为标准的电信号。为保证传输速率,选择单模双纤1.25 G的光模块作为光信号的收发设备。光纤耦合器是利用光纤内电磁场耦合原理制作的被动器件,进入耦合器的光能量会按照耦合比从输出端输出。系统使用95/5的熔融拉锥式1 × 2光纤耦合器连接收发光模块。发射光模块TX端口输出的光信号从端口1进入耦合器,约95%的光能量从端口2输出进入到连接接收光模块的RX口,在光模块间建立几乎无损耗的传输光路,保证核心板a向核心板b稳定传输数据。约5%的光能量从端口输出,进入到发射光模块的RX端口,用来进行循环冗余校验(Cyclic redundancy check, CRC)校验,保证数据传输准确性。
Figure 4. Design of optical path
图4. 光路设计
3.3. 基于RawGadget协议的虚拟设备构建
为简化设备对上位机使用环境的要求,实现设备即插即用,基于RawGadget构建虚拟设备。RawGadget是一个用于USB Gadget功能的Linux内核模块,允许用户空间程序直接与USB Gadget子系统交互,模拟USB设备的行为。其核心功能包括USB端点的配置、数据传输和状态监控。通过在LubanCat-A1核心板上部署Linux操作系统,并启用Rawgadget模块,上位机通过Type-C接口与设备连接后,将设备识别为U盘,并分配盘符。基于RawGadget的虚拟USB设备传输流程包括初始化、配置、数据传输和清理四个阶段,具体执行过程如图5所示。
在基于Rawgedget技术的基础上,我们进一步拓展并创新,实现了双文件系统间的监听与同步功能。
当检测到文件系统事件时,触发相应的同步操作。例如,当主机端文件系统中创建了一个新文件,该事件会被inotify捕获,并通知给监听程序。监听程序会立即调用同步逻辑,将新文件从主机端复制到虚拟U盘的文件系统中。这一功能允许系统在两个不同文件系统之间实时跟踪和同步数据变化,确保了数据的完整性和一致性。通过使用inotify工具监控文件的创建、修改和删除等系统事件,并在检测到变化时触发相应的同步操作,从而实现高效的数据同步。同时我们采用了内存镜像文件技术,利用计算机内存的高速读写能力,模拟出移动存储介质的空间。通过创建内存镜像文件,将内存区域映射到文件系统,从而实现内存和文件系统的高效数据交换。该方案有效提升了数据传输速率。
Figure 5. Diagram of unidirectional data transmission device
图5. 虚拟USB设备流程图
3.4. 数据传输协议优化
核心板与光模块使用网线连接,核心板间使用网络协议进行数据传输。传统的网络协议栈,如TCP/IP协议栈,遵循严格的分层模型,网络数据包在通过内核时,会经历传输层、网络层、设备驱动等复杂的协议栈处理,并且涉及频繁的用户态与内核态的上下文切换和内存拷贝,极大限制了设备性能。为了减少这些开销,将网卡驱动的接口暴露给内核空间的应用程序,使得应用程序可以直接通过系统调用接口与网卡驱动进行交互。这样,数据包在到达网卡后,可以直接被内核空间的应用程序处理,无需经过网络协议栈的逐层封装和解封装,从而减少了数据拷贝和系统调用开销。通过修改协议处理的优先级,使自定义协议的数据包在到达网卡驱动后能够优先于其他协议的数据包进行处理。通过修改传统网络协议栈,在内核空间直接调用网卡驱动收发数据包,显著提高了数据传输速率。
为保证大量数据传输的空间和效率,引入了三层弹性缓存机制。该机制包括网卡驱动层缓存、内核协议层缓存和应用层缓存。网卡驱动层缓存用于暂存从网络接收到的数据包,内核协议层缓存用于在协议处理过程中暂存数据,应用层缓存用于存储即将发送或已经接收的数据。三层缓存之间通过动态调整缓存大小和数据调度策略,实现数据的高效存储和传输,有效缓解了数据传输过程中的拥塞和延迟问题。
3.5. CRC校验机制
在单向传输设备中,数据只能单向流动,缺乏从接收端到发送端的直接反馈机制,需要设计容错纠错控制机制来降低误码率与丢包率。通过光纤耦合器将发送光模块的RX口与TX口连接,在核心板a形成自反馈环路,进行CRC校验。CRC是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。其核心思想是通过多项式除法对数据进行处理,将数据视为一个长的二进制数,通过特定的生成多项式对数据进行除法运算,所得的余数就是校验码。本方案采用CRC-32标准,数据包每个帧的末尾附加一个32位的CRC冗余校验码,用于检测帧在传输过程中是否出现错误。核心板a维护一个环形缓冲区,缓存最近发送的N个数据帧(默认N = 1000),每个帧包含原始数据及校验码。核心板a接收反馈信号后,提取校验码并与原始数据帧进行比对。若反馈校验失败,核心板a从缓冲区中提取对应数据帧重新发送,最多重传5次,若仍失败,则标记为“不可恢复错误”,记录日志并由指示灯产生告警信号。设置单帧传输超时阈值(默认500 ms),超时后强制丢弃该帧,避免信道拥塞。
3.6. 设备技术参数
图6为单向数据传输设备实物图,外置接口主要包括与上位机连接的Type-C接口及与移动存储介质连接的USB接口。集成了监控指示灯,可实时查看上位机与移动存储介质的连接情况及工作状态。
Figure 6. Photograph of unidirectional data transmission device
图6. 单向数据传输设备实物图
对设备的传输速率进行测试并与基于传统TCP/IP协议栈方案进行比较,结果如表1所示。使用1 GB的单个文件(全零数据,避免压缩干扰)测试设备的峰值传输速率和延迟。本方案中上位机向移动存储介质的写入速率可达100 Mb/s,接近USB2.0的协议速率,相较于传统TCP/IP协议栈模式提升了122%。通过传输10,000个1KB小文件测试高频I/O操作的处理效率,本方案耗时约12 s,相较于传统TCP/IP模式提升79%。通过优化协议栈与自反馈CRC机制,本方案在传输速率、延迟等方面均显著优于传统TCP/IP协议栈方案。
Table 1. Data transmission test results
表1. 数据传输测试结果
指标 |
传统TCP/IP协议栈 |
优化协议栈 |
提升比例 |
1 GB文件传输速率 |
45 Mb/s |
100 Mb/s |
122%↑ |
平均延迟 |
320 μs |
85 μs |
73%↓ |
10 K小文件耗时 |
58 s |
12 s |
79%↓ |
CPU占用率(峰值) |
78% |
32% |
59%↓ |
4. 结语
本文提出了一种基于光纤技术的移动存储介质数据单向传输设备方案。该设备利用光纤的单向传输特性实现了数据传输通道的单向物理隔离。基于RawGadget模块实现了以USB移动存储设备模式自动接入主机。通过优化网络协议的处理模式,内核空间处理机制以及CRC数据校验等方式,保证了数据由上位机向移动存储介质的单向稳定传输。测试显示主机到移动存储介质的单向传输速率达到100 Mb/s。该设备可有效提高数据单向传输效率,在智慧交通等安全需求较高领域有潜在应用前景。
基金项目
唐山高速集团科技创新项目No. TE2023016基于移动存储介质的单向数据传输设备。