CN1294504C - 基于usb总线的数据隔离切换传输方法 - Google Patents
基于usb总线的数据隔离切换传输方法 Download PDFInfo
- Publication number
- CN1294504C CN1294504C CNB200410017023XA CN200410017023A CN1294504C CN 1294504 C CN1294504 C CN 1294504C CN B200410017023X A CNB200410017023X A CN B200410017023XA CN 200410017023 A CN200410017023 A CN 200410017023A CN 1294504 C CN1294504 C CN 1294504C
- Authority
- CN
- China
- Prior art keywords
- read
- usb
- write
- data
- switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
一种基于USB总线的数据隔离切换传输方法,用于网络数据交换、信息安全技术领域。本发明采用隔离切换硬件***实现对连接双主机的USB总线进行轮流的时隙切换,隔离切换硬件***包括切换控制开关和USB存储器,只有当切换控制开关连通USB存储器和主机时才由主机对USB存储器进行读写,任意时刻只有一台主机对USB存储器进行读写;通过主机中的切换控制软件来检测开关通断情况,确保只有当USB存储器连在主机上时才对其进行读写操作,并且通过对USB存储器中数据的组织和管理,在双主机间建立一条数据双向传输通路,实现实时双向数据切换传输。本发明避免了复杂的SCSI设备的设计和对SCSI总线的控制,是廉价、高效的数据传输方法。
Description
技术领域
本发明涉及一种数据隔离切换传输方法,具体是一种基于USB总线的数据隔离切换传输方法,用于网络数据交换、信息安全技术领域。
背景技术
如何实现外部网络和内部网络的安全可控信息交换一直是信息安全领域的重要问题。当前采用的网络隔离和防护手段主要是在网络边界安装防火墙,通过防火墙对进出网络的流量监视和控制来保证交换信息的安全。但是防火墙只能对网络连接采用逻辑隔离的方式进行控制,其***易被攻破,攻破后的防火墙形同虚设。安全隔离类产品从应用范围方面可分两类,一类是基于主机的隔离卡,典型的做法是通过对单机的网口和硬盘接口开关切换实现隔离,适合单机访问外部网络,不适合连续实时的网络应用。另一类是网络安全隔离交换设备,这一类设备通过在网络边界对网络应用数据进行切换,能在不同安全域的网络间实现安全隔离和受控的信息交换。目前已有网络安全隔离与信息交换实现方式大多采用隔离设备连接内外网控制单元的方式工作,连接切换的总线方式主要有SCSI和IDE等。例如,成立于1998年的美国Whale公司是目前安全隔离与信息交换***类产品的领导厂商,该公司的主要产品包括e-Gap系列的SSL VPN和应用防火墙(Application Firewall)等,这些产品都基于称为Air Gap技术的统一隔离交换硬件平台,该硬件平台主要由基于SCSI总线的开关和存储器组成。一般来说,SCSI总线的切换和传输速度高于IDE总线,但是SCSI总线比较复杂,并且大多数控制处理***中没有SCSI控制器,增加新的SCSI扩展卡必然带来成本的增加。
发明内容
本发明针对现有技术的上述不足和缺陷,提供一种基于USB总线的数据隔离切换传输方法,使其充分利用USB总线,在更为方便和廉价的条件下达到或超过基于SCSI总线实现的隔离交换设备的性能。本发明通过在USB总线上设置开关、使用USB存储器及主机中对应切换控制软件的配合处理等技术,能够在双机***间提供一条透明的、无差错的、有序的并拥有较高数据交换速率的数据通路,解决了目前基于SCSI总线等方法成本和复杂度高的缺点。
本发明是通过以下技术方案实现的,本发明采用隔离切换硬件***实现对连接双机***的USB总线进行轮流的时隙切换,隔离切换硬件***包括切换控制开关和USB存储器,只有当切换控制开关连通USB存储器和主机时才能由主机对USB存储器进行读写,任意时刻只能有一台主机对USB存储器进行读写;通过主机中的切换控制软件来检测开关通断情况,确保只有当USB存储器连在主机上时才对其进行读写操作,并且通过对USB存储器中数据存储方式的组织和管理,在双主机间建立一条数据双向传输通路,从而实现在配备USB总线接口的双主机中进行实时双向数据切换传输。
以下对本发明作进一步的说明,具体内容如下:
1)切换控制开关
切换控制开关通过两个USB接口用USB总线分别连接两个主机,两个接口均连接在一个切换控制开关上,它另一端连接着一个具有USB接口的USB存储器。在任意时刻,切换控制开关控制只有一个主机与USB存储器相连接。根据USB协议,主机上的USB HUB通过监视端口上数据线的电压来判断设备是否***。因此切换控制开关被设置在USB总线的数据线上,通过硬件时钟电路产生定时间间隔脉冲控制开关自动切换数据线,USB协议检测数据线的电平高低来判断USB存储器是否接到主机上。它的工作方式类似于一个单刀双掷的开关,当数据线切断后(相当于开关“开”),主机上的USB ROOT HUB会通知主机设备断开,引起***进行相关操作。因此当开关为“开”时相当于将USB存储器***主机,而当开关为“关”时相当于将USB存储器拔出。开关关闭时USB总线处于高阻状态。由此可知,该切换控制开关可使两主机按照固定周期轮流连通和读写USB存储器,但是绝不能同时连通和读写。切换控制开关在加电后就按照这种固有方式工作,不可更改不受软件控制。
2)切换控制软件检测开关通断情况
主机中的切换控制软件在准备对USB存储器进行读写操作时,必须了解当前切换控制开关的通断情况,因此程序内部要维护一个数据结构标识USB存储器的连接状态。若USB存储器当前连接着,则存取操作正常执行;若USB存储器没有连接,则存取操作被延后执行,读写进程被阻塞。光有上述的检测保护还是不够的,由于隔离切换开关的工作方式不受软件控制,所以有可能出现存储操作过程中USB存储器拔离***的情况,因此为保证对数据的无差错读写,必须根据切换控制开关频率对开关的转换时间点进行预测,当切换控制开关将要切换到“关”的时候,停等一段时间不做存取操作,以避免出现读写异常。此外,为保证对USB存储器的可靠读写,切换控制软件在读写USB存储器时必须具有差错恢复机制,即每次检测读写操作的返回值,若读写操作失败,则在下次获得读写USB存储器权限的时候重新读写上次调用失败的内容。
3)数据在USB存储器中的组织
主机中的切换控制软件将切换控制开关连接的USB存储器看作是一个线性的存储区域,采用物理地址进行寻址和读写。在USB存储器中取一个特定的存储单元,如USB存储器的第一个扇区,作为引导区用于存放读写指针信息,其他的存储单元被组织成环形链表。当有数据需要存取时,先读取引导区确定当前读写指针位置,再做真正的读写操作,最后移动读写指针更新引导区信息。程序可以通过比较读写指针的相对位置判断USB存储器是否为空或是已经填满。由于设备刚开始工作时引导区中的内容是随机的,因此必须在正常工作开始之前对其中的内容进行初始化。根据传输的方向不同划分地址独立的两段存储区,使得两个主机独立完成初始化操作。一方初始化操作导致已写入存储器的数据丢失是正常的,这样做可以适应主机重启动后开始正常工作的需求。
4)主机对USB存储器的读写
读写调用函数和设备初始化函数是主机访问USB存储器的唯一途径。读函数和写函数都必须采用阻塞方式。切换控制软件为上层协议软件开放了读写接口和设备初始化函数。由于切换控制软件已经对数据的存储位置进行的管理,所以主机中的上层协议软件不必再关心数据的存放地方,只需使用读写调用函数向底层提供或获取固定大小的数据报就可以了。同时,上层协议软件也不必关心底层设备是否接上,它可以在任何时候调用读写函数,只是当底层设备没有接上时它会阻塞。
本发明的主要优点有:采用基于USB总线的数据隔离切换传输方法比基于SCSI、IDE等总线的类似方法更为方便、廉价和高效。该方法通过隔离切换硬件***和切换控制软件的配合可构成一个通用的双主机数据隔离切换传输平台,该平台可以在双主机直接链路断开的情况下进行实时、双向、有序和无差错的数据传输,基于该平台可以开发各种安全隔离与信息交换***,实现网络不同信任域间数据隔离切换下的安全信息交换。
附图说明
图1本发明方法实施***的功能框图
图2本发明切换控制开关的工作原理图
图3本发明切换控制软件框图
具体实施方式
以下结合附图对本发明技术方案作进一步的描述。
如图1所示,本发明方法实施***的功能框图,包括:两个具有USB接口的主机,切换控制开关,具有USB接口的USB存储器。两主机通过USB总线与切换控制开关相连接,切换控制开关与USB存储器也通过USB总线连接。切换控制开关通过电子开关的控制切换USB存储器与两主机连接,使得任意时刻只有一台主机可以对USB存储器读写。
如图2所示,本发明切换控制开关的工作原理图。两个USB接口分别与开关电路相连,通过USB总线连接主机,开关电路通过第三个USB接口与具有USB接口的USB存储器(可选择USB移动硬盘)相连接。这样,USB存储器通过开关电路与两个主机USB接口相连,在某一时刻导通与否由开关电路的控制信号决定。控制信号由晶振产生原始信号经过计数器分频后得到,将信号周期定在1.2s(由***检测USB设备的最大时间加上适量的读写时间决定)可以取得最短的切换周期支持USB总线的传输。选用适当的分频器可以为以后电路切换时间的修改提供便利。通过计数器产生的周期方波能恰好在正半周期打开第一个USB接口与第三个USB接口的开关,负半周期打开第二个USB接口与第三个USB接口的开关,这两者的控制信号是互斥的。开关以0.6秒为1个时隙进行切换,切换通断USB总线中的数据线,这样可以保证两主机对USB存储器的互斥访问,在任意时刻只有一台主机可以对USB存储器进行访问,而另一台主机与USB存储器的链路是断开的。此外,可以通过设置一个按键开关来实现对第一个USB接口的强制挂断。源自按键开关的电平信号用逻辑门与前级信号共同构成对开关芯片的控制:按下开关时,源于按键开关的高电平可以通过逻辑门屏蔽掉前级分频器的控制信号,使第三个USB接口与第二个USB接口的开关导通并与第一个USB接口的开关断开。
主机中的切换控制软件是作为设备驱动程序为其他进程访问隔离交换硬件提供接口。以在LINUX***中的实现为例,切换控制软件内部可分为设备的注册与注销、为上层开放的调用接口、协议转换和传输操作四个部分,各个部分的关系如图3所示。切换控制软件将隔离切换硬件***(切换控制开关和USB存储器)虚拟成一个字符设备,其设备文件名为/dev/sgap,上层协议软件可以使用read、write***调用访问设备,每次调用读写函数,它提供或接受固定大小的数据报。用户对字符设备进行读写操作时,会分别调用字符设备file_operations结构中定义的读写函数。注意将隔离切换硬件***作为字符设备而非块设备进行处理可以方便地驱动磁头进行数据读写,并加快响应速度。
设备的注册与注销主要完成隔离切换硬件******或拔出主机时必须资源的建立或释放。需要指出的是,该部分对设备第一次***和此后的***处理的过程是不一样的,在第一次检测到设备******时需要进行资源的分配。程序可通过计算设备的guid值来判断是第一次还是此后的***动作。为上层开放的调用接口使得用户态程序通过***调用访问隔离切换硬件***成为可能。上层协议软件可以使用read、write***调用访问USB存储器,读写操作都是已阻塞方式实现的。协议转换将读写操作转换为USB协议命令,并提交给传输操作处理。传输操作主要完成数据向USB存储器的读写,操作主要依照Control和Bulk传输类型向USB***软件发送信息包。发送时使用的函数是USB***软件提供的***编程接口。USB***软件是指在一个特定操作***中用来支持USB协议的软件,它向客户软件提供统一的***编程接口SPI,帮助上层访问USB设备。为保证在切换情况下每次能对USB存储器进行无差错读写,需要在程序中设定定时器,在每次切换获得读写USB存储器读写权限后根据切换时隙的长短预测剩余时间的大小,若剩余时间的大小不足以完成一次读写操作则停止发送命令。一般需要至少预留0.3秒的保护时间。光有时间上的保证对实现完全可靠有序的读写通道仍是不够的,所以程序中还有错误恢复的机制。每一次底层操作完成时都会得到返回值,程序会通过返回值判断操作是否成功。若不成功,则下次获得USB存储器读写权限时程序会自动重做相关的内容。
数据在USB存储器中的组织被看作是由存储单元线性排列而成的环形链表。在切换控制软件中定义以下全局变量:变量ch_size记录了一个传输通道的大小,变量pk_size记录了一个数据包的大小,它们都是以512字节为单位的。对于某个方向的输入通道来说,变量in_ch代表通道编号,变量in_nr代表从输入通道得到的数据包总数,变量in_rpos代表当前输入通道读指针的位置,变量in_wpos代表当前输入通道写指针的位置。输出通道和输入通道对应变量代表的意义完全相同。通过隔离切换硬件***在两主机之间交换数据,一端主机对通道内容作的修改必须让另一端的主机知晓,因此必须为每一个通道增加一个引导信息区(boot区),用于存放读写指针信息。可根据以下方法获得正确的读写位置:
■传输通道第一块存储单元的位置
in_ch*ch_size或out_ch*ch_size;
■引导信息区的位置
(in_ch+1)*ch_size-1或(out_ch+1)*ch_size-1;
■传输通道中没有数据需要读取
in_rpos==in_wpos;
■传输通道中没有空间存放数据
out_rpos-pk_size+ch_size-1==out_wpos||out_rpos-pk_size==out_wpos;
本发明方法经过***原型的具体实施,被证明是可行稳定的,它避免了复杂的SCSI设备的设计和对SCSI总线的控制,廉价、高效地实现了双主机间进行隔离切换的数据传输。
Claims (5)
1、一种基于USB总线的数据隔离切换传输方法,其特征在于,采用隔离切换硬件***实现对连接双主机的USB总线进行轮流的时隙切换,隔离切换硬件***包括切换控制开关和USB存储器,只有当切换控制开关连通USB存储器和主机时才由主机对USB存储器进行读写,任意时刻只有一台主机对USB存储器进行读写;通过主机中的切换控制软件来检测开关通断情况,确保只有当USB存储器连在主机上时才对其进行读写操作,并且通过对USB存储器中数据的组织和管理,在双主机间建立一条数据双向传输通路,从而实现在配备USB总线接口的双主机中进行实时双向数据切换传输。
2、根据权利要求1所述的基于USB总线的数据隔离切换传输方法,其特征是,所述的切换控制开关,具体如下:
切换控制开关通过两个USB接口用USB总线分别连接两个主机,两个接口均连接在一个切换控制开关上,开关的另一端连接着一个USB存储器,在任意时刻,切换控制开关控制只有一个主机与USB存储器相连接,切换控制开关被设置在USB数据线上,它对USB数据线的通断等效于USB存储器的***和拔出。
3、根据权利要求1所述的基于USB总线的数据隔离切换传输方法,其特征是,所述的切换控制软件检测开关通断情况,具体如下:
若USB存储器当前连接着,则存取操作正常执行,否则存取操作被延后执行,读写进程被阻塞,为保证对数据的正确读写,必须根据切换控制开关频率对开关的转换时间点进行预测,通过此时间预留读写保护和差错恢复机制保证数据的读写,差错恢复机制即每次检测读写操作的返回值,若读写操作失败,则在下次获得读写USB存储器权限的时候重新读写上次调用失败的内容。
4、根据权利要求1所述的基于USB总线的数据隔离切换传输方法,其特征是,所述的数据在USB存储器中的组织,具体如下:
主机中的切换控制软件将切换控制开关连接的USB存储器看作是一个线性的存储区域,采用物理地址进行寻址和读写,在USB存储器中取一个存储单元,作为引导区用于存放读写指针信息,其他的存储单元被组织成环形链表,当有数据需要存取时,先读取引导区确定当前读写指针位置,再做真正的读写操作,最后移动读写指针更新引导区信息,程序通过比较读写指针的相对位置判断存储器是否为空或是已经填满,引导区根据传输的方向划分地址独立的两段存储区,两个主机必须独立完成初始化操作。
5、根据权利要求1所述的基于USB总线的数据隔离切换传输方法,其特征是,所述的主机对USB存储器的读写,具体如下:
切换控制软件为上层协议软件开放了读写接口和设备初始化函数,读写调用函数和设备初始化函数是主机访问隔离切换硬件***的唯一途径,读函数和写函数都采用阻塞方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410017023XA CN1294504C (zh) | 2004-03-18 | 2004-03-18 | 基于usb总线的数据隔离切换传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410017023XA CN1294504C (zh) | 2004-03-18 | 2004-03-18 | 基于usb总线的数据隔离切换传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1564142A CN1564142A (zh) | 2005-01-12 |
CN1294504C true CN1294504C (zh) | 2007-01-10 |
Family
ID=34478729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410017023XA Expired - Fee Related CN1294504C (zh) | 2004-03-18 | 2004-03-18 | 基于usb总线的数据隔离切换传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1294504C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100696111B1 (ko) | 2005-07-15 | 2007-03-20 | 삼성전자주식회사 | 통신시스템 |
CN101404580B (zh) * | 2008-11-07 | 2010-12-22 | 江苏科技大学 | 一种具有自检能力的数据隔离方法 |
CN101697180B (zh) * | 2009-11-06 | 2012-07-04 | 深圳市优特普科技有限公司 | 一种计算机数据通讯隔离管理***及数据监控方法 |
CN102117182B (zh) * | 2009-12-31 | 2013-09-04 | 联想(北京)有限公司 | 一种多硬件***数据处理设备及其存储设备的切换方法 |
CN101901559B (zh) * | 2010-07-30 | 2011-12-28 | 中国船舶重工集团公司第七0九研究所 | 一种usb接口安全控制方法 |
CN102685119A (zh) * | 2012-04-28 | 2012-09-19 | 上海杰之能信息科技有限公司 | 数据发送/接收方法及装置、传输方法及***、服务器 |
CN104361277A (zh) * | 2014-10-22 | 2015-02-18 | 成都卫士通信息产业股份有限公司 | 一种usb接口的设备身份认证模块及认证方法 |
CN108959153B (zh) * | 2018-08-01 | 2021-04-06 | 广州视源电子科技股份有限公司 | 一种一体机、数据续传的方法、装置、设备和存储介质 |
CN111125801A (zh) * | 2019-12-27 | 2020-05-08 | 北京安天网络安全技术有限公司 | 一种基于usb自动切换单向远程文件传输方法及装置 |
CN113094319B (zh) * | 2021-03-25 | 2022-11-25 | 成都普沛科技有限公司 | 两主机间单向数据传输同步控制***及方法 |
CN115146323B (zh) * | 2022-07-13 | 2023-03-10 | 成都麦动信息技术有限公司 | 数据交互安全装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2520526Y (zh) * | 2001-12-21 | 2002-11-13 | 钱跃良 | 网络计算机与个人计算机动态切换装置 |
CN1412677A (zh) * | 2001-10-15 | 2003-04-23 | 英业达股份有限公司 | 高密度服务器周边设备的控制*** |
US6675250B1 (en) * | 2001-02-13 | 2004-01-06 | Cisco Technology, Inc. | Fault tolerant communications using a universal serial bus |
-
2004
- 2004-03-18 CN CNB200410017023XA patent/CN1294504C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675250B1 (en) * | 2001-02-13 | 2004-01-06 | Cisco Technology, Inc. | Fault tolerant communications using a universal serial bus |
CN1412677A (zh) * | 2001-10-15 | 2003-04-23 | 英业达股份有限公司 | 高密度服务器周边设备的控制*** |
CN2520526Y (zh) * | 2001-12-21 | 2002-11-13 | 钱跃良 | 网络计算机与个人计算机动态切换装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1564142A (zh) | 2005-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1294504C (zh) | 基于usb总线的数据隔离切换传输方法 | |
CN100471156C (zh) | 数据总线桥接器及其工作方法 | |
JP4107083B2 (ja) | 高可用ディスク制御装置とその障害処理方法及び高可用ディスクサブシステム | |
US7600157B2 (en) | Recovering from a failed I/O controller in an information handling system | |
CN103744790A (zh) | 智能可缩放存储切换架构 | |
CN101267361A (zh) | 一种基于零拷贝技术的高速网络数据包捕获方法 | |
CN106201332A (zh) | 驱动器阵列策略控制 | |
JP2007128437A (ja) | ディスクアレイ装置及びその経路障害検出方法 | |
JP2006302287A (ja) | 冗長i/oインターフェース管理 | |
US20090300308A1 (en) | Partitioning of a Multiple Logic-Unit-Number SCSI Target | |
CN102681699A (zh) | 一种实现键盘视频鼠标远程管理的***及方法 | |
CN110692058B (zh) | 提供独立备份及恢复功能的辅助存储装置及适用其的设备 | |
CN104170307B (zh) | 失效切换方法、装置和*** | |
CN109946955A (zh) | 一种双网冗余以太网控制器Linux网卡驱动控制器 | |
CN102253845B (zh) | 服务器*** | |
CN113911169A (zh) | 一种快速切换执行表示层的计算机联锁***及其切换方法 | |
CN117278890B (zh) | 光模块访问方法、装置、***、电子设备及可读存储介质 | |
CN1333333C (zh) | 码流播放卡和码流采集卡的驱动方法 | |
CN107294759A (zh) | 服务器***及数据存取方法 | |
US6970961B1 (en) | Reliable and redundant control signals in a multi-master system | |
CN1534920A (zh) | 实现内外网络物理隔离的方法及其装置 | |
CN1893332B (zh) | 一种缩短sdh复用段保护倒换时间的方法及其装置 | |
CN1204500C (zh) | 直接存储器存取控制器及直接存储器存取的控制方法 | |
CN101101558B (zh) | 用于在电力中断后进行初始化的方法和*** | |
CN107423167A (zh) | 一种基于双控存储的ISCSI target冗余控制方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070110 Termination date: 20140318 |