WO2023151354A2 - 数据传输方法、系统、第一端、中间网络设备及控制设备 - Google Patents

数据传输方法、系统、第一端、中间网络设备及控制设备 Download PDF

Info

Publication number
WO2023151354A2
WO2023151354A2 PCT/CN2022/136012 CN2022136012W WO2023151354A2 WO 2023151354 A2 WO2023151354 A2 WO 2023151354A2 CN 2022136012 W CN2022136012 W CN 2022136012W WO 2023151354 A2 WO2023151354 A2 WO 2023151354A2
Authority
WO
WIPO (PCT)
Prior art keywords
information
data
transaction
data block
header
Prior art date
Application number
PCT/CN2022/136012
Other languages
English (en)
French (fr)
Other versions
WO2023151354A3 (zh
Inventor
黄建邦
Original Assignee
黄建邦
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 黄建邦 filed Critical 黄建邦
Priority to PCT/CN2022/136012 priority Critical patent/WO2023151354A2/zh
Priority to CN202310522087.8A priority patent/CN116471109B/zh
Priority to CN202310522095.2A priority patent/CN116760566A/zh
Priority to CN202310801511.2A priority patent/CN116708416A/zh
Publication of WO2023151354A2 publication Critical patent/WO2023151354A2/zh
Publication of WO2023151354A3 publication Critical patent/WO2023151354A3/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Definitions

  • the present application relates to the computer field, and in particular to a data transmission method, system, first end, intermediate network equipment and control equipment.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • Transmission Control Protocol/Internet Protocol also called Network Communication Protocol
  • embodiments of the present application provide a data transmission method, system, first end, intermediate network device, and control device that can at least partially improve or solve existing problems.
  • a data transmission method is provided, the method is suitable for a first control module in a first application on a first end, the method includes:
  • the first object header information is used to check whether the first packet meets requirements.
  • a data transmission method is also provided, the method is suitable for a second control module outside the first application on the first end; the method includes:
  • the first object header information is used to check whether the first packet meets requirements.
  • a data transmission method is also provided, the method is suitable for a fourth control module on an intermediate network device, and the method includes:
  • the first object header information is used to check whether the first packet meets requirements.
  • a data transmission method is also provided, the method is suitable for the control device connected to the first end, and the method includes:
  • a data transmission system is also provided, and the system includes:
  • a first control module is provided in the first application, and the first control module is configured to determine that the first data flow of the first application corresponds to the first transaction information of the first transmission transaction;
  • the second end transmits the first data block of the first data stream, based on the first transaction information, determine corresponding first target header information for the first data block; according to the first data block and the The first target header information is used to generate a first message to be sent; the first message is sent to the second end; wherein the first target header information is used to verify the first message does it reach the requirement;
  • the second end is provided with a third control module, and the third control module is used to verify the first target header information contained in the first message received by the second end; the verification passes After that, acquire and cache the first data from the first packet.
  • a data transmission system is also provided, and the system includes:
  • a second control module is arranged outside the first application, and the second control module is configured to determine the first data block sent by the first application and needs to be transmitted to the second end.
  • the first transaction information of the first transmission transaction to which a data block belongs based on the first transaction information, determine the corresponding first target header information for the first data block; according to the first data block and the first A target header information, generating a first message to be sent; sending the first message to the second end; wherein, the first target header information is used to check whether the first message conforms to Require.
  • the second end is provided with a third control module, and the third control module is used to verify the first target header information contained in the first message received by the second end; After passing the verification, obtain the first data from the first packet.
  • a data transmission system comprising:
  • the first end is configured to send the first data block to be transmitted to the second end to the intermediate network device;
  • the intermediate network device is provided with a fourth control module, configured to receive the first data block, and determine the first transaction information of the first transmission transaction to which the first data block belongs; based on the first transaction information, Determining corresponding first target header information for the first data block; generating a first message to be sent according to the first data block and the first target header information; sending the first message to The second end; wherein, the first target header information is used to check whether the first packet meets requirements.
  • the second end is provided with a third control module, which is used to verify the first target header information contained in the first message received by the second end; after the verification is passed, the Obtain the first data from the first packet.
  • a data transmission system comprising:
  • the first end is configured to determine the first transaction information of the first data flow corresponding to the first transmission transaction; when the first data block of the first data flow needs to be transmitted to the second end, based on the first transaction information, determining corresponding first target header information for the first data block; generating a first message to be sent according to the first data block and the first target header information; and sending the first message sent to the second end; wherein, the first target header information is used to check whether the first message is required;
  • the second end is used to verify the target header information contained in the received first message, and determine whether the first message meets the requirements; if the requirements are met, obtain and Cache the first data block.
  • a data transmission system comprising:
  • the first end is configured to send the first data block to the first control device when the first data block of the first data stream needs to be transmitted to the second end;
  • a first control device configured to determine that the first data stream corresponds to first transaction information of a first transmission transaction; based on the first transaction information, determine a corresponding first target header for the received first data block information; generate a first message to be sent according to the first data block and the first target header information; send the first message to the second end; wherein the first target header information is used to verify whether the first message requires
  • the second end is used to verify the first target header information contained in the received first message, and determine whether the first message meets the requirements; if the requirements are met, from the first message Obtain and cache the first data block.
  • a data transmission system comprising:
  • the first end is configured to send the first data block to the first control device when the first data block of the first data stream needs to be transmitted to the second end;
  • the first control device is connected in communication with the first end, and is configured to determine first transaction information corresponding to the first transmission transaction of the first data stream; based on the first transaction information, the received first
  • the data block determines the corresponding first target header information; generates a first message to be sent according to the first data block and the first target header information; sends the first message to the second control device; wherein, the first target header information is used to check whether the first packet is required;
  • the second control device is communicatively connected with the first control device and the second terminal, and is used to verify the first target header information contained in the received first message, and determine the first message Whether the text meets the requirements; when the requirements are met, cache the first message locally to wait for the second end to obtain it;
  • the second end is configured to send an acquisition request to the second control device; and receive the first message fed back by the second control device for the acquisition request.
  • a data transmission system comprising:
  • the first end is configured to send the first data block to be transmitted to the second end to the first control device;
  • the first control device is configured to acquire a first preset character string corresponding to the second end in response to the first data block sent by the first end; wherein the first preset character string is used for hiding the address information of the second end; obtaining the address information of the second end according to the first preset character string; sending the first data block to the second end according to the address information of the second end end.
  • a data transmission system comprising:
  • the first end is configured to obtain a first preset character string corresponding to the second end when the first data block needs to be transmitted to the second end; based on the first preset character string and the first data block , generating a first message to be sent; sending the first message to the first control device; wherein, the first preset character string is used to hide the address information of the target device;
  • the first control device is configured to determine address information of the target device according to the first preset character string obtained from the first message; sending a message to the target device;
  • a data transmission system comprising:
  • the first end is configured to obtain a first preset character string corresponding to the second end when the first data block needs to be transmitted to the second end; based on the first preset character string and the first data block , generating the first message to be sent; sending the first message to the first control device; wherein, the first preset character string is used to hide the address information of the second end;
  • the first control device is configured to determine the address information of the second end according to the first preset character string obtained from the first message; sending a message to the second control device;
  • the second control device is configured to cache the received first message, so as to wait for the second terminal to obtain it;
  • the second end is configured to send an acquisition request to the second control device; and receive the first message fed back by the second control device for the acquisition request.
  • a data transmission system comprising:
  • the first end is used to obtain the first preset character string corresponding to the second end and the second preset character string corresponding to the first end when the first data block needs to be transmitted to the second end;
  • a preset character string, the second preset character string and the first data block are sent to the first control device; wherein the preset character string is used to hide the address information of the corresponding end;
  • the first control device is configured to determine that the first data stream to which the first data block belongs corresponds to first transaction information of a first transmission transaction; based on the first transaction information, determine a corresponding first transaction for the first data block A target header information; according to the first target header information and the first data block, generate a first message to be sent; and according to the address information of the second end obtained by the first preset character string, send The first packet is sent to the second end.
  • the second end is configured to verify the received first message; after the verification is passed, obtain and cache the first data from the first message.
  • a first end is also provided, and the first end includes:
  • the first control module is located in the first application and configured to implement the data transmission method provided in the first embodiment of the present application.
  • a first end is also provided, and the first end includes:
  • the second control module is located outside the first application and configured to implement the data transmission method provided in the second embodiment of the present application.
  • an intermediate network device is also provided, and the intermediate network device includes: four control modules and a memory, wherein,
  • the memory is used to store one or more computer programs
  • the fourth control module is configured to execute the one or more computer programs, so as to implement the data transmission method provided in the above-mentioned third embodiment of the present application.
  • a control device in an embodiment of the present application, includes: a processor and a memory, wherein,
  • the memory is used to store one or more computer instructions
  • the processor coupled to the memory, is configured to execute the one or more computer instructions, so as to implement the data transmission method provided in the above-mentioned fourth embodiment of the present application.
  • the first end when the first end needs to transmit the first data block in the first data stream of the application to the second end, it is based on the determined first data stream corresponding to the first transmission transaction
  • the first transaction information is to determine the corresponding first target header information for the first data block; and then generate the corresponding first message to be sent according to the first data block and the target header information, and send the first message to the second end .
  • the first destination header information is used to verify whether the message meets the requirements, which enables this solution to realize security management of the transmitted data content at a lower cost.
  • the control module connected to the first terminal obtains the corresponding first After the preset character string (used to hide the address information of the second end), the address information of the second end can be obtained according to the first preset character string, and the first data block can be sent to the second end according to the address information of the second end .
  • This solution uses a preset character string to hide the address information of the corresponding end, so that the data initiator cannot know the address of the target end, and can protect the address information of the target end; Scanning, detection, etc., can effectively prevent malicious attacks.
  • FIG. 1 is a schematic diagram of an existing data transmission between different terminals provided by an embodiment of the present application
  • FIG. 2a is a schematic diagram of a transmission transaction provided by an embodiment of the present application.
  • Fig. 2b is a schematic diagram of a transmission mode corresponding to Fig. 2a provided by an embodiment of the present application;
  • FIG. 3a to Figure 5e show the schematic structural diagrams of the data transmission system provided by the embodiment of the present application.
  • FIG. 6a is an example of device drivers and API interfaces of corresponding control devices deployed on the first end and the second end respectively provided by the embodiment of the present application;
  • Figure 6b is an example in which one control device can be connected to other multiple control devices provided by the embodiment of the present application;
  • Fig. 7a to Fig. 7c are schematic diagrams of the specific form of the control device provided by the embodiment of the present application.
  • Figure 8a is an example of a set of preset transmission transaction attribute information provided by the embodiment of the present application.
  • Fig. 8b is a schematic flow chart showing the configuration principle of the upper eight bits of the field value of the transaction attribute type field in the transaction attribute information provided by the embodiment of the present application;
  • FIG. 9 is a schematic diagram of the configuration information contained in the configuration file provided by the embodiment of the present application.
  • FIG. 10 is a schematic diagram of the principle of establishing a communication connection between the control device and the corresponding terminal provided by the embodiment of the present application;
  • 11a to 13 are schematic flowcharts of the data transmission method provided by the embodiment of the present application.
  • FIG. 14 is a schematic structural diagram of a data transmission system provided by another embodiment of the present application.
  • FIGS 15a to 15c are schematic diagrams of the principles of data transmission and exchange provided by the embodiments of the present application.
  • FIG. 16 is a schematic diagram of the principle of transmitting the data to be transmitted based on the transmission transaction attribute information provided by an embodiment of the present application (which may be called structured data transmission);
  • FIG. 17 is an application example of structured data transmission provided by an embodiment of the present application.
  • Fig. 18a is a schematic structural diagram of a control device provided by an embodiment of the present application.
  • Fig. 18b is a schematic structural diagram of a data terminal connected to a control device provided by an embodiment of the present application;
  • FIG. 19 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application.
  • FIG. 20 is a schematic structural diagram of a data transmission device provided in another embodiment of the present application.
  • Fig. 21 is a schematic structural diagram of a control device provided by another embodiment of the present application.
  • the TCP/IP protocol is mostly adopted and implemented by means of network devices (such as switches and routers) deployed between different terminals.
  • the process of transmitting data between the first end and the second end using the TCP/IP protocol is as follows: the first end is the client, the second end is the server, and the client requests data resources on the server
  • the client enters the domain name www.####.com of the website deployed on the server, and sends DNS (Domain Name System, domain name resolution server) (not shown in the figure) for the domain name www.####.com ) sends a request, and DNS resolves the domain name www.####.com into the IP address of the server (for the target IP address) and feeds it back to the client;
  • the client uses its own IP address (for the source IP address) and target IP address and request parameters (that is, a specific data block to be transmitted) to generate a request message, because the request message needs to be sent to another subnet
  • the request message is sent to the gateway (a special router), and then through the routing algorithm, the request message is sent to the target subnet through the continuous forwarding of the router, and finally reaches the server.
  • the existing TCP protocol is directly used for data transmission between different ends, and the data to be transmitted is simply combined with some general information such as source IP address and destination IP address required for data transmission.
  • to generate a corresponding message to implement data transmission without considering the security of data transmission, wherein, for the specific content contained in the message, refer to the specific content contained in message A shown in FIG. 1 .
  • the above-mentioned scheme of directly using TCP/IP protocol to transmit data between different ends due to the lack of security considerations in the design of TCP/IP protocol, will lead to the following Some Problems:
  • the TCP/IP protocol is a protocol family used to transmit data information between multiple different networks. It is often only responsible for data transmission, not the result of data transmission, and cannot identify the content or type of transmitted data, which leads to Malicious applications can initiate network attack traffic, and data security cannot be guaranteed. For example, continue to refer to Figure 1.
  • the client and server using the TCP/IP protocol communicate directly. If one of the client and the server sends malicious instruction data, the other end will automatically receive it. And execute (or process) the instruction data.
  • the server can be accessed by the client, and there may be services such as privately built FTP (File Transfer Protocol, file transfer protocol), file sharing, or open
  • FTP File Transfer Protocol
  • file transfer protocol file transfer protocol
  • the server may be accessed and attacked by a malicious client, or a server with malicious behavior may attack or access the client, and so on.
  • the driver program of the TCP/IP protocol is universal, which can easily cause the device to be controlled
  • the driver program of the TCP/IP protocol is generally a general public interface (network access API) program for network communication of the operating system of the computer device.
  • the general public interface program is generally not restricted, and any program (such as the network interface of a computer) can be called, so the equipment in the Changyi network is controlled.
  • any program such as the network interface of a computer
  • the network card interface of the computer device can be directly used for communication, resulting in the computer device being controlled, and even the computer device may be controlled to upload to the network. other devices to launch malicious attacks.
  • the TCP/IP protocol is bidirectional, different ends of the direct communication connection using the TCP/IP protocol can receive and send data. For this reason, the device side that only needs to receive data can also send data externally, so there is a risk of data leakage. .
  • the client and the server using the TCP/IP protocol for direct communication can receive and send data. If it is assumed that the server only needs to receive data, then the client is accessing the server. When obtaining data on the server, the server can also respond to the client's access and send the corresponding data to the client. Correspondingly, if the server is controlled by a malicious program, it will also cause data leakage on the server.
  • the first is through a communication hardware protection scheme, specifically: deploying a network security firewall within the network.
  • Various existing network security firewalls are mainly divided into the following two categories: access control firewalls and content security firewalls.
  • the access control firewall is to set whether different devices in the network can communicate with each other by setting policies such as black and white lists (such as source IP address and source port, destination IP address (also called destination IP address) and destination port).
  • black and white lists such as source IP address and source port, destination IP address (also called destination IP address) and destination port.
  • the setting method of the above-mentioned access control firewall in a large-scale network environment, it is difficult for maintenance technicians to fully implement access control, and it is inevitable that there will be negligence, resulting in leaks in policy settings, which will easily allow malicious people to illegally access devices in the network.
  • the content security firewall uses the sample database of malicious programs such as Trojans and viruses, the threat IP database, and the suspicious behavior database to identify communication content (such as source IP address and source port, destination IP address (also called address) and target port, communication data content) to detect and prevent malicious communication access.
  • the above-mentioned content security firewall has the following problems: because the sample library of malicious programs and threat IPs is often the result of analyzing existing attack behaviors, the discovery will lag behind and need to be updated, which allows malicious parties to use The corresponding time difference before the update is used to launch the attack; in addition, it is impossible to detect and discover unknown malicious behaviors.
  • firewalls are generally sold or downloaded publicly, malicious actors can analyze based on the sample library of the firewall, and bypass the firewall by modifying the program characteristics and data flow characteristics of malicious programs ("rabbit killing" technology) to carry out the attack.
  • the transmission protocol between the application programs of the network system is private and agreed by the developers themselves. Due to the large number of developers and the complexity and changeability of the network system, it is difficult for the firewall to analyze the protocols one by one, making it almost impossible to effectively analyze the communication content. Parse, audit or intercept.
  • the second is to implement a security protection solution for the device, specifically: security protection software may be installed on the device.
  • security protection software may be installed on the device.
  • the security of the server or client can be ensured by means of installing antivirus software on the server or client, deploying a security control management system, or domain control configuration.
  • the problem with the above-mentioned method of using anti-virus software is similar to that of the content security firewall, which can only check and kill existing viruses or malicious behaviors, and can also be used by malicious people by modifying the program characteristics and data flow characteristics of malicious programs. , bypassing the antivirus software to carry out the attack.
  • Deploying a security control management system or domain control configuration, etc. is to hand over the operation authority of ordinary devices in the network to the master control device, so as to realize the access control of ordinary devices, access resource control or issue software update packages, etc. wait.
  • the main control device is attacked and controlled by a malicious person, there is a risk that all ordinary devices may be maliciously controlled.
  • the third is to deploy one-way transmission control equipment to meet the needs of one-way data transmission in the network.
  • one-way transmission control equipment such as one-way optical gates can be deployed to meet the demand for one-way transmission of equipment data, but this will involve the transformation of the physical level of communication, and the manufacturing cost of one-way transmission control equipment is high , The equipment is large in size and the scope of application is relatively limited.
  • the one-way shutter is a device that can reliably transmit data information from a low-density network (public network) to a high-density network (intranet/private network) in one direction.
  • a technical solution is: use the transaction information based on the transaction information of the transmission transaction to which the data to be transmitted belongs, and use the target header information determined for the data to be transmitted to structure the data to be transmitted, and use the structured data to be transmitted in the network in the transmission.
  • Another technical solution is: use a preset character string to hide the address information of the corresponding end, so that the data initiator cannot know the address of the target end, and can protect the address information of the target end; other devices to scan and detect, which can effectively prevent malicious attacks.
  • the above two technical solutions can be used alone or in combination, which is not limited in this application.
  • the solution of the present application has a wide application range, and can also be applied to various existing data transmission protocols in addition to the TCP/IP protocol.
  • FIG. 3a is a schematic structural diagram of a data transmission system provided by an embodiment of the present application.
  • the data transmission system includes: a first end 10 and a second end 20, wherein,
  • the first end 10 is configured to determine the first transaction information of the first data flow corresponding to the first transmission transaction; when the first data block of the first data flow needs to be transmitted to the second end 20, based on the first data flow A transaction information, determining corresponding first target header information for the first data block; generating a message to be sent according to the first data block and the first target header information; sending the first message Send to the second end 20; wherein, the first target header information is used to check whether the first message meets the requirements;
  • the second end 20 is configured to check the first target header information contained in the received first message, and determine whether the first message meets the requirements; when the requirements are met, from the first message Acquire and cache the first data block.
  • first terminal 10 and second terminal 20 are data terminals that need to exchange data, and the two types may be the same or different.
  • one of the first end 10 and the second end 20 can be a client, and the other can be a server; or, both the first end 10 and the second end 20 are clients; or, the first end 10 and the second end Both ends 20 are server ends, which are not limited here.
  • Fig. 3a schematically shows an example in which the first end 10 is a client and the second end 20 is a server.
  • the above-mentioned client can be any device such as a desktop computer, a smart phone, a notebook computer, a tablet computer, an industrial control device, an embedded device, a smart wearable device (such as a smart watch), a smart Internet of Things (IOT) device, etc.
  • Smart IoT devices may include, but are not limited to: smart home appliances (such as smart speakers, smart refrigerators, etc.), self-driving vehicles, etc.
  • the foregoing server may be a physical server, a virtual server, a container server, a cloud service platform, etc., which is not specifically limited in this embodiment.
  • the TCP/IP protocol is still used between the first end 10 and the second end 20, and direct communication is connected through intermediate network devices such as switches and routers, specifically , each of the first end 10 and the second end 20 can use the TCP/IP protocol to communicate with the corresponding intermediate network device through its own network interface, so as to realize the communication connection between the two, wherein the network interface can be but not limited to Ethernet interface.
  • the existing TCP/IP protocol used to transmit data it simply generates corresponding messages based on some general information such as the source IP address and target IP address required for data transmission and the data blocks to be transmitted. This realizes data transmission (for details, please refer to the content related to FIG. 1).
  • the transmission transaction to which data block a belongs refers to the transmission transaction corresponding to the data flow to which data block a belongs.
  • a data stream represents a data sequence, which contains one or more data blocks. For example, when a large file data needs to be transmitted, the file data is often divided into several data blocks and the several data blocks Blocks make up a sequence of data, enabling file transfers in a stream.
  • a transfer transaction is a one-way communication transfer behavior, which means that it is used to complete a specific transfer job.
  • a transfer transaction can be understood as a group of logically related transfer operations, and a transfer operation is executed to transfer a data block to be transferred, wherein, when a data block to be transferred is transferred, this embodiment provides The scheme generates a corresponding message for the data block to be transmitted, and the specific structure format of the generated message will be described in detail below.
  • the first end 10 needs to transmit a file data flow (such as the data flow corresponding to the "financial statement.
  • a transmission operation in the transaction can only transmit one data block in the file data stream; further, after the second end 20 finishes receiving the file data stream, it returns to the first end 10 a response message that the file data stream has been successfully received, is another transfer transaction. It can be seen from the above example that there are differences between different ends (such as client and server) of the transmission transaction.
  • FIG. 2a shows a schematic diagram of a transmission transaction, wherein the structured header contained in the shown message is the target header information determined for the corresponding data block to be transmitted in the context of this embodiment, except that Different expressions are used to describe the scene.
  • Figure 2b shows three different transmission modes (the first mode, the second mode, and the third mode) for Figure 2a. The specific introduction of the three transmission modes and the content that the structured header can include will be described below in " Goal Header Information" to expand the details.
  • the relevant information of the corresponding transmission transaction will be configured for the data transmission and exchange between the first terminal 10 and the second terminal 20, such as
  • the transmission transaction attribute information of a transmission transaction includes the content as shown in Table 1 below:
  • the field value types of the transaction attribute name, transaction label and verification information in the transmission transaction attribute information are all String (representing a string, which is a character or string with an uncertain data length, and the length is determined according to actual needs. Change) type
  • the field value type of the preset string associated with the transaction and the transaction attribute identifier and other fields are 32-bit binary numbers
  • the field value types of the transaction use role, transaction attribute type information and verification information are 16-bit binary numbers .
  • Transaction attribute name field used to indicate the transaction attribute name of the transfer transaction.
  • the first terminal 10 needs to request a network file resource from the second terminal 20.
  • the field value of the transaction attribute name field can be configured as "request network file resource”;
  • the field value of the transaction attribute name field can be configured as "upload jpg file", and so on.
  • the transaction attribute name when configuring the transaction attribute name for the transfer transaction, it can be configured based on the transfer transaction type, so that the transaction attribute name can transparently transmit the transaction type of the corresponding transfer transaction.
  • the transaction attribute name can transparently transmit the transaction type of the corresponding transfer transaction.
  • other configurations may also be used, which is not limited in this embodiment.
  • the transaction label field is used to indicate the remark information (or label information, that is, the first label information involved in other embodiments below) of the transmission transaction.
  • the field value of the transaction label field can be configured as "first-end request”; for the "upload jpg file” transmission transaction, the transaction
  • the field value of the callout field is configured as "Second End Response", and so on.
  • the preset string (also called communication identifier) field associated with the transaction is used to indicate the preset field string associated with the transmission transaction.
  • the preset character string is a character string corresponding to the address information of the corresponding end (such as a regular character string corresponding to an IP address), that is, the preset character string does not have the function of hiding the address information of the corresponding end; or, In some other embodiments, the preset character string has the function of hiding the address information of the corresponding terminal.
  • the preset character string is a randomly generated random character string with no regularity, and its associated association information includes the address information of the corresponding terminal. The relevant description of the preset string will be introduced in detail below.
  • the transaction attribute identification field is used to indicate the unique identification of the transmission transaction attribute information of the transmission transaction (such as the transmission transaction attribute information ID). In this embodiment, it is simply referred to as the transaction attribute identification, which is generally a random character string.
  • the character string is generally composed of at least one of numbers, letters and underscores.
  • the transaction attribute identifier and the preset character string associated with the transaction are composed of at least one of numbers and letters.
  • the transaction use role field is used to indicate the identity information of the creation end (such as the first end or the second end, etc.) that can use (or create) the transmission transaction.
  • the transaction uses the field value corresponding to the role field to be a 16-bit binary number, and different bits have different representational meanings. Specifically, looking at the 16-bit binary number from right to left, let the first bit to the second For example, 8 bits are the lower eight bits. The first to fourth bits of the lower eight bits can be used to represent the role of the transaction creation end.
  • the lower eight bits of a 16-bit binary number are expressed in hexadecimal, if the lower eight If the bit is 0x01, it indicates that the transmission transaction needs to be created by the first end (such as the client); if the lower eight bits are 0x00, it indicates that the transmission transaction needs to be created by the second end (such as the server).
  • the rest of the other bits are used to characterize the more specific role of the creation end of the transfer transaction, for example, it can be represented that the transfer transaction can only be created and executed by clients of type A (premium member) or type B (ordinary member), or can only be created by clients of type A or Class B server to create, execute, and so on.
  • the transmission transaction can be created and executed by a class B client.
  • the transaction attribute type field is used to indicate the transaction attribute type information of the transmission transaction, for example, control transmission transaction (generally related to application system operation, such as sending network test, initiating heartbeat packet), download transmission transaction (such as reading network data resources) , Upload and transfer transactions (such as sending network data) and some other basic operation types.
  • control transmission transaction generally related to application system operation, such as sending network test, initiating heartbeat packet
  • download transmission transaction such as reading network data resources
  • Upload and transfer transactions such as sending network data
  • some other basic operation types for example, control transmission transaction (generally related to application system operation, such as sending network test, initiating heartbeat packet), download transmission transaction (such as reading network data resources) , Upload and transfer transactions (such as sending network data) and some other basic operation types.
  • the field value corresponding to the transaction attribute type field may be a 16-bit binary number, and different bits have different representational meanings. Specifically, still take the 16-bit binary number from the right-to-left perspective, let the first to eighth bits be the lower eight bits as an example
  • the 1st to 4th bits in the lower eight bits can be used to represent the transmission direction of the data to be transmitted, in other words, it can be used to represent the transmission direction of the data stream to which the data to be transmitted belongs. For example, if the 1st to 4th bits If it is "0001", it can indicate that data is transmitted from the first end (such as the client) to the second end (such as the server); if it is "0000", it can indicate that the data is transmitted from the second end to the first end.
  • the 5th to 8th bits in the lower eight bits can be used to represent the type of data, in other words, it can also be used to represent the type of data stream to which the data to be transmitted belongs, for example, if the 5th to 8th bits If it is "0001", it means that the data stream is a file data stream, if it is "0000", it means that it is a normal data stream.
  • the lower eight bits of the 16-bit binary number are expressed in hexadecimal, if the lower eight bits are 0x01, it indicates that the data stream to which the data to be transmitted belongs is an ordinary data stream, and the data stream starts from the first end (such as client) to the second end (such as the server); if the lower eight bits are 0x10, it indicates that the data stream to which the data belongs is a file data stream, and the data stream is transmitted from the second end to the first end.
  • the remaining high-order eight bits can be used to indicate whether a data header needs to be added to the data and what type of data header needs to be added to the data when data transmission is performed.
  • the upper eight bits in the case of expressing the upper eight bits of a 16-bit binary number in hexadecimal, if the upper eight bits are 0x00, it means that there is no need to add a data header to the data (that is, no need to use a data header) ; If the upper eight bits are 0x01, it means that the data needs to add a common data header in the format of the common data header; If the bit is 0x03, it can indicate that a mail data header in the mail data header format needs to be added to the data; if it is 0x04, it can indicate that a database operation data header in the database operation data header format needs to be added to the data, and so on.
  • the upper eight bits above can be understood as the data header format identifier corresponding to the data header that needs to be added to the data, so that when it is determined that a data header needs to be added to the data, the corresponding data header template can be called according to the corresponding data header format identifier, Then configure multiple fields contained in the called-out data header template to add a data header to the data.
  • the data header format identifier is represented by the above-mentioned upper eight bits, the number of data header formats that can be represented is relatively limited (for example, only about 253 data header formats can be represented at most), in order to accommodate more Customize the extended data header format.
  • the above-mentioned transmission transaction attribute information may also include extended The unique identification field of the data header format (not shown in the above table 1), which is used to indicate the unique identification (such as number) of the extended data header format, when it is determined that the data header of the extended data header format needs to be added to the data, Further, the corresponding extended data header format template can be invoked according to the field value of the unique identification field of the corresponding extended data header format.
  • the server needs to return the corresponding sending status for the text message sent by the client, and the transmission transaction attribute configured for the "return sending status” transmission transaction
  • the field value of the transaction attribute type field in the information is "0xFF 0x00”
  • the unique identifier of the extended data header format is "0x01 0x00 0x00 0x01”
  • start the "return sending status” transmission transaction on the server side to return the corresponding sending status to the client
  • For status data based on the transaction attribute type information in the transfer transaction attribute information of the "return send status” transfer transaction, it will first determine that the data header that needs to be added for the send status data is the extended data header format, and further, according to the extended
  • the unique identifier of the data header format is "0x01 0x00 0x00 0x01”.
  • the corresponding extended data header format template can be called from the preset multiple data format headers, and the data header format template called based on the data information configuration of the sending status data contains The field values of multiple fields of , in order to add data headers for sending status data.
  • the data type uniquely identified by the extended data header format can be changed according to actual needs, the above is 4 bytes, and it can also be single byte, double byte, 8 byte and so on.
  • the transaction attribute type information of the transmission transaction indicated by the above transaction attribute type field may include but not limited to at least one of the following: data transmission direction, data type, and data header usage information.
  • Table 2a to 2d respectively show the specific data header formats of the above-mentioned common data headers, file data headers, mail data headers, and database operation data headers
  • Table 2e shows an extended The specific data header format of the data header.
  • Field value type header length 32 labeling information
  • the above-mentioned data header length field is used to indicate the byte length of the data header (32 bits + the number of bytes of label information).
  • the label information field is used to indicate the identification and judgment of each end such as the server, the client, or the control device described in other embodiments below, or a character string for reading, such as creation time, modification time, Update time, data integrity check value (hash value), etc.
  • Field value type header length 32 File size 32 sender information 32 sending time 32 file properties 16 extension name 16 filename length 16 file name String Label information length 16 labeling information String
  • the above file header length field is used to indicate the total byte length of the file header, and can be used to divide the file header and file data.
  • the file size field used to indicate the total byte length of the file data.
  • the sender information field is used to indicate the information of the sender who sends the file, such as user ID, user nickname and so on.
  • Sent Time field used to indicate the timestamp when the file was sent.
  • the file attribute field used to indicate the attributes of the file.
  • the extension field is used to indicate the file type, for example, the field value of the extension field can be a file suffix.
  • Filename field used to indicate the name of the file (such as test).
  • the file name length field is used to indicate the byte length of the file name (that is, the number of bytes, for example, test is 4 bytes, which is compatible with long file names).
  • Annotation information field used to indicate the identification and judgment of each end such as the client, the server, or the control device described in other embodiments below (that is, the annotation (remark) information); or the character string used for reading , such as creation time, modification time, update time, and so on.
  • the annotation information length field is used to record the number of bytes of the annotation information.
  • Field value type header length 32 theme String sender's address String recipient address String sending time 32 Attachment file type String labeling information String
  • the file header length field is used to indicate the total length of the mail file header.
  • Subject field which indicates the subject of the message.
  • the sender's address field is used to indicate the sender's address, such as the sender's email address.
  • the recipient's address field is used to indicate the recipient's address, such as the recipient's email address.
  • the Sent Time field indicates the timestamp when the message was sent.
  • the attachment file type field is used to indicate the type of the attached file carried in the email, such as a compressed package.
  • labeling information fields please refer to the relevant content described above for the introduction of Table 2a or Table 2b.
  • Field value type header length 32 operation type 16 Operational Database Address Identifier String Operational database identifier String action sheet identifier String operational impact String labeling information
  • the operation type field is used to indicate operations performed on the database, such as operations such as deletion, addition, modification, and query.
  • the operation database address identifier field is used to indicate the address of the database, such as the corresponding IP address of the database.
  • the operation database ID field which indicates the name of the operation's database.
  • Operation table identifier field used to indicate the name of the data table in the database for the operation.
  • the field affected by the operation is used to indicate the fields in the data table affected by the operation. If the value of the corresponding field is *, it means that all fields in the data table are affected.
  • For the file header length field and the annotation information field please refer to the relevant content described above in the introduction of Table 2a or Table 2b.
  • the message type field may be used to indicate the importance of the message. For example, if the field value corresponding to the message type field is 0x01, it is indicated as an ordinary message; if the field value corresponding to the message type field is 0x02, it is indicated as an important message.
  • the message keyword field is used to indicate that the message hits a preset keyword or participle, etc.
  • For the length field of the file header refer to the relevant content described above for the introduction of Table 2a or Table 2b.
  • the group code (a dictionary) field in Table 1 can be specifically divided into a first-type coding field, a second-type coding field and a third-type coding field, which are used to indicate data transmission operations in different scenarios.
  • the field values of the first-class coded field, the second-class coded field and the third-class coded field are all the same set value (such as "0x00 0x00"), it means that classification will not be performed temporarily.
  • the grouping function set here corresponds to the grouping function to be realized similar to the friend grouping function in social software, so that there are many transmission transactions that need to be managed (for example, but the upper layer application of the client is a complex system or multiple complex In the case of the system, there may be more transmission transactions that need to be managed), the transmission transactions can be grouped to distinguish.
  • first-class coded field When using the above-mentioned first-class coded field, second-class coded field, and third-class coded field to divide transmission transactions into groups, a top-down division method similar to provinces, cities, and counties can be used, and the first-class coded field is used to indicate The first-level classification and second-level coding fields are used to indicate the second-level classification based on the first-level classification, and the third-level coding field is used to indicate the third-level classification based on the second-level classification, which facilitates the management of transmission transactions.
  • the field value of the first type of coding field can be the company code A of a certain company
  • the field value of the second type of coding field can be the upper-level application a1 and upper-level application a2 developed by the company.
  • the field value can be an action of a specific operation (such as HTTP request, instant messaging sending data, receiving data, uploading data, etc.), so that maintenance personnel can view, edit, and authorize various management of transmission transactions, and it is also convenient for predicting
  • the corresponding control device is set to allow/prohibit the transmission of the field value of a certain coded field, so as to directly act on the transmission transaction associated with the field value of the coded field.
  • first type of coded field the second type of coded field and the third type of coded field from the perspective of affiliation.
  • first type of coded field, the second type of coded field and the third type of coded field can also be divided from other angles.
  • it can be divided according to protocol type, application type, transmission direction, importance of data terminals such as client or server, and data importance, which is not limited in this embodiment.
  • the verification information field indicates the verification information used to verify the data.
  • the verification information can be but not limited to a verification code.
  • the verification code can be used to verify whether the specific transmitted data meets the requirements of the corresponding transmission transaction (such as verification Whether the data format or data content meets the requirements).
  • the field value of the data verification code field can be configured as but not limited to GET (or GETFIL); for " Upload jpg file” transfer transaction, the field value of the data verification code field can be configured as but not limited to 0xFF 0xD8 0xFF 0xE0, etc.
  • the introduction of using the data verification code to verify the transmitted data will be introduced in detail in the specific embodiments listed below in this application, and will not be repeated here.
  • Fig. 8a shows that in this embodiment, taking the first end 10 as the client and the second end 20 as the server as an example, from the perspective of the first end 10, the data transmission and exchange between the first end 10 and the second end 20 , an example of preset transfer transaction attribute information of multiple transfer transactions.
  • Fig. 8b is a schematic flowchart showing the configuration principle of the upper eight bits of the field value of the transaction attribute type field in the transmission transaction attribute information.
  • the numerical types, lengths, etc. corresponding to the field values in the various tables in the context of this application can be flexible according to actual needs Adjust yourself.
  • the length of the data header (or the length of the file header) can be 32 bytes or 32 bits. According to actual needs, it can also use 8, 16, 64, 128, 256 bytes or bits, etc., and can also use an unspecified length such as String The data type of , which is not limited in this application.
  • the data to be transmitted is processed to generate corresponding structured data that meets the requirements of the structural rules (that is, the messages described below (such as the first message, the second message) message)), it is realized by using the transmission transaction attribute information of the transmission transaction to which the data block to be transmitted belongs.
  • the transaction identification of the transmission transaction may also be used, wherein the transaction identification can be generated independently.
  • the above-mentioned first terminal 10 when used to determine the first transaction information corresponding to the first transmission transaction of the first data stream, can be specifically used for:
  • the first transaction information of the first transmission transaction includes: a transaction identifier of the first transmission transaction, and transmission transaction attribute information of the first transmission transaction.
  • the transaction identifier is independently generated by the first end for the first transmission transaction, which may be a sequential number or a random character string (such as a random number).
  • the above S11 "obtaining the transmission transaction attribute information of the first transmission transaction" may include the following steps:
  • the first data stream may be a data stream of a first application (such as a browser application, a social application, an office application, etc.) on the first terminal 10, and more specifically, the first data stream may be a file data stream (such as binary data of jpg files, binary data of excel spreadsheet files (such as "financial statement. .
  • the transmission demand information of the first data flow it can be determined that the first data flow corresponds to the type of transaction to which the first transmission transaction belongs, wherein the transmission demand information can include but not limited to the direction of data transmission, data type, transmission purpose (such as data storage , query data, operate the database) and so on.
  • the transaction attribute identifier corresponding to the first transmission transaction of the first data stream can be determined.
  • S1112. Determine the transaction attribute identifier corresponding to the transaction category to which the first transmission transaction belongs according to the preset correspondence between the transaction type and the transaction attribute identifier (for example, refer to the related content in Table 5 below).
  • the preset The transaction attribute information of the first data flow corresponding to the first transmission transaction is found from the plurality of transmission transaction attribute information set. In this case, it indicates that the data transmission between the first end and the second end is configured according to this embodiment.
  • the security control information is not allowed to transmit the data blocks in the first data stream, and the data transmission fails.
  • the transaction attribute information of the first transmission transaction may include: transaction attribute name, transaction label information (first identification information), transaction attribute identification, first preset character string corresponding to the second end, transaction attribute type information , Verify information.
  • the first preset character string may be a character string corresponding to the address information of the second end, or the first preset character string may be used to hide the address information of the second end.
  • the transaction attribute type information includes at least one of the following information: data transmission direction (more specifically, the transmission direction of the first data flow, such as sending the first data flow (specifically, the data in the first data flow) from the first end to the second end), data type (more specifically, the data type of the first data stream, such as a file data stream, etc.), data header usage information (such as adding a data header to the data during data transmission, etc.).
  • data transmission direction more specifically, the transmission direction of the first data flow, such as sending the first data flow (specifically, the data in the first data flow) from the first end to the second end
  • data type more specifically, the data type of the first data stream, such as a file data stream, etc.
  • data header usage information such as adding a data header to the data during data transmission, etc.
  • the first data stream corresponds to the transaction information of the first transmission transaction, and determines the corresponding first target header information to be added for the first data block, such as a message header conforming to the preset message header format, and then the first target header information and The first data block is integrated to generate a structured first data block (that is, the message described below) conforming to the preset data structure rules.
  • the above-mentioned first end 20 is used to determine the corresponding first target header information for the first data block based on the transaction information corresponding to the first transmission transaction of the first data stream , it can be used specifically for:
  • the header information transmission method and the related information of the first data block determine the target header field for the first data block from a plurality of header fields included in the preset message header format;
  • the header information transmission mode refers to any one of the three header information transmission modes (the first mode, the second mode and the third mode) as shown in FIG. 2b.
  • the first mode is a transmission scheme of a full structured header
  • the second mode and the third mode are transmission schemes of a part of a full structured header and a part of a simplified structured header.
  • the structured header (that is, the target header information involved in this embodiment (such as the first target header information)) including the structured header
  • the structured header is generated based on the preset header format Yes
  • the full quantitative structure header refers to including all the corresponding parameters in the preset message header format (that is, all the parameters shown in Table 3 below)
  • the simplified structure header refers to including the corresponding parameters in the preset message header format.
  • Part of the parameters may include the block number of the data block currently to be transmitted (that is, the current block number shown in Figure 2b), the transaction identifier of the transmission transaction (that is, the transmission shown in Figure 2b transaction ID)), wherein, the transmission transaction attribute ID shown in FIG. 2b refers to the transaction attribute identifier involved in the following.
  • the data block received first by the corresponding receiver is often the first in the data stream.
  • Data block based on this, the above-mentioned first method and third method, when it is necessary to transmit the first-ranked data block in a data stream (data block 0 as shown in Figure 2b), all adopt the full structure
  • the header structures data block 0 (and generates the message involved in this application for data block 0), which allows the receiver to receive the first structured data block corresponding to the data stream (data block 0 corresponds to Structured data block 0), the data stream can be verified and other processing without waiting.
  • the second method is adopted, the receiver needs to wait for receiving a structured data block with a full amount of structured headers before performing verification and other processing.
  • the transmission scheme of the full structured header is adopted, so that the receiver can perform the following based on any structured data block corresponding to the received data stream Checking and other processing, use to deal with adverse phenomena such as network congestion, improve transmission reliability.
  • a data stream includes 3 data blocks, i.e. data block 0), data block 1 and data block 2, wherein, data block 0, data block 3 are respectively the first data block, data block 3 of the data stream The last data block; the sender (such as the client) sequentially sent the corresponding structured data blocks from data block 0 to data block 3 to the receiver according to the second method, although the third sent data block 2
  • the corresponding structured data block 2 has a fully quantized structure header, but due to network reasons (such as network congestion, network jitter), the sequence of the structured data blocks actually received by the receiver is different from the sequence sent by the sender.
  • the sequence of received structured data blocks is: structured data block 2 corresponding to data block 2, structured data block 1 corresponding to data block 1, and structured data 0 corresponding to data block 0.
  • the receiver After the receiver receives the structured data block for the first time (ie structured data block 2), it can perform processing such as verification without waiting.
  • the above-mentioned second method can actually be understood as an extension of the practical application of the third method, which is used to improve reliability and solve problems such as congestion.
  • the "current block number" shown in Figure 2b is optional, and in the case of reliable transmission and sequential transmission of multiple data blocks of the data stream, the block number may not be used; wherein, reliable transmission It refers to the use of a series of technologies to ensure the accurate and precise transmission of information (data blocks) between the sender and receiver.
  • the relevant information of the first data block may include but not limited to: the first data stream to which the first data block belongs, the stream information of the first data stream (such as stream type, stream size, etc.), the first data block the size of the first data block in the first data stream, etc.
  • the preset message header format is as shown in Table 3 below:
  • Field value type The second preset string corresponding to the sender 32 The first preset character string corresponding to the receiver 32 transaction attribute identifier 32 Transaction ID (for the unique identification of the transfer transaction) 32 packet size 16 total number of blocks 16 current block number 16 Labeling information (can be recorded as the second labeling information) 16
  • the above-mentioned second preset string field corresponding to the sender is optional, and is used to indicate the second preset string field corresponding to the sender, which can be a string corresponding to the detailed address information of the sender (such as Private network IP address, or MAC address, or the string corresponding to the host name), used for monitoring, auditing or intercepting of control equipment and network intermediate equipment; or it can be used to hide the address information of the sender.
  • the first preset character string field corresponding to the receiver is optional, and is used to indicate the first preset character string corresponding to the receiver, which can be a character string corresponding to the detailed address information of the receiver, or it can be used to hide the recipient's address information.
  • the first end 10 since the first end 10 needs to send data to the second end 10, the first end 10 is the sender, and the second end 20 is the receiver.
  • the above-mentioned preset character strings can also be called communication identifiers, which are identifiers for communication between different ends. The specific introduction to the preset character strings will be described in detail in other embodiments provided in the application below.
  • the transaction identification field is used to indicate the transaction identification of the transmission transaction (such as the ID of the transmission transaction); wherein, the transaction identification can be a random character string, or can also be a sequential number, etc.
  • the first end 10 currently needs to start a transmission transaction for the data flow of its last application, and may randomly generate a character string as the transaction identifier of the transmission transaction started this time.
  • the message size field is preferably selected to indicate the size (or byte length) of a structured data currently being transmitted (such as the first message to be sent generated for the first data block described below).
  • the field value of the packet size field is the total size of the packet header and the second data block (that is, the total size of the packet The size of the header + the size of the first data block).
  • the packet size field may also simply be used to indicate the size of the current data block (such as the first data block) to be transmitted, which is not limited in this embodiment. What needs to be added here is that the "packet size" in the above Table 3 is also referred to as the "data packet size” in other embodiments of this application below (for example, refer to Table 6 or Table 72 related below, etc.).
  • the total number of blocks field is used to indicate the total number of data blocks in the data flow corresponding to the transmission transaction; wherein, when the total number is a set value, it means that the data flow is a flow whose number of data blocks is not known.
  • the field value of the total number of blocks field is multiple data blocks
  • the field value of the block total number field is a set value, such as 0, it means that the first data flow is an infinite flow, such as the first data flow is the monitoring video of the monitoring equipment, Data streams such as live audio and video; for another example, when it is -1, it means that the first data stream is finite but the number of data blocks it contains is temporarily unknown.
  • the total number of blocks field here can also be understood as indicating the total number of messages to be transmitted in the transmission transaction.
  • the total number of blocks field can also be understood as the total number of packets 0 to N (that is, N+1).
  • the current block number field described below can also be understood as a message number used to indicate the currently transmitted message.
  • the current block number field (also called the data block sequence number field) is used to indicate the block number (ie, the sequence number) of the currently transmitted data block.
  • Annotation information field used to indicate the annotation information (remark information) corresponding to the transfer transaction, such as the remark information of the data stream corresponding to the transfer transaction, for example, the remark is "important", and the remark data stream is a file stream or a normal data stream etc., or mark the transmitted data, the hash value of the data integrity check of the file, so that each end such as the second end (such as the server end) and the control device described in other embodiments below can identify and read , analysis or security control, etc.
  • the above S21 "According to the header information transmission method and the relevant information of the first data block, from the multiple In the header field, "determine the target header field" for the first data block may include;
  • header information transmission method is the first method, or the header information transmission method is the second method, and the first data block is sorted last in the first data stream, or the header information transmission If the method is the third method, and the first data block is ranked first in the first data stream, then the plurality of header fields are the target header fields.
  • header information transmission method is the second method, and the data block is not sorted last in the first data stream, or the header information transmission method is the third method, and the data block is in the first data stream If the ranking in the first data stream is not the first, some header fields in the plurality of header fields are the target header fields.
  • the above S212 that is, all the header fields (multiple header fields) contained in the preset header format shown in the above table 3 are the target header fields determined for the first data block, then, the above S22" According to at least one item of the first transaction information and the related information of the first data block, configure the corresponding field value of the target header field to obtain the "header" determined for the first data block, which can be Specifically include the following steps:
  • the above-mentioned first message header determined for the first data may include the following content: the second preset character string corresponding to the first end, the second preset character string corresponding to the second end The first preset character string, the transaction attribute identifier of the transfer transaction, the transaction identifier of the transfer transaction, the total number of data blocks in the first data stream, the block number of the first data block, the first target header information and the first data block Total size, annotation information.
  • the second preset character string corresponding to the above-mentioned first end is based on the correspondence between the preset second preset character string and the transaction type (see Table 5 shown below), and is determined to correspond to the first data stream.
  • the second preset character string corresponding to the first end is a character string corresponding to the address information of the first end, or the second preset character string corresponding to the first end can be used to hide the address information of the second end.
  • the above-mentioned first preset character string corresponding to the second terminal may be obtained directly from the transmission transaction attribute information corresponding to the first transmission transaction of the first data stream.
  • the above step S22 may further include the following steps:
  • the transaction attribute type information includes but is not limited to the following content: data header usage information, The transmission direction of the first data stream, the data type of the first data stream, etc.
  • the data header usage information includes the data header format identifier of the used data header.
  • the relevant content please refer to the relevant content above. More specifically, it is determined whether a data header needs to be added to the first data block according to the data header usage information in the transaction attribute type information.
  • an adapted data header format can be selected from multiple preset data header formats according to the data header usage information in the transaction attribute type information , so that based on the flow information of the first data stream, a corresponding data header is generated for the first data block according to the selected data header format. That is, a specific implementable solution of the above-mentioned S224 "determining a corresponding data header for the first data block according to the flow information of the first data stream" may include the following steps:
  • the flow information of the first data flow may include but not limited to: the sending time of the first data flow, attribute information of the first data flow (such as data type, size of the first data flow, name of the first data flow) etc.), sender address, receiver address, etc.
  • attribute information of the first data flow such as data type, size of the first data flow, name of the first data flow
  • sender address such as data type, size of the first data flow, name of the first data flow
  • the first terminal 10 can check the first target header information and the first data block. Integration is performed to generate the first message to be sent that conforms to the preset data structure rules.
  • the first target header information includes a message header
  • the message header that is, the structure shown in the figure
  • the first target header information also contains a data header
  • the data header can be added between the message header and the first data block. between data blocks.
  • the foregoing first object header information may be used to verify whether the first packet meets requirements.
  • the message structure format of the above-mentioned message A1 can also include the TCP/IP message header, the TCP/IP message tail, etc. as shown in Figure 3a, in addition to the content shown in the above-mentioned table 4. Not shown in Table 4.
  • the above S22 configure the corresponding field value of the target header field according to at least one item of the first transaction information and the related information of the first data block, and obtain the A message header determined by a data block, may specifically include the following steps:
  • the second packet header includes the transaction identifier.
  • the target header field determined by the above-mentioned first data block may also include other header fields, such as the current block number field. In this case, it may be based on the first
  • the transaction identifier of the transmission transaction and the relevant information of the first data block are used to configure the field value of the target header field, and the correspondingly obtained second message header determined for the first data block contains the first 1.
  • the transaction identification of the transmission transaction and the block number of the first data block may not be performed.
  • the first end 10 through the first target header information determined for the first data block (message header (including transaction identification, block number of the first data block (optional))) and The first data is integrated, and the message format of the generated first message can be referred to in Table 42 below.
  • the first end 10 After the first end 10 generates the first message to be sent, it can send the first message to the second end 20 according to the address information of the second end determined by the first preset character string corresponding to the second end.
  • the second terminal 20 After the second terminal 20 receives the first message sent by the first terminal, it can perform security control on the received first message based on the data transmission security control information between the first terminal and the second terminal configured in this embodiment.
  • Verify when verifying, it is specifically to verify whether the target header information (such as message header and data header) contained in the first message meets the preset requirements, for example, whether the format of the message header of the first message meets the Preset requirements, whether the transaction attribute identifier in the message header has been registered, etc., the specific implementation of the data transmission security control information and the verification of the message according to the data transmission security control information will be in other embodiments provided by this application Expand the details, not repeat them here.
  • the second end 20 may execute obtaining and caching the first data block from the first message.
  • control software (its function is similar to that of the control device in the second solution described below) on the first terminal 20 .
  • different types of "control software” can be installed on the first terminal 20 according to the two situations of the preset character strings mentioned above. specifically,
  • the preset character string (such as the first preset character string corresponding to the second end, the second preset character string corresponding to the first end 10) does not have address information that hides the corresponding end (such as the preset character string is the address information of the corresponding end) IP address)
  • a first control module 11 can be installed in the application on the first terminal 10 to complete the generation of the corresponding first message to be transmitted for the data that the application needs to transmit to the second terminal 20 And perform various control functions such as sending, identifying and verifying (auditing) the received message (such as the second message sent from the second terminal 20 ).
  • a plurality of transmission transaction attribute information as shown in FIG. 4a ), a preset message header format, a preset data header format, etc. are preset in advance.
  • the first control module 11 when the first end 10 transmits the first data block in the first data stream (the data stream of the first application on the first end) to the second end 20, the first data block will first be sent to the corresponding first
  • the first control module 11 in the application the first control module 11 generates a first message corresponding to the first data block to be sent, and sends the first message through the intermediate network device according to the address information of the second end 20 to the second end 20.
  • the first control module 11 For the specific implementation of generating the first message by the first control module 11, refer to relevant content in the context of this application.
  • a fourth control module (not shown in the figure) can also be installed on intermediate network devices (such as switches, routers, firewalls, etc.) to further identify, verify (or monitor and intercept).
  • the information preset in the fourth control module and the corresponding functions that can be realized may be similar to the first control module 11 described above or the second control module 12 described below.
  • the first control module 11 in the first application can call the network interface on the first end 10, and according to the address information of the second end (which is the first message corresponding to the second end) Preset character string), according to the TCP/IP protocol, the first packet will be sent to the intermediate network device first.
  • the fourth control module in the intermediate network device checks the first target header information contained in the first message according to the preset information stored in itself (such as multiple transmission transaction attribute information, message header format, etc.), Determine whether the first packet meets the requirements, and only when the requirements are met, send the first packet to the second end 20 according to the address information of the second end.
  • the preset information stored in itself such as multiple transmission transaction attribute information, message header format, etc.
  • the fourth control module on the intermediate network device may not have the functions of generating messages, verifying, intercepting, etc. as the first control module 11 has, but simply has a log audit function for checking the received messages. Documents are recorded and analyzed to generate log information for corresponding transmission transactions. For example, after receiving the first message sent by the first end, the intermediate network device can use the fourth control module in itself to analyze the first message, so as to obtain the first data block and the first data block according to the analysis.
  • the first target header information generates a log corresponding to the first data block and records it in the log table of the first transmission transaction, wherein the log content of each log in the log table may include but not limited to: the message header of the corresponding data block , data header (optional), transmission transaction attribute information of the first transmission transaction, and the like.
  • the log table of the first transmission transaction Through the log table of the first transmission transaction, the network data traffic related to the first transmission transaction can be visually analyzed.
  • the first control module 11 on the first end 10 is used to send the generated first message to the second end 20 according to the address information of the second end , specifically available for:
  • the intermediate network device before sending the first packet to the second end, the intermediate network device further performs any of the following: verifying the first target header information contained in the first packet ; Generate log information of the first transmission transaction according to the first packet.
  • log information please refer to the description of the log table above.
  • verification of the first object header information refer to relevant content in other embodiments in the context of this application, and details are not repeated here.
  • the preset character string is used to hide the address information of the corresponding terminal (for example, the preset character string is a randomly generated random character string, and its associated associated information includes the address information of the corresponding terminal)
  • an externally installed independent second control module 12 can be installed on the first terminal 10 to complete the generation of corresponding messages to be transmitted for the data to be transmitted to the second terminal 20 and perform Various control functions such as sending, and performing identification and verification (monitoring, interception) on the received message (such as the message sent from the second terminal 20).
  • the communication of the application on the first end 10 needs to be carried out through the second control module 12, and the address information (such as IP address) of the corresponding end can be hidden with a preset character string (a random character string), and the preset In the control program 12.
  • the first preset character string corresponding to the second end contained in the plurality of transmission transaction attribute information preset in the second control module 12 is used to hide the address information of the second end.
  • the first data block will be sent to the second control module 12 first.
  • the second control module 12 generates a corresponding message to be sent for the received first data block according to the preset information (such as a plurality of transmission transaction attribute information, message header format, etc.)
  • the message is sent to the second end.
  • the preset information such as a plurality of transmission transaction attribute information, message header format, etc.
  • the second control module 12 is also installed outside the application.
  • the first control module 11 can be used to determine the transaction attribute identifier of the transmission transaction corresponding to the first data stream according to its own preset information , and send the transaction attribute identifier and the first data block to the second control module 12, and the second control module 12 generates the first message to be sent according to the transaction attribute identifier and the first data block to be sent to the second terminal 20 .
  • the first control module 11 can be used to determine the transaction attribute identifier of the transmission transaction corresponding to the first data stream according to its own preset information , and send the transaction attribute identifier and the first data block to the second control module 12, and the second control module 12 generates the first message to be sent according to the transaction attribute identifier and the first data block to be sent to the second terminal 20 .
  • the first control module 11 can be used to determine the transaction attribute identifier of the transmission transaction corresponding to the first data stream according to its own preset information , and send the transaction attribute identifier and the first data block to the second
  • the two solutions described in conjunction with Fig. 3c and Fig. 3d can further be the same as the above case 11, and can also be installed on intermediate network devices (such as switches, routers, firewalls, etc.)
  • the fourth control module mentioned above is used to further identify and verify (or monitor and intercept) the first message.
  • the above-mentioned intermediate network device may not have a verification function, but simply have a log audit function (as a software application for log audit for analyzing transmission transaction data).
  • the above-mentioned second control module 12 is an independent control program, which can obtain the first preset character string corresponding to the second terminal according to the preset information preset in itself, and obtain the first preset character string according to the first preset character string.
  • the real address information of the second end then, call the network interface corresponding to the first end 10, and forward the first message to the second end 20 through the TCP/IP protocol according to the real address information of the second end.
  • the specific implementation principle of the above-mentioned second control module 12 sending the first message to the second end 20 please refer to the first control device 31 sending the first message to the second end described in other embodiments below in conjunction with FIG. 4a 20 principles.
  • the above-mentioned second control module 12 is similar to the network control functions such as software firewalls and anti-virus software, and can control the network flow of applications such as ordinary permissions, so that applications with ordinary permissions cannot directly call the network interface of the general first terminal to access the network.
  • the network must be accessed through the interface provided by the second control module 12 .
  • control device may be an external device of the first end 10 and the second end 20.
  • the specific form of the control device 30 may be as shown in FIG. 7a It may be a desktop form, or it may be a portable form as shown in Fig. 7b, which is not limited here.
  • the control device 30 may specifically include but not limited to the following structural components: a display touch screen (or display screen), a wireless module (such as a WiFi (Wireless Fidelity, wireless Network technology) module, 3G module, 4G module, 5G module, Bluetooth module, LoRa (a long-distance wireless transmission technology based on spread spectrum technology) module, etc., not shown in Figure 7a and Figure 7b, see Figure 7c Shown in the wireless module 32), the operation button 33, the antenna 34 and the peripheral interface 31.
  • the antenna 34 is used for sending and receiving network signals of wireless communications such as bluetooth, wifi, 3G, 4G, 5G, etc.
  • the peripheral interface 31 is an interface for wired transmission, which is used to connect the control device with other devices through data lines.
  • the peripheral interface 31 can also be called a wired interface.
  • the peripheral interface 31 may include a network cable interface 311 (also called a LAN interface, such as an Ethernet interface, an optical fiber interface, a twisted pair interface, etc.) for connecting to a network, a bus interface 312 for bus communication (such as a USB (Universal Serial Bus, universal serial bus) interface, SPI (Serial Peripheral Interface, serial peripheral interface) interface, etc.).
  • a network cable interface 311 also called a LAN interface, such as an Ethernet interface, an optical fiber interface, a twisted pair interface, etc.
  • a bus interface 312 for bus communication (such as a USB (Universal Serial Bus, universal serial bus) interface, SPI (Serial Peripheral Interface, serial peripheral interface) interface, etc.).
  • USB Universal Serial Bus
  • SPI Serial Peripheral Interface
  • serial peripheral interface serial peripheral interface
  • control device can also be a device that can be integrated inside the first terminal 10 and/or the second terminal 20.
  • the specific form of the control device can be a single chip form similar to an integrated graphics card , can be integrated into the motherboard of the first terminal 10 or the second terminal 20; or, the specific form of the control device can also be similar to that of an independent graphics card, and can be integrated into the host computer of the first terminal 10 or the second terminal 20, here There is no limit.
  • the control device 30 may specifically include but not limited to the following structural components: a wireless module 32, an inter-board interface 313, an antenna 34, and a peripheral interface 31'.
  • Inter-board interface 313 can be but not limited to PCIE (peripheral component interconnect express) interface, PCIE interface is a kind of high-speed serial computer expansion bus standard interface, in the present embodiment, control device 30 can be connected with such as first by PCIE interface Terminal 10 is the motherboard connection.
  • the peripheral interface 31' may include a first type peripheral interface 311' and a first type peripheral interface 312'.
  • the first type of peripheral interface 311' can be a USB composite device interface, through which the control device can be connected to the display screen at the first end and control operations can be performed, so as to display some corresponding content through the display screen at the first end (such as displaying query information, displaying the name of the transfer transaction, etc.), and performing operations.
  • the second type of peripheral interface 312' can be, but not limited to, a USB interface, a network cable interface, and the like.
  • control device 30 As an external device of the first terminal 10 and the second terminal 20 as an example.
  • the device drivers also called device drivers
  • API Application Programming Interface
  • the application on the end can access the device driver of the corresponding control device through the API interface.
  • Figure 6a shows that it is deployed on the first end 10 and the second end 20 respectively
  • An example of the device driver and API interface of the corresponding control device this example is shown for the second possible embodiment described below (that is, adding two control devices between the first end 10 and the second end 20).
  • a first control device can be added between the first end and the second end, and the first end 10 can send the first message to the second end through the first control device.
  • End 20 the system provided in this embodiment may further include: a first control device 31 , and the first control device 31 is communicatively connected to both the first terminal 10 and the second terminal 20 .
  • the scenarios in which the first control device 31 communicates with the first terminal 10 and the second terminal 20 may include but not limited to the following two more specific scenarios:
  • Scenario 11 As shown in Figure 4a and Figure 4b, assuming that the first terminal 10 and the second terminal 20 are remote from each other, and the first control device 31 is deployed at the site where the first terminal 10 is located, then the first terminal 10 can pass through the bus An interface (such as a USB interface, an SPI interface) or a wireless interface (such as an interface implemented by a Wifi module, a Bluetooth module, etc.) can be connected to the first control device 31 to perform short-distance communication.
  • the second terminal 20 can still use the TCP/IP protocol to connect with the first control device 31 through a network interface and intermediate network devices (such as switches and routers) for long-distance communication.
  • the above-mentioned network interface can be a wired interface, such as a twisted pair Ethernet interface, an optical fiber interface and other network cable interfaces; or it can also be a wireless interface, such as an interface realized by a 3G module, a 4G module, a 5G module or a satellite communication module).
  • Scenario 12 As shown in Figure 4c, it is assumed that the first end 10 and the second end 20 are close to each other, for example, both are in the same site, and the first control device 31 is deployed at the site where the first end 10 and the second end 20 are located, Then the wired interfaces (such as bus interfaces such as USB interface and network cable interfaces such as twisted-pair Ethernet interface) on the first end 10, the first control device 31 and the second end 20 can be used to make the first control device in a wired manner. 31 communicates with the first terminal 10 and the second terminal 20 respectively.
  • the wireless modules on the first terminal 10, the first control device 31 and the second terminal 20 can also be used to make the first control device 31 communicate with the first terminal 10 and the second terminal 20 respectively.
  • the configuration file that needs to be created in advance for the first terminal 10 is introduced first.
  • the pre-created configuration file for the first terminal 10 includes at least the following content information: device access configuration information, data transmission and exchange configuration information, and data transmission security control information; wherein,
  • Device access configuration information which may include but not limited to the following items:
  • descriptor set of the control device wherein the descriptor set includes but not limited to the following:
  • 1Device descriptor such as: the class code and protocol used by the control device (such as TCP/IP protocol, USB protocol, Bluetooth protocol, etc.), the manufacturer ID, device ID, product model ID, etc. of the control device.
  • Interface descriptor such as interface type, protocol used by the interface (for example, the USB interface uses the USB protocol, and the network interface uses the TCP/IP protocol, etc.).
  • 4Endpoint descriptor such as: the enabled transmission direction is IN, OUT or IN/OUT endpoint set, and the attribute information of each endpoint (or configuration information, such as endpoint number, endpoint type, etc.), transmission mode (such as The USB protocol is taken as an example, which may include control transfer, bulk transfer, interrupt transfer, isochronous transfer, etc.).
  • a control device can have multiple groups of IN/OUT terminals, such as 5 groups, 5 IN terminals (input terminals), 5 OUT terminals (output terminals), or asymmetrical, such as 3 IN terminals
  • the endpoints and 7 OUT endpoints are used for high-speed data transmission; at the same time, there may be only IN endpoints or only OUT endpoints, which are used for one-way data transmission, which is not limited here.
  • 5String descriptor which is a string related to display, such as the manufacturer name, device name, device product name, etc. corresponding to the displayed control device.
  • Connection verification information (or called access verification information)
  • the connection verification information includes: the first verification value (verification value 1) and the second verification value (verification value 2), which are used for interactive verification when the corresponding end (such as the first end) is connected to the corresponding control device .
  • the first terminal 10 sends a first verification value to the first control device 31, and the first verification value is used for verification matching;
  • the first control device 31 determines that the received first verification value meets the preset requirements, it will feed back the second verification value to the first terminal 10 .
  • Login credential information includes the following items:
  • the verification information corresponding to the device driver of the control device such as the account number and password of the device driver, is used for the login credentials automatically sent to the corresponding terminal when the corresponding terminal establishes a communication connection with the corresponding control device (that is, the device driver corresponding verification information) for verification.
  • Authentication information related to the user's access to the application program of the control device such as the user's user account and password, or the user's biometric data such as fingerprints, voiceprints, and portraits, etc., so that the login credentials entered by the user at the corresponding end can be verified. check.
  • Data transmission and exchange configuration information which may include but not limited to the following items:
  • the set of transmission transaction attribute information of multiple supported transmission transactions is used for the corresponding end to create a corresponding transmission transaction when it needs to transmit data to its peer end. See Figure 8a for information about the set of transport transaction attribute information.
  • the set of transfer transactions of preset strings can be understood as the set of transfer transactions associated (or bound) with preset strings.
  • a preset The set character string can correspond to one or more (two or more) transmission transactions, and is used for data transmission interaction and verification.
  • the preset character string is a character string preset for a pre-registered service (or a service that can be provided) on the corresponding terminal.
  • the above preset character string may be a randomly generated random character string without regularity, which has the function of hiding the address information of the corresponding terminal.
  • a file exchange service is pre-registered on the first terminal 10, and the file exchange service points to a network address of 192.* **.1.2, the first control device 31 with the endpoint number 1, and this file exchange service authorizes the second terminal 20 to access, then for the above-mentioned pre-registered service on the first terminal 10, a first
  • the second preset character string C corresponding to the terminal 10 the associated information associated with the second preset character string C may include but not limited to: address information of the first terminal 10, file exchange service, access information (such as the second terminal’s IP address), wherein the address information of the first terminal 10 points to the IP address of the first control device 31 (192.***.1.2:1).
  • the transfer transaction bound to the second preset character string C corresponding to the first terminal 10 is the "request network file resource” transfer transaction and the "upload jpg file” transfer transaction, in other words
  • the preset character string may not have the function of hiding the address information of the corresponding end, and may directly be the address information (such as an IP address) of the corresponding end.
  • the second preset character string C corresponding to the first terminal 10 may also refer to 192.***.1.2:1.
  • the preset character string is preferably selected as a randomly generated random character string, which can be used to hide the address information of the corresponding terminal.
  • the preset character string corresponding to the first end is called the second preset character string.
  • the transmission transaction set of the second preset character string (or the corresponding relationship between the second preset character string and the transmission transaction), see the example in Table 5 below:
  • the transmission transaction set of the second preset character string shown in Table 5 above may also include the transaction attribute identification of the transmission transaction, that is, the second preset character
  • the data storage format in the string transfer transaction set can be but not limited to the following format:
  • Communication configuration for a preset string includes but not limited to:
  • the network interface number of the corresponding terminal bound to the preset string (if the corresponding terminal has multiple network cards, the network interface numbers of multiple network network cards can be bound), which is used to establish a physical communication connection to the network interface of the corresponding terminal .
  • the network interface number bound to a second preset character string C may be the network interface number corresponding to the network card at the first end.
  • target address information such as domain name or IP, port number, MAC address, host name, etc.
  • the preset string which is used for data exchange with the corresponding network target.
  • a second preset character string C can also be bound to the IP address corresponding to the second end and the target domain name www.####.com of the target website deployed on the second end, etc.
  • an endpoint number such as an OUT endpoint of the first control device 31 can be bound to a second preset character string C, as in the example described in the above-mentioned 2).
  • the endpoint number 1 is the endpoint number bound to the preset string, etc., and is used for data interaction with the connected end (such as the client or server). For example, continue to carry on the above-mentioned example in 2) and refer to FIG. 4b, an endpoint number such as an OUT endpoint of the first control device 31 can be bound to a second preset character string C, as in the example described in the above-mentioned 2).
  • communication capability information or data transmission direction control capability information (referred to as data transmission direction control information)
  • preset The string alias information of the string and the preset string comment information.
  • the above data transmission direction control information is used to indicate any of the following: only allow the control device to forward messages to the target end (such as the second end), prohibit the control device from forwarding messages to the target end, and allow the control device to forward messages to the target end The message and the control device are allowed to forward the message sent by the target device.
  • the string alias information of the above preset string is used to hide the real preset string and can be used when encrypting the message.
  • the following is an example of the first end as the client and the second end as the server, and gives an example of the communication configuration information of the second preset character string corresponding to the first end (Note: the content after the symbol "//" is Explanation of the corresponding configuration item).
  • Communication capability information "TX"//Represents only sending data, in other words, only allows the control device connected to the client to forward (or upload) the received data sent by the first end to the server Data, if the server returns the corresponding data, the control device connected to the client will not send the data returned by the server to the client.
  • Communication capability information “RX”//Represents only receiving data (that is, one-way transmission and downloading data), the control device connected to the client can request data from the server regularly through the preset request method and related parameters, and send The received data is stored locally (such as memory buffer or external memory area) waiting for the client to request data. Even if the client actively sends request parameter data, the control device connected to the client will not send the received client The incoming request parameter data is forwarded to the server. That is, the control device that prohibits the client connection from forwarding the received data (such as a message) sent by the client to the server.
  • Data transmission security control information which may include but not limited to the following items:
  • a blacklist/whitelist for network communications bound (or associated) with preset strings For example, IP addresses or port numbers to allow or block access.
  • a blacklist/whitelist of transmission transactions bound to preset strings For example, under this preset string, data interaction corresponding to a specific transmission transaction is allowed or blocked. For example, prohibiting the transfer transaction of file type .exe, or only allowing the transfer transaction of file type DOC, XLS, etc.
  • the above-mentioned configuration file pre-created for the first terminal 10 can be a file in any format, such as JSON (JavaScript Object Notation, JS Object Notation, a lightweight data exchange format) , HSON, XML (Extensible Markup Language, Extensible Markup Language) YAML (a data description language similar to XML, a subset of the standard general markup language), binary data structures, PROPERTIES and other files; or executable scripts, etc.
  • This embodiment does not limit the format of the configuration file.
  • the generation of the configuration file can be generated by a user with administrative authority by means of static manual editing by means of editing software (such as a configuration file editor); or, it can also be generated automatically by clicking on the corresponding configuration interface, here Not limited.
  • a corresponding configuration file may also be pre-created for the second end.
  • the following takes the first end as the client and the second end as the server as an example, and gives an example of the communication configuration information of the first preset character string corresponding to the second end (Note: the content after the symbol "//" is Explanation of the corresponding configuration item).
  • First preset string “0x0A”//Note: Although the first preset string corresponding to the server here is the second preset string corresponding to the client in Example 11 given above (including characters String alias information) are the same, but they are actually different. The first preset string is only used in the communication between the server and its connected control device, and the second preset string is only used in the communication between the client and its connected control device. middle. Thus, that is to say, the first preset character string and the second preset character string may be the same or different.
  • the control device connected to the server is used to verify the parameter data (optional), because when the server is used for one-way upload, the server cannot receive data after the client is connected. Therefore, the judgment logic after the server receives the client data is preset in the control device connected to the server. After the judgment of the connected control device, the data in the data buffer is extracted and uploaded to the client (the buffer data is sent by the server in advance. to the corresponding connected control device), here is to judge whether getDataID is equal to 1; it can also be used as a parameter for database or buffer data query. ⁇ ];
  • the configuration file preconfigured for the first terminal 10 and the configuration file preconfigured for the second terminal may also be integrated into the same configuration file, which is not limited here.
  • the configuration file After the configuration file is created, it can be sent to the corresponding control device in the following two ways. details as follows:
  • the configuration file can be encrypted (stored in a distributor (such as a physical device such as a USB flash drive), and connected to the corresponding control device for distribution through offline distribution (manual copying), wherein the configuration file can be It is the configuration file set of the first end and the second end, specifically as the configuration file set that can be the server end and all clients.
  • a distributor such as a physical device such as a USB flash drive
  • the configuration file can be It is the configuration file set of the first end and the second end, specifically as the configuration file set that can be the server end and all clients.
  • common copy mode can be adopted, and the distributor accesses (ie connects) the corresponding control equipment Afterwards, manually select the corresponding configuration file to copy to the corresponding control device, such as the configuration file configured for the first end 10 as described above can be copied to the control device connected to the first end 10.
  • the distributor can For automatic distribution, specifically, as shown in FIG. 4b, when the distributor (not shown in the figure) is connected to the first control device 31 connected to the first end, the distributor can send the information according to the first control device 31.
  • the device hardware feature identifier (such as the device ID) is matched, and the configuration file corresponding to the first control device 31 (such as the configuration file created in advance for the first terminal 10 and the configuration file created in advance for the second terminal 20) is returned.
  • a control device 31, after receiving the corresponding configuration file, performs verification and decryption, and after confirming that it is true and effective, the first control device 31 is set according to the configuration file.
  • the configuration file is encrypted and signed with a certificate, which cannot be stolen or tampered with, and the user of the distributor cannot obtain the configuration file information, which can ensure the security of the configuration file.
  • the configuration file can be encrypted and stored to the configuration server (such as TFTP (Trivial File Transfer Protocol) server, which is a file download server), and the configuration file can be updated by using the original network configuration or establishing a second network physical interface (safety control network). Encrypted distribution.
  • the network distribution method of full distribution can be adopted. For example, after receiving a configuration data request parameter sent by the control device connected to the first end, the configuration server can send all corresponding configuration files to Send to the control device connected to the first end.
  • the network distribution method of on-demand distribution can be used, that is, through the network, the required configuration data can be delivered in real time according to the received request parameters sent by the corresponding control device, such as in the corresponding configuration file.
  • Important data such as connection verification information such as the first verification value and the second verification value, and login credentials.
  • Method 3 Wireless distribution in other ways.
  • the configuration data is encrypted by the distribution terminal or the control device, and the configuration data is shared based on wireless signals such as Bluetooth, LORA, and wifi.
  • the control device can synchronize part of the configuration data in the configuration file to the corresponding connected end. For example, referring to FIG. 4b, taking the first terminal 10 as the client as an example, after the first control device 31 connected to the client completes the configuration according to the corresponding configuration file, when the client requests to update the configuration status, the first control device 31 can set the Client name, preset string and access credentials corresponding to the client (such as a random number of 2048 bytes), preset string corresponding to the client, preset string, transaction attribute name (or transaction type) and transaction attribute Identify the corresponding relationship among the three and send it to the client, so that the client can register in the device driver installed on it (for the device driver of the first control device 31, refer to FIG.
  • API Application Programming Interface, application programming interface
  • credential 1 is used for data encryption and decryption
  • credential 2 is used for communication verification
  • credential 1 is used for data encryption and decryption
  • credential 2 is used for communication verification
  • the password and credential for the communication of the control device 31 are recorded by the device driver and encrypted or decrypted when the first control device sends and receives data, which also prevents other applications from bypassing the device driver to send or receive data to the first control device 31.
  • control device and the corresponding terminal can establish a communication connection based on the configuration data (such as configuration file data) stored by itself.
  • Example 1 continue referring to Fig. 4b, assuming that the first terminal 10 is connected to the first control device 31 through a USB interface, and the first terminal 10 and the first control device 31 are in a master-slave mode, that is, the first terminal 10 is the master, and the second The control device 31 is a slave, then referring to the schematic diagram of the principle of establishing a communication connection between the control device and the corresponding terminal shown in FIG.
  • the specific process of the first end 10) can be as follows:
  • the first control device 31 When the first control device 31 (slave) is powered on and started, it will first read the relevant configuration data used to establish the connection (for the device access configuration information described above), for example, the descriptor set (such as the first control device descriptor, configuration descriptor, endpoint descriptor, string descriptor, etc.), endpoint enablement information (such as setting to use 6 endpoints, that is, endpoint 1 to endpoint 6, among which, for example, the 6 endpoints can all be unidirectional Endpoints (for example, endpoints 1 to 3 are OUT endpoints, endpoints 4 to 6 are NI endpoints), or for example, the six groups of endpoints are all bidirectional endpoints (that is, IN/OUT endpoints), related verification information (such as connection calibration Verification information (such as the first check value, the second check value), device-driven verification information (such as device-driven account number, password, etc.), the user account number, password, etc. of the user corresponding to the first end);
  • the first control device 31 After reading the relevant configuration data, the first control device 31 sends a signal to the first terminal 10 (host) to start enumeration, and enters the enumeration process of the standard request of the USB protocol rules. Specifically, the enumeration process of standard requests includes the following steps:
  • Step 11 the first end 10 (master) sends an acquisition device descriptor instruction to the first control device 31 (slave), and correspondingly, the first control device 31 returns the corresponding device descriptor (such as the first ID of the control device 31, manufacturer ID, etc.);
  • Step 12 the first terminal 10 sends a setting address command to the first control device 31, and the setting address command carries a corresponding address; the first control device 31 responds to the setting address command and performs setting according to the corresponding address;
  • Step 13 the first terminal 10 sends an instruction to obtain the device descriptor again; correspondingly, the first control device 31 returns the device descriptor to the first terminal 10;
  • Step 14 the first end 10 sends an instruction to obtain a configuration descriptor to the first control device 31; correspondingly, the first end returns a configuration descriptor to the first end 10 in response to the instruction to obtain a configuration descriptor;
  • Step 15 the first end 10 sends an acquisition string descriptor instruction to the first control device 31; correspondingly, the first end returns a string descriptor to the first end 10 in response to the acquisition string descriptor instruction;
  • Step 16 the first terminal 10 sends a related setting instruction to the first control device 31; correspondingly, the first control device performs setting in response to the setting instruction, and starts the transmission endpoint.
  • the enumeration order in the enumeration process of the above-mentioned standard request may not follow the order in the above-mentioned step 11 to step 15, and the order can be changed according to the operating system of the first end. , for example, the order of steps 13 to 15 can be changed.
  • the order of steps 13 to 15 can be changed.
  • the enumeration process of the standard request may include the following steps:
  • Step 21 the first terminal 10 (master) sends a verification instruction (carrying a first verification value) to the first control device 31 (slave); correspondingly, the first control device 31 returns the second Check value;
  • Step 22 the first terminal 10 sends the account number and password driven by the device to the first control device 31; correspondingly, the first control device 31 returns to the first terminal 10 a code indicating the success or failure of the verification;
  • Step 23 the first terminal 10 judges the result returned by the first control device 31 in the above-mentioned step 22, if it meets a specific result (such as a successful verification), then it is considered that the enumeration is successful, enters the standby state, and waits to communicate with the first terminal 10 data interaction;
  • Step 24 the first end 10 sends a test data packet or a heartbeat packet, such as TEST character string or binary data; correspondingly, the first control device 31 returns normal to the first end 10;
  • Step 25 the first terminal 10 sends the user account number and password input by the user to the first control device 31; correspondingly, the first control device 31 returns to the first terminal 10 a code indicating whether the verification is successful or failed
  • the above-mentioned first control device 31 receives the account number and password of the device driver sent by the first terminal 10 and the user account number and password input by the user, and the first control device 31 can locally perform the operation according to the preset information. Verification, or the remote server can also be used for verification, which is not limited here.
  • the first control device 31 may determine whether the enumeration of the first terminal is successful according to the verification result and the instruction sent by the first terminal 10 . For example, after the first control device 31 completes the verification in the above step 25, the first terminal 10 will always send heartbeat packets regularly in the standby state to inquire whether the first control device 31 is ready for data interaction, if the first control device 31 receives the heartbeat packet, it can be considered that the enumeration of the first end 10 is successful.
  • the first control device 31 can also send a signal that the first end 10 enumerates successfully (or fails) to the second end 20 (such as the server end), so as to inform the second end 10 of a message that the first end 10 can perform data interaction.
  • the second end 20 such as the server end
  • the communication connection between the first terminal 10 and the first control device 31 if the communication connection between the first terminal 10 and the first control device 31 is successfully established, it will enter the data interaction (ie data transmission) process, that is, enter the waiting data interaction state.
  • data transmission is indicated through token packets (such as OUT token packets, IN token packets).
  • token packets such as OUT token packets, IN token packets.
  • the first terminal 10 establishes a communication connection with the first control device 31 through other types of interfaces, it is similar to the above-mentioned establishment of a communication connection with the first control device through the USB interface.
  • IP protocol IP protocol
  • PCIE interface PCIE interface
  • SATA interface SATA interface
  • Example 2 continue to refer to FIG. 4b, assuming that the first terminal 10 establishes a communication connection with the first control device 31 through the Bluetooth interface, then the establishment process of the communication connection can be as follows: the first terminal 10 can first read the relevant information required to establish the connection. Configuration data, such as pairing connection parameters.
  • the pairing connection parameters can include Bluetooth-related parameters of the first control device 31, such as the Bluetooth device name (device name of the first control device), Mac address, pairing verification information (such as a pre-configured pairing password certificate, which can be the above-mentioned The verification value (the first verification value, the second verification value)), etc.; then, according to the standard communication handshake process of the Bluetooth protocol, start to automatically scan according to the pairing connection parameters (specifically such as the Bluetooth device name, Mac address) The first control device; when the first control device is scanned, the first verification value can be sent to the first control device for pairing verification, and the verification is passed according to the feedback information returned by the first control device , it is considered that the pairing is successful, and the communication link is successfully established with the first control device.
  • the above example 1 and example 2 are both described from the perspective that the first control device 31 is an external device of the first terminal 10, and the two are implemented by establishing a communication connection.
  • the first control device 31 is an internal device of the first terminal 10
  • the implementation process of establishing a communication connection between the two can be as follows: One end 10 scans the first control device according to the read pre-configured characteristic parameters such as the PCIE interface of the first control device, such as VID (Vendor Identification, vendor identifier); and after scanning to the first control device , the connection verification can be performed with the first control device according to the read pre-configured connection verification information (such as password credentials). After the verification is passed, the communication link is successfully established with the first control device.
  • VID Vehicle Identification
  • connection verification information such as password credentials
  • the system provided in this embodiment further includes a first control device 31, and the first terminal control 31 is an external device of the first terminal 10,
  • the first terminal 10 communicates with the first control device through the first communication method, and the first communication method is to use an external wired communication protocol (such as the USB protocol, the signaling is a token packet) that is transmitted through signaling instructions, then
  • an external wired communication protocol such as the USB protocol, the signaling is a token packet
  • the first terminal 10 can also be used to: when a communication connection needs to be established with the first control device 31, send connection verification information to the first control device, the connection verification information includes at least one of the following information : carrying a verification instruction with a verification value, and verification data related to the device driver of the first control device;
  • the first control device 31 is configured to feed back a corresponding verification result to the first end for the connection verification information
  • the first terminal 10 is further configured to determine whether to establish a communication link with the first control device according to the verification result.
  • the verification value carried in the verification instruction may be the first verification value (or the second verification value) as described above, verification data related to the device driver, such as the account number and password of the device driver, and the like.
  • verification data related to the device driver such as the account number and password of the device driver, and the like.
  • the first terminal 10 can send the generated first message to be sent to the first terminal 10 through the first control device 31 by using the communication link established with the first control device 31 .
  • the first terminal 10 when the above-mentioned first terminal 10 is used to send the first message to the second terminal 20, it can be specifically used to: obtain the first signaling, the first signaling Instructing the first control device to receive a message; sending the first signaling and the first message to the first control device through a communication link with the first control device;
  • the first control device 31 is configured to receive the first message in response to the first signaling; and send the first message to the second end.
  • the signaling is initiated by the first end 10 to notify the first control device 31 of what to do next, such as sending or receiving a message next.
  • the type of signaling is related to the communication protocol adopted between the first end 10 and the first control device 31.
  • the signaling is in the form of a token packet (sent by the host (such as the first end) for To start a section of USB transmission)
  • the above-mentioned first signaling can be an OUT token packet (also called an OUT output data packet), and the OUT token packet is used to notify the first control device 31 that the first End 10 wants to send a data packet to it, ready to receive.
  • the first end 10 When the first end 10 needs to send the corresponding OUT token packet and the corresponding first message to the first control device 31, it may first base on the correspondence between the preset second preset character string and the transmission transaction (for example, refer to Table 5), determine the second preset character string corresponding to the transmission transaction to which the first data stream belongs; then, according to the association information associated with the second preset character string, determine the second preset character string bound The endpoint number of the first control device 31; finally, according to the determined endpoint number, send the OUT token packet and the corresponding first message to the corresponding endpoint of the first control device 31, for example, following the description above
  • the endpoint activation information of the first control device 31 is given.
  • the determined endpoint can be, for example, endpoint 1 (for OUT endpoint or IN/OUT endpoint), the first By monitoring the endpoint 1, the control device 31 can obtain data such as the OUT token packet and the first message that arrive at the endpoint 1, and in response to the obtained OUT token packet, perform forwarding of the first packet to operation of the second end.
  • endpoint 1 for OUT endpoint or IN/OUT endpoint
  • the control device 31 can obtain data such as the OUT token packet and the first message that arrive at the endpoint 1, and in response to the obtained OUT token packet, perform forwarding of the first packet to operation of the second end.
  • the first terminal communicates with the first control device through a second communication method, and the second communication method uses a paired connection wireless communication protocol (such as Bluetooth protocol), then
  • the first terminal 10 can also be used to: when it is necessary to establish a communication connection with the first control device, search for the first control device according to the preset control device pairing connection parameters; when the first control device is found, Perform a pairing check with the first control device; after the pairing check passes, establish a communication link with the first control device.
  • search for the first control device according to the preset control device pairing connection parameters when the first control device is found, Perform a pairing check with the first control device; after the pairing check passes, establish a communication link with the first control device.
  • the first terminal 10 can use the communication link established with the first control device 31 to send the generated first message to be sent to the first terminal 10 through the first control device 31 .
  • sending refer to the relevant content in the above description of the first terminal 10 communicating with the first control device through the first communication method.
  • the system provided in this embodiment further includes a first control device 31, and the first terminal control 31 is an internal device of the first terminal 10, then
  • the first end 10 communicates with the first control device 31 through the third communication mode, and what the third communication mode uses is an internal wired communication protocol (such as the PCIE protocol corresponding to the PCIE interface); and, in this case,
  • the first terminal 10 can also be used to: scan the first control device according to the preset control device feature information when establishing a communication connection with the first control device; and scan the first control device when the first control device is scanned , establishing a communication link with the first control device.
  • establishing the communication link between the first end and the first control device please refer to the related content of Example 3 above.
  • the first terminal 10 can use the communication link established with the first control device 31 to send the generated first message to be sent to the first terminal 10 through the first control device 31 .
  • sending refer to the relevant content in the above description of the first terminal 10 communicating with the first control device through the first communication method.
  • the first control device 31 receives the first message and forwards it to the second end 20, it can use the corresponding stored configuration file (created for the first end 10 as described above) The data transmission security control information in the configuration file), the first message is verified, and the first message forwarding operation is performed after the verification is passed. Based on this, the above-mentioned first control device 31 can also be used to perform the following steps:
  • At least one of the following items can be verified but not limited to:
  • the endpoint sending the first message (such as endpoint 1 in the above example) meets the preset requirements of the first preset character string corresponding to the first endpoint 10, for example, whether the endpoint number of endpoint 1 is in the first preset If it is in the white list of the endpoint number bound by the string, it is judged to comply with the preset rules; otherwise, it does not comply with the preset rules.
  • Whether the structural format of the first packet meets the requirements For example, whether the format of the message header and data header meets the preset format requirements.
  • the second preset character string corresponding to the first end 10 and the first preset character string corresponding to the second end 20 contained in the packet header can be obtained from the transmission transaction attribute information corresponding to the first transmission transaction in the first data stream Obtained in ), whether it meets the preset requirements.
  • the corresponding preset character string set in the preset contains the second preset character string and the first preset character string, if yes, it means that the first preset character string and the second preset character string are The registered preset character strings meet the preset requirements; otherwise, if they are not included, it means that the first preset character string and the second preset character string are unregistered preset character strings and do not meet the preset requirements.
  • the transaction unique identifier contained in the message header meets the preset requirements, such as whether the preset corresponding transmission transaction attribute information set contains the transaction unique identifier in the message header, and if so, it indicates that the transaction unique identifier in the message header The transaction unique identifier has been registered and meets the requirements; otherwise, if it is not included, the transaction unique identifier contained in the message header is unregistered and does not meet the requirements.
  • the data in the message is the data type defined by the corresponding transmission transaction attribute, for example, if the transmission transaction corresponding to the first data stream is a "request network resource" transmission transaction, then determine the first three data types in the message Whether the byte is GET, etc. defined in the transfer transaction attribute information of the "request network resource" transfer transaction.
  • the verification through the verification of the first message in the above step S12, if the verification is passed, it means that the message meets the preset requirements, and the first control device 31 triggers to send the first message to The operation of sending the text to the second terminal 20. On the contrary, if the verification fails, it means that the first packet does not meet the preset requirement. If the requirements are not met, in one embodiment, the first message may not be sent, but the log may still be retained; or, in another embodiment, query information may be output to ask the user whether to allow the transmission of the first packet.
  • the first control device 31 will not automatically perform the transmission operation, but will display it on its display screen (as shown in FIG. 7a or shown in Figure 7b) or the display at the first end outputs inquiry information, asking the user whether to allow the transmission, and only after receiving the confirmation transmission instruction fed back by the user for the inquiry information, the first message is sent to the second end 20.
  • This method of confirmation through manual intervention can prevent the spread of viruses and Trojan horses.
  • the first control device 31 when the first control device 31 triggers to send the first message to the second terminal 20, it is based on the first message (more specifically, the message header of the first message)
  • the obtained first preset character string corresponding to the second end is used to determine the address information of the second end; and the first message is sent to the second end 20 according to the address information of the second end 20 .
  • More specific implementation principles are divided into the following two situations:
  • the first control device 31 directly according to the first preset Set a character string, use the TCP/IP protocol, and send the message that passes the verification to the second end 20.
  • the first preset character string is a preset random character string, it is used to hide the address information of the second end.
  • the first terminal 10 is regarded as an untrusted device
  • the first control device 31 is a trusted device
  • the function of the first preset character string is to hide the authenticity of the second terminal 20 in the first terminal 10.
  • address information (such as an IP address), so that even if the first end 10 is attacked by a malicious person, the malicious person cannot initiate scanning, detection, etc. of other devices such as the second end 20 in the network through the first end 10, It is difficult to realize the attack on the second end 20 .
  • the first control device 31 may have all the data required for data transmission, including the real address information (such as IP address) of the second end 20, in other words, the above-mentioned information for the first end
  • the configuration file created by 10 and the configuration file created for the second terminal 20 are all preset in the first control device 31, and the first control device 31 can directly use the first preset character string based on the data information preset in itself.
  • the corresponding real address information of the second terminal 20 is obtained.
  • the first control device 31 can also send a resolution request to a corresponding resolution server (such as the configuration server mentioned above) for the first preset character, so as to obtain the corresponding second end real from the resolution server. IP address, which is not specifically limited here.
  • the first control device 31 After the first control device 31 obtains the real IP address of the second end 20 according to the first preset character string, it can use the TCP/IP protocol to send the real IP address of the second end and corresponding messages to an intermediate network device (such as FIG. 4b) 0, to send the first packet that passes the verification to the second end 20 through the intermediate network device. Generally, since the first control device 31 has completed the conversion of the first preset character string and the real address information of the second end 20, the TCP/IP protocol is used to process the first message according to the address information of the second end.
  • the forwarded first message may not carry a preset character string, but in this embodiment, it is to keep the first message carrying a preset character string, the purpose is to make the second
  • the two-terminal 20 may verify information such as a preset character string included in the first message.
  • the first control device 31 When forwarding the first message, continue to make the first message carry the corresponding preset character string, so that the second control device 32 can check the preset identifier and other information contained in the first message; or in the second control device
  • the device 31 is connected with multiple second terminals 20, it is convenient for the second control device 32 to obtain the address information of the corresponding second terminal 20 according to the corresponding preset character string (first preset character string); or it is convenient for the second terminal 20 Specific program recognition, etc.
  • the intermediate network device can also have the function of controlling the device to check the received first message again, and after the check is passed, the first The message is sent to the second end.
  • the intermediate network device may only have a log audit function, and may generate log information of the first transmission transaction according to the received first message, and send the first message to the second end.
  • the above-mentioned functions may be realized by arranging a fourth control module on the intermediate network device.
  • the corresponding data transmission direction control information can also be obtained from the association information associated with the second preset character string corresponding to the first end, so as to control the information according to the data transmission direction It is determined whether to forward the first message to the second end 20, or whether to forward the data fed back by the second end 20 to the first end 10 for receiving the first message, and so on.
  • the transmission direction control information contained in the association information associated with the second preset character string corresponding to the first end is "RX" (stands for receiving data only, in other words, prohibits the first control device 31 from forwarding the received message sent by the first end to the second end 20, see example 12 given above ), in this case, although the first end 10 receives the message sent by the first end 10 for "requesting network resources", it will not perform the sending of the received message to the second end 20 ( That is to say, the request parameters actively sent by the first terminal 10 will not be sent to the second terminal 10), but the corresponding preset request parameter information (including the request mode and related parameters), and generate a new message according to the obtained preset request parameters, and send the new message to the second terminal 20.
  • the first control device 31 may further include the following steps:
  • the data transmission direction control information indicates that the first control device 31 is prohibited from sending the received first message to the second end, and the message type of the first message is a request message, then Obtain preset request parameters from the associated information; and generate a new message to be sent based on the first target header information obtained from the first message and the preset request parameters, so as to base the new message on the basis of the new message.
  • the message triggers the operation of sending the first message to the second end 20 .
  • the transmission direction control method provided by this embodiment is used to realize the one-way transmission function of data, for example, compared to the existing one-way transmission equipment.
  • the one-way transmission function has the following benefits: use one-way transmission equipment (such as one-way shutter, optical code (two-dimensional code), etc.) to realize the one-way transmission function, although it can completely isolate two-way transmission physically, but the equipment is often more complicated For example, the equipment requires optical modules, or requires image display or receiving modules, etc., the manufacturing cost is high, the equipment is large, and the scope of application is limited.
  • one-way transmission equipment cannot be physically realized according to different service requirements.
  • Flexible configuration for one-way sending, one-way receiving, or two-way transmission of data can realize the one-way transmission function such as data without any external equipment, the construction is simple, and the manufacturing cost of the control equipment is relatively low.
  • the control equipment can also preset character strings
  • the associated transmission direction control information flexibly adjusts the communication direction (that is, the data transmission direction) corresponding to different preset character strings.
  • the first control device 31 can also back up the first message to prevent the first terminal 10 from accidentally deleting the corresponding data.
  • the data may be encrypted by ransomware, etc. Based on this, in the system described in this embodiment, the above-mentioned first control device 31 can also be used for:
  • the marking information contained in the header and/or data header of the first message indicates that when the data contained in the first message is "important" (such as the data is financial statement.xls), the first control The device may back up the first packet.
  • another second control device 32 can also be added.
  • the second control device 32 communicates with the second terminal 20 and the first control device 31 .
  • the above-mentioned first control device 31 determines that the address information of the second terminal points to the second control device according to the first preset character string corresponding to the second terminal. Based on this, when the above-mentioned first control device 31 is used to send the first message to the second terminal 20 , it is specifically used to: send the first message to the second control device 32 . as well as
  • the second control device 32 is configured to verify the received first message; and after the verification is passed, in response to the acquisition request sent by the second end, send the first message to the second end.
  • the acquisition request sent to the second terminal may be the second signaling.
  • the second signaling is used to instruct the second control device to send data to the second terminal 20 .
  • the second signaling can be an IN token packet (also called an IN input data packet), and the IN token packet can be understood as a host (such as the second terminal 20) for notifying the slave (such as the second control device 32) Command packet to send a data packet to.
  • the second control device 32 will not actively send the message that has passed the verification to the second end, and only sends the message that matches the request of the second end 20 to the second end after a request from the second end. second end.
  • first control device 31 and the second control device 32 can use but not limited to TCP/IP protocol for communication connection, in this case, as shown in Figure 5d, the first control device 31 and the second control device 32 There may be an intermediate network device between the control devices 32, and the first control device 31 specifically sends the first message to the second control device 32 through the intermediate network device.
  • the intermediate network device For functions that the intermediate network device may have, reference may be made to relevant content described in the foregoing first possible embodiment.
  • Fig. 3b shows a schematic structural diagram of a data transmission system provided by another embodiment of the present application.
  • the data transmission system includes: a first end 10 and a second end 20, wherein,
  • the first terminal 10 is provided with a first control module 11 in the first application, and the first control module 11 is configured to determine that the first data flow of the first application corresponds to the first transaction information of the first transmission transaction; When the first data block of the first data stream needs to be transmitted to the second end, based on the first transaction information, determine corresponding first target header information for the first data block; according to the first data block and the first target header information to generate a first message to be sent; send the first message to the second end; wherein the first target header information is used to verify the first Whether the message meets the requirements;
  • the second end 20 is provided with a third control module (not shown in the figure), and the third control module is used to control the first target header contained in the first message received by the second end.
  • the information is verified; after the verification is passed, the first data is obtained from the first message and cached.
  • system provided in this embodiment may further include: an intermediate network device, communicatively connected to the first end and the second end;
  • the first control module 11 is specifically configured to send the first message to the intermediate network device
  • the intermediate network device is configured to generate log information of the first transmission transaction according to the received first message; and send the first message to the second end.
  • Fig. 3c shows a schematic structural diagram of a data transmission system provided by another embodiment of the present application.
  • the data transmission system includes: a first end 10 and a second end 20, wherein,
  • the first terminal 10 has a second control module 12 outside the first application, and the second control module 12 is configured to determine the First transaction information of the first transmission transaction to which the first data block belongs; based on the first transaction information, determine corresponding first target header information for the first data block; according to the first data block and The first target header information generates a first message to be sent; sends the first message to the second end; wherein the first target header information is used to verify the first message Whether the text meets the requirements.
  • the second end 20 is provided with a third control module (not shown in the figure), and the third control module is used to control the first message contained in the first message received by the second end.
  • the target header information is verified; after the verification is passed, the first data is obtained from the first packet.
  • system provided in this embodiment may further include: an intermediate network device, communicatively connected to the first end and the second end;
  • the second control module is specifically configured to send the first message to the intermediate network device
  • the intermediate network device is configured to generate log information of the first transmission transaction according to the received first message; and send the first message to the second end.
  • FIG. 3 a A schematic structural diagram of a data transmission system provided in another embodiment of the present application, the system architecture of the data transmission system is similar to the architecture shown in FIG. 3 a .
  • the data transmission system includes: a first end and a second end, wherein,
  • the first end is configured to send the first data block to be transmitted to the second end to the intermediate network device;
  • the intermediate network device is provided with a fourth control module, configured to receive the first data block, and determine the first transaction information of the first transmission transaction to which the first data block belongs; based on the first transaction information, Determining corresponding first target header information for the first data block; generating a first message to be sent according to the first data block and the first target header information; sending the first message to The second end; wherein, the first target header information is used to check whether the first packet meets requirements.
  • the second end is provided with a third control module, which is used to verify the first target header information contained in the first message received by the second end; after the verification is passed, the Obtain the first data from the first packet.
  • a first control module is provided inside the first application on the first end, or a second control module is provided outside the first application;
  • the first control module or the second control module is configured to transmit the first data block to be transmitted by the first application to the first end and the transaction attribute of the first transmission transaction to which the first data block belongs sending information to the intermediate network device;
  • the intermediate network device When the intermediate network device is used to determine the first transaction information of the first transmission transaction described in the first data block, it is specifically used to: generate a corresponding transaction identifier for the first transmission transaction; The transaction attribute identifier, querying the transmission transaction attribute information of the first transmission transaction from a plurality of preset transmission transaction attribute information.
  • each terminal/device/module in the above data transmission systems can also realize related functions in other embodiments of the present application.
  • specific functions that can be realized by each terminal/device/module in the above data transmission systems please refer to the relevant content above.
  • FIGS. 4a to 4c are schematic structural diagrams of a data transmission system provided by another embodiment of the present application. As shown in FIGS. 4a to 4c, the data transmission system includes: a first end 10, a first control device 31 and a second end 20, wherein,
  • the first end 10 is configured to send the first data block to the first control device when the first data block of the first data stream needs to be transmitted to the second end;
  • the first control device 31 is configured to determine first transaction information of the first data stream corresponding to a first transmission transaction; based on the first transaction information, determine a corresponding first target for the received first data block header information; generate a first message to be sent according to the first data block and the first target header information; send the first message to the second end; wherein the first target The header information is used to check whether the first packet is required.
  • the second end 20 is configured to check the target header information contained in the received first message, and determine whether the first message meets the requirements; if the requirements are met, obtain from the first message And cache the first data block.
  • 5d and 5e are schematic structural diagrams of a data transmission system provided by another embodiment of the present application.
  • the data transmission system includes: a first end 10, a first control device 31, a second control device 32, and a second end 20, wherein,
  • the first end 10 is configured to send the first data block to the first control device when the first data block of the first data stream needs to be transmitted to the second end;
  • the first control device 31 is connected in communication with the first end, and is configured to determine the first transaction information corresponding to the first transmission transaction of the first data stream; based on the first transaction information, the received first transaction information is A data block determines corresponding first target header information; generates a first message to be sent according to the first data block and the first target header information; sends the first message to the second A control device; wherein, the first target header information is used to check whether the first message is required;
  • the second control device 32 is communicatively connected with the first control device and the second terminal, and is used to verify the first target header information contained in the received first message and determine the first Whether the message meets the requirements; when the requirements are met, cache the first message locally to wait for the second end to obtain it;
  • the second terminal 20 is configured to send an acquisition request to the second control device; and receive the first message fed back by the second control device for the acquisition request.
  • Fig. 11a shows a schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • This data transmission method is suitable for the first terminal 10 as shown in FIG. 3 b , more specifically, for the first control module 11 in the first application on the first terminal 10 .
  • the preset information preset in the first control module 11 includes the above-mentioned configuration file created for the first terminal 10 , and further, may include the configuration file created for the second terminal 20 .
  • the configuration file may include but not limited to at least one of the following configuration data: data exchange configuration data, data transmission security control information, etc.
  • the data exchange configuration data may include but Not limited to: the transmission transaction attribute information of multiple transmission transactions; the transaction type of the transmission transaction, the second preset character string corresponding to the first end, and the transaction attribute identification of the transmission transaction.
  • the transaction attribute identification It is the unique identification of the transmission transaction attribute information of the corresponding transmission transaction; message header format, multiple data header formats, etc.
  • the preset character string involved is the character string corresponding to the address information of the corresponding end
  • the second preset character string corresponding to the first end is the character string corresponding to the address information (such as IP address) of the second end.
  • Character string for the convenience of description, this embodiment directly uses the address information of the corresponding end for the description of the preset character string.
  • the data transmission method provided by this embodiment includes the following steps:
  • the first object header information is used to check whether the first packet meets requirements.
  • the first application on the first terminal 10 may refer to but not limited to a service platform system application, a browser application, a social application, a video application, an office application, and the like.
  • Different types of first data streams will be generated during the use of different first applications.
  • the browser application is a browser application (reformed with security access control and has a first control module inside)
  • the browser application needs to obtain the first resources on the two terminals, correspondingly, the first data flow of the browser application may be but not limited to a request data flow (such as requesting a network resource data flow, etc.).
  • the first application needs to use the first control module 11 in it to realize the network interface on the first end 10 call to implement data transmission.
  • the first data stream of the first application needs to be processed by the first control module 11 in the first application before it can be sent.
  • the first control module 11 may determine the first transaction information corresponding to the first transmission transaction of the first data flow, so as to send the first transaction information to the second terminal 20 based on the first transaction information.
  • the first data block in the transmitted first data stream is processed to implement the transmission of the first data block.
  • the above-mentioned first transaction information may include the transaction identification and transmission transaction attribute information of the first transmission transaction, and the transmission transaction attribute information includes but not limited to: transaction attribute name, first annotation information, address information of the second end, transaction attribute identification, transaction attribute Type information; wherein, the transaction attribute type information includes at least one of the following: the transmission direction of the first data flow, the data type of the first data flow, and data header usage information.
  • the transmission transaction attribute information includes but not limited to: transaction attribute name, first annotation information, address information of the second end, transaction attribute identification, transaction attribute Type information; wherein, the transaction attribute type information includes at least one of the following: the transmission direction of the first data flow, the data type of the first data flow, and data header usage information.
  • the above 101 "determine that the first data flow of the application corresponds to the first transaction information of the first transmission transaction” may specifically include:
  • the above-mentioned 1011 "obtaining the transmission transaction attribute information of the first transmission transaction” may include:
  • the transaction attribute identifier of the first transmission transaction may be determined based on the preset correspondence between the transaction type of the transmission transaction and the transaction attribute identifier. That is, in a specific implementable solution, the above-mentioned 1011 "determine the transaction attribute identifier of the first transmission transaction" can be implemented by specifically adopting the following steps:
  • the preset multiple transmission transaction attribute information can refer to the example of the set of transmission transaction realization information of multiple transmission transactions as shown in Figure 4a. If based on the transaction attribute identification corresponding to the first transmission transaction of the first data stream, the transmission transaction attribute information corresponding to the first transmission transaction of the first data stream cannot be queried from the preset multiple transmission transaction attribute information, in this case, It indicates that the data transmission security control information configured according to this embodiment between the first end and the second end is not allowed to transmit the data blocks in the first data stream, the data transmission fails, and the transmission is terminated.
  • a possible implementation technical solution of "determining the corresponding first target header information for the first data block based on the first transaction information" in the above step 102 may include the following steps:
  • the first transaction information and the related information of the first data block configure a corresponding field value of the target header field to obtain a packet header determined for the first data block.
  • Target header field which can specifically include:
  • header information transmission method is the first method, or the header information transmission method is the second method, and the first data block is sorted last in the first data stream, or the header information transmission If the method is the third method, and the first data block is ranked first in the first data stream, then the plurality of header fields are the target header fields.
  • header information transmission method is the second method, and the data block is not sorted last in the first data stream, or the header information transmission method is the third method, and the data block is in the first data stream If the ranking in the first data stream is not the first, some header fields in the plurality of header fields are the target header fields.
  • the above 1023 "according to at least one item of the first transaction information and the related information of the first data block , configuring the corresponding field value of the target header field to obtain the message header determined for the first data block, which may include:
  • the first transaction information configures the corresponding field value of the target header field to obtain the value determined for the first data block first packet header;
  • the first message header includes: address information of the first end, address information of the second end, transaction attribute identification of the first transmission transaction, transaction identification of the second transmission transaction, The total number of data blocks, the block number of the first data block, the first target header information and the total size of the first data block, and label information;
  • the total number is the set value, it means that the first data flow is a flow whose number of data blocks is not known.
  • the above-mentioned 10231 "determine the address information of the first end for the first transmission transaction" can be implemented by specifically adopting the following steps:
  • step 102 may further include the following steps:
  • a specific implementation solution of "determining the corresponding data header for the first data block according to the flow information of the first data stream" in the above step 1025 includes:
  • the above 1023 “according to the first transaction information and the related information of the first data block At least one of them, configuring the corresponding field value of the target header field to obtain the message header determined for the first data block", may include:
  • configure the corresponding field value of the target header field to obtain the header determined for the first data block include:
  • the second packet header includes the transaction identifier.
  • sending the first message to the second end may include the following steps:
  • the second control module is a module outside the first application on the first end (such as the second control module 12 shown in FIG. 3d ).
  • solution provided in this embodiment may also include:
  • the second message is the second transaction information corresponding to the second transmission transaction by the third control module on the second end according to the second data stream of the second application on the second end, which is the The second data block of the second data stream determines the corresponding second target header information, and is generated according to the second data block and the second target header information; the second target header information is used to verify the Whether the second message meets the requirements;
  • the third control module is located within the second application or outside the second application.
  • a fifth control module when the above-mentioned third control module is located in the second application, a fifth control module can also be arranged outside the second application on the second end; or when the above-mentioned third control module is located outside the second application , a fifth control module may also be provided in the second application on the second end.
  • a fifth control module may also be provided in the second application on the second end.
  • the first control module 11 in the first application on the first end determines The outputted first data stream corresponds to the first transaction information of the first transmission transaction, and determines the corresponding first target header information for the first data block; and then generates the corresponding first data block and the first target header information to be sent according to the first data block and the first target header information.
  • a message sending the first message to the second end.
  • the first destination header information is used to verify whether the message meets the requirements, which enables this solution to realize security management of the transmitted data content at a lower cost.
  • Fig. 11b shows a schematic flowchart of a data transmission method provided by another embodiment of the present application.
  • This data transmission method is suitable for the first terminal 10 as shown in FIG. 3 c , more specifically, for the second control module 12 outside the first application on the first terminal 10 .
  • the preset information preset in the second control module 12 is the information needed to implement the data transmission method provided by this embodiment.
  • the data transmission method provided by this embodiment may include the following steps:
  • the first object header information is used to check whether the first packet meets requirements.
  • the first control module 11 can also be deployed in the first application.
  • a pre-audit (or pre-verification) can be performed on the first data block to determine whether the first data block is allowed to be transmitted.
  • the first control module 11 can audit whether the data type and transmission transaction to which the first data block belongs meet the requirements.
  • the first control module 11 The data transmission security control information contained in the configuration information, such as the data type information that allows/blocks transmission, can audit whether the data type to which the first data block belongs is a data type that is allowed to be transmitted, and if it is a data type that is allowed to be transmitted, it meets the requirements ; Or, it is also possible to determine the second preset character string corresponding to the corresponding first end for the transmission transaction to which the first data block belongs; then the preset data transmission security control information contains the second preset character string corresponding to the first end Set the blacklist/whitelist of transmission transactions bound to the string, analyze whether the transmission transaction to which the first data block belongs is in the blacklist/whitelist, if it is in the whitelist, it meets the requirements, and so on.
  • the configuration information such as the data type information that allows/blocks transmission
  • the first control module 11 can send the first data block and the transaction attribute identification of the determined transmission transaction to which the first data block belongs to
  • the second control module 12 is used by the second control module to obtain the transmission transaction attribute information to which the first data block belongs according to the transaction attribute identification, so as to process and send the first data block based on the obtained transmission transaction attribute information.
  • First transaction information corresponding to a transmission transaction may include:
  • the first transmission transaction to which the first data block belongs specifically refers to the transmission transaction corresponding to the first data stream to which the first data block belongs, and the first control module determines the first transmission transaction to which the first data block belongs
  • the transaction attribute identification please refer to the relevant content in other embodiments above.
  • the transmission of transaction attribute information includes but not limited to: transaction attribute name, first label information, first preset character string corresponding to the second end, transaction attribute identifier, and transaction attribute type information.
  • the transaction attribute type information includes: the transmission direction of the first data stream to which the first data block belongs, the data type of the first data stream, and data header usage information.
  • the above-mentioned 202 "determine corresponding first target header information for the first data based on the first transaction information" may specifically include:
  • the header information transmission method and related information of the first data block determine a target header field for the first data block from a plurality of header fields included in a preset header format;
  • the corresponding field value of the target header field to obtain the packet header determined for the first data block.
  • the above-mentioned 2022 "according to the transmission method of the header information and the related information of the first data block, from the multiple header fields included in the preset header format, select the first data block Identify target header fields", which may specifically include:
  • header information transmission method is the first method, or the header information transmission method is the second method, and the first data block is sorted last in the first data stream, or the header information transmission
  • the method is the third method, and the first data block is ranked first in the first data stream, then the plurality of header fields are the target header fields;
  • header information transmission method is the second method, and the data block is not sorted last in the first data stream, or the header information transmission method is the third method, and the data block is in the first data stream If the ranking in the first data stream is not the first, some header fields in the plurality of header fields are the target header fields.
  • the above 2023 “according to at least one of the first transaction information and the related information of the first data block, Configure the corresponding field value of the target header field to obtain the "message header" determined for the first data block, which may specifically include:
  • the first transaction information, and the relevant information of the first data block configure the corresponding field value of the target header field to obtain the value determined for the first data block first packet header;
  • the first message header includes: the first preset character string corresponding to the second end, the second preset character string, the transaction attribute identifier of the first transmission transaction, the first transmission
  • the transaction identifier of the transaction the total number of data blocks in the first data stream, the block number of the first data block, the first target header information and the total size of the first data block, and label information; the total number is When the value is set, it indicates that the first data flow is a flow whose number of data blocks is not known.
  • step 203 of "generating the first message to be sent according to the first data block and the first target header information" please refer to the relevant content in other embodiments above.
  • the above-mentioned preset character strings (such as the first preset character and the second preset character string) are used to indicate the address information of the corresponding end, and the "indication" described here includes the following two Two meanings: the preset character string is directly the character string corresponding to the address information of the corresponding terminal; or, the preset character string is used to hide the address information of the corresponding terminal. information.
  • the preset character string is used to hide the address information of the corresponding end
  • a possible implementation of the above-mentioned 204 "sending the first message to the second end” may include the following steps:
  • the above-mentioned 2043 "send the first message to the second end according to the address information of the second end" can be implemented by specifically adopting the following steps:
  • the intermediate network device before sending the first packet to the second end, the intermediate network device further performs any of the following: verifying the first target header information included in the first packet ; Generate log information of the first transmission transaction according to the first packet.
  • the above 2023 “according to the first transaction information and the related information of the first data block at least one item, configure the corresponding field value of the target header field, and obtain the "message header" determined for the first data block, which may specifically include:
  • configure the corresponding field value of the target header field to obtain the header determined for the first data block include:
  • the second packet header includes a transaction identifier of the first transmission transaction.
  • the method provided in this embodiment may also include:
  • the second message is the second transaction information corresponding to the second transmission transaction by the third control module on the second end according to the second data stream of the second application on the second end, which is the The second data block of the second data stream determines the corresponding second target header information, and is generated according to the second data block and the second target header information; the second target header information is used to verify the Whether the second message meets the requirements;
  • the third control module is located within the second application or outside the second application.
  • the first end when the first end needs to transmit the first data block in the first data stream of the application to the second end, it is based on the determined first transaction information of the first data stream corresponding to the first transmission transaction , determining corresponding first object header information for the first data block; then generating a corresponding first message to be sent according to the first data block and the first object header information, and sending the first message to the second end.
  • the first destination header information is used to verify whether the message meets the requirements, which enables this solution to realize security management of the transmitted data content at a lower cost.
  • Fig. 12 shows a schematic flowchart of a data transmission method provided in yet another embodiment of the present application.
  • This data transmission method is suitable for the fourth control module (not shown in the figure) on the intermediate network device as shown in FIG. 3c.
  • the preset information is preset in the fourth control module, and the preset information is the information needed to realize the data transmission method provided by this embodiment.
  • the preset information in the fourth control module refer to the above description of the preset information preset in the first control module 11 .
  • the data transmission method provided in this embodiment may include the following steps:
  • A13 Generate a first message to be sent according to the first data block and the first target header information
  • the first object header information is used to check whether the first packet meets requirements.
  • the above-mentioned A11 "determines the first transaction information of the first transmission transaction to which the first data block belongs in response to the first data block sent by the first end and needs to be transmitted to the second end", which can Specifically include:
  • A111 Generate a corresponding transaction identifier for the first transmission transaction
  • A112. Receive the first data block sent by the first control module in the first application on the first end or the second control module outside the first application on the first end, and the first data block to which the first data block belongs - transaction attribute identification of the transfer transaction;
  • the above-mentioned A12 "determine the corresponding first target header information for the first data based on the first transaction information" may specifically include:
  • A121 Obtain the header information transmission mode corresponding to the data block in the first data stream to which the first data block belongs;
  • A122 According to the header information transmission method and the related information of the first data block, determine a target header field for the first data block from a plurality of header fields included in a preset header format;
  • A123 According to at least one item of the first transaction information and the related information of the first data block, configure the corresponding field value of the target header field to obtain the packet header determined for the first data block.
  • Implementation plans may include:
  • A1221. Determine the sequence of the first data block in the first data stream according to the block number of the first data block contained in the related information
  • header information transmission method is the first method, or the header information transmission method is the second method, and the first data block is sorted last in the first data stream, or the header information transmission
  • the method is the third method, and the first data block is ranked first in the first data stream, then the plurality of header fields are the target header fields;
  • header information transmission method is the second method, and the data block is not sorted last in the first data stream, or the header information transmission method is the third method, and the data block is in the first data stream If the ranking in the first data stream is not the first, some header fields in the plurality of header fields are the target header fields.
  • the above A123 “according to at least one of the first transaction information and the related information of the first data block, Configure the corresponding field value of the target header field to obtain the "message header" determined for the first data block, which may specifically include:
  • A1231. Determine a second preset character string corresponding to the first end for the first transmission transaction
  • the first transaction information, and the relevant information of the first data block configure the corresponding field value of the target header field to obtain the value determined for the first data block first packet header;
  • the first message header includes: the first preset character string corresponding to the second end, the second preset character string, the transaction attribute identifier of the first transmission transaction, the first transmission The transaction identifier of the transaction, the total number of data blocks in the first data stream, the block number of the first data block, the first target header information and the total size of the first data block, and label information;
  • the preset character string is the address information of the corresponding end, or the preset character string is used to hide the address information of the corresponding end.
  • the above-mentioned A14 "send the first message to the second end" includes:
  • A141 Obtain a first preset character string corresponding to the second end from the transmission transaction attribute information of the first transmission transaction included in the first transaction information;
  • A142 Acquire the address information of the second end according to the first preset character string
  • A143 Send the first packet to the second end according to the address information of the second end.
  • the above A123 “according to the first transaction information and the related information of the first data block at least one item, configure the corresponding field value of the target header field, and obtain the "message header" determined for the first data block, which may specifically include:
  • configure the corresponding field value of the target header field to obtain the header determined for the first data block include:
  • A1232' based on the transaction identifier of the first transmission transaction in the first transaction information, configure the corresponding field value of the target header field to obtain the second header determined for the first data block;
  • the second packet header includes a transaction identifier of the first transmission transaction.
  • the method provided in this embodiment also includes:
  • A15 Receive the second data block sent by the second end to be transmitted to the first end, and determine the second transaction information of the second transmission transaction to which the second data block belongs;
  • A17 Generate a second message to be sent according to the second data block and the second target header information
  • the second object header information is used to check whether the second packet meets requirements.
  • FIG. 5a is a schematic structural diagram of a data transmission system provided by an embodiment of the present application.
  • the data transmission system includes: a first terminal 10, a first control device 31 and a second terminal 20, wherein,
  • the first terminal 10 is configured to send the first data block to be transmitted to the second terminal to the first control device 31;
  • the first control device 31 is configured to obtain a first preset character string corresponding to the second end in response to the first data block sent by the first end; wherein, the first preset character string is used to hide the address information of the second end; obtain the address information of the second end according to the first preset character string; send the first data block to the second end according to the address information of the second end Two ends.
  • the first data block sent by the above-mentioned first terminal 10 to the first control device 31 is a data block in the first data stream of the first application on it.
  • the first end 10 needs to transmit the first data block to the second end 20, it can call the device driver of the first control device 31 deployed in it, and use the configuration data registered in the device driver in advance to determine the first data block.
  • the first preset character string corresponding to the second end in addition, the second preset character string corresponding to the first end can also be determined for the first data block, so as to combine the first preset character string and the second preset character string with the first preset character string A data block is sent to the first control device 31 together.
  • the configuration data registered in advance in the device driver may include but not limited to: multiple second preset character strings corresponding to the first end, the second preset character strings, the transaction type of the transmission transaction, and the transaction attribute identification of the transmission transaction The correspondence between the three, the name of the second end, access credentials, transmission transaction attribute information of multiple transmission transactions, and so on.
  • the second end By invoking the device driver of the first control device 31 deployed in the first end 10, the second end can be obtained from the transmission transaction attribute information corresponding to the first transmission transaction of the determined first data stream to which the first data block belongs.
  • the corresponding first preset character string (that is, determine the first preset character string corresponding to the second end for the first data block); and based on the correspondence between the transaction type and the second preset character string, determine the first
  • the data flow corresponds to the second preset character string corresponding to the first end of the transaction type of the transmission transaction (that is, the second preset character string corresponding to the first end is determined for the first data block).
  • the attribute information of the transmission transaction, etc. please refer to the relevant content in other embodiments above.
  • the first terminal 10 may only send the first data block to the first control device, and not send the first preset character string corresponding to the second terminal and the second preset character string corresponding to the first terminal to the first control device 31.
  • the character string is determined autonomously by the first control device 31 .
  • the above-mentioned first control device 31 when used to obtain the first preset character string corresponding to the second terminal, it can be specifically used for any of the following:
  • the first preset character string is used to hide the address information of the second end.
  • a specific way to implement hiding may be, but not limited to: the associated information associated with the first preset character string includes the address information of the second end. Based on,
  • the first control device 31 When the first control device 31 is used to "acquire the address information of the second end according to the first preset character string corresponding to the second end", it can be specifically used to: acquire the associated information associated with the first preset character string; In the associated information, acquire the address information of the second end.
  • the first control device 31 After the first control device 31 obtains the address information of the second end, as shown in FIG. 5 a , it can directly send the first data block to the second end according to the address information of the second end.
  • it may also be based on the transaction information (including transaction identifier and transmission transaction attribute information) corresponding to the first data stream corresponding to the first transmission transaction, the first preset generate a corresponding message to be transmitted for the first data block, and send the generated message to the second end according to the address information of the second end.
  • the above-mentioned first control device 31 when the above-mentioned first control device 31 is used to "send the first data block to the second end according to the address information of the second end", it can Specifically for:
  • the first target header information is used to check whether the first packet meets the requirements, and if the requirements are met, the second end obtains and caches the first data from the first packet.
  • the above S42 "determine the corresponding first target header information for the first data according to the first transaction information" may specifically include:
  • S422. Determine a target header field for the first data block from a plurality of header fields included in a preset header format according to the header information transmission mode and the related information of the first data block;
  • the above S422 "according to the header information transmission method and the related information of the first data block, determine the target header field for the first data block from the multiple header fields included in the preset header format", which can include:
  • header information transmission method is the first method, or the header information transmission method is the second method, and the first data block is sorted last in the first data stream, or the header information transmission If the method is the third method, and the first data block is ranked first in the first data stream, then the plurality of header fields are the target header fields.
  • header information transmission method is the second method, and the data block is not sorted last in the first data stream, or the header information transmission method is the third method, and the data block is in the first data stream If the ranking in the first data stream is not the first, some header fields in the plurality of header fields are the target header fields.
  • the above S423 "according to at least one of the first transaction information and the related information of the first data block, Configure the corresponding field value of the target header field to obtain the "message header" determined for the first data block, which may specifically include:
  • the first message header includes: the first preset character string corresponding to the second end, the second preset character string, the transaction attribute identifier of the first transmission transaction, the first transmission
  • the transaction identifier of the transaction the total number of data blocks in the first data stream, the block number of the first data block, the first target header information and the total size of the first data block, and label information; the total number is When the value is set, it indicates that the first data flow is a flow whose number of data blocks is not known.
  • the above-mentioned first control device 31, when used in the above-mentioned S42, can also be specifically used for:
  • a corresponding data header is determined for the first data block according to the selected data header format.
  • the above S423 "According to the first transaction information and the related information of the first data block at least one item, configure the corresponding field value of the target header field, and obtain the "message header" determined for the first data block, which may specifically include:
  • the second packet header includes the transaction identifier.
  • the above-mentioned second terminal 20 may be specifically configured to verify the received first message; after the verification is passed, obtain and cache the first data block from the first message.
  • the associated information associated with the preset character string includes data transmission Direction control information, for the specific introduction of data transmission direction control information, please refer to the relevant content above.
  • first control device 31 is used for the above-mentioned S43 "generating the first message to be sent according to the first object header information and the first data block, it can also be specifically used for:
  • the above operation of S43 is triggered according to the data type of the first data stream to which the first data block belongs.
  • the data transmission direction control information indicates that the control device is prohibited from forwarding the received data to the second end
  • the first data block may not be forwarded to the second end, but processing such as caching may be performed.
  • the data type of the first data stream to which the first data block belongs is a request type (such as requesting a resource on the second end (such as a network resource))
  • a request type such as requesting a resource on the second end (such as a network resource
  • the above-mentioned first control device 31 may be specifically used for:
  • the data type is a request type
  • obtain preset request parameters from the associated information When the data type is a request type, obtain preset request parameters from the associated information; generate the first message to be sent based on the preset request parameters and the first target header information;
  • the system provided in this embodiment may further include: a second control device 32, communicatively connected with the second terminal 20 and the first control device 31;
  • the address information of the second terminal points to the second control device; correspondingly,
  • the above-mentioned first control device 31 is used for the above-mentioned S44 "sending the first message to the second end according to the address information of the second end", and is specifically used for: according to the address information of the second end, sending The first message is sent to the second control device 32, so that the second control device 32 sends the first message to the second terminal 29;
  • the above-mentioned second control device 32 is configured to verify the received first message; if the verification is passed and the acquisition request sent by the second end is received, the first message is sent to the second end; if the verification fails, the sending process will not be performed.
  • each device or each terminal in the data transmission system provided by the above-mentioned embodiment in addition to realizing the functional steps described in the above-mentioned embodiment, can also realize the relevant
  • the specific implementable functions and corresponding specific implementation principles of the above-mentioned devices or terminals please refer to the corresponding content in other embodiments of the above-mentioned application, and details will not be repeated here.
  • the other three embodiments of the present application further provide a data transmission system.
  • the data transmission system provided by another embodiment of the present application includes: a target device, a first terminal, and a first control device; wherein,
  • the first end is configured to obtain a first preset character string corresponding to the target device when a first data block needs to be transmitted to the target device; based on the first preset character string and the first data block , generating a first message to be sent; sending the first message to the first control device; wherein, the first preset character string is used to hide the address information of the target device;
  • the first control device is configured to determine address information of the target device according to the first preset character string obtained from the first message; sending a message to the target device;
  • the above-mentioned target device includes a second terminal; and the first control device is specifically configured to determine address information of the second terminal according to the first preset character string; according to the address information of the second terminal, set The first packet is sent to the second end.
  • the above-mentioned target device further includes a second control device, which is communicatively connected to the second end and the first control device; the address information of the second end points to the second control device;
  • the first control device is specifically configured to send the first message to the second control device according to the address information of the second end;
  • the second control device is configured to verify the received first message; after the verification is passed, buffer the first message to wait for the second terminal to obtain it;
  • the second end is configured to send an acquisition request to the second control device; and receive the first message fed back by the second control device for the acquisition request.
  • the data transmission system provided in this embodiment includes: a first terminal 10, a first control device 31, a second control device 32, and a second terminal 20; wherein,
  • the first terminal 10 is configured to obtain a first preset character string corresponding to the second terminal when the first data block needs to be transmitted to the second terminal; based on the first preset character string and the first data block, generating the first message to be sent; sending the first message to the first control device; wherein, the first preset character string is used to hide the address information of the second end;
  • the first control device 31 is configured to determine the address information of the second end according to the first preset character string obtained from the first message; according to the address information of the second end, set the sending the first message to the second control device;
  • the second control device 32 is configured to cache the received first message, so as to wait for the second terminal to obtain it;
  • the second terminal 20 is configured to send an acquisition request to the second control device; and receive the first message fed back by the second control device for the acquisition request.
  • a data transmission system provided in another embodiment of the present application includes: a first end, a first control device, and a second end;
  • the first end is used to obtain the first preset character string corresponding to the second end and the second preset character string corresponding to the first end when the first data block needs to be transmitted to the second end;
  • a preset character string, the second preset character string and the first data block are sent to the first control device; wherein the preset character string is used to hide the address information of the corresponding end;
  • the first control device is configured to determine that the first data stream to which the first data block belongs corresponds to first transaction information of a first transmission transaction; based on the first transaction information, the first preset character string and the A second preset character string, determining corresponding first object header information for the first data block; generating the first message to be sent according to the first object header information and the first data block; and sending the first message to the second end according to the address information of the second end acquired by the first preset character string.
  • the second end is configured to verify the received first message; after the verification is passed, obtain and cache the first data from the first message.
  • an embodiment of the present application also provides a corresponding data transmission method, specifically as follows:
  • Fig. 13 shows a schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • This data transmission method is suitable for the control device connected to the first terminal 10 as shown in FIG. 5 a , that is, the first control device 31 .
  • the preset information preset in the first control device 31 includes the above-mentioned configuration file created for the first terminal 10 , and further, may include the configuration file created for the second terminal 20 .
  • the data transmission method provided in this embodiment includes the following steps:
  • the above-mentioned 301 "acquire the first preset character string corresponding to the second terminal" may specifically include:
  • the address information of the second end may be obtained from the associated information associated with the first preset character string.
  • association information associated with the preset character strings such as the first preset character string and the second preset character string involved in the context
  • the above-mentioned 303 "send the first data block to the second end according to the address information of the second end" may specifically include :
  • the first target header information is used to check whether the first message meets the requirements, and if the requirements are met, the second end obtains and caches the first data from the first message;
  • the above-mentioned 3031 "determine the corresponding first target header information for the first data block based on the first transaction information" may specifically include the following steps:
  • the header information transmission method and the related information of the first data block determine a target header field for the first data block from a plurality of header fields included in a preset header format;
  • the above-mentioned 30312 “according to the header information transmission method and the related information of the first data block, determine for the first data block from the multiple header fields included in the preset header format Target header field", which can specifically include:
  • the header information transmission method is the first method, or the header information transmission method is the second method, and the first data block is sorted last in the first data stream, or the header information transmission If the method is the third method, and the first data block is ranked first in the first data stream, then the plurality of header fields are the target header fields.
  • header information transmission method is the second method, and the data block is not sorted last in the first data stream, or the header information transmission method is the third method, and the data block is in the first data stream If the ranking in the first data stream is not the first, some header fields in the plurality of header fields are the target header fields.
  • the above 30313 “according to at least one of the first transaction information and the related information of the first data block, Configure the corresponding field value of the target header field to obtain the "message header" determined for the first data block, which may specifically include:
  • the second preset character string Based on the first preset character string, the second preset character string, the first transaction information and the related information of the first data, configure the corresponding field value of the target header field to obtain the the first packet header determined by the first data block;
  • the first message header includes: the first preset character string, the second preset character string, the transaction attribute identifier of the first transmission transaction, the transaction identifier of the first transmission transaction, The target header information and the total size of the first data block, the total number of data blocks in the first data stream, the sequence number of the first data block, and label information;
  • the total number is the set value, it means that the first data flow is a flow whose number of data blocks is not known.
  • the above 30313 “according to the first transaction information and the related information of the first data block at least one item, configure the corresponding field value of the target header field, and obtain the "message header" determined for the first data block, which may specifically include:
  • the second packet header includes the transaction identifier.
  • the address information of the second end in response to the first data block sent by the first end that needs to be transmitted to the second end, obtain the first preset character string corresponding to the second end (used to hide the address information of the second end) Afterwards, the address information of the second end can be obtained according to the first preset character string, and the first data block can be sent to the second end according to the address information of the second end.
  • the address information of the corresponding end is hidden by using a preset character string, so that the data initiator cannot know the address of the target end, and the address information of the target end can be protected;
  • the device scans, detects, etc., which can effectively prevent malicious attacks.
  • the method provided by this embodiment may further include the following steps:
  • the above S53 "according to the data type of the first data stream to which the first data block belongs, trigger the address information of the second end to send the first data block to the The operation of the second terminal" may specifically include the following steps:
  • the data transmission direction control information indicates that the control device is allowed to forward the received data to the second end, but the control device is prohibited from forwarding the received data sent by the second end, then
  • the method provided in this embodiment further includes: when receiving the feedback information returned by the second terminal for the first data block, not sending the feedback information;
  • the method provided in this embodiment may also include the following steps:
  • connection verification information feed back a corresponding verification result to the first end, so that the first end determines whether to establish a communication link with the control device based on the verification result, so as to pass the sending the first data block over the communication link;
  • connection verification information includes at least one of the following: a verification instruction carrying a verification value, and verification data related to a device driver of the first control device.
  • the preset character string can be in various combinations.
  • different data terminals have corresponding preset character strings.
  • the client For example, see Example 1 "Request Data" in Example 2 given below.
  • the client For the "Request Network Resource” transmission transaction, the client correspondingly has a second preset character string. String: 0x81 0xa4 0x35 0xe3, the server corresponds to the first preset string: 0x47 0xec 0x47 0xf4, the first preset string is different from the second preset string.
  • different data terminals can be fixed preset character strings.
  • the preset character strings corresponding to the client and the server can be the third preset character strings, as shown in In the example 11 and example 21 given above for the preset character string, the second preset character string corresponding to the client and the first preset character string corresponding to the server can both be the string "0x0A", although the server
  • the corresponding first preset character string is the same as the second preset character string corresponding to the client, but they actually have different functions.
  • the first preset character string is only used in the communication between the server and its connected
  • the configuration string is only used in the communication between the client and the control device it is connected to.
  • the preset character string has address information of the corresponding end hidden.
  • the second preset character string corresponding to the client can directly represent the client
  • the first preset character string corresponding to the server can be directly the character string "192.###. 1.1:8000".
  • this application is based on the combination of software program (for the device driver and API interface installed on the data end (such as the first end, second end)) and hardware (for the control device), from the data Based on the physical interface equipment access method, data exchange method, data structuring method and physical special control of the end (first end and second end), in order to strengthen the protection and control capabilities of information security.
  • the data transmission scheme provided by this application may include the following major contents:
  • the first block of content the network access aspect of the data end (such as the first end or the second end)
  • the solution of this application does not use the direct connection of existing intermediate network devices (such as twisted pair network cards, optical fiber network cards, WiFi network cards, 4G wireless network cards, etc.), but physically communicates with the control device at the data end Make a hardware connection, and install the corresponding driver software program (device driver for the control device) on the data end to establish a communication connection with the control device; then the control device sends the target device (such as another control device, or another Data terminal) establishes a network connection for communication.
  • the target device such as another control device, or another Data terminal
  • the data end can be a stand-alone device without a network card (network adapter).
  • malicious programs such as Trojan horses and viruses control the data terminal, they cannot receive control commands, steal files, or initiate scanning, detection, or attacks on other devices in the network through the network.
  • the first end is maliciously controlled, since all data sent by the first end needs to be audited by the corresponding first control device and performed according to the preset rules, when the data does not meet the requirements, the second end A control device will not forward the data sent by the first end, nor can it process data with unknown rules. Therefore, the malicious data sent by the malicious party to control the first end will not be sent in the network, so the malicious party It is also difficult to initiate scans, detections, or attacks to other devices in the network through the first end.
  • the remote communication between different control devices can still be connected through the existing network technology, reducing the construction investment cost.
  • the communication connection between the first control device 31 and the second control device 32 can use the TCP/IP communication protocol, through traditional twisted pair, optical fiber, WiFi, 3G, 4G, 5G, satellite communication, LORA Wired or wireless network connection.
  • the device driver and corresponding API interface on the data terminal can be restricted by modifying the operating system permissions, so that unauthorized applications cannot access; or use hidden technology, so that malicious programs cannot find the device driver or API interface.
  • the specific implementation principle is as follows:
  • the permission of the application to access the network is generally unlimited (in exceptional cases, although the application can be accessed through anti-virus software, software firewall, etc.
  • the network is restricted, but the network can be accessed through the network interface after bypassing the restriction), and any application can access the network with ordinary permissions.
  • other programs on the data end can monitor the communication process, such as using wireshark software (an open source network protocol analyzer) to monitor network card data.
  • wireshark software an open source network protocol analyzer
  • Step 1 Call the built-in general network access API interface file of the operating system.
  • Socket.h files under Linux, Windows, and MacOS operating systems, etc.
  • Step 2 Create a network socket (Socket) through the API interface function. For example, use the socket() function.
  • the above steps 1 to 2 and the following step 3 are common steps of different data terminals such as client and server.
  • Step 3 When the data terminal acts as the client, establish a connection with the server through the API interface function. For example, use the connect() function (a function for establishing a connection with a specified socket) to connect to a specified IP address and a corresponding port number.
  • the connect() function a function for establishing a connection with a specified socket
  • the connection is monitored through the API function, for example, use the bind() function to bind the number, and use the listen() function to monitor the connected client.
  • use accept() The function accepts client access requests.
  • Step 3 After the connection is successful, use the API interface function to send or receive the communication data of the server or the client. For example, use the write() or send() function to send data to the server or client; use the read() or recv() function to receive data sent by the server or client.
  • the designed business logic in the driver layer is: application ⁇ ——> operating system ⁇ ——> device driver of the control device ⁇ -> control device ⁇ -> Network data.
  • device driver device driver
  • other programs can access the API interface of the device driver to authenticate, for example, to issue digital certificates or password certificates to authorized applications in advance , when the application accesses the device driver, it needs to attach credential information, and the device driver or control device determines whether to accept the function call of its data transmission or reception.
  • the permission of the operating system can be set for the device driver of the control device, and the application or the user without the calling permission cannot call the function. For example, in a linux system, device driver permissions can be set through the chmod command.
  • the access interface is to hide the hardware interface connecting the data terminal (such as the client) and the control device at the operating system level, preventing applications other than the device driver from directly accessing the hardware interface.
  • the control device Take the USB interface protocol and the control device connected to the data terminal (the first terminal (client) or the second terminal (server)) as an example.
  • the control device When the data end sends a standard request (request device, configuration, interface, endpoint descriptor, etc., see Figure 10) for the first time, the control device first returns a general CDC (Connected Device Configuration) device type related Descriptor that emulates the control device as a normal CDC device type.
  • the device driver sends a special request to the CDC device according to the preset UID or PID (the data in the returned device descriptor), when the verification is passed (the verification part in the special request shown in Figure 10), the control A device disconnecting re-initiates a signal that can be enumerated.
  • the above-mentioned CDC device type is a type of USB device defined by the USB organization and specially used for various communication devices (telecom communication devices and medium-speed network communication devices).
  • the data end (such as client or server), there is only one communication target, which is the control device.
  • the specific network resources and network targets accessed by the data terminal are determined by the control device through preset configuration, and the data terminal cannot intervene. Since important control codes, memory data, or operating logic run independently in the control device, the data end cannot have all the control rights of the control device. For example, even if a data end is completely controlled by a malicious program, the malicious program cannot gain control Full control of the device.
  • the relationship between the data terminal and the control device is the relationship between the master and the slave.
  • the data end is in master mode, and the control device is in slave mode.
  • the control device needs the data end to actively initiate a request before it can respond, so as to avoid stealing the data of the data end host when the control device is maliciously controlled.
  • the control device can be a firmware program without an operating system, which theoretically cannot be infected with viruses or implanted with a Trojan horse for control.
  • the firmware (Firmware) program is a program written in EPROM (Erasable Programmable Read-Only Memory) or EEPROM (Electrically Erasable Programmable Read-Only Memory), and can be understood as an independent software.
  • EPROM Erasable Programmable Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • the data terminal and the control device are connected through a USB data cable (in the case of on-site access or near-end access).
  • the data terminal under the USB communication protocol, the data terminal is in the host mode, and the control device is in the slave mode.
  • the control device enables isochronous transmission, interrupt transmission or batch endpoints of one or more control transmission endpoints and one or more IN endpoints or OUT endpoints on it, which is used for the data terminal and the control device to complete enumeration (communication handshake of control transmission endpoints ), and perform data interaction (input and output of IN or OUT endpoints).
  • enumeration refer to the content related to FIG. 10 mentioned above.
  • USB protocol As an example:
  • a data terminal When a data terminal needs to send data, it can send OUT token packets, data interaction instructions and data packets to the OUT endpoint (output endpoint) of the control device connected to it;
  • a data terminal When a data terminal receives data, it can send an IN token packet to the IN endpoint (input endpoint) of the control device connected to it. When the IN endpoint has data, it receives the data packet.
  • IN/OUT endpoints can have multiple groups, such as 5 groups, 5 IN endpoints, 5 OUT endpoints; or asymmetrical, such as 3 IN endpoints, 7 OUT endpoints, It is used for high-speed data transmission; at the same time, it can also be used for unidirectional data transmission when there are only IN endpoints or only OUT endpoints.
  • the data end specifically transmits token packets, data interaction instructions, etc. to the end point of the control device, which can be determined according to the end point of the control device bound to the preset string corresponding to the data end.
  • a control device connected to a data terminal exchanges data with a target device (such as another control device or another data terminal)
  • the control device connects to another control device or another data terminal (such as a server) through a network interface such as TCP/IP according to the preset configuration (such as network configuration: target IP, port, access account, password and other electronic credentials).
  • a network interface such as TCP/IP according to the preset configuration (such as network configuration: target IP, port, access account, password and other electronic credentials).
  • the control device forwards the data to a target device (such as a server).
  • a target device such as a server
  • the control device receives the data sent by the server, it places the data in the storage medium (memory or external storage) of the control device, and returns the data to the server when the client sends a token packet request through the IN endpoint.
  • the data forwarding of the server and client here: first, it is not necessarily the original data for conversion, but also the data that has been encrypted, decrypted, cropped, added or processed in other forms; second, it is not necessarily It can be forwarded immediately, or it can be forwarded after manual confirmation, or after verification by preset scripts, rules, etc. Malicious encryption to ransomware.
  • the second big piece of content the data interaction between the application on one data end and the application on another data end.
  • the application communication between the client and the server is different from the existing transmission protocols such as TCP/IP.
  • TCP/IP Transmission Protocol/IP
  • This application is through the pre-registered service (the corresponding "communication identification (that is, the preset string mentioned above)" is preset for the pre-registered service, and also includes the subsequent "transmission transaction"), and the service
  • the information is synchronized to the control device, and then the control device communicates according to the preset configuration of the service.
  • the control device can only have client functions or server functions (such as the client and server shown in 5a are connected to different control devices), or have both client and server functions (such as the client and server shown in 4a).
  • the server is connected to the same control device).
  • the service provider pre-registers a service B (such as network resources provide services) on the server, and service B points to the second control device whose network address is 192.###.1.1 and port number 8080 , the service B authorizes the first control device to access, and for the service B, the corresponding communication identifier 0x01 is preset (the address information of the server is bound to it (192.###.1.1:8080)); then,
  • the client sends data.
  • the application on the client only needs to send the communication identifier 0x01 corresponding to service B and the data hello to be sent to the first control device, and the first control device will identify and analyze the communication identifier 0x01 to resolve the network target address (192.# ###.1.1:8080) and the communication identifier 0x02 corresponding to the client, and then send the data packet containing the communication identifier 0x01, the communication identifier 0x02 and the data hello to the network target address (pointing to the second control device connected to the server) .
  • the second control device After the second control device receives the data sent by the first control device, it waits for the server to read it. When the server reads the second control device 2, the corresponding data is sent to the server.
  • the server After processing the received data, the server will reply the data to the client according to steps 1 and 2.
  • the second is that the sender can only submit data according to the communication identifier corresponding to the target.
  • the communication identifier can be a random string of more than multiple bytes (such as complex random numbers such as 32 or 128 bytes, which are different from IP addresses. regularity), so the sender cannot scan and detect other services on the network, nor can it guess the number of network devices, nor can it analyze network devices, etc.
  • the control device can only have the function of the client, so that the ordinary client cannot enable the service function, and prevent the security risks caused by the private activation of network services, such as the private establishment of FTP and file sharing network services by ordinary users with only the client function.
  • network communication is bidirectional transmission, that is, as a network client, it can receive data packets from the network server, and can also send data packets to the network server; the same is true for the network server.
  • two-way transmission of data is not required, only one-way transmission of data is required to prevent data leakage.
  • the communication identification can be set to only uplink (receive) and only downlink (send) of communication data, and the control device only processes only uplink or only downlink data packets to realize one-way transmission of data.
  • Step 1 Create a configuration file (create a configuration file for a user with administrative rights)
  • the second is to generate a configuration file of a data terminal (such as a client).
  • the configuration file includes but is not limited to the following configuration information: the name of the client (the same client hardware, but the names corresponding to different services can be different), the corresponding communication identification of the client (the same client hardware, but the communication corresponding to different services The identification can be different), set the IP of the client that is allowed to access, the hardware feature identifier of the bound control device, and automatically generate the client IP corresponding to: 1 access port range (port number when the client accesses, such as 10000 to 10010, The specific port corresponding to non-IP restricts its access to the server to improve security.
  • client ports are used for data concurrency to increase the number of concurrency); 2 communication identification number (client identification, Randomly generate a 128-byte random number); 3 access to the server account, password and other electronic credentials, client digital certificates, etc.
  • the configuration file includes but is not limited to the following configuration information: the name of the server, the corresponding communication identifier of the server (complex random numbers such as 32-bit or 128 bytes can be randomly generated, or a single character), and the bound control device hardware Characteristic identifiers, server IP, port, digital certificate, etc.; client corresponding IP, account number, password and other electronic credentials, access port range, client communication identification number, etc., connection mode: long connection or short connection.
  • Step 2 distributing the configuration file to corresponding control devices.
  • Step 3 The control device synchronizes some parameters of the configuration file to its connected data end (such as a client or a server).
  • Step 4 An application on a data terminal sends or receives data to a corresponding control device. specifically,
  • the application can obtain the registered service list (service name, service identification (that is, the communication identification configured for the service)) by calling the API interface (the API interface driven by the device) installed on the data terminal where it is located to obtain the service list;
  • the API parameters include the communication identifier corresponding to the target end and the data to be sent, and send the data to the corresponding control device.
  • the underlying principle (logic) of sending data is: sending data to the specific OUT endpoint of the corresponding control device, for example, the sent data may include an OUT token packet and a data packet containing a communication identifier and data to be sent;
  • the API parameters include the communication identifier of the target end (server or client) and the data packet of the query parameters, which will be returned when the control device connected to the data end of the application has data.
  • the underlying principle (logic) of receiving data includes the following two methods:
  • Method 1 The data terminal where the application is located directly sends an IN token packet to the specific IN endpoint of the connected control device for query, and returns the data packet when the control device has data;
  • Method 2 The data terminal where the application is located first sends the OUT token packet and data packet to the specific OUT endpoint of the control device connected to it.
  • the data packet includes interactive instructions with query or request functions, and then sends the specific IN endpoint of the control device connected to it. Initiate the IN token packet in a loop to query, and return the data packet when the control device has data.
  • Step 5 The control device verifies the data sent by the connected data host.
  • control device can verify the data sent by the data terminal connected to it through access credentials (such as digital signatures) to ensure that it is the real data sent by the official driver;
  • access credentials such as digital signatures
  • the second is to verify whether the sent communication identifier exists, and if so, match the configuration file, and forward the data to the target device according to the configuration file.
  • Step 6 if one data end is connected with the first control device, and the other data end is connected with the second control device, one data end will need to send data packets to the other data end (comprising the corresponding communication identification and After the data to be sent) is sent to the first control device, the first control device first sends the data packet to the second control device, specifically, the first control device sends the data packet to the second control device according to the received communication identifier The IP address and port of the device. After the second control device receives the data packet, it can perform data verification according to the preset rules (such as source IP, source port, user, voucher, digital certificate, etc.) in the preset configuration file. When the verification is passed, Wait for the computer to get it.
  • the preset rules such as source IP, source port, user, voucher, digital certificate, etc.
  • the third block of content Communication data structure in data transmission and exchange
  • the third is that existing application firewalls and traffic detection devices can work effectively only after analyzing the communication data structures (protocols) of different applications. ), the firewall may not be able to detect effectively.
  • the present application restricts the data structure of the communication data, and only the data conforming to specific structural rules can be exchanged in the control device. Therefore, when an application initiates data transmission, it needs to call a specified API interface, and the data can only be transmitted after the API (or driver program, or control device) structures the data.
  • the control device or computer driver or API can identify the data transmission intention of the upper-layer application, so as to implement security control, log audit and other measures.
  • transfer transaction is used to realize the structuring of the data to be transmitted.
  • control device can concretely record the specific behavior of the transfer (such as file transfer, login operation) and the parameters of the specific behavior (such as the file name, file type) and other specific operation behaviors of the application;
  • the structured process is developed by the application developer according to the API specification, and the follow-up log audit generally does not require the developer to participate;
  • the third is that the control device can block unauthorized operations. For example, if the common data terminal does not need to transmit executable files (such as .exe programs), the operation can be prohibited;
  • control device does not forward unknown operations (non-registered transmission transactions) or unstructured data to prevent malicious programs or other unknown applications from accessing the network or computer.
  • the behavior of the current network transmission can be displayed in real time.
  • the control device can display the behavior of the current network transmission traffic in real time for detection. For example, traditional firewalls and other detection devices can only monitor the size of the current transmission traffic, but the control device can detect the specific behavior of the transmission traffic. For example, the ongoing file name is Transmission of test.mp4 files, etc.
  • the transmitted data can be preprocessed. Can be preset by:
  • an executable program file such as an .exe program
  • important files can be backed up.
  • a file is marked as "important" (such as financial statement.xls)
  • the file is first saved and backed up to the control device during the transmission process to prevent files on the data side from being accidentally deleted or encrypted by ransomware .
  • the third is abnormal control. For example, when 10 files are transferred in a short period of time, it is considered that there is abnormal behavior, and the transmission can be blocked, early warning or manual confirmation can be performed to prevent malicious programs or operations from stealing data.
  • one control device can be connected to multiple data terminals, or one control device can be connected to other multiple control devices (as shown in FIG. 6b ).
  • Step 1 control device pre-configuration
  • the configuration information may specifically include but not limited to the following:
  • 3Data transmission exchange configuration information such as related public key and private key, transmission transaction set, etc.
  • Descriptor sets related to control devices can be but not limited to the following: device descriptors (such as manufacturer ID, product ID, device ID); configuration descriptors (such as the number of interfaces, current requirements, etc.); interface Descriptor (specify communication protocol, etc.); endpoint descriptor (configuration information of each IN and OUT endpoint, including endpoint number, endpoint type, etc.); string descriptor (such as displayed manufacturer name, device name, product name, etc.), etc. .
  • device descriptors such as manufacturer ID, product ID, device ID
  • configuration descriptors such as the number of interfaces, current requirements, etc.
  • interface Descriptor specifies communication protocol, etc.
  • endpoint descriptor configuration information of each IN and OUT endpoint, including endpoint number, endpoint type, etc.
  • string descriptor such as displayed manufacturer name, device name, product name, etc.
  • 5 data transmission security control information for example, communication identification configurations of both parties (as mentioned above, the second preset string set corresponding to the client, the first preset string set corresponding to the server, and the preset character strings String binding (or association) information (such as corresponding IP, port, etc.), prohibited or allowed transmission transactions, data flows, etc.
  • the above preset configuration can be implemented offline (such as using a distributor), or online configuration (such as connecting to a configuration server and sending corresponding configuration information to the control device).
  • the above-mentioned four descriptors are common standard descriptors in the case of using the USB protocol, and may not be required.
  • the role of the universal standard is, for example, to allow USB devices (such as control devices) to be plugged into any data terminal (such as client or server), and can be accessed normally without installing drivers, such as U disk, mouse and keyboard.
  • the descriptor In order to hide the control device on the data end, it is not necessary to follow the data structure of the above four descriptors, because the descriptor is only for the data end to read and identify (the descriptor is equivalent to the configuration file of the data end connected to the control device) , for the data terminal to load the device driver of the corresponding control device, and send or receive data to the endpoint of the specified control device, so the descriptor is not very meaningful for the control device itself. Because in this application it is necessary to install the device driver of the control device in the data terminal, the descriptor can also be completely customized, or only the most basic device descriptor and string description (only the minimum limit), other information used for data terminal connection can be synchronized to the data terminal through other methods in advance. When the control device is connected to an unknown computer, it can perform security protection and concealment functions, reducing the security risk of reverse cracking.
  • Step 2 The stage of establishing a communication connection between the data terminal and the control device
  • the communication connection between the data terminal and the control device can be a wired connection, or a wireless connection, or an independent expansion card connection based on the motherboard, or an integrated connection based on a chip.
  • the wired connection may be a connection line using the USB protocol, or a network twisted pair line or optical fiber, and the like.
  • the wireless connection may be Bluetooth, WiFi, or the like.
  • the mainboard-based connection may be an expansion card device with a PCIE interface, a device with a SATA interface, and the like.
  • the way based on chip integration can be SPI interface, SDIO interface and so on.
  • Control device power supply the corresponding data terminal can supply power for the control device, or it can also provide an independent power supply for the control device.
  • Control device enabling: After the control device is powered on and started, the control device enables the control transmission endpoint, IN endpoint or OUT endpoint according to the preset configuration information read. Among them, the IN endpoint or OUT can be multiple groups, or only There are IN endpoints or only OUT endpoints. Endpoints include control transfers, interrupt transfers, bulk transfers, isochronous transfers, super-speed control transfers, super-speed interrupt transfers, super-speed bulk transfers, and super-speed isochronous transfers.
  • the data end starts enumeration to establish a communication connection with the corresponding control device, specifically: after the data end and the control device are powered on and started, the data end connects to the control device to complete the handshake protocol (enumeration is completed).
  • the specific enumeration process may include the following steps:
  • the client loads the configuration information required for the preset connection. For example, load to find the characteristic value of the first control device (such as manufacturer ID, product ID, device ID, string, etc.); load the account number, password (credential), etc. for logging in to the first control device; load the public key related to data interaction and keys etc.
  • the configuration information may be distributed by a “distributor” (configuration distributor); it may also be synchronized by the first control device.
  • the client sends an interactive command to the first control device that meets the characteristic value, and obtains the descriptor of the first control device, such as device descriptor, configuration descriptor, interface descriptor, endpoint descriptor, string descriptor, or custom Descriptor, etc. (the control device returns the above-mentioned descriptor), and judge whether the descriptor parameters conform to the preset.
  • the descriptor of the first control device such as device descriptor, configuration descriptor, interface descriptor, endpoint descriptor, string descriptor, or custom Descriptor, etc.
  • test data can also be directly sent to the specific endpoint number of the control device (device with characteristic values) , for example, send a test packet to endpoint 1 (OUT endpoint, bulk transfer), and when the test packet conforms to the preset condition, the control device endpoint 2 (IN endpoint, bulk transfer) returns a successful packet.
  • control device device with characteristic values
  • connection request data (account, password (credential), etc.) to the first control device.
  • the first control device After the first control device returns the preset verification success data (the control device verifies the requested data, returns success if the verification is successful, returns failure or does not return data if the verification fails), it is determined that the enumeration is successful.
  • sending the connection request data is also sending to a specific endpoint of the first control device. For example, send a data packet with account and password (credentials) to endpoint 1 (OUT endpoint, bulk transfer), and return a successful or failed data packet at endpoint 2 (IN endpoint, bulk transfer).
  • the client After returning a successful data packet, the client completes the communication connection with the first control device (or completes enumeration), and sends a heartbeat packet to a specific endpoint every 1 second to maintain the connection relationship (a non-essential step), and waits The next step of data transfer (transfer transaction).
  • the working logic (conventional logic) for establishing a communication connection is:
  • the configuration information required for the client to load the preset connection is distributed by the "distributor".
  • the working logic (for special logic) of the establishment of the communication connection is:
  • the client and the first control device pre-synchronize the configuration information --> the client sends or receives data (endpoints, etc.) according to the configured endpoint --> the first control device
  • the data transmission between the data terminal and the corresponding control device can also be encrypted and decrypted.
  • the transmitted data may be captured or tampered with in the middle.
  • the control device sends data to the corresponding data terminal, it may be captured or modified by another program in other data terminals.
  • the data end sends data to the corresponding control device process, it may be captured or modified by the intermediate device.
  • encryption can be performed during data transmission between the data terminal and the corresponding control device to prevent other software in the data terminal or packet capture on the communication link.
  • the data terminal and the corresponding control device can communicate encryption public key, key (in the case of asymmetric encryption) or encryption key (in the case of symmetric encryption) and other encryption certificates or decryption certificates according to the pre-agreed communication.
  • the device driver can first encrypt the data to be sent with an encryption certificate (such as a private key), and then send it; the corresponding control device decrypts the data after receiving it (such as using a public key to decrypt). It is also possible to pre-set an encryption key for encryption or decryption (symmetric encryption). It is also possible to use a key exchange algorithm to exchange keys in advance (key exchange method), and then encrypt or decrypt according to the key (symmetric encryption method). At the same time, if the password is wrong or the decrypted data does not meet the preset rules, the control device will not process it, preventing other programs on the data terminal from pretending to be the device driver of the control device to send data to the control device.
  • an encryption certificate such as a private key
  • control device before the control device uses the IN endpoint to send data to the corresponding data terminal (or the device driver of the data terminal, API interface, etc.), it can first encrypt the data through the encryption certificate, and then send it; after the corresponding data terminal receives it, The device driver on it decrypts the received data and sends it to the corresponding application.
  • the above encryption and decryption methods include but are not limited to symmetric encryption (such as DES, AES and other encryption algorithms), asymmetric encryption (such as RSA, DSA, ECDSA and other encryption algorithms), key exchange algorithms (such as DH algorithm, ECDH algorithm) and domestic Cryptographic algorithm (such as SM1, SM2, SM3, SM4, SM7, SM9 and other encryption algorithms).
  • symmetric encryption such as DES, AES and other encryption algorithms
  • asymmetric encryption such as RSA, DSA, ECDSA and other encryption algorithms
  • key exchange algorithms such as DH algorithm, ECDH algorithm
  • domestic Cryptographic algorithm such as SM1, SM2, SM3, SM4, SM7, SM9 and other encryption algorithms.
  • Step 3 The data terminal sends data to the corresponding connected control device
  • the data terminal When the data terminal sends data to the correspondingly connected control device, it sends data to the OUT terminal under the corresponding interface of the control device.
  • the sent data is OUT token packet + send data packet.
  • the data packets sent can be of the following two types:
  • the data packet includes: a structured header (including a structured header (or + data header)), the specific data content to be transmitted (such as the first data block of the first data stream mentioned above) ;
  • the packet header contains a preset character string (such as a first preset character string corresponding to the receiver, and a second preset character string corresponding to the sender).
  • the second type the data packet includes: the second preset character string corresponding to the sender, the first preset character string corresponding to the receiver, and the specific data content to be transmitted (such as the first character string of the first data stream described above). data block).
  • the data terminal does not perform structured processing on the data content (such as the first data block) that needs to be transmitted specifically, and the structured processing may or may not be performed in the control device connected to it.
  • the preset character string described in other embodiments of the above application is used to hide the address information of the corresponding end, it may not be performed.
  • the data length (number of bytes) of each field contained in the data packet can be customized according to the actual situation. Table 6 below shows the structural format of the data packet in the first type (note: the data packet in this case is also the message mentioned above (such as the message A1 shown in Fig. 3a)).
  • the first preset character string and the second preset character string are communication identifiers for both the sender and the receiver.
  • the first preset character string corresponding to the receiver may be called a service identifier
  • the second preset character string corresponding to the sender may be called a client identifier.
  • the sender is a server
  • the second preset character string corresponding to the sender may be called a service identifier
  • the first preset character string corresponding to the receiver may be called a client identifier.
  • the preset character string may be a complex random character string of 32 bytes or 8 bytes, which is used to hide the address information of the corresponding end.
  • the second preset string corresponding to the client is: 0x5c 0x67 0x55 0xb6, and the first preset string corresponding to the receiver is 0x47 0xec 0x47 0xf4
  • the sending methods can include the following two methods:
  • Method 1 The client constructs a data packet (message) that meets the requirements of the preset structure rules for the string data "hello", and the data packet contains the following content:
  • the second preset string corresponding to the client 0x5c 0x67 0x55 0xb6
  • the first preset string corresponding to the server 0x47 0xec 0x47 0xf4
  • Transaction attribute identification: 0x00 0x00 0x00 0x00 0x01//"hello" corresponds to the transaction attribute identification of the transmission transaction, which is used to indicate the transaction attribute information of the transmission transaction (preset in advance, the content that the transaction attribute information can contain can be seen in Figure 8a)
  • Transaction ID: 0xa2 0xba 0xc6 0xa1// is the transaction ID of the transfer transaction corresponding to "hello"
  • Data packet size 0x00 0xC8// is the total size of the current data block and structured header to be transmitted, the data packet size can also be called the data packet length
  • Labeling information 0x00 0x00//There is no information that needs to be labeled
  • the client sends data, as shown in FIG. 5d , specifically, it may send an OUT token packet + the above-mentioned data packet to a specific OUT endpoint of the correspondingly connected first control device.
  • the specific OUT endpoint is determined by the client according to the association information associated with the second preset character string (0x5c 0x67 0x55 0xb6).
  • the endpoint number information bound to the second preset character string may be acquired according to the association information, so as to determine a specific OUT endpoint according to the endpoint number signal.
  • Method 2 For the string data "hello”, the client pre-structures and builds a data packet containing the following content:
  • the second preset string corresponding to the client 0x5c 0x67 0x55 0xb6
  • the first preset string corresponding to the server 0x47 0xec 0x47 0xf4
  • the client sends data, as shown in Figure 5c, specifically, it can send an OUT token packet + the above data packet (that is, a preset character string + specific data to be transmitted) to the specific OUT endpoint of the first control device connected to it.
  • an OUT token packet + the above data packet that is, a preset character string + specific data to be transmitted
  • the first control device in the case of the above method 2, as shown in Figure 5d, after the first control device receives the data sent by the client, it can Set a character string to obtain the address information of the server, and directly forward the received data packet to the server according to the address information of the server. Alternatively, further structural processing may be performed on the received data packet to generate a data packet conforming to the requirements of the preset structural rules as shown in the above method 1, and the generated data packet conforming to the requirements of the preset structural rules sent to the server. The first control device generates a data packet conforming to the preset structure requirements, and in this way, the preset character string can be further encrypted.
  • what is pre-registered (preset) in the device driver of the control device installed on the client may be a set of string aliases, and the string aliases in the set of string aliases are aliases of corresponding real preset strings for Hide the real corresponding preset string;
  • the client obtains the corresponding real preset strings of the client and the server by calling the device driver installed in it.
  • the string aliases of the preset strings are used as the preset strings corresponding to the client and the server.
  • the preset strings corresponding to the client are: 0x5c 0x67 0x55 0xb5 (the real second preset string "0x5c 0x67 0x55 0xb6", the corresponding preset string on the server side is: 0x47 0xec 0x47 0xf3 (is the string nickname of the real first preset string "0x47 0xec 0x47 0xf4"; after that, according to the above acquisition
  • the corresponding preset character strings of the received client and server alias for real preset character strings (non-real)
  • the specific character string data "hello" to be transmitted generate data packets to be sent and send Send it to the first control device;
  • the first control device parses the received data packet, and after parsing out the non-real preset character strings corresponding to the client and the server, it can Correspondence between character strings and string aliases, convert the non-real preset strings corresponding to the client and server analyzed above into
  • the above-mentioned corresponding relationship between real preset character strings and character string aliases can be obtained according to associated information associated with real preset character strings, and the associated information includes string alias information corresponding to real preset character strings.
  • the string alias information refer to the content related to Example 11 to Example 13 given in other embodiments of the above application.
  • Step 4 The control device sends data to the target device
  • the first control device receives the data packet sent by the client through its first interface (the interface connected to the client), based on The preset configuration (such as data transmission security control information) is verified (or a data packet that meets the requirements of the preset structure rules is generated after verification); after the verification is passed, the first preset string is queried according to the preset configuration (0x47 0xec 0x47 0xf4) to obtain the association information associated with the first preset character string, and obtain the communication target (target address information) of its second interface from the association information.
  • the preset configuration such as data transmission security control information
  • the preset configuration such as data transmission security control information
  • the first preset string is queried according to the preset configuration (0x47 0xec 0x47 0xf4) to obtain the association information associated with the first preset character string, and obtain the communication target (target address information) of its second interface from the association information.
  • the target address information obtained from the associated information associated with the first preset character string (0x47 0xec 0x47 0xf4) can be: target IP address It is 192.###.1.1, and the port number is 8080.
  • the target address information can point to the second control device connected to the server; or as referring to the data transmission system architecture scenario shown in Figure 4b, the target address information directly to the server.
  • the first control device may send the data packet generated according to method 1 or method 2 in the above step 3 to the device corresponding to the target address information according to the target address information.
  • Step 4 The target device receives the data
  • the target device When the target device receives the data packet, it can decrypt and verify it according to the preset configuration.
  • the content of the target device verification can be but not limited to: source IP, source port, communication identification (preset character string) of the sender and receiver, password credential information (if necessary), data type, etc. conform to the preset configuration.
  • the verification is passed, if it is the data transmission system architecture scenario shown in Figure 5d (or Figure 5c), and the second control device and the server are master-slave roles, the target device is the second control device, and the second The control device can cache the received data packets locally, waiting for the connected server to request data.
  • the control device verifies the communication data packets according to the preset configuration, and can intercept or release the data packets according to the verification results. For example, if the preset configuration forbids (or does not allow (white list)) the type of file to be transferred is the "exe" executable program, then when the specific transmitted data contained in the communication data packet is the test1.exe file, it will Intercept; on the contrary, when the specific transmission data contained in the communication data packet is the test2.txt file, it will be released.
  • the server when it obtains data, it can actively initiate a cyclic acquisition request to the second control device (for the initiation method, please refer to the two methods of receiving data involved in the introduction of "the second big piece of content: data exchange" above.
  • the server when there is an adapted data packet on the second control device, return the data packet to the server.
  • the server parses the received data packet to obtain the corresponding data. For example, continue to follow the data packet example given in this example above.
  • the parsed data may include but not limited to: the second preset string corresponding to the client: 0x5c 0x67 0x55 0xb6, the first preset string corresponding to the server: 0x47 0xec 0x47 0xf4, data: 0x68 0x65 0x6c 0x6c 0x6f (unicode binary encoding of the string data "hello").
  • Example 2 will be described in detail with reference to the data transmission system architecture scenario shown in FIG. 5 d , taking the first end as the client, the second end as the server, and USB connections between each end and the corresponding control device as an example.
  • Example 1 the client initiates a request to the server through the first control device connected to it, such as requesting network resources, specifically, requesting test.jpg data
  • the transaction attribute information corresponding to the preset "requesting network resources” transmission transaction includes the contents shown in Table 7 below:
  • the synchronous preset configuration (preset configuration information) in the first control device and the client includes the transaction attribute information of the above-mentioned "request network resource" transmission transaction.
  • the request parameters corresponding to the requested network resources construct the data packet to be transmitted.
  • an application on the client such as a browser application
  • the application on the client passes the corresponding
  • the API interface calls the device driver of the first control device installed on it, obtains the transaction attribute information of the corresponding "request network resource” transmission transaction, and uses the transaction attribute information of the "request network resource” transmission transaction to generate the corresponding Data packets to be transmitted as required by the preset structure rules.
  • the contents of the generated data packet are shown in Table 72 below.
  • the client sends a data packet to the first control device connected to it
  • the client invokes the device driver installed on it through the corresponding API interface, and after constructing the data packet to be transmitted, it can send the first
  • the specific OUT endpoint of the control device (for example, endpoint 1 of the first control device), sends the OUT token + the generated data packet to the first control device.
  • the first control device checks the received data packet
  • the verification content includes but is not limited to: whether the preset string corresponding to the client and the server in the data packet conforms to the preset rules, for example, whether it is registered (that is, whether it is included in the preset configuration); Whether the endpoint (endpoint 1) conforms to the preset rules (such as whether it is the endpoint bound by the second preset string corresponding to the client, whether it is an allowed endpoint); whether the transaction attributes in the data packet conform to the preset rules, such as transmission Whether the transaction attribute identifier 0x36 0xe1 0x31 0xf2 of the transaction has been registered (whether the transaction attribute identifier is included in the preset configuration), whether the first 3 bytes of the data stream are GETs limited by transaction attributes, and so on.
  • log storage is performed on relevant identifications such as transaction attribute identifications, data flow information, and data flow.
  • relevant identifications such as transaction attribute identifications, data flow information, and data flow.
  • the log storage area of the first control device is only allowed to be written by the control device itself.
  • the log data is in a read-only state, ensuring that the log data will not be deleted or tampered with.
  • the first control device sends network data to the second control device
  • the first control device After the first control device passes the verification of the received data packet, according to the first preset character string corresponding to the server obtained from the data packet, the determined target address information (address information corresponding to the server), according to the preset Network configuration (such as network configuration using TCP/IP protocol), sending the data packet to the second control device.
  • the preset Network configuration such as network configuration using TCP/IP protocol
  • the second control device receives the network data sent by the second control device, and performs decoding verification.
  • the verification content includes but is not limited to: whether the preset string corresponding to the client and the server in the received data packet conforms to the preset rules, for example, whether it has been registered (that is, whether it is included in the preset configuration); Whether the network address (such as domain name, IP or port) of the data packet conforms to the preset rules of the first preset character (such as whether it is the endpoint bound by the second preset character string corresponding to the client, whether it is an allowed endpoint); Whether the transaction attribute of the transmission transaction in the data packet conforms to the preset rules, for example, whether the transaction attribute identifier 0x36 0xe1 0x31 0xf2 of the transmission transaction has been registered (whether the transaction attribute identifier is included in the preset configuration), whether the first 3 bytes of the data stream GET qualified for transaction attributes, etc.
  • log storage is performed on relevant identifiers such as transaction attribute identification, data flow information, and data flow.
  • relevant identifiers such as transaction attribute identification, data flow information, and data flow.
  • the log storage area of the control device is only allowed to be written by the control device itself.
  • the log data is read-only to ensure that the log data will not be deleted or tampered with.
  • the second control device After the second control device passes the verification of the received data packet, it caches the data packet locally and waits for the connected server to request the data packet
  • Operation of the server read data through the corresponding API interface.
  • the server After the server receives the data packet, it verifies according to the preset configuration.
  • the main verification content includes but is not limited to: whether the transaction attributes of the transmission transaction in the data packet conform to the preset rules, for example, the transaction attribute identifier is 0x36 0xe1 0x31 0xf2 Whether it is registered, whether the first 3 bytes of the data stream are GETs limited by transaction attributes, and so on.
  • analyze the operation content of the data stream "GET test.jpg" to feed back the corresponding data in response to the client's request, that is, enter the process of Example 2 given below.
  • Example 2 Reply data: the server replies data to the client through the second control device, specifically, to reply test.jpg file data
  • the server needs to send "test.jpg file data" to the client.
  • the corresponding transfer transaction can be the preset "upload jpg file” transfer transaction.
  • the transaction attribute information of the transfer transaction includes the following table 73 Content:
  • the transaction attribute name is the attribute name string displayed in the transfer transaction, such as "upload jpg file”.
  • Annotation information the string of the transaction attribute comment of the transfer transaction. Labeled "upload file in jpg format”.
  • the associated preset character string is a second preset character string corresponding to the client associated with the transfer transaction.
  • the transaction is based on the specific operation under the service.
  • the second preset character string corresponding to the client or service ID, Communication ID
  • the second preset character string corresponding to the client can be: 0x47 0xec 0x47 0xf4.
  • the transaction attribute identifier is the unique identifier (such as ID value) of the transaction attribute information of the transmission transaction, which is generally a random character string, eg.
  • the transaction attribute identifier generated for the transfer transaction attribute of the "upload jpg file" transfer transaction is: 0x36 0xe1 0x31 0xf1;
  • the transaction attribute use role is the corresponding end role that uses the transaction attribute role.
  • a server or a client, or a more specific role of the client may be, for example, an ordinary member or a senior member of the client.
  • the above 0x00 represents the use of the server role.
  • the transaction attribute type is the basic operation type of the transfer transaction.
  • control transmission transactions are generally related to the operation of application systems, such as initiating network tests and heartbeat packets; download transmission transactions, such as reading network data resources; upload transmission transactions, such as sending network data; data flow types, such as Ordinary data stream or file data stream.
  • the above 0x00 represents uploading and transmitting data, and the data stream is a file data stream.
  • Packet encoding (a dictionary), which are divided into categories 1, 2, and 3, are used to configure data transmission operations in different scenarios, etc. No classification for now, all are 0x00.
  • the verification information (such as regular expression, data or file header format) of the specific data packet transmitted is used to verify whether the data format or part of the data content of the specific data packet meets the requirements of the transmission transaction. For example, when the transfer transaction is to send a file and the file header is in jpg format (picture), it is judged whether the first 4 bytes of the file content data are 0xFF 0xD8 0xFF 0xE0 to prevent non-jpg format files (such as exe executable files) impersonate. When it is set to 0xFF 0xD8 0xFF 0xE0, it is judged that the data of the file header is 0xFF 0xD8 0xFF 0xE0.
  • jpg format picture
  • the file stream transmission transaction can be a specific file type (limited to JPG format), such as the above example; it can also be a general type, not limited to a specific file type; Perform preset restrictions, such as restricting files whose file type is exe from being uploaded or downloaded.
  • the synchronous preset configuration (preset configuration information) in the second control device and server includes the transaction attribute information of the above-mentioned "upload jpg file" transmission transaction.
  • the server For the data to be transmitted to the client (upload test.jpg file data), construct the data package to be transmitted. Specifically, for example, taking the Jpg picture requested by the client in the above example 1 as an example, the server reads the adapted jpg picture data according to the request of the client, and the device driver of the second control device installed on it through the corresponding API interface , obtain the corresponding transaction attribute information of the "upload jpg file” transmission transaction shown above, and use the transaction attribute information of the "upload jpg file” transmission transaction to generate a corresponding data packet to be transmitted that meets the requirements of the preset structural rules .
  • the read jpg image data is 1024 bytes. Since the data is relatively large, the read jpg image data needs to be divided into blocks. When the size of each block is set to 512 bytes, the read The jpg image data is divided into two blocks for transmission. For the two split data blocks, use the transaction attribute information of the above-mentioned "upload jpg file" transmission transaction to generate corresponding data packets to be transmitted that meet the requirements of the preset structural rules.
  • the two data packets generated are shown in Table 74 and Table 75 below
  • the first data packet to be transmitted generated by Table 74 (marked as data packet 1)
  • the second data packet to be transmitted generated by Table 75 (denoted as data packet 2)
  • the server sends a data packet to the second control device connected to it
  • the server invokes the device driver installed on it through the corresponding API interface, and after constructing the data packet to be transmitted, it can send to the second
  • the specific OUT endpoint of the control device (such as the endpoint 1' of the second control device) sends the OUT token+generated data packet to the second control device.
  • the second control device checks the received data packets
  • the verification content includes but is not limited to: whether the preset string corresponding to the client and the server in the data packet conforms to the preset rules, for example, whether it is registered (that is, whether it is included in the preset configuration); Whether the endpoint (endpoint 1) conforms to the preset rules (such as whether it is the endpoint bound to the first preset string corresponding to the server, whether it is an allowed endpoint); whether the transaction attributes in the data packet conform to the preset rules, for example, Whether the transaction attribute identifier 0x36 0xe1 0x31 0xf1 of the transfer transaction has been registered (whether the transaction attribute identifier is included in the default configuration), whether the transferred file is in jpg format, whether the header of the jpg file is 0xFF 0xD8 0xFF 0xE0 limited by the transaction attribute, etc. wait.
  • logs data such as transaction attribute identification and other related identifiers and file stream headers (file name, file type, etc.) are stored in logs.
  • the log storage area of the second control device only allows the second control device itself to write.
  • the log data is read-only, ensuring that the log data will not be deleted or tampered with.
  • the second control device sends network data to the first control device
  • the second control device After the second control device passes the verification of the received data packet, according to the second preset character string corresponding to the client obtained from the data packet, the determined target address information (address information corresponding to the client), according to the preset Network configuration (such as network configuration using TCP/IP protocol), sending the data packet to the first control device.
  • the preset Network configuration such as network configuration using TCP/IP protocol
  • the first control device receives the network data sent by the second control device, and performs decoding and verification.
  • the verification content includes but is not limited to: whether the preset string corresponding to the client and the server in the received data packet conforms to the preset rules, for example, whether it has been registered (that is, whether it is included in the preset configuration); Whether the network address (such as domain name, IP or port) of the data packet conforms to the preset rule of the second preset character (such as whether it is the endpoint bound by the second preset character string corresponding to the client, whether it is an allowed port); Whether the transaction attribute in the data packet conforms to the preset rules, for example, whether the transaction attribute identifier 0x36 0xe1 0x31 0xf1 of the transmission transaction has been registered (whether the transaction attribute identifier is included in the preset configuration), whether the transmitted file is in jpg format, whether the jpg format Whether the file header is 0xFF 0xD8 0xFF 0xE0 defined by the transaction attribute, etc.
  • logs data such as transaction attribute identification and other related identifiers and file stream headers (file name, file type, etc.) are stored in logs.
  • the log storage area of the first control device is only allowed to be written by the first control device itself.
  • the log data is in a read-only state, ensuring that the log data will not be deleted or tampered with.
  • the first control device After the first control device passes the verification of the received data packet, it caches the data packet locally and waits for the connected client to request the data packet
  • Client operation read data through the corresponding API interface.
  • the client After the client receives the data packet, it performs verification according to the preset configuration.
  • the main content of the verification includes but is not limited to: whether the transaction attribute of the transmission transaction in the data packet conforms to the preset rules, for example, the transaction attribute identifier is 0x36 0xe1 0x31 0xf1 Whether it has been registered, whether the transferred file is in jpg format, whether the header of the jpg file is 0xFF 0xD8 0xFF 0xE0 defined by transaction attributes, etc.
  • the verification After the verification is passed, save the data test.jpg obtained from the data package, and the file name and file type can also be set by yourself.
  • FIG. 15a to FIG. 15c to briefly show the schematic diagram of the data transmission scheme provided by the present application in conjunction with the control device.
  • the data exchange requirements of the data end can generally be divided into the following two categories: sending data (uplink data) and receiving data (downlink data). in,
  • the specific implementation of sending data includes the following process:
  • the data terminal sends data to the OUT endpoint of the connected control device (such as OUT token + data packet (containing a preset string + specific data to be transmitted));

Abstract

本申请实施例提供一种数据传输方法、系统、第一端、中间网络设备及控制设备。其中,一数据传输方法,其适用于第一端上第一应用内的第一控制模块,所述方法包括:确定所述应用的第一数据流对应第一传输事务的第一事务信息;在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求。本申请实施例提供的技术方案,能够以较低成本,实现对传输数据内容的安全性管理。

Description

数据传输方法、系统、第一端、中间网络设备及控制设备 技术领域
本申请涉及计算机领域,尤其涉及一种数据传输方法、系统、第一端、中间网络设备及控制设备。
背景技术
随着通信技术的发展,通过网络传输数据信息已成为人们进行信息交流的重要方式。目前,网络中如客户端和服务端等不同端间的数据传输多采用TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议(也叫网络通信协议))来实现,但由于TCP/IP协议在设计时缺乏传输安全的考虑,为此存在无法对传输的数据内容进行安全性管理;且因其是开放的、双向的,还存在网络中的设备容易遭到恶意攻击、数据易泄露的问题。
申请内容
鉴于上述问题,本申请实施例提供一种能至少部分改善或解决现有问题的数据传输方法、系统、第一端、中间网络设备及控制设备。
在本申请的一个实施例中,提供了一种数据传输方法,该方法适于第一端上第一应用内的第一控制模块,所述方法包括:
确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;
在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
在本申请的另一个实施例中,还提供了一种数据传输方法,该方法适于第一端上第一应用外部的第二控制模块;所述方法包括:
响应于所述第一应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;
基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
在本申请的又一个实施例中,还提供了一种数据传输方法,该方法适于中间网络设备上的第四控制模块,所述方法包括:
响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;
基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
在本申请的又一个实施例中,还提供了一种数据传输方法,该方法适于所述第一端连接的控制设备,所述方法包括:
响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置字符串;其中,所述第一预置字符串用于隐藏所述第二端的地址信息;
根据所述第一预置字符串,获取所述第二端的地址信息;
根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
在本申请的一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,其上第一应用内设有第一控制模块,所述第一控制模块用于确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求;
第二端,其上设有第三控制模块,所述第三控制模块用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取并缓存第一数据。
在本申请的另一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,其上第一应用外部设有第二控制模块,所述第二控制模块用于响应于所述第一应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
所述第二端,其上设有第三控制模块,所述第三控制模块用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取第一数据。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于向中间网络设备发送需向第二端传输的第一数据块;
中间网络设备,其上设有第四控制模块,用于接收所述第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
所述第二端,其上设有第三控制模块,用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取第一数据。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于确定第一数据流对应第一传输事务的第一事务信息;在需向所述第二 端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否要求;
第二端,用于对接收到的所述第一报文包含的目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,从所述第一报文中获取并缓存所述第一数据块。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于在需向所述第二端传输所述第一数据流的第一数据块时,将所述第一数据块发送至第一控制设备;
第一控制设备,用于确定所述第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为接收到的所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否要求
第二端,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,从所述第一报文中获得并缓存所述第一数据块。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于在需向所述第二端传输所述第一数据流的第一数据块时,将所述第一数据块发送至第一控制设备;
第一控制设备,与所述第一端通信连接,用于确定所述第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为接收到的所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二控制设备;其中,所述第一目标头信息用于校验所述第一报文是否要求;
第二控制设备,与所述第一控制设备及所述第二端通信连接,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,将所述第一报文缓存于本地,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第二端;
第一端,用于将需向所述第二端传输的第一数据块发送至第一控制设备;
第一控制设备,用于响应于所述第一端发送的所述第一数据块,获取所述第二端对应的第一预置字符串;其中,所述第一预置字符串用于隐藏所述第二端的地址信息;根据所述第一预置字符串,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
目标设备;
第一端,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置字符串;基于所述第一预置字符串及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置字符串用于隐藏目标设备的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置字符串,确定所述目标设备的地址信息;根据所述目标设备的地址信息,将所述第一报文发送至所述目标设备;
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置字符串;基于所述第一预置字符串及所述第一数据块,生成待发送的所述第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置字符串用于隐藏第二端的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置字符串,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备,用于缓存接收到的所述第一报文,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
在本申请的又一个实施例中,还提供了一种数据传输系统,该系统包括:
第一端,用于在需向第二端传输第一数据块时,获取第二端对应的第一预置字符串及所述第一端对应的第二预置字符串;将所述第一预置字符串、所述第二预置字符串及所述第一数据块发送至第一控制设备;其中,预置字符串用于隐藏相应端的地址信息;
第一控制设备,用于确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;并根据所述第一预置字符串获取到的第二端的地址信息,将所述第一报文发送至所述第二端。
第二端,用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据。
在本申请的一个实施例中,还提供了一种第一端,该第一端包括:
安装在所述第一端上的第一应用;
第一控制模块,位于所述第一应用内,用于实现上述本申请第一个实施例提供的所述数据传输方法。
在本申请的另一个实施例中,还提供了一种第一端,该第一端包括:
安装在所述第一端上的第一应用;
第二控制模块,位于所述第一应用的外部,用于实现上述本申请第二个实施例提供的所述数据传输方法。
在本申请的一个实施例中,还提供了一种中间网络设备,该中间网络设备包括:四控制模块及存储器,其中,
所述存储器,用于存储一条或多条计算机程序;
所述第四控制模块,用于执行所述一条或多条计算机程序,以用于实现上述上述本申请第三个实施例提供的数据传输方法。
在本申请的一个实施例中,还提供了一种控制设备,该控制设备包括:处理器及存储器,其中,
所述存储器,用于存储一条或多条计算机指令;
所述处理器,与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于实现上述上述本申请第四个实施例提供的所述数据传输方法。
本申请实施例提供的一种技术方案中,第一端需向第二端传输应用的第一数据流中的第一数据块时,是基于确定出的第一数据流对应第一传输事务的第一事务信息,为第一数据块确定相应的第一目标头信息;进而根据第一数据块及目标头信息来生成相应待发送的第一报文,将第一报文发送至第二端的。上述中,第一目标头信息用于校验报文是否符合要求,这使得本方案能够以较低成本,实现对传输数据内容的安全性管理。
本申请实施例提供的另一种技术方案中,与第一端连接的控制模块通过响应于第一端发送的需向第二端传输的第一数据块,获取到第二端对应的第一预置字符串(用于隐藏第二端的地址信息)后,可根据第一预置字符串来获取第二端的地址信息,并根据第二端的地址信息,将第一数据块发送至第二端。本方案利用预置字符串来隐藏相应端的地址信息,使得数据发起端无法获知目标端的地址,能保护目标端的地址信息;且既使发起端被恶意控制后,也无法对网络上的其他设备进行扫描、探测等,可有效避免恶意攻击。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要利用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种现存的不同端间数据传输的原理性示意图;
图2a为本申请一实施例提供的传输事务的原理性示意图;
图2b为本申请一实施例提供的与图2a相应的传输方式原理性示意图;
图3a至图5e示出了本申请实施例提供的数据传输系统的结构示意图;
图6a为本申请实施例提供的在第一端和第二端上分别部署的相应控制设备的设备驱动及API接口的示例;
图6b为本申请实施例提供的一个控制设备可与另外其他的多个控制设备连接的示例;
图7a至图7c为本申请实施例提供的控制设备的具体形态示意图;
图8a为本申请实施例提供的预置的传输事务属性信息集合示例;
图8b为本申请实施例提供的示传输事务属性信息中事务属性类型字段的字段值的高八位配置原理流程示意图;
图9为本申请实施例提供的配置文件包含的配置信息示意图;
图10为本申请实施例提供的控制设备与相应端建立通信连接的原理性示意图;
图11a至图13为本申请实施例提供的数据传输方法的流程示意图;
图14为本申请另一实施例提供的数据传输系统的结构示意图;
图15a至图15c为本申请实施例提供的数据传输交换原理性示意图;
图16为本申请一实施例提供的基于传输事务属性信息实现对需传输的数据进行传输(可称为数据结构化传输)的原理性示意图;
图17为本申请一实施例提供的数据结构化传输的应用示例;
图18a为本申请一实施例提供的控制设备的结构示意图;
图18b为本申请一实施例提供的与控制设备连接的数据端的结构示意图;
图19为本申请一实施例提供的数据传输装置的结构示意图;
图20为本申请另一实施例提供的数据传输装置的结构示意图;
图21为本申请另一实施例提供的控制设备的结构示意图。
具体实施方式
目前,不同端间在通过网络传输数据信息时,多是采用TCP/IP协议并借助于部署在不同端间的网络设备(如交换机、路由器)来实现。例如,参见图1,第一端与第二端间采用TCP/IP协议进行传输数据的过程如下:以第一端为客户端、第二端为服务端、客户端请求服务端上的数据资源为例,客户端输入部署在服务端的网站的域名www.####.com,并针对域名www.####.com向DNS(Domain Name System,域名解析服务器)(图中未示出)发送一个请求,DNS将域名www.####.com解析成服务端的IP地址(为目标IP地址)反馈给客户端;客户端根据自身的IP地址(为源IP地址)、目标IP地址及请求参数(即为具体待传输的一数据块)生成一个请求报文,由于该请求报文需要发送给服务端所处的另一个子网(为目标子网)中以发送至服务端,所以请求报文常会先发送至交换机,交换机再将自身的MAC(Medium/Media Access Control)地址和相应网关的MAC地址写入请求数据包,并写入完成后,进一步地会根据网关的MAC地址将请求报文发送至网关(为一种特殊的路由器),然后通过路由算法,经过路由器的不断转发最终将请求报文发送到目标子网,达到服务端。由上示例可见,现有不同端之间直接采用TCP协议进行数据传输,仅是简单地根据数据传输所需用到的如源IP地址、目标IP地址等一些通用信息,来结合待传输的数据,生成相应的报文以实现数据传输,并未考虑数据传输安全性问题,其中,报文中包含的具体内容可参见图1中示出的报文A包含的具体内容。综上,从网络通信协议角度来看,上述所述的不同端之间直接采用TCP/IP协议进行传输数据的方案,因TCP/IP协议在设计时缺乏安全性问题的考虑,导致会存在以下几个问题:
1、无法对传输的数据内容进行安全管理
TCP/IP协议是用于在多个不同网络间实现数据信息传输的协议族,其往往只负责数据的传输,并不负责数据传输的结果,也无法识别传输数据的内容或者类型,这致使了恶意应用可以发起网络攻击流量,数据安全无法保证。例如,继续参见图1,采用TCP/IP协议的的客户端和服务端是直接进行通信连接,若客户端和服务端中的一个端发送了恶意的指令数据,另一个端则也会自动接收并执行(或处理)该指令数据。
2、无法阻挡恶意攻击、网络服务难以管理
由于TCP/IP协议是开放的,同一个网络内的不同设备是能相互访问的,这导致了恶意攻击端(黑客端)可通过控制网络内的一台设备,将其控制的设备作为跳板机,发起对网络内其他设备的扫描、攻击等恶意行为。此外,只要网络内的一设备开启了网络服务端口,就可以被网络内其他设备访问,这导致了网络服务难以管理。例如,继续参见图1,若服务端开启了网络服务端口,服务端就能被客户端访问,进而可能会存在私自搭建FTP(File Transfer 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
Figure PCTCN2022136012-appb-000001
上述表1中,传输事务属性信息中事务属性名称、事务标注及校验信息等字段的字段值类型均为String(代表字符串,为数据长度不确定的字符或字符串,长度根据实际需要进行变化)类型,事务关联的预置字符串及事务属性标识等字段的字段值类型为32位二进制数,事务使用角色、事务属性类型信息及校验信息等字段的字段值类型为16位二进制数。具体地,
事务属性名称字段,用于指示传输事务的事务属性名称。例如,参见图2a,第一端10需向第二端20请求网络文件资源,针对该“请求网络文件资源”传输事务,可将事务属性名称字段的字段值配置为“请求网络文件资源”;再例如,第一端10需向第二端上传如jpg文件,针对该“上传jpg文件”传输事务,可将事务属性名称字段的字段值配置为“上传jpg文件”,等等。在执行一数据块传输时,可以对该数据块所属的传输事务的事务属性名称进行显示,以便用户通过显示出的事务属性名称可以清晰的了解当前所进行的数据传输。
需补充说明的是,为传输事务配置事务属性名称时,可基于传输事务种类来进行配置,以使事务属性名称可透传出相应传输事务的事务种类。当然也可以采用其他方式进行配置,本实施例对此并不作限定。
事务标注字段,用于指示传输事务的备注信息(或说标注信息,也即下文其他实施例中涉及的第一标注信息)。例如,承接上述针对事务属性名称字段的举例,针对“请求网络资源”传输事务,可将事务标注字段的字段值配置为“第一端请求”;针对“上传jpg文件”传输事务,可将事务标注字段的字段值配置为“第二端响应”,等等。
事务关联的预置字符串(也叫通信标识符)字段,用于指示传输事务关联的预置字段串。在一些实施例中,预置字符串为相应端的地址信息对应的字符串(如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 0x00 0x00 0x01”,则在服务端启动“返回发送状态”传输事务以向客户端返回相应的发送状态数据时,基于“返回发送状态”传输事务的传输事务属性信息中的事务属性类型信息,会先确定出需为发送状态数据添加的数据头为扩展的数据头格式,进一步地,按照扩展的数据头格式唯一标识“0x01 0x00 0x00 0x01”,可从预置的多个数据格式头中调用出相应扩展的数据头格式模板,并基于发送状态数据的数据信息配置调用出的数据头格式模板包含的多个字段的字段值,以实现为发送状态数据添加数据头。扩展的数据头格式唯一标识的数据类型可以根据实际需要进行变化,以上为4字节,还可以为单字节、双字节、8字节等等。
综上,上述事务属性类型字段指示的传输事务的事务属性类型信息可包含但不限于如下中至少一项内容:数据传输方向、数据类型、数据头使用信息。
以下表2a至表2d分别示出了上述所述的普通数据头、文件数据头、邮件数据头及数据库操作数据头等这几种数据头的具体数据头格式,以及表2e示出了一扩展的数据头的具体数据头格式。
表2a普通数据头的数据头格式
数据头包含的字段: 字段值类型:
数据头长度 32
标注信息 String
其中,上述数据头长度字段,用于指示数据头的字节长度(为32位+标注信息的字节数)。标注信息字段,用于指示如服务端、客户端等各端或下文其他实施例中所述的控制设备进行识别、判断的标记,或者用于阅读的字符串,比如,创建时间、修改时间、更新时间、数据完整性校验值(hash值)等等。
表2b文件数据头的数据头格式
数据头包含的字段: 字段值类型:
文件头长度 32
文件大小 32
发送人信息 32
发送时间 32
文件属性 16
扩展名 16
文件名长度 16
文件名 String
标注信息长度 16
标注信息 String
其中,上述文件头长度字段,用于指示文件头的总字节长度,可用于划分文件头与文件数据。文件大小字段,用于指示文件数据的总字节长度。发送人信息字段,用于指示发送文件的发送人的信息,如用户ID、用户昵称等。发送时间字段,用于指示发送文件的时间戳。文件属性字段,用于指示文件的属性。扩展名字段,用于指示文件类型,如扩展名字段的字段值可为文件后缀。文件名字段,用于指示文件的名称(如test)。文件名长度字段,用于指示文件名的字节长度(也即字节数,例如test为4字节,可以兼容长文件名)。标注信息字段,用于指示如客户端、服务端等各端或或下文其他实施例中所述的控制设备进行识别、判断的标记(即标注(备注)信息);或者用于阅读的字符串,比如,创建时间、修改时间、更新时间等等。标注信息长度字段,用于记录标注信息的字节数。
表2c邮件文件数据头的数据头格式
数据头包含的字段: 字段值类型:
文件头长度 32
主题 String
发送人地址 String
接收人地址 String
发送时间 32
附件文件类型 String
标注信息 String
其中,文件头长度字段,用于指示邮件文件头的总长度。主题字段,用于指示邮件的主题。发送人地址字段,用于指示发送人的地址,如为发送人的邮箱地址。接收人地址字段,用于指示接收人的地址,如接收人的邮箱地址。发送时间字段,用于指示发送 邮件的时间戳。附件文件类型字段,用于指示邮件中携带的附加文件的类型,如为压缩包。有关标注信息字段,可参见上述针对表2a或表2b进行介绍时所述的相关内容。
表2d数据库操作数据头的数据头格式
数据头包含的字段: 字段值类型:
文件头长度 32
操作类型 16
操作数据库地址标识符 String
操作数据库标识符 String
操作表标识符 String
操作影响 String
标注信息 String
其中,操作类型字段,用于指示针对数据库进行的操作,如删除、增加、修改、查询等操作。操作数据库地址标识符字段,用于指示数据库的地址,如数据库对应的IP地址。操作数据库标识字段,用于指示操作的数据库的名称。操作表标识符字段,用于指示操作的数据库中数据表的名称。操作影响字段,用于指示操作影响的数据表中的字段,如若对应的字段值为*,可表示影响数据表中的所有字段。有关文件头长度字段、标注信息字段,可参见上述针对表2a或表2b进行介绍时所述的相关内容。
表2e即时通讯消息内容特征数据头的数据头格式
数据头包含的字段: 字段值类型:
文件头长度 32
消息类型 16
消息关键词 String
上述表2e中,消息类型字段,可用于指示消息的重要性。比如,若消息类型字段对应的字段值为0x01,表示为普通消息;若消息类型字段对应的字段值为0x02,表示为重要消息。消息关键词字段,用于指示消息中命中预设的关键词或分词等。有关文件头长度字段,可参见上述针对表2a或表2b进行介绍时所述的相关内容。
继续参见表1,表1中的分组编码(为一种字典)字段,具体可分为一类编码字段、二类编码字段及三类编码字段,是用于指示不同场景下的数据传输操作。当一类编码字段、二类编码字段及三类编码字段各自的字段值均为相同的设定值(如均为“0x00 0x00”)时,表示暂不进行分类。这里设置分组编码字段对应要实现的分组功能类似于社交软件中的好友分组功能,以便于在需要管理的传输事务较多(比如,但客户端这一上层应用为一个复杂的系统或者多个复杂的系统,便可能会出现较多需要管理的传输事务)的情况下,可对传输事务进行分组进行区分。在利用上述一类编码字段、二类编码字段及三类编码字段对传输事务进行分组划分时,可采用类似于省、市、县的有上至下的划分方式,一类编码字段用于指示一级分类、二类编码字段用于指示基于一级分类下的二级分 类,三类编码字段用于指示基于二级分类下的三级分类,这样便于管理传输事务。例如,一类编码字段的字段值可为某一公司的公司代码A,二类编码字段的字段值可为该公司开发的上层应用a1以及上层应用a2,基于上层应用a1的三类编码字段的字段值可为具体操作的动作(如HTTP请求、即时通讯发送数据、接收数据、上传数据等等),以此便于维护人员对传输事务进行查看、编辑和授权等各种管理,同时也便于预设相应的控制设备对某个编码字段的字段值进行允许\禁止传输,实现直接作用于该编码字段的字段值关联的传输事务。上述是从隶属关联的角度来介绍一类编码字段、二类编码字段及三类编码字段的,当然,也可以从其他角度对一类编码字段、二类编码字段及三类编码字段进行划分,比如,可以按协议类型、应用类型、传输方向、客户端或服务端等数据端的重要程度、数据重要程度等进行划分,本实施例对此不作限定。
校验信息字段,指示用于校验数据的校验信息,校验信息可以为但不限于校验码,校验码可用于校验具体传输的数据是否符合相应传输事务的要求(如校验数据格式或数据内容等是否符合要求)。例如,参见图3a,继续承接上述针对事务属性名称列举的示例,针对“请求网络文件资源”传输事务,可将数据校验码字段的字段值配置为但不限于GET(或GETFIL);针对“上传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传输第一数据流的第一数据块时,本实施例会基于第一数据流对应第一传输事务的事务信息,为第一数据块确定相应需添加的第一目标头信息,比如符合预设报文头格式的报文头,进而对第一目标头信息及第一数据块进行整合,以此生成符合预设数据结构规则的结构化第一数据块(即下文所述的报文)。基于此,一具体可实现方案中,上述第一端20,在用于基于所述第一数据流对应第一传输事务的事务信息,为所述第一数据块确定相应的第一目标头信息时,可具体用于:
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至数据块3各自对应的结构化数据块,虽第3个发送的数据块2对应的结构化数据块2具有全量化结构头,但由于网络原因(如网络阻塞、网络抖动),使得接收方实际接收到的结构化数据块顺序与发送方发送的顺序不同,比如接收方实际接收到的结构化数据块的先后顺序为:数据块2对应的结构化数据块2,、数据块1对应的结构化数据块1、数据块0对应的结构化数据0,这种情况下,接收方第一次接收到结构后数据块(即结构化数据块2)便可进行如校验等处理,无需等待。有上可见,上述第二方式实际上可理解为第三方式的实际应用扩展,用于提高可靠性和解决阻塞等的问题。
需补充说明的是,图2b中示出的“当前块号”为可选项,在对数据流的多个数据块进行可靠传输和顺序传输的情况下,也可不使用块号;其中,可靠传输是指采用一系列技术来保证信息(数据块)在发送方和接收方准确、精确的传输。
上述S21中,第一数据块的相关信息,可包括但不限于:第一数据块所属的第一数据流、第一数据流的流信息(如流类型、流大小等)、第一数据块的大小、第一数据块在第一数据流中的排列顺序等。预设报文头格式如下表3示出的报文头格式:
表3预设报文头格式
报文头包含的报头字段: 字段值类型:
发送方对应的第二预置字符串 32
接收方对应的第一预置字符串 32
事务属性标识 32
事务标识(为传输事务的唯一标识) 32
报文大小 16
块总数 16
当前块号 16
标注信息(可记为第二标注信息) 16
其中,上述发送方对应的第二预置字符串字段,为可选的,用于指示发送方对应的第二预置字符串,其可为展示发送方的详细地址信息对应的字符串(如私网IP地址、或MAC地址、或主机名称对应的字符串),用于控制设备、网络中间设备进行监测、审计或拦截;或者其能用于隐藏发送方的地址信息。接收方对应的第一预置字符串字段,为可选的,用于指示接收方对应的第一预置字符串,其可为标注接收方的详细地址信息对应的字符串,或者其能用于隐藏接收方的地址信息。在本实施例中,由于是第一端10需向第二端10发送数据,故第一端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
Figure PCTCN2022136012-appb-000002
Figure PCTCN2022136012-appb-000003
需说明的是:上述报文A1的报文结构格式除了包括上述表4示出的内容外,还可包括如图3a中示出的TCP/IP报文头、TCP/IP报文尾等,表4中未示出。
在上述S213的情况下,即如上述表3示出的预设报文头格式包含的所有报头字段(多个报头字段)中的部分报头字段(如事务标识字段),是为第一数据块确定的目标报头字段,则,上述S22“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括如下步骤:
S221’、基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述事务标识。
具体实施时,上述第一数据块确定的目标报头字段除了可包括预设报文格式中的事务标识字段外,还可包括其他报头字段,如当前块号字段,此情况下,可以根据第一传输事务的事务标识及第一数据块的相关信息(具体第一数据块的块号),来配置目标报头字段的字段值,相应得到的为第一数据块确定的第二报文头包含第一传输事务的事务标识、第一数据块的块号。另外,在本实例情况下,可不执行为第一数据块添加数据头。
有上内容,此实例下,第一端10,通过对为第一数据块确定的第一目标头信息(报文头(包含事务标识、第一数据块的块号(可选)))及第一数据进行整合,生成的第一报文的报文格式可参见下表42。
表42
Figure PCTCN2022136012-appb-000004
第一端10生成待发送的第一报文后,可以根据第二端对应的第一预置字符串确定出 的第二端的地址信息,将第一报文发送至第二端20。第二端20接收到第一端发送过来的第一报文后,可基于本实施例所配置的第一端与第二端间的数据传输安全控制信息,对接收到的第一报文进行校验;校验时,具体是校验第一报文中包含的目标头信息(如报文头、数据头)是否符合预设要求,例如,第一报文的报文头的格式是否符合预设要求、报文头中的事务属性标识是否已注册等等,有关数据传输安全控制信息及根据数据传输安全控制信息校验报文的具体实现,将会在本申请提供的其他实施例中展开详述,此处不作赘述。第二端20经校验确定接收到的报文符合要求时,可执行从第一报文中获取并缓存第一数据块。
上述描述的方案,在如图3a示出的第一端10与第二端20采用TCP/IP协议直接进行通信这个场景下,主要是从对需传输的数据进行结构化角度来实现数据安全防护的,相对于现存的采用TCP/IP协议进行传输数据方案,实现了对传输数据内容的安全性管理。
为了第一端10能够实现上述所述的方案,以及进一步地可提高对传输数据内容的安全性管理,防止第一端10上第一应用可随意调用第一端上的网络接口,以任意地直接向第二端20发送数据,基于上述图3a示出的场景,可以采用如下两种技术方案来达到上述所述的进一步想要达到的效果:
一具体可实现技术方案为:在第一端20上安装“控制软件”(其功能类似于下文所述的第二种方案中的控制设备的功能)。具体实施时,根据上文所述的预置字符串的两种情况,可以在第一端20上安装不同类型的“控制软件”。具体地,
情况11、预置字符串(如第二端对应的第一预置字符串、第一端10对应的第二预置字符串)不具有隐藏相应端的地址信息(如预置字符串为相应端的IP地址)
如参见图3b,在上述情况11下,可以在第一端10上应用内安装第一控制模块11,用于完成针对应用需向第二端20传输的数据生成相应待传输的第一报文并进行发送、以及对接收到的报文(如从第二端20发送过来的第二报文)进行识别、校验(审计)等各种控制功能。在上述第一控制模块11中,会事先预置有上文所述的多个传输事务属性信息(如图4a所示)、预设的报文头格式、预设的数据头格式等各种预置信息,第一端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(Wireless Fidelity,无线网络技术)模块、3G模块、4G模块、5G模块、蓝牙模块、LoRa(为一种基于扩频技术的远距离无线传输技术)模块等,图7a和图7b中未示出,可参见图7c中示出的无线模块32)、操作按钮33、天线34以及外设接口31。天线34用于如蓝牙、wifi、3G、4G、5G等无线通信的网络信号收发。外设接口31为有线传输的接口,用于使控制设备通过数据线与其它设备连接。有上,外设接口31也可称为有线接口。具体实施时,外设接口31可包括用于连接网络的网线接口311(也叫局域网接口,如以太网接口、光纤接口、双绞线接口等)、用于总线通信的总线接口312(如USB(Universal Serial Bus,通用串行总线)接口、SPI(Serial Peripheral Interface,串行外设接口)接口等)。有关上述所述的控制设备30包括的结构部件的具体作用,可参见下文相关内容。
在其他一些实施例中,控制设备还可以为能够集成于第一端10和/或第二端20内部的设备,此种情况下,控制设备的具体形态可以为类似于集成显卡的单一芯片形态,可集成于第一端10或第二端20的主板中;或者,控制设备的具体形态也可以是类似于独立显卡形态,能够集成于第一端10或第二端20的主机中,此处不作限定。具体实施时,如参见图7c所示,在控制设备的形态为芯片形态情况下,控制设备30可具体包括但不限于如下结构部件:无线模块32、板间接口313、天线34、外设接口31’。板间接口313可以为但不限于PCIE(peripheral component interconnect express)接口,PCIE接口是一种高速串行计算机扩展总线标准接口,在本实施例中,通过PCIE接口可将控制设备30与如第一端10的主板连接。外设接口31’可包括第一类型外设接口311’和第一类型外设接口312’。第一类型外设接口311’可以为USB复合设备接口,通过该接口能够将控制设备与如第一端的显示屏连接并进行控制操作,以通过如第一端的显示屏显示相应的一些内容(如显示询问信息、显示传输事务的名称等等),并进行操作。通过在控制设备进行独立的显示与操作,可以与计算机的驱动程序进行有效隔离,避免重要操 作在计算机上进行(计算机可能被恶意控制)。第二类型外设接口312’可为但不限于USB接口、网线接口等。有关无线模块32、天线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第二预置字符串的传输事务集合
Figure PCTCN2022136012-appb-000005
这里需要补充说明的是,为了便于相应传输事务属性信息的查询,上述表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等文件;或可执行脚本等。本实施例对配置文件的格式不作限定。配置文件的生成可由具有管理权限的用户借助于编辑软件(如配置文件编辑器)采用静态人工编辑的方式生成;或者,也可借助于相应的配置界面,通过点选等方式自动生成,此处不作限定。
参见上文所述的为第一端20预先创建的配置文件,同理,也可为第二端预先创建相应的配置文件。具体为第二端预先创建的相关配置文件可包含的内容,可参见上述为第一端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(Trivial File 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(Vendor Identification,供应商标识符),扫描第一控制设备;并在扫描到第一控制设备后,可以根据读取到的预先配置的连接校验信息(如密码凭证),与第一控制设备进行连接校验。校验通过后,与第一控制设备成功建立通信链路。
有关第一控制设备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)0,以通过中间网络设备将校验通过的第一报文发送至第二端20。一般情况下,由于第一控制设备31已完成了第一预置字符串与第二端20真实的地址信息的转换,在根据第二端的地址信息,使用TCP/IP协议对第一报文进行转发,以发送至第二端20时,转发的第一报文可以不携带预置字符串,但在本实施例中,是保持第一报文携带预置字符串的,目的在于可以使第二端20可对第一报文中包含的预置字符串等信息进行校验。或者在下文其他实施例中,比如其他实施例中描述的第一端10与第二端20之间具有第一控制设备31和第二控制设备32的情况(如图5e),第一控制设备31转发第一报文时继续使第一报文携带相应的预置字符串,可使第二控制设备32对第一报文包含的预置标识符等信息进行校验;或者在第二控制设备31连接有多个第二端20情况下,便于第二控制设备32根据相应预置字符串(第一预置字符串),获取相应的第二端20的地址信息;或者便于第二端20特定程序识别等。
这里需要补充说明的是,为更进一步保障数据传输安全,也可以使中间网络设备具有控制设备的功能,以再次对接收到的第一报文校验,并在校验通过后,将第一报文发送至第二端。或者,中间网络设备也可仅具有日志审计功能,可根据接收到的第一报文,生成所述第一传输事务的日志信息,并将所述第一报文发送至所述第二端。具体实施时,可通过在中间网络设备布设第四控制模块来实现上述所述的功能。有关第四控制模块的具体介绍以及上述所述的中间网络设备功能的具体实现,可参见上文相关内容。
进一步地,除了对第一报文进行校验之外,还可以从第一端对应的第二预置字符串关联的关联信息中获取相应的数据传输方向控制信息,以根据数据传输方向控制信息确定是否需要将第一报文转发给第二端20,或者是否需要将第二端20针对接收到第一报文反馈的数据转发给第一端10等等。例如,以第一数据流对应第一传输事务为“请求网络资源”传输事务为例,相应的,假设第一端对应的第二预置字符串关联的关联信息中包含的传输方向控制信息为“RX”(代表仅接收数据,换句话也就是说,禁止第一控制设备31向第二端20转发所接收到的第一端发送过的报文,可参见上文给出的示例12),这种情况下,第一端10虽接收到第一端10针对“请求网络资源”所发送的报文,但是,并不会执行将收到的报文下发给第二端20(也即不会将第一端10主动发送的请求参数下发参数给第二端10),而是从相应第二预置字符串关联的关联信息中获取相应的预设请求参数信息(包括请求方式及相关参数),并针对获取到的预设请求参数生成一个新的报文,并将新的报文下发给第二端20。有关上述新的报文生成的具体实现,可参见上述所描述的第一端10生成第一数据对应待发送的第一报文过程。基于上述例子,所述第一控制设备31在触发所述将所述第一报文发送至所述第二端20的操作之前,还可包括如下步骤:
S131、从所述第一端对应的第二预置字符串关联的关联信息中,获取数据传输方向控制信息;
S132、若数据传输方向控制信息指示禁止第一控制设备31将接收到的所述第一报文发送至所述第二端、且所述第一报文的报文类型为请求报文,则从所述关联信息中获取预设请求参数;并基于从第一报文中获取到的第一目标头信息及所述预设请求参数,生成一待发送的新报文,以基于所述新报文触发将所述第一报文发送至第二端20的操作。
有关数据传输方向控制信息的具有描述,可参见与上文所述的示例11至示例13相关内容。有上内容及结合上文所述的与示例11至示例13相关内容,采用本实施例提供的传输方向控制方式来实现比如数据的单向传输功能,相比于现存的采用单向传输设备实现单向传输功能具有如下益处:利用单向传输设备(如单向光闸、光码(二维码)等)实现单向传输功能,虽在物理上能够完全隔绝双向传输,但设备往往比较复杂,比如设备需要光模块、或者需要图片的显示或接收模块等,制造成本高,设备体积较大,适用范围具有局限性,而且,利用单向传输设备在物理上也无法实现根据不同的服务需求进行数据的单向发送、或者单向接收、或者双向传输等的灵活配置。而本实施例提供的方向,无需借助于任何外部设备,即可实现如数据的单向传输功能,构建简单、且控制设备制造成本也相对低,此外,控制设备还能够根据不同预置字符串所关联的传输方向控制信息,灵活调整不同预置字符串对应的通信方向(也即数据传输方向)。
进一步地,第一报文校验通过后,在第一报文包含的数据较为重要的情况下,第一控制设备31还可对第一报文进行备份,以防止第一端10误删相应数据或遭到遭到勒索病毒加密等。基于此,本实施例提供所述的系统中,上述第一控制设备31还可用于:
校验通过后,根据所述第一报文中包含的标注信息,判断所述第一报文是否满足所述数据传输安全控制信息中的数据备份条件;
若满足所述数据备份条件,则对所述第一报文进行备份。
例如,在第一报文的报文头和/或数据头中包含的标注信息,标注的是第一报文包含的数据为“重要”(如数据为财务报表.xls)时,第一控制设备可以对该第一报文进行备份。
第二可能实施例中,如参见图5c和图5d所示,在第一端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。有关中间网络设备可具有的功能,可参见上述第一可能实施例中描述的相关内容。
基于上文介绍的本申请一实施例提供的数据传输系统相关内容,本申请另外若干个实施例还提供的一种数据传输系统。具体地,
图3b示出了本申请另一实施例提供的数据传输系统的结构示意图。参见图3b所示,所述数据传输系统包括:第一端10及第二端20,其中,
第一端10,其上第一应用内设有第一控制模块11,所述第一控制模块11用于确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求;
第二端20,其上设有第三控制模块(图中未示出),所述第三控制模块用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取并缓存第一数据。
进一步地,本实施例提供的系统还可包括:中间网络设备,与所述第一端和所述第二端通信连接;
所述第一控制模块11,具体用于将所述第一报文发送至所述中间网络设备;
所述中间网络设备,用于根据接收到的所述第一报文,生成所述第一传输事务的日志信息;将所述第一报文发送至所述第二端。
图3c示出了本申请又一实施例提供的数据传输系统的结构示意图。参见图3c所示, 所述数据传输系统包括:第一端10及第二端20,其中,
第一端10,其上第一应用外部设有第二控制模块12,所述第二控制模块12用于响应于所述第一应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
所述第二端20,其上设有第三控制模块(图中未示出),所述第三控制模块用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取第一数据。
进一步地,本实施例提供的系统还可包括:中间网络设备,与所述第一端和所述第二端通信连接;
所述第二控制模块,具体用于将所述第一报文发送至所述中间网络设备;
所述中间网络设备,用于根据接收到的所述第一报文,生成所述第一传输事务的日志信息;将所述第一报文发送至所述第二端。
本申请又一实施例提供的数据传输系统的结构示意图,该数据传输系统的系统架构与图3a示出的架构类似。具体地,所述数据传输系统包括:第一端及第二端,其中,
第一端,用于向中间网络设备发送需向第二端传输的第一数据块;
中间网络设备,其上设有第四控制模块,用于接收所述第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
所述第二端,其上设有第三控制模块,用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取第一数据。
进一步地,上述第一端上第一应用内设有第一控制模块或所述第一应用外部设有第二控制模块;
所述第一控制模块或第二控制模块,用于将所述第一应用需向第一端传输的所述第一数据块、以及所述第一数据块所属的第一传输事务的事务属性信息发送至所述中间网络设备;
所述中间网络设备,在用于确定所述第一数据块所述的第一传输事务的第一事务信息时,具体用于:为所述第一传输事务生成相应的事务标识;基于接收到的所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
这里需要补充说明的是,上述各数据传输系统中各端/设备/模块等除了能够实现上述描述的功能之外,还可实现本申请其他各实施例中相关功能。有关上述各数据传输系统中各端/设备/模块等可实现的具体功能介绍,可参见上文相关内容。
图4a至4c示出了本申请又一实施例提供的数据传输系统的结构示意图。如参见图4a至4c所示,所述数据传输系统包括:第一端10、第一控制设备31及第二端20,其中,
第一端10,用于在需向所述第二端传输所述第一数据流的第一数据块时,将所述第一数据块发送至第一控制设备;
第一控制设备31,用于确定所述第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为接收到的所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否要求。
第二端20,用于对接收到的所述第一报文包含的目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,从所述第一报文中获得并缓存所述第一数据块。
有关上述第一端10、第一控制设备31及第二端20的具体介绍及各自功能的具体实现,可参见上文相关内容。
图5d和5e示出了本申请又一实施例提供的数据传输系统的结构示意图。如参见图5d至5e所示,该数据传输系统包括:第一端10、第一控制设备31、第二控制设备32及第二端20,其中,
第一端10,用于在需向所述第二端传输所述第一数据流的第一数据块时,将所述第一数据块发送至第一控制设备;
第一控制设备31,与所述第一端通信连接,用于确定所述第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为接收到的所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二控制设备;其中,所述第一目标头信息用于校验所述第一报文是否要求;
第二控制设备32,与所述第一控制设备及所述第二端通信连接,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,将所述第一报文缓存于本地,以等待所述第二端获取;
第二端20,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
有关上述第一端10、第一控制设备31、第二控制设备22及第二端20的具体介绍及各自功能的具体实现,可参见上文相关内容。
上文本申请各实施例提供的数据传输系统,主要是从“传输事务”角度来描述本申请提供的技术方案的。有上介绍的系统内容,本申请一些实施例还提供了相应的数据传输方法,具体地如下:
图11a示出了本申请一实施例提供的数据传输方法的流程示意图。该数据传输方法适于如图3b示出的第一端10,更具体地,适于第一端10上第一应用内的第一控制模块11。第一控制模块11内事先预置的预置信息包括上文所述的针对第一端10创建的配置文件,进一步地,还可包括针对第二端20创建的配置文件。以针对第一端创建的配置文件为例,配置文件中可包括但不限于如下中的至少一项配置数据:数据交换配置数据、数据传输安全控制信息等,其中,数据交换配置数据可包括但不限于:多个传输事务的传输事务属性信息;传输事务的事务种类、第一端对应的第二预置字符串及传输事务的事务属性标识三者之间的对应关系,其中,事务属性标识为相应传输事务的传输事务属性信息的唯一标识;报文头格式、多个数据头格式,等等。其中,在本实施例中,涉及的预置字符串为相应端的地址信息对应的字符串,例如,第一端对应的第二预置字符串为第二端的地址信息(如IP地址)对应的字符串,为便于描述,本实施例针对预置字符串直接采用相应端的地址信息进行描述。有关第一 控制模块11及在第一控制模块11内预置的预置信息的具体介绍,可参见上文相关内容,此处不再做赘述。如图11a所示,本实施例提供的数据传输方法包括以下步骤:
101、确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;
102、在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
103、根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
104、将所述第一报文发送至所述第二端
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
上述101中,如参见图3b,第一端10上的第一应用可指的是但不限于业务平台系统应用、浏览器应用、社交应用、视频应用、办公应用等。不同第一应用被使用过程中会产生不同类型的第一数据流,如以第一应用为浏览器应用(经安全访问控制改造的,其内具有第一控制模块),浏览器应用需要获取第二端上的资源,则相应地,浏览器应用的第一数据流可以为但不限于请求数据流(如请求网络资源数据流等)。为保证数据传输安全,避免第一应用直接随意调用第一端上的网络接口以进行数据的随意发送,第一应用需通过其内的第一控制模块11才能够实现第一端10上网络接口的调用,实现数据发送。换句话也就是说,第一应用的第一数据流需经由第一应用内的第一控制模块11进行处理才能够发送。具体实施时,针对第一应用的第一数据流,第一控制模块11可以确定第一数据流对应第一传输事务的第一事务信息,以基于第一事务信息,对需向第二端20传输的第一数据流中的第一数据块进行处理,实现第一数据块的传输。上述第一事务信息可包括第一传输事务的事务标识及传输事务属性信息,传输事务属性信息包括但不限于:事务属性名称、第一标注信息、第二端的地址信息、事务属性标识、事务属性类型信息;其中,事务属性类型信息包含如下中的至少一项:所述第一数据流的传输方向、所述第一数据流的数据类型、数据头使用信息。有关传输事务属性信息的具体介绍,可参见上文其它实施例中相关内容。
在一可能实现技术方案中,上述101“确定所述应用的第一数据流对应第一传输事务的第一事务信息”,可具体包括:
1010、为所述第一传输事务生成相应的事务标识;
1011、获取所述第一传输事务的传输事务属性信息。
上述1011“获取所述第一传输事务的传输事务属性信息”,可包括:
10111、确定所述第一传输事务的事务属性标识;
10112、基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
上述10111,可基于预置的传输事务的事务种类与事务属性标识的对应关系,来确定第一传输事务的事务属性标识。即,一具体可实现方案中,上述1011“确定所述第一传输事务的事务属性标识”,可具体采用如下步骤来实现:
101111、根据所述第一数据流的传输需求信息,确定第一传输事务所属的事务种类;
101112、基于事务种类与事务属性标识的第二对应关系,确定与所述第一传输事务所属的事务种类存在对应关系的事务属性标识。
有关上述101111~101112的具体实现描述,可参见上文其他实施例中的相关内容。
上述10112中,预置的多个传输事务属性信息,可参见如图4a示出的多个传输事务 的传输事务实现信息的集合示例。若基于第一数据流对应第一传输事务的事务属性标识,无法从预置的多个传输事务属性信息中查询到第一数据流对应第一传输事务的传输事务属性信息,这种情况下,则表明根据本实施例所配置的第一端与第二端间的数据传输安全控制信息,是不允许对第一数据流中的数据块进行传输的,数据传输失败,终止传输。
上述102中“基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息”的一种可能实现技术方案可包括如下步骤:
1021、获取所述第一数据流中数据块对应的头信息传输方式;
1022、根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
1023、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
有关上述1021中的头信息传输方式的介绍,可参见上文相关内容。
一可实现方案中,上述1022“根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段”,可具体包括:
10221、根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
10222、若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段。
10223、若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
在上述10222中所述的情况下,即所述多个报头字段为所述目标报头字段时,上述1023“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可包括:
10231、为所述第一传输事务确定第一端的地址信息;
10232、根据所述第一端的地址信息、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:第一端的地址信息、第二端的地址信息、所述第一传输事务的事务属性标识、所述第二传输事务的事务标识、第一数据流中数据块的总数量、第一数据块的块号、第一目标头信息与第一数据块的总大小、标注信息;
总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
一较为具体实现方案中,上述10231“为所述第一传输事务确定第一端的地址信息”,可具体采用如下步骤来实现:
102311、获取第一端的地址信息与事务种类的第一对应关系;
102311、基于所述第二对应关系,确定与所述传输事务所属的事务种类存在对应关系的第一端的地址信息。
有关上述102311~102311的具体实现描述,可参见上文其它实施例中相关内容。
进一步地,若第一数据块在所述第一数据流中排序第一或排序最后,则上述102中还可包括如下步骤:
1024、根据所述第一事务信息中所述第一传输事务的事务属性类型信息,确定是否需要为所述第一数据块添加数据头;
1025、确定需要时,根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头;其中,所述数据头与所述第一数据流适配、且符合预设数据头格式要求。
有关上述1024的具体实现描述,可参见上文其它实施例中相关内容。
上述1025中“根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头”的一具体可实现方案包括:
10251、基于所述事务属性类型信息中包含的数据头使用信息,从预设的多个数据头格式中选择一个适配的数据头格式;
10252、根据所述第一数据流的流信息,按照选择出的数据头格式生成所述数据头。
在上述10223中所述的情况下,即所述多个报头字段中的部分报头字段为所述目标报头字段时,上述1023“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可包括:
10231’、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
10232’、基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述事务标识。
上述104“将所述第一报文发送至所述第二端”的一种可实现技术方案可包括如下步骤:
1041、将所述第一报文发送至第二控制模块,由所述第二控制模块对所述第一报文包含的第一目标头信息进行校验,并在校验出所述第一报文符合要求时,将所述第一报文发送至第二端;
其中,所述第二控制模块为所述第一端上第一应用外部的模块(如图3d示出的第二控制模块12)。
有关上述1041中的第二控制模块的具体描述、以及上述1041的具体实现,可参见上文相关内容。
进一步地,本实施例提供的所述方案,还可包括:
105、接收所述第二端发送的第二报文;
其中,所述第二报文,是所述第二端上的第三控制模块根据所述第二端上第二应用的第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息用于校验所述第二报文是否符合要求;
所述第三控制模块位于所述第二应用内或所述第二应用的外部。
有关第三控制模块的具体介绍,可参见本申请其他实施例中相关内容。第二应用、第二报文生成,可分别参见对第一应用、第一报文生成的具体介绍。
这里需要补充说明的是:在上述第三控制模块位于第二应用内时,第二端上第二应用外 部还可设有第五控制模块;或者在上述第三控制模块位于第二应用外部时,第二端上第二应用内还可设有第五控制模块。有关在第三控制模块和第五控制模块共存的情况下,二者如何协作以对第二数据块进行处理,可参见上文本申请其他各实施例中对第一端上的第一控制模块和第二控制模块相互协作,对第一数据块进行处理的相关内容。
本实施例提供的技术方案,第一端需向第二端传输其上应用的第一数据流中的第一数据块时,是第一端上第一应用内的第一控制模块11基于确定出的第一数据流对应第一传输事务的第一事务信息,为第一数据块确定相应的第一目标头信息;进而根据第一数据块及第一目标头信息来生成相应待发送的第一报文,将第一报文发送至第二端的。上述中,第一目标头信息用于校验报文是否符合要求,这使得本方案能够以较低成本,实现对传输数据内容的安全性管理。
这里需要说明的是:本申请实施例提供的所述数据传输方法中各步骤未尽详述的内容可参见本申请提供的其它各实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
图11b示出了本申请另一实施例提供的数据传输方法的流程示意图。该数据传输方法适于如图3c示出的第一端10,更具体地,适于第一端10上第一应用外部的第二控制模块12。第二控制模块12内会事先预置的预置信息,该预置信息为实现本实施例提供的数据传输方法所需要用到的信息。有关第二控制模块12内的预置信息,可参见上文对第一控制模块11内预置的预置信息的描述。以及有关第二控制模块12的具体介绍,可参见上文其他实施例中相关内容,此处均不再做具体赘述。如图11b所示,本实施例提供的数据传输方法可包括如下步骤:
201、响应于所述第一应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;
202、基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
203、根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
204、将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
上述201中,如参见图3d所示,第一应用内还可部署有第一控制模块11,有关第一控制模块11以及其内可预置的预置信息的具体介绍,可参见上文其它实施例中相关内容。利用该第一控制模块11可对第一数据块先进行一次预审计(或说预校验),以确定第一数据块是否允许传输。例如,第一控制模块11针对接收到的第一数据块,可以审计第一数据块所属的数据类型、传输事务等是否符合要求,具体地如:第一控制模块11根据自身内预置的预置信息中包含的数据传输安全控制信息,如允许/阻止传输的数据类型信息,可审计第一数据块所属的数据类型是否为允许传输的数据类型,若为允许传输的数据类型,则符合要求;或者,也可以先为第一数据块所属的传输事务确定相应第一端对应的第二预置字符串;然后预置的数据传输安全控制信息中包含的为第一端对应的第二预置字符串所绑定的传输事务黑名单/白名单等,分析第一数据块所属的传输事务是否在黑名单/白名单内,如若在白名单内,则符合要求,等等。有关为第一数据块所属的传输事务确定相应第一端对应的第二预置字符串的具体实现,可参见上文相关内容。第一控制模块11在审计出第一数据块符合要求,为允许传 输的数据块的情况下,可以将第一数据块以及确定出的第一数据块所属的传输事务的事务属性标识,发送给第二控制模块12,由第二控制模块根据事务属性标识,获取第一数据块所属的传输事务属性信息,以基于获取到的传输事务属性信息对第一数据块进行处理以发送。基于此,在一种可实现的技术方案中,上述201中“响应于所述第一应用发送的需向所述第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务对应的第一事务信息”,可包括:
2010、为所述第一传输事务生成相应的事务标识;
2011、接收所述应用内的第一控制模块发送的所述第一数据块、以及所述第一数据块所属的第一传输事务的事务属性标识;
2012、基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
上述2011中,第一数据块所属的第一传输事务,具体指的是第一数据块所属的第一数据流对应的传输事务,有关第一控制模块确定第一数据块所属的第一传输事务的事务属性标识的具体实现,可参见上文其它实施例中相关的内容。
上述2012中,传输事务属性信息包括但不限于:事务属性名称、第一标注信息、第二端对应的第一预置字符串、事务属性标识、事务属性类型信息。其中,所述事务属性类型信息中包含:所述第一数据块所属的第一数据流的传输方向、第一数据流的数据类型、数据头使用信息。有关传输事务属性信息的具体介绍以及上述2012的具体实现,也可参见上文其它实施例中相关的内容。
在一种可实现技术方案中,上述202“基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息”,可具体包括:
2021、获取所述第一数据块所属的第一数据流中数据块对应的头信息传输方式;
2022、根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
2023、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
一具体可实现方案中,上述2022“根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段”,可具体包括:
20221、根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
20222、若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
20223、若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
在上述20222给出的情况下,即所述多个报头字段为所述目标报头字段时,上述2023“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
20231、为所述第一传输事务确定第一端对应的第二预置字符串;
20232、根据所述第二预置字符串、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:所述第二端对应的第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、所述第一目标头信息与所述第一数据块的总大小、标注信息;总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
有关上述203“根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文”的具体实现,可参见上文其它实施例中相关内容。
在本实施例中,上述所述的预置字符串(如第一预置字符、第二预置字符串)的作用为用于指示相应端的地址信息,这里所述的“指示”包含以下两种含义:预置字符串直接为相应端的地址信息对应的字符串;或者,预置字符串用于隐藏相应端的地址信息,隐藏方式如可以为使预置字符串关联的关联信息包含相应端的地址信息。在预置字符串用于隐藏相应端的地址信息的情况下,上述204“将所述第一报文发送至所述第二端”的一可能实现方案,可包括如下步骤:
2041、从所述第一事务信息包含的所述第一传输事务的传输事务属性信息中,获取所述第二端对应的第一预置字符串;
2042、根据所述第一预置字符串,获取所述第二端的地址信息;
2043、根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
有关上述2041~2042的具体实现,可参见上文其它实施例中相关的内容。
在一具体可实现技术方案中,上述2043“根据所述第二端的地址信息,将所述第一报文发送至所述第二端”,可具体采用如下步骤来实现:
20431、根据所述第二端的地址信息,将所述第一报文发送至中间网络设备,以通过所述中间网络设备将所述第一报文发送至所述第二端;
其中,所述中间网络设备在将所述第一报文发送至所述第二端之前,还执行如下中的任一项:对所述第一报文包含的第一目标头信息进行校验;根据所述第一报文,生成所述第一传输事务的日志信息。
在上述20223给出的情况下,即所述多个报头字段中的部分报头字段为所述目标报头字段时,上述2023“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
20231’、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
20232’、基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述第一传输事务的事务标识。
进一步地,本实施例提供的所述方法还可包括:
205、接收所述第二端发送的第二报文;
其中,所述第二报文,是所述第二端上的第三控制模块根据所述第二端上第二应用的第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息 用于校验所述第二报文是否符合要求;
所述第三控制模块位于所述第二应用内或所述第二应用的外部。
本实施例提供的技术方案,第一端需向第二端传输应用的第一数据流中的第一数据块时,是基于确定出的第一数据流对应第一传输事务的第一事务信息,为第一数据块确定相应的第一目标头信息;进而根据第一数据块及第一目标头信息来生成相应待发送的第一报文,将第一报文发送至第二端的。上述中,第一目标头信息用于校验报文是否符合要求,这使得本方案能够以较低成本,实现对传输数据内容的安全性管理。
这里需要说明的是:本申请实施例提供的所述数据传输方法中各步骤未尽详述的内容可参见本申请提供的其它各实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
图12示出了本申请又一实施例还提供的数据传输方法的流程示意图。该数据传输方法适于如图3c示出的中间网络设备上的第四控制模块(图中未示出)。第四控制模块内会事先预置的预置信息,该预置信息为实现本实施例提供的数据传输方法所需要用到的信息。有关第四控制模块内的预置信息,可参见上文对第一控制模块11内预置的预置信息的描述。以及有关第四控制模块12的具体介绍,可参见上文其他实施例中相关内容,此处均不再做具体赘述。具体地,如参见图12,本实施例提供的数据传输方法可包括如下步骤:
A11、响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;
A12、基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
A13、根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
A14、将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
一种可实现方案中,上述A11“响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息”,可具体包括:
A111、为所述第一传输事务生成相应的事务标识;
A112、接收所述第一端上第一应用内第一控制模块或所述第一端上第一应用外部的第二控制模块发送的所述第一数据块,以及第一数据块所属的第一传输事务的事务属性标识;
A113、基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
一种可实现方案中,上述A12“基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息”,可具体包括:
A121、获取所述第一数据块所属的第一数据流中数据块对应的头信息传输方式;
A122、根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
A123、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
上述A122“根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为第一数据块确定目标报头字段”的一具体可实现方案,可包括:
A1221、根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
A1222、若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
A1223、若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
在上述A1222给出的情况下,即所述多个报头字段为所述目标报头字段时,上述A123“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
A1231、为所述第一传输事务确定第一端对应的第二预置字符串;
A1232、根据所述第二预置字符串、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:所述第二端对应的第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、第一目标头信息与所述第一数据块的总大小、标注信息;
总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流;预置字符串为相应端的地址信息,或者预置字符串用于隐藏相应端的地址信息。
进一步地,预置字符串用于隐藏相应端的地址信息时,上述A14“将所述第一报文发送至所述第二端”,包括:
A141、从所述第一事务信息包含的所述第一传输事务的传输事务属性信息中,获取所述第二端对应的第一预置字符串;
A142、根据所述第一预置字符串,获取所述第二端的地址信息;
A143、根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
在上述A1223给出的情况下,即所述多个报头字段中的部分报头字段为所述目标报头字段时,上述A123“根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头”,可具体包括:
A1231’、根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
A1232’、基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
其中,所述第二报文头包括所述第一传输事务的事务标识。
进一步地,本实施例提供的所述方法还包括:
A15、接收所述第二端发送的需向第一端传输的第二数据块,确定所述第二数据块所属的第二传输事务的第二事务信息;
A16、基于所述第二事务信息,为所述第二数据块确定相应的第二目标头信息;
A17、根据所述第二数据块及所述第二目标头信息,生成待发送的第二报文;
A18、将所述第二报文发送至所述第一端;
其中,所述第二目标头信息用于校验所述第二报文是否符合要求。
这里需要说明的是:本申请实施例提供的所述数据传输方法中各步骤未尽详述的内容可参见本申请提供的其它各实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
上文本申请给出的各实施例均是主要从“传输事务”角度来介绍本申请提供的技术方案的,下面本申请从“预置字符串”的角度来介绍一下本申请提供的技术方案。在从“预置字符串”的角度介绍本申请提供的数据传输方法之前,先介绍说明一下方法可基于的系统架构。
具体地,从“预置字符串”的角度来讲,本申请提供的数据传输方法可基于图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将所述第一报文发送至第二端29;
上述第二控制设备32,用于对接收到的所述第一报文进行校验;若校验通过,且接收到所述第二端发送的获取请求,则将所述第一报文发送至所述第二端;若校验未通过,则不予进行发送处理。
这里需要说明的是:上述实施例提供的数据传输系统中的各设备或各端,除了可实现上述本实施例所述的功能步骤之外,还可实现本申请提供的其他各实施例中相关内容,有关上述各设备或各端具体可实现的功能内容以及相应的具体实现原理,可参见上文本申请其他实施例中的相应内容,此处不再赘述。
基于上述介绍的本申请一实施例提供的数据传输系统相关内容,本申请另外三个实施例还提供的一种数据传输系统。具体地,
本申请另一实施例提供的数据传输系统,包括:目标设备、第一端及第一控制设备;其中,
第一端,用于在需向所述目标设备传输第一数据块时,获取所述目标设备对应的第一预置字符串;基于所述第一预置字符串及所述第一数据块,生成待发送的第一报文; 将所述第一报文发送至所述第一控制设备;其中,第一预置字符串用于隐藏目标设备的地址信息;
第一控制设备,用于根据从所述第一报文中获取到的所述第一预置字符串,确定所述目标设备的地址信息;根据所述目标设备的地址信息,将所述第一报文发送至所述目标设备;
进一步地,上述目标设备包括第二端;以及,第一控制设备,具体用于根据所述第一预置字符串,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
进一步地,上述目标设备还包括第二控制设备,与所述第二端及所述第一控制设备通信连接;所述第二端的地址信息指向第二控制设备;
所述第一控制设备,具体用于根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备,用于对接收到的所述第一报文进行校验;校验通过后,缓存所述第一报文,以等待所述第二端获取;
第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
有关上述第一端、第一控制设备、第二控制设备及第二端的具体介绍、以及各自具体可实现的功能、功能具体实现描述,可参见上文相关内容。
本申请另一实施例提供的数据传输系统的系统架构,可参见图5d或图5e示出的系统架构。具体地,如参见图5d或图5e所示,本实施例提供的所述数据传输系统包括:第一端10、第一控制设备31、第二控制设备32及第二端20;其中,
第一端10,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置字符串;基于所述第一预置字符串及所述第一数据块,生成待发送的所述第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置字符串用于隐藏第二端的地址信息;
第一控制设备31,用于根据从所述第一报文中获取到的所述第一预置字符串,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
第二控制设备32,用于缓存接收到的所述第一报文,以等待所述第二端获取;
第二端20,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
有关上述第一端10、第一控制设备31、第二控制设备32及第二端20的具体介绍及各自具体可实现的功能、功能具体实现描述,可参见上文相关内容。
本申请又一实施例提供的数据传输系统包括:第一端、第一控制设备及第二端;
第一端,用于在需向第二端传输第一数据块时,获取第二端对应的第一预置字符串及所述第一端对应的第二预置字符串;将所述第一预置字符串、所述第二预置字符串及所述第一数据块发送至第一控制设备;其中,预置字符串用于隐藏相应端的地址信息;
第一控制设备,用于确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息、所述第一预置字符串及所述第二预置字符串,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发 送的所述第一报文;并根据所述第一预置字符串获取到的第二端的地址信息,将所述第一报文发送至第二端。
第二端,用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据。
有关上述第一端、第一控制设备、第二控制设备及第二端的具体介绍及各自具体可实现的功能、功能具体实现描述,可参见上文相关内容。
基于上述结合图5a至5c所介绍的系统内容,本申请一实施例还提供了相应的数据传输方法,具体地如下:
图13示出了本申请一实施例提供的数据传输方法的流程示意图。该数据传输方法适于如图5a示出的第一端10连接的控制设备,即第一控制设备31。第一控制设备31内事先预置的预置信息包括上文所述的针对第一端10创建的配置文件,进一步地,还可包括针对第二端20创建的配置文件。有关配置文件中可包括的具体内容,可参见上文其他各实施例中相关内容。如参见图13,本实施例提供的数据传输方法包括以下步骤:
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、针对所述连接校验信息,向所述第一端反馈相应的校验结果,以便所述第一端基于所述校验结果确定是否与所述控制设备建立通信链路,以通过所述通信链路发送所述第一数据块;
其中,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据。
这里需要说明的是:本申请实施例提供的所述数据传输方法中各步骤未尽详述的内容可参见本申请提供的其它各实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述本申请提供的其他各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。
针对本申请上下文所述的涉及到“预置字符串”的所有相关内容,这里需补充说明的是:预置字符串可由多种组合形式。例如,不同数据端各自均有相对应的预置字符串,如参见下文给出的示例二中的例子1“请求数据”,针对“请求网络资源”传输事务,客户端对应有第二预置字符串:0x81 0xa4 0x35 0xe3,服务端对应有第一预置字符串:0x47 0xec 0x47 0xf4,第一预置字符串与第二预置字符串不同。再例如,不同数据端可为固定的预置字符串,例如,针对上述“请求网络资源”传输事务,客户端与服务端对应的预置字符串可均为第三预置字符串,如参见上文针对预置字符串给出的示例11和示例21,客户端对应的第二预置字符串和服务端对应的第一预置字符串可均为字符串“0x0A”,虽然这里服务端对应的第一预置字符串与客户端对应的第二预置字符串相同,但实际上作用并不同,第一预置字符串只作用在服务端与其连接的控制设备通信中,第二预置字符串只作用在客户端与其连接的控制设备的的通信中。上述针对预置字符串给出的两个例子,预置字符串具有隐藏相应端的地址信息。在预置字符串直接为相应端真实的地址信息情况下,不同数据端各自均有相对应的预置字符串,如参见图14,客户端对应的第二预置字符串可直接为表征客户端真实的地址信息的字符 串“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()函数接受客户端接入请求。
步骤3、在连接成功后,使用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示出的客户端和服务端连接同一个控制设备情形下)。
例如,参见图14,假设服务提供者在服务端上预先注册了一服务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
Figure PCTCN2022136012-appb-000006
第一预置字符串、第二预置字符串为为发送方和接收方这两个双方的通信标识。当发送方为客户端时,接收方对应的第一预置字符串可称为服务标识符,发送方对应的第二预置字符串可称为客户标识符。当发送方为服务端时,发送方对应的第二预置字符串可称为服务标识符,接收方对应的的第一预置字符串可称为客户标识符。
在一些实施例中,预置字符串可为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端点为是客户端根据第二预置字符串(0x5c 0x67 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 0xec 0x47 0xf4”的字符串别称;之后,根据上述获取到的客户端、服务端各自对应的预置字符串(为真实的预置字符串的字符串别称(非真实))及具体需传输的字符串数据“hello”,生成待 发送的数据包并发送至第一控制设备;第一控制设备对接收到的数据包进行解析,解析出客户端、服务端各自对应的非真实的预置字符串后,可以根据自身内预置的真实的预置字符串与字符串别称的对应关系,将上述解析出的客户端、服务端各自对应的非真实的预置字符串转换成真实的预置字符串,即上述所述的客户端对应的第二预置字符串:0x5c 0x67 0x55 0xb6、服务端对应的第一预置字符串: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中的方法一或方法二生成的数据包向目标地址信息对应的设备发送。
步骤4、目标设备接收数据
目标设备接收到数据包时,可根据预设的配置,进行解密、校验。目标设备校验的内容可以为但不限于:源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“请求网络资源”传输事务的事务属性信息
Figure PCTCN2022136012-appb-000007
1.1.2、第一控制设备、客户端中同步地预设配置(预置的配置信息)中包含有上述“请求网络资源”传输事务的事务属性信息。
有关具体同步预设配置的具体实现,可参见上文本申请其他实施例中相关内容。
1.2、客户端的操作
1.2.1、针对需向服务端传输的数据(请求网络资源对应的请求参数),构建待传输的数据包。具体地,当客户端上的应用(如浏览器应用)需要请求服务端的test.jpg图片数据时,客户端上应用针对需向服务端传输的数据(即请求网络资源对应的请求参数)通过相应的API接口调用其上安装的第一控制设备的设备驱动,获取相应的“请求网络资源”传输事务的事务属性信息,并利用该“请求网络资源”传输事务的事务属性信息,生成相应的符合预设结构规则要求的待传输的数据包。生成的数据包包括的内容如下表72所示。
表72待传输的数据包
Figure PCTCN2022136012-appb-000008
Figure PCTCN2022136012-appb-000009
有关生成数据包的具体实现,可参见上文本申请其他实施例中介绍的生成待传输的报文相关内容。
1.2.2、客户端向其连接的第一控制设备发送数据包
客户端通过相应的API接口调用其上安装的设备驱动,构建完待传输的数据包后,可根据客户端对应的第二预置字符串关联的关联信息中包含的端点号信息,向第一控制设备特定的OUT端点(例如第一控制设备的端点1),向第一控制设备发送OUT令牌+生成的数据包。
1.3、第一控制设备的操作
1.3.1第一控制设备对接收到的数据包进行校验
校验内容包括但不限于:数据包中客户端、服务端这二者对应的预置字符串是否符合预设规则,比如,是否已注册(即预设配置中是否含有);发送数据包的端点(端点1)是否符合预设规则(如是否为客户端对应的第二预置字符串绑定的端点、是否为允许的端点);数据包中的事务属性是否符合预设规则,例如传输事务的事务属性标识0x36 0xe1 0x31 0xf2是否已注册(预设配置中是否含有该事务属性标识),数据流前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 0x31 0xf2是否已注册、数据流前3个字节是否为事务属性限定的GET,等等。当校验通过后,解析数据流“GET test.jpg”的操作内容,以针对客户端的请求反馈相应的数据,即进入下述给出的例子2的流程。
例子2:回复数据:服务端通过第二控制设备向客户端回复数据,具体地,为回复test.jpg文件数据
2.1、预备阶段:
2.1.1、服务端需向客户端发送“test.jpg文件数据”,所对应的传输事务可为预置的“上传jpg文件”传输事务,该传输事务的事务属性信息包括如下表73示出的内容:
表73“上传jpg文件”传输事务的传输事务属性信息
Figure PCTCN2022136012-appb-000010
上表73中,事务属性名称,该传输事务显示的属性名称字符串,如为“上传jpg文件”。
标注信息,该传输事务的事务属性备注的字符串。标注为“上传jpg格式的文件”。
关联的预置字符串,为该传输事务关联的客户端对应的第二预置字符串。事务是基于服务下的具体操作,比如以客户端上预先注册的文件交互服务为例,则为该文件交互服务预置的客户端对应的第二预置字符串(或也可叫服务标识、通信标识)可为:0x47 0xec 0x47 0xf4。
事务属性标识,为传输事务的事务属性信息的唯一标识(如ID值),一般为随机字符串,如。为“上传jpg文件”传输事务的传输事务属性生成的事务属性标识为:0x36 0xe1 0x31 0xf1;
事务属性使用角色,为使用该事务属性角色的相应端角色。例如,服务端或者客户端,或者,客户端的更具体角色可为,如客户端的普通会员或者高级会员。上述0x00表征为服务端角色使用的情况。
事务属性类型,为传输事务的基本操作类型。例如,控制传输事务,一般是与应用系统运行相关的,如发起网络测试、发起心跳包;下载传输事务,如读取网络数据资源;上传传输事务,如发送网络数据;数据流的类型,如普通数据流或者文件数据流。上述0x00表征上传传输数据,数据流为文件数据流。
分组编码(一种字典),分别为一、二、三类,用于配置不同场景下的数据传输操作等等。暂不进行分类,均为0x00。
传输的具体数据包的校验信息(例如正则表达式、数据或文件头格式),用于校验具体数据包的数据格式或者部分数据内容是否符合该传输事务的要求。例如,当传输事务为发送文件,文件头为jpg格式(图片)时,则判断文件内容数据的起始4字节是否为0xFF 0xD8 0xFF 0xE0,防止非jpg格式的文件(如exe可执行文件)进行冒充。设置为0xFF 0xD8 0xFF 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)
Figure PCTCN2022136012-appb-000011
Figure PCTCN2022136012-appb-000012
表75生成的第二个待传输的数据包(记为数据包2)
Figure PCTCN2022136012-appb-000013
2.2.2、服务端向其连接的第二控制设备发送数据包
服务端通过相应的API接口调用其上安装的设备驱动,构建完待传输的数据包后,可根据服务端对应的第一预置字符串关联的关联信息中包含的端点号信息,向第二控制设备特定的OUT端点(例如第二控制设备的端点1’),向第而控制设备发送OUT令牌+生成的数据包。
2.3、第二控制设备的操作
2.3.1第二控制设备对接收到的数据包进行校验
校验内容包括但不限于:数据包中客户端、服务端这二者对应的预置字符串是否符合预设规则,比如,是否已注册(即预设配置中是否含有);发送数据包的端点(端点1)是否符合预设规则(如是否为服务端对应的第一预置字符串绑定的端点、是否为允许的端点);数据包中的事务属性是否符合预设规则,例如,传输事务的事务属性标识0x36 0xe1 0x31 0xf1是否已注册(预设配置中是否含有该事务属性标识)、传输的文件是否为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 0xFF 0xE0,等等。
同时,对事务属性标识等相关标识符和文件流头(文件名、文件类型等)等数据进行日志存储。第一控制设备的日志存储区域只允许第一控制设备本身写入,当连接的客户端或其他审计设备接入时,日志数据为只读状态,保证日志数据不被删除、篡改。
2.4.2缓存数据包
第一控制设备对接收到的数据包校验通过后,将数据包缓存于本地,等待连接的客户端请求该数据包
当客户端请求时,校验请求的端点是否符合预设等,符合时,将数据包发送至服务端。
2.5、客户端的操作:通过相应API接口读取数据。
客户端接收到数据包后,按照预设的配置进行校验,主要校验的内容包括但不限于:数据包中传输事务的事务属性是否符合预设规则,例如,事务属性标识0x36 0xe1 0x31 0xf1是否已注册、传输的文件是否为jpg格式、jpg的文件头是否为事务属性限定的0xFF 0xD8 0xFF 0xE0,等等。当校验通过后,保存从数据包中获取的数据test.jpg,文件名、文件类型也可以自行设置。
综合上文内容,本申请又通过图15a至图15c,简单的示出了本申请结合控制设备提供的数据传输方案的原理性示意图。如参见图15a所示,数据端的数据交换需求一般可分为如下两大类:发送数据(上行数据)和接收数据(下行数据)。其中,
发送数据的具体实现包括如下过程:
数据端向其连接的控制设备的OUT端点发送数据(如OUT令牌+数据包(含有预置字符串+具体需传输的数据));
相应的控制设备对接收到的数据包进行校验,并根据从数据包中相应的预置字符串(为目标设备(如计算机2)对应的预置字符串),获取目标地址信息(如目标IP、端口);然后,根据目标地址信息向目标设备发送数据包。之后,若接收到目标设备返回的数据包接收的状态包(用于表征数据包的接收情况(如接收成功或失败)),通过其上的OUT端点向其连接的数据端发送状态包;
数据端接收相应控制设备发送的数据(状态包),执行发送数据成功或失败的处理流程(如按照预设进行本地记录或向目标设备进行发送记录,等等)。
接收数据的具体实现包括如下过程:
数据端向其连接的控制设备的IN端点发送数据(如IN令牌包);
相应的控制设备接收到其IN端点的数据后,查询自身内是否存储有符合要求的可用数据;若未存储,则按照预设向目标设备发送请求或等待目标设备下传数据;若存储有,向数据端返回相应数据;
数据端针对接收到的数据,向其连接的控制设备返回数据接收的状态包,由控制设备根据状态包执行数据接收成功或失败的处理流程(如按照预设进行本地记录或向目标设备进行发送记录,等等)
这里需要补充说明的是,上述状态包可分为如下3种:ACK包,用于表示发送或接收成功;NAK包,用于标识控制设备忙或目标无可处理的数据,连接的数据端需要重新发数据;SHALL包,表征错误,一般为数据发错端点或端点不支持或数据校验不通过等。控制设备的网络接口及端点均可以由多组。通过预置字符串可配置绑定相应的端点或网络接口。
图15b和图15c是以数据端为计算机设备(如台式计算机)为例进行示出的数据传输交换示例;其中,图中的目标设备,一些实施例中,其可仅包含另一计算机(记为计算机2),或者在另一些实施例中,可包括计算机2和该计算机2连接的另一控制设备。
图15b示出的是在计算机作为主机、计算机连接的控制设备作为从机的情况(与图15a中示出的主从机模式对应)下,数据传输的原理性示意图。如参见图15b所示,具体数据传输过程为:
若计算机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总线地址;控制设备作为从机时为端点号。有关预置字符串的具体描述,可参见上文其他实施例中相关内容的具体描述。
图15c示出的是在计算机作为从机、计算机连接的控制设备作为主机的情况下,数据传输的原理性示意图。如参见图15c所示,具体数据传输过程为:
若计算机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令牌包+数据包)。
有关上述各步骤中未详尽内容,可参见上文如与图15a相关的内容。
图16示出了针对需传输的数据生成待传输的数据包(即上文涉及的报文)并进行发送的原理性示意图。如参见图16所示,当计算机1上应用针对其需传输的具体数据,启动一次数据传输时,将从预设的配置信息(预置信息)中读取传输事务属性信息集合,并从该传输事务属性信息集合中查询需传输的具体数据所属的传输事务对应的传输事务属性信息;然后,利用查询到的传输事务属性信息,为需传输的具体数据生成结构化的报文头、数据头(可选), 并根据生成的报文头、数据头以及需传输的具体数据,构建(或生成)符合预设结构规则要求的数据包。若数据包构建成功,则计算机1通过其连接的中间网络设备(如交换机、路由器、防火墙)或控制设备等,发送至计算机2;计算机2针对接收到的数据包,可根据预设的配置信息,对数据包进行解析,解析成功即获取相应数据。
上述中,计算机1构建待发送的数据包失败的原因包括但不限于:无法在传输事务属性信息集合中,查询到需传输的具体数据所属的传输事务对应的传输事务属性信息;根据预设的数据传输安全控制信息,需传输的具体数据不允许发送、发送端点不符合预设等。中间网络设备(如交换机、路由器防火墙)或控制设备等,在将接收到的数据包转发给计算2之前,可对数据包进行解析,并在解析成功的情况下,根据预设的配置信息(数据传输安全控制信息)对数据包进行处理,比如对数据包进行放行(即允许数据包传输、将数据包转发给计算机2)、阻止(拦截)数据包(即禁止数据包传输)、执行预设动作(如备份数据包、本地记录)。若解析数据包失败,则解析失败的原因包括但不限于:数据包的结构不符合预设要求;对应数据包中需传输的具体数据所属的传输事务的传输事务属性信息不存在;根据数据传输安全控制信息,不允许传输;等等。
图17示出了数据传输具体应用示例。如参见图17所示,根据数据传输需求,按数据传输方向进行划分,数据传输可分为单向数据传输和双向数据传输。单向数据传输可包括仅下行数据(为只接受数据)、仅上行数据(为只发送数据)。双向数据传输交互包括上下行数据,具体地,包括以下行数据为主(如请求Http数据)的双向数据传输交互、以上行数据为主的双向数据传输交互。
在仅下行数据(为只接收数据)的情况下,预设的传输事务属性信息集合,用于在接收到数据包后,解析数据包,此数据包可包括请求的执行结果参数(如请求接收成功或失败)和对应的具体数据(如返回的与请求适配的数据)。
在仅上行数据(为只发送数据)的情况下,预设的传输事务属性信息集合,用于针对需传输的数据构建相应待发送的数据包,此数据包中可包括上传的具体数据和其他对应参数(如上文所述的报文头包含的各参数)。
在以下行数据为主(如请求Http数据)的双向数据传输交互的情况下,上行数据时,预设的传输事务属性信息集合,用于针对需传输的数据构建相应待发送的数据包,此数据包中可包括请求参数(如数据流请求参数、或请求的数据流等),进一步地还可其他对应参数(如上文所述的报文头包含的各参数)。下行数据时,预设的传输事务属性信息集合,用于在接收到数据包后,解析数据包,此数据包可包括请求的执行结果参数(如请求成功或失败的编码信息)和对应的具体数据(如返回的与请求适配的数据)。
在以上行数据为主(如上传图片数据)的双向数据传输交互的情况下,上行数据时,预设的传输事务属性信息集合,用于针对需传输的数据构建相应待发送的数据包,此数据包中可包括上传的具体数据(如图片数据)和对应参数(如上文所述的报文头包含的各参数)。下行数据时,预设的传输事务属性信息集合,用于在接收到数据包后,解析数据包,此数据包可包括上传的执行结果参数(如图片数据上传成功成功或失败的编码信息)
这里需要补充说明的是,上述数据传输需求信息,具体可包括但不限于:网页浏览(如请求网络资源)、数据库操作、邮件交换、文件交换、二进制数据传输、即时通讯、单向传输发送、单向传输接收等)。
有上图17示出的相关内容,本申请实施例中数据传输交互,实质上主要有以下3种场景:
场景一、数据端向其连接的控制设备上行(发送)数据
数据端可以通过控制自身上的硬件接口,向其连接的控制设备的上行接口(或者称上行端点、上行数据寄存器等,如下图18a中示出的数据交换接口①)发送数据包(包含预置字符串和具体待传输的数据)。另外,也可以按照为预置字符串(为数据端对应的预置字符串,比如为0x0A)配置的通信能力,只能单向地向控制设备发送数据包,控制设备不会向此数据端下行(发送)数据。有关通信能力的具体介绍,可参见上文其他实施例中相关内容。
场景二、数据端向其连接的控制设备下行(接收)数据
数据端可通过控制自身上的硬件接口,在其连接的控制设备的下行接口(或者称下行端点、下行数据寄存器等)接收数据包,此数据包=预置字符串+具体数据(可为另一数据端下发的数据)。与发送数据包不同的是,请求下行数据时,数据端需要向目标设备请求,控制设备的接口不一定有下行数据,所以需要数据端通过其自身的硬件接口,不断对其连接的控制设备的下行接口进行查询扫描、或者等待接口接收到数据的中断信号、或者等待推送的数据等。例如,数据端与其连接的控制设备间使用USB接口协议连接时,需要数据端不断主动向控制设备的IN端点发送IN令牌包,以请求进行尝试读取数据。再例如,数据端与其连接的控制设备间使用ble(Bluetooth Low Energy,蓝牙低能耗)蓝牙接口协议栈时,可在蓝牙协议的服务(service)中设置特征(characteristic)属性为通知(notify),控制设备有数据时便会自动向相应数据端推送。
场景三、数据端与控制设备的双向通信,
结合上述场景一和场景二,数据端可通过控制自身上的硬件接口,先向其连接的控制设备的上行接口发送数据包;控制设备接收到数据包后,向目标设备请求并下载数据,再向数据端的硬件接口发送(转发)。
下面补充说明一下控制设备上相关的接口描述。
本申请上下文中所述的控制设备上的用于与相应数据端进行数据传输交互的接口(如图18a中示出的数据交换接口①,可称为第一接口),可为一切类型的接口,只要保证能用于与相应数据端实现数据的单向或双向传输即可。
例如,从物理层上角度来看,接口类型可为但不限于:有线传输的接口(如双绞线/光纤接口、USB接口)、无线传输的接口(如通过蓝牙模块、LoRa模块、WiFi模块等实现的接口)、一体化集成芯片接口(如SPI、PCI)、主板独立扩展卡接口(如PCIE、SATA)、单向传输接口(如光纤的单向TX或RX、红外线接口、可见光通讯接口等等)。
次例如,从架构设计上角度来看,接口类型可以为但不限于:主从设备模式的接口、客户端-服务器模式的接口、点对点模式接口(网络接口)、TX-RX(Transmit-receive)收发线模式(上行与下行不在一根(或者一组、或者一组差分线)线上,如串口通信、光纤通信、PCIE接口,或者仅有TX或RX的单向传输)的接口。
再例如,从功能作用上角度来看,接口类型可为但不限于:用于总线通信的接口(如USB、PCI、PCIE、SPI、I 2C接口)、用于存储设备通信的接口(如SATA、IDE、M.2、Emmc、SDIO接口)、用于音视频传输的接口(如HDMI接口)等。上述USB接口为比较常用的接口。
又例如:从数据传输模式上角度来看,接口类型可为但不限于:采用PIO模式(Programmed Input-Output,可编程输入输出)的接口、采用DMA模式(Direct Memory Access,直接内存访问)的接口。
以下针对几个主要接口类型简述一下数据端与控制设备的数据交互实现:
以通信场景为:计算机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 Low Energy)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)等等,本实施例对此不再限定。
图18a示出了控制设备的结构示意图。如参见图图18a所示,控制设备30可包括:
配置文件接收模块,用于如当存储有配置文件的分发器接入控制设备的接口(即下述的配置文件接收接口)时,向其发送控制设备的设备标识或使用控制设备用户的用户标识等特征标识符,以由分发器根据接收到的特征标识符向控制设备返回适配的配置文件;以及,还用于接收并校验如分发器发送的配置文件数据,并在校验通过后,将配置文件数据在控制设备和与控制设备连接的数据端(如计算机)(具体地为数据端中安装的控制设备的设备驱动)进行注册。其中,数据端可定值发送交互指令,以查询是否有更新配置文件;配置文件中包含的是服务配置和通信事务相关的内容,有关配置文件具体可包括的内容,可参见上文其他实施例中相关内容。
配置文件接收接口,可复用下述所述的数据交换接口①或数据交换接口②。
数据结构化模块,用于接收数据交换接口①处的数据,将数据进行结构化处理,以生成符合预设结构规则要求的结构化数据(即上文涉及的报文);以及,还用于接收到数据交换接收②处的数据时,对数据进行反序列化等解析处理。上述数据交换接口①,是用于与一数据端(为发送方,如客户端)连接的第一接口,比如控制设备上用于进程通信的USB接口。数据交换接收②,是用于与目标设备(如另一控制设备或另一数据端(为接收方,如服务端))连接的第二接口,比如控制设备上用于远程通信的网络接口(如以太网接口)。
数据校验模块,用于校验数据交换接口①和数据交换接口②处接收到或发送的数据是否符合预设的配置文件的标准。
数据交换模块,用于针对数据交换接口②,按照配置文件(具体为另一数据端对应的预置字符串(即图中所述的服务标识)关联的关联信息,将数据(如接收到的与控制设备连接的数据端发送过来的数据)发送至远端的目标设备(如另一控制设备或另一数据端),或者接收远端的目标设备发送的数据。以及还用于针对数据交换接口①,接收与控制设备连接的数据端发送的第一信令(如OUT令牌包)和具体待传输的数据包(如普通数据包或结构化数据);且当接收到与控制设备连接的数据端发送的第二信令(如IN令牌包)时,向其连接的数据端发送相应适配的数据包。
存储器,用于存储如下中的至少一项:可读指令(为计算机指令),以供控制设备的处理器调用并执行;配置文件数据、备份数据等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器,为控制控制设备30内其他各功能模块/器件工作的中控部件,可为但不限于中央处理器(Central Processing Unit,CPU)。
控制设备30除了可包括上述所述的各功能模块/器件之外,还可包括其他的模块,比如加解密模块,用于对数据执行加密和/或解密处理。
图18b示出了与控制设备连接的数据端的结构示意图。数据端上除了安装有应用(如浏览器应用、社交应用等)外,还安装有控制设备的API接口及设备驱动。其中,
应用通过调用API接口实现数据的发送或接收,具体地,当需发送数据时,创建数据发 送的需求信息(即上文涉及的数据传输需求信息),按照API接口参数发射相应的数据;当需接收数据时,按照API接口参数读取相关的数据。
控制设备的API接口,用于:当发送数据时,将待发送的数据转换为符合预设结构规则的结构化数据,或者也可以只对待发送的数据进行预结构化处理,后续由控制设备的数据结构化模块进行处理以转换为符合预设结构规则的结构化数据。以及,还用于当接收数据时,对接收到的结构化数据进行反序列化等解析处理。
控制设备的设备驱动,用于建立数据端与相应控制设备的通信连接(或说通信握手关系,如完成图10示出的枚举流程);以及还可用于将数据向如图18a示出的控制设备的数据交换接口①发送,或者接收数据交换接口②处的数据。
这里对于本申请上文所有内容应说明的是:上文内容中所涉及的控制设备的“端点”,是从传输协议为USB协议角度描述的,在其他传输协议场景下,“端点”也可理解为“端口”。“端口”与“端点”只是在不同传输协议场景下,用于设备之间或应用之间数据传输的接口,采用的不同表述方式而已。
图19示出了本申请一实施例提供的一种数据传输装置的结构示意图。该数据传输装置部署于第一端,具体地,部署于第一端上第一应用内的第一控制模块上。有关第一控制模块的具体介绍,可参见上文其他各实施例中相关内容。如图19所示,本实施例提供的所述数据传输装置包括:确定模块41、生成模块42以及发送模块43;其中,
确定模块41,用于确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;
所述确定模块41,还用于在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
生成模块42,用于根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
发送模块43,用于将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
进一步地,上述确定模块41,在用于基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息时,具体用于:获取所述第一数据流中数据块对应的头信息传输方式;根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
进一步地,上述确定模块41,在用于根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段时,具体用于:
根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段。
若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
进一步地,上述多个报头字段为所述目标报头字段的情况下,上述确定模块41,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:
为所述第一传输事务确定第一端的地址信息;
根据所述第一端的地址信息、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:第一端的地址信息、第二端的地址信息、所述第一传输事务的事务属性标识、所述第二传输事务的事务标识、第一数据流中数据块的总数量、第一数据块的块号、第一目标头信息与第一数据块的总大小、标注信息;
总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
进一步地,上述确定模块,在用于为所述第一传输事务确定第一端的地址信息时,具体用于:获取第一端的地址信息与事务种类的第一对应关系;基于所述第一对应关系,确定与所述第一传输事务所属的事务种类存在对应关系的第一端的地址信息。
进一步地,所述第一数据块在所述第一数据流中排序第一或排序最后时,上述确定模块41,在用于基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息时,还具体用于:根据所述第一事务信息中所述第一传输事务的传输事务属性信息,确定是否需要为所述第一数据块添加数据头;确定需要时,根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头;其中,所述数据头与所述第一数据流适配、且符合预设数据头格式要求。
进一步地,上述确定模块41,在用于根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头时,具体用于:基于所述传输事务属性信息中包含的数据头使用信息,从预设的多个数据头格式中选择一个适配的数据头格式;根据所述第一数据流的流信息,按照选择出的数据头格式生成所述数据头。
进一步地,上述多个报头字段中的部分报头字段为目标报头字段的情况下,上述确定模块41,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;其中,所述第二报文头包括所述事务标识。
进一步地,上述确定模块41,在用于确定所述应用的第一数据流对应第一传输事务的第一事务信息时,具体用于:为所述第一传输事务生成相应的事务标识;获取所述第一传输事务的传输事务属性信息。
进一步地,上述确定模块41,在用于获取所述第一传输事务的传输事务属性信息时,具体用于:确定所述第一传输事务的事务属性标识;基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
进一步地,上述确定模块41,在用于确定所述传输事务的事务属性标识时,具体用于:根据所述第一数据流的传输需求信息,确定所述第一传输事务所属的事务种类;基于事务种类与事务属性标识的第二对应关系,确定与所述第一传输事务所属的事务种类存在对应关系的事务属性标识。
进一步地,上述发送模块43,用于将所述第一报文发送至所述第二端时,具体用于:
将所述第一报文发送至第二控制模块,由所述第二控制模块对所述第一报文包含的目标头信息进行校验,并在校验出所述第一报文符合要求时,将所述第一报文发送至第二端;
其中,所述第二控制模块为所述第一端上第一应用外部的模块。
进一步地,本实施例提供的装置还包括:接收模块,用于接收所述第二端发送的第二报文;其中,所述第二报文,是所述第二端上的第三控制模块根据所述第二端上第二应用的第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息用于校验所述第二报文是否符合要求;
所述第三控制模块位于所述第二应用内或所述第二应用的外部。
这里需要说明的是:上述实施例提供的数据传输装置可实现上述图11a示出的数据传输 方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述图11a示出的数据传输方法实施例中的相应内容,此处不再赘述。
本申请另一实施例还提供的一种数据传输装置的结构示意图。该数据传输装置部署于第一端,具体地,部署于第一端上第一应用外部的第二控制模块上。有关第二控制模块的具体介绍,可参见上文其他各实施例中相关内容。该数据传输装置的结构类似于图19示出的数据传输装置的结构。具体地,本实施例提供的所述数据传输装置包括:确定模块、生成模块以及发送模块;其中,
确定模块,用于响应于所述应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;以及,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
生成模块,用于根据所述第一数据块及所述第一目标头信息,生成待发送的报文;
发送模块,用于将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
进一步地,上述确定模块,在用于基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息时,具体用于:获取所述第一数据块所属的第一数据流中数据块对应的头信息传输方式;根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
进一步地,上述确定模块,在用于根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段时,具体用于:根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
进一步地,所述多个报头字段为所述目标报头字段的情况下,上述确定模块,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:
为所述第一传输事务确定第一端对应的第二预置字符串;
根据所述第二预置字符串、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
其中,所述第一报文头包括:第二端对应的第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、所述第一目标头信息与所述第一数据块的总大小、标注信息;
总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流;预置字符串为相应端的地址信息,或者预置字符串用于隐藏相应端的地址信息。
进一步地,预置字符串用于隐藏相应端的地址信息时,则,上述发送模块在用于将所述第一报文发送至所述第二端时,具体用于:从所述第一事务信息包含的所述第一传输事务的传输事务属性信息中,获取所述第二端对应的第一预置字符串;根据所述第一预置字符串,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至第二端。
进一步地,上述发送模块,在用于根据所述第二端的地址信息,将所述第一报文发送至所述第二端时,具体用于:根据所述第二端的地址信息,将所述第一报文发送至中间网络设 备,以通过所述中间网络设备将所述第一报文发送至所述第二端;其中,所述中间网络设备在将所述第一报文发送至所述第二端之前,还执行如下中的任一项:对所述第一报文包含的第一目标头信息进行校验;根据所述第一报文,生成所述第一传输事务的日志信息。
进一步地,所述多个报头字段中的部分报头字段为所述目标报头字段的情况下,上述确定模块,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;其中,所述第二报文头包括所述第一传输事务的事务标识。
进一步地,上述确定模块,在用于响应于所述应用发送的需向所述第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务对应的第一事务信息时,具体用于:为所述第一传输事务生成相应的事务标识;接收所述应用内的第一控制模块发送的所述第一数据块、以及所述第一数据块所属的第一传输事务的事务属性标识;基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
进一步地,本实施例提供的所述装置还包括:接收模块,用于接收所述第二端发送的第二报文;其中,所述第二报文,是所述第二端上的第三控制模块根据所述第二端上第二应用的第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息用于校验所述第二报文是否符合要求;所述第三控制模块位于所述第二应用内或所述第二应用的外部。
这里需要说明的是:上述实施例提供的数据传输装置可实现上述图11b示出的数据传输方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述图11b示出的数据传输方法实施例中的相应内容,此处不再赘述。
本申请又一实施例还提供了一种数据传输装置。该数据传输装置部署于中间网络设备,具体地,部署于中间网络设备上的第四控制模块上。有关第四控制模块的具体介绍,可参见上文其他各实施例中相关内容。该数据传输装置的结构类似于图19示出的数据传输装置的结构。具体地,本实施例提供的所述数据传输装置包括:确定模块、生成模块以及发送模块;其中,
确定模块,用于响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;以及,用于基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
生成模块,用于根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
发送模块,用于将所述第一报文发送至所述第二端;
其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
进一步地,上述确定模块,在用于基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息时,具体用于:获取所述第一数据块所属的第一数据流中数据块对应的头信息传输方式;根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
进一步地,上述确定模块,在用于根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段时,具体用于:根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所 述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
进一步地,所述多个报头字段为所述目标报头字段的情况下,上述确定模块,用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:为所述第一传输事务确定第一端对应的第二预置字符串;根据所述第二预置字符串、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;其中,所述第一报文头包括:所述第二端对应的第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、所述第一目标头信息与所述第一数据块的总大小、标注信息;总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流;预置字符串为相应端的地址信息,或者预置字符串用于隐藏相应端的地址信息。
进一步地,预置字符串用于隐藏相应端的地址信息时,则上述发送模块在用于将所述第一报文发送至所述第二端时,具体用于:从所述第一事务信息包含的所述第一传输事务的传输事务属性信息中,获取所述第二端对应的第一预置字符串;根据所述第一预置字符串,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
进一步地,所述多个报头字段中的部分报头字段为所述目标报头字段的情况下,上述确定模块,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;其中,所述第二报文头包括所述第一传输事务的事务标识。
进一步地,上述确定模块,在用于响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息时,具体用于:为所述第一传输事务生成相应的事务标识;接收所述第一端上第一应用内第一控制模块或所述第一端上第一应用外部的第二控制模块发送的所述第一数据块,以及第一数据块所属的第一传输事务的事务属性标识;基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
进一步地,本实施例提供的所述装置还包括:接收模块,用于接收所述第二端发送的需向第一端传输的第二数据块,确定所述第二数据块所属的第二传输事务的第二事务信息;基于所述第二事务信息,为所述第二数据块确定相应的第二目标头信息;根据所述第二数据块及所述第二目标头信息,生成待发送的第二报文;将所述第二报文发送至所述第一端;其中,所述第二目标头信息用于校验所述第二报文是否符合要求。
这里需要说明的是:上述实施例提供的数据传输装置可实现上述图,12示出的数据传输方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述图12示出的数据传输方法实施例中的相应内容,此处不再赘述。
图20示出了本申请一实施例提供的一种数据传输装置的结构示意图。该数据传输装置部署于第一端连接的控制设备,有关控制设备的具体介绍,可参见上文其他各实施例中相关内容。如图20所示,本实施例提供的所述数据传输装置包括:获取模块51以及发送模块52;其中,
获取模块51,用于响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置字符串;其中,所述第一预置字符串用于隐藏所述第二端的地址信息;
所述获取模块51,还用于根据所述第一预置字符串,获取所述第二端的地址信息;
发送模块52,用于根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
进一步地,上述获取模块51,在用于获取所述第二端对应的第一预置字符串时,具体用于:确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;从所述第一事务信息包含的传输事务属性信息中,获取所述第二端对应的第一预置字符串。
进一步地,上述发送模块52,在用于根据所述第二端的地址信息,将所述第一数据块发送至所述第二端时,具体用于:基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;根据所述第二端的地址信息,将所述第一报文发送至所述第二端;其中,第一目标头信息用于校验所述第一报文是否符合要求,符合要求时所述第二端从所述第一报文中获取并缓存第一数据。
进一步地,上述发送模块52,在用于基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息时,具体用于:获取所述第一数据流中数据块对应的头信息传输方式;根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
上述发送模块52,在用于根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段时,具体用于:根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在第一数据流中的排序;若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段。若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或者所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
进一步地,所述多个报头字段为所述目标报头字段的情况下,上述发送模块52,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:获取所述第一端对应的第二预置字符串,所述第二预置字符串用于隐藏所述第一端的地址信息;基于所述第一预置字符串、所述第二预置字符串、所述第一事务信息及所述第一数据的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;其中,所述第一报文头包括:所述第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、目标头信息与第一数据块的总大小、第一数据流中数据块的总数量、所述第一数据块的序列号、标注信息;总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
进一步地,上述所述多个报文字段中的部分报头字段为所述目标报头字段的情况下。上述发送模块52,在用于根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头时,具体用于:基于所述第一事务信息中的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;其中,所述第二报文头包括所述事务标识。
进一步地,上述获取模块51,还可用于:从所述第二预置字符串关联的关联信息中,获取数据传输方向控制信息;以及
本实施例提供的所述数据传输装置,还包括:触发模块,用于:
若所述数据传输方向控制信息指示允许控制设备将接收到的数据转发至第二端,则触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作;
若所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至第二端,则根据所述第一数据块所属的第一数据流的数据类型,触发所述第二端的地址信息,将所述第一数 据块发送至所述第二端的操作。
进一步地,上述触发模块,在用于根据所述第一数据块所属的第一数据流的数据类型,触发所述所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作时,具体用于:所述数据类型为请求类型时,从所述关联信息中获取预设请求参数;根据所述第二端的地址信息,将所述预设请求参数及发送至所述第二端;所述数据类型为非请求类型时,则不予进行发送处理。
进一步地,若数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端、但禁止所述控制设备对接收到的所述第二端发送的数据进行转发,则本实施例提供的所述数据传输装置还包括:处理模块,用于:接收到所述第二端针对所述第一数据块返回的反馈信息时,对所述反馈信息不予进行发送处理;
进一步地,本实施例提供的所述数据传输装置还包括:
接收模块,用于在与所述第一端建立通信连接时,接收所述第一端发送的连接校验信息;
反馈模块,用于针对所述连接校验信息,向所述第一端反馈相应的校验结果,以便所述第一端基于所述校验结果确定是否与所述控制设备建立通信链路,以通过所述通信链路发送所述第一数据块;
其中,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据。
这里需要说明的是:上述实施例提供的数据传输装置可实现上述图13示出的数据传输方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述图13示出的数据传输方法实施例中的相应内容,此处不再赘述。
本申请一实施例还提供了一种第一端,该第一端的结构可参见图3b中示出的第一端10。具体地,所述第一端包括:
安装在所述第一端上的第一应用;
第一控制模块,位于所述第一应用内,用于实现本申请实施例提供的与图11a相关的所述数据传输方法。
本申请另一实施例还提供了一种第一端,该第一端的结构可参见图3c中示出的第一端10。具体地,所述第一端包括:
安装在所述第一端上的第一应用;
第二控制模块,位于所述第一应用的外部,用于实现本申请实施例提供的与图11b相关的所述数据传输方法。
有关上述本申请两个实施例中提供的第一端的具体描述,可参见上文本申请其他实施例中相关的内容,此处不再作赘述。
本申请又一实施例还提供了一种中间网络设备,该中间网络设备包括:第四控制模块及存储器,其中,所述存储器,用于存储一条或多条计算机程序;所述第四控制模块,用于执行所述一条或多条计算机程序,以用于实现本申请实施例提供的与图12相关的所述数据传输方法。
图21示出了本申请一实施例提供的一种控制设备的结构示意图。所述控制设备包括处理器62及存储器61。其中,所述存储器61用于存储一条或多条计算机指令;所述处理器62,与所述存储器61耦合,用于一条或多条计算机指令(如实现数据存储逻辑的计算机指令),以用于实现上述本申请提供的与图13相关的数据传输方法中的步骤。
存储器61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
进一步,如图21所示,控制设备还包括:通信组件63、电源组件64及音频组件65等其它组件。图21中仅示意性给出部分组件,并不意味着控制设备只包括图21所示组件。
有关控制设备具体可包括的功能部件,可参见本申请其他实施例中描述的与图18a相关的内容,和/或与图7a至7c相关的内容,此处不再作赘述。
本申请还有一实施例提供一种计算机程序产品(说明书附图中无相应附图示出)。该计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被处理器执行时,致使所述处理器能够实现上述各方法实施例中的步骤。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的方法步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (70)

  1. 一种数据传输方法,其特征在于,适于第一端上第一应用内的第一控制模块,所述方法包括:
    确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;
    在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
    根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
    将所述第一报文发送至所述第二端;
    其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
  2. 根据权利要求1所述的方法,其特征在于,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息,包括:
    获取所述第一数据流中数据块对应的头信息传输方式;
    根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
  3. 根据权利要求2所述的方法,其特征在于,根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段,包括:
    根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
    若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
    若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
  4. 根据权利要求3所述的方法,其特征在于,所述多个报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标 报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    为所述第一传输事务确定第一端的地址信息;
    根据所述第一端的地址信息、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
    其中,所述第一报文头包括:第一端的地址信息、第二端的地址信息、所述第一传输事务的事务属性标识、所述第二传输事务的事务标识、第一数据流中数据块的总数量、第一数据块的块号、第一目标头信息与第一数据块的总大小、标注信息;
    总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
  5. 根据权利要求4所述的方法,其特征在于,为所述第一传输事务确定第一端的地址信息,包括:
    获取第一端的地址信息与事务种类的第一对应关系;
    基于所述第一对应关系,确定与所述第一传输事务所属的事务种类存在对应关系的第一端的地址信息。
  6. 根据权利要求4所述的方法,其特征在于,所述第一数据块在所述第一数据流中排序第一或排序最后时,
    基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息,还包括:
    根据所述第一事务信息中所述第一传输事务的传输事务属性信息,确定是否需要为所述第一数据块添加数据头;
    确定需要时,根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头;
    其中,所述数据头与所述第一数据流适配、且符合预设数据头格式要求。
  7. 根据权利要求6所述的方法,其特征在于,根据所述第一数据流的流信息,为所述第一数据块确定相应的数据头,包括:
    基于所述传输事务属性信息中包含的数据头使用信息,从预设的多个数据头格式中选择一个适配的数据头格式;
    根据所述第一数据流的流信息,按照选择出的数据头格式生成所述数据头。
  8. 根据权利要求3所述的方法,其特征在于,所述多个报头字段中的部分报头字段为目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
    其中,所述第二报文头包括所述事务标识。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,确定所述第一应用的第一数据流对应第一传输事务的第一事务信息,包括:
    为所述第一传输事务生成相应的事务标识;
    获取所述第一传输事务的传输事务属性信息。
  10. 根据权利要求9所述的方法,其特征在于,获取所述第一传输事务的传输事务属性信息,包括:
    确定所述第一传输事务的事务属性标识;
    基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
  11. 根据权利要求10所述的方法,其特征在于,确定所述第一传输事务的事务属性标识,包括:
    根据所述第一数据流的传输需求信息,确定所述第一传输事务所属的事务种类;
    基于事务种类与事务属性标识的第二对应关系,确定与所述第一传输事务所属的事务种类存在对应关系的事务属性标识。
  12. 根据权利要求1至8任一项所述的方法,其特征在于,将所述第一报文发送至所述第二端,包括:
    将所述第一报文发送至第二控制模块,由所述第二控制模块对所述第二报文包含的第一目标头信息进行校验,并在校验出所述第一报文符合要求时,将所述第一报文发送至所述第二端;
    其中,所述第二控制模块为所述第一端上第一应用外部的模块。
  13. 根据权利要求1至8中任一项所述的方法,其特征在于,还包括:
    接收所述第二端发送的第二报文;
    其中,所述第二报文,是所述第二端上的第三控制模块根据所述第二端上第二应用的第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息用于校验所述第二报文是否符合要求;
    所述第三控制模块位于所述第二应用内或所述第二应用的外部。
  14. 一种数据传输方法,其特征在于,适于第一端上第一应用外部的第二控制模块;所述方法包括:
    响应于所述第一应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;
    基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
    根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
    将所述第一报文发送至所述第二端;
    其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
  15. 根据权利要求14所述的方法,其特征在于,基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息,包括:
    获取所述第一数据块所属的第一数据流中数据块对应的头信息传输方式;
    根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
  16. 根据权利要求15所述的方法,其特征在于,根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段,包括:
    根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
    若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
    若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
  17. 根据权利要求16所述的方法,其特征在于,所述多个报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    为所述第一传输事务确定第一端对应的第二预置字符串;
    根据所述第二预置字符串、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
    其中,所述第一报文头包括:所述第二端对应的第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、所述第一目标头信息与所述第一数据块的总大小、标注信息;
    总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流;预置字符串为相应端的地址信息,或者预置字符串用于隐藏相应端的地址信息。
  18. 根据权利要求17所述的方法,其特征在于,预置字符串用于隐藏相应端的地址信息时,则
    将所述第一报文发送至所述第二端,包括:
    从所述第一事务信息包含的所述第一传输事务的传输事务属性信息中,获取所述第二端对应的第一预置字符串;
    根据所述第一预置字符串,获取所述第二端的地址信息;
    根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
  19. 根据权利要求18所述的方法,其特征在于,根据所述第二端的地址信息,将所述第一报文发送至所述第二端,包括:
    根据所述第二端的地址信息,将所述第一报文发送至中间网络设备,以通过所述中间网络设备将所述第一报文发送至所述第二端;
    其中,所述中间网络设备在将所述第一报文发送至所述第二端之前,还执行如下中的任一项:
    对所述第一报文包含的第一目标头信息进行校验;
    根据所述第一报文,生成所述第一传输事务的日志信息。
  20. 根据权利要求16所述的方法,其特征在于,所述多个报头字段中的部分报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
    其中,所述第二报文头包括所述第一传输事务的事务标识。
  21. 根据权利要求14至20中任一项所述的方法,其特征在于,响应于所述第一应用发送的需向所述第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务对应的第一事务信息,包括:
    为所述第一传输事务生成相应的事务标识;
    接收所述第一应用内的第一控制模块发送的所述第一数据块、以及所述第一数据块所属的第一传输事务的事务属性标识;
    基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
  22. 根据权利要求14至20中任一项所述的方法,其特征在于,还包括:
    接收所述第二端发送的第二报文;
    其中,所述第二报文,是所述第二端上的第三控制模块根据所述第二端上第二应用的第二数据流对应第二传输事务的第二事务信息,为所述第二数据流的第二数据块确定相应的第二目标头信息,并根据所述第二数据块及所述第二目标头信息生成的;所述第二目标头信息用于校验所述第二报文是否符合要求;
    所述第三控制模块位于所述第二应用内或所述第二应用的外部。
  23. 一种数据传输方法,其特征在于,适于中间网络设备上的第四控制模块,所述方法包括:
    响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;
    基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;
    根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;
    将所述第一报文发送至所述第二端;
    其中,所述第一目标头信息用于校验所述第一报文是否符合要求。
  24. 根据权利要求23所述的方法,其特征在于,基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息,包括:
    获取所述第一数据块所属的第一数据流中数据块对应的头信息传输方式;
    根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
  25. 根据权利要求24所述的方法,其特征在于,根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段,包括:
    根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在所述第一数据流中的排序;
    若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
    若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
  26. 根据权利要求25所述的方法,其特征在于,所述多个报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    为所述第一传输事务确定第一端对应的第二预置字符串;
    根据所述第二预置字符串、所述第一事务信息及所述第一数据块的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第一报文头;
    其中,所述第一报文头包括:所述第二端对应的第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、第一数据流中数据块的总数量、所述第一数据块的块号、所述第一目标头信息与所述第一数据块的总大小、标注信息;
    总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流;预置字符串为相应端的地址信息,或者预置字符串用于隐藏相应端的地址信息。
  27. 根据权利要求26所述的方法,其特征在于,预置字符串用于隐藏相应端的地址信息时,则
    将所述第一报文发送至所述第二端,包括:
    从所述第一事务信息包含的所述第一传输事务的传输事务属性信息中,获取所述第二端对应的第一预置字符串;
    根据所述第一预置字符串,获取所述第二端的地址信息;
    根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
  28. 根据权利要求25所述的方法,其特征在于,所述多个报头字段中的部分报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标 报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    基于所述第一事务信息中所述第一传输事务的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
    其中,所述第二报文头包括所述第一传输事务的事务标识。
  29. 根据权利要求23至28中任一项所述的方法,其特征在于,响应于第一端发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息,包括:
    为所述第一传输事务生成相应的事务标识;
    接收所述第一端上第一应用内第一控制模块或所述第一端上第一应用外部的第二控制模块发送的所述第一数据块,以及第一数据块所属的第一传输事务的事务属性标识;
    基于所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
  30. 根据权利要求23至28中任一项所述的方法,其特征在于,还包括:
    接收所述第二端发送的需向第一端传输的第二数据块,确定所述第二数据块所属的第二传输事务的第二事务信息;
    基于所述第二事务信息,为所述第二数据块确定相应的第二目标头信息;
    根据所述第二数据块及所述第二目标头信息,生成待发送的第二报文;
    将所述第二报文发送至所述第一端;
    其中,所述第二目标头信息用于校验所述第二报文是否符合要求。
  31. 一种数据传输方法,其特征在于,适于第一端连接的控制设备,所述方法包括:
    响应于所述第一端发送的需向第二端传输的第一数据块,获取所述第二端对应的第一预置字符串;其中,所述第一预置字符串用于隐藏所述第二端的地址信息;
    根据所述第一预置字符串,获取所述第二端的地址信息;
    根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
  32. 根据权利要求31所述的方法,其特征在于,获取所述第二端对应的第一预置字符串,包括:
    确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;
    从所述第一事务信息包含的传输事务属性信息中,获取所述第一预置字符串。
  33. 根据权利要求32所述的方法,其特征在于,根据所述第二端的地址信息,将所述第一数据块发送至所述第二端,包括:
    基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息;
    根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;
    根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
    其中,所述第一目标头信息用于校验所述第一报文是否符合要求,符合要求时所述第二端从所述第一报文中获取并缓存第一数据。
  34. 根据权利要求33所述的方法,其特征在于,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息,包括:
    获取所述第一数据流中数据块对应的头信息传输方式;
    根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段;
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头。
  35. 根据权利要求34所述的方法,其特征在于,根据所述头信息传输方式及所述第一数据块的相关信息,从预设报文头格式包含的多个报头字段中,为所述第一数据块确定目标报头字段,包括:
    根据所述相关信息中包含的所述第一数据块的块号,确定所述第一数据块在第一数据流中的排序;
    若所述头信息传输方式为第一方式,或所述头信息传输方式为第二方式、且所述第一数据块在所述第一数据流中排序最后,或所述头信息传输方式为第三方式、且所述第一数据块在为所述第一数据流中排序第一,则所述多个报头字段为所述目标报头字段;
    若所述头信息传输方式为第二方式、且所述数据块在所述第一数据流中排序非最后,或者所述头信息传输方式为第三方式、且所述数据块在所述第一数据流中排序非第一,则所述多个报头字段中的部分报头字段为所述目标报头字段。
  36. 根据权利要求35所述的方法,其特征在于,所述多个报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    获取所述第一端对应的第二预置字符串,所述第二预置字符串用于隐藏所述第一端的地址信息;
    基于所述第一预置字符串、所述第二预置字符串、所述第一事务信息及所述第一数据的相关信息,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第 一报文头;
    其中,所述第一报文头包括:所述第一预置字符串、所述第二预置字符串、所述第一传输事务的事务属性标识、所述第一传输事务的事务标识、目标头信息与第一数据块的总大小、第一数据流中数据块的总数量、所述第一数据块的序列号、标注信息;
    总数量为设定值时,表示所述第一数据流为数据块的数量未获知的流。
  37. 根据权利要求35所述的方法,其特征在于,所述多个报文字段中的部分报头字段为所述目标报头字段时,
    根据所述第一事务信息、所述第一数据块的相关信息中的至少一项,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的报文头,包括:
    基于所述第一事务信息中的事务标识,配置所述目标报头字段相应的字段值,得到为所述第一数据块确定的第二报文头;
    其中,所述第二报文头包括所述事务标识。
  38. 根据权利要求31至37中任一项所述的方法,其特征在于,还包括:
    从第一端对应的第二预置字符串关联的关联信息中,获取数据传输方向控制信息;
    若所述数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端,则触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作;
    若所述数据传输方向控制信息指示禁止控制设备将接收到的数据转发至所述第二端,则根据所述第一数据块所属的第一数据流的数据类型,触发所述根据第二端的地址信息,将所述第一数据块发送至所述第二端的操作。
  39. 根据权利要求38所述的方法,其特征在于,根据所述第一数据块所属的第一数据流的数据类型,触发所述根据所述第二端的地址信息,将所述第一数据块发送至所述第二端的操作,包括:
    所述数据类型为请求类型时,从所述关联信息中获取预设请求参数;根据所述第二端的地址信息,将所述预设请求参数发送至所述第二端;
    所述数据类型为非请求类型时,则不予进行发送处理。
  40. 根据权利要求38所述的方法,其特征在于,若数据传输方向控制信息指示允许控制设备将接收到的数据转发至所述第二端、但禁止所述控制设备对接收到的所述第二端发送的数据进行转发,则
    所述方法还包括:
    接收到所述第二端针对所述第一数据块返回的反馈信息时,对所述反馈信息不予进行发送处理。
  41. 根据权利要求31至37中任一项所述的方法,其特征在于,还包括:
    在与所述第一端建立通信连接时,接收所述第一端发送的连接校验信息;
    针对所述连接校验信息,向所述第一端反馈相应的校验结果,以便所述第一端基于所述校验结果确定是否与所述控制设备建立通信链路,以通过所述通信链路发送所述第一数据块;
    其中,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据。
  42. 一种数据传输系统,其特征在于,包括:
    第一端,其上第一应用内设有第一控制模块,所述第一控制模块用于确定所述第一应用的第一数据流对应第一传输事务的第一事务信息;在需向第二端传输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求;
    第二端,其上设有第三控制模块,所述第三控制模块用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取并缓存第一数据。
  43. 根据权利要求42所述的系统,其特征在于,还包括:中间网络设备,与所述第一端和所述第二端通信连接;
    所述第一控制模块,具体用于将所述第一报文发送至所述中间网络设备;
    所述中间网络设备,用于根据接收到的所述第一报文,生成所述第一传输事务的日志信息;将所述第一报文发送至所述第二端。
  44. 一种数据传输系统,其特征在于,包括:
    第一端,其上第一应用外部设有第二控制模块,所述第二控制模块用于响应于所述第一应用发送的需向第二端传输的第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求;
    所述第二端,其上设有第三控制模块,所述第三控制模块用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取第一数据。
  45. 根据权利要求44所述的系统,其特征在于,还包括:中间网络设备,与所述第一端和所述第二端通信连接;
    所述第二控制模块,具体用于将所述第一报文发送至所述中间网络设备;
    所述中间网络设备,用于根据接收到的所述第一报文,生成所述第一传输事务的日志信息;将所述第一报文发送至所述第二端。
  46. 一种数据传输系统,其特征在于,还包括:
    第一端,用于向中间网络设备发送需向第二端传输的第一数据块;
    中间网络设备,其上设有第四控制模块,用于接收所述第一数据块,确定所述第一数据块所属的第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否符合要求;
    所述第二端,其上设有第三控制模块,用于对所述第二端接收到的所述第一报文包含的第一目标头信息进行校验;校验通过后,从所述第一报文中获取第一数据。
  47. 根据权利要求46所述的系统,其特征在于,所述第一端上第一应用内设有第一控制模块或所述第一应用外部设有第二控制模块;
    所述第一控制模块或第二控制模块,用于将所述第一应用需向第一端传输的所述第一数据块、以及所述第一数据块所属的第一传输事务的事务属性信息发送至所述中间网络设备;
    所述中间网络设备,在用于确定所述第一数据块所述的第一传输事务的第一事务信息时,具体用于:
    为所述第一传输事务生成相应的事务标识;
    基于接收到的所述事务属性标识,从预置的多个传输事务属性信息中查询所述第一传输事务的传输事务属性信息。
  48. 一种数据传输系统,其特征在于,包括:
    第一端,用于确定第一数据流对应第一传输事务的第一事务信息;在需向第二端传 输所述第一数据流的第一数据块时,基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否要求;
    第二端,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,从所述第一报文中获取并缓存所述第一数据块。
  49. 根据权利要求48所述的系统,其特征在于,还包括:第一控制设备;
    所述第一端,具体用于将所述第一报文发送至所述第一控制设备;
    所述第一控制设备,用于接收所述第一报文;获取预设的数据传输安全控制信息;根据所述数据传输安全控制信息,对所述第一报文包含的所述第一目标头信息进行校验;若校验通过,将所述第一报文发送至所述第二端;若校验未通过,则对所述第一报文不予进行发送处理,或输出询问信息以询问用户是否允许对所述第一报文进行发送。
  50. 根据权利要求49所述的系统,其特征在于,所述第一控制设备,还用于:
    校验通过后,根据所述第一报文中包含的标注信息,判断所述第一报文是否满足所述数据传输安全控制信息中的数据备份条件;
    若满足所述数据备份条件,则对所述第一报文进行备份。
  51. 根据权利要求49或50所述的系统,其特征在于,所述第一控制设备为所述第一端的外部设备;以及,
    若所述第一端通过第一通信方式与所述第一控制设备进行通信,所述第一通信方式使用的是以信令指示传输的外部有线通信协议,则
    所述第一端,还用于在需与所述第一控制设备建立通信连接时,向所述第一控制设备发送连接校验信息,所述连接校验信息包括如下中的至少一项:携带有校验值的校验指令、与第一控制设备的设备驱动相关的验证数据;
    所述第一控制设备,用于针对所述连接校验信息,向第一端反馈相应的校验结果;
    所述第一端,还具体用于根据所述校验结果,确定与所述第一控制设备是否建立通信链路。
  52. 根据权利要求51所述的系统,其特征在于,
    所述第一端,在用于将所述第一报文发送至所述第一控制设备时,具体用于:获取第一信令,所述第一信令用于指示所述第一控制设备接收报文;通过与所述第一控制设备间的通信链路,将所述第一信令和所述第一报文发送至所述第一控制设备;
    所述第一控制设备,用于响应于所述第一信令,接收所述第一报文。
  53. 根据权利要求51所述的系统,其特征在于,若所述第一端通过第二通信方式与所述第一控制设备进行通信,所述第二通信方式使用的是配对连接的无线通信协议,则
    所述第一端,还用于在需与所述第一控制设备建立通信连接时,根据预置的控制设备配对连接参数,查找所述第一控制设备;查找到所述第一控制设备时,与所述第一控制设备进行配对校验;配对校验通过后,与所述第一控制设备建立通信链路。
  54. 根据权利要求49或50所述的系统,其特征在于,所述第一控制设备为所述第一端的内部设备,所述第一端通过第三通信方式与所述第一控制设备通信,所述第三通信方式使用的是内部有线通信协议;以及,
    所述第一端,还用于在需与所述第一控制设备建立通信连接时,根据预置的控制设备特征信息,扫描所述第一控制设备;并在扫描到所述第一控制设备时,与所述第一控制设备建立通信链路。
  55. 根据权利要求49或50所述的系统,其特征在于,还包括:中间网络设备,与所述第一控制设备及所述第二端通信连接;
    所述第一控制设备,具体用于将所述第一报文发送至至所述中间网络设备;
    所述中间网络设备,用于对接收到的所述第一报文进行校验,并在校验通过后,将所述第一报文发送至所述第二端;或者,用于根据接收到的所述第一报文,生成所述第一传输事务的日志信息,并将所述第一报文发送至所述第二端。
  56. 根据权利要求55所述的系统,其特征在于,还包括:第二控制设备,与所述第二端及所述中间网络设备通信连接;以及
    所述中间网络设备,具体用于将所述第一报文发送至所述第二控制设备;
    所述第二控制设备,用于对接收到的所述第一报文进行校验;并在校验通过后,响应于所述第二端发送的获取请求,将所述第一报文发送至所述第二端。
  57. 一种数据传输系统,其特征在于,包括:
    第一端,用于在需向第二端传输所述第一数据流的第一数据块时,将所述第一数据块发送至第一控制设备;
    第一控制设备,用于确定所述第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为接收到的所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二端;其中,所述第一目标头信息用于校验所述第一报文是否要求;
    第二端,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述 第一报文是否符合要求;符合要求时,从所述第一报文中获得并缓存所述第一数据块。
  58. 一种数据传输系统,其特征在于,包括:
    第一端,用于在需向第二端传输所述第一数据流的第一数据块时,将所述第一数据块发送至第一控制设备;
    第一控制设备,与所述第一端通信连接,用于确定所述第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为接收到的所述第一数据块确定相应的第一目标头信息;根据所述第一数据块及所述第一目标头信息,生成待发送的第一报文;将所述第一报文发送至所述第二控制设备;其中,所述第一目标头信息用于校验所述第一报文是否要求;
    第二控制设备,与所述第一控制设备及第二端通信连接,用于对接收到的所述第一报文包含的第一目标头信息进行校验,确定所述第一报文是否符合要求;符合要求时,将所述第一报文缓存于本地,以等待所述第二端获取;
    第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
  59. 一种数据传输系统,其特征在于,包括:
    第二端;
    第一端,用于将需向所述第二端传输的第一数据块发送至第一控制设备;
    第一控制设备,用于响应于所述第一端发送的所述第一数据块,获取所述第二端对应的第一预置字符串;其中,所述第一预置字符串用于隐藏所述第二端的地址信息;根据所述第一预置字符串,获取所述第二端的地址信息;根据所述第二端的地址信息,将所述第一数据块发送至所述第二端。
  60. 根据权利要求59所述的系统,其特征在于,第一控制设备,在用于根据所述第二端的地址信息,将所述第一数据块发送至所述第二端时,具体用于:
    确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;
    基于所述第一事务信息,为所述第一数据确定相应的第一目标头信息;
    根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;
    根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
    其中,所述第二预置字符串用于隐藏所述第一端的地址信息;所述第一目标头信息用于校验所述第一报文是否符合要求。
  61. 根据权利要求60所述的系统,其特征在于,还包括:第二控制设备,与所述第二端及所述第一控制设备通信连接;所述第二端的地址信息指向第二控制设备;
    以及,所述第一控制设备,具体用于根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
    所述第二控制设备,用于对接收到的所述第一报文进行校验;若校验通过,且接收到所述第二端发送的获取请求,则将所述第一报文发送至所述第二端;若校验未通过,则不予进行发送处理。
  62. 一种数据传输系统,其特征在于,包括:
    目标设备;
    第一端,用于在需向所述目标设备传输第一数据块时,获取所述目标设备对应的第一预置字符串;基于所述第一预置字符串及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置字符串用于隐藏目标设备的地址信息;
    第一控制设备,用于根据从所述第一报文中获取到的所述第一预置字符串,确定所述目标设备的地址信息;根据所述目标设备的地址信息,将所述第一报文发送至所述目标设备。
  63. 根据权利要求62所述的系统,其特征在于,所述目标设备包括第二端;
    所述第一控制设备,具体用于根据所述第一预置字符串,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端。
  64. 根据权利要求63所述的系统,其特征在于,所述目标设备还包括第二控制设备,与所述第二端及所述第一控制设备通信连接;所述第二端的地址信息指向第二控制设备;
    所述第一控制设备,具体用于根据所述第二端的地址信息,将所述第一报文发送至所述第二控制设备;
    第二控制设备,用于对接收到的所述第一报文进行校验;校验通过后,缓存所述第一报文,以等待所述第二端获取;
    第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
  65. 一种数据传输系统,其特征在于,包括:
    第一端,用于在需向第二端传输第一数据块时,获取所述第二端对应的第一预置字 符串;基于所述第一预置字符串及所述第一数据块,生成待发送的第一报文;将所述第一报文发送至所述第一控制设备;其中,第一预置字符串用于隐藏第二端的地址信息;
    第一控制设备,用于根据从所述第一报文中获取到的所述第一预置字符串,确定所述第二端的地址信息;根据所述第二端的地址信息,将所述第一报文发送至所述第二端;
    第二控制设备,用于缓存接收到的所述第一报文,以等待所述第二端获取;
    第二端,用于向所述第二控制设备发送获取请求;接收所述第二控制设备针对所述获取请求反馈的所述第一报文。
  66. 一种数据传输系统,其特征在于,包括:
    第一端,用于在需向第二端传输第一数据块时,获取第二端对应的第一预置字符串及所述第一端对应的第二预置字符串;将所述第一预置字符串、所述第二预置字符串及所述第一数据块发送至第一控制设备;其中,预置字符串用于隐藏相应端的地址信息;
    第一控制设备,用于确定所述第一数据块所属的第一数据流对应第一传输事务的第一事务信息;基于所述第一事务信息,为所述第一数据块确定相应的第一目标头信息;根据所述第一目标头信息及所述第一数据块,生成待发送的第一报文;并根据所述第一预置字符串获取到的第二端的地址信息,将所述第一报文发送至所述第二端;
    第二端,用于对接收到的所述第一报文进行校验;校验通过后,从所述第一报文中获得并缓存所述第一数据。
  67. 一种第一端,其特征在于,包括:
    安装在所述第一端上的第一应用;
    第一控制模块,位于所述第一应用内,用于实现上述权利要求1至13中任一项所述的数据传输方法。
  68. 一种第一端,其特征在于,包括:
    安装在所述第一端上的第一应用;
    第二控制模块,位于所述第一应用的外部,用于实现上述权利要求14至22中任一项所述的数据传输方法。
  69. 一种中间网络设备,其特征在于,包括:第四控制模块及存储器,其中,
    所述存储器,用于存储一条或多条计算机程序;
    所述第四控制模块,用于执行所述一条或多条计算机程序,以用于实现上述权利要求23至30中任一项所述的数据传输方法。
  70. 一种控制设备,其特征在于,包括:处理器及存储器,其中,
    所述存储器,用于存储一条或多条计算机指令;
    所述处理器,与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于实现上述权利要求31至41中任一项所述的数据传输方法。
PCT/CN2022/136012 2022-12-01 2022-12-01 数据传输方法、系统、第一端、中间网络设备及控制设备 WO2023151354A2 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/CN2022/136012 WO2023151354A2 (zh) 2022-12-01 2022-12-01 数据传输方法、系统、第一端、中间网络设备及控制设备
CN202310522087.8A CN116471109B (zh) 2022-12-01 2023-05-09 数据传输方法、系统、第一端及控制设备
CN202310522095.2A CN116760566A (zh) 2022-12-01 2023-05-09 数据传输方法、系统、第一端、中间网络设备及控制设备
CN202310801511.2A CN116708416A (zh) 2022-12-01 2023-06-30 数据传输控制方法、系统、控制设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/136012 WO2023151354A2 (zh) 2022-12-01 2022-12-01 数据传输方法、系统、第一端、中间网络设备及控制设备

Publications (2)

Publication Number Publication Date
WO2023151354A2 true WO2023151354A2 (zh) 2023-08-17
WO2023151354A3 WO2023151354A3 (zh) 2023-10-05

Family

ID=87182510

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/136012 WO2023151354A2 (zh) 2022-12-01 2022-12-01 数据传输方法、系统、第一端、中间网络设备及控制设备

Country Status (2)

Country Link
CN (3) CN116760566A (zh)
WO (1) WO2023151354A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962512A (zh) * 2023-09-20 2023-10-27 北京信安世纪科技股份有限公司 报文处理方法、设备、存储介质和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117714219B (zh) * 2024-02-18 2024-04-23 中国电子科技集团公司第三十研究所 一种设备地址/标识的隐藏还原方法及报文传输方法
CN117729172A (zh) * 2024-02-18 2024-03-19 成都深瑞同华科技有限公司 一种隔离网络环境下的数据传输方法、装置及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
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
US7054906B2 (en) * 2000-12-29 2006-05-30 Levosky Michael P System and method for controlling and organizing Email
DE102004032225B4 (de) * 2004-07-02 2007-07-12 Siemens Ag Verfahren und Einrichtung zum Aufbau und zum Betrieb einer Kommunikationsverbindung
US20070208845A1 (en) * 2006-02-03 2007-09-06 Fazal Raheman Novel method and system of anonymizing real time Internet communications between peers
CN101262416B (zh) * 2007-03-06 2012-04-25 华为技术有限公司 通信系统中用户位置隐藏的方法、系统及装置
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 メール転送装置、メール転送方法及びプログラム
JP5344194B2 (ja) * 2008-07-31 2013-11-20 日本電気株式会社 匿名通信システム
CN102611531B (zh) * 2012-03-12 2015-09-16 成都龙冠科技实业有限公司 一种单向数据传输方法
CN103763374A (zh) * 2014-01-23 2014-04-30 深圳联友科技有限公司 基于udt的数据传输方法及装置
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
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
JP6771650B2 (ja) * 2016-08-09 2020-10-21 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
CN109451084B (zh) * 2018-09-14 2020-12-22 华为技术有限公司 一种服务访问方法及装置
CN110611671A (zh) * 2019-09-12 2019-12-24 北京邮电大学 基于移动目标防御的局域网通信方法及装置
CN111510440B (zh) * 2020-04-07 2022-09-20 中国民航信息网络股份有限公司 一种数据交换方法及系统
CN111711710B (zh) * 2020-05-27 2022-11-11 北京金山云网络技术有限公司 访问MongoDB复制集集群的方法、装置、设备及存储介质
CN114697347B (zh) * 2020-12-15 2023-06-27 中国科学院声学研究所 一种具备网内存储能力的数据传输系统
CN113347198B (zh) * 2021-06-23 2022-07-08 深圳壹账通智能科技有限公司 Arp报文处理方法、装置、网络设备及存储介质
CN114844842A (zh) * 2022-05-07 2022-08-02 湖南戎腾网络科技有限公司 数据传输方法、装置、电子设备及可读存储介质
CN114844729B (zh) * 2022-07-04 2022-09-30 中国人民解放军国防科技大学 一种网络信息隐藏方法及系统
CN115361166A (zh) * 2022-07-13 2022-11-18 亿点云计算(珠海)有限公司 基于分布式云服务的访问请求处理方法及相关设备
CN115408707B (zh) * 2022-11-03 2023-03-24 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、装置、系统及电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962512A (zh) * 2023-09-20 2023-10-27 北京信安世纪科技股份有限公司 报文处理方法、设备、存储介质和装置
CN116962512B (zh) * 2023-09-20 2024-01-05 北京信安世纪科技股份有限公司 报文处理方法、设备、存储介质和装置

Also Published As

Publication number Publication date
CN116708416A (zh) 2023-09-05
CN116471109B (zh) 2024-03-05
CN116471109A (zh) 2023-07-21
WO2023151354A3 (zh) 2023-10-05
CN116760566A (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
US11722521B2 (en) Application firewall
US10735184B2 (en) Secure storage of hashes within a distributed ledger
WO2023151354A2 (zh) 数据传输方法、系统、第一端、中间网络设备及控制设备
JP6656157B2 (ja) ネットワーク接続自動化
US9015845B2 (en) Transit control for data
RU2680736C1 (ru) Сервер и способ для определения вредоносных файлов в сетевом трафике
US20140282978A1 (en) Method and apparatus for secure interaction with a computer service provider
TW200905515A (en) Systems, methods and media for firewall control via remote system information
US20210399897A1 (en) Protection of online applications and webpages using a blockchain
Ajayi et al. Secured cyber-attack signatures distribution using blockchain technology
CN104063633A (zh) 一种基于过滤驱动的安全审计系统
GB2541000A (en) Security Device
US10032027B2 (en) Information processing apparatus and program for executing an electronic data in an execution environment
US20150032793A1 (en) Information processing apparatus
US11595372B1 (en) Data source driven expected network policy control
US11681731B2 (en) Systems and methods for secure storage and retrieval of trade data
WO2022151736A1 (zh) 一种确定信任终端的方法及相关装置
KR101425726B1 (ko) 네트워크 분리 환경에서 가상화 기반 네트워크 연계 보안 시스템 및 그 방법
KR102534012B1 (ko) 컨텐츠 제공자의 보안등급을 인증하는 시스템 및 그 방법
US20230351028A1 (en) Secure element enforcing a security policy for device peripherals
Foltz et al. Secure Endpoint Device Agent Architecture.
Foltz et al. Enterprise Security with Endpoint Agents
TW202145033A (zh) 加密和驗證敏感參數的電腦程式產品和裝置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22925705

Country of ref document: EP

Kind code of ref document: A2