CN110620783B - 一种基于nat内网穿透的互联网络串口透传通信方法 - Google Patents
一种基于nat内网穿透的互联网络串口透传通信方法 Download PDFInfo
- Publication number
- CN110620783B CN110620783B CN201910933673.5A CN201910933673A CN110620783B CN 110620783 B CN110620783 B CN 110620783B CN 201910933673 A CN201910933673 A CN 201910933673A CN 110620783 B CN110620783 B CN 110620783B
- Authority
- CN
- China
- Prior art keywords
- computer
- tcp
- serial port
- sent
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于NAT内网穿透的互联网络串口透传通信方法、装置、设备及计算机可读存储介质,应用于博高数据分发服务器,包括:接收TCP串口客户端及计算机的注册请求及注册码,使TCP串口客户端及计算机注册至目标端口;接收TCP串口客户端与计算机等间隔发送的KeepAlive帧;将TCP串口客户端与计算机绑定至同一内存容器;通过计算机的身份验证后,计算机创建虚拟串口;当计算机需要发送数据时,接收虚拟串口发送的由数据转换成的TCP载荷,查找计算机绑定的内存容器的端口,并将数据转发至除自身外所有的TCP连接。本发明所提供的方法、装置、设备及计算机可读存储介质,无需复杂配置,即可实现‘云串口’功能。
Description
技术领域
本发明涉及互联网通信技术领域,特别是涉及一种基于NAT内网穿透的互联网络串口透传通信方法、装置、设备以及计算机可读存储介质。
背景技术
串口为计算机上一种非常通用的设备通信协议,是当前嵌入式***与上位机主要通信方式,在工业控制中得到广泛应用。如电能表的RS485、红外通信与主控芯片通信,都是以串口方式与主控芯片MCU连接的。
随着5G技术、物联网技术的发展,将传感器设备接入互联网云平台,通过云平台中转,实现控制端与被控端可远程分离的工作模式,解决了工作人员必须到现场控制设备的问题。工作人员不用到现场控制设备,在远端就能完成工作,省去了来回现场的时间、节省了交通费用,大大提高了工作效率。
但现有的M2M技术实现方式基本都为重新定义一套新的通信协议,才能接入云平台,即原有的上、下位机串口直连通信方式,想改为通过互联网云平台中转通信的方式,必须修改上、下位机的软件才能实现,修改上、下位机软件会增加开发人员额外的工作。
例如采用基于TCP/IP协议的TCP/IP串口服务器+‘云路由器’方式实现‘云串口’的方法。该方法需要一个固定公网IP,或需要一个非固定公网IP+云路由器+DDNS,同时需要在云路由器上做复杂的配置。
综上所述可以看出,如何在不修改上、下位机的软件的前提下,实现‘云串口’的功能是目前有待解决的问题。
发明内容
本发明的目的是提供一种基于NAT内网穿透的互联网络串口透传通信方法、装置、设备以及计算机可读存储介质,以解决现有技术中需要对上、下位机的软件进行修改,才能实现‘云串口’的功能。
为解决上述技术问题,本发明提供一种基于NAT内网穿透的互联网络串口透传通信方法,应用于博高数据分发服务器,包括:分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口;分别接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接,以及与所述计算机之间的链路连接;将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据。。
优选地,所述分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口包括:
接收TCP串口客户端基于TURN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
接收计算机基于TURN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口。
优选地,所述分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口包括:
接收TCP串口客户端基于STUN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
接收计算机基于STUN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口。
优选地,所述当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证后还包括:
当所述计算机的身份验证未通过时,向所述计算机发送连接结束/重置指令,以便UI提示报告错误。
优选地,所述当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据后还包括:
当所述TCP串口客户端接收到串口数据,接收所述TCP串口客户端发送的转换所述串口数据得到TCP载荷,查找所述TCP串口客户端绑定的内存容器的端口,并将所述串口数据转发至除自身外的所有TCP连接。
优选地,所述将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中后还包括:
若用户主动关闭串口或网络中断导致所述计算机与所述博高数据分发服务器之间的链路断开时,清理建立所述内存容器中断开的连接。
本发明还提供了一种基于NAT内网穿透的互联网络串口透传通信装置,应用于博高数据分发服务器,包括:
注册模块,用于分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口;
链路连接模块,用于分别接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接,以及与所述计算机之间的链路连接;
绑定模块,用于将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;
验证模块,用于当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;
转发模块,用于当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据。
优选地,所述注册模块包括:
第一注册单元,用于接收TCP串口客户端基于TURN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
第二注册单元,用于接收计算机基于TURN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口。
本发明还提供了一种基于NAT内网穿透的互联网络串口透传通信设备,包括:
存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种基于NAT内网穿透的互联网络串口透传通信方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于NAT内网穿透的互联网络串口透传通信方法的步骤。
本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法,首先TCP串口客户端向博高数据分发服务器发送注册码,以便注册到所述博高数据分发服务器的目标端口;且所述TCP串口客户端每隔预设时间间隔向所述博高数据分发服务器发送KeepALive帧,以维持与所述博高数据分发服务器的链路连接。计算机以TCP协议注册到所述博高数据分发服务器的目标端口,并发送相同的注册码;且所述计算机每隔预设时间间隔向所述博高数据分发服务器发送KeepALive帧,以维持与所述博高数据分发服务器的链路连接。所述博高数据分发服务器在接收到所述计算机,或所述TCP串口客户端连接、注册码相同后,把具有相同目的端口地址和注册码的连接内部绑定在同一个内存容器中。所述计算机在TCP协议注册到所述博高数据分发服务器后,如果在预设时长内没有收到所述博高数据分发服务器的连接结束/重置指令,则所述计算机认为所述博高数据分发服务器验证所述计算机身份通过,且所述计算机创建虚拟串口,供上位机程序连接使用。当所述计算机需要发送数据时,首先将待发送数据投递到所述虚拟串口,所述虚拟串口将所述待发送数据转换成TCP载荷发送到所述博高数据分发服务器,所述博高数据分发服务器收到所述待发送数据后,查找绑定在同一内存容器中的端口,将所述待发送数据转发到除自身外的所有TCP连接;所述TCP串口客户端收到数据后,向串口设备发送所述待发送数据。本发送所提供的方法,利用NAT网络穿透技术,可实现上、下位机通过云平台中转通信,并不需要重写上、下位机的软件。本发明无需复杂配置,在预置参数后甚至无需配置,同时无需公网IP、DDNS,无需云路由器;只需要保证计算机与TCP串口能联网,参数正确即可实现‘云串口’的功能。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法的第一种具体实施例的流程图;
图2为本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法的具体实施例的原理图;
图3为本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法的第二种具体实施例的流程图;
图4为本发明实施例提供的一种基于NAT内网穿透的互联网络串口透传通信装置的结构框图。
具体实施方式
本发明的核心是提供一种基于NAT内网穿透的互联网络串口透传通信方法、装置、设备以及计算机可读存储介质,采用内网穿透技术,可实现上、下位机通过云平台中转信息,而不需要重写上、下位机的软件。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1和图2,图1为本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法的第一种具体实施例的流程图;图2为本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法的具体实施例的原理图。本实施例所提供的方法应用于博高数据分发服务器,具体操作步骤如下:
步骤S101:分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口;
在本实施例中,所述TCP串口客户端及所述计算机可以通过STUN协议向所述博高数据分发服务器发送注册码及KeepAlive帧,也可以通过TURN协议向所述博高数据分发服务器发送注册码及KeepAlive帧;所述博高数据分发服务器可以通过所述STUN协议或所述TURN协议向所述TCP串口客户端或所述计算机进行数据下行透传。
STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)为一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信。该协议由RFC5389定义。
TURN(Traversal Using Relays around NAT:Relay Extensions to SessionTraversal Utilities for NAT)即使用中继穿透NAT:STUN的扩展。简单的说,TURN与STURN的共同点都是通过修改应用层中的私网地址达到NAT穿透的效果,异同点是TURN是通过两方通讯的“中间人”方式实现穿透。
NAT(Network Address Translation)当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
图2中仅为一组计算机+TCP串口客户端情况,可以有多组计算机+TCP串口客户对,用端口号+注册码标示为同一组串口信道。
步骤S102:分别接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接,以及与所述计算机之间的链路连接;
所述计算机或所述TCP串口客户端建立连接后,定时向所述博高数据分发服务器发送KeepAlive帧,保证在NAT环境不会发送链路断开。传统采用发送心跳帧,但心跳帧作为TCP载荷会被认为串口数据转发,因此不能发送心跳帧,只能发送TCP KeepAlive帧。
在本实施例中,所述TCP串口客户端以及所述计算机可以每隔60秒向所述博高数据分发服务器发送KeepAlive帧。
步骤S103:将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;
所述博高数据分发服务器在接收到所述计算机或所述TCP串口客户端连接、注册码相同后,把具有相同目的端口地址和注册码的连接内部绑定在同一个内存容器中(如C++STL的Vector)。特别状态下,如果有三个或三个以上的接收到相同目的端口地址和注册码的TCP连接,也一并绑在一起。
步骤S104:当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;
所述计算机在TCP协议注册到所述博高数据分发服务器后,如果在超过一定时间内,例如3秒,没有收到服务器的连接结束或重置指令时,所述计算机认为所述博高数据分发服务器验证所述计算机身份通过,随即计算机创建虚拟串口,供上位机程序连接使用;否则不创建虚拟串口,UI提示报告错误。
步骤S105:当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据。
当上位机有数据需要发送时,首先把数据投递至所述虚拟串口,所述虚拟串口把数据转换成TCP载荷发送到所述博高数据分发服务器;所述博高数据分发服务器在收到数据后,查找绑定在同一容器中的端口,把数据转发到除自身外的所有TCP连接;所述TCP串口客户端收到数据后,向串口设备发送数据。
当上位机收到数据后,把数据转发到所述虚拟串口,所述虚拟串口再转发数据到上位机软件。
本事实例实现互联网串口,在TCP串口客户端使用4G转RS485预置参数后,实现了串口即连即用的效果;即只需上位机接入互联网、TCP串口客户端接入互联网,即可使用‘云串口’通信方式;无需公网IP、DDNS,无需云路由器,无需额外配置。且在通信上效果质量上与现有最好技术无差异。
基于上述实施例,在本实施例中,当所述TCP串口客户端接收到串口数据,接收所述TCP串口客户端发送的转换所述串口数据得到TCP载荷,查找所述TCP串口客户端绑定的内存容器的端口,并将所述串口数据转发至除自身外的所有TCP连接。
请参考图3,图3为本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法的第二种具体实施例的流程图。本实施例所提供的方法应用于博高数据分发服务器,具体操作步骤如下:
步骤S301:接收TCP串口客户端基于STUN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
步骤S302:接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接;
步骤S303:接收计算机基于STUN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口;
步骤S304:接收所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述计算机之间的链路连接;
步骤S305:将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;
步骤S306:若用户主动关闭串口或网络中断导致所述计算机与所述博高数据分发服务器之间的链路断开时,清理建立所述内存容器中断开的连接;
步骤S307:当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;
步骤S308:当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据;
步骤S309:当所述TCP串口客户端接收到串口数据,接收所述TCP串口客户端发送的转换所述串口数据得到TCP载荷,查找所述TCP串口客户端绑定的内存容器的端口,并将所述串口数据转发至除自身外的所有TCP连接。
基于本实施例所提供的步骤,可实现上位机到串口设备数据的相互透传。且在本实施例中,如果由于用户主动关闭串口或网络中断,导致所述计算机与所述博高数据分发服务器链路断开,所述博高数据分发服务器应及时清理建立容器中断开的连接,否则会过多消耗所述博高数据分发服务器资源。
请参考图4,图4为本发明实施例提供的一种基于NAT内网穿透的互联网络串口透传通信装置的结构框图。本实施例所提供的装置应用于博高数据分发服务器,具体装置可以包括:
注册模块100,用于分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口;
链路连接模块200,用于分别接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接,以及与所述计算机之间的链路连接;
绑定模块300,用于将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;
验证模块400,用于当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;
转发模块500,用于当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据。
本实施例的基于NAT内网穿透的互联网络串口透传通信装置用于实现前述的基于NAT内网穿透的互联网络串口透传通信方法,因此基于NAT内网穿透的互联网络串口透传通信装置中的具体实施方式可见前文中的基于NAT内网穿透的互联网络串口透传通信方法的实施例部分,例如,注册模块100,链路连接模块200,绑定模块300,验证模块400,转发模块500,分别用于实现上述基于NAT内网穿透的互联网络串口透传通信方法中步骤S101,S102,S103,S104和S105,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明具体实施例还提供了一种基于NAT内网穿透的互联网络串口透传通信设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种基于NAT内网穿透的互联网络串口透传通信方法的步骤。
本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于NAT内网穿透的互联网络串口透传通信方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的基于NAT内网穿透的互联网络串口透传通信方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种基于NAT内网穿透的互联网络串口透传通信方法,其特征在于,应用于博高数据分发服务器,包括:
分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口;
分别接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接,以及与所述计算机之间的链路连接;
将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;
当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;当所述计算机的身份验证未通过时,向所述计算机发送连接结束/重置指令,以便UI提示报告错误;
当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据。
2.如权利要求1所述的方法,其特征在于,所述分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口包括:
接收TCP串口客户端基于TURN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
接收计算机基于TURN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口。
3.如权利要求1所述的方法,其特征在于,所述分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口包括:
接收TCP串口客户端基于STUN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
接收计算机基于STUN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口。
4.如权利要求3所述的方法,其特征在于,所述当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据后还包括:
当所述TCP串口客户端接收到串口数据,接收所述TCP串口客户端发送的转换所述串口数据得到TCP载荷,查找所述TCP串口客户端绑定的内存容器的端口,并将所述串口数据转发至除自身外的所有TCP连接。
5.如权利要求1-4任一项所述的方法,其特征在于,所述将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中后还包括:
若用户主动关闭串口或网络中断导致所述计算机与所述博高数据分发服务器之间的链路断开时,清理建立所述内存容器中断开的连接。
6.一种基于NAT内网穿透的互联网络串口透传通信装置,其特征在于,应用于博高数据分发服务器,包括:
注册模块,用于分别接收TCP串口客户端与计算机通过NAT内网穿透技术发送的注册请求及目标注册码,以便所述TCP串口客户端与所述计算机注册至所述博高数据分发服务器的目标端口;
链路连接模块,用于分别接收所述TCP串口客户端与所述计算机每隔预设时间间隔发送的KeepAlive帧,以便维护与所述TCP串口客户端之间的链路连接,以及与所述计算机之间的链路连接;
绑定模块,用于将使用同一注册码并注册至相同端口的所述TCP串口客户端与所述计算机绑定至同一内存容器中;
验证模块,用于当所述计算机注册至所述博高数据分发服务器后,对所述计算机的身份进行验证,并在所述计算机的身份验证通过时,停止向所述计算机发送连接结束/重置指令,以便所述计算机创建供上位机程序连接使用的虚拟串口;当所述计算机的身份验证未通过时,向所述计算机发送连接结束/重置指令,以便UI提示报告错误;
转发模块,用于当所述计算机中存在待发送数据时,接收所述虚拟串口发送的由所述待发送数据转换得到的TCP载荷,查找所述计算机绑定的内存容器的端口,并将所述待发送数据转发至除自身外所有的TCP连接,以便所述TCP串口客户端接收到所述待发送数据后,向串口设备发送所述待发送数据。
7.如权利要求6所述的装置,其特征在于,所述注册模块包括:
第一注册单元,用于接收TCP串口客户端基于TURN协议发送的注册请求与目标注册码,以便所述TCP串口客户端注册至所述博高数据分发服务器的所述目标端口;
第二注册单元,用于接收计算机基于TURN协议发送的注册请求与所述目标注册码,以便所述计算机注册至所述博高数据分发服务器的所述目标端口。
8.一种基于NAT内网穿透的互联网络串口透传通信设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述一种基于NAT内网穿透的互联网络串口透传通信方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述一种基于NAT内网穿透的互联网络串口透传通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933673.5A CN110620783B (zh) | 2019-09-26 | 2019-09-26 | 一种基于nat内网穿透的互联网络串口透传通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933673.5A CN110620783B (zh) | 2019-09-26 | 2019-09-26 | 一种基于nat内网穿透的互联网络串口透传通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110620783A CN110620783A (zh) | 2019-12-27 |
CN110620783B true CN110620783B (zh) | 2022-03-25 |
Family
ID=68925009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910933673.5A Active CN110620783B (zh) | 2019-09-26 | 2019-09-26 | 一种基于nat内网穿透的互联网络串口透传通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110620783B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117544609B (zh) * | 2024-01-09 | 2024-04-02 | 广州美凯信息技术股份有限公司 | 一种基于kvm控制的串口透传***的数据透传方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404227A (zh) * | 2011-12-09 | 2012-04-04 | 徐州医学院 | 一种层次型穿越内网的路由*** |
CN103971645A (zh) * | 2014-05-25 | 2014-08-06 | 湖南科技学院 | 一种基于gprs的远程led显示屏控制*** |
CN104243628A (zh) * | 2014-09-11 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种连续多端口申请方法和装置 |
CN104917725A (zh) * | 2014-03-11 | 2015-09-16 | 上海卓岚信息科技有限公司 | 一种跨nat的串口服务器与网络设备的通信方法及*** |
CN106909206A (zh) * | 2017-04-18 | 2017-06-30 | 湖北科技学院 | 一种云端穿透型串口服务器 |
CN206757491U (zh) * | 2017-04-18 | 2017-12-15 | 湖北科技学院 | 一种云端穿透型串口服务器 |
CN107786536A (zh) * | 2017-09-11 | 2018-03-09 | 成都阜特科技股份有限公司 | 一种tcp反向端口穿透方法及其*** |
CN108062230A (zh) * | 2018-01-04 | 2018-05-22 | 安徽大学 | 一种因特网范围内串口透传和程序更新***及其方法 |
CN110581903A (zh) * | 2019-09-16 | 2019-12-17 | 上海享途网络科技有限公司 | 一种多层内网穿透方法、***及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154306A1 (en) * | 2002-02-11 | 2003-08-14 | Perry Stephen Hastings | System and method to proxy inbound connections to privately addressed hosts |
-
2019
- 2019-09-26 CN CN201910933673.5A patent/CN110620783B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404227A (zh) * | 2011-12-09 | 2012-04-04 | 徐州医学院 | 一种层次型穿越内网的路由*** |
CN104917725A (zh) * | 2014-03-11 | 2015-09-16 | 上海卓岚信息科技有限公司 | 一种跨nat的串口服务器与网络设备的通信方法及*** |
CN103971645A (zh) * | 2014-05-25 | 2014-08-06 | 湖南科技学院 | 一种基于gprs的远程led显示屏控制*** |
CN104243628A (zh) * | 2014-09-11 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种连续多端口申请方法和装置 |
CN106909206A (zh) * | 2017-04-18 | 2017-06-30 | 湖北科技学院 | 一种云端穿透型串口服务器 |
CN206757491U (zh) * | 2017-04-18 | 2017-12-15 | 湖北科技学院 | 一种云端穿透型串口服务器 |
CN107786536A (zh) * | 2017-09-11 | 2018-03-09 | 成都阜特科技股份有限公司 | 一种tcp反向端口穿透方法及其*** |
CN108062230A (zh) * | 2018-01-04 | 2018-05-22 | 安徽大学 | 一种因特网范围内串口透传和程序更新***及其方法 |
CN110581903A (zh) * | 2019-09-16 | 2019-12-17 | 上海享途网络科技有限公司 | 一种多层内网穿透方法、***及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110620783A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11075821B2 (en) | Method and apparatus for managing field device based on cloud server | |
US20190182155A1 (en) | Distributed Network Sharing And Traffic Isolation | |
CN104270379B (zh) | 基于传输控制协议的https 代理转发方法及装置 | |
CN100521663C (zh) | 点对点通信中穿越网络地址转换的方法 | |
CN102685268B (zh) | 一种VoIP中基于ICE协议的快速私网穿越方法 | |
US9467327B2 (en) | Server-mediated setup and maintenance of peer-to-peer client computer communications | |
RU2584752C2 (ru) | Устройство и способ реализации сети передачи данных, используемой для удаленного управления жилищем | |
CN103608787B (zh) | 数据传输方法、***及装置 | |
CN105634904A (zh) | 一种sslvpn的代理方法、服务器以及客户端及其处理方法 | |
CN102035904A (zh) | 一种将tcp网络通信服务端转换为客户端的方法 | |
CN105072213A (zh) | 一种IPSec NAT双向穿越方法、***及VPN网关 | |
CN110266828A (zh) | 一种建立端到端网络连接的方法、装置及网络*** | |
JP2008072203A (ja) | 中継サーバ | |
CN113841363B (zh) | 在不同路由协议的网络和设备间建立通信的***和方法 | |
CN101895590A (zh) | 基于udt实现nat穿越的***和方法 | |
CN110661858A (zh) | 基于websocket的内网穿透方法及*** | |
CN107124483A (zh) | 域名解析方法及服务器 | |
CN104426732A (zh) | 一种高速传输隧道的实现方法及*** | |
CN110620783B (zh) | 一种基于nat内网穿透的互联网络串口透传通信方法 | |
US10171418B2 (en) | Method and apparatus for accessing demilitarized zone host on local area network | |
CN102457580B (zh) | Nat穿越方法及*** | |
CN106131039A (zh) | Syn洪泛攻击的处理方法及装置 | |
CN102045317B (zh) | 实现多方通信的方法、装置及*** | |
Rezmerita et al. | Private virtual cluster: Infrastructure and protocol for instant grids | |
JP2010532616A (ja) | 制御サーバの性能を向上させるためのIPv6−IPv4転換方法及び装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |