CN116471109B - 数据传输方法、系统、第一端及控制设备 - Google Patents
数据传输方法、系统、第一端及控制设备 Download PDFInfo
- Publication number
- CN116471109B CN116471109B CN202310522087.8A CN202310522087A CN116471109B CN 116471109 B CN116471109 B CN 116471109B CN 202310522087 A CN202310522087 A CN 202310522087A CN 116471109 B CN116471109 B CN 116471109B
- Authority
- CN
- China
- Prior art keywords
- data
- information
- header
- message
- transaction
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 671
- 238000000034 method Methods 0.000 title claims abstract description 142
- 230000006854 communication Effects 0.000 claims description 216
- 238000004891 communication Methods 0.000 claims description 214
- 238000012795 verification Methods 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 22
- 238000002372 labelling Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 58
- 230000003993 interaction Effects 0.000 description 30
- 238000012546 transfer Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 26
- 238000012360 testing method Methods 0.000 description 19
- 230000002457 bidirectional effect Effects 0.000 description 16
- 230000011664 signaling Effects 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 238000012550 audit Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 241000700605 Viruses Species 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 239000013307 optical fiber Substances 0.000 description 6
- 230000002155 anti-virotic effect Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 5
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000004659 sterilization and disinfection Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000014599 transmission of virus Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种数据传输方法、系统、第一端及控制设备。其中,一数据传输方法,其适用于与第一端连接的控制设备,所述方法包括:响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;根据所述第一预置标识,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。本申请实施例提供的技术方案,利用预置标识来隐藏相应端的地址信息,使得数据发起端无法获知目标端的地址,能保护目标端的地址信息;且既使发起端被恶意控制后,也无法对网络上的其他设备进行扫描、探测等,可有效避免恶意攻击。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据传输方法、系统、第一端及控制设备。
背景技术
随着通信技术的发展,通过网络传输数据信息已成为人们进行信息交流的重要方式。目前,网络中如客户端和服务端等不同端间的数据传输多采用TCP/IP(TransmissionControl Protocol/Internet Protocol,传输控制协议/网际协议(也叫网络通信协议))来实现,但由于TCP/IP协议在设计时缺乏传输安全的考虑,为此存在无法对传输的数据内容进行安全性管理;且因其是开放的、双向的,还存在网络中的设备容易遭到恶意攻击、数据易泄露的问题。
发明内容
鉴于上述问题,本申请实施例提供一种能至少部分改善或解决现有问题的数据传输方法、系统、第一端及控制设备。
在本申请的第一个实施例中,提供了一种数据传输方法,该方法适于第一端连接的控制设备,所述方法包括:
响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;
根据所述第一预置标识,获取所述第二端的地址信息;
根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
在本申请的第二个实施例中,还提供了一种数据传输方法,该方法适于第一端,所述方法包括:
在需向第二端传输第一数据块时,获取所述第二端对应的第一预置标识;其中,第一预置标识用于隐藏所述第二端的地址信息
基于所述第一预置标识及所述第一数据块,生成待发送的第一报文;
通过控制设备将所述第一报文发送至所述第二端;
在本申请的第三个实施例中,还提供了一种数据传输系统,该系统包括:
第二端;
第一端,用于将需向所述第二端传输的第一数据块发送至第一控制设备;
第一控制设备,用于响应于所述第一端发送的所述第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;根据所述第一预置标识,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
在本申请的第四个实施例中,还提供了一种数据传输系统,该系统包括:
目标设备;
第一端,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置标识;基于所述第一预置标识及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置标识用于隐藏目标设备的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置标识,确定所述目标设备的地址信息;根据所述目标设备的地址信息,将所述第一报文发送至所述目标设备;
在本申请的第五个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置标识;基于所述第一预置标识及所述第一数据块,生成待发送的所述第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置标识用于隐藏第二端的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置标识,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备,用于缓存接收到的所述第一报文,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
在本申请的第六个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于在需向第二端传输第一数据块时,获取第二端对应的第一预置标识及所述第一端对应的第二预置标识;将所述第一预置标识、所述第二预置标识及所述第一数据块发送至第一控制设备;其中,预置标识用于隐藏相应端的地址信息;
第一控制设备,用于确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;并根据所述第一预置标识获取到的第二端的地址信息,将所述第一报文发送至所述第二端。
第二端,用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据。
在本申请的第七个实施例中,还提供了一种控制设备,该控制设备包括:处理器及存储器,其中,
所述存储器,用于存储一条或多条计算机指令;
所述处理器,与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于实现上述上述本申请第一个实施例提供的所述数据传输方法中的步骤。
在本申请的第八个实施例中,还提供了一种第一端,该第一端包括:处理器及存储器,其中,
所述存储器,用于存储一条或多条计算机指令;
所述处理器,与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于实现上述上述本申请第二个实施例提供的所述数据传输方法中的步骤。
本申请各实施例提供的技术方案,与第一端连接的控制设备响应于第一端发送的需向第二端传输的第一数据块,获取到第二端对应的第一预置标识(用于隐藏第二端的地址信息)后,可根据第一预置标识来获取第二端的地址信息,并根据第二端的地址信息,将第一数据块发送至第二端。或者第一端在需向第二端传输第一数据块时,其可根据所获取到的第二端对应的第一预置标识(用于隐藏第二端的地址信息)及第一数据块来生成待发送的第一报文,然后再通过相应的控制设备将第一报文发送至第二端。本申请提供的各方案利用预置标识来隐藏相应端的地址信息,使得数据发起端无法获知目标端的地址,能保护目标端的地址信息;且既使发起端被恶意控制后,也无法对网络上的其他设备进行扫描、探测等,可有效避免恶意攻击。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要利用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种现存的不同端间数据传输的原理性示意图;
图2a为本申请一实施例提供的传输事务的原理性示意图;
图2b为本申请一实施例提供的与图2a相应的传输方式原理性示意图;
图3a至图3d为本申请一实施例提供的数据传输系统的结构示意图;
图4a至图4c为本申请另一实施例提供的数据传输系统的结构示意图;
图5a至5e示出了本申请又一实施例提供的数据传输系统的结构示意图;
图6a为本申请实施例提供的在第一端和第二端上分别部署的相应控制设备的设备驱动及API接口的示例;
图6b为本申请实施例提供的一个控制设备可与另外其他的多个控制设备连接的示例;
图7a至图7c为本申请实施例提供的控制设备的具体形态示意图;
图8a为本申请实施例提供的预置的传输事务属性信息集合示例;
图8b为本申请实施例提供的示传输事务属性信息中事务属性类型字段的字段值的高八位配置原理流程示意图;
图9为本申请实施例提供的配置文件包含的配置信息示意图;
图10为本申请实施例提供的控制设备与相应端建立通信连接的原理性示意图;
图11为本申请实施例提供的数据传输方法的流程示意图;
图12为本申请另一实施例提供的数据传输系统的结构示意图;
图13a至图13c为本申请实施例提供的数据传输交换原理性示意图;
图14为本申请一实施例提供的基于传输事务属性信息实现对需传输的数据进行传输(可称为数据结构化传输)的原理性示意图;
图15为本申请一实施例提供的数据结构化传输的应用示例;
图16a为本申请一实施例提供的控制设备的结构示意图;
图16b为本申请一实施例提供的与控制设备连接的数据端的结构示意图;
图17为本申请另一实施例提供的数据传输装置的结构示意图。
具体实施方式
目前,不同端间在通过网络传输数据信息时,多是采用TCP/IP协议并借助于部署在不同端间的网络设备(如交换机、路由器)来实现。例如,参见图1,第一端与第二端间采用TCP/IP协议进行传输数据的过程如下:以第一端为客户端、第二端为服务端、客户端请求服务端上的数据资源为例,客户端输入部署在服务端的网站的域名www.####.com,并针对域名www.####.com向DNS(Domain Name System,域名解析服务器)(图中未示出)发送一个请求,DNS将域名www.####.com解析成服务端的IP地址(为目标IP地址)反馈给客户端;客户端根据自身的IP地址(为源IP地址)、目标IP地址及请求参数(即为具体待传输的一数据块)生成一个请求报文,由于该请求报文需要发送给服务端所处的另一个子网(为目标子网)中以发送至服务端,所以请求报文常会先发送至交换机,交换机再将自身的MAC(Medium/MediaAccess Control)地址和相应网关的MAC地址写入请求数据包,并写入完成后,进一步地会根据网关的MAC地址将请求报文发送至网关(为一种特殊的路由器),然后通过路由算法,经过路由器的不断转发最终将请求报文发送到目标子网,达到服务端。由上示例可见,现有不同端之间直接采用TCP协议进行数据传输,仅是简单地根据数据传输所需用到的如源IP地址、目标IP地址等一些通用信息,来结合待传输的数据,生成相应的报文以实现数据传输,并未考虑数据传输安全性问题,其中,报文中包含的具体内容可参见图1中示出的报文A包含的具体内容。综上,从网络通信协议角度来看,上述所述的不同端之间直接采用TCP/IP协议进行传输数据的方案,因TCP/IP协议在设计时缺乏安全性问题的考虑,导致会存在以下几个问题:
1、无法对传输的数据内容进行安全管理
TCP/IP协议是用于在多个不同网络间实现数据信息传输的协议族,其往往只负责数据的传输,并不负责数据传输的结果,也无法识别传输数据的内容或者类型,这致使了恶意应用可以发起网络攻击流量,数据安全无法保证。例如,继续参见图1,采用TCP/IP协议的的客户端和服务端是直接进行通信连接,若客户端和服务端中的一个端发送了恶意的指令数据,另一个端则也会自动接收并执行(或处理)该指令数据。
2、无法阻挡恶意攻击、网络服务难以管理
由于TCP/IP协议是开放的,同一个网络内的不同设备是能相互访问的,这导致了恶意攻击端(黑客端)可通过控制网络内的一台设备,将其控制的设备作为跳板机,发起对网络内其他设备的扫描、攻击等恶意行为。此外,只要网络内的一设备开启了网络服务端口,就可以被网络内其他设备访问,这导致了网络服务难以管理。例如,继续参见图1,若服务端开启了网络服务端口,服务端就能被客户端访问,进而可能会存在私自搭建FTP(FileTransfer Protocol,文件传输协议)、文件共享等服务,或开放的服务端可能被恶意客户端进行访问、攻击,或存有恶意行为的服务端攻击、访问客户端,等等。
3、TCP/IP协议的驱动程序是通用的,易导致设备被控制
TCP/IP协议的驱动程序,一般为计算机设备操作系统的网络通信通用公共接口(网络访问API)程序。该通用公共接口程序一般不受限制,任何程序(如计算机的网络接口)均可调用,为此常易网络内的设备被控。例如,若网络内的一计算机设备被木马、病毒等恶意软件控制后,可以直接使用该计算机设备的网卡接口进行通信,导致该计算机设备被控制,甚至该计算机设备可能被控制地向网络内上的其他设备发起恶意攻击。
4、存在数据泄露的风险
由于TCP/IP协议是双向的,采用TCP/IP协议直接通信连接的不同端均能接收和发送数据,为此对于只有接收数据需求的设备端也是可以对外发送数据的,从而易存在数据泄露风险。例如,继续参见图1,采用TCP/IP协议直接通信的客户端和服务端二者是均能接收数据和发送数据的,若假设服务端只有接收数据需求,那么客户端在对服务端进行访问以获取服务端上的数据时,服务端也是可以响应该客户端的访问,向客户端发送相应数据的,相应地,如果服务端遭到恶意程序控制,也就会造成服务端的数据泄露。
为解决或部分解决上述不同端直接采用TCP/IP协议进行数据传输存在的一些问题,目前主要存有以下几种解决方案:
第一种是通过通信硬件保护方案,具体地是:在网络内部署网络安全防火墙。现有的各类网络安全防火墙主要分为如下两类:访问控制型防火墙、内容安全型防火墙。访问控制型防火墙,是通过设置黑白名单(如源IP地址和源端口、目标IP地址(也称宿IP地址)和目标端口)等策略方式,设置网络内的不同设备之间能否进行通信。上述访问控制型防火墙的设置方式,在大型网络环境下,维护技术人员是难以充分进行访问控制的,难免会存有疏忽,导致策略设置有漏洞,从而易使恶意者非法访问网络内设备。内容安全型防火墙,是以木马、病毒等恶意程序的样本数据库、威胁IP数据库、可疑行为数据库等识别方式,对具有的通信内容(如源IP地址和源端口、目标IP地址(也称宿IP地址)和目标端口、通信数据内容)进行检测,阻止恶意通信访问。上述内容安全型防火墙存在的问题是:由于恶意程序、威胁IP等样本库往往是对已有的攻击行为进行分析后的结果,为此会导致发现比较滞后且需要更新,这使得恶意者可以利用更新前对应的时间差进行发起攻击;此外,也无法对未知的恶意行为进行检测发现。而且,由于防火墙一般为公开售卖或公开下载,这使得恶意者可基于防火墙的样本库等进行分析,通过对恶意程序的程序特征、数据流量特征等进行修改方式,绕过防火墙(“兔杀”技术)实施攻击。另外,网络系统的应用程序之间的传输协议是私有的,由开发商自行约定,由于开发商众多,网络系统复杂多变,防火墙难以一一进行协议分析,导致几乎无法对通讯内容进行有效的解析、审计或拦截。
第二种是通过对设备进行安全保护方案,具体地为:可在设备上安装安全保护软件。例如,继续参见图1,可使用在服务端或客户端上安装杀毒软件、部署安全控制管理系统或域控配置等方式,来保证服务端或客户端的安全。上述采用杀毒软件的方式存在的问题为内容安全型防火墙存在的问题类似,只能查杀已有的病毒或恶意行为,并也能被恶意者通过修改恶意程序的程序特征、数据流量特征等方式,绕过杀毒软件实施攻击。布署安全控制管理系统或域控配置等方式,是将网络内的普通设备的操作权限交由主控设备来控制,以实现普通设备的接入控制、访问资源控制或下发软件更新包等等。当主控设备被恶意者攻击控制后,所有的普通设备存在可能被全部恶意控制的风险。
第三种是通过部署单向传输控制设备,以满足网络内存在数据单向传输需求的设备。例如,可以通过部署如单向光闸等单向传输控制设备,来满足设备数据单向传输的需求,但是这会涉及到通信的物理层面上的改造,且单向传输控制设备的制造成本高、设备体积大、适用范围比较有限。上述中,单向光闸是一种可将数据信息从低密网(公网)单向可靠地传输到高密网(内网/专网)的设备。
综上分析,为解决现有的网络通信协议(TCP/IP协议)、网络安全保护措施、安全防护软件等存在的问题,本申请各实施例提供了新的数据传输技术方案。具体地为:利用预置标识来隐藏相应端的地址信息,使得数据发起端无法获知目标端的地址,能保护目标端的地址信息;且既使发起端被恶意控制后,也无法对网络上的其他设备进行扫描、探测等,可有效避免恶意攻击。上述两种技术方案可以单独使用,也可以混合使用,本申请对此不作限定。此外,本申请方案适用范围广,除TCP/IP协议外,还可以应用于现有各类数据传输协议。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。而本申请中术语“或/和”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如:A或/和B,表示可以单独存在A,同时存在A和B,单独存在B这三种情况;本申请中字符“/”,一般表示前后关联对象是一种“或”关系。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。此外,下述的各实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请提供的方法实施例之前,先对本申请提供的技术方案可基于的系统架构进行说明。
具体的,本申请实施例提供的方法可基于图3a至图5e所示的系统架构实现。如图3a所示的本申请一实施例提供的数据传输系统的结构示意图,所述数据传输系统包括:第一端10和第二端20,其中,
第一端10,用于确定第一数据流对应第一传输事务的第一事务信息;在需向所述第二端20传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端20;其中,所述第一目标头信息用于校验所述第一报文是否符合要求;
第二端20,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,从所述第一报文中获取并缓存所述第一数据块。
具体实施时,上述第一端10和第二端20为需进行数据交换的数据端,二者类型可以相同,也可以不同。例如,第一端10和第二端20中的一个可为客户端,另一个可为服务端;或者,第一端10和第二端20均为客户端;或者,第一端10和第二端20均为服务端,此处不作限定。图3a中示意性的示出了第一端10为客户端、第二端20为服务端的示例。其中,上述客户端可以是台式计算机、智能手机、笔记本电脑、平板电脑、工业控制设备、嵌入式设备、智能穿戴设备(如智能手表)、智能物联网(Internet of Things,IOT)设备等任意设备,智能物联网设备可包括但不限于:智能家电设备(如智能音箱、智能冰箱等)、自动驾驶车辆等。上述服务端可以是实体服务器、虚拟服务器、容器服务器、云端服务平台等等,本实施例对此不作具体限定。
如图3a所示,在第一种可实现的技术方案中,第一端10与第二端20之间仍是采用TCP/IP协议,通过交换机、路由器等中间网络设备直接通信连接,具体地,第一端10和第二端20各自可通过自身的网络接口使用TCP/IP协议与相应中间网络设备通信连接,以此实现二者的通信连接,其中,网络接口可以是但不限于以太网接口。但是,不同于现有采用TCP/IP协议传输数据时,仅简单地根据数据传输所需用到的源IP地址、目标IP地址等一些通用信息及待传输的数据块,生成相应的报文以此实现数据传输(具体可参见与图1相关的内容),本实施例为保障数据传输安全性,在需要向第二端20传输一个如数据块a时,会基于该数据块a所属的传输事务的事务信息,为该数据块a确定出相应的目标头信息,进而基于该目标头信息及数据块a生成相应待发送的报文以实现数据块a的传输。上述中,数据块a所属的传输事务是指数据块a所属的数据流对应的传输事务。
数据流表示一个数据序列,该数据序列中包含一个或多个数据块,例如,在需传输一个较大的文件数据时,往往是将该文件数据划分成若干个数据块并将该若干个数据块组成一个数据序列,以流的方式实现文件传输。
在本实施例中,传输事务是单方向的通信传输行为,其表示用于完成一项具体的传输工作。具体地,传输事务可理解为是一组逻辑上相关联的传输操作,执行一个传输操作用于传输一个待传输的数据块,其中,传输一个待传输的数据块时,会利用本实施例提供的方案针对待传输的数据块生成相应的报文以进行传输,有关生成的报文的具体结构格式将在下文展开详述。例如,参见图3a,第一端10需向第二端20传输一个文件数据流(如“财务报表.xls”文件对应的数据流),传输该文件数据流便对应一个传输事务,执行该传输事务中的一个传输操作只能传输文件数据流中的一个数据块;进一步地,第二端20在完成文件数据流的接收后,向第一端10返回成功接收到文件数据流的响应信息,便为另一个传输事务。由上示例可见,传输事务同时还有不同端(如客户端和服务端)的区别。
图2a示出了传输事务的原理性示意图,其中,示出的报文中包含的结构化头即为本实施例上下文所述的为相应待传输的数据块确定的目标头信息,只是在不同描述场景下采用了不同表达方式。图2b针对图2a示出了三种不同传输方式(第一方式、第二方式、第三方式),有关此三种传输方式以及结构化头可包括的内容的具体介绍,将在下文描述“目标头信息”时展开详述。
本实施例在针对第一端10与第二端20间的数据传输交换进行配置时,同时会针对第一端10与第二端20间的数据传输交换配置相对应传输事务的相关信息,如传输事务的传输事务属性信息、事务种类与事务属性标识(也叫事务属性唯一标识)的对应关系等。其中,一传输事务的传输事务属性信息包括的内容如下表1所示:
表1
上述表1中,传输事务属性信息中事务属性名称、事务标注及校验信息等字段的字段值类型均为String(代表字符串,为数据长度不确定的字符或字符串,长度根据实际需要进行变化)类型,事务关联的预置标识及事务属性标识等字段的字段值类型为32位二进制数,事务使用角色、事务属性类型信息及校验信息等字段的字段值类型为16位二进制数。具体地,
事务属性名称字段,用于指示传输事务的事务属性名称。例如,参见图2a,第一端10需向第二端20请求网络文件资源,针对该“请求网络文件资源”传输事务,可将事务属性名称字段的字段值配置为“请求网络文件资源”;再例如,第一端10需向第二端上传如jpg文件,针对该“上传jpg文件”传输事务,可将事务属性名称字段的字段值配置为“上传jpg文件”,等等。在执行一数据块传输时,可以对该数据块所属的传输事务的事务属性名称进行显示,以便用户通过显示出的事务属性名称可以清晰的了解当前所进行的数据传输。
需补充说明的是,为传输事务配置事务属性名称时,可基于传输事务种类来进行配置,以使事务属性名称可透传出相应传输事务的事务种类。当然也可以采用其他方式进行配置,本实施例对此并不作限定。
事务标注字段,用于指示传输事务的备注信息(或说标注信息,也即下文其他实施例中涉及的第一标注信息)。例如,承接上述针对事务属性名称字段的举例,针对“请求网络资源”传输事务,可将事务标注字段的字段值配置为“第一端请求”;针对“上传jpg文件”传输事务,可将事务标注字段的字段值配置为“第二端响应”,等等。
事务关联的预置标识(也叫通信标识符)字段,用于指示传输事务关联的预置标识,该预置标识可以是相应的目标进制值,如二进制值、八进制值等;或者,也可以是基于相应的目标进制值如二进制值,结合编码表(如ASCII码表)得到的目标进制值对应的字符串,等等,本申请实施例对预置标识的数据类型形式并不作具体限定。在一些实施例中,预置标识可以为相应端的地址信息对应的字符串(如IP地址对应的具有规律性的字符串),即预置标识不具有隐藏相应端的地址信息的作用;或者,在另一些实施例,预置标识具有隐藏相应端的地址信息的作用,比如,预置标识可为随机生成的不具有规律性的随机字符串,其关联的关联信息包含相应端的地址信息。有关预置标识的相关描述,将会在下文展开具体介绍。
事务属性标识字段,用于指示传输事务的传输事务属性信息的唯一标识(如传输事务属性信息ID),本实施例中简称为事务属性标识,其一般为随机字符串。字符串一般由数字、字母及下划线中的至少一项组成,优选地,在本实施例中事务属性标识及事务关联的预置标识由数字和字母中的至少一项组成,更为优选的,预置标识可以为二进制值。
事务使用角色字段,用于指示可使用(或创建)此传输事务的创建端(如第一端或第二端等数据端)的身份信息。具体实施时,该事务使用角色字段对应的字段值为16位二进制值,不同的位具有不同的表征含义,具体地,以从右至左的角度看16位二进制值,令第1位至第8位为低八位为例,低八位中的第1位至第4位可用于表征传输事务创建端的角色,比如,将16位二进制值的低八位采用16进制表示,若低八位为0x01,则表征传输事务需由第一端(如客户端)创建;若低八位为0x00,则表征传输事务需由第二端(如服务端)创建。剩余的其他位用于表征传输事务创建端的更具体角色,如可表征传输事务只能由A类(高级会员)或B类(普通会员)的客户端创建、执行等,或只能由A类或B类的服务端进行创建、执行等。承接上述“请求网络文件资源”对应的传输事务示例,具体举一示例,假设“请求网络文件资源”对应传输事务的事务使用角色对应的值为0x00 0x01,则可表示“请求网络文件资源”对应的传输事务具体可由B类的客户端创建及执行等。
事务属性类型字段,用于指示传输事务的事务属性类型信息,比如,控制传输事务(一般与应用系统运行相关,如发送网络测试、发起心跳包)、下载传输事务(如读取网络数据资源)、上传传输事务(如发送网络数据)等一些基本操作类型。具体实施时,事务属性类型字段对应的字段值可为16位二进制值,不同的位具有不同的表征含义。具体地,仍以从右至左的角度看16位二进制值,令第1位至第8位为低八位为例:
低八位中的第1位至第4位可用于表征待传输数据的传输方向,换句话也可说,用于表征待传输数据所属数据流的传输方向,比如第1位至4位若为“0001”,可表征数据从第一端(如客户端)向第二端(如服务端)传输;若为“0000”,则可表征数据从第二端向第一端传输。以及,低八位中的第5位至第8位可用于表征数据的类型,换句话也可说,用于表征待传输数据所属的数据流的类型,比如第5位至第8位若为“0001”,则表示数据流为文件数据流,若为“0000”,则表示为普通数据流。由上示例,若将16位二进制值的低八位采用16进制表示,若低八位为0x01,则表征待传输数据所属的数据流为普通数据流、且数据流从第一端(如客户端)向第二端(如服务端)传输;若低八位为0x10,则表征待传输数据所属的数据流为文件数据流、且数据流从第二端向第一端传输。
剩余的高八位(第9位至16位),则可用于指示出执行数据传输时,是否需要为数据添加数据头以及需为数据添加何种格式类型的数据头。例如,同上述低八位,在将16位二进制值的高八位采用16进制表示的情况下,若高八位为0x00,则可表示无需为数据添加数据头(即无需使用数据头);若高八位为0x01,则可表示需为数据添加普通数据头格式的普通数据头;若高八位为0x02,则可表示需为数据添加文件数据头格式的文件数据头;若高八位为0x03,则可表示需为数据添加邮件数据头格式的邮件数据头;若为0x04,则可表示需为数据添加数据库操作数据头格式的数据库操作数据头,等等。有上,上述高八位可理解为需为数据添加的数据头对应的数据头格式标识,以便在确定需要为数据添加数据头时,可按相应的数据头格式标识调用对应的数据头模板,然后对调出的数据头模板包含的多个字段进行配置以实现为数据添加数据头。考虑到通过上述高八位来表示数据头格式标识,能够表示出的数据头格式的个数具有较大限制性(如最多只能够表示出253个左右的数据头格式),为了可以容纳更多自定义扩展的数据头格式,本实施例中,当上述高八位为0xFF,则表示需为数据添加扩展的数据头格式的数据头,相应地,上述传输事务属性信息中还可包括扩展的数据头格式唯一标识字段(上述表1中未示出),用于指示扩展的数据头格式的唯一标识(如编号),当在确定需为数据添加扩展的数据头格式的数据头情况下,进一步地可以按照对应扩展的数据头格式唯一标识字段的字段值来调用相应扩展的数据头格式模板。例如,参见图8a,针对“即时通讯发送文本消息”这一服务场景下,服务端需要针对客户端发送的文本消息返回相应的发送状态,为该“返回发送状态”传输事务配置的传输事务属性信息中事务属性类型字段的字段值为“0xFF 0x00”、扩展的数据头格式唯一标识为“0x01 0x000x00 0x01”,则在服务端启动“返回发送状态”传输事务以向客户端返回相应的发送状态数据时,基于“返回发送状态”传输事务的传输事务属性信息中的事务属性类型信息,会先确定出需为发送状态数据添加的数据头为扩展的数据头格式,进一步地,按照扩展的数据头格式唯一标识“0x01 0x00 0x00 0x01”,可从预置的多个数据格式头中调用出相应扩展的数据头格式模板,并基于发送状态数据的数据信息配置调用出的数据头格式模板包含的多个字段的字段值,以实现为发送状态数据添加数据头。扩展的数据头格式唯一标识的数据类型可以根据实际需要进行变化,以上为4字节,还可以为单字节、双字节、8字节等等。
综上,上述事务属性类型字段指示的传输事务的事务属性类型信息可包含但不限于如下中至少一项内容:数据传输方向、数据类型、数据头使用信息。
以下表2a至表2d分别示出了上述所述的普通数据头、文件数据头、邮件数据头及数据库操作数据头等这几种数据头的具体数据头格式,以及表2e示出了一扩展的数据头的具体数据头格式。
表2a 普通数据头的数据头格式
其中,上述数据头长度字段,用于指示数据头的字节长度(为32位+标注信息的字节数)。标注信息字段,用于指示如服务端、客户端等各端或下文其他实施例中所述的控制设备进行识别、判断的标记,或者用于阅读的字符串,比如,创建时间、修改时间、更新时间、数据完整性校验值(hash值)等等。
表2b 文件数据头的数据头格式
其中,上述文件头长度字段,用于指示文件头的总字节长度,可用于划分文件头与文件数据。文件大小字段,用于指示文件数据的总字节长度。发送人信息字段,用于指示发送文件的发送人的信息,如用户ID、用户昵称等。发送时间字段,用于指示发送文件的时间戳。文件属性字段,用于指示文件的属性。扩展名字段,用于指示文件类型,如扩展名字段的字段值可为文件后缀。文件名字段,用于指示文件的名称(如test)。文件名长度字段,用于指示文件名的字节长度(也即字节数,例如test为4字节,可以兼容长文件名)。标注信息字段,用于指示如客户端、服务端等各端或或下文其他实施例中所述的控制设备进行识别、判断的标记(即标注(备注)信息);或者用于阅读的字符串,比如,创建时间、修改时间、更新时间等等。标注信息长度字段,用于记录标注信息的字节数。
表2c 邮件文件数据头的数据头格式
其中,文件头长度字段,用于指示邮件文件头的总长度。主题字段,用于指示邮件的主题。发送人地址字段,用于指示发送人的地址,如为发送人的邮箱地址。接收人地址字段,用于指示接收人的地址,如接收人的邮箱地址。发送时间字段,用于指示发送邮件的时间戳。附件文件类型字段,用于指示邮件中携带的附加文件的类型,如为压缩包。有关标注信息字段,可参见上述针对表2a或表2b进行介绍时所述的相关内容。
表2d 数据库操作数据头的数据头格式
其中,操作类型字段,用于指示针对数据库进行的操作,如删除、增加、修改、查询等操作。操作数据库地址标识符字段,用于指示数据库的地址,如数据库对应的IP地址。操作数据库标识字段,用于指示操作的数据库的名称。操作表标识符字段,用于指示操作的数据库中数据表的名称。操作影响字段,用于指示操作影响的数据表中的字段,如若对应的字段值为*,可表示影响数据表中的所有字段。有关文件头长度字段、标注信息字段,可参见上述针对表2a或表2b进行介绍时所述的相关内容。
表2e 即时通讯消息内容特征数据头的数据头格式
上述表2e中,消息类型字段,可用于指示消息的重要性。比如,若消息类型字段对应的字段值为0x01,表示为普通消息;若消息类型字段对应的字段值为0x02,表示为重要消息。消息关键词字段,用于指示消息中命中预设的关键词或分词等。有关文件头长度字段,可参见上述针对表2a或表2b进行介绍时所述的相关内容。
继续参见表1,表1中的分组编码(为一种字典)字段,具体可分为一类编码字段、二类编码字段及三类编码字段,是用于指示不同场景下的数据传输操作。当一类编码字段、二类编码字段及三类编码字段各自的字段值均为相同的设定值(如均为“0x00 0x00”)时,表示暂不进行分类。这里设置分组编码字段对应要实现的分组功能类似于社交软件中的好友分组功能,以便于在需要管理的传输事务较多(比如,但客户端这一上层应用为一个复杂的系统或者多个复杂的系统,便可能会出现较多需要管理的传输事务)的情况下,可对传输事务进行分组进行区分。在利用上述一类编码字段、二类编码字段及三类编码字段对传输事务进行分组划分时,可采用类似于省、市、县的有上至下的划分方式,一类编码字段用于指示一级分类、二类编码字段用于指示基于一级分类下的二级分类,三类编码字段用于指示基于二级分类下的三级分类,这样便于管理传输事务。例如,一类编码字段的字段值可为某一公司的公司代码A,二类编码字段的字段值可为该公司开发的上层应用a1以及上层应用a2,基于上层应用a1的三类编码字段的字段值可为具体操作的动作(如HTTP请求、即时通讯发送数据、接收数据、上传数据等等),以此便于维护人员对传输事务进行查看、编辑和授权等各种管理,同时也便于预设相应的控制设备对某个编码字段的字段值进行允许\禁止传输,实现直接作用于该编码字段的字段值关联的传输事务。上述是从隶属关联的角度来介绍一类编码字段、二类编码字段及三类编码字段的,当然,也可以从其他角度对一类编码字段、二类编码字段及三类编码字段进行划分,比如,可以按协议类型、应用类型、传输方向、客户端或服务端等数据端的重要程度、数据重要程度等进行划分,本实施例对此不作限定。
校验信息字段,指示用于校验数据的校验信息,校验信息可以为但不限于校验码,校验码可用于校验具体传输的数据是否符合相应传输事务的要求(如校验数据格式或数据内容等是否符合要求)。例如,参见图3a,继续承接上述针对事务属性名称列举的示例,针对“请求网络文件资源”传输事务,可将数据校验码字段的字段值配置为但不限于GET(或GETFILE);针对“上传jpg文件”传输事务,可将数据校验码字段的字段值配置为但不限于0xFF 0xD8 0xFF 0xE0,等等。校验传输的数据内容是否为限定的值,用于数据传输的安全控制。有关使用数据校验码对传输的数据进行校验的介绍,将会在本申请下文所列举的具体实施例中进行详细介绍,此处不作赘述。
图8a示出了本实施例以第一端10为客户端、第二端20为服务端为例,从第一端10的角度,针对第一端10与第二端20间的数据传输交换,预设的多个传输事务的传输事务属性信息的示例。图8b为示出的传输事务属性信息中事务属性类型字段的字段值的高八位配置原理流程示意图。
这里需要补充说明的是,本申请上下文各表(如上述表1或表2a至2e,或者下文中所述的表3)中的字段值对应的数值类型、长度大小等,可根据实际需要灵活自行调整。例如,数据头长度(或文件头长度)可为32字节或32位,根据实际需要,也可以采用8、16、64、128、256字节或位等,还可以采用String等不特定长度的数据类型,本申请对此不作限定。
本实施例提供的技术方案中,为保证数据传输安全,在对待传输的数据进行处理以生成相应符合结构规则要求的结构化数据(即下文所述的报文(如第一报文、第二报文))时,便是利用待传输的数据块所属的传输事务的传输事务属性信息实现的,此外,还可能会利用到传输事务的事务标识,其中,事务标识可自主生成。基于此,综合上文内容,一具体可实现方案中,上述第一端10,在用于确定第一数据流对应第一传输事务的第一事务信息时,可具体用于:
S10、为所述第一传输事务生成相应的事务标识;
S11、获取所述第一传输事务的传输事务属性信息。
即,第一传输事务的第一事务信息包括:第一传输事务的事务标识、第一传输事务的传输事务属性信息。其中,事务标识为第一端针对此次第一传输事务自主生成的,其可为顺序性的编号或也可为随机字符串(如随机数)等。一实施例中,上述S11“获取所述第一传输事务的传输事务属性信息”,可包括如下步骤:
S111、确定所述第一传输事务的事务属性标识;
S112、基于所述第一传输事务的事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
具体实施时,第一数据流可以为第一端10上的第一应用(如浏览器应用、社交应用、办公应用等)的数据流,更具体地,第一数据流可以为文件数据流(如jpg文件二进制数据、excel表格文件二进制数据(如“财务报表.xls”))、请求数据流(如请求网络资源)、邮件收发数据流(如发送或接收的邮件)等,此处不作限定。根据第一数据流的传输需求信息,可确定第一数据流对应第一传输事务所属的事务种类,其中,传输需求信息可包含但不限于数据传输的方向、数据类型、传输目的(如数据存储、查询数据、操作数据库)等等。然后,根据预置的事务种类与事务属性标识的对应关系,便能够确定出第一数据流对应第一传输事务的事务属性标识。即,
上述S111“确定所述第一传输事务的事务属性标识”的一可实现方案为:
S1111、根据所述第一数据流对应的传输需求信息,确定所述第一传输事务所属的事务种类;
S1112、根据预置的事务种类与事务属性标识的对应关系(如可参见与下文表5相关内容),确定与所述第一传输事务所属的事务种类存在对应关系的事务属性标识。
具体实施时,若根据预置的事务种类与事务属性标识的对应关系,确定无与第一数据流对应第一传输事务所属的事务种类存在对应关系的事务属性标识,那么也即说明无法在预置的多个传输事务属性信息中查找到第一数据流对应第一传输事务的事务属性信息,这种情况下,则表明根据本实施例所配置的第一端与第二端间的数据传输安全控制信息,是不允许对第一数据流中的数据块进行传输的,数据传输失败。有关对所配置的第一端与第二端间的数据传输安全控制的具体介绍,将在下文展开说明。
上述S112中,第一传输事务的事务属性信息,可包括:事务属性名称、事务标注信息(第一标识信息)、事务属性标识、第二端对应的第一预置标识、事务属性类型信息、校验信息。第一预置标识可为所述第二端的地址信息对应的字符串;或者,第一预置标识为能用于隐藏第二端的地址信息的字符串,如二进制值。事务属性类型信息包含如下中至少一项信息:数据传输方向(更具体地为第一数据流的传输方向,如将第一数据流(具体为第一数据流中的数据)从第一端发送至第二端)、数据类型(更具体地为第一数据流的数据类型,如为文件数据流等)、数据头使用信息(如数据传输时需为数据添加数据头等)。有关对上述第一预置标识的介绍,将在本申请其它实施例中展开详细述。此外,事务属性信息中除了可包括上述内容之外,还可包括其它内容,有关事务属性信息可包括的具体内容介绍,可参见上文相关内容。
进一步地,为了能够以低成本的方式有效对数据传输进行安全保护,防止恶意攻击等,当第一端10需向第二端20传输第一数据流的第一数据块时,本实施例会基于第一数据流对应第一传输事务的事务信息,为第一数据块确定相应需添加的第一目标头信息,比如符合预设报文头格式的报文头,进而对第一目标头信息及第一数据块进行整合,以此生成符合预设数据结构规则的结构化第一数据块(即下文所述的报文)。基于此,一具体可实现方案中,上述第一端10,在用于基于所述第一数据流对应第一传输事务的事务信息,为所述第一数据块确定相应的第一目标头信息时,可具体用于:
S20、获取所述第一数据流中数据块对应的头信息传输方式;
S21、根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
S22、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头。
上述S20中,头信息传输方式也即指的是如图2b中示出的三种头信息传输方式(第一方式、第二方式及第三方式)中的任一种。其中,第一方式为全量结构化头的传输方案,第二方式和第三方式为部分全量结构化头、部分简要化结构头的传输方案。以结构化头(也即本实施例中涉及的目标头信息(如第一目标头信息))包括结构化的报文头为例,结构化的报文头是基于预设报文头格式生成的,全量化结构头指的是包含预设报文头格式中相应的所有参数(即下文表3中示出的所有参数),简要化结构头指的是包含预设报文头格式中相应的部分参数(如参见下文表3,可包含当前需传输的数据块的块号(也即图2b中示出的当前块号)、传输事务的事务标识(也即图2b中示出的传输事务ID)),其中,图2b中示出的传输事务属性ID即是指下文涉及的事务属性标识。
由于数据流中的数据块在进行可靠传输和顺序传输的正常传输(如网络正常、未出现阻塞等不良现象)情况下,相应接收方首先接收到的数据块往往为数据流中排序第一的数据块,基于此,上述第一方式和第三方式,在需对一数据流中排序第一的数据块(如图2b中示出的数据块0)进行传输时,均采用的是全量结构化头对数据块0进行结构化(也及针对数据块0生成本申请涉及的报文),这可使得接收方在接收到数据流对应的第一个结构化数据块(数据块0对应的结构化数据块0),便可针对数据流进行校验等处理,无需进行等待。若采用第二方式,则接收方需要等待接收到具有全量结构化头的结构化数据块时,才能执行校验等处理。
此外,上述第一方式中,对数据流中的每个数据块,均采用全量结构化头的传输方案,可使得接收方基于任意接收到的数据流对应的结构化数据块,均可进行如校验等处理,利于应对网络阻塞等不良现象,提高传输可靠性。
对于上述第二方式,其实际上能很好的适用于一些非顺序或非可靠传输。例如,继续参见图2b,假设一数据流包括3个数据块,即数据块0、数据块1及数据块2,其中,数据块0、数据块3分别为数据流的首个数据块、最后一个数据块;发送方(如客户端)按照第二方式,顺序性的先后向接收方发送了数据块0至数据块2各自对应的结构化数据块,虽第3个发送的数据块2对应的结构化数据块2具有全量化结构头,但由于网络原因(如网络阻塞、网络抖动),使得接收方实际接收到的结构化数据块顺序与发送方发送的顺序不同,比如接收方实际接收到的结构化数据块的先后顺序为:数据块2对应的结构化数据块2、数据块1对应的结构化数据块1、数据块0对应的结构化数据0,这种情况下,接收方第一次接收到结构后数据块(即结构化数据块2)便可进行如校验等处理,无需等待。有上可见,上述第二方式实际上可理解为第三方式的实际应用扩展,用于提高可靠性和解决阻塞等的问题。
需补充说明的是,图2b中示出的“当前块号”为可选项,在对数据流的多个数据块进行可靠传输和顺序传输的情况下,也可不使用块号;其中,可靠传输是指采用一系列技术来保证信息(数据块)在发送方和接收方准确、精确的传输。
上述S21中,第一数据块的相关信息,可包括但不限于:第一数据块所属的第一数据流、第一数据流的流信息(如流类型、流大小等)、第一数据块的大小、第一数据块在第一数据流中的排列顺序等。
预设报文头格式如下表3示出的报文头格式:
表3 预设报文头格式
其中,上述发送方对应的第二预置标识字段,为可选的,用于指示发送方对应的第二预置标识,其可为表示发送方的地址信息的字符串(如私网IP地址、或MAC地址、或主机名称对应的字符串),用于控制设备、网络中间设备进行监测、审计或拦截;或者为用于隐藏发送方的地址信息的字符串。接收方对应的第一预置标识字段,为可选的,用于指示接收方对应的第一预置标识,其可为表示接收方的地址信息的字符串,或者为用于隐藏接收方的地址信息的字符串。在本实施例中,由于是第一端10需向第二端20发送数据,故第一端10为发送方,第二端20为接收方。上述预置标识,也可称为通信标识,为不同端进行通信的标识符,有关对预置标识的具体介绍,将会在下文本申请提供的其它实施例中展开详述。
有关事务属性标识字段的描述,可参见上文相关内容。
事务标识字段,用于指示传输事务的事务标识(如为传输事务的ID);其中,事务标识可以为随机字符串,或者也可以为顺序性的数字编号等。例如,参见图3a,第一端10当前需针对其上一应用的数据流启动一次传输事务,则可随机生成一字符串,作为此次启动的传输事务的事务标识。
报文大小字段,优选选取用于指示当前传输的一个结构化数据(如下文所述的针对第一数据块生成的待发送的第一报文)的大小(或称字节长度)。例如,以第一数据块为例,在仅需为第一数据块确定相应的报文头情况下,报文大小字段的字段值便为报文头与第一数据块的总大小(即报文头的大小+第一数据块的大小)。当然在其他实施例中,报文大小字段也可以单纯用于指示当前待传输的数据块(如第一数据块)的大小,本实施例对此不再限定。这里需要补充说明的是,上述表3中的“报文大小”在本申请下文其他实施例中也被称为“数据包大小”(如可参见下文涉及的表6或表72等)。
块总数字段,用于指示传输事务对应的数据流中数据块的总数量;其中,总数量为设定值时,表示所述数据流为数据块的数量未获知的流。比如,若本实施例中的第一数据流是由对固定大小的文件数据或超文本数据进行划分得到的多个数据块组成,那么相应地,块总数字段的字段值便为多个数据块的总数量(大于0);反之,若块总数字段的字段值为设定值,比如为0时,表示第一数据流为无限大的流,比如第一数据流为监控设备的监控视频、直播音视频等数据流;再比如为-1时,则表示第一数据流为有限大但其包含的数据块的数量暂时未知。需说明的是:由于一个数据块对应一个报文,这里的块总数字段,也可理解为用于指示传输事务中需传输的报文的总数量。例如,以图2a中示出的传输事务为例,则块总数字段也可理解为报文0至报文N的总数量(即为N+1)。相应地,下述所述的当前块号字段,也可理解为用于指示当前传输的报文的报文号。
当前块号字段(也叫数据块序列号字段),用于指示当前传输的数据块的块号(也即序列号)。
标注信息字段,可选的,用于指示传输事务相应的标注信息(备注信息),如传输事务对应的数据流的备注信息,比如备注为“重要”、备注数据流为文件流或者普通数据流等,或者标注传输的数据、文件的数据完整性校验的哈希值,以便于如第二端(如服务端)等各端以及下文本其它实施例中所述的控制设备进行识别、阅读、解析或安全控制等。
基于上述在S21中对头信息传输方式的相关介绍,一实施例中,上述S21“根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段”,可包括:
S211、根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
S212、若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
S213、若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
在上述S212的情况下,即如上述表3示出的预设报文头格式包含的所有报头字段(多个报头字段),是为第一数据块确定的目标报头字段,则上述S22“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头”,可具体包括如下步骤:
S221、为所述第一传输事务确定第一端对应的第二预置标识;
S222、根据所述第二预置标识、所述第一事务信息包含的事务标识及传输事务属性信息、以及所述第一数据块的相关信息,配置所述目标报头字段的字段值,得到为所述第一数据块确定的第一报文头;
其中,基于上述对预设报文头格式的描述,上述为第一数据确定出的第一报文头,可包括如下内容:第一端对应的第二预置标识、第二端对应的第一预置标识、传输事务的事务属性标识、传输事务的事务标识、第一数据流中数据块的总数量,第一数据块的块号、第一目标头信息与第一数据块的总大小、标注信息。
上述第一端对应的第二预置标识,为基于预置的第二预置标识与事务种类的对应关系(可参见下文示出的表5),确定出的与第一数据流对应传输事务所属的事务种类存有对应关系的第二预置标识。第一端对应的第二预置标识可为第一端的地址信息对应的字符串;或者,第一端对应的第二预置标识为用于隐藏第二端的地址信息的字符串,如二进制值。
上述第二端对应的第一预置标识,可直接从第一数据流对应第一传输事务的传输事务属性信息中获取。
进一步地,若基于第一数据流对应第一传输事务的传输事务属性信息,更具体地,如基于传输事务属性信息中的事务属性类型信息,确定在传输第一数据流中的数据块时,需为数据块添加相应的数据头,此种情况下,可以仅为第一数据流中的第一个数据块添加数据头,若第一数据流包含多个数据块,对多个数据块中位于第一个数据块之后的其它数据块则可以无需添加数据头。基于此,上述第一数据块在所述第一数据流中排序第一或排序最后时,上述步骤S22中还可包括如下步骤:
S223、根据所述第一事务信息中所述第一传输事务的传输事务属性信息,确定是否需要为所述第一数据块添加数据头;
S224、确定需要时,根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头;其中,所述数据头与所述第一数据流适配、且符合预设数据头格式要求。
上述S223中,具体是根据传输事务属性信息中的事务属性类型信息,来确定是否需要为第一数据块添加数据头,其中,事务属性类型信息包含有但不限于如下内容:数据头使用信息、第一数据流的传输方向、第一数据流的数据类型等,数据头使用信息包括使用的数据头的数据头格式标识。有关对事务属性类型信息包含的内容的具体介绍,可参见上文相关内容。更具体地,是根据事务属性类型信息中的数据头使用信息,来确定是否需要为第一数据块添加数据头。
上述S224中,确定需要为第一数据块添加数据头时,进一步地可根据事务属性类型信息中的数据头使用信息,从预设的多个数据头格式中选择出适配的一个数据头格式,以此基于第一数据流的流信息,按照选择出的数据头格式为第一数据块生成相应的数据头。即,上述S224“根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头”的一具体可实现方案,可包括如下步骤:
S2241、基于所述传输事务属性信息包含的数据头使用信息,从预设的多个数据头格式中选择一个适配的数据头格式;
S2242、根据所述第一数据流的流信息,按照选择出的数据头格式生成所述数据头。
有关数据头格式的描述,可参见上文通过表2a至表2e示出的若干个预设的数据头格式。以及,有关上述S2241的具体实现,可参见上文对事务属性类型信息详述时所涉及到的相关内容,此处不作作赘述。
上述S242中,第一数据流的流信息可包括但不限于:第一数据流的发送时间、第一数据流的属性信息(如数据类型、第一数据流的大小、第一数据流的名称等)、发送方地址、接收方地址等等。基于第一数据流的流信息,可以为选择出的数据头格式包含的多个字段配置相应的字段值,以此也就实现了为第一数据生成相应的数据头。
有上述内容,为第一数据块确定出相应的第一目标头信息(如报文头,或者报文头和数据头)后,第一端10,可以对第一目标头信息及第一数据进行整合,生成符合预设数据结构规则的待发送的第一报文。具体整合时,如参见图3a中示出通过本实施例生成的一待发送的报文A1示例,若第一目标头信息包含报文头,可以将报文头(即图中示出的结构化的报文头)添加在TCP/IP报文头与第一数据块之间;进一步地,若第一目标头信息中还含有数据头,则可将数据头添加在报文头与第一数据块之间。上述第一目标头信息,可用于校验第一报文是否符合要求。
针对图3a中示出的报文A1,下表41示出了报文A1的报文结构格式示例:
表41
需说明的是:上述报文A1的报文结构格式除了包括上述表41示出的内容外,还可包括如图3a中示出的TCP/IP报文头、TCP/IP报文尾等,表41中未示出。
在上述S213的情况下,即如上述表3示出的预设报文头格式包含的所有报头字段(多个报头字段)中的部分报头字段(如事务标识字段),是为第一数据块确定的目标报头字段,则:上述S22“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头”,可具体包括如下步骤:
S221’、基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述事务标识。
具体实施时,上述第一数据块确定的目标报头字段除了可包括预设报文格式中的事务标识字段外,还可包括其他报头字段,如当前块号字段,此情况下,可以根据第一传输事务的事务标识及第一数据块的相关信息(具体第一数据块的块号),来配置目标报头字段的字段值,相应得到的为第一数据块确定的第二报文头包含第一传输事务的事务标识、第一数据块的块号。另外,在本实例情况下,可不执行为第一数据块添加数据头。
有上内容,此实例下,第一端10,通过对为第一数据块确定的第一目标头信息(报文头(包含事务标识、第一数据块的块号(可选)))及第一数据进行整合,生成的第一报文的报文格式可参见下表42。
表42
第一端10生成待发送的第一报文后,可以根据第二端对应的第一预置标识所确定出的第二端的地址信息,将第一报文发送至第二端20。第二端20接收到第一端发送过来的第一报文后,可基于本实施例所配置的第一端与第二端间的数据传输安全控制信息,对接收到的第一报文进行校验;校验时,具体是校验第一报文中包含的目标头信息(如报文头、数据头)是否符合预设要求,例如,第一报文的报文头的格式是否符合预设要求、报文头中的事务属性标识是否已注册等等,有关数据传输安全控制信息及根据数据传输安全控制信息校验报文的具体实现,将会在本申请提供的其他实施例中展开详述,此处不作赘述。第二端20经校验确定接收到的报文符合要求时,可执行从第一报文中获取并缓存第一数据块。
上述描述的方案,在如图3a示出的第一端10与第二端20采用TCP/IP协议直接进行通信这个场景下,主要是从对需传输的数据进行结构化角度来实现数据安全防护的,相对于现存的采用TCP/IP协议进行传输数据方案,实现了对传输数据内容的安全性管理。
为了第一端10能够实现上述所述的方案,以及进一步地可提高对传输数据内容的安全性管理,防止第一端10上第一应用可随意调用第一端上的网络接口,以任意地直接向第二端20发送数据,基于上述图3a示出的场景,可以采用如下两种技术方案来达到上述所述的进一步想要达到的效果:
一具体可实现技术方案为:在第一端10上安装“控制软件”(其功能类似于下文所述的第二种方案中的控制设备的功能)。具体实施时,根据上文所述的预置标识的两种情况,可以在第一端10上安装不同类型的“控制软件”。具体地,
情况11、预置标识(如第二端对应的第一预置标识、第一端10对应的第二预置标识)不具有隐藏相应端的地址信息(如预置标识为相应端的IP地址)作用
如参见图3b,在上述情况11下,可以在第一端10上应用内安装第一控制模块11,用于完成针对应用需向第二端20传输的数据生成相应待传输的第一报文并进行发送、以及对接收到的报文(如从第二端20发送过来的第二报文)进行识别、校验(审计)等各种控制功能。在上述第一控制模块11中,会事先预置有上文所述的多个传输事务属性信息(如图8a所示)、预设的报文头格式、预设的数据头格式等各种预置信息,第一端10向第二端20传输第一数据流(为第一端上第一应用的数据流)中的第一数据块时,第一数据块会先发送至相应第一应用中的第一控制模块11,由第一控制模块11针对第一数据块生成相应待发送的第一报文,并根据第二端20的地址信息,将第一报文通过中间网络设备发送至第二端20。有关第一控制模块11生成第一报文的具体实现,可参见本申请上下文中相关内容。
进一步地,同时也可以在中间网络设备(如交换机、路由器、防火墙等)安装第四控制模块(图中未示出),以进一步地对第一报文进行识别、校验(或说监测与拦截)。上述第四控制模块内预置的信息以及相应可实现的功能,可类似于上述所述的第一控制模块11或下文所述的第二控制模块12。具体实施时,第一应用内的第一控制模块11生成待发送的第一报文后,可调用第一端10上的网络接口,根据第二端的地址信息(为第二端对应的第一预置标识),按TCP/IP协议会先将第一报文发送至中间网络设备。中间网络设备内的第四控制模块根据自身内存储的预置信息(如多个传输事务属性信息、报文头格式等),对第一报文中包含的第一目标头信息进行校验,确定第一报文是否符合要求,并在符合要求时才执行根据第二端的地址信息,将第一报文发送至第二端20。
或者,中间网络设备上的第四控制模块,也可以不具有如第一控制模块11所具有的生成报文、校验、拦截等功能,仅单纯具有日志审计功能,用于对接收到的报文进行记录、分析,以生成相应传输事务的日志信息。例如,中间网络设备接收到第一端发送过来的第一报文后,可利用自身内的第四控制模块对第一报文进行解析,以根据解析出第一数据块以及第一数据块的第一目标头信息,生成第一数据块对应的日志并记录在第一传输事务的日志表中,其中,日志表中每个日志的日志内容可包括但不限于:相应数据块的报文头、数据头(可选)、第一传输事务的传输事务属性信息等。通过第一传输事务的日志表,可以直观分析第一传输事务相关的网络数据流量。
由上内容,在图3b示出的情况下,上述第一端10上的第一控制模块11在用于根据所述第二端的地址信息,将生成的第一报文发送至第二端20时,具体可用于:
根据所述第二端的地址信息,将所述第一报文发送至中间网络设备,以通过所述中间网络设备发送至所述第二端;
其中,所述中间网络设备在将所述第一报文发送至所述第二端之前,还执行如下中的任一项:对所述第一报文包含的第一目标头信息进行校验;根据所述第一报文,生成所述第一传输事务的日志信息。
有关日志信息的描述,可参见上文对日志表的叙述。具体对第一目标头信息校验的具体实现,可参见本申请上下文其他实施例中相关内容,此处不作赘述。
这里需要补充说明的是,上述第一控制模块11需由应用程序的开发人员进行开发,以实现上述所述的功能,且在上述图3b所示的场景下,只有应用单独参与通信活动。
情况下12、预置标识用于隐藏相应端的地址信息(如预置标识为随机生成的随机字符串如二进制值,其关联的关联信息包含相应端的地址信息)
在上述情况下,如参见图3c,可在第一端10上应用外部安装独立的第二控制模块12,用于完成针对需向第二端20传输的数据生成相应待传输的报文并进行发送、以及对接收到的报文(如从第二端20发送过来的报文)进行识别、校验(监测、拦截)等各种控制功能。在这种方式下,第一端10上应用的通信均需要经第二控制模块12进行,可以用预置标识(为随机字符串)隐藏相应端的地址信息(如IP地址),并预设在第二控制模块12中。比如,第二控制模块12中预置的多个传输事务属性信息中包含的第二端对应的第一预置标识,用于隐藏第二端的地址信息。当第一端10需向第二端20传输应用的第一数据流的第一数据块时,第一数据块会先发送至第二控制模块12。第二控制模块12根据自身内预置的预置信息(如多个传输事务属性信息、报文头格式等),针对接收到的第一数据块生成相应待发送的报文,并将生成的报文发送至第二端。有关第二控制模块12生成报文的具体实现,可参见本申请上下文中相关内容。
或者,如参见图3d,可以在第一端10上应用内安装第一控制模块11的同时,在应用外部也安装有第二控制模块12。当第一端10需向第二端20传输应用的第一数据流的第一数据块时,第一控制模块11可用于根据自身内预置信息确定第一数据流对应传输事务的事务属性标识,并将事务属性标识及第一数据块发送至第二控制模块12,由第二控制模块12根据事务属性标识及第一数据块,生成待发送的第一报文以发送至第二端20。有关第二控制模块12生成第一报文的具体实现,可参见本申请上下文中相关内容。
这里需要补充说明的是,针对上述情况12,结合图3c及图3d描述的两种方案,进一步地,均可同上述情况11,也可以在中间网络设备(如交换机、路由器、防火墙等)安装上述所述的第四控制模块,以进一步地对第一报文进行识别、校验(或说监测与拦截),有关具体实现可参见情况11相关内容。或者,上述中间网络设备也可以不具有校验功能,只单纯具有日志审计功能(作为用于分析传输事务数据的日志审计的软件应用)。
另外,上述第二控制模块12为独立的控制程序,其能够根据自身内预置的预置信息,获取到第二端对应的第一预置标识,并根据第一预置标识,获取第二端真实的地址信息;然后,调用第一端10对应的网络接口,按照第二端真实的地址信息,通过TCP/IP协议将第一报文转发至第二端20。关于上述第二控制模块12将第一报文发送第二端20的具体实现原理,可参见下文其他实施例中结合图4a所描述的第一控制设备31将第一报文发送至第二端20的原理。上述第二控制模块12类似于如软件防火墙、杀毒软件的网络控制功能,能对诸如普通权限的应用进行网络流量控制,使普通权限的应用无法直接调用通用第一端的网络接口进行访问网络,必须需经过第二控制模块12提供的接口进行访问网络。
另一具体可实现技术方案为:在第一端10与第二端20之间增设相应的控制设备,采用物理特殊控制等方式来更进一步地提高数据安全的防护和控制能力等。其中,在一些实施例中,控制设备可以为第一端10与第二端20的外部设备,此情况下,参见图7a和图7b所示,控制设备30的具体形态可以是如图7a示出的台式形态,或者也可以是如图7b示出的便携式形态,此处不作限定。具体实施时,如图7a或图7b所示,控制设备30具体可包括但不限于如下结构部件:显示触摸屏(或显示屏)、无线模块(如在物理层上部署的WiFi(WirelessFidelity,无线网络技术)模块、3G模块、4G模块、5G模块、蓝牙模块、LoRa(为一种基于扩频技术的远距离无线传输技术)模块等,图7a和图7b中未示出,可参见图7c中示出的无线模块32f)、操作按钮33、天线34以及外设接口31g。天线34用于如蓝牙、wifi、3G、4G、5G等无线通信的网络信号收发。外设接口31g为有线传输的接口,用于使控制设备通过数据线与其它设备连接。由上,外设接口31g也可称为有线接口。具体实施时,外设接口31g可包括用于连接网络的网线接口311(也叫局域网接口,如以太网接口、光纤接口、双绞线接口等)、用于总线通信的总线接口312(如USB(Universal Serial Bus,通用串行总线)接口、SPI(SerialPeripheral Interface,串行外设接口)接口等)。有关上述所述的控制设备30包括的结构部件的具体作用,可参见下文相关内容。
在其他一些实施例中,控制设备还可以为能够集成于第一端10和/或第二端20内部的设备,此种情况下,控制设备的具体形态可以为类似于集成显卡的单一芯片形态,可集成于第一端10或第二端20的主板中;或者,控制设备的具体形态也可以是类似于独立显卡形态,能够集成于第一端10或第二端20的主机中,此处不作限定。具体实施时,如参见图7c所示,在控制设备的形态为芯片形态情况下,控制设备30可具体包括但不限于如下结构部件:无线模块32f、板间接口313、天线34、外设接口31g’。板间接口313可以为但不限于PCIE(peripheral component interconnect express)接口,PCIE接口是一种高速串行计算机扩展总线标准接口,在本实施例中,通过PCIE接口可将控制设备30与如第一端10的主板连接。外设接口31g’可包括第一类型外设接口311’和第一类型外设接口312’。第一类型外设接口311’可以为USB复合设备接口,通过该接口能够将控制设备与如第一端的显示屏连接并进行控制操作,以通过如第一端的显示屏显示相应的一些内容(如显示询问信息、显示传输事务的名称等等),并进行操作。通过在控制设备进行独立的显示与操作,可以与计算机的驱动程序进行有效隔离,避免重要操作在计算机上进行(计算机可能被恶意控制)。第二类型外设接口312’可为但不限于USB接口、网线接口等。有关无线模块32f、天线34及网线接口的具体介绍,可参见上文相关内容。
在以下介绍本实施例提供的另一具体可实现技术方案时,将以控制设备30为第一端10和第二端20的外部设备为例进行详述本方案。
这里需要补充说的是,在采用增设控制设备来提高不同端间数据传输安全的防护和控制的情况下,不同端上是部署有相应控制设备的设备驱动(也可叫设备驱动程序)和API(API(Application Programming Interface,应用程序编程接口)接口的。端上的应用通过API接口可访问相应控制设备的设备驱动。图6a中示出了在第一端10和第二端20上分别部署的相应控制设备的设备驱动及API接口的示例,此示例为针对下文所述的第二可能实施例(即在第一端10和第二端20间增设两个控制设备)示出的。
基于上述内容,第一可能实施例中,可以在第一端与第二端之间增设一个第一控制设备,第一端10可通过该第一控制设备实现将第一报文发送至第二端20。即,如参见图4a至图4c所示,本实施例提供的所述系统还可包括:第一控制设备31,第一控制设备31与第一端10和第二端20均通信连接。
具体实施时,第一控制设备31与第一端10和第二端20进行通信连接的场景,可包括但不限于如下给出的两个较为具体场景:
场景11:如参见图4a和图4b,假设第一端10与第二端20互为远端、第一控制设备31部署在如第一端10所在的场地,则第一端10可通过总线接口(如USB接口、SPI接口)或者也可通过无线接口(如通过Wifi模块、蓝牙模块等实现的接口)与第一控制设备31连接,进行近距离通信。为减少远端通信成本,第二端20可通过网络接口、并借助于中间网络设备(如交换机、路由器),仍采用TCP/IP协议与第一控制设备31连接,进行远距离通信。上述网络接口可为有线接口,比如双绞线以太网接口、光纤接口等网线接口;或者也可为无线接口,比如通过3G模块、4G模块、5G模块或卫星通讯模块等实现的接口)。
场景12:如参见图4c,假设第一端10与第二端20互为近端,比如二者均在同一场地,第一控制设备31部署在第一端10和第二端20所在场地,则可利用第一端10、第一控制设备31及第二端20各自上的有线接口(如USB接口等总线接口、双绞线以太网接口等网线接口),采用有线方式使第一控制设备31分别与第一端10和第二端20进行通信连接。当然在其他实施例中,也可利用第一端10、第一控制设备31及第二端20各自上的无线模块,采用如WiFi、蓝牙等近场通信的无线方式,使第一控制设备31分别与第一端10和第二端20进行通信连接。
下面以第一端10通过USB接口与第一控制设备31连接为例,详述一下第一端10接入第一控制设备31的具体实现。
在介绍第一端10接入第一控制设备31的具体实现之前,先介绍说明一下需针对第一端10预先创建的配置文件。如参见图9所示,为第一端10预先创建的配置文件中至少包含如下的内容信息:设备接入配置信息、数据传输交换配置信息、及数据传输安全控制信息;其中,
一、设备接入配置信息,可包括但不限于如下内容项:
1)控制设备的描述符集合,其中,描述符集合中包括但不限于如下内容:
①设备描述符,比如:控制设备所使用的的类代码、协议(如TCP/IP协议、USB协议、蓝牙协议等),控制设备的厂商ID、设备ID、产品型号ID等。
②配置描述符,比如:控制设备的接口数量、控制设备的属性(如电流需求)等。
③接口描述符,比如接口类型、接口使用的协议(如USB接口使用的为USB协议,网络接口如使用的为TCP/IP协议等)。
④端点描述符,比如:使能的传输方向为IN、OUT或IN/OUT的端点集合,以及各端点的属性信息(或说配置信息,如端点号、端点类型等)、传输方式(如以USB协议为例,可包括控制传输、批量传输、中断传输、等时传输等)。需说明的是,一台控制设备,其IN/OUT端点可以有多组,例如5组,5个IN端点(输入端点)、5个OUT端点(输出端点),或者不对称,例如3个IN端点、7个OUT端点,用于数据的高速传输;同时也可以只有IN端点或者只有OUT端点的情况,用于数据的单向传输,此处不作限定。
⑤字符串描述符,为相关用于显示的字符串,比如显示的控制设备对应的厂商名称、设备名称、设备产品名称等。
2)连接校验信息(或叫接入校验信息)
连接校验信息包括:第一校验值(校验值1)和第二校验值(校验值2),用于相应的端(如第一端)连接对应控制设备时的交互校验。例如,参见图4a,第一端10与第一控制设备31建立通信连接过程中,第一端10向第一控制设备31发送第一校验值,第一校验值用于校验匹配;相应地,第一控制设备31确定接收到的第一校验值符合预设要求时,会向第一端10反馈第二校验值。
3)登录凭证信息。登录凭证信息包括如下内容项:
与控制设备的设备驱动相应的验证信息,比如设备驱动的账号、密码等,用于当相应的端与对应的控制设备建立通信连接时,对相应的端自动发送的登录凭证(即设备驱动相应的验证信息)进行校验。
与用户进入控制设备的应用程序相关的验证信息,比如用户的用户账号、密码,或者用户的指纹、声纹、人像等生物特征数据,等等,以便能够对相应端的使用人输入的登录凭证进行校验。
二、数据传输交换配置信息,可包括但不限于如下内容项:
1)所支持的多个传输事务的传输事务属性信息集合,用于相应的端在需向其对端传输数据时,创建相应的传输事务。有关传输事务属性信息集合,可参见图8a。
2)预置标识的传输事务集合,可理解为,预置标识关联(或绑定)的传输事务集合,换句话也就是说,预置标识与传输事务的对应关系,一个预置标识可与一个或多个(两个及以上)传输事务对应,用于数据传输交互和校验。其中,预置标识是针对相应端上的预先注册的服务(或者说能够提供的服务)进行预置的字符串。
在一实例中,上述预置标识可以为随机生成的、不具有规律性的随机字符串,其具有隐藏相应端的地址信息作用。例如,参见图4b并以第一端10通过USB接口与第一控制设备31通信连接为例,假设第一端10上预先注册有一个文件交换服务,该文件交换服务指向网络地址为192.***.1.2、端点号为1的第一控制设备31,且此文件交换服务授权第二端20访问,则针对上述所述的第一端10上预先注册的服务,可预置一个第一端10对应的第二预置标识C,该第二预置标识C关联的关联信息可包括但不限于:第一端10的地址信息、文件交换服务、允许访问信息(如第二端的IP地址),其中,第一端10的地址信息指向第一控制设备31的IP地址(为192.***.1.2:1)。进一步地,若在上述文件交换服务下允许进行的数据交互包括向第二端请求网络文件资源、向第二端上传jpg文件,也即可理解为交换文件服务下包含有“请求网络文件资源”传输事务、“上传jpg文件”传输事务,则第一端10对应的第二预置标识C绑定的传输事务为“请求网络文件资源”传输事务和“上传jpg文件”传输事务,换句话也就是说,第一端10对应的预置标识C与“请求网络文件资源”传输事务和“上传jpg文件”传输事务这两个传输事务存在对应关系。
在另一实例中,如参见图4a,预置标识也可以不具有隐藏相应端的地址信息作用,直接为相应端的地址信息(如IP地址)。比如,承接上述2)中例子,第一端10对应的第二预置标识C可指的是192.***.1.2:1。作为优选实例,本实施例优选选取预置标识为随机生成的随机字符串,能用于隐藏相应端的地址信息。
综上示例,将第一端对应的预置标识称为第二预置标识。以第一端为例,则针对第一端,第二预置标识的传输事务集合(或者说第二预置标识与传输事务的对应关系),可参见如下表5示例:
表5 第二预置标识的传输事务集合
这里需要补充说明的是,为了便于相应传输事务属性信息的查询,上述表5示出的第二预置标识的传输事务集合中还可包括传输事务的事务属性标识,即第二预置标识的传输事务集合中数据存储格式可以为但不限于如下格式:
[第二预置标识:传输事务名称(或事务种类):事务属性标识]
通过此格式,能够一起表征出第二预置标识与预置的事务种类的对应关系、以及事务种类与事务属性标识的对应关系。
3)预置标识的通信配置集合,
针对一预置标识进行通信配置,所配置的信息包含但不限于:
①为预置标识绑定的相应端的网络接口号(若相应的端具有多网卡,可对多个网络网卡的网络接口号均进行绑定),用于向相应端的网络接口建立物理通信连接。例如,承接上述2)的例子,为一个第二预置标识C所绑定的网络接口号可为第一端的网卡对应的网络接口号。
②为预置标识绑定的目标地址信息(例如域名或IP、端口号、MAC地址、主机名等),用于向对应的网络目标进行数据交互。例如,仍继续承接上述2)例子,为一个第二预置标识C还可绑定第二端对应的IP地址、部署在第二端的目标网站的目标域名www.####.com,等等。
③为预置标识绑定的设备端点号等,用于向连接的端(如客户端或服务端)进行数据交互。例如,仍继续承接上述2)中例子并参见图4b,为一个第二预置标识C可绑定第一控制设备31的一个如OUT端点的端点号,如上述2)中所述例子中的端点号1。
除了为预置标识可绑定上述通信信息之外,还可绑定其他的信息,比如,通信能力信息(或叫数据传输方向控制能力信息(可简称数据传输方向控制信息))、预置标识的字符串别称信息、预置标识备注信息。上述数据传输方向控制信息用于指示如下中的任一项:只允许控制设备向目标端(如第二端)转发报文,禁止控制设备向目标端转发报文,允许控制设备向目标端转发报文以及允许控制设备对目标设备发送的报文进行转发。上述预置标识的字符串别称信息,用于隐藏真实的预置标识,可在对报文进行加密时使用。
以下是以第一端为客户端、第二端为服务端为例,给出的第一端对应的第二预置标识的通信配置信息示例(注:符号“//”后面的内容为相应配置项的解释说明)。
示例11
"第二预置标识备注":"客户端单向上传(上行)"
"第二预置标识":"0x0A"//实际中为随机生成的长字节字符串
"目标地址":"192.###.1.1:8000"//通信的目标IP地址和端口,如服务端的IP地址和端口号
"通信能力信息":"TX"//代表仅发送数据,换句话也就是说,仅允许客户端连接的控制设备向服务端转发(或说上传)所接收到的第一端发送过来的数据,若服务端返回了相应的数据,客户端连接的控制设备也不会将服务端返回的数据发送至客户端。
"提交的参数":[{"token":"Control****=###1"//客户端连接的控制设备向服务端上传的参数数据(可选),参数数据包括接收到的客户端发送过来的数据+控制设备的一些数据}];
"字符串别称信息":["0x1A","0x2A","0x3A"]//第二预置标识的别名,用于隐藏真实的0x0A字符串,客户端或客户端连接的控制设备发送的如0x1A等于0x0A
示例12
"第二预置标识备注":"客户端单向下载(下行),即客户端接收数据"
"第二预置标识":"0x0B"
"目标地址":"192.###.1.2:8001"
"通信能力信息":"RX"//代表仅接收数据(即为单向传输下载数据),客户端连接的控制设备可通过预设请求方式和相关参数,定时向服务端请求数据,并将接收到的数据存在本地(如内存缓冲区或外存区)中等待客户端进行请求数据,既使客户端主动发送请求参数数据,客户端连接的控制设备也不会将接收到的客户端发送过来的请求参数数据转发至服务端。也即,禁止客户端连接的控制设备向服务端转发所接收到的客户端发送过的数据(如报文)。
"提交的参数":[
{"token":"Control****= ###1",
"query": "getDataID=1"//为预设的查询参数,用于从服务端中获取数据。由于使用单向传输下载数据时,客户端是不能够上传数据的(包括查询数据的参数)或者既使客户端主动上传了如查询数据的参数,客户端连接的控制设备也不会进行转发至服务端,所以为了从服务端获取到数据,会在客户端连接的控制设备中预设相应的查询参数,由客户端连接的控制设备自动提交至服务端,这里getDataID=1表示发送查询getDataID参数值1的请求。
"setTime":"1000"//自动提交查询参数的时间,单位为毫秒 } ]
"字符串别称信息":["0x1B","0x2B","0x3B"] //第二预置标识的别名
示例13
"第二预置标识备注":"客户端双向传输"
"第二预置字符符":"0x0C"
"目标地址":"192.168.1.3:8002"
"通信能力信息":"RXTX" //代表同时具备接收和发送数据,即:允许客户端连接的控制设备向目标端(如服务端)转发数据(或报文),以及允许客户端连接的控制设备对接收到的目标端发送过来的数据进行转发至客户端。
"提交的参数":[{ "token":"Control****= ###1" //双向传输、单向下载则可以没有上述的query和setTime }]
"字符串别称信息":["0x1C","0x2C","0x3C"]
三、数据传输安全控制信息,可包括但不限于如下内容项:
1)为预置标识绑定(或说关联)的网络通信的黑名单/白名单。例如,允许或阻止访问的IP地址或端口号。
2)为预置标识绑定的接口、端点号的黑名单/白名单。例如,在此预置标识下,允许或阻止操作对应控制设备的IN端点、OUT端点或IN/OUT端点的端点号。
3)为预置标识绑定的传输事务的黑名单/白名单。例如,在此预置标识下,允许或阻止特定的传输事务对应的数据交互。比如禁止文件类型为.exe的传输事务,或仅允许文件类型为DOC、XLS的传输事务等。
3)传输事务对应数据流在控制设备中进行备份的数据备份条件,比如“重要”、Excel文件等。
4)允许/阻止传输的数据类型信息、传输的报文结构符合预设规则、传输的报文中包含的如传输事务属性等符合预设、预置标识符合预设等等。
这里需要补充说明的是,上述所述的为第一端10预先创建的配置文件可以是任一种格式的文件,如JSON(JavaScriptObject Notation,JS 对象简谱,一种轻量级的数据交换格式)、HSON、XML(Extensible Markup Language,可扩展标记语言) YAML(类似于标准通用标记语言的子集XML的数据描述语言)、二进制数据结构、PROPERTIES等文件;或可执行脚本等。本实施例对配置文件的格式不作限定。配置文件的生成可由具有管理权限的用户借助于编辑软件(如配置文件编辑器)采用静态人工编辑的方式生成;或者,也可借助于相应的配置界面,通过点选等方式自动生成,此处不作限定。
参见上文所述的为第一端10预先创建的配置文件,同理,也可为第二端预先创建相应的配置文件。具体为第二端预先创建的相关配置文件可包含的内容,可参见上述为第一端10预先创建的配置文件所包含的内容,此处不再作具体赘述。
以下是以第一端为客户端、第二端为服务端为例,给出的第二端对应的第一预置标识的通信配置信息示例(注:符号“//”后面的内容为相应配置项的解释说明)。
示例21
"第一预置标识备注":"8000” //8000服务端单向发送(上行)数据
"第一预置标识":"0x0A"//注意:虽然这里的服务端对应的第一预置标识与上述给出的示例11中客户端对应的第二预置标识(包括字符串别称信息)相同,但实际上不一样,第一预置标识只作用在服务端与其连接的控制设备通信中,第二预置标识只作用在客户端与其连接的控制设备的的通信中。由此,也就是说,第一预置标识与第二预置标识可以相同,也可以不同。
"监听号":"8000"//服务端监听的号(如为与其连接的控制设备对应的号),用于网络服务
"通信能力信息":"TX"//代表仅发送数据
"提交的参数": [{ "token":"Control****=###t2",
"check": "getDataID=1"//服务端连接的控制设备用于核验参数数据(可选),因为使用服务端单向上传时,在客户端连接后,服务端是不能接收数据的,所以服务端接收客户端数据后的判断逻辑预设在服务端连接的控制设备中,由其连接的控制设备判断后,提取数据缓冲区的数据上传给客户端(缓冲区数据由服务端提前发送至其对应连接的控制设备),这里为判断getDataID是否等于1;也可以用于数据库或缓冲区数据查询的参数。}];
"字符字符串别称信息":["0x1A","0x2A","0x3A"]
示例22
"第一预置标识备注":"8001服务端单向接收(下行)"
"第一预置字符":"0x0B"
"监听号":"8001"
"通信能力信息":"RX"//代表仅接收数据
"提交的参数": [{"token":"Control****=###2,
"answer":"ACK"//服务端在接收到客户端的数据后,自动回复的数据(可选)。因为使用服务端单向下载时,在客户端连接后,服务端是不能发送数据的,所以将需要回复的数据进行预先设置在其连接的控制设备中。}],
"字符字符串别称信息":["0x1B","0x2B","0x3B"]
示例23
"第一预置标识备注":"8002服务端双向传输"
"第一预置标识":"0x0C"
"监听号":"8002"
"通信能力信息":"RXTX"//代表同时具备接收和发送数据
"提交的参数":[{"token":"Control****=###2"//由于服务端的上传或下载取决与客户端的连接,所以setTime自动发送在这里是可选的}
"字符串别称信息":["0x1C","0x2C","0x3C"]
上述有关示例21至示例23中未详尽的内容,可参见示例11至示例13中相应内容。另外,针对第一端10所预先配置的配置文件以及针对第二端所预先配置的配置文件,也可以整合到同一个配置文件中,此处不作限定。
配置文件创建完成后,可以通过以下三种方式下发给相应的控制设备。具体如下:
方式一、离线分发(人工拷贝)方式。具体地,可以将配置文件进行加密(存储到如分发器(如类型于U盘的物理装置)中,通过离线分发(人工拷贝)方式接入相应的控制设备以进行分发,其中。配置文件可以为第一端和第二端的配置文件集合,具体如可以为服务端和所有客户端的配置文件集合。具体实施时,例如,可采用普通拷贝方式,分发器接入(即连接)相应的控制设备后,人工选择对应的配置文件拷贝至相应的控制设备,如可以将上文所述的为第一端10配置的配置文件拷贝至第一端10连接的控制设备。再例如,可以通过分发器进行自动分发,具体地,如参见图4b,当分发器(图中未示出)接入到如第一端连接的第一控制设备31时,分发器可以根据第一控制设备31所发送的设备硬件特征标识符(如设备ID)进行匹配,返回第一控制设备31对应的配置文件(如针对第一端10预先创建的配置文件、以及针对第二端20预先创建的配置文件),第一控制设备31在接收到对应的配置文件后,进行校验和解密,确认真实有效后,对第一控制设备31按照配置文件进行设置。有上,可以确保在配置文件生成后,在控制设备识别前,配置文件经过加密和证书签名,无法被窃取和篡改,分发器的使用人也无法获取配置文件信息,能保证配置文件安全性。
方式二、网络分发。可以将配置文件进行加密存储到配置服务器(如TFTP(TrivialFile Transfer Protocol)服务器,为文件下载服务器),利用原有的网络配置或者建立第二网络物理接口(安全控制网络),对配置文件进行加密分发。具体地,在一实例中,可采用全量分发的网络分发方式,比如,接收到第一端连接的控制设备发送的一次配置数据请求参数后,配置服务器可以将一次性地将所有相应的配置文件发送给第一端连接的控制设备。在另一实例中,可采用按需分发的网络分发方式,即通过网络方式,可根据接收到的相应的控制设备发送的请求参数,实时下发需要的配置数据,比如相应配置文件中的如第一校验值和第二校验值等连接校验信息、登录凭证等重要数据。
方式三、其他方式的无线分发。由分发终端或者控制设备对配置数据进行加密,基于蓝牙、LORA、wifi等无线信号进行共享配置数据。
进一步地,控制设备可以将配置文件中的部分配置数据同步至相应连接的端。例如,参见图4b,以第一端10为客户端为例,客户端连接的第一控制设备31根据相应配置文件完成配置后,当客户端请求更新配置状态时,第一控制设备31可以将客户端名称、客户端对应的预置标识和访问凭证(如2048字节的随机数)、客户端对应的预置标识、预置标识、事务属性名称(或事务种类)及事务属性标识三者的对应关系等发送至客户端,以便客户端在其上安装的设备驱动(为第一控制设备31的设备驱动,可参见图6a)中进行注册,后续其上应用通过设备驱动的API((Application Programming Interface,应用程序编程接口)接口实现调用。访问凭证可以有多个(例如凭证1用于数据加密解密,凭证2用于通信验证),例如,用于后续客户端与第一控制设备31通信的密码,凭证由设备驱动进行记录和并在第一控制设备发送、接收数据时进行加密或解密,也防止其他应用绕过设备驱动向第一控制设备31发送或接收数据。
完成上述所述的配置文件下发后,控制设备与相应的端便可基于自身存储的配置数据(如配置文件数据)进行建立通信连接。
例1,继续参见图4b,假设第一端10通过USB接口与第一控制设备31连接,第一端10与第一控制设备31间为主从模式,即第一端10为主机、第一控制设备31为从机,则参见图10示出的控制设备与相应端建立通信连接的原理性示意图,第一控制设备31与第一端10建立通信连接(或说第一控制设备31接入第一端10)的具体过程可以如下:
当第一控制设备31(从机)通电启动后,会先读取建立连接所使用的相关配置数据(为上文所述的设备接入配置信息),比如,描述符集合(如第一控制设备的设备描述符、配置描述符、端点描述符、字符串描述符等)、端点启用信息(如设置使用6个端点,即端点1至端点6,其中,比如6个端点可均为单向端点(如端点1至端点3为OUT端点、端点4至端点6为NI端点),或者比如6组端点均为双向端点(即为IN/OUT端点))、相关的校验信息(比如连接校验信息(如第一校验值、第二校验值)、设备驱动的验证信息(如设备驱动的账号、密码等)、第一端对应用户的用户账号、密码等);
相关配置数据读取完成后,第一控制设备31向第一端10(主机)发起可以开始枚举的信号,进入USB协议规则的标准请求的枚举流程。具体地,标准请求的枚举流程包括如下步骤:
步骤11、第一端10(主机)向第一控制设备31(从机)发送获取设备描述符指令,相应地,第一控制设备31向第一端10返回相应的设备描述符(如第一控制设备31的ID、厂商ID等);
步骤12、第一端10向第一控制设备31发送设置地址指令,该设置地址指令中携带有相应的地址;第一控制设备31响应于设置地址指令,按照相应的地址进行设置;
步骤13、第一端10再次发送获取设备描述符的指令;相应地,第一控制设备31向第一端10返回设备描述符;
步骤14、第一端10向第一控制设备31发送获取配置描述符指令;相应地,第一端响应于该获取配置描述符指令,向第一端10返回配置描述符;
步骤15、第一端10向第一控制设备31发送获取字符串描述符指令;相应地,第一端响应于该获取字符串描述符指令,向第一端10返回字符串描述符;
步骤16、第一端10向第一控制设备31发送相关的设置指令;相应地,第一控制设备响应于设置指令,进行设置,启动传输端点。
这里需要补充说明的是,上述标准请求的枚举流程中枚举顺序也可以不按上述所述的步骤11至步骤15中的顺序进行,根据第一端的操作系统的不限,顺序可改变,比如可改变步骤13至步骤15的顺序。有关返回的设备描述符、配置描述符、字符串描述符等的具体介绍,可参见上文相关内容。
标准请求的枚举流程完成后,进一步地会进入针对第一控制设备进入特殊请求的枚举流程,特殊请求的枚举流程可包括如下步骤:
步骤21、第一端10(主机)向第一控制设备31(从机)发送校验指令(携带有如第一校验值);相应的,第一控制设备31向第一端10返回第二校验值;
步骤22、第一端10向第一控制设备31发送设备驱动的账号、密码;相应的,第一控制设备31向第一端10返回校验成功或失败的编码;
步骤23、第一端10对上述步骤22中第一控制设备31返回的结果进行判断,若符合特定结果(如校验成功),则认为枚举成功,进入待机状态,等待与第一端10进行数据交互;
步骤24、第一端10发送测试数据包或者心跳包,例如TEST字符串或者二进制数据;相应的,第一控制设备31向第一端10返回正常;
步骤25、第一端10向第一控制设备31发送用户输入的用户账号、密码;相应的,第一控制设备31向第一端10返回校验成功或失败的编码。
这里需要补充说明的是,上述第一控制设备31接收到第一端10发送的设备驱动的账号、密码以及用户输入的用户账号、密码等,第一控制设备31可以在本地根据预置信息进行校验,或者也可以利用远程服务端进行校验,此处不作限定。
进一步地,第一控制设备31可以根据校验结果以及第一端10发送的指令,判断第一端是否枚举成功。例如,在第一控制设备31完成上述步骤25中的校验后,第一端10在待机状态时会一直定期发送心跳包,查询第一控制设备31是否准备进行数据交互,若第一控制设备31接收到心跳包,可认为第一端10枚举成功。
再进一步地,第一控制设备31还可以向第二端20(如服务端)发送第一端10枚举成功(或失败)的信号,以将第一端10可以进行数据交互的消息告知第二端20。
有上内容,若第一端10与第一控制设备31间成功建立通信连接,则进入数据交互(也即数据传输)流程,即进入等待数据交互状态。其中,数据交互过程中,通过令牌包(如OUT令牌包、IN令牌包)指示数据传输。有关令牌包的相关介绍,可参见下文相关内容。
对于第一端10通过其他类型的接口与第一控制设备31建立通信连接的具体实现,与上述通过USB接口与第一控制设备建立通信连接类似,不同之处于:通过如蓝牙接口(或TCP/IP协议)、PCIE接口或SATA接口等其他类型的接口,与第一控制设备建立通信连接时,需将图10中示出的USB协议标准请求的枚举流程,替换为相应类型接口的接口协议规则的标准通讯握手流程。
例2,继续参见图4b,假设第一端10通过蓝牙接口与第一控制设备31建立通信连接,则通信连接的建立流程可以如下:第一端10可先读取建立连接所需使用的相关配置数据,比如配对连接参数。配对连接参数可包含第一控制设备31的蓝牙相关参数,如蓝牙设备名称(第一控制设备的设备名称)、Mac地址、配对校验信息(如预先配置的配对密码凭证,可为上述所述的校验值(第一校验值、第二校验值))等;然后,按照蓝牙协议的标准通信握手流程,开始根据配对连接参数(具体地如蓝牙设备名称、Mac地址),自动扫描第一控制设备;在扫描到第一控制设备时,可将如第一校验值发送至第一控制设备进行配对校验,并根据第一控制设备返回的反馈信息确定校验通过的情况下,认为配对成功,与第一控制设备成功建立通信链路。
上述例1和例2均是从第一控制设备31为第一端10的外部设备角度介绍说明,二者建立通信连接实现的。若第一控制设备31为第一端10的内部设备,举一例3:假设第一端10通过PCIE接口与第一控制设备31连接,则二者之间建立通信连接的实现过程可以如下:第一端10根据读取到的预先配置的如第一控制设备的PCIE接口的特征参数,如VID(VendorIdentification,供应商标识符),扫描第一控制设备;并在扫描到第一控制设备后,可以根据读取到的预先配置的连接校验信息(如密码凭证),与第一控制设备进行连接校验。校验通过后,与第一控制设备成功建立通信链路。
有关第一控制设备31与第二端20建立通信连接的具体实现,可适应性参见上述所,介绍的第一端10与第一控制设备31通信连接的建立过程。
综上内容,在本实施例提供的系统还包括第一控制设备31、且第一端控制31为第一端10的外部设备的情况下,
若第一端10通过第一通信方式与第一控制设备通信,第一通信方式为使用的是以信令指示传输的外部有线通信协议(如USB协议,信令为令牌包),则
第一端10还可用于:在需与所述第一控制设备31建立通信连接时,向所述第一控制设备发送连接校验信息,所述连接校验信息包括如下中的至少一项信息:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据;
所述第一控制设备31,用于针对所述连接校验信息,向所述第一端反馈相应的校验结果;
所述第一端10,还用于根据所述校验结果,确定与所述第一控制设备是否建立通信链路。
具体实施例,校验指令中携带的校验值可以为如上文所述的第一校验值(或第二校验值)、设备驱动相关的验证数据如为设备驱动的账号、密码等。有关第一端10与第一控制设备建立通信连接的具体实现,可参见上文描述的与例1相关的内容。
通信链路建立成功后,第一端10利用与第一控制设备31间建立的通信链路,通过第一控制设备31可将生成的待发送的第一报文发送至第一端10。基于此,在该情况下,上述第一端10,在用于将所述第一报文发送至所述第二端20时,具体可用于:获取第一信令,所述第一信令用于指示所述第一控制设备接收报文;通过与所述第一控制设备间的通信链路,将所述第一信令和所述第一报文发送至所述第一控制设备;
相应地,所述第一控制设备31,用于响应于所述第一信令,接收所述第一报文;将所述第一报文发送至所述第二端。
具体实施时,信令是第一端10发起的,用于通知第一控制设备31接下来要做什么工作,比如接下来要发送报文或接收报文等。信令的类型与第一端10与第一控制设备31间采用的通信协议有关,例如,若为USB协议,则信令的形式为令牌包(由主机(如第一端)发出,用于开启一段USB传输),相应在此示例下,上述第一信令可为OUT令牌包(也叫OUT输出数据包),OUT令牌包用于用来通知第一控制设备31,第一端10要给其发送一个数据包,准备接收。第一端10在需向第一控制设备31发送相应的OUT令牌包和相应所述第一报文时,可以先基于预置的第二预置标识与传输事务的对应关系(如参见表5),确定与第一数据流所属传输事务存在对应关系的第二预置标识;然后,根据第二预置标识关联的关联信息,确定为所述第二预置字符绑定的第一控制设备31的端点号;最后,按照确定出的端点号,将OUT令牌包和相应所述第一报文发送至第一控制设备31相应的端点,比如,承接上文在描述第一端10与第一控制设备31建立通信连接时,给出的第一控制设备31的端点启用信息示例,确定出的端点比如可以为端点1(为OUT端点或IN/OUT端点),第一控制设备31通过对如端点1的监听,可实现获取达到端点1处的OUT令牌包、第一报文等数据,并响应于获取到的OUT令牌包,执行将第一报文转发至第二端的操作。
若所述第一端通过第二通信方式与所述第一控制设备进行通信,所述第二通信方式使用的是配对连接的无线通信协议(如蓝牙协议),则
第一端10还可用于:在需与所述第一控制设备建立通信连接时,根据预置的控制设备配对连接参数,查找所述第一控制设备;查找到所述第一控制设备时,与所述第一控制设备进行配对校验;配对校验通过后,与所述第一控制设备建立通信链路。有关此情况下第一端10建立与第一控制设备的通信链路具体实现,可参见上文与例2相关内容。
同上相应地,第一端10可利用与第一控制设备31间建立的通信链路,通过第一控制设备31可将生成的待发送的第一报文发送至第一端10。有关发送的具体实现,可参上述描述的第一端10通过第一通信方式与第一控制设备通信中的相关内容。
在本实施例提供的系统还包括第一控制设备31、且第一端控制31为第一端10的内部设备的情况下,则
第一端10通过第三通信方式与第一控制设备31通信,第三通信方式使用的是内部有线通信协议(如PCIE接口对应的PCIE协议);以及,此情况下,
第一端10,还可用于:在需与所述第一控制设备建立通信连接时,根据预置的控制设备特征信息,扫描所述第一控制设备;并在扫描到所述第一控制设备时,与所述第一控制设备建立通信链路。有关此情况下第一端建立与第一控制设备的通信链路具体实现,可参见上文例3相关内容。
同上相应地,第一端10可利用与第一控制设备31间建立的通信链路,通过第一控制设备31可将生成的待发送的第一报文发送至第一端10。有关发送的具体实现,可参上述描述的第一端10通过第一通信方式与第一控制设备通信中的相关内容。
为保证数据安全性,上述第一控制设备31针对接收到第一报文,执行转发至第二端20之前,可利用所存储的相应配置文件(为上文所述的针对第一端10创建的配置文件)中的数据传输安全控制信息,对第一报文进行校验,校验通过后在执行第一报文转发操作。基于此,上述第一控制设备31,还可用于执行如下步骤:
S11、获取预设的数据传输安全控制信息;
S12、根据所述数据传输安全控制信息,对所述第一报文进行校验;
S13、若校验通过,则触发所述将所述第一报文发送至所述第二端20的操作;
S14、若校验未通过,则对所述第一报文不予进行发送处理,或输出询问信息以询问用户是否允许对所述第一报文进行传输。
有关上述S11中的数据传输安全控制信息可包括的具体内容,可参见上文相关内容。
上述S12中,根据数据传输安全控制信息,可以校验但不限于如下中至少一项内容:
发送第一报文的端点(如上述示例中所述的端点1)是否符合第一端10对应的第一预置标识的预设要求,比如,端点1的端点号是否在第一预置标识绑定的端点号白名单内,若在,则判定符合预设规则,反之若不在,则不符合预设规则。
第一报文的结构格式是否符合要求。如报文头、数据头等格式是否符合预设格式要求。
第一报文中的内容是否符合要求。比如,报文头中包含的第一端10对应的第二预置标识及第二端20对应的第一预置标识(可从第一数据流对应第一传输事务的传输事务属性信息中获取到),是否符合预设要求。示例性地,如在预设的相应预置标识集合是否包含第二预置标识、第一预置标识,若包含,则说明第一预置标识及第二预置标识为已注册的预置标识,符合预设要求;反之若不包含,则说明第一预置标识及第二预置标识为未注册的预置标识,不符合预设要求。再比如,报文头中包含的事务唯一标识是否符合预设要求,如预置的相应传输事务属性信息集合中是否包含报文头中的事务唯一标识,若包含,则说明报文头中的事务唯一标识已注册,符合要求;反之若不包含,则报文头中包含的事务唯一标识为未注册,不符合要求。又比如,报文中的数据是否为相应传输事务属性限定的数据类型,示例性地,如若第一数据流对应传输事务为“请求网络资源”传输事务,则确定报文中的数据前3个字节是否为“请求网络资源”传输事务的传输事务属性信息中限定的GET等。
上述S13及S14中,通过上述步骤S12对所述第一报文的校验,在校验通过的情况下,说明报文符合预设要求,第一控制设备31则触发将所述第一报文发送至所述第二端20的操作。反之,若校验未通过,则说明第一报文不符合预设要求。在不符合要求的情况下,在一实施例中,可以对所述第一报文不予进行发送处理,但还是可进行留存日志等处理的;或者,在另一实施例,可以输出询问信息以询问用户是否允许对所述第一报文进行传输。比如,若第一报文中的数据所属的数据类型为禁止传输的可执行程序文件(如.exe程序),第一控制设备31将不自动执行传输操作,而是在其显示屏(如图7a或图7b所示)或第一端显示器输出询问信息,询问用户是否允许传输,并在接收到用户针对该询问信息反馈的确认传输指示后,才进行将第一报文发送至第二端20,这种通过人工干预确认方式,可防止病毒木马传播。
具体实施时,如参见图4b,第一控制设备31触发将第一报文发送至第二端20时,是根据从第一报文(更具体地是第一报文的报文头)中获取到的第二端对应的第一预置标识,来确定第二端的地址信息;按照第二端20的地址信息,将第一报文发送至第二端20的。更具体实现原理分为如下两种情况:
情况21,若第一预置标识直接为第二端的地址信息(即上文所述的预置标识不具有隐藏相应端的地址信息)情况下,则第一控制设备31直接根据第一预置标识,使用TCP/IP协议,将校验通过的报文发送至第二端20即可。
情况22,若第一预置标识为预置的随机字符串,用于隐藏第二端的地址信息。此情况下,本实施例中认为第一端10为不可信设备,第一控制设备31为可信设备,第一预置标识的作用是为了在第一端10中隐藏第二端20真实的地址信息(如IP地址),这样既使第一端10遭受到恶意者的攻击,恶意者也无法通过第一端10发起对网络内的第二端20等其他设备进行扫描、探测等,难以实现对第二端20的攻击。上述中,第一控制设备31中可具有所有数据传输所需的数据,包括第二端20真实的地址信息(如IP地址),换句话也就是说,上文所述的针对第一端10创建的配置文件以及针对第二端20创建的配置文件,均预置在第一控制设备31内,第一控制设备31基于自身内预置的数据信息,能直接根据第一预置标识获取到第二端20相应真实的地址信息。或者,在其他实施例中,第一控制设备31也可以针对第一预置字符向相应的解析服务器(如上文所述的配置服务器)发送解析请求,以从解析服务器中获取相应第二端真实的IP地址,此处不作具体限定。
第一控制设备31根据第一预置标识获取到第二端20真实的IP地址后,可以使用TCP/IP协议,将第二端真实的IP地址及相应报文发送至中间网络设备(如图4b),以通过中间网络设备将校验通过的第一报文发送至第二端20。一般情况下,由于第一控制设备31已完成了第一预置标识与第二端20真实的地址信息的转换,在根据第二端的地址信息,使用TCP/IP协议对第一报文进行转发,以发送至第二端20时,转发的第一报文可以不携带预置标识,但在本实施例中,是保持第一报文携带预置标识的,目的在于可以使第二端20可对第一报文中包含的预置标识等信息进行校验。或者在下文其他实施例中,比如其他实施例中描述的第一端10与第二端20之间具有第一控制设备31和第二控制设备32的情况(如图5e),第一控制设备31转发第一报文时继续使第一报文携带相应的预置标识,可使第二控制设备32对第一报文包含的预置标识符等信息进行校验;或者在第二控制设备32连接有多个第二端20情况下,便于第二控制设备32根据相应预置标识(第一预置标识),获取相应的第二端20的地址信息;或者便于第二端20特定程序识别等。
这里需要补充说明的是,为更进一步保障数据传输安全,也可以使中间网络设备具有控制设备的功能,以再次对接收到的第一报文校验,并在校验通过后,将第一报文发送至第二端。或者,中间网络设备也可仅具有日志审计功能,可根据接收到的第一报文,生成所述第一传输事务的日志信息,并将所述第一报文发送至所述第二端。具体实施时,可通过在中间网络设备布设第四控制模块来实现上述所述的功能。有关第四控制模块的具体介绍以及上述所述的中间网络设备功能的具体实现,可参见上文相关内容。
进一步地,除了对第一报文进行校验之外,还可以从第一端对应的第二预置标识关联的关联信息中获取相应的数据传输方向控制信息,以根据数据传输方向控制信息确定是否需要将第一报文转发给第二端20,或者是否需要将第二端20针对接收到第一报文反馈的数据转发给第一端10等等。例如,以第一数据流对应第一传输事务为“请求网络资源”传输事务为例,相应的,假设第一端对应的第二预置标识关联的关联信息中包含的传输方向控制信息为“RX”(代表仅接收数据,换句话也就是说,禁止第一控制设备31向第二端20转发所接收到的第一端发送过的报文,可参见上文给出的示例12),这种情况下,第一端10虽接收到第一端10针对“请求网络资源”所发送的报文,但是,并不会执行将收到的报文下发给第二端20(也即不会将第一端10主动发送的请求参数下发参数给第二端20),而是从相应第二预置标识关联的关联信息中获取相应的预设请求参数信息(包括请求方式及相关参数),并针对获取到的预设请求参数生成一个新的报文,并将新的报文下发给第二端20。有关上述新的报文生成的具体实现,可参见上述所描述的第一端10生成第一数据对应待发送的第一报文过程。基于上述例子,所述第一控制设备31在触发所述将所述第一报文发送至所述第二端20的操作之前,还可包括如下步骤:
S131、从所述第一端对应的第二预置标识关联的关联信息中,获取数据传输方向控制信息;
S132、若数据传输方向控制信息指示禁止第一控制设备31将接收到的所述第一报文发送至所述第二端、且所述第一报文的报文类型为请求报文,则从所述关联信息中获取预设请求参数;并基于从第一报文中获取到的第一目标头信息及所述预设请求参数,生成一待发送的新报文,以基于所述新报文触发将所述第一报文发送至第二端20的操作。
有关数据传输方向控制信息的具有描述,可参见与上文所述的示例11至示例13相关内容。有上内容及结合上文所述的与示例11至示例13相关内容,采用本实施例提供的传输方向控制方式来实现比如数据的单向传输功能,相比于现存的采用单向传输设备实现单向传输功能具有如下益处:利用单向传输设备(如单向光闸、光码(二维码)等)实现单向传输功能,虽在物理上能够完全隔绝双向传输,但设备往往比较复杂,比如设备需要光模块、或者需要图片的显示或接收模块等,制造成本高,设备体积较大,适用范围具有局限性,而且,利用单向传输设备在物理上也无法实现根据不同的服务需求进行数据的单向发送、或者单向接收、或者双向传输等的灵活配置。而本实施例提供的方向,无需借助于任何外部设备,即可实现如数据的单向传输功能,构建简单、且控制设备制造成本也相对低,此外,控制设备还能够根据不同预置标识所关联的传输方向控制信息,灵活调整不同预置标识对应的通信方向(也即数据传输方向)。
进一步地,第一报文校验通过后,在第一报文包含的数据较为重要的情况下,第一控制设备31还可对第一报文进行备份,以防止第一端10误删相应数据或遭到遭到勒索病毒加密等。基于此,本实施例提供所述的系统中,上述第一控制设备31还可用于:
校验通过后,根据所述第一报文中包含的标注信息,判断所述第一报文是否满足所述数据传输安全控制信息中的数据备份条件;
若满足所述数据备份条件,则对所述第一报文进行备份。
例如,在第一报文的报文头和/或数据头中包含的标注信息,标注的是第一报文包含的数据为“重要”(如数据为财务报表.xls)时,第一控制设备可以对该第一报文进行备份。
第二可能实施例中,如参见图5b至图5e所示,在第一端10与第二端20直接除了增设第一控制设备31外,还可以增设另一个第二控制设备32,该第二控制设备32与第二端20及第一控制设备31通信连接。有关第二控制设备32与第二端20建立通信连接的具体实现,可参见上文描述的第一端10与第一控制设备31间通信连接的建立过程。
相应地,上文所述的第一控制设备31根据第二端对应的第一预置标识,确定的第二端的地址信息指向的是第二控制设备。基于此,上述第一控制设备31,在用于将所述第一报文发送至第二端20时,具体是用于:将所述第一报文发送至第二控制设备32。以及
第二控制设备32,用于对接收到的所述第一报文进行校验;并在校验通过后,响应于所述第二端发送的获取请求,将所述第一报文发送至所述第二端。
具体实施时,以第二端20通过USB接口与第二控制设备32连接为例,第二端20在需获取数据时,向第二端发送的获取请求可为第二信令。第二信令用于指示第二控制设备向第二端20发送数据。具体地,第二信令可为IN令牌包(也叫IN输入数据包),IN令牌包可理解为主机(如第二端20)用于通知从机(如第二控制设备32)要给其发送一个数据包的指令包。本实施例中,第二控制设备32并不会将校验通过的报文主动下发给第二端,需要第二端请求后才进行将与第二端20请求适配的报文发送至第二端。
这里需要补充说明的是,上述第一控制设备31与第二控制设备32可采用但不限于TCP/IP协议进行通信连接,此情况下,如图5d所示,第一控制设备31与第二控制设备32间可具有中间网络设备,第一控制设备31具体是通过中间网络设备将第一报文发送至第二控制设备32。有关中间网络设备可具有的功能,可参见上述第一可能实施例中描述的相关内容。
另外,上文内容主要是从第一端需向第二端发送数据为例来说明地,当然,第二端也可以向第一端发送数据,此情况下,上述第一端10还可用于:
接收所述第二端发送的第二报文;
其中,所述第二报文,是所述第二端上基于第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息用于校验所述第二报文是否符合要求。
上述第二数据流为第二端上第二应用所产生的数据。有关第一应用及第二数据流的描述、第二端生成第二报文以及将第二报文发送至第二端的实现等,可参见上文对第一应用及第二数据流的具体描述、以及对第一端生成第一报文并将第一报文发送至第二端的具体实现描述,此处不再做赘述。
这里需要补充说明的是,第二报文的生成具体可以是由第二端上的第三控制模块来实现的,第三控制模块可位于第二应用内或第二应用的外部。第三控制模块位于第二应用内时,第二端上第二应用外部还可设有第五控制模块;或者在上述第三控制模块位于第二应用外部时,第二端上第二应用内还可设有第五控制模块。有关在第三控制模块和第五控制模块共存的情况下,二者如何协作以对第二数据块进行处理生成第二报文,可参见上文本申请其他各实施例中对第一端上的第一控制模块和第二控制模块相互协作,对第一数据块进行处理生成第一报文的相关内容。
下面本申请从“预置标识”具有隐藏相应端的地址信息的作用角度来介绍一下本申请提供的技术方案。在从“预置标识”的角度介绍本申请提供的数据传输方法之前,先介绍说明一下方法可基于的具体系统架构。
具体地,从“预置标识”的角度来讲,本申请提供的数据传输方法可基于图5a至5c所示的系统架构。如图5a所示的本申请一实施例提供的数据传输系统的结构示意图,所述数据传输系统包括:第一端10、第一控制设备31和第二端20,其中,
第一端10,用于将需向第二端传输的第一数据块发送至第一控制设备31;
第一控制设备31,用于响应于所述第一端发送的所述第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;根据所述第一预置标识,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
有关第一端10、第一控制设备31及第二端20的具体介绍以及三者之间的通信连接方式,可具体参见上文相关内容,此处不再做具体赘述。
上述第一端10,向第一控制设备31发送的第一数据块为其上第一应用的第一数据流中的一个数据块,有关第一应用及第一数据流的具体介绍可参见上文相关内容。当第一端10需向第二端20传输第一数据块时,可调用其内部署的第一控制设备31的设备驱动,利用事先在设备驱动内注册的配置数据,为第一数据块确定第二端对应的第一预置标识,此外还可为第一数据块确定第一端对应的第二预置标识,以将第一预置标识和第二预置标识与第一数据块一起下发给第一控制设备31。其中,在设备驱动内事先注册的配置数据可包括但不限于:第一端对应的多个第二预置标识,第二预置标识、传输事务的事务种类及传输事务的事务属性标识三者之间的对应关系,第二端的名称、访问凭证、多个传输事务的传输事务属性信息等等。第一端10通过调用其内部署的第一控制设备31的设备驱动,可从确定出的第一数据块所属的第一数据流对应第一传输事务的传输事务属性信息中,获取第二端对应的第一预置标识(即为第一数据块确定第二端对应的第一预置标识);以及可基于事务种类与第二预置标识的对应关系,确定出与第一数据流对应传输事务的事务种类存在对应关系的第一端对应的第二预置标识(即为第一数据块确定第一端对应的第二预置标识)。有关确定第一数据流对应传输事务的事务种类、传输事务属性信息等的具体实现,可参见上文其它实施例中相关的内容。
或者,第一端10也可仅向第一控制设备发送第一数据块,不向第一控制设备31发送第二端对应的第一预置标识及第一端对应的第二预置标识,由第一控制设备31自主确定。
基于上述内容,上述第一控制设备31,在用于获取所述第二端对应的第一预置标识时,可具体用于如下中的任意一项:
11)接收所述第一端发送的第二端对应的第一预置标识。
12)确定所述第一数据块所属的第一数据流对应第一传输事务的传输事务属性信息;从所述传输事务属性信息中,获取所述第二端对应的第一预置标识。
有关确定第一数据流对应第一传输事务的传输事务属性信息的具体实现,以及传输事务属性信息的具体介绍,可参见上文其它实施例中相关内容。
在本实施例中,第一预置标识用于隐藏第二端的地址信息,这样做的目的可参见上文其它实施例中描述的与“情况22”相关的内容。具体实现隐藏的方式可以为但不限于:第一预置标识关联的关联信息中包含第二端的地址信息。基于此,
第一控制设备31,在用于“根据第二端对应的第一预置标识,获取第二端的地址信息”时,具体可用于:获取第一预置标识关联的关联信息;从所述关联信息中,获取所述第二端的地址信息。
第一控制设备31获取到第二端的地址信息后,如图5a所示,可以根据第二端的地址信息,直接将第一数据块发送至第二端。或者,如图5b和图5c所示,为了进一步地提高数据传输的安全控制,也可以基于第一数据流对应第一传输事务的事务信息(包含事务标识、传输事务属性信息)、第一预置标识、第二预置标识等,为第一数据块生成相应待传输的报文,根据第二端的地址信息将生成的报文发送至第二端。基于此,在一种可实现的技术方案中,上述第一控制设备31在用于“根据所述第二端的地址信息,将所述第一数据块发送至所述第二端”时,可具体用于:
S41、确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;
S42、根据所述第一事务信息,为所述第一数据确定相应的第一目标头信息;
S43、根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;
S44、根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求,符合要求时所述第二端从所述第一报文中获取并缓存第一数据。
有关上述S41的具体实现介绍,可参见上文其他各实施例中的相关内容。
一种可实现技术方案中,上述S42“根据所述第一事务信息,为所述第一数据确定相应的第一目标头信息”,可具体包括:
S421、获取所述第一数据流中数据块对应的头信息传输方式;
S422、根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
S423、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头。
有关上述S421中头信息传输方式的具体介绍,可参见上文其他各实施例中相关内容。
上述S422“根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段”,可包括:
S4221、根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在第一数据流中的排序;
S4222、若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段。
S4223、若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或者所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
在上述S4222给出的情况下,即所述多个报头字段为所述目标报头字段时,上述S423“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
S4231、获取第一端对应的第二预置标识;所述第二预置标识用于隐藏所述第一端的地址信息;
S4232、基于所述第一预置标识、所述第二预置标识、所述第一事务信息及所述第一数据的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:所述第二端对应的第一预置标识、所述第二预置标识、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、所述第一目标头信息与所述第一数据块的总大小、标注信息;总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
上述第一控制设备31,在用于上述S4231“获取所述第一端对应的第二预置标识”时,具体可用于如下中的任意一项:
21)接收所述第一端发送的所述第一端对应的第二预置标识。
22)确定所述第一数据块所属的第一数据流对应第一传输事务的事务种类;基于预置的事务种类与第二预置标识的对应关系,确定与所述第一传输事务的事务种类存在对应关系的所述第二预置标识。
有关上述21)及22)的具体实现描述,可参见上文相关内容。
进一步地,若上述第一数据块在所述第一数据流中排序第一或最后,则上述第一控制设备31,在用于上述S42时,还可具体用于:
基于所述第一事务信息中所述第一传输事务的事务属性类型信息,确定是否需要为所述第一数据块添加数据头;
确定需要时,根据所述事务属性类型信息中的数据头使用信息,从预设的多个数据头格式中选择一个适配的数据头格式;
根据所述第一数据流的流信息,按照选择出的数据头格式为所述第一数据块确定相应的数据头。
在上述S4223给出的情况下,即所述多个报头字段中的部分报头字段为所述目标报头字段时,上述S423“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
S4231’、基于所述第一事务信息中的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述事务标识。
有关上述S43及S44的具体实现,可参见上文其他实施例中相关内容。
相应地,上述第二端20,可具体用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据块。
基于上文本申请其他实施例中所描述的为预置标识绑定(即关联)的信息相关内容,可获知预置标识(如第二预置标识)关联的关联信息包含有数据传输方向控制信息,有关数据传输方向控制信息的具体介绍,可参见上文相关内容。基于此,上述第一控制设备31,在用于上述S43“根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文之前,还可具体用于:
从所述第二预置标识关联的关联信息中,获取数据传输方向控制信息;
若所述数据传输方向控制信息指示允许控制设备将接收到的数据转发至第二端,则触发上述S43的操作;
若所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至第二端,则根据所述第一数据块所属的第一数据流的数据类型,触发上述S43的操作。
具体实施时,在所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至第二端情况下,若确定第一数据块所属的第一数据流的数据类型为如上传文件等非请求类型时,则可以对第一数据块不予进行向第二端转发处理,但可以进行如缓存等处理。反之,若确定第一数据块所属的第一数据流的数据类型为请求类型(如请求第二端上的资源(如网络资源)),则可以先基于第一数据块确定的请求参数,在本地查询是否存在与请求参数适配的数据资源,若存在,直接将查询到的与请求参数适配的数据资源反馈至第一端;若不存在,则可以从第二预置串关联的关联信息中获取预设请求参数,以基于预设请求参数生成相应待发送的报文(为请求报文)并发送至第二端,以从第二端中获取相应的数据资源并反馈给第一端。基于此,上述第一控制设备31,在用于根据所述第一数据块所属的第一数据流的数据类型,触发上述S43的操作时,可具体用于:
所述数据类型为请求类型时,从所述关联信息中获取预设请求参数;基于所述预设请求参数及所述第一目标头信息,生成待发送的所述第一报文;
所述数据类型为非请求类型时,则不予进行发送处理。
进一步地,继续参见图5b和图5c所示,本实施例提供的所述系统还可包括:第二控制设备32,与所述第二端20及所述第一控制设备31通信连接;所述第二端的地址信息指向第二控制设备;相应地,
上述第一控制设备31,用于上述S44“根据所述第二端的地址信息,将所述第一报文发送至第二端”时,具体用于:根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备32,以由第二控制设备32将所述第一报文发送至第二端20;
上述第二控制设备32,用于对接收到的所述第一报文进行校验;若校验通过,且接收到所述第二端发送的获取请求,则将所述第一报文发送至所述第二端;若校验未通过,则不予进行发送处理。
这里需要说明的是:上述实施例提供的数据传输系统中的各设备或各端,除了可实现上述本实施例所述的功能步骤之外,还可实现本申请提供的其他各实施例中相关内容,有关上述各设备或各端具体可实现的功能内容以及相应的具体实现原理,可参见上文本申请其他实施例中的相应内容,此处不再赘述。
基于上述介绍的本申请一实施例提供的数据传输系统相关内容,本申请另外三个实施例还提供的一种数据传输系统。具体地,
本申请另一实施例提供的数据传输系统,包括:目标设备、第一端及第一控制设备;其中,
第一端,用于在需向所述目标设备传输第一数据块时,获取所述目标设备对应的第一预置标识;基于所述第一预置标识及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置标识用于隐藏目标设备的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置标识,确定所述目标设备的地址信息;根据所述目标设备的地址信息,将所述第一报文发送至所述目标设备;
进一步地,上述目标设备包括第二端;以及,第一控制设备,具体用于根据所述第一预置标识,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
进一步地,上述目标设备还包括第二控制设备,与所述第二端及所述第一控制设备通信连接;所述第二端的地址信息指向第二控制设备;
所述第一控制设备,具体用于根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备,用于对接收到的所述第一报文进行校验;校验通过后,缓存所述第一报文,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
有关上述第一端、第一控制设备、第二控制设备及第二端的具体介绍、以及各自具体可实现的功能、功能具体实现描述,可参见上文相关内容。
本申请另一实施例提供的数据传输系统的系统架构,可参见图5d或图5e示出的系统架构。具体地,如参见图5d或图5e所示,本实施例提供的所述数据传输系统包括:第一端10、第一控制设备31、第二控制设备32及第二端20;其中,
第一端10,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置标识;基于所述第一预置标识及所述第一数据块,生成待发送的所述第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置标识用于隐藏第二端的地址信息;
第一控制设备31,用于根据从所述第一报文中获取到的所述第一预置标识,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备32,用于缓存接收到的所述第一报文,以等待所述第二端获取;
第二端20,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
有关上述第一端10、第一控制设备31、第二控制设备32及第二端20的具体介绍及各自具体可实现的功能、功能具体实现描述,可参见上文相关内容。
本申请又一实施例提供的数据传输系统包括:第一端、第一控制设备及第二端;
第一端,用于在需向第二端传输第一数据块时,获取第二端对应的第一预置标识及所述第一端对应的第二预置标识;将所述第一预置标识、所述第二预置标识及所述第一数据块发送至第一控制设备;其中,预置标识用于隐藏相应端的地址信息;
第一控制设备,用于确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息、所述第一预置标识及所述第二预置标识,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的所述第一报文;并根据所述第一预置标识获取到的第二端的地址信息,将所述第一报文发送至第二端。
第二端,用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据块。
有关上述第一端、第一控制设备、第二控制设备及第二端的具体介绍及各自具体可实现的功能、功能具体实现描述,可参见上文相关内容。
基于上述结合图5a至5c所介绍的系统内容,本申请一实施例还提供了相应的数据传输方法,具体地如下:
图11示出了本申请一实施例提供的数据传输方法的流程示意图。该数据传输方法适于如图5a示出的第一端10连接的控制设备,即第一控制设备31。第一控制设备31内事先预置的预置信息包括上文所述的针对第一端10创建的配置文件,进一步地,还可包括针对第二端20创建的配置文件。有关配置文件中可包括的具体内容,可参见上文其他各实施例中相关内容。如参见图11,本实施例提供的数据传输方法包括以下步骤:
301、响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;
302、根据所述第一预置标识,获取所述第二端的地址信息;
303、根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
在一种可实现的技术方案中,上述301“获取所述第二端对应的第一预置标识”,可具体包括:
3011、确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;
3012、从所述第一事务信息中,获取所述第二端对应的第一预置标识。
有关上述3011~3012的具体描述,可参见上文其他各实施例中相关内容。
上述302中,可以从第一预置标识关联的关联信息中,获取第二端的地址信息。有关预置标识(如第一预置标识、上下文涉及的第二预置标识)关联的关联信息的具体介绍,可参见本申请其他各实施例中相关内容。
在一种可实现技术方案中,如参见图5b或图5c所示,上述303“根据所述第二端的地址信息,将所述第一数据块发送至所述第二端”,可具体包括:
3031、基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
3032、根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;
3033、根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求,符合要求时所述第二端从所述第一报文中获取并缓存第一数据;
一具体可实现技术方案中,上述3031“基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息”,可具体包括如下步骤:
30311、获取所述第一数据流中数据块对应的头信息传输方式;
30312、根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
30313、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
有关上述30311中头信息传输方式的相关介绍,可参见上文其它实施例中相关内容。
在一实施例中,上述30312“根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段”,可具体包括:
303121、根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在第一数据流中的排序;
303122、若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段。
303123、若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或者所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
在上述303122给出的情况下,即所述多个报头字段为所述目标报头字段时,上述30313“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
获取所述第一端对应的第二预置标识,所述第二预置标识用于隐藏所述第一端的地址信息;
基于所述第一预置标识、所述第二预置标识、所述第一事务信息及所述第一数据的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:所述第一预置标识、所述第二预置标识、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、目标头信息与第一数据块的总大小、第一数据流中数据块的总数量、所述第一数据块的序列号、标注信息;
总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
在上述303123给出的情况下,即所述多个报头字段中的部分报头字段为所述目标报头字段时,上述30313“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
基于所述第一事务信息中的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述事务标识。
有关上文各步骤中的具体实现介绍,可参见上文本申请其他各实施例中相关内容。
本实施例提供的技术方案,在响应于第一端发送的需向第二端传输的第一数据块,获取第二端对应的第一预置标识(用于隐藏第二端的地址信息)后,可根据第一预置标识来获取第二端的地址信息,并根据第二端的地址信息,将第一数据块发送至第二端。本方案中,利用预置标识来隐藏相应端的地址信息,使得数据发起端无法获知目标端的地址,能保护目标端的地址信息;且既使发起端被恶意控制后,也无法对网络上的其他设备进行扫描、探测等,可有效避免恶意攻击。
进一步地,在执行上述3032“根据所述第一目标头信息及所述第一数据块,生成待发送的报文”之前,本实施例提供的所述方法还可包括如下步骤:
S51、从所述第二预置标识关联的关联信息中,获取数据传输方向控制信息;
S52、若所述数据传输方向控制信息指示允许控制设备将接收到的数据转发至第二端,则触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作;
S53、若所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至所述第二端,则根据所述第一数据块所属的第一数据流的数据类型,触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作。
一具体可实现技术方案中,上述S53“根据所述第一数据块所属的第一数据流的数据类型,触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作”,可具体包括如下步骤:
S531、所述数据类型为请求类型时,从所述关联信息中获取预设请求参数;根据所述第二端的地址信息,将所述预设请求参数发送至所述第二端;
S532、所述数据类型为非请求类型时,则不予进行发送处理。
进一步地,若数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端、但禁止所述控制设备对接收到的所述第二端发送的数据进行转发,则
本实施例提供的所述方法还包括:接收到所述第二端针对所述第一数据块返回的反馈信息时,对所述反馈信息不予进行发送处理;
进一步地,本实施例提供的所述方法,还可包括如下步骤:
300a、在与所述第一端建立通信连接时,接收所述第一端发送的连接校验信息;
300b、针对所述连接校验信息,向所述第一端反馈相应的校验结果,以便所述第一端基于所述校验结果确定是否与所述控制设备建立通信链路,以通过所述通信链路发送所述第一数据块;
其中,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据。
这里需要说明的是:本申请实施例提供的所述数据传输方法中各步骤未尽详述的内容可参见本申请提供的其它各实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述本申请提供的其他各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
基于上述结合图5d至5e所介绍的系统内容,本申请另一实施例还提供了相应的数据传输方法,该另一实施例提供的数据传输方法适于如图5d示出的第一端10。第一端内事先预置的预置信息包括上文所述的针对第一端10创建的配置文件,进一步地,还可包括针对第二端20创建的配置文件。有关配置文件中可包括的具体内容,可参见上文其他各实施例中相关内容。具体地,本实施例提供的数据传输方法包括以下步骤:
401、在需向第二端传输第一数据块时,获取所述第二端对应的第一预置标识;其中,第一预置标识用于隐藏所述第二端的地址信息
402、基于所述第一预置标识及所述第一数据块,生成待发送的第一报文;
403、通过控制设备将所述第一报文发送至所述第二端。
有关上述401获取第一预置字符创的具体实现,可参见上文其它实施例中相关内容。
一具体可实现技术方案中,上述402“基于所述第一预置标识及所述第一数据块,生成待发送的第一报文”,包括:
4021、确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;
4022、基于所述第一事务信息及所述第一预置标识,为所述第一数据块确定相应的目标头信息;
4023、根据所述第一目标头信息及所述第一数据块,生成所述第一报文;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
有关上述4021~4023的具体实现描述,可参见上文其它实施例中相关内容。
上述403中,控制设备可以从接收到的第一报文中解析出第一预置标识,然后再根据第一预置标识获取到第二端的地址信息,进而根据第二端的地址信息将第一报文发送至第二端。
这里需要说明的是:本申请实施例提供的所述数据传输方法中各步骤未尽详述的内容可参见本申请提供的其它各实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述本申请提供的其他各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
针对本申请上下文所述的涉及到“预置标识”的所有相关内容,这里需补充说明的是:预置标识可由多种组合形式。例如,不同数据端各自均有相对应的预置标识,如参见下文给出的示例二中的例子1“请求数据”,针对“请求网络资源”传输事务,客户端对应有第二预置标识:0x81 0xa4 0x35 0xe3,服务端对应有第一预置标识:0x47 0xec 0x47 0xf4,第一预置标识与第二预置标识不同。再例如,不同数据端可为固定的预置标识,例如,针对上述“请求网络资源”传输事务,客户端与服务端对应的预置标识可均为第三预置标识,如参见上文针对预置标识给出的示例11和示例21,客户端对应的第二预置标识和服务端对应的第一预置标识可均为“0x0A”,虽然这里服务端对应的第一预置标识与客户端对应的第二预置标识相同,但实际上作用并不同,第一预置标识只作用在服务端与其连接的控制设备通信中,第二预置标识只作用在客户端与其连接的控制设备的的通信中。上述针对预置标识给出的两个例子,预置标识具有隐藏相应端的地址信息。在预置标识直接为相应端真实的地址信息情况下,不同数据端各自均有相对应的预置标识,如参见图12,客户端对应的第二预置标识可直接为表征客户端真实的地址信息的字符串“192.###.1.2:12345”,服务端对应的第一预置标识可直接为表征服务端真实的地址信息的字符串“192.###.1.1:8000”。
综合上文所描述的本申请结合控制设备实现数据传输的相关所有内容可获知,为解决现有的网络通信协议(TCP/IP协议)、网络安全保护措施、安全防护软件存在的问题,本申请方案(如可参见图6a)是基于软件程序(为安装在数据端(如第一端、第二端)上的设备驱动和API接口)和硬件(为控制设备)相结合的方式,从数据端(第一端与第二端)的物理接口设备接入方式、数据交换方式、数据结构化方式和物理特殊控制等方式出发,以加强信息安全的防护和控制能力。具体地,本申请提供的数据传输方案可包括以下几大块内容:
第一大块内容:数据端(如第一端或第二端)的网络接入方面
如参见图6a,本申请方案并不使用现有的中间网络设备(例如双绞线网卡、光纤网卡、WiFi网卡、4G无线网卡等)的直接连接,而是通过在数据端物理上与控制设备进行硬件连接,并在数据端安装相应的驱动软件程序(为控制设备的设备驱动)的方式,建立与控制设备的通信连接;再由控制设备向目标设备(如另一控制设备,或另一数据端)建立网络连接的方式进行通信。采用这种接入方式,具有以下几点益处:
1)从数据端(如第一端(客户端)或第二端(服务端))角度来看,数据端可以为无网卡(网络设配器)的单机设备。此外,木马、病毒等恶意程序在控制数据端后,无法通过网络进行接收控制指令、窃取文件或者对网络内其他设备发起扫描、探测或者攻击行为。例如,参见图6a所示,第一端被恶意控制后,由于第一端发送的所有数据是需经过相应的第一控制设备进行审计和按照预设规则进行的,数据不符合要求时,第一控制设备并不会对第一端发送的数据进行转发,也无法处理未知规则的数据,为此恶意者控制第一端发送的恶意数据并不会在网络内的进行发送,由此恶意者也难以通过第一端向网络内其它设备发起扫描、探测或者攻击等行为。
2)不同控制设备之间的远程通信,仍可通过现有网络技术进行连接,降低建设投入成本。如继续参见图6a,第一控制设备31与第二控制设备32的通信连接,可以使用TCP/IP通信协议,通过传统的双绞线、光纤、WiFi、3G、4G、5G、卫星通讯、LORA等有线或无线方式进行网络连接。
3)数据端上的的设备驱动和相应的API接口可以通过修改操作系统权限的方式进行限制,使无授权的应用无法进行访问;或者使用隐藏技术,使恶意程序无法发现设备驱动或者API接口。具体实现原理如下:
在介绍具体实现原理之前,先简单的介绍一些相关的背景知识。
一数据端(如客户端或服务端)上的应用基于该数据端的操作系统进行网络通信时,应用访问网络的权限一般无限制(例外情况下,虽可通过杀毒软件、软件防火墙等对应用访问网络进行限制,但是在绕过限制后即可通过网络接口访问网络),任何应用使用普通的权限均可访问网络。同时,数据端上的其他程序可以对通信过程进行监听,如使用wireshark软件(为一种开源网络协议分析器)可对网卡数据进行监听。数据端上的应用访问网络的具体实现可包括如下步骤:
步骤1、调用操作系统内置的通用网络访问API接口文件。例如,Linux、Windows、MacOS操作系统下的Socket.h文件等。
步骤2、通过API接口函数创建网络套接字(Socket)。例如,使用socket()函数。
上述步骤1~步骤2以及下述的步骤3为如客户端、服务端等不同数据端的共同步骤。
步骤3、数据端作为客户端时,通过API接口函数建立与服务端的连接。例如,使用connect()函数(为用于建立与指定socket的连接的函数),连接至指定的IP地址和对应的端口号。数据端作为服务端时,通过API函数进行连接的监听,例如使用bind()函数绑定号,并使用listen()函数监听接入的客户端,在有客户端接入时,使用accept()函数接受客户端接入请求。
步骤4、在连接成功后,使用API接口函数进行服务端或客户端的通信数据发送或接收。例如,使用write()或send()函数向服务端或客户端发送数据;使用read()或recv()函数接收服务端或客户端发送的数据。
上述应用的业务逻辑如下:
应用<——>操作系统<——>网卡驱动<——>网卡<——>网络数据
基于上述介绍的背景知识,本实施例在实现应用访问权限限制时,所设计的在驱动层的业务逻辑为:应用<——>操作系统<——>控制设备的设备驱动<->控制设备<->网络数据。在本申请的控制设备在操作系统的设备驱动(设备驱动程序)中,一方面,可以对其他程序访问设备驱动的API接口进行鉴权,比如,预先给授权的应用颁发数字证书、或者密码凭证,在应用访问设备驱动时需要附带凭证信息,由设备驱动或控制设备判断是否接收其数据发送或接收的功能调用。另一方面,可以对控制设备的设备驱动进行操作系统的权限设置,没有调用权限的应用或者用户不能进行功能调用。例如,在linux系统中,可通过chmod命令进行设备驱动的权限设置。
实现访问接口隐藏时,会进一步细化硬件接入层的业务逻辑,具体为:应用<——>操作系统<——>控制设备的设备驱动<——>数据端的连接硬件接口<——>控制设备的连接硬件接口<——>控制设备<——>网络数据。访问接口是对数据端(如客户端)与控制设备连接硬件接口在操作系统层面进行隐藏,防止设备驱动以外的应用直接访问硬件接口。
以USB接口协议、控制设备连接数据端(第一端(客户端)或第二端(服务端))为例,一方面,在控制设备初次连接一数据端(或者长时间未调用进行休眠重置)时,数据端第一次发送标准请求(请求设备、配置、接口、端点描述符等,可参见图10)时,控制设备先返回一种通用的CDC(Connected Device Configuration)设备类型的相关描述符,将控制设备模拟为普通CDC设备类型。在设备驱动根据预设的UID或PID(返回的设备描述符中的数据)对CDC设备的发送特殊请求,进行校验通过(图10中示出的特殊请求中的校验部分)时,控制设备进行断开重新发起可以枚举的信号。在客户端第二次发送标准请求时,返回真实的5个描述符数据,并在校验通过时,完成控制设备的接入。另一方面,参考上述介绍的与访问权限限制相关的第一方面,如果应用发送的数据没有附带有效的凭证,控制设备不返回和处理发送的数据。上述CDC设备类型是USB组织定义的一类专门给各种通信设备(电信通信设备和中速网络通信设备)使用的USB设备类型。
这里需要补充说明的是,上述所述的两点内容可以单独存在或共同存在。
4)对于数据端(如客户端或服务端)而言,只有一个通信目标,为控制设备。数据端具体访问什么网络资源和网络目标,均由控制设备通过预设配置的方式决定,数据端无法干预。由于重要的控制代码、内存数据或者运行逻辑均在控制设备中独立运行,数据端无法具有控制设备的所有控制权限,例如,即使一数据端在被恶意程序完全控制后,恶意程序也无法获得控制设备的完全控制权限。
5)数据端和控制设备的关系为主机和从机的关系。数据端为主机模式,控制设备为从机模式,控制设备需要数据端主动发起请求才能响应,避免在控制设备被恶意控制的情况下,窃取数据端主机的数据。
6)控制设备可以为无操作系统的固件程序,理论上无法感染病毒和被植入木马进行控制。
固件(Firmware)程序是一种写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序,可理解为一个独立的软件。在控制设备为无操作系统的固件程序的情况下,可将上文描述的“第一控制模块11”、“第二控制模块12”、“第三控制模块”、“第四控制模块”等理解为控制设备。
具体实现原理或步骤:
1、数据端(如客户端或服务端)与控制设备之间的通信接口及通信连接
以USB接口和USB协议为例,数据端与控制设备通过USB数据线进行连接(现场接入或近端接入的情况)。其中,在USB通信协议下,数据端为主机模式,控制设备为从机模式。控制设备使能其上的一个及以上控制传输端点和一个及以上IN端点或OUT端点的等时传输、中断传输或批量端点,用于数据端与控制设备完成枚举(控制传输端点的通信握手),并进行数据的交互(IN或OUT端点的输入和输出)。有关完成枚举的具体实现,可参见上文所述的与图10相关的内容。
2、数据端与控制设备进行数据交换
从数据端的角度,以USB协议为例:
一个数据端需发送数据时,可向其连接的控制设备的OUT端点(输出端点),发送OUT令牌包、数据交互指令和数据包;
一个数据端接收数据时,可向其连接的控制设备的IN端点(输入端点)发IN令牌包,当IN端点有数据时,接收数据包。
需补充说的是,在一台控制设备,IN/OUT端点可以有多组,比如5组,5个IN端点、5个OUT端点;或者不对称,如3个IN端点、7个OUT端点,用于数据的高速传输;同时也可以只有IN端点或者只有OUT端点的情况,用于数据的单向传输。数据端具体向控制设备的那个端点发送令牌包、数据交互指令等,可以根据该数据端对应的预置标识绑定的控制设备的端点确定。
3、一个数据端连接的控制设备与目标设备(如另一个控制设备或另一个数据端)进行数据交换
控制设备根据预设配置(例如网络配置:目标的IP、端口,接入的账号、密码等电子凭据),通过TCP/IP等网络接口连接另一控制设备或者另一数据端(如服务端)。控制设备之间的网络连接,或者控制设备网络连接如服务端的情况下,或者控制设备网络连接如客户端的情况下,可以通过TCP/IP协议,降低部署成本,也解决USB协议的通信距离问题(远端接入或远程接入的情况)。
当一个数据端比如客户端向其连接的控制设备的OUT端点发送数据时,控制设备将数据转发至目标设备(比如服务端)。当控制设备接收到服务端发送的数据时,将数据放置在控制设备的存储介质(内存或者外存)中,并在客户端通过IN端点发送令牌包请求时,将数据向服务端返回。另外,此处的服务端和客户端的数据转发:一是,不一定是原始的数据进行转换,也可以是经过加密、解密、裁剪、增加或者其他形式处理过的数据;二是,不一定是立即转发,也可以是经过人工确认后,或者经过预设脚本、规则等进行校验后才转发;三是,可以将传输的重要数据存储在控制设备中备份,防止计算机主机误删除、或者遭到勒索软件的恶意加密。
第二大块内容:一个数据端上应用与另一个数据端上应用的数据交互方面。
以一个数据端为客户端,另一个数据端为服务端为例:
客户端与服务端之间的应用通信,不同于现有的TCP/IP等传输协议,如具传输过程中需要有源(IP)地址、宿(IP)地址、端口号和内容数据包(为具体待传输的数据(或数据块))等形式。本申请是通过预先注册的服务(为预先注册的服务对应预置有相应的“通信标识(也即上文涉及的预置标识)”,还包括后续的“传输事务”),并将服务信息同步至控制设备,再由控制设备按照该服务的预设配置进行通信。控制设备可以只有客户端功能或者服务端功能(如5a示出的客户端和服务端分别连接不同的控制设备情形下),或者同时具有客户端和服务端的功能(如4a示出的客户端和服务端连接同一个控制设备情形下)。
例如,参见图12,假设服务提供者在服务端上预先注册了一服务B(如网络资源提供服务),服务B指向网络地址为192.###.1.1、端口号8080的第二控制设备,服务B授权第一控制设备可以访问,并针对该服务B,预置了相应的通信标识0x01(为其绑定有服务端的地址信息(192.###.1.1:8080));则,
1、客户端发送数据。客户端上应用只需将服务B对应的通信标识0x01和待发送的数据hello发送至第一控制设备,由第一控制设备对通信标识0x01进行识别解析,以解析出网络目标地址(192.####.1.1:8080)和客户端对应的通信标识符0x02,而后将包含通信标识0x01、通信标识0x02及数据hello的数据包向网络目标地址(指向服务端连接的第二控制设备)发送。
2、在第二控制设备接收第一控制设备发送的数据后,等待服务端读取。在服务端读取第二控制设备2时,将相应数据向服务端发送。
3、服务端机经过对接收的数据进行处理后,按照1和2的步骤向客户端回复数据。
通过上述通信标识(即上文涉及的预置标识)进行数据传输,有以下几点益处:
1)发送端无法获得目标端(接收端)的地址
通信过程中,对于发送端来说,只有接收端对应的通信标识和待发送的数据,这样:
一是发送端不知道目标端的地址,保护了目标端的地址信息;
二是发送端只能根据目标端对应的通信标识进行提交数据,通信标识符可以为多个字节数以上的随机字符串(例如32位或128个字节等复杂随机数,不同于IP地址的规律性),所以发送端无法对网络上的其他服务进行扫描、探测,也无法猜测网络设备的数量,无法对网络的设备进行分析等等。
2)网络上的所有网络服务均能被管理
由于服务是先进行注册,再根据控制设备或者用户角色等进行授权,所有服务开通和授权能够进行有效管理。控制设备可以只有客户端的功能,使普通客户端无法进行服务功能的启用,防止私自开通网络服务造成的安全风险,例如仅有客户端功能的普通用户私自建立FTP、文件共享网络服务等等。
3)能够控制数据的传输方向。
由于网络通信是双向传输的,即作为网络客户端可以接收网络服务端的数据包,也可以向网络服务端发送数据包;网络服务端也是如此。在一些特殊场景下,并不需要数据的双向传输,仅需要数据的单向传输,防止数据泄露。通过标识对应的功能设置,能够将通信标识设置为通信数据的仅上行(接收)、仅下行(发送),控制设备只对仅上行或仅下行的数据包进行处理,实现数据的单向传输。
有关如何通过通信标识实现数据传输方向的控制,可参见上文其他实施例中描述的与“数据传输方向控制信息”相关的内容。
具体实现原理或步骤:
步骤1、创建配置文件(为具有管理权限的用户创建配置文件)
二是生成一数据端(如客户端)的配置文件。配置文件中包括但不限于如下配置信息:客户端的名称(同个客户端硬件,但不同服务对应的名称可以不同),客户端对应的通信标识(同个客户端硬件,但不同服务对应的通信标识可以不同),设置允许访问的客户端的IP、绑定的控制设备硬件特征标识符,以及自动生成客户端IP对应的:①访问端口范围(客户端访问时的端口号,例如10000至10010,非IP对应的特定端口限制其访问服务端,以提高安全性。短连接的情况下,使用多个客户端端口是用于数据并发,以提高并发数);②通信标识号(客户端标识,随机生成128字节随机数);③访问服务端的账号、密码等电子凭据、客户端数字证书等等。
一是生成另一数据端(如服务端)的配置文件。配置文件中包括但不限于如下配置信息:服务端的名称,服务端对应的通信标识(可为随机生成32位或128字节等复杂随机数,也可为单字符),绑定的控制设备硬件特征标识符,服务端的IP、端口、数字证书等;客户端对应的IP、账号、密码等电子凭据、访问端口范围、客户端通信标识号等,连接方式:长连接或短连接。
步骤2、将配置文件向相应的控制设备进行分发。
步骤3、控制设备将配置文件部分参数同步至其连接的数据端(如客户端或服务端)。
有关上文创建的配置文件具体可包括的内容信息以及配置文件分发等的具体介绍,可参见上文其他实施例中的相关内容。
步骤4、一个数据端上的应用向相应控制设备发送或接收数据。具体地,
应用可通过调用其所在数据端上安装的获取服务列表的API接口(为设备驱动的API接口),获取注册的服务列表(服务名称、服务标识(也即针对服务配置的通信标识);
进一步地,应用需发送数据时,可调用发送数据的API接口,API参数包括目标端对应的通信标识符和待发送数据,向相应的控制设备发送数据。发送数据的底层原理(逻辑)为:向相应的控制设备特定的OUT端点发送数据,例如,发送的数据可括OUT令牌包和包含通信标识符和待发送数据的数据包。
应用需接收数据时,可调用接收数据的API接口,API参数包括目标端的通信标识符(服务端或客户端)和查询参数的数据包,在与应用所在数据端连接的控制设备有数据时返回数据。接收数据的底层原理(逻辑)包括如下两种方式:
方式一、应用所在数据端直接向其连接的控制设备特定的IN端点循环发起IN令牌包进行查询,当控制设备有数据时返回数据包;
方式二、应用所在数据端先向其连接的控制设备特定OUT端点发送OUT令牌包和数据包,数据包包括具有查询或请求功能的交互指令,而后再向其连接的控制设备特定的IN端点循环发起IN令牌包进行查询,当控制设备有数据时返回数据包。
步骤5、控制设备对其连接的数据端主机发送的数据进行验证。
计算机连接端的控制设备时:
一是,控制设备对与其连接的数据端发送的数据,可通过访问凭证进行验证(例如数字签名),确保为官方驱动程序发送的真实数据;
二是,验证发送的通信标识符是否存在,如果存在的话进行配置文件的匹配,并按照配置文件将数据转发至目标设备。
步骤6、若一个数据端与第一控制设备连接,另一个数据端与第二控制设连接,一个数据端将需向另一个数据端发送的数据包(包括另一个数据端对应的通信标识和待发送数据)发送至第一控制设备后,第一控制设备先将数据包发送至第二控制设备,具体地,第一控制设备根据接收到的通信标识符,将数据包发送至第二控制设备的IP地址和端口。第二控制设备在收到数据包后,可根据预置的配置文件中的预设规则(例如源IP、源端口、用户、凭证、数字证书等)的进行数据校验,校验通过时,等待计算机获取。
第三大块内容:数据传输交换中的通信数据结构化方面
现有的TCP/IP等传输协议对传输数据内容没有进行规范,不同的应用有不同的通信数据结构(或不同的通信协议),需要一一分析通信的数据结构(或通信协议),才能实施保护措施,导致数据安全保护成本高,也难以进行有效的保护。例如:
一是,当用户(或应用)通过相应数据端传输文件时,由于没有一个标准的协议,导致传输了可执行文件(如带有病毒或木马的.exe可执行程序)时,在网络传输层面难以被发现、拦截,这种情况下,只能在相应数据端上通过安装杀毒软件进行拦截,但是在免杀技术下,杀毒软件可能无法查杀。而且,数据端上的操作系统是难以限制可执行文件的传输,且在数据端使用的大部分情况下,是没有通过网络传输接收可执行程序文件的需求的。
二是,对于不同的应用的不同操作日志、通信日志,难以有效记录。因为不同的应用厂商开发的程序,通信数据包的结构(协议)不同,一般难以完全的进行解析分析,而且分析过程一般只能依靠厂商,另外,一般也只能事后(出事后)才进行分析。导致管理员或者用户难以在平时发现问题。
三是,现有的应用防火墙、流量探测设备等是基于分析不同应用的通信数据结构(协议)后,才能有效进行工作,如果应用的协议更新了(或是新型木马病毒程序、或者流量加密了),防火墙可能无法有效的进行检测。
为此,本申请对通信数据进行数据结构化限定,只有符合特定结构化规则的数据,在控制设备中才予以进行交换。所以,应用在发起数据传输时,需要通过调用指定的API接口,只由API(或驱动程序、或控制设备)对数据进行结构化后才能进行传输。通过结构化后的通信数据,控制设备或者计算机驱动程序(或API)可以识别上层应用的数据传输意图,从而实现安全控制、日志审计等措施。
在本申请中,是利用“传输事务”来实现对待传输的数据进行结构化的。有关具体实现可参见上文其他实施例中描述的与“目标头信息”相关的内容。
本申请,是利用“传输事务”来实现对待传输的数据进行结构化以进行传输,这样做以下几点益处:
1)透明化数据传输的行为。不同与传统的日志(一般仅记录IP、端口、URL、数据包大小),需要针对不同的应用程序的通信流量进行大量的解析工作,而且解析工作往往只能系统开发商才能完成。而本申请的结构化方法,可以在应用程序使用网络传输的过程中,将网络流量透明化为具体操作:
一是,控制设备能具体化的记录传输的具体行为(如进行文件传输、登录操作)以及具体行为的参数(如文件名、文件类型)等应用的具体操作行为等等;
二是,结构化的过程由应用开发商按照API的规范进行开发,后续的日志审计一般无需开发商再参与;
三是,对于未授权的操作,控制设备可以进行阻断,例如,普通的数据端不需要传输可执行文件(例如.exe程序)的操作,那么可以禁止该操作;
四是,控制设备对未知的操作(非注册的传输事务)或者不符合结构化的数据不进行转发,防止恶意程序或者其他未知应用进行访问网络或计算机。
2)可以实时显示当前网络传输的行为。控制设备可以实时显示当前网络传输流量的行为进行检测,例如,传统的防火墙等检测设备只能监测当前传输流量的大小,但是控制设备能够检测传输流量正在进行什么具体行为,如正在进行文件名为test.mp4文件的传输等等。
3)可以对传输的数据进行预处理。
一是可以进行人工干预控制。例如,在传输的数据为可执行程序文件(例如.exe程序)时,不自动执行传输指令,而是需要人工干预,在控制设备中进行确认后,才能进行数据传输,防止病毒木马的传播或者敏感文件的数据泄露。
二是可以对重要文件进行备份。例如,在数据结构中,标记为“重要”的文件时(例如财务报表.xls),在传输过程中先将文件保存备份至控制设备中,防止数据端上文件误删除或者遭到勒索病毒加密。
三是可以进行异常控制。例如在短时间内传输了10个文件时,则认为有异常行为,可以进行阻止传输、预警或者进行人工确认操作,防止恶意的程序或操作盗取数据。
4)可以不需要对流量内容进行解密。在加密流量(例如https)的情况下,应用级的防火墙一般无法正常进行工作,需要使用私钥进行流量解密。在结构化后,由于流量对应了具体的在应用上的API操作,其操作的范围一般是受限的了,所以只要符合结构化的数据,可以不需要对程序传输的数据进行解密。
这里需要补充说明的是,在本申请中,一个控制设备可连接多个数据端,或一个控制设备可与另外其他的多个控制设备连接(如图6b所示)。
下面结合图5c和图5d,以第一端10为客户端、第二端20为服务端为例,具体列举几个示例来详述一下本申请提供的技术方案:
示例一
步骤一、预配置阶段:控制设备预先配置
以第一控制设备预设配置为例,第一控制设备启动后,读取与客户端建立通信连接所需使用到的配置信息,配置信息可具体包括但不限于如下内容:
①控制设备的设备特征,比如设备名称、厂商ID、设备ID等;
②建立通信连接所需用到的账号、密码(凭证)、连接校验信息等;
③数据传输交换配置信息,比如相关的公钥和私钥、传输事务集合等等;
④控制设备相关的描述符集合,其中,描述符集合可以但不限于如下内容:设备描述符(如厂商ID、产品ID、设备ID);配置描述符(如接口数量、电流需求等);接口描述符(规定通信协议等);端点描述符(各个IN、OUT端点的配置信息,包括端点号、端点类型等);字符串描述符(比如显示的厂商名字、设备名字、产品名字等)等。
⑤数据传输安全控制信息,比如,通信双方的通信标识配置(如上文所述的客户端对应的第二预置标识集合、服务端对应的第一预置标识集合、为预置字符字符串绑定(或关联)的信息(如对应的IP、端口等),禁止或允许的传输事务、数据流等等。
有关上述各配置信息的具体介绍,可参见上文结合图9所述的相关内容。
这里需要补充说明以下两点:
1)上述预设配置的实现可以离线配置(如使用分发器),或者也可以在线配置(如连接配置服务器,向控制设备下发相应的配置信息)。
2)上述所述的4个描述符(设备描述符、配置描述符、接口描述符、端点描述符),是使用USB协议情况下的通用标准描述符,也可以不需要。通用标准的作用是,例如可以让USB设备(如控制设备)在插入任意数据端(如客户端或服务端),在不安装驱动的情况下都能正常访问,例如U盘、鼠标和键盘。为了能在数据端上隐藏控制设备,也可以不按照上述4个描述符的数据结构来,因为描述符只是让数据端读取识别用的(描述符相当于数据端连接控制设备的配置文件),用于数据端加载相应控制设备的设备驱动,并向指定控制设备的端点发送或接收数据,所以,描述符对于控制设备本身来说,并无太大意义。因为本申请中是需要在数据端中安装控制设备的设备驱动的,那么也可以完全自定义描述符,或者仅有最基本的设备描述符、字符串描述(仅让操作系统能够识别到的最低限度),其他用于数据端连接的信息预先通过其他方式同步至数据端即可。能够使控制设备在接入未知的计算机时,进行安全保护和隐藏功能,减少遭逆向破解的安全风险。
步骤二、数据端与控制设备建立通信连接阶段
数据端与控制设备间的通信连接,可以为有线连接,或者无线连接,或者基于主板的独立扩展卡连接,或者基于芯片的集成连接。有线连接可以为使用USB协议的连接线或者网络双绞线或光纤等等。无线连接可以为蓝牙、WiFi等等。基于主板的连接可以为PCIE接口的扩展卡设备、SATA接口的设备等等。基于芯片集成的方式可以为SPI接口、SDIO接口等等。
控制设备供电:可以为由相应数据端为控制设备供电,或者也可以为控制设备提供独立的供电电源。
控制设备使能:控制设备通电启动后,控制设备按照读取到的预设的配置信息,使能控制传输端点、IN端点或OUT端点,其中,IN端点或OUT可以为多组,也可以仅有IN端点或仅有OUT端点的情况。端点包括控制传输、中断传输、批量传输、等时传输,超高速控制传输、超高速中断传输、超高速批量传输、超高速等时传输。
数据端开始枚举以与相应控制设备建立通信连接,具体地:在数据端和控制设备通电启动后,数据端连接控制设备,完成握手协议(完成枚举)。如参见图5c,以客户端与第一控制设备建立通信连接、客户端与第一控制设备间采用USB协议为例,具体枚举过程可包括如下步骤:
①客户端加载预设的连接所需的配置信息。比如,加载寻找第一控制设备的特征值(如厂商ID、产品ID、设备ID、字符串等);加载登录第一控制设备的账号、密码(凭证)等;加载数据交互相关的公钥和密钥等。需说明的是,配置信息可以由“分发器”(配置分发器)进行分发;也可以由第一控制设备进行同步。
②客户端向符合特征值的第一控制设备发送交互指令,获取第一控制设备的描述符,如设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、或自定义描述符等(控制设备返回上述描述符),并判断描述符参数是否符合预设。
另外,在操作系统支持、完全自定义的情况下(例如预设了5组IN和OUT端点,均为批量传输),也可以直接向控制设备(具备特征值的设备)特定端点号发送测试数据,例如向端点1(OUT端点、批量传输)发送测试数据包,当测试数据包符合预设的情况下,控制设备端点2(IN端点、批量传输)返回成功的数据包。
需要说明的是:在完全自定义的情况下,在测试前,也可以先完成以下步骤③的连接请求校验,或者跳过本步骤②的“获取控制设备的描述符”部分,直接进行第③步骤,在第③步骤中进行测试。
③客户端向第一控制设备发送连接请求数据(账号、密码(凭证)等)。在第一控制设备返回预设的校验成功数据后(控制设备对请求的数据进行校验,校验成功则返回成功,校验失败则返回失败或者不返回数据),判定为枚举成功。需说明的是:发送连接请求数据也是向第一控制设备的特定端点进行发送。例如,向端点1(OUT端点、批量传输)发送带有账号、密码(凭证)的数据包,在端点2(IN端点、批量传输)返回成功或失败的数据包。
在返回成功的数据包后,客户端完成与第一控制设备的通信连接(或称完成枚举),并每隔1秒向特定端点发送1次心跳包保持连接关系(非必须步骤),等待下一步的数据传输(传输事务)。
由上内容,在客户端加载预设的连接所需的配置信息,是由第一控制设备进行同步的情况下,通信连接建立的工作逻辑(为常规逻辑)为:
客户端——>读取描述符(配置)_——>第一控制设备---返回描述符(配置)--->客户端---根据配置的端点发送或接收数据(端点等)——>第一控制设备
在客户端加载预设的连接所需的配置信息,是由如“分发器”分发的情况下通信连接建立的工作逻辑(为特殊逻辑)为:
客户端、第一控制设备预先同步配置信息——>客户端根据配置的端点发送或接收数据(端点等)——>第一控制设备
有关数据端与控制设备间进行建立通信连接的具体实现,可参见与图10相关的内容。
这里需要补充说明的是,数据端与相应控制设备间的数据传输还可以进行加解密。考虑到数据端与相应控制设备之间进行数据传输交换过程中,所传输的数据中途可能被抓包或者篡改。例如,控制设备发送数据至相应数据端过程中,可能被其他数据端内另一程序进行抓包或修改。再例如,数据端发送数据至相应控制设备过程时,可能被中间设备进行抓包或修改。为保证数据传输安全,数据端与相应控制设备间进行数据传输过程中可以进行加密,防止数据端中的其他软件、或者通信链路上进行抓包。具体实施时,数据端与相应控制设备可以按照预先约定好通信的加密公钥、密钥(非对称加密情况下)或者加密密钥(对称加密情况下)等加密凭证或解密凭证。
比如,当数据端(或数据端上的设备驱动、API接口等)上应用,根据相应控制设备下发的预设规则,调用数据端上的设备驱动以向相应控制设备的OUT端点发送数据时,设备驱动可先通过加密凭证(如私钥)对待发送的数据进行加密,再进行发送;相应的控制设备接收后对数据进行解密(如使用公钥进行解密)。也可以预先设置加密密钥进行加密或解密(对称加密方式)。也可以使用密钥交换算法预先交换密钥(密钥交换方式),再根据密钥进行加密或解密(对称加密方式)。同时,密码错误或者解密后不符合预设规则的数据,控制设备不予处理,防止数据端上的其他程序冒充控制设备的设备驱动向控制设备发送数据。
再比如,当控制设备使用IN端点向相应的数据端(或数据端的设备驱动、API接口等)发送数据前,可以先通过加密凭证对数据进行加密,再进行发送;相应的数据端接收后,其上的设备驱动对对接收到的数据进行解密以发送至相应的应用。
上述加密解密的方式包括但不限于对称加密(如DES、AES等加密算法)、非对称加密(如RSA、DSA、ECDSA等加密算法)、密钥交换算法(如DH算法、ECDH算法)以及国产密码算法(如SM1、SM2、SM3、SM4、SM7、SM9等加密算法)。
步骤三、数据端向相应连接的控制设备发送数据
数据端向相应连接的控制设备发送数据时,是向控制设备相应接口下的OUT端点发送数据。以数据端与相应控制设备的通信连接采用USB协议为例,发送的数据为OUT令牌包+发送数据包。具体实施时,发送的数据包可以为如下2种:
第一种、数据包中包括:结构化头(包含结构化的报文头(或+数据头))、具体需要传输的数据内容(如上文所述的第一数据流的第一数据块);其中,报文头中含有预置标识(如接收方对应的第一预置标识、发送方对应的第二预置标识)。
第二种、数据包中包括:发送方对应的第二预置标识、接收方对应的第一预置标识、具体需要传输的数据内容(如上文所述的第一数据流的第一数据块)。
上述第二种,数据端对具体需要传输的数据内容(如第一数据块)不进行结构化处理,结构化处理可以在由其连接的控制设备进行、或者也可以不进行。比如,在上文本申请其他实施例中所述的预置标识用于隐藏相应端的地址信息的情况下,可以不进行。数据包中包含的各字段的数据长度(字节数)可根据实际进行自定义。下表6示出了第一种中的数据包的结构格式(注:该情况下的数据包也即为上文涉及的报文(如图3a中示出的报文A1))。
表6
上表6中,第一预置标识、第二预置标识为发送方和接收方这两个双方的通信标识。当发送方为客户端时,接收方对应的第一预置标识可称为服务标识符,发送方对应的第二预置标识可称为客户标识符。当发送方为服务端时,发送方对应的第二预置标识可称为服务标识符,接收方对应的的第一预置标识可称为客户标识符。
在一些实施例中,预置标识可为32个字节或8字节等的复杂随机字符串,用于隐藏相应端的地址信息。这种情况下,以发送方为客户端,接收方为服务端,客户端对应的第二预置标识为:0x5c 0x67 0x55 0xb6,接收方对应的第一预置标识为0x47 0xec 0x47 0xf4为例,假设客户端需向服务端发送字符串数据“hello”,则发送方法可包括如下两种:
方法一:客户端针对字符串数据“hello”构建符合预设结构规则要求的数据包(报文),数据包包含以下内容:
客户端对应的第二预置标识:0x5c 0x67 0x55 0xb6
服务端对应的第一预置标识:0x47 0xec 0x47 0xf4
事务属性标识标识:0x00 0x00 0x00 0x01//“hello”对应传输事务的事务属性标识,用于指示传输事务的事务属性信息(已事先预设,事务属性信息可包含的内容可参见图8a)
事务标识:0xa2 0xba 0xc6 0xa1 //为“hello”对应传输事务的事务标识
数据包大小:0x00 0xC8 //为当前待传输的数据块及结构化头的总大小,数据包大小也可称为数据包长度
块总数:0x00 0x01 //由于“hello”数据量较小,无需分成多个数据块进行传输,所述块总数为1
当前块号:0x00 0x01 //当前待传输的数据块的块号为1
标注信息:0x00 0x00 //没有需要标注的信息
具体需传输的数据:0x68 0x65 0x6c 0x6c 0x6f //为字符串“hello”的unicode二进制编码
客户端发送数据,如参见图5d,具体可向相应连接的第一控制设备特定的OUT端点发送OUT令牌包+上述数据包。其中,特定的OUT端点为是客户端根据第二预置标识(0x5c0x67 0x55 0xb6)关联的关联信息确定的。比如,可根据关联信息,获取为第二预置标识绑定的端点号信息,从而根据端点号信,确定特定的OUT端点。
方法二:客户端针对字符串数据“hello”,进行预结构化构建包含如下内容的数据包:
客户端对应的第二预置标识:0x5c 0x67 0x55 0xb6
服务端对应的第一预置标识:0x47 0xec 0x47 0xf4
具体需传输的数据:0x68 0x65 0x6c 0x6c 0x6f //为字符串“hello”的unicode二进制编码
客户端发送数据,如参见图5c,具体可向其连接的第一控制设备特定的OUT端点发送OUT令牌包+上述数据包(即预置标识+具体需传输的数据)
这里需要补充说明的是:在上述方式二的情况下,如参见图5d,第一控制设备接收到的客户端发送过来的数据后,可以根据从接收到的数据包中获取到的第一预置标识,获取服务端的地址信息,根据服务端的地址信息直接对接收到的数据包进行转发以发送至服务端。或者,也可以针对接收到的数据包,进一步地进行结构化处理,以生成如上述方式一中示出的符合预设结构规则要求的数据包,将生成的符合预设结构规则要求的数据包发送至服务端。采用上述由第一控制设备来生成符合预设结构要求的数据包,这种方式,可以对预置标识进一步地进行加密。例如,在客户端上安装的控制设备的设备驱动中预注册(预置)的可以是字符串别称集合,字符串别称集合中的字符串别称为相应真实的预置标识的别名,用于隐藏真实相应的预置标识;相应地,客户端针对需向服务端发送的字符串数据“hello”,通过调用其内安装的设备驱动获取到的是客户端、服务端各自对应真实的预置标识的字符串别称,来作为客户端、服务端各自对应的预置标识,比如客户端对应的预置标识为:0x5c 0x67 0x55 0xb5(为真实的第二预置标识“0x5c 0x67 0x55 0xb6”的字符串别称)、服务端对应的预置标识为:0x47 0xec 0x47 0xf3(为真实的第一预置标识“0x47 0xec0x47 0xf4”的字符串别称;之后,根据上述获取到的客户端、服务端各自对应的预置标识(为真实的预置标识的字符串别称(非真实))及具体需传输的字符串数据“hello”,生成待发送的数据包并发送至第一控制设备;第一控制设备对接收到的数据包进行解析,解析出客户端、服务端各自对应的非真实的预置标识后,可以根据自身内预置的真实的预置标识与字符串别称的对应关系,将上述解析出的客户端、服务端各自对应的非真实的预置标识转换成真实的预置标识,即上述所述的客户端对应的第二预置标识:0x5c 0x67 0x550xb6、服务端对应的第一预置标识:0x47 0xec 0x47 0xf4,以此进一步加强数据安全。
上述所述的真实的预置标识与字符串别称的对应关系,可根据真实的预置标识关联的关联信息获得,关联信息中包含相应真实的预置标识的字符串别称信息。有关字符串别称信息的具体描述,可参见上文本申请其他实施例中给出的与示例11至示例13相关的内容。
步骤四、控制设备向目标设备发送数据
承接上述步骤3给出的示例,继续参见图5d(或图5c),第一控制设备通过其第一接口(为与客户端连接的接口)接收到的客户端发送过来的数据包后,基于预设的配置(如数据传输安全控制信息)进行校验(或校验后生成符合预设结构规则要求的数据包);校验通过后,根据预设的配置,查询第一预置标识(0x47 0xec 0x47 0xf4)以获得第一预置标识关联的关联信息,从关联信息中获得其第二接口的通信目标(目标地址信息)。例如,当第一控制设备的第二接口为TCP/IP通信的情况下,从第一预置标识(0x47 0xec 0x47 0xf4)关联的关联信息中获取到的目标地址信息可为:目标IP地址为192.###.1.1、端口号为8080。比如,参见图5d(或图5c)示出的数据传输系统架构场景,目标地址信息可指向服务端连接的第二控制设备;或者如参见图4b示出的数据传输系统架构场景,目标地址信息可直接指向服务端。
进一步地,第一控制设备可根据目标地址信息,将按照上述步骤3中的方法一或方法二生成的数据包向目标地址信息对应的设备发送。
步骤五、目标设备接收数据
目标设备接收到数据包时,可根据预设的配置,进行解密、校验。目标设备校验的内容可以为但不限于:源IP、源端口,发送方、接收方的通信标识(预置标识),密码凭证信息(若需要的情况),数据类型等是否符合预设配置。当校验通过,若为如图5d(或图5c)示出的数据传输系统架构场景,且第二控制设备和服务端为主从角色的情况,则目标设备为第二控制设备,第二控制设备可将接收到的数据包缓存于本地,等待连接的服务端请求数据。
需说明的是:控制设备根据预设的配置对通信数据包进行校验,可根据校验结果对数据包进行拦截或者放行。例如,若预设的配置禁止(或非允许(白名单制))传输文件类型为“exe”可执行程序,则当通信的数据包中所含具体传输的数据为test1.exe文件时,便进行拦截;反之,当通信的的数据包中所含具体传输的数据为test2.txt文件时,便进行放行。
进一步地,服务端获取数据时,可主动地向第二控制设备循环发起获取请求(发起方式可参见上文在介绍“第二大块内容:数据交换方面”时涉及的接收数据的两种方式相关内容),第二控制设备上有适配的数据包时进行向服务端返回数据包。服务端对接收到的数据包进行解析获得相应数据,比如,继续承接上述本示例给出的数据包例子,解析出的数据可包括但不限于:客户端对应的第二预置标识:0x5c 0x67 0x55 0xb6、服务端对应的第一预置标识:0x47 0xec 0x47 0xf4,数据:0x68 0x65 0x6c 0x6c 0x6f(字符串数据“hello”的unicode二进制编码)。
示例二
下面将结合图5d示出的数据传输系统架构场景,以第一端为客户端、第二端为服务端、各端与相应的控制设备间为USB连接为例对示例二进行详述。
例子1、请求数据:客户端通过其连接的第一控制设备向服务端发起请求,比如请求网络资源,具体的,请求test.jpg数据
1.1、预备阶段:
1.1.1 针对“请求网络资源”,对应预置的“请求网络资源”传输事务的事务属性信息包括如下表7示出的内容:
表71 “请求网络资源”传输事务的事务属性信息
1.1.2、第一控制设备、客户端中同步地预设配置(预置的配置信息)中包含有上述“请求网络资源”传输事务的事务属性信息。
有关具体同步预设配置的具体实现,可参见上文本申请其他实施例中相关内容。
1.2、客户端的操作
1.2.1、针对需向服务端传输的数据(请求网络资源对应的请求参数),构建待传输的数据包。具体地,当客户端上的应用(如浏览器应用)需要请求服务端的test.jpg图片数据时,客户端上应用针对需向服务端传输的数据(即请求网络资源对应的请求参数)通过相应的API接口调用其上安装的第一控制设备的设备驱动,获取相应的“请求网络资源”传输事务的事务属性信息,并利用该“请求网络资源”传输事务的事务属性信息,生成相应的符合预设结构规则要求的待传输的数据包。生成的数据包包括的内容如下表72所示。
表72 待传输的数据包
有关生成数据包的具体实现,可参见上文本申请其他实施例中介绍的生成待传输的报文相关内容。
1.2.2、客户端向其连接的第一控制设备发送数据包
客户端通过相应的API接口调用其上安装的设备驱动,构建完待传输的数据包后,可根据客户端对应的第二预置标识关联的关联信息中包含的端点号信息,向第一控制设备特定的OUT端点(例如第一控制设备的端点1),向第一控制设备发送OUT令牌+生成的数据包。
1.3、第一控制设备的操作
1.3.1 第一控制设备对接收到的数据包进行校验
校验内容包括但不限于:数据包中客户端、服务端这二者对应的预置标识是否符合预设规则,比如,是否已注册(即预设配置中是否含有);发送数据包的端点(端点1)是否符合预设规则(如是否为客户端对应的第二预置标识绑定的端点、是否为允许的端点);数据包中的事务属性是否符合预设规则,例如传输事务的事务属性标识0x36 0xe1 0x310xf2是否已注册(预设配置中是否含有该事务属性标识),数据流前3个字节是否为事务属性限定的GET,等等。
同时,对事务属性标识等相关标识和数据流信息、数据流等数据进行日志存储。第一控制设备的日志存储区域只允许控制设备本身写入,当连接的客户端或其他审计设备接入时,日志数据为只读状态,保证日志数据不被删除、篡改。
1.3.2 第一控制设备向第二控制设备发送网络数据
第一控制设备对接收到的数据包校验通过后,根据从数据包中获得服务端对应的第一预置标识,确定出的目标地址信息(服务端对应的地址信息),按照预设网络配置(如使用TCP/IP协议的网络配置),将数据包发送至第二控制设备。
1.4、第二控制设备的操作
1.4.1 第二控制设备接收第二控制设备发送的网络数据,并进行解码校验。
校验内容包括但不限于:接收到的数据包中客户端、服务端这二者对应的预置标识是否符合预设规则,比如,是否已注册(即预设配置中是否含有);发送数据包的网络地址(例如域名、IP或端口)是否符合第一预置字符的预设规则(如是否为客户端对应的第二预置标识绑定的端点、是否为允许的端点);数据包中传输事务的事务属性是否符合预设规则,例如,传输事务的事务属性标识0x36 0xe1 0x31 0xf2是否已注册(预设配置中是否含有该事务属性标识)、数据流前3个字节是否为事务属性限定的GET,等等。
同时,对事务属性标识等相关标识符和数据流信息、数据流等数据进行日志存储。控制设备的日志存储区域只允许控制设备本身写入,当连接的服务端或其他审计设备接入时,日志数据为只读状态,保证日志数据不被删除、篡改。
1.4.2 缓存数据包
第二控制设备对接收到的数据包校验通过后,将数据包缓存于本地,等待连接的服务端请求该数据包
当服务端请求时,校验请求的端口是否符合预设等,符合时,将数据包发送至服务端。
1.5、服务端的操作:通过相应API接口读取数据。
服务端接收到数据包后,按照预设的配置进行校验,主要校验的内容包括但不限于:数据包中传输事务的事务属性是否符合预设规则,例如,事务属性标识0x36 0xe1 0x310xf2是否已注册、数据流前3个字节是否为事务属性限定的GET,等等。当校验通过后,解析数据流“GET test.jpg”的操作内容,以针对客户端的请求反馈相应的数据,即进入下述给出的例子2的流程。
例子2:回复数据:服务端通过第二控制设备向客户端回复数据,具体地,为回复test.jpg文件数据
2.1、预备阶段:
2.1.1、服务端需向客户端发送“test.jpg文件数据”,所对应的传输事务可为预置的“上传jpg文件”传输事务,该传输事务的事务属性信息包括如下表73示出的内容:
表73 “上传jpg文件”传输事务的传输事务属性信息
上述表73中,事务属性名称,该传输事务显示的属性名称字符串,如为“上传jpg文件”。
标注信息,该传输事务的事务属性备注的字符串。标注为“上传jpg格式的文件”。
关联的预置标识,为该传输事务关联的客户端对应的第二预置标识。事务是基于服务下的具体操作,比如以客户端上预先注册的文件交互服务为例,则为该文件交互服务预置的客户端对应的第二预置标识(或也可叫服务标识、通信标识)可为:0x47 0xec 0x470xf4。
事务属性标识,为传输事务的事务属性信息的唯一标识(如ID值),一般为随机字符串,如。为“上传jpg文件”传输事务的传输事务属性生成的事务属性标识为:0x36 0xe10x31 0xf1;
事务属性使用角色,为使用该事务属性角色的相应端角色。例如,服务端或者客户端,或者,客户端的更具体角色可为,如客户端的普通会员或者高级会员。上述0x00表征为服务端角色使用的情况。
事务属性类型,为传输事务的基本操作类型。例如,控制传输事务,一般是与应用系统运行相关的,如发起网络测试、发起心跳包;下载传输事务,如读取网络数据资源;上传传输事务,如发送网络数据;数据流的类型,如普通数据流或者文件数据流。上述0x00表征上传传输数据,数据流为文件数据流。
分组编码(一种字典),分别为一、二、三类,用于配置不同场景下的数据传输操作等等。暂不进行分类,均为0x00。
传输的具体数据包的校验信息(例如正则表达式、数据或文件头格式),用于校验具体数据包的数据格式或者部分数据内容是否符合该传输事务的要求。例如,当传输事务为发送文件,文件头为jpg格式(图片)时,则判断文件内容数据的起始4字节是否为0xFF0xD8 0xFF 0xE0,防止非jpg格式的文件(如exe可执行文件)进行冒充。设置为0xFF 0xD80xFF 0xE0时,判断文件头的数据为0xFF 0xD8 0xFF 0xE0。
有关上文为详尽的内容,可参见上文其他实施例中相关内容。
这里需要补充说明的是,文件流传输事务可以为特定文件类型(限定JPG格式),如上述例子;也可以通用类型,不限定特定文件类型;不限定特定文件类型的情况下,可以在控制设备进行预设限制,例如限制文件类型为exe的文件不允许上传或者下载。
2.1.2、第二控制设备、服务端中同步地预设配置(预置的配置信息)中包含有上述“上传jpg文件”传输事务的事务属性信息。
有关具体同步预设配置的具体实现,可参见上文本申请其他实施例中相关内容。
2.2、服务端的操作
2.2.1、针对需向客户端传输的数据(上传test.jpg文件数据),构建待传输的数据包。具体地,例如,以上述例子1中客户端请求Jpg图片为例,服务端针对客户端的请求,读取适配的jpg图片数据,并通过相应API接口其上安装的第二控制设备的设备驱动,获取相应的上述示出的“上传jpg文件”传输事务的事务属性信息,并利用该“上传jpg文件”传输事务的事务属性信息,生成相应的符合预设结构规则要求的待传输的数据包。
假设,读取到的jpg图片数据为1024字节,由于数据相对较大,需对读取到的jpg图片数据分块,设置每块数据大小为512字节的情况下,需将读取到的jpg图片数据切分为2个块进行传输。针对切分的2个数据块,分别利用上述“上传jpg文件”传输事务的事务属性信息,生成相应符合预设结构规则要求的待传输的数据包。所生成的两个数据包如下表74和表75所示。
表74 生成的第一个待传输的数据包(记为数据包1)
表75 生成的第二个待传输的数据包(记为数据包2)
2.2.2、服务端向其连接的第二控制设备发送数据包
服务端通过相应的API接口调用其上安装的设备驱动,构建完待传输的数据包后,可根据服务端对应的第一预置标识关联的关联信息中包含的端点号信息,向第二控制设备特定的OUT端点(例如第二控制设备的端点1’),向第而控制设备发送OUT令牌+生成的数据包。
2.3、第二控制设备的操作
2.3.1 第二控制设备对接收到的数据包进行校验
校验内容包括但不限于:数据包中客户端、服务端这二者对应的预置标识是否符合预设规则,比如,是否已注册(即预设配置中是否含有);发送数据包的端点(端点1)是否符合预设规则(如是否为服务端对应的第一预置标识绑定的端点、是否为允许的端点);数据包中的事务属性是否符合预设规则,例如,传输事务的事务属性标识0x36 0xe1 0x310xf1是否已注册(预设配置中是否含有该事务属性标识)、传输的文件是否为jpg格式、jpg的文件头是否为事务属性限定的0xFF 0xD8 0xFF 0xE0,等等。
同时,对事务属性标识等相关标识符和文件流头(文件名、文件类型等)等数据进行日志存储。第二控制设备的日志存储区域只允许第二控制设备本身写入,当连接的服务端或其他审计设备接入时,日志数据为只读状态,保证日志数据不被删除、篡改。
2.3.2 第二控制设备向第一控制设备发送网络数据
第二控制设备对接收到的数据包校验通过后,根据从数据包中获得客户端对应的第二预置标识,确定出的目标地址信息(客户端对应的地址信息),按照预设网络配置(如使用TCP/IP协议的网络配置),将数据包发送至第一控制设备。
2.4、第一控制设备的操作
2.4.1 第一控制设备接收第二控制设备发送的网络数据,并进行解码校验。
校验内容包括但不限于:接收到的数据包中客户端、服务端这二者对应的预置标识是否符合预设规则,比如,是否已注册(即预设配置中是否含有);发送数据包的网络地址(例如域名、IP或端口)是否符合第二预置字符的预设规则(如是否为客户端对应的第二预置标识绑定的端点、是否为允许的端口);数据包中的事务属性是否符合预设规则,例如,传输事务的事务属性标识0x36 0xe1 0x31 0xf1是否已注册(预设配置中是否含有该事务属性标识)、传输的文件是否为jpg格式、jpg的文件头是否为事务属性限定的0xFF 0xD8 0xFF0xE0,等等。
同时,对事务属性标识等相关标识符和文件流头(文件名、文件类型等)等数据进行日志存储。第一控制设备的日志存储区域只允许第一控制设备本身写入,当连接的客户端或其他审计设备接入时,日志数据为只读状态,保证日志数据不被删除、篡改。
2.4.2 缓存数据包
第一控制设备对接收到的数据包校验通过后,将数据包缓存于本地,等待连接的客户端请求该数据包
当客户端请求时,校验请求的端点是否符合预设等,符合时,将数据包发送至服务端。
2.5、客户端的操作:通过相应API接口读取数据。
客户端接收到数据包后,按照预设的配置进行校验,主要校验的内容包括但不限于:数据包中传输事务的事务属性是否符合预设规则,例如,事务属性标识0x36 0xe1 0x310xf1是否已注册、传输的文件是否为jpg格式、jpg的文件头是否为事务属性限定的0xFF0xD8 0xFF 0xE0,等等。当校验通过后,保存从数据包中获取的数据test.jpg,文件名、文件类型也可以自行设置。
综合上文内容,本申请又通过图13a至图13c,简单的示出了本申请结合控制设备提供的数据传输方案的原理性示意图。如参见图13a所示,数据端的数据交换需求一般可分为如下两大类:发送数据(上行数据)、接收数据(下行数据)。其中,
发送数据的具体实现包括如下过程:
数据端向其连接的控制设备的OUT端点发送数据(如OUT令牌+数据包(含有预置标识+具体需传输的数据));
相应的控制设备对接收到的数据包进行校验,并根据从数据包中相应的预置标识(为目标设备(如计算机2)对应的预置标识),获取目标地址信息(如目标IP、端口);然后,根据目标地址信息向目标设备发送数据包。之后,若接收到目标设备返回的数据包接收的状态包(用于表征数据包的接收情况(如接收成功或失败)),通过其上的OUT端点向其连接的数据端发送状态包;
数据端接收相应控制设备发送的数据(状态包),执行发送数据成功或失败的处理流程(如按照预设进行本地记录或向目标设备进行发送记录,等等)。
接收数据的具体实现包括如下过程:
数据端向其连接的控制设备的IN端点发送数据(如IN令牌包);
相应的控制设备接收到其IN端点的数据后,查询自身内是否存储有符合要求的可用数据;若未存储,则按照预设向目标设备发送请求或等待目标设备下传数据;若存储有,向数据端返回相应数据;
数据端针对接收到的数据,向其连接的控制设备返回数据接收的状态包,由控制设备根据状态包执行数据接收成功或失败的处理流程(如按照预设进行本地记录或向目标设备进行发送记录,等等)
这里需要补充说明的是,上述状态包可分为如下3种:ACK包,用于表示发送或接收成功;NAK包,用于标识控制设备忙或目标无可处理的数据,连接的数据端需要重新发数据;SHALL包,表征错误,一般为数据发错端点或端点不支持或数据校验不通过等。控制设备的网络接口及端点均可以由多组。通过预置标识可配置绑定相应的端点或网络接口。
图13b和图13c是以数据端为计算机设备(如台式计算机)为例进行示出的数据传输交换示例;其中,图中的目标设备,一些实施例中,其可仅包含另一计算机(记为计算机2),或者在另一些实施例中,可包括计算机2和该计算机2连接的另一控制设备。
图13b示出的是在计算机作为主机、计算机连接的控制设备作为从机的情况(与图13a中示出的主从机模式对应)下,数据传输的原理性示意图。如参见图13b所示,具体数据传输过程为:
若计算机1需向目标设备传输(发送)数据(即上行数据),则可包括如下步骤:
步骤11、计算机1针对需发送的数据,生成待发送的数据包(即上行数据包),数据包中可包含如下内容:预置标识和具体需传输的数据,并将该数据包发送至与其连接的控制设备1。需说明的是,若计算机1与控制设备1间为USB协议连接,在向控制设备1发送数据包时,同时还需发送OUT令牌包;若后续无对应的下行数据,则此次发送为单向传输。
步骤12、控制设备1根据相应的预置标识(如计算机2对应的预置标识),获取对应的目标地址信息(如为计算机2对应的预置标识绑定的计算机的地址信息,如192.###.1.2:8080),根据获取到的目标地址信息发送数据包至目标设备。需说明的是,向目标设备发送的数据包可以为接收到的计算机1发送过来的原始数据包,或者也可以为根据控制设备1预设的配置进行处理(加密(利用私钥对原始数据包进行加密)、修改数据包中的某些内容(如数据包为请求数据包,修改数据包中包含的请求参数)、删除数据包中的某些内容(如数据包为请求数据包,删除数据包中包含的请求参数以增加新的预设请求参数)、压缩数据、在数据包中增加一些内容等)后形成的新数据包。
步骤13、目标设备响应于接收数据包的状态,向控制设备1反馈数据包接收的状态包。例如,若接收数据包成功,可反馈表征成功的状态包,此状态包中可包含表征接收成功的编码信息(如0);反之,若接收数据包失败,可反馈表征失败的状态包,此状态包中包含表征接收失败的编码信息,此编码信息根据接收失败的不同原因有所不同,比如因无法找到而失败,则编码信息可为404等。
步骤14、控制设备1将接收到的目标设备反馈的状态包发送至计算机1,发送的方式有如下两种:
方式一、等待计算机1主动获取,具体可参见下述描述的计算机1上行(接收)数据的相关内容,此处不作赘述。
方式二、控制设备1直接反馈,若发送成功,控制设备1直接向计算机1返回成功包(计算机1与控制设备1为USB协议连接时,返回的为ACK包);若发送失败时,控制设备1直接向计算机1返回失败包(计算机1与控制设备1为USB协议连接时,返回的为NAK包)。
这里需要补充说明的是,上述步骤13和步骤14为非必须步骤,比如若计算机1的此次发送为单向传输,则便无需执行步骤13和步骤14。
若计算机1需下载(或查询)数据(即下行数据),则可包括如下步骤:
步骤21、计算机1需查询/下载数据时,可向控制设备1发送查询数据指令,例如,当计算机1与控制设备1为USB协议连接,发送查询数据指令有如下两种方式:
方式一、计算机1向控制设备1特定的OUT端点发送查询数据包(数据包可包含相应的预置标识,同上述描述的上行数据);在接收到控制设备1返回的ACK时,再向控制设备1特定的IN端点发送IN令牌包,以接收控制设备反馈的适配的数据。
方式二、计算机1直接向控制设备1特定的IN端点发送IN令牌包(无OUT上行数据的过程,为单向传输)。
步骤22、控制设备1,针对上述方式一,可向目标设备发送查询数据包,具体地,是根据相应预置标识(计算机2对应的预置标识),所获取到的目标地址信息,向目标设备发送请求数据包。针对上述方式二,控制设备1可先自动的、定时的向目标设备发送数据请求动作(可根据预置的相应请求参数进行),或者可在接收到计算机1发送的IN令牌包时,触发预设的规则,向目标设备发送数据请求动作。
步骤23、目标设备,针对上述方式一,响应于接收到的查询数据包,向控制设备1发送具体包含适配数据的数据包,此数据包中可包括但不限于如下内容:预置标识(可选)+具体与请求适配的数据。控制设备1接收到目标设备反馈的数据包后,可存储在自身内的数据缓存区中,等待计算机1主动请求获取(如等待计算机1发起IN令牌包时,进行向计算机1发送数据包)。针对上述方式二,目标设备自动的、主动的、定时的向控制设备1发送具体包含适配数据的数据包(单向传输)。
步骤24、计算机1接收数据包。比如,当计算机1与控制设备1为USB协议连接时,计算机1向控制设备的IN端点发起IN令牌包,在IN端点接收返回的数据包。
步骤25、计算机1向控制设备1返回状态包,为表征数据包接收成功或失败的状态包。
步骤26、控制设备1将接收到的状态包向目标设备发送,以告知目标设备数据包的接收状态。
这里需要补充说明的是,上述步骤25和步骤26为非必须步骤。
这里还需要补充说明的是,本申请上下文中,根据控制设备1与目标设备不同的通信协议或连接方式,目标设备的地址信息有所不同。例如,当使用TCP/IP协议通信时,为域名、IP和端口。再例如,当使用局域网、蓝牙、LoRa通信时,为Mac地址或主机名称。又例如,当使用UCB协议通信时,控制设备作为主机时,为主机分配的USB总线地址;控制设备作为从机时为端点号。有关预置标识的具体描述,可参见上文其他实施例中相关内容的具体描述。
图13c示出的是在计算机作为从机、计算机连接的控制设备作为主机的情况下,数据传输的原理性示意图。如参见图13c所示,具体数据传输过程为:
若计算机1需上行数据(如上传数据),则可包括如下步骤:
步骤31、控制设备1向计算机1发送查询指令
控制设备1与计算机1间为USB协议连接时,控制设备1可向计算机1发送OUT令牌包和查询指令数据包,以查询计算机1是否有数据交换指令;当有数据交换指令时,再向计算机1发送IN令牌包,接收数据交换指令。
步骤32、当计算机1需要查询数据/上传数据时,发送预置标识和具体需传输的数据(当计算机1与控制设备1为USB连接时,在控制设备1发送IN令牌包时,为上传数据)。
步骤33、控制设备1根据接收到的相应预置标识,获取目标地址信息;并根据目标地址信息,向目标设备发送具体需传输的数据(上传数据)。
步骤34、目标设备针对数据接收情况,向控制设备1返回数据接收的状态包。
步骤35、控制设备1将状态包发送至计算机1.
若计算机1需下行数据(接收数据),则可通过如下两种方式来实现:
方式一、可包括如下步骤:
步骤41、控制设备1主动向计算机1发送查询指令(同上述步骤31),以确定计算机1是否需要接收数据,需要时,为下行指令/OUT数据(主机出去数据为OUT)
步骤42、当计算机1需要OUT数据/上传数据时,发送:预置标识+查询请求(当计算机1与控制设备1为USB连接时,在控制设备1发送IN令牌包时,为上传数据)。
步骤43、控制设备1根据接收到的相应预置标识,获取目标地址信息;并根据目标地址信息,向目标设备发送具体需传输的数据(查询请求)。
步骤44、目标设备针对查询请求,向控制设备1发送下行数据和状态编码。
步骤45、控制设备1向计算机1发送数据包(包括下行数据和状态编码)。
方式二、可包括如下步骤:
步骤51、目标设备主动向控制设备1发送下行数据
步骤52、控制设备1向计算机1发送数据包,数据包中包含下行数据(当计算机1与控制设备1为USB连接时,控制设备1发送OUT令牌包+数据包)。
有关上述各步骤中未详尽内容,可参见上文如与图13a相关的内容。
图14示出了针对需传输的数据生成待传输的数据包(即上文涉及的报文)并进行发送的原理性示意图。如参见图14所示,当计算机1上应用针对其需传输的具体数据,启动一次数据传输时,将从预设的配置信息(预置信息)中读取传输事务属性信息集合,并从该传输事务属性信息集合中查询需传输的具体数据所属的传输事务对应的传输事务属性信息;然后,利用查询到的传输事务属性信息,为需传输的具体数据生成结构化的报文头、数据头(可选),并根据生成的报文头、数据头以及需传输的具体数据,构建(或生成)符合预设结构规则要求的数据包。若数据包构建成功,则计算机1通过其连接的中间网络设备(如交换机、路由器、防火墙)或控制设备等,发送至计算机2;计算机2针对接收到的数据包,可根据预设的配置信息,对数据包进行解析,解析成功即获取相应数据。
上述中,计算机1构建待发送的数据包失败的原因包括但不限于:无法在传输事务属性信息集合中,查询到需传输的具体数据所属的传输事务对应的传输事务属性信息;根据预设的数据传输安全控制信息,需传输的具体数据不允许发送、发送端点不符合预设等。中间网络设备(如交换机、路由器防火墙)或控制设备等,在将接收到的数据包转发给计算2之前,可对数据包进行解析,并在解析成功的情况下,根据预设的配置信息(数据传输安全控制信息)对数据包进行处理,比如对数据包进行放行(即允许数据包传输、将数据包转发给计算机2)、阻止(拦截)数据包(即禁止数据包传输)、执行预设动作(如备份数据包、本地记录)。若解析数据包失败,则解析失败的原因包括但不限于:数据包的结构不符合预设要求;对应数据包中需传输的具体数据所属的传输事务的传输事务属性信息不存在;根据数据传输安全控制信息,不允许传输;等等。
图15示出了数据传输具体应用示例。如参见图15所示,根据数据传输需求,按数据传输方向进行划分,数据传输可分为单向数据传输和双向数据传输。单向数据传输可包括仅下行数据(为只接受数据)、仅上行数据(为只发送数据)。双向数据传输交互包括上下行数据,具体地,包括以下行数据为主(如请求Http数据)的双向数据传输交互、以上行数据为主的双向数据传输交互。
在仅下行数据(为只接收数据)的情况下,预设的传输事务属性信息集合,用于在接收到数据包后,解析数据包,此数据包可包括请求的执行结果参数(如请求接收成功或失败)和对应的具体数据(如返回的与请求适配的数据)。
在仅上行数据(为只发送数据)的情况下,预设的传输事务属性信息集合,用于针对需传输的数据构建相应待发送的数据包,此数据包中可包括上传的具体数据和其他对应参数(如上文所述的报文头包含的各参数)。
在以下行数据为主(如请求Http数据)的双向数据传输交互的情况下,上行数据时,预设的传输事务属性信息集合,用于针对需传输的数据构建相应待发送的数据包,此数据包中可包括请求参数(如数据流请求参数、或请求的数据流等),进一步地还可其他对应参数(如上文所述的报文头包含的各参数)。下行数据时,预设的传输事务属性信息集合,用于在接收到数据包后,解析数据包,此数据包可包括请求的执行结果参数(如请求成功或失败的编码信息)和对应的具体数据(如返回的与请求适配的数据)。
在以上行数据为主(如上传图片数据)的双向数据传输交互的情况下,上行数据时,预设的传输事务属性信息集合,用于针对需传输的数据构建相应待发送的数据包,此数据包中可包括上传的具体数据(如图片数据)和对应参数(如上文所述的报文头包含的各参数)。下行数据时,预设的传输事务属性信息集合,用于在接收到数据包后,解析数据包,此数据包可包括上传的执行结果参数(如图片数据上传成功成功或失败的编码信息)
这里需要补充说明的是,上述数据传输需求信息,具体可包括但不限于:网页浏览(如请求网络资源)、数据库操作、邮件交换、文件交换、二进制数据传输、即时通讯、单向传输发送、单向传输接收等)。
有上图15示出的相关内容,本申请实施例中数据传输交互,实质上主要有以下3种场景:
场景一、数据端向其连接的控制设备上行(发送)数据
数据端可以通过控制自身上的硬件接口,向其连接的控制设备的上行接口(或者称上行端点、上行数据寄存器等,如下图16a中示出的数据交换接口①)发送数据包(包含预置标识和具体待传输的数据)。另外,也可以按照为预置标识(为数据端对应的预置标识,比如为0x0A)配置的通信能力,只能单向地向控制设备发送数据包,控制设备不会向此数据端下行(发送)数据。有关通信能力的具体介绍,可参见上文其他实施例中相关内容。
场景二、数据端向其连接的控制设备下行(接收)数据
数据端可通过控制自身上的硬件接口,在其连接的控制设备的下行接口(或者称下行端点、下行数据寄存器等)接收数据包,此数据包=预置标识+具体数据(可为另一数据端下发的数据)。与发送数据包不同的是,请求下行数据时,数据端需要向目标设备请求,控制设备的接口不一定有下行数据,所以需要数据端通过其自身的硬件接口,不断对其连接的控制设备的下行接口进行查询扫描、或者等待接口接收到数据的中断信号、或者等待推送的数据等。例如,数据端与其连接的控制设备间使用USB接口协议连接时,需要数据端不断主动向控制设备的IN端点发送IN令牌包,以请求进行尝试读取数据。再例如,数据端与其连接的控制设备间使用ble(Bluetooth Low Energy,蓝牙低能耗)蓝牙接口协议栈时,可在蓝牙协议的服务(service)中设置特征(characteristic)属性为通知(notify),控制设备有数据时便会自动向相应数据端推送。
场景三、数据端与控制设备的双向通信,
结合上述场景一和场景二,数据端可通过控制自身上的硬件接口,先向其连接的控制设备的上行接口发送数据包;控制设备接收到数据包后,向目标设备请求并下载数据,再向数据端的硬件接口发送(转发)。
下面补充说明一下控制设备上相关的接口描述。
本申请上下文中所述的控制设备上的用于与相应数据端进行数据传输交互的接口(如图16a中示出的数据交换接口①,可称为第一接口),可为一切类型的接口,只要保证能用于与相应数据端实现数据的单向或双向传输即可。
例如,从物理层上角度来看,接口类型可为但不限于:有线传输的接口(如双绞线/光纤接口、USB接口)、无线传输的接口(如通过蓝牙模块、LoRa模块、WiFi模块等实现的接口)、一体化集成芯片接口(如SPI、PCI)、主板独立扩展卡接口(如PCIE、SATA)、单向传输接口(如光纤的单向TX或RX、红外线接口、可见光通讯接口等等)。
次例如,从架构设计上角度来看,接口类型可以为但不限于:主从设备模式的接口、客户端-服务器模式的接口、点对点模式接口(网络接口)、TX-RX(Transmit-receive)收发线模式(上行与下行不在一根(或者一组、或者一组差分线)线上,如串口通信、光纤通信、PCIE接口,或者仅有TX或RX的单向传输)的接口。
再例如,从功能作用上角度来看,接口类型可为但不限于:用于总线通信的接口(如USB、PCI、PCIE、SPI、I²C接口)、用于存储设备通信的接口(如SATA、IDE、M.2、Emmc、SDIO接口)、用于音视频传输的接口(如HDMI接口)等。上述USB接口为比较常用的接口。
又例如:从数据传输模式上角度来看,接口类型可为但不限于:采用PIO模式(Programmed Input-Output,可编程输入输出)的接口、采用DMA模式(Direct MemoryAccess,直接内存访问)的接口。
以下针对几个主要接口类型简述一下数据端与控制设备的数据交互实现:
以通信场景为:计算机1<->计算机1的硬件接口<->控制设备1的硬件接口<->控制设备2<->计算机2为例。
1、接口类型为USB接口(有线、主从模式)
此情况下,计算机1与控制设备1使用USB协议连接。计算机1可通过控制设备1发送的设备描述符的PID(Product ID产品识别码)、VID(Vendor ID,供应商识别码)等识别控制设备1,并与控制设备1完成枚举。之后,可通过IN、OUT的端点和令牌包,完成数据的交换。有关枚举及数据交互的具体实现,可参见上文本申请其他实施例中相关的内容。
2、接口类型为蓝牙接口(无线、主从模式)
蓝牙,可分为经典蓝牙(Bluetooth Classic)和低功耗蓝牙(Bluetooth LowEnergy)2种,两者实现方式完全不同。
经典蓝牙时,在计算机1为主机模式、控制设备1为从机模式下,第一步,完成计算机1与控制设备1的蓝牙连接配对,配对的方式有:①人工配对,选择控制设备的蓝牙名称并输入配对码进行配对;②自动配对,通过预先配置的方式,获得了控制设备1的蓝牙相关参数(例如蓝牙设备名称、Mac地址、配对码),自动扫描蓝牙设备进行配对;③安全配对(安全控制部分),通过预先配置允许连接控制设备1的相关蓝牙参数的方式(白名单机制),只允许计算机1与指定的控制设备蓝牙名称、Mac地址进行配对,并可以采用人工输入配对码的方式进行配对。第二步,进行数据交换,在第一步配对成功后,计算机1向控制设备2进行数据的发送或接收。
低功耗蓝牙时,在计算机1为客户端模式、控制设备1为服务端模式下,第一步,计算机1连接控制设备1的蓝牙名称,控制设备1在接收到连接时,发送配对码进行配对,配对方式与经典蓝牙类似不同的是,低功耗蓝牙是计算机1先连接后,控制设备1再发起配对指令。安全配对(安全控制部分),只允许计算机1与指定的控制设备蓝牙名称、Mac地址、UUID进行配对,并可以采用人工输入配对码的方式进行配对。第二步,进行数据交换,在第一步配对成功后,计算机1向控制设备的蓝牙服务(service)的写特征(characteristic,属性为write)、读特征(characteristic,属性为read)、通知特征(characteristic,属性为notify)端点进行数据的发送或接收。服务和特征可以有多种组合。
需说明的是,上述给出的两种接口类型情况下,控制设备为计算机外部的设备、控制设备的形态可参见图7a或图7b所示。
3、接口类型为PCIE接口(主板接口,主从模式)。
此接口类型情况下,控制设备部署于计算机的内部,结构形式可为芯片(如图7c所示)。计算机与控制设备的数据传输交互过程如下:
第一步,计算机1通过扫描PCIE接口设备,根据对预设的控制设备PCIE接口的VID(Vendor Identification,供应商标识符)、DID(Device Identification,设备标识)、SSID(Subsystem-Identification,制造商标识符)等特征值进行识别和连接;
第二步,进行数据交换,通过PLIE接口的数据通路(Lane)的发送端(TX发送逻辑)和接收端(RX接收逻辑)进行。数据通路可以有多组,一般可为×1、×2、×4、×8、×12、×16、×32个Lane。
除了上述所述的几种接口之外,主要的还可由SATA接口(有线,类似硬盘的方式接入)、emmC接口(有线、类似SD卡的方式接入)、串口通信接口(有线、通过RX线和TX线发送数据)、光纤通信接口(有线、光模块、RXTX模式)、网线通信接口(有线或无线,包括WIFI)等等,本实施例对此不再限定。
图16a示出了控制设备的结构示意图。如参见图图16a所示,控制设备30可包括:
配置文件接收模块,用于如当存储有配置文件的分发器接入控制设备的接口(即下述的配置文件接收接口)时,向其发送控制设备的设备标识或使用控制设备用户的用户标识等特征标识符,以由分发器根据接收到的特征标识符向控制设备返回适配的配置文件;以及,还用于接收并校验如分发器发送的配置文件数据,并在校验通过后,将配置文件数据在控制设备和与控制设备连接的数据端(如计算机)(具体地为数据端中安装的控制设备的设备驱动)进行注册。其中,数据端可定值发送交互指令,以查询是否有更新配置文件;配置文件中包含的是服务配置和通信事务相关的内容,有关配置文件具体可包括的内容,可参见上文其他实施例中相关内容。
配置文件接收接口,可复用下述所述的数据交换接口①或数据交换接口②。
数据结构化模块,用于接收数据交换接口①处的数据,将数据进行结构化处理,以生成符合预设结构规则要求的结构化数据(即上文涉及的报文);以及,还用于接收到数据交换接收②处的数据时,对数据进行反序列化等解析处理。上述数据交换接口①,是用于与一数据端(为发送方,如客户端)连接的第一接口,比如控制设备上用于进程通信的USB接口。数据交换接收②,是用于与目标设备(如另一控制设备或另一数据端(为接收方,如服务端))连接的第二接口,比如控制设备上用于远程通信的网络接口(如以太网接口)。
数据校验模块,用于校验数据交换接口①和数据交换接口②处接收到或发送的数据是否符合预设的配置文件的标准。
数据交换模块,用于针对数据交换接口②,按照配置文件(具体为另一数据端对应的预置标识(即图中所述的服务标识)关联的关联信息,将数据(如接收到的与控制设备连接的数据端发送过来的数据)发送至远端的目标设备(如另一控制设备或另一数据端),或者接收远端的目标设备发送的数据。以及还用于针对数据交换接口①,接收与控制设备连接的数据端发送的第一信令(如OUT令牌包)和具体待传输的数据包(如普通数据包或结构化数据);且当接收到与控制设备连接的数据端发送的第二信令(如IN令牌包)时,向其连接的数据端发送相应适配的数据包。
存储器,用于存储如下中的至少一项:可读指令(为计算机指令),以供控制设备的处理器调用并执行;配置文件数据、备份数据等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器,为控制控制设备30内其他各功能模块/器件工作的中控部件,可为但不限于中央处理器(Central Processing Unit,CPU)。
控制设备30除了可包括上述所述的各功能模块/器件之外,还可包括其他的模块,比如加解密模块,用于对数据执行加密和/或解密处理。
图16b示出了与控制设备连接的数据端的结构示意图。数据端上除了安装有应用(如浏览器应用、社交应用等)外,还安装有控制设备的API接口及设备驱动。其中,
应用通过调用API接口实现数据的发送或接收,具体地,当需发送数据时,创建数据发送的需求信息(即上文涉及的数据传输需求信息),按照API接口参数发射相应的数据;当需接收数据时,按照API接口参数读取相关的数据。
控制设备的API接口,用于:当发送数据时,将待发送的数据转换为符合预设结构规则的结构化数据,或者也可以只对待发送的数据进行预结构化处理,后续由控制设备的数据结构化模块进行处理以转换为符合预设结构规则的结构化数据。以及,还用于当接收数据时,对接收到的结构化数据进行反序列化等解析处理。
控制设备的设备驱动,用于建立数据端与相应控制设备的通信连接(或说通信握手关系,如完成图10示出的枚举流程);以及还可用于将数据向如图16a示出的控制设备的数据交换接口①发送,或者接收数据交换接口②处的数据。
这里对于本申请上文所有内容应说明的是:上文内容中所涉及的控制设备的“端点”,是从传输协议为USB协议角度描述的,在其他传输协议场景下,“端点”也可理解为“端口”。“端口”与“端点”只是在不同传输协议场景下,用于设备之间或应用之间数据传输的接口,采用的不同表述方式而已。
图17示出了本申请一实施例提供的一种数据传输装置的结构示意图。该数据传输装置部署于第一端连接的控制设备,有关控制设备的具体介绍,可参见上文其他各实施例中相关内容。如图17所示,本实施例提供的所述数据传输装置包括:获取模块51以及发送模块52;其中,
获取模块51,用于响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;
所述获取模块51,还用于根据所述第一预置标识,获取所述第二端的地址信息;
发送模块52,用于根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
进一步地,上述获取模块51,在用于获取所述第二端对应的第一预置标识时,具体用于:确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;从所述第一事务信息包含的传输事务属性信息中,获取所述第二端对应的第一预置标识。
进一步地,上述发送模块52,在用于根据所述第二端的地址信息,将所述第一数据块发送至所述第二端时,具体用于:基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;根据所述第二端的地址信息,将所述第一报文发送至所述第二端;其中,第一目标头信息用于校验所述第一报文是否符合要求,符合要求时所述第二端从所述第一报文中获取并缓存第一数据。
进一步地,上述发送模块52,在用于基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息时,具体用于:获取所述第一数据流中数据块对应的头信息传输方式;根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
上述发送模块52,在用于根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段时,具体用于:根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在第一数据流中的排序;若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段。若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或者所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
进一步地,所述多个报头字段为所述目标报头字段的情况下,上述发送模块52,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:获取所述第一端对应的第二预置标识,所述第二预置标识用于隐藏所述第一端的地址信息;基于所述第一预置标识、所述第二预置标识、所述第一事务信息及所述第一数据的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;其中,所述第一报文头包括:所述第一预置标识、所述第二预置标识、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、目标头信息与第一数据块的总大小、第一数据流中数据块的总数量、所述第一数据块的序列号、标注信息;总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
进一步地,上述所述多个报文字段中的部分报头字段为所述目标报头字段的情况下。上述发送模块52,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:基于所述第一事务信息中的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;其中,所述第二报文头包括所述事务标识。
进一步地,上述获取模块51,还可用于:从所述第二预置标识关联的关联信息中,获取数据传输方向控制信息;以及
本实施例提供的所述数据传输装置,还包括:触发模块,用于:
若所述数据传输方向控制信息指示允许控制设备将接收到的数据转发至第二端,则触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作;
若所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至第二端,则根据所述第一数据块所属的第一数据流的数据类型,触发所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作。
进一步地,上述触发模块,在用于根据所述第一数据块所属的第一数据流的数据类型,触发所述所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作时,具体用于:所述数据类型为请求类型时,从所述关联信息中获取预设请求参数;根据所述第二端的地址信息,将所述预设请求参数及发送至所述第二端;所述数据类型为非请求类型时,则不予进行发送处理。
进一步地,若数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端、但禁止所述控制设备对接收到的所述第二端发送的数据进行转发,则本实施例提供的所述数据传输装置还包括:处理模块,用于:接收到所述第二端针对所述第一数据块返回的反馈信息时,对所述反馈信息不予进行发送处理;
进一步地,本实施例提供的所述数据传输装置还包括:
接收模块,用于在与所述第一端建立通信连接时,接收所述第一端发送的连接校验信息;
反馈模块,用于针对所述连接校验信息,向所述第一端反馈相应的校验结果,以便所述第一端基于所述校验结果确定是否与所述控制设备建立通信链路,以通过所述通信链路发送所述第一数据块;
其中,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据。
这里需要说明的是:上述实施例提供的数据传输装置可实现上述图11示出的数据传输方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述图11示出的数据传输方法实施例中的相应内容,此处不再赘述。
本申请另一实施例提供的一种数据传输装置的结构示意图。该数据传输装置部署于第一端,有关第一端的具体介绍,可参见上文其他各实施例中相关内容。具体地,所述数据传输装置包括:获取模块、生成模块以及发送模块;其中,
获取模块,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置标识;其中,第一预置标识用于隐藏所述第二端的地址信息
生成模块,用于基于所述第一预置标识及所述第一数据块,生成待发送的第一报文;
发送模块,用于通过控制设备将所述第一报文发送至所述第二端。
这里需要说明的是:上述实施例提供的数据传输装置可实现上述本申请第二方方法实施例提供的数据传输方法中描述的技术方案,为此上述各模块或单元除了可实现上述所述的步骤之外,还可实现其它相关步骤,具体可实现的步骤及实现原理可参见本申请其它实施例中相关内容,此处不再赘述。
本申请一实施例提供的一种控制设备的结构示意图。所述控制设备包括处理器及存储器。其中,所述存储器用于存储一条或多条计算机指令;所述处理器,与所述存储器耦合,用于一条或多条计算机指令(如实现数据存储逻辑的计算机指令),以用于实现上述本申请提供的与图11相关的数据传输方法中的步骤。
存储器61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
进一步,上述控制设备还包括其它组件,比如通信组件、电源组件及音频组件、显示器等,本实施例对此并不作具体限定。
有关控制设备具体可包括的功能部件,可参见本申请其他实施例中描述的与图16a相关的内容,和/或与图7a至7c相关的内容,此处不再作赘述。
本申请一实施例还提供了一种第一端,该第一端包括处理器及存储器。其中,所述存储器用于存储一条或多条计算机指令;所述处理器,与所述存储器耦合,用于一条或多条计算机指令(如实现数据存储逻辑的计算机指令),以用于实现上述本申请第二方法实施例提供的数据传输方法中的步骤。
有关存储器的具体介绍,可参见上文其它实施例中相关的内容。
此外,第一端处包括存储器和处理器之外,还可包括其它组件,如通信组件、显示器、音频组件等,此处不作具体限制。
本申请还有一实施例提供一种计算机程序产品(说明书附图中无相应附图示出)。该计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被处理器执行时,致使所述处理器能够实现上述各方法实施例中的步骤。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的方法步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (23)
1.一种数据传输方法,其特征在于,适于第一端连接的控制设备,所述方法包括:
响应于所述第一端发送的需向第二端传输第一数据流中的第一数据块,获取所述第二端的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;
基于所述第一数据流对应第一传输事务的第一事务信息及所述第一数据块,生成待发送的第一报文;
根据所述第一预置标识,获取所述第二端的地址信息;
根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
其中,所述第一报文中的报文头是根据第一数据流中数据块对应的头信息传输方式、第一数据块的相关信息、所述第一事务信息及预设报文头格式确定的;
所述头信息传输方式为如下中任一种:对所有数据块均采用全量结构化头的第一方式,仅对最后个数据块采用全量结构化头而其他数据块采用简要结构化头的第二方式,仅对首个数据块采用全量结构化头而其他数据块采用简要结构化头的第三方式;全量结构化头包含预设报文格式中的所有字段,所有字段中包括事务属性标识字段、事务标识字段;简要结构化头包含预设报文格式中的事务标识字段。
2.根据权利要求1所述的方法,其特征在于,获取所述第二端的第一预置标识,包括:
确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;
从所述第一事务信息包含的传输事务属性信息中,获取所述第一预置标识。
3.根据权利要求1所述的方法,其特征在于,基于所述第一数据流对应第一传输事务的第一事务信息及所述第一数据块,生成待发送的第一报文,包括:
基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;
其中,所述第一目标头信息中包含有所述报文头;所述第一目标头信息用于校验所述第一报文是否符合要求,符合要求时所述第二端从所述第一报文中获取并缓存所述第一数据块。
4.根据权利要求3所述的方法,其特征在于,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息,包括:
获取所述第一数据流中数据块对应的头信息传输方式;
根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的所述报文头。
5.根据权利要求4所述的方法,其特征在于,根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段,包括:
根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在第一数据流中的排序;
若所述头信息传输方式为所述第一方式,或所述头信息传输方式为所述第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为所述第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
若所述头信息传输方式为所述第二方式、且所述第一数据块在所述第一数据流中排序非最后,或者所述头信息传输方式为所述第三方式、且所述第一数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段,所述部分报头字段包含事务标识字段。
6.根据权利要求5所述的方法,其特征在于,所述多个报头字段为所述目标报头字段时,
根据所述第一事务信息及所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头,包括:
获取所述第一端对应的第二预置标识,所述第二预置标识用于隐藏所述第一端的地址信息;
基于所述第一预置标识、所述第二预置标识、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:所述第一预置标识、所述第二预置标识、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、目标头信息与第一数据块的总大小、第一数据流中数据块的总数量、所述第一数据块的序列号、标注信息;
总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
7.根据权利要求5所述的方法,其特征在于,所述多个报头字段中的部分报头字段为所述目标报头字段时,
根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段的字段值,得到为所述第一数据块确定的报文头,包括:
基于所述第一事务信息中的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述事务标识。
8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:
从所述第一端对应的第二预置标识关联的关联信息中,获取数据传输方向控制信息;
若所述数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端,则触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作;
若所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至所述第二端,则根据所述第一数据块所属的第一数据流的数据类型,触发所述根据第二端的地址信息,将所述第一数据块发送至所述第二端的操作。
9.根据权利要求8所述的方法,其特征在于,根据所述第一数据块所属的第一数据流的数据类型,触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作,包括:
所述数据类型为请求类型时,从所述关联信息中获取预设请求参数;根据所述第二端的地址信息,将所述预设请求参数发送至所述第二端;
所述数据类型为非请求类型时,则不予进行发送处理。
10.根据权利要求8所述的方法,其特征在于,若数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端、但禁止所述控制设备对接收到的所述第二端发送的数据进行转发,则
所述方法还包括:
接收到所述第二端针对所述第一数据块返回的反馈信息时,对所述反馈信息不予进行发送处理。
11.根据权利要求1至7中任一项所述的方法,其特征在于,还包括:
在与所述第一端建立通信连接时,接收所述第一端发送的连接校验信息;
针对所述连接校验信息,向所述第一端反馈相应的校验结果,以便所述第一端基于所述校验结果确定是否与所述控制设备建立通信链路,以通过所述通信链路发送所述第一数据块;
其中,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据。
12.一种数据传输方法,其特征在于,适于第一端,所述方法包括:
在需向第二端传输第一数据流中的第一数据块时,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;
基于所述第一数据流对应第一传输事务的第一事务信息、所述第一预置标识及所述第一数据块,生成待发送的第一报文;
通过控制设备将所述第一报文发送至所述第二端;
其中,所述第一报文中的报文头是根据第一数据流中数据块对应的头信息传输方式、第一数据块的相关信息、所述第一事务信息及预设报文头格式确定的;
所述头信息传输方式为如下中任一种:对所有数据块均采用全量结构化头的第一方式,仅对首个数据块采用全量结构化头而其他数据块采用简要结构化头的第二方式,仅对最后个数据块采用全量结构化头而其他数据块采用简要结构化头的第三方式;全量结构化头包含预设报文格式中的所有字段,所有字段包括事务属性标识字段、事务标识字段;简要结构化头包含预设报文格式中的事务标识字段。
13.根据权利要求12所述的方法,其特征在于,基于所述第一数据流对应第一传输事务的第一事务信息、所述第一预置标识及所述第一数据块,生成待发送的第一报文,包括:
确定所述第一数据流对应第一传输事务的第一事务信息;
基于所述第一事务信息及所述第一预置标识,为所述第一数据块确定第一目标头信息;
根据所述第一目标头信息及所述第一数据块,生成所述第一报文;
其中,所述第一目标头信息中包含有所述报文头,所述第一目标头信息用于校验所述第一报文是否符合要求。
14.一种数据传输系统,其特征在于,包括:
第二端;
第一端,用于将需向所述第二端传输的第一数据块发送至第一控制设备;
第一控制设备,用于响应于所述第一端发送的所述第一数据块,获取所述第二端对应的第一预置标识;其中,所述第一预置标识用于隐藏所述第二端的地址信息;基于所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息及所述第一数据块,生成待发送的第一报文;根据所述第一预置标识,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
其中,所述第一报文中的报文头是根据第一数据流中数据块对应的头信息传输方式、第一数据块的相关信息、所述第一事务信息及预设报文头格式确定的;
所述头信息传输方式为如下中任一种:对所有数据块均采用全量结构化头的第一方式,仅对首个数据块采用全量结构化头而其他数据块采用简要结构化头的第二方式,仅对最后个数据块采用全量结构化头而其他数据块采用简要结构化头的第三方式;全量结构化头包含预设报文格式中的所有字段,所有字段中包括事务属性标识字段、事务标识字段;简要结构化头包含预设报文格式中的事务标识字段。
15.根据权利要求14所述的系统,其特征在于,第一控制设备,在用于基于所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息及所述第一数据块,生成待发送的第一报文时,具体用于:
确定所述第一数据流对应第一传输事务的第一事务信息;
基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;
其中,所述第一目标头信息中包含有所述报文头,所述第一目标头信息用于校验所述第一报文是否符合要求。
16.根据权利要求15所述的系统,其特征在于,还包括:第二控制设备,与所述第二端及所述第一控制设备通信连接;所述第二端的地址信息指向第二控制设备;
以及,所述第一控制设备,具体用于根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
所述第二控制设备,用于对接收到的所述第一报文进行校验;若校验通过,且接收到所述第二端发送的获取请求,则将所述第一报文发送至所述第二端;若校验未通过,则不予进行发送处理。
17.一种数据传输系统,其特征在于,包括:
目标设备;
第一端,用于在需向所述目标设备传输第一数据流中的第一数据块时,获取所述目标设备对应的第一预置标识;基于所述第一数据流对应第一传输事务的第一事务信息、所述第一预置标识及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至第一控制设备;其中,第一预置标识用于隐藏目标设备的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置标识,确定所述目标设备的地址信息;根据所述目标设备的地址信息,将所述第一报文发送至所述目标设备;
其中,所述第一报文中的报文头是根据第一数据流中数据块对应的头信息传输方式、第一数据块的相关信息、所述第一事务信息及预设报文头格式确定的;
所述头信息传输方式为如下中任一种:对所有数据块均采用全量结构化头的第一方式,仅对首个数据块采用全量结构化头而其他数据块采用简要结构化头的第二方式,仅对最后个数据块采用全量结构化头而其他数据块采用简要结构化头的第三方式;全量结构化头包含预设报文格式中的所有字段,所有字段中包括事务属性标识字段、事务标识字段;简要结构化头包含预设报文格式中的事务标识字段。
18.根据权利要求17所述的系统,其特征在于,所述目标设备包括第二端;
所述第一控制设备,具体用于根据所述第一预置标识,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
19.根据权利要求18所述的系统,其特征在于,所述目标设备还包括第二控制设备,与所述第二端及所述第一控制设备通信连接;所述第二端的地址信息指向第二控制设备;
所述第一控制设备,具体用于根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备,用于对接收到的所述第一报文进行校验;校验通过后,缓存所述第一报文,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
20.一种数据传输系统,其特征在于,包括:
第一端,用于在需向第二端传输第一数据流中的第一数据块时,获取所述第二端对应的第一预置标识;基于所述第一数据流对应第一传输事务的第一事务信息、所述第一预置标识及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至第一控制设备;其中,第一预置标识用于隐藏第二端的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置标识,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
第二控制设备,用于缓存接收到的所述第一报文,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文;
其中,所述第一报文中的报文头是根据第一数据流中数据块对应的头信息传输方式、第一数据块的相关信息、所述第一事务信息及预设报文头格式确定的;
所述头信息传输方式为如下中任一种:对所有数据块均采用全量结构化头的第一方式,仅对首个数据块采用全量结构化头而其他数据块采用简要结构化头的第二方式,仅对最后个数据块采用全量结构化头而其他数据块采用简要结构化头的第三方式;全量结构化头包含预设报文格式中的所有字段,所有字段中包括事务属性标识字段、事务标识字段;简要结构化头包含预设报文格式中的事务标识字段。
21.一种数据传输系统,其特征在于,包括:
第一端,用于在需向第二端传输第一数据块时,获取第二端对应的第一预置标识及所述第一端对应的第二预置标识;将所述第一预置标识、所述第二预置标识及所述第一数据块发送至第一控制设备;其中,预置标识用于隐藏相应端的地址信息;
第一控制设备,用于确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;并根据所述第一预置标识获取到的第二端的地址信息,将所述第一报文发送至所述第二端;
第二端,用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据块;
其中,所述第一目标头信息中包含的报文头是根据第一数据流中数据块对应的头信息传输方式、第一数据块的相关信息、所述第一事务信息及预设报文头格式确定的;
所述头信息传输方式为如下中任一种:对所有数据块均采用全量结构化头的第一方式,仅对首个数据块采用全量结构化头而其他数据块采用简要结构化头的第二方式,仅对最后个数据块采用全量结构化头而其他数据块采用简要结构化头的第三方式;全量结构化头包含预设报文格式中的所有字段,所有字段中包括事务属性标识字段、事务标识字段;简要结构化头包含预设报文格式中的事务标识字段。
22.一种控制设备,其特征在于,包括:处理器及存储器,其中,
所述存储器,用于存储一条或多条计算机指令;
所述处理器,与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于实现上述权利要求1至11中任一项中所述的数据传输方法中的步骤。
23.一种第一端,其特征在于,包括:处理器及存储器,其中,
所述存储器,用于存储一条或多条计算机指令;
所述处理器,与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于实现上述权利要求12或13所述的数据传输方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/135531 WO2024114747A1 (zh) | 2022-12-01 | 2023-11-30 | 数据传输方法、系统、第一端、中间网络设备及控制设备 |
TW112146946A TW202429853A (zh) | 2022-12-01 | 2023-12-01 | 數據傳輸方法、系統、第一端、中間網絡設備及控制設備 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/136012 WO2023151354A2 (zh) | 2022-12-01 | 2022-12-01 | 数据传输方法、系统、第一端、中间网络设备及控制设备 |
CNPCT/CN2022/136012 | 2022-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116471109A CN116471109A (zh) | 2023-07-21 |
CN116471109B true CN116471109B (zh) | 2024-03-05 |
Family
ID=87182510
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310522087.8A Active CN116471109B (zh) | 2022-12-01 | 2023-05-09 | 数据传输方法、系统、第一端及控制设备 |
CN202310522095.2A Active CN116760566B (zh) | 2022-12-01 | 2023-05-09 | 数据传输方法、系统、第一端、中间网络设备及控制设备 |
CN202310801511.2A Active CN116708416B (zh) | 2022-12-01 | 2023-06-30 | 数据传输控制方法、系统、控制设备及可读存储介质 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310522095.2A Active CN116760566B (zh) | 2022-12-01 | 2023-05-09 | 数据传输方法、系统、第一端、中间网络设备及控制设备 |
CN202310801511.2A Active CN116708416B (zh) | 2022-12-01 | 2023-06-30 | 数据传输控制方法、系统、控制设备及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
CN (3) | CN116471109B (zh) |
TW (1) | TW202429853A (zh) |
WO (3) | WO2023151354A2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962512B (zh) * | 2023-09-20 | 2024-01-05 | 北京信安世纪科技股份有限公司 | 报文处理方法、设备、存储介质和装置 |
CN117375709B (zh) * | 2023-10-23 | 2024-07-12 | 国网江苏省电力有限公司泰州供电分公司 | 一种基于光缆路由光缆共模风险预警系统及方法 |
CN117544506B (zh) * | 2023-11-09 | 2024-05-24 | 北京中电汇通科技有限公司 | 一种基于eBPF技术的容器云DNS性能优化方法 |
CN117729172A (zh) * | 2024-02-18 | 2024-03-19 | 成都深瑞同华科技有限公司 | 一种隔离网络环境下的数据传输方法、装置及存储介质 |
CN117714219B (zh) * | 2024-02-18 | 2024-04-23 | 中国电子科技集团公司第三十研究所 | 一种设备地址/标识的隐藏还原方法及报文传输方法 |
CN117939474B (zh) * | 2024-03-21 | 2024-06-18 | 江苏海平面数据科技有限公司 | 基于车联网大数据的通讯终端检测系统和方法 |
CN118094608B (zh) * | 2024-04-29 | 2024-08-30 | 山东水文印务有限公司 | 水文数据管理方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1051494A (ja) * | 1996-08-07 | 1998-02-20 | Nippon Telegr & Teleph Corp <Ntt> | Mpeg多重構造伝送方法とそのシステム |
US5948136A (en) * | 1997-07-30 | 1999-09-07 | Sony Corporation | Hardware authentication mechanism for transmission of data between devices on an IEEE 1394-1995 serial bus network |
US6438145B1 (en) * | 1998-12-04 | 2002-08-20 | Koninklijke Philips Electronics N.V. | Transport packet distribution system and method using local header |
WO2006003069A1 (de) * | 2004-07-02 | 2006-01-12 | Siemens Aktiengesellschaft | Verfahren und einrichtung zum aufbau und betrieb einer anonymisierten kommunikationsverbindung |
CN101262416A (zh) * | 2007-03-06 | 2008-09-10 | 华为技术有限公司 | 通信系统中用户位置隐藏的方法、系统及装置 |
CN102611531A (zh) * | 2012-03-12 | 2012-07-25 | 成都龙冠科技实业有限公司 | 一种单向数据传输方法 |
CN103763374A (zh) * | 2014-01-23 | 2014-04-30 | 深圳联友科技有限公司 | 基于udt的数据传输方法及装置 |
CN109451084A (zh) * | 2018-09-14 | 2019-03-08 | 华为技术有限公司 | 一种服务访问方法及装置 |
CN110611671A (zh) * | 2019-09-12 | 2019-12-24 | 北京邮电大学 | 基于移动目标防御的局域网通信方法及装置 |
CN111711710A (zh) * | 2020-05-27 | 2020-09-25 | 北京金山云网络技术有限公司 | 访问MongoDB复制集集群的方法、装置、设备及存储介质 |
CN113347198A (zh) * | 2021-06-23 | 2021-09-03 | 深圳壹账通智能科技有限公司 | Arp报文处理方法、装置、网络设备及存储介质 |
CN114244610A (zh) * | 2021-12-17 | 2022-03-25 | 山石网科通信技术股份有限公司 | 一种文件传输方法、装置,网络安全设备及存储介质 |
WO2022127938A1 (zh) * | 2020-12-15 | 2022-06-23 | 中国科学院声学研究所 | 一种具备网内存储能力的数据传输系统 |
CN114844842A (zh) * | 2022-05-07 | 2022-08-02 | 湖南戎腾网络科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
CN114844729A (zh) * | 2022-07-04 | 2022-08-02 | 中国人民解放军国防科技大学 | 一种网络信息隐藏方法及系统 |
CN115361166A (zh) * | 2022-07-13 | 2022-11-18 | 亿点云计算(珠海)有限公司 | 基于分布式云服务的访问请求处理方法及相关设备 |
CN115408707A (zh) * | 2022-11-03 | 2022-11-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置、系统及电子设备和存储介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7054906B2 (en) * | 2000-12-29 | 2006-05-30 | Levosky Michael P | System and method for controlling and organizing Email |
US20070208845A1 (en) * | 2006-02-03 | 2007-09-06 | Fazal Raheman | Novel method and system of anonymizing real time Internet communications between peers |
EP2067282A4 (en) * | 2006-09-29 | 2013-12-04 | Ericsson Telefon Ab L M | METHOD AND SYSTEM FOR REDUCING NEIGHBOROUNDS OF DISTANCE USING TIME DUPLEX (TDD) |
US8190878B2 (en) * | 2007-03-23 | 2012-05-29 | Microsoft Corporation | Implementation of private messaging |
US7962957B2 (en) * | 2007-04-23 | 2011-06-14 | International Business Machines Corporation | Method and apparatus for detecting port scans with fake source address |
JP2008276657A (ja) * | 2007-05-02 | 2008-11-13 | Terukichi Kobayashi | メール転送装置、メール転送方法及びプログラム |
CN101340616A (zh) * | 2007-07-03 | 2009-01-07 | 鼎桥通信技术有限公司 | 一种改变专用传输信道属性的方法及装置 |
US8024472B1 (en) * | 2007-09-25 | 2011-09-20 | Limelight Networks, Inc. | Third party verification using override IP addresses |
US8498394B2 (en) * | 2008-07-31 | 2013-07-30 | Nec Corporation | Anonymous communication system |
US20160021518A1 (en) * | 2014-07-16 | 2016-01-21 | Shadow SMS, LLC | System and method for communicating anonymously |
US20160344701A1 (en) * | 2015-02-23 | 2016-11-24 | Shadow SMS, LLC | Systems and methods for a two-way common pool proxy to obscure communication routing |
US10367633B2 (en) * | 2015-04-15 | 2019-07-30 | Nokia Technologies Oy | Wireless communication |
KR101544460B1 (ko) * | 2015-04-24 | 2015-08-13 | 국방과학연구소 | 그룹 통신의 링크 계층에서 수신자 주소를 은닉하는 방법 |
US20170374088A1 (en) * | 2016-06-22 | 2017-12-28 | Sable Networks, Inc. | Individually assigned server alias address for contacting a server |
CA3033217C (en) * | 2016-08-09 | 2021-09-28 | Huawei Technologies Co., Ltd. | Method for virtual machine to access physical server in cloud computing system, apparatus, and system |
CN109245982B (zh) * | 2017-07-10 | 2020-11-24 | 重庆邮电大学 | 一种基于单向分光的无状态端到端连接的内外网数据实时交换系统 |
US11544416B2 (en) * | 2017-08-03 | 2023-01-03 | Cyber Sepio Systems Ltd | System and method for securing a computer system from threats introduced by USB devices |
CN108777681A (zh) * | 2018-05-29 | 2018-11-09 | 中国人民解放军91977部队 | 基于ndis过滤驱动的网络数据单向传输控制方法 |
CN110312254A (zh) * | 2019-06-25 | 2019-10-08 | 深圳市浩科电子有限公司 | 一种服务器和终端进行通信的数据传输方法 |
US11483209B2 (en) * | 2019-11-19 | 2022-10-25 | Advanced Micro Devices, Inc. | Forward progress mechanisms for a communications network having multiple nodes |
CN111510440B (zh) * | 2020-04-07 | 2022-09-20 | 中国民航信息网络股份有限公司 | 一种数据交换方法及系统 |
KR102361079B1 (ko) * | 2020-12-10 | 2022-02-14 | 가온플랫폼 주식회사 | 단방향 보안 데이터 전송 장치 및 이의 소프트웨어 관리 시스템 |
CN114615082B (zh) * | 2022-04-07 | 2023-09-12 | 西安热工研究院有限公司 | 一种使用正反向网闸模拟tcp双工安全通讯系统和方法 |
-
2022
- 2022-12-01 WO PCT/CN2022/136012 patent/WO2023151354A2/zh unknown
-
2023
- 2023-05-09 CN CN202310522087.8A patent/CN116471109B/zh active Active
- 2023-05-09 CN CN202310522095.2A patent/CN116760566B/zh active Active
- 2023-06-30 CN CN202310801511.2A patent/CN116708416B/zh active Active
- 2023-11-30 WO PCT/CN2023/135531 patent/WO2024114747A1/zh unknown
- 2023-12-01 TW TW112146946A patent/TW202429853A/zh unknown
-
2024
- 2024-06-30 WO PCT/CN2024/102779 patent/WO2024193733A2/zh unknown
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1051494A (ja) * | 1996-08-07 | 1998-02-20 | Nippon Telegr & Teleph Corp <Ntt> | Mpeg多重構造伝送方法とそのシステム |
US5948136A (en) * | 1997-07-30 | 1999-09-07 | Sony Corporation | Hardware authentication mechanism for transmission of data between devices on an IEEE 1394-1995 serial bus network |
US6438145B1 (en) * | 1998-12-04 | 2002-08-20 | Koninklijke Philips Electronics N.V. | Transport packet distribution system and method using local header |
WO2006003069A1 (de) * | 2004-07-02 | 2006-01-12 | Siemens Aktiengesellschaft | Verfahren und einrichtung zum aufbau und betrieb einer anonymisierten kommunikationsverbindung |
CN101262416A (zh) * | 2007-03-06 | 2008-09-10 | 华为技术有限公司 | 通信系统中用户位置隐藏的方法、系统及装置 |
CN102611531A (zh) * | 2012-03-12 | 2012-07-25 | 成都龙冠科技实业有限公司 | 一种单向数据传输方法 |
CN103763374A (zh) * | 2014-01-23 | 2014-04-30 | 深圳联友科技有限公司 | 基于udt的数据传输方法及装置 |
CN109451084A (zh) * | 2018-09-14 | 2019-03-08 | 华为技术有限公司 | 一种服务访问方法及装置 |
CN110611671A (zh) * | 2019-09-12 | 2019-12-24 | 北京邮电大学 | 基于移动目标防御的局域网通信方法及装置 |
CN111711710A (zh) * | 2020-05-27 | 2020-09-25 | 北京金山云网络技术有限公司 | 访问MongoDB复制集集群的方法、装置、设备及存储介质 |
WO2022127938A1 (zh) * | 2020-12-15 | 2022-06-23 | 中国科学院声学研究所 | 一种具备网内存储能力的数据传输系统 |
CN113347198A (zh) * | 2021-06-23 | 2021-09-03 | 深圳壹账通智能科技有限公司 | Arp报文处理方法、装置、网络设备及存储介质 |
CN114244610A (zh) * | 2021-12-17 | 2022-03-25 | 山石网科通信技术股份有限公司 | 一种文件传输方法、装置,网络安全设备及存储介质 |
CN114844842A (zh) * | 2022-05-07 | 2022-08-02 | 湖南戎腾网络科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
CN114844729A (zh) * | 2022-07-04 | 2022-08-02 | 中国人民解放军国防科技大学 | 一种网络信息隐藏方法及系统 |
CN115361166A (zh) * | 2022-07-13 | 2022-11-18 | 亿点云计算(珠海)有限公司 | 基于分布式云服务的访问请求处理方法及相关设备 |
CN115408707A (zh) * | 2022-11-03 | 2022-11-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置、系统及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116708416B (zh) | 2024-08-06 |
TW202429853A (zh) | 2024-07-16 |
CN116471109A (zh) | 2023-07-21 |
WO2024114747A1 (zh) | 2024-06-06 |
WO2024193733A2 (zh) | 2024-09-26 |
WO2023151354A3 (zh) | 2023-10-05 |
CN116760566B (zh) | 2024-07-09 |
CN116760566A (zh) | 2023-09-15 |
WO2023151354A2 (zh) | 2023-08-17 |
CN116708416A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116471109B (zh) | 数据传输方法、系统、第一端及控制设备 | |
JP6656157B2 (ja) | ネットワーク接続自動化 | |
CN105376216B (zh) | 一种远程访问方法、代理服务器及客户端 | |
US8239917B2 (en) | Systems and methods for enterprise security with collaborative peer to peer architecture | |
US7882555B2 (en) | Application layer security method and system | |
US20140282978A1 (en) | Method and apparatus for secure interaction with a computer service provider | |
CN110198297B (zh) | 流量数据监控方法、装置、电子设备及计算机可读介质 | |
CN111030963B (zh) | 文档追踪方法、网关设备及服务器 | |
US11997210B2 (en) | Protection of online applications and webpages using a blockchain | |
US11089061B1 (en) | Threat isolation for documents using distributed storage mechanisms | |
US12028377B2 (en) | Active fingerprinting for transport layer security (TLS) servers | |
WO2017021687A1 (en) | Security device for securely connecting peripheral bus devices | |
US20230351028A1 (en) | Secure element enforcing a security policy for device peripherals | |
US10032027B2 (en) | Information processing apparatus and program for executing an electronic data in an execution environment | |
WO2022033350A1 (zh) | 注册服务的方法及设备 | |
US11258766B2 (en) | VNF package signing system and VNF package signing method | |
KR101425726B1 (ko) | 네트워크 분리 환경에서 가상화 기반 네트워크 연계 보안 시스템 및 그 방법 | |
US11386194B1 (en) | Generating and validating activation codes without data persistence | |
CN113595962B (zh) | 一种安全管控的方法、装置和安全管控设备 | |
KR102534012B1 (ko) | 컨텐츠 제공자의 보안등급을 인증하는 시스템 및 그 방법 | |
CN118300899B (zh) | 授权通信方法、装置、计算机设备及存储介质 | |
Müller | Internet of Vulnerable Things | |
CN111835775A (zh) | 一种基于区块链的物联网设备安全调用方法、装置及设备 | |
JP2004272379A (ja) | 認証システム及び認証プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40093130 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |