CN112866206A - 一种单向数据传输方法及装置 - Google Patents

一种单向数据传输方法及装置 Download PDF

Info

Publication number
CN112866206A
CN112866206A CN202011642694.0A CN202011642694A CN112866206A CN 112866206 A CN112866206 A CN 112866206A CN 202011642694 A CN202011642694 A CN 202011642694A CN 112866206 A CN112866206 A CN 112866206A
Authority
CN
China
Prior art keywords
data
private protocol
application
unidirectional
private
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011642694.0A
Other languages
English (en)
Inventor
常艳青
李仁江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
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 Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202011642694.0A priority Critical patent/CN112866206A/zh
Publication of CN112866206A publication Critical patent/CN112866206A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/164Adaptation or special uses of UDP protocol
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种单向数据传输方法及装置,应用于网络安全领域,方法包括:通过应用代理软件读取应用程序中的应用数据,并利用私有协议对应用数据进行数据封装,得到私有协议封装数据;通过应用代理软件将私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;通过单向隔离部件驱动从缓存空间中获取私有协议封装数据,并将私有协议封装数据传输至内端机。在上述方案中,通过在外端机的内核空间中构建缓存空间,同时向外端机的应用代理软件提供套接字接口用于收发数据,从而在将数据传输给内端机的过程中绕过协议栈,以使内端机在接收数据的过程中同样绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。

Description

一种单向数据传输方法及装置
技术领域
本申请涉及网络安全领域,具体而言,涉及一种单向数据传输方法及装置。
背景技术
在现有技术中,单向光闸的外端机和内端机分别运行应用代理软件。外端机应用代理软件与应用软件完成数据交互后,将数据转发至内端机应用代理软件,内端机应用代理软件最终将数据转发到处于内网的应用软件。在传输过程中,外端机应用代理软件产生的数据先后经过用户数据报协议(User Datagram Protocol,UDP)协议封装、网际互连协议(Internet Protocol,IP)协议封装,最后经由路由转发到外端机的内联口。当报文到达内端机后,报文又先后经过路由、IP报文解封装、UDP协议解封装,最后内端机应用代理软件接收到数据。
在上述数据传输的过程中,内端机应用代理软件使用UDP协议收取数据包时,在高吞吐的传输场景中,容易出现丢失UDP数据包的现象,从而降低了数据传输的可靠性。
发明内容
本申请实施例的目的在于提供一种单向数据传输方法及装置,用以解决数据传输的可靠性较低的技术问题。
为了实现上述目的,本申请实施例所提供的技术方案如下所示:
第一方面,本申请实施例提供一种单向数据传输方法,应用于外端机,包括:通过应用代理软件读取应用程序中的应用数据,并利用私有协议对所述应用数据进行数据封装,得到私有协议封装数据;通过应用代理软件将所述私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据,并将所述私有协议封装数据传输至内端机。在上述方案中,通过在外端机的内核空间中构建缓存空间,同时向外端机的应用代理软件提供套接字接口用于收发数据,从而在将数据传输给内端机的过程中绕过协议栈,以使内端机在接收数据的过程中同样绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
在本申请的可选实施例中,所述私有协议封装数据包括:数据标识;在所述通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据之后,所述方法还包括:通过单向隔离部件驱动利用私有分片协议将所述私有协议封装数据分为多个数据帧;其中,每个数据帧包括所述数据标识以及分片标识,且每个数据帧的数据大小小于预设阈值;所述通过单向隔离部件驱动将所述私有协议封装数据传输至内端机,包括:通过单向隔离部件驱动将所述数据帧传输至所述内端机。在上述方案中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
在本申请的可选实施例中,所述私有协议封装数据还包括:数据起始标识以及数据终止标识;所述多个数据帧中,存在一个数据帧包括所述数据起始标识以及存在另一个数据帧包括所述数据终止标识。在上述方案中,在外端机中分片得到的多个数据帧中,存在一个包括数据起始标识以及另一个数据帧包括数据终止标识,从而内端机接收到数据帧时对多个数据帧进行重组得到原始数据。
第二方面,本申请实施例提供一种单向数据传输方法,应用于内端机,包括:通过单向隔离部件接收外端机传输的私有协议封装数据,并将所述私有协议封装数据写入预先创建的缓存空间;通过应用代理软件通过预先创建的套接字读取所述缓存空间中的所述私有协议封装数据;通过应用代理软件利用私有协议对所述私有协议封装数据进行解封装,得到应用数据;通过应用代理软件向应用程序传输所述应用数据。在上述方案中,通过在内端机的内核空间中构建缓存空间,同时向内端机的应用代理软件提供套接字接口用于收发数据,从而在接收外端机传输的数据的过程中绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
在本申请的可选实施例中,所述私有协议封装数据包括:数据标识;所述通过单向隔离部件接收外端机传输的私有协议封装数据,包括:通过单向隔离部件接收外端机传输的数据帧;在所述通过单向隔离部件接收外端机传输的数据帧之后,所述方法还包括:通过单向隔离部件根据所述数据帧的数据标识计算所述数据帧对应的哈希值,并将所述哈希值存储至哈希表中;通过单向隔离部件驱动查询所述哈希表中是否存在相同哈希值,若存在,则将所述相同哈希值对应的数据帧进行数据重组,得到所述私有协议封装数据。在上述方案中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
第三方面,本申请实施例提供一种单向数据传输装置,应用于外端机,包括:封装模块,用于通过应用代理软件读取应用程序中的应用数据,并利用私有协议对所述应用数据进行数据封装,得到私有协议封装数据;写入模块,用于通过应用代理软件将所述私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;获取模块,用于通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据,并将所述私有协议封装数据传输至内端机。在上述方案中,通过在外端机的内核空间中构建缓存空间,同时向外端机的应用代理软件提供套接字接口用于收发数据,从而在将数据传输给内端机的过程中绕过协议栈,以使内端机在接收数据的过程中同样绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
在本申请的可选实施例中,所述私有协议封装数据包括:数据标识;所述单向数据传输装置还包括:分片模块,用于通过单向隔离部件驱动利用私有分片协议将所述私有协议封装数据分为多个数据帧;其中,每个数据帧包括所述数据标识以及分片标识,且每个数据帧的数据大小小于预设阈值;所述获取模块还用于:通过单向隔离部件驱动将所述数据帧传输至所述内端机。在上述方案中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
在本申请的可选实施例中,所述私有协议封装数据还包括:数据起始标识以及数据终止标识;所述多个数据帧中,存在一个数据帧包括所述数据起始标识以及存在另一个数据帧包括所述数据终止标识。在上述方案中,在外端机中分片得到的多个数据帧中,存在一个包括数据起始标识以及另一个数据帧包括数据终止标识,从而内端机接收到数据帧时对多个数据帧进行重组得到原始数据。
第四方面,本申请实施例提供一种单向数据传输装置,应用于内端机,包括:接收模块,用于通过单向隔离部件接收外端机传输的私有协议封装数据,并将所述私有协议封装数据写入预先创建的缓存空间;读取模块,用于通过应用代理软件通过预先创建的套接字读取所述缓存空间中的所述私有协议封装数据;解封装模块,用于通过应用代理软件利用私有协议对所述私有协议封装数据进行解封装,得到应用数据;传输模块,用于通过应用代理软件向应用程序传输所述应用数据。在上述方案中,通过在内端机的内核空间中构建缓存空间,同时向内端机的应用代理软件提供套接字接口用于收发数据,从而在接收外端机传输的数据的过程中绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
在本申请的可选实施例中,所述私有协议封装数据包括:数据标识;所述接收模块还用于:通过单向隔离部件接收外端机传输的数据帧;所述单向数据传输装置还包括:计算模块,用于通过单向隔离部件根据所述数据帧的数据标识计算所述数据帧对应的哈希值,并将所述哈希值存储至哈希表中;重组模块,用于通过单向隔离部件驱动查询所述哈希表中是否存在相同哈希值,若存在,则将所述相同哈希值对应的数据帧进行数据重组,得到所述私有协议封装数据。在上述方案中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
第五方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面或者第二方面中的单向数据传输方法。
第六方面,本申请实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面或者第二方面中的单向数据传输方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举本申请实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的现有的单向数据传输示意图;
图2为本申请实施例提供的单向数据传输示意图;
图3为本申请实施例提供的一种应用于外端机的单向数据传输方法;
图4为本申请实施例提供的一种应用于内端机的单向数据传输方法;
图5为本申请实施例提供的一种应用于外端机的单向数据传输装置的结构框图;
图6为本申请实施例提供的一种应用于内端机的单向数据传输装置的结构框图;
图7为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
单向光闸作为不同网络间、不同安全域之间的物理隔离设备,仅允许数据的单向无反馈传输,因此,对于政府、军事等内部网络来说,为了防止重要信息外泄,可以采用单向光闸,实现外部网络中的邮件、文件等数据仅能单向传输到内部网络,而内部网络的数据无法传输至外部网络中。
一般来说,单向光闸包括外端机、内端机以及隔离卡三个部分,其中,外端机和内端机分别运行代理软件,且外端机与内端机之间使用单向隔离部件进行单向无反馈通信。
在现有技术中,外端机应用代理软件与应用软件完成数据交互后,将数据转发至内端机应用代理软件,内端机应用代理软件最终将数据转发到处于内网的应用软件。在传输过程中,外端机应用代理软件产生的数据先后经过用户数据报协议UDP协议封装、网际互连协议IP协议封装,最后经由路由转发到外端机的内联口。当报文到达内端机后,报文又先后经过路由、IP报文解封装、UDP协议解封装,最后内端机应用代理软件接收到数据。
请参照图1,图1为本申请实施例提供的现有的单向数据传输示意图。在上述数据传输的过程中,存在以下缺陷:第一,应用代理软件在收发UDP数据时,需要经过TCP/IP协议栈,报文传送路径较多;第二,应用代理软件收取UDP数据包时会占用较高的CPU资源;第三,当出现内端机应用代理软件短暂的忙于处理业务或大量小数据包等情况而无法及时收取UDP数据时,会出现协议栈中数据堆积现象,当无空余缓存空间时,协议栈会丢失新接收到的UDP数据包。基于上述缺陷,使得在高吞吐场景中,数据收发的可靠性较低。
基于上述分析,本申请实施例提供一种单向数据传输方法,该方法提出了在内核空间自行构建缓存区绕过协议栈的方案,即代替网络协议栈套接字缓存的数据管理功能,从而提高数据收发的可靠性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参照图2,图2为本申请实施例提供的单向数据传输示意图,外端机以及内端机均可以分为应用层、内核层以及硬件层三个部分。
其中,外端机的应用层中有应用代理软件,用于基于TCP协议、IP协议等方式与应用程序进行通信,以获取到应用程序中的应用数据;当电子设备启动时,外端机的应用代理软件可以根据预先约定好的套接字类型在内核层中创建套接字(图2以NETLINK套接字为例)并根据预先设置的参数在内核层中初始化缓存空间;外端机的硬件层的单向隔离部件可以驱动数据从缓存空间中传输至内端机。
举例来说,NETLINK套接字可以为上层应用提供标准的socket、sendmsg、recvmsg、close等IO接口,同时可以为下层单向隔离部件驱动提供数据接收和发送的接口。此外,NETLINK套接字内部还可以实现打开、关闭、数据读写、私有分片协议管理和数据缓存管理等功能。
类似的,内端机的硬件层的单向隔离部件可以接收外端机传输的数据并驱动数据写入缓存空间中;当电子设备启动时,内端机的应用代理软件可以根据预先约定好的套接字类型在内核层中创建与外端机中对应的套接字,并根据预先设置的参数在内核层中初始化缓存空间;内端机的应用层中有应用代理软件,用于基于TCP协议、IP协议等方式与应用程序进行通信,以向应用程序发送应用数据。
基于上述单向数据传输的原理,下面介绍本申请实施例提供的一种单向数据传输方法。
请参照图3,图3为本申请实施例提供的一种应用于外端机的单向数据传输方法,该单向数据传输方法可以包括如下步骤:
步骤S301:通过应用代理软件读取应用程序中的应用数据,并利用私有协议对应用数据进行数据封装,得到私有协议封装数据。
步骤S302:通过应用代理软件将私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间。
步骤S303:通过单向隔离部件驱动从缓存空间中获取私有协议封装数据,并将私有协议封装数据传输至内端机。
具体的,电子设备启动后,外端机通过应用代理软件根据预先约定好的套接字类型创建套接字,并根据预先设置的参数创建与套接字对应的存储空间。可以理解的是,当电子设备关闭后,外端机可以通过应用代理软件关闭套接字,套接字关闭后,缓存空间释放。
在预先创建好外端机中的套接字以及缓存空间之后,当用户在外部网络的电子设备上通过应用程序向内部网络的电子设备发送数据时,可以开始执行上述步骤S301。
外端机可以通过应用代理软件读取应用程序中的应用数据,并利用私有协议对应用数据进行数据封装,得到私有协议封装数据,也就是说,外端机每次通过应用代理软件读写数据时均使用上述私有协议对数据进行处理。
作为一种实施方式,经过私有协议封装后的数据,可以包括三部分内容,分别为:数据标识(ID,4byte)、数据长度(data_len,4byte)以及数据内容(data);作为另一种实施方式,经过私有协议封装后的数据,可以包括四部分内容,分别为:数据标识(ID,4byte)、数据长度(data_len,4byte)、数据内容(data)以及数据起始标识和数据终止标识。
可以理解的是,上述经过私有协议封装后的数据格式仅为本申请实施例提供的示例,本领域技术人员可以根据实际情况进行合适的调整,本申请实施例对此不作具体的限定。
然后,外端机可以通过应用代理软件将步骤S301中封装得到的私有协议封装数据通过套接字写入缓存空间中,并通过单向隔离部件驱动从缓存空间中获取私有协议封装数据,并将私有协议封装数据传输至内端机。
在上述方案中,通过在外端机的内核空间中构建缓存空间,同时向外端机的应用代理软件提供套接字接口用于收发数据,从而在将数据传输给内端机的过程中绕过协议栈,以使内端机在接收数据的过程中同样绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
进一步的,由于传输的数据的数据量可能较大,因此为了提高数据传输的效率,在上述通过单向隔离部件驱动从缓存空间中获取私有协议封装数据的步骤之后,本申请实施例提供的单向数据传输方法还可以包括如下步骤:
通过单向隔离部件驱动利用私有分片协议将私有协议封装数据分为多个数据帧。
对应的,上述通过单向隔离部件驱动将私有协议封装数据传输至内端机的步骤可以包括如下步骤:
通过单向隔离部件驱动将数据帧传输至内端机。
具体的,外端机在通过单向隔离部件驱动获取到私有协议封装数据之后,可以利用私有分片协议对私有协议封装数据进行分片,也就是说,将一个完整的私有协议封装数据分为多个数据帧,且每个数据帧的数据大小小于预设阈值。其中,预设阈值的大小可以实际情况进行合适的调整,本申请实施例对此不作具体的限定。
作为一种实施方式,每个数据帧可以包括一个数据标识以及一个分片标识。其中,针对不同的协议或者相同的协议但是不同的连接传输的数据,其私有协议封装数据的数据标识不同,但同一私有协议封装数据对应的多个数据帧的数据标识相同;针对相同协议且相同连接传输的数据,其私有协议封装数据的数据标识相同,且同一私有协议封装数据对应的多个数据帧的数据标识相同。
作为另一种实施方式,针对同一私有协议封装数据对应的多个数据帧,每个数据帧的分片标识不同。其中,分片标识用于区分不同的数据帧,并在数据重组的过程中用于使重组得到的数据与分片前的原始数据相同。举例来说,在分片的过程中,将一个私有协议封装数据分为了三个数据帧,因此,按照原始数据中数据帧的顺序,分别向三个数据帧分配1、2、3三个分片标识,这样,在数据重组的过程中,可以将分片标识为1的数据帧放在最前面,分片标识为3的数据帧放在最后面。
在上述方案中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
进一步的,在上述实施例的基础上,本申请实施例提供的经过私有协议封装后的私有协议封装数据中还可以包括:数据起始标识以及数据终止标识。
具体的,由于私有协议封装数据中包括数据起始标识以及数据终止标识,因此,在将私有协议封装数据进行分片的过程中,位于最前面的数据帧中也会包括数据起始标识,而位于最后面的数据帧中也会包括数据终止标识。这样,在数据重组的过程中,可以根据数据起始标识以及数据终止标识知晓当前重组得到的数据是否为完整的原始数据。
在上述方案中,在外端机中分片得到的多个数据帧中,存在一个包括数据起始标识以及另一个数据帧包括数据终止标识,从而内端机接收到数据帧时对多个数据帧进行重组得到原始数据。
请参照图4,图4为本申请实施例提供的一种应用于内端机的单向数据传输方法,该单向数据传输方法可以包括如下步骤:
步骤S401:通过单向隔离部件接收外端机传输的私有协议封装数据,并将私有协议封装数据写入预先创建的缓存空间。
步骤S402:通过应用代理软件通过预先创建的套接字读取缓存空间中的私有协议封装数据。
步骤S403:通过应用代理软件利用私有协议对私有协议封装数据进行解封装,得到应用数据。
步骤S404:通过应用代理软件向应用程序传输应用数据。
具体的,与外端机类似,电子设备启动后,内端机通过应用代理软件根据预先约定好的套接字类型创建套接字,并根据预先设置的参数创建与套接字对应的存储空间。可以理解的是,当电子设备关闭后,内端机可以通过应用代理软件关闭套接字,套接字关闭后,缓存空间释放。
在预先创建好内端机中的套接字以及缓存空间之后,内端机可以通过单向隔离部件接收外端机传输的私有协议封装数据,并将私有协议封装数据写入缓存空间中进行存储。当用户在内部网络的电子设备上通过应用程序请求外部网络的数据时,可以开始执行上述步骤S402。
内端机可以通过应用代理软件通过套接字读取缓存空间中的私有协议封装数据,然后利用私有协议对私有协议封装数据进行解封装,从而得到应用数据,并向应用程序传输上述应用数据。
在上述方案中,通过在内端机的内核空间中构建缓存空间,同时向内端机的应用代理软件提供套接字接口用于收发数据,从而在接收外端机传输的数据的过程中绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
进一步的,当外端机在传输数据的过程中对私有协议封装数据进行了分片得到了多个数据帧,则内端机需要根据需求对多个数据帧进行数据重组,以得到原始的数据。因此,在通过单向隔离部件接收外端机传输的数据帧的步骤之后,本申请实施例提供的单向数据传输方法还可以包括如下步骤:
第一步,通过单向隔离部件根据数据帧的数据标识计算数据帧对应的哈希值,并将哈希值存储至哈希表中。
第二步,通过单向隔离部件驱动查询哈希表中是否存在相同哈希值,若存在,则将相同哈希值对应的数据帧进行数据重组,得到私有协议封装数据。
具体的,由于在数据传输的过程中可能存在数据帧的穿插,也就是相同数据标识对应的数据帧没有同时传输至内端机中,因此,在接收到数据帧之后,可以首先根据数据帧的数据标识计算数据帧对应的哈希值,并将哈希值存储至哈希表中,从而通过哈希表实现对相同数据标识的数据帧的映射关系。
然后,内端机再通过单向隔离部件驱动查询上述哈希表中,是否存在与根据当前数据帧的数据标识计算得到的哈希值相同的哈希值。如果存在,则说明之前接收到的数据帧中存在与当前数据帧数据标识相同的数据帧,也就是说,来自于同一个私有协议封装数据,因此,可以根据分片标识对数据帧进行数据重组,得到私有协议封装数据。
可以理解的是,内端机传输给应用程序的数据可以是完整的数据(也就是完整的私有协议封装数据解封装得到的数据),也可以是不完整的数据(例如:一个数据帧解封装得到的数据或者多个数据帧重组后得到的数据解封装得到的数据),本申请实施例对此不作具体的限定。
作为一种实施方式,当私有协议封装数据中包括数据起始标识以及数据终止标识时,内端机在重组数据的过程中,可以根据数据起始标识以及数据终止标识知晓当前重组得到的数据是否为完整的私有协议封装数据。
在上述方案中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
请参照图5,图5为本申请实施例提供的一种应用于外端机的单向数据传输装置的结构框图,该单向数据传输装置500可以包括:封装模块501,用于通过应用代理软件读取应用程序中的应用数据,并利用私有协议对所述应用数据进行数据封装,得到私有协议封装数据;写入模块502,用于通过应用代理软件将所述私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;获取模块503,用于通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据,并将所述私有协议封装数据传输至内端机。
在本申请实施例中,通过在外端机的内核空间中构建缓存空间,同时向外端机的应用代理软件提供套接字接口用于收发数据,从而在将数据传输给内端机的过程中绕过协议栈,以使内端机在接收数据的过程中同样绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
进一步的,所述私有协议封装数据包括:数据标识;所述单向数据传输装置500还包括:分片模块,用于通过单向隔离部件驱动利用私有分片协议将所述私有协议封装数据分为多个数据帧;其中,每个数据帧包括所述数据标识以及分片标识,且每个数据帧的数据大小小于预设阈值;所述获取模块503还用于:通过单向隔离部件驱动将所述数据帧传输至所述内端机。
在本申请实施例中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
进一步的,所述私有协议封装数据还包括:数据起始标识以及数据终止标识;所述多个数据帧中,存在一个数据帧包括所述数据起始标识以及存在另一个数据帧包括所述数据终止标识。
在本申请实施例中,在外端机中分片得到的多个数据帧中,存在一个包括数据起始标识以及另一个数据帧包括数据终止标识,从而内端机接收到数据帧时对多个数据帧进行重组得到原始数据。
请参照图6,图6为本申请实施例提供的一种应用于内端机的单向数据传输装置的结构框图,该单向数据传输可以包括:接收模块601,用于通过单向隔离部件接收外端机传输的私有协议封装数据,并将所述私有协议封装数据写入预先创建的缓存空间;读取模块602,用于通过应用代理软件通过预先创建的套接字读取所述缓存空间中的所述私有协议封装数据;解封装模块603,用于通过应用代理软件利用私有协议对所述私有协议封装数据进行解封装,得到应用数据;传输模块604,用于通过应用代理软件向应用程序传输所述应用数据。
在本申请实施例中,通过在内端机的内核空间中构建缓存空间,同时向内端机的应用代理软件提供套接字接口用于收发数据,从而在接收外端机传输的数据的过程中绕过协议栈,避免出现丢失UDP数据包的现象,因此可以提高数据传输的可靠性。
进一步的,所述私有协议封装数据包括:数据标识;所述接收模块601还用于:通过单向隔离部件接收外端机传输的数据帧;所述单向数据传输装置600还包括:计算模块,用于通过单向隔离部件根据所述数据帧的数据标识计算所述数据帧对应的哈希值,并将所述哈希值存储至哈希表中;重组模块,用于通过单向隔离部件驱动查询所述哈希表中是否存在相同哈希值,若存在,则将所述相同哈希值对应的数据帧进行数据重组,得到所述私有协议封装数据。
在本申请实施例中,外端机在将数据传输给内端机的过程中,可以对数据量较大的数据进行分片,从而得到多个数据大小小于预设阈值的数据帧,且内端机可以根据数据标识以及分片标识对多个数据帧进行重组得到原始数据,因此可以提高数据传输的效率。
请参照图7,图7为本申请实施例提供的一种电子设备的结构框图,该电子设备700包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704。其中,通信总线704用于实现这些组件直接的连接通信,通信接口702用于与其他节点设备进行信令或数据的通信,存储器703存储有处理器701可执行的机器可读指令。当电子设备700运行时,处理器701与存储器703之间通过通信总线704通信,机器可读指令被处理器701调用时执行上述单向数据传输方法。
例如,本申请实施例的处理器701通过通信总线704从存储器703读取计算机程序并执行该计算机程序可以实现如下方法:步骤S301:通过应用代理软件读取应用程序中的应用数据,并利用私有协议对应用数据进行数据封装,得到私有协议封装数据。步骤S302:通过应用代理软件将私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间。步骤S303:通过单向隔离部件驱动从缓存空间中获取私有协议封装数据,并将私有协议封装数据传输至内端机。在一些示例中,处理器701还可以执行如下步骤:步骤S401:通过单向隔离部件接收外端机传输的私有协议封装数据,并将私有协议封装数据写入预先创建的缓存空间。步骤S402:通过应用代理软件通过预先创建的套接字读取缓存空间中的私有协议封装数据。步骤S403:通过应用代理软件利用私有协议对私有协议封装数据进行解封装,得到应用数据。步骤S404:通过应用代理软件向应用程序传输应用数据。
处理器701可以是一种集成电路芯片,具有信号处理能力。上述处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器703可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可以理解,图7所示的结构仅为示意,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备700可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备700也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
本申请实施例还提供一种计算机程序产品,包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述实施例中单向数据传输方法的步骤,例如包括:通过应用代理软件读取应用程序中的应用数据,并利用私有协议对所述应用数据进行数据封装,得到私有协议封装数据;通过应用代理软件将所述私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据,并将所述私有协议封装数据传输至内端机。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种单向数据传输方法,其特征在于,应用于外端机,包括:
通过应用代理软件读取应用程序中的应用数据,并利用私有协议对所述应用数据进行数据封装,得到私有协议封装数据;
通过应用代理软件将所述私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;
通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据,并将所述私有协议封装数据传输至内端机。
2.根据权利要求1所述的单向数据传输方法,其特征在于,所述私有协议封装数据包括:数据标识;
在所述通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据之后,所述方法还包括:
通过单向隔离部件驱动利用私有分片协议将所述私有协议封装数据分为多个数据帧;其中,每个数据帧包括所述数据标识以及分片标识,且每个数据帧的数据大小小于预设阈值;
所述通过单向隔离部件驱动将所述私有协议封装数据传输至内端机,包括:
通过单向隔离部件驱动将所述数据帧传输至所述内端机。
3.根据权利要求2所述单向数据传输方法,其特征在于,所述私有协议封装数据还包括:数据起始标识以及数据终止标识;
所述多个数据帧中,存在一个数据帧包括所述数据起始标识以及存在另一个数据帧包括所述数据终止标识。
4.一种单向数据传输方法,其特征在于,应用于内端机,包括:
通过单向隔离部件接收外端机传输的私有协议封装数据,并将所述私有协议封装数据写入预先创建的缓存空间;
通过应用代理软件通过预先创建的套接字读取所述缓存空间中的所述私有协议封装数据;
通过应用代理软件利用私有协议对所述私有协议封装数据进行解封装,得到应用数据;
通过应用代理软件向应用程序传输所述应用数据。
5.根据权利要求4所述的单向数据传输方法,其特征在于,所述私有协议封装数据包括:数据标识;
所述通过单向隔离部件接收外端机传输的私有协议封装数据,包括:
通过单向隔离部件接收外端机传输的数据帧;
在所述通过单向隔离部件接收外端机传输的数据帧之后,所述方法还包括:
通过单向隔离部件根据所述数据帧的数据标识计算所述数据帧对应的哈希值,并将所述哈希值存储至哈希表中;
通过单向隔离部件驱动查询所述哈希表中是否存在相同哈希值,若存在,则将所述相同哈希值对应的数据帧进行数据重组,得到所述私有协议封装数据。
6.一种单向数据传输装置,其特征在于,应用于外端机,包括:
封装模块,用于通过应用代理软件读取应用程序中的应用数据,并利用私有协议对所述应用数据进行数据封装,得到私有协议封装数据;
写入模块,用于通过应用代理软件将所述私有协议封装数据通过预先创建的套接字写入预先创建的缓存空间;
获取模块,用于通过单向隔离部件驱动从所述缓存空间中获取所述私有协议封装数据,并将所述私有协议封装数据传输至内端机。
7.根据权利要求6所述的单向数据传输装置,其特征在于,所述私有协议封装数据包括:数据标识;
所述装置还包括:
分片模块,用于通过单向隔离部件驱动利用私有分片协议将所述私有协议封装数据分为多个数据帧;其中,每个数据帧包括所述数据标识以及分片标识,且每个数据帧的数据大小小于预设阈值;
所述获取模块还用于:
通过单向隔离部件驱动将所述数据帧传输至所述内端机。
8.一种单向数据传输装置,其特征在于,应用于内端机,包括:
接收模块,用于通过单向隔离部件接收外端机传输的私有协议封装数据,并将所述私有协议封装数据写入预先创建的缓存空间;
读取模块,用于通过应用代理软件通过预先创建的套接字读取所述缓存空间中的所述私有协议封装数据;
解封装模块,用于通过应用代理软件利用私有协议对所述私有协议封装数据进行解封装,得到应用数据;
传输模块,用于通过应用代理软件向应用程序传输所述应用数据。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-3任一项所述的单向数据传输方法或者4或5所述的单向数据传输方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-3任一项所述的单向数据传输方法或者4或5所述的单向数据传输方法。
CN202011642694.0A 2020-12-31 2020-12-31 一种单向数据传输方法及装置 Pending CN112866206A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011642694.0A CN112866206A (zh) 2020-12-31 2020-12-31 一种单向数据传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011642694.0A CN112866206A (zh) 2020-12-31 2020-12-31 一种单向数据传输方法及装置

Publications (1)

Publication Number Publication Date
CN112866206A true CN112866206A (zh) 2021-05-28

Family

ID=76000815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011642694.0A Pending CN112866206A (zh) 2020-12-31 2020-12-31 一种单向数据传输方法及装置

Country Status (1)

Country Link
CN (1) CN112866206A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124858A (zh) * 2022-01-29 2022-03-01 飞腾信息技术有限公司 控制方法及控制设备
CN114296659A (zh) * 2021-12-31 2022-04-08 深圳市利谱信息技术有限公司 数据单向传输方法、内网端单元和单向隔离光闸系统
CN115834584A (zh) * 2022-11-23 2023-03-21 重庆紫光华山智安科技有限公司 跨网数据传输方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030687A1 (en) * 2010-07-28 2012-02-02 International Business Machines Corporation Efficient data transfer on local network connections using a pseudo socket layer
CN206272653U (zh) * 2016-12-07 2017-06-20 常州华龙通信科技股份有限公司 一种单向隔离光闸
CN109286492A (zh) * 2018-10-25 2019-01-29 北京中科富星信息技术有限公司 基于fpga和dsp的国密加密安全视频数据交换卡及交换方法
CN109768923A (zh) * 2018-12-26 2019-05-17 浪潮软件集团有限公司 一种安全隔离单向网闸及方法
CN110557378A (zh) * 2019-08-02 2019-12-10 西安飞机工业(集团)有限责任公司 一种网络边界安全隔离及信息单向传输系统及传输方法
CN111782416A (zh) * 2020-06-08 2020-10-16 Oppo广东移动通信有限公司 数据上报方法、装置、系统、终端及计算机可读存储介质
CN112153696A (zh) * 2020-09-25 2020-12-29 Oppo广东移动通信有限公司 Rlc sdu分段处理方法、装置及终端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030687A1 (en) * 2010-07-28 2012-02-02 International Business Machines Corporation Efficient data transfer on local network connections using a pseudo socket layer
CN206272653U (zh) * 2016-12-07 2017-06-20 常州华龙通信科技股份有限公司 一种单向隔离光闸
CN109286492A (zh) * 2018-10-25 2019-01-29 北京中科富星信息技术有限公司 基于fpga和dsp的国密加密安全视频数据交换卡及交换方法
CN109768923A (zh) * 2018-12-26 2019-05-17 浪潮软件集团有限公司 一种安全隔离单向网闸及方法
CN110557378A (zh) * 2019-08-02 2019-12-10 西安飞机工业(集团)有限责任公司 一种网络边界安全隔离及信息单向传输系统及传输方法
CN111782416A (zh) * 2020-06-08 2020-10-16 Oppo广东移动通信有限公司 数据上报方法、装置、系统、终端及计算机可读存储介质
CN112153696A (zh) * 2020-09-25 2020-12-29 Oppo广东移动通信有限公司 Rlc sdu分段处理方法、装置及终端

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296659A (zh) * 2021-12-31 2022-04-08 深圳市利谱信息技术有限公司 数据单向传输方法、内网端单元和单向隔离光闸系统
CN114296659B (zh) * 2021-12-31 2023-12-29 深圳市利谱信息技术有限公司 数据单向传输方法、内网端单元和单向隔离光闸系统
CN114124858A (zh) * 2022-01-29 2022-03-01 飞腾信息技术有限公司 控制方法及控制设备
CN114124858B (zh) * 2022-01-29 2022-05-17 飞腾信息技术有限公司 控制方法及控制设备
CN115834584A (zh) * 2022-11-23 2023-03-21 重庆紫光华山智安科技有限公司 跨网数据传输方法、装置、设备及介质
CN115834584B (zh) * 2022-11-23 2024-05-24 重庆紫光华山智安科技有限公司 跨网数据传输方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN112866206A (zh) 一种单向数据传输方法及装置
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
WO2021013046A1 (zh) 通信方法和网卡
CN110958213B (zh) 处理tcp报文的方法、toe组件以及网络设备
CN111556136A (zh) 一种电力边缘物联代理内部容器间的数据交互方法
CN110505244B (zh) 远程隧道访问技术网关以及服务器
CN110855568B (zh) 报文转发方法及系统
CN110120854B (zh) 传输数据的方法和装置
WO2020073907A1 (zh) 转发表项的更新方法及装置
CN114124929A (zh) 跨网络的数据处理方法和装置
CN108093041A (zh) 单通道vdi代理服务系统及实现方法
WO2021180084A1 (zh) 一种数据传输方法、节点和存储介质
CN112272134B (zh) IPSec隧道建立方法及装置、分支设备、中心端设备
CN107483369B (zh) 一种报文处理方法及虚拟交换机
CN108881247B (zh) 报文转换方法、装置、网关设备及存储介质
CN116055586B (zh) 分片报文的匹配方法、路由器及存储介质
WO2022227484A1 (zh) 数据通信方法、装置、计算机设备和存储介质
CN112242943B (zh) IPSec隧道建立方法及装置、分支设备、中心端设备
US11962673B2 (en) Packet tunneling and decapsulation with split-horizon attributes
CN113259271A (zh) 报文交换方法和报文交换系统
WO2024051321A1 (zh) 网络隔离方法、系统及相关设备
US10819631B2 (en) Network device supporting trill protocol and communication method thereof
KR100908843B1 (ko) 라우팅 시스템에서의 포워딩 테이블 구성 방법
WO2022261961A1 (zh) 用于转发报文的方法、交换机以及网络接口卡
US20230421500A1 (en) Method and device for storing and forwarding content, electronic apparatus and storage medium using the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210528