CN108989486B - 一种通信方法及通信系统 - Google Patents
一种通信方法及通信系统 Download PDFInfo
- Publication number
- CN108989486B CN108989486B CN201811000600.2A CN201811000600A CN108989486B CN 108989486 B CN108989486 B CN 108989486B CN 201811000600 A CN201811000600 A CN 201811000600A CN 108989486 B CN108989486 B CN 108989486B
- Authority
- CN
- China
- Prior art keywords
- udp
- server
- client
- tcp
- proxy 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
- 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/2521—Translation architectures other than single NAT servers
- H04L61/2528—Translation at a proxy
-
- 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
- H04L61/2589—NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种通信方法及系统。代理客户端根据访问客户端的身份信息及其发送的TCP数据包生成UDP数据传输包;UDP服务器将UDP数据传输包发送给TCP服务器,并根据其返回的响应数据及访问客户端的身份信息确定UDP响应数据包;代理客户端获取访问客户端的身份标识和TCP服务器发送的响应数据,并将响应数据发送给对应的访问客户端。本发明将TCP数据及TCP服务器的响应数据分别与访问客户端的身份信息绑定,通过代理客户端与UDP服务器进行通信,完成公网与局域网内部各个访问客户端之间的信息交互,可使没有公网的局域网服务器具备公网的服务能力,且支持一台局域网服务器给多台访问客户端提供服务器的能力。
Description
技术领域
本发明涉及信息传输领域,特别是涉及一种通信方法及通信系统。
背景技术
随着网络移动办公的普及,很多情况下用户需要通过互联网访问企业局域网;或企业的多地域间需要实时的数据通讯。但由于公网IPv4的资源稀缺,很多企业并不具备公网IP,而外网中设备使用的是公网地址,每个地址是全球唯一的,局域网设备使用的是局域网地址,只在局域网内有效,全球有多个局域网设备在使用相同的局域网地址。因此,外网中的设备不能直接与局域网的设备通讯,导致企业用户在外部环境下无法直接使用公司的文件资源,也无法在多组织内快速、方便的共享资源,由于没有公网IP,搭建VPN也非常困难,只能选择一些第三方远程界面工具来完成数据传输,使用极其不方便。
因此,如何提供一种通信方法和通信系统,使局域网服务器与公网之间能够进行交互,成为本领域技术人员亟需解决的技术问题。
发明内容
本发明的目的是提供一种通信方法和通信系统,通过将访问客户端发送的TCP数据与访问客户端的唯一身份信息绑定,并将TCP服务器返回的响应数据与访问客户端的身份信息绑定,然后通过代理客户端与UDP服务器进行通信,完成公网与局域网内部各个访问客户端之间的信息交互,可使没有公网的局域网服务器具备公网的服务能力,而且支持一台局域网服务器给多台访问客户端提供服务器的能力。
为实现上述目的,本发明提供了如下方案:
一种通信方法,所述通信方法包括:
代理客户端和UDP服务器通过云服务器完成NAT穿透连接;
访问客户端向所述代理客户端发送TCP连接请求及TCP数据包;
所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,并将所述UDP数据传输包发送给所述UDP服务器;
所述UDP服务器将接收到的所述UDP数据传输包发送给TCP服务器,并根据所述TCP服务器返回的响应数据及所述访问客户端的身份信息确定UDP响应数据包,并将所述UDP响应数据包发送给所述代理客户端;
所述代理客户端解析所述UDP响应数据包以获得访问客户端的身份标识和所述TCP服务器发送的响应数据,并将所述TCP服务器发送的响应数据发送给所述身份标识对应的访问客户端。
可选的,所述代理客户端和UDP服务器通过云服务器完成NAT穿透连接,具体包括:
代理客户端和UDP服务器分别向云服务器发送UDP连接请求包,其中,所述UDP连接请求包包含发送者的地址信息和端口信息;
所述云服务器将所述代理客户端发送的UDP连接请求包中的地址信息和端口信息发送给所述UDP服务器,并将所述UDP服务器发送的UDP连接请求包中的地址信息和端口信息发送给所述代理客户端;
所述代理客户端和所述UDP服务器通过UDP通道向对方发送连接信息以完成NAT穿透连接。
可选的,所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,具体包括:
所述代理客户端根据所述访问客户端的IP地址和所述访问客户端的端口生成所述访问客户端的唯一身份标识;
所述代理客户端根据所述访问客户端的唯一身份标识和所述TCP数据包生成UDP数据传输包。
可选的,所述代理客户端将所述UDP数据传输包发送给所述UDP服务器之前,还包括:
所述代理客户端采用序列对秘钥对所述UDP数据传输包进行加密,获得序列对加密数据包;
所述代理客户端按位对所述序列对加密数据包进行异或操作,获得加密后的UDP数据传输包。
可选的,所述UDP服务器将接收到的所述UDP数据传输包发送给TCP服务器之前,还包括:
所述UDP服务器按位对所述UDP数据传输包进行异或操作,获得异或解密数据;
所述UDP服务器采用所述序列对秘钥对所述异或解密数据进行解密,获得解密后的UDP数据传输包。
一种通信系统,所述通信系统包括:若干访问客户端、代理客户端、云服务器、UDP服务器和TCP服务器,其中,
所述代理客户端和所述UDP服务器通过所述云服务器完成NAT穿透连接;
所述访问客户端向所述代理客户端发送TCP连接请求及TCP数据包;
所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,并将所述UDP数据传输包发送给所述UDP服务器;
所述UDP服务器将接收到的所述UDP数据传输包发送给所述TCP服务器,并根据所述TCP服务器返回的响应数据及所述访问客户端的身份信息确定UDP响应数据包,并将所述UDP响应数据包发送给所述代理客户端;
所述代理客户端解析所述UDP响应数据包以获得访问客户端的身份标识和所述TCP服务器发送的响应数据,并将所述TCP服务器发送的响应数据发送给所述身份标识对应的访问客户端。
可选的,所述代理客户端和UDP服务器通过云服务器完成NAT穿透连接,具体包括:
所述代理客户端和所述UDP服务器分别向所述云服务器发送UDP连接请求包,其中,所述UDP连接请求包包含发送者的地址信息和端口信息;
所述云服务器将所述代理客户端发送的UDP连接请求包中的地址信息和端口信息发送给所述UDP服务器,并将所述UDP服务器发送的UDP连接请求包中的地址信息和端口信息发送给所述代理客户端;
所述代理客户端和所述UDP服务器通过UDP通道向对方发送连接信息以完成NAT穿透连接。
可选的,所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,具体包括:
所述代理客户端根据所述访问客户端的IP地址和所述访问客户端的端口生成所述访问客户端的唯一身份标识;
所述代理客户端根据所述访问客户端的唯一身份标识和所述TCP数据包生成UDP数据传输包。
可选的,所述代理客户端将所述UDP数据传输包发送给所述UDP服务器之前,还包括:
所述代理客户端采用序列对秘钥对所述UDP数据传输包进行加密,获得序列对加密数据包;
所述代理客户端按位对所述序列对加密数据包进行异或操作,获得加密后的UDP数据传输包。
可选的,所述UDP服务器将接收到的所述UDP数据传输包发送给TCP服务器之前,还包括:
所述UDP服务器按位对所述UDP数据传输包进行异或操作,获得异或解密数据;
所述UDP服务器采用所述序列对秘钥对所述异或解密数据进行解密,获得解密后的UDP数据传输包。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的通信方法和通信系统,代理客户端根据访问客户端的身份信息和访问客户端发送的TCP数据包生成UDP数据传输包,并将UDP数据传输包发送给UDP服务器;UDP服务器将接收到的UDP数据传输包发送给TCP服务器,并根据TCP服务器返回的响应数据及访问客户端的身份信息确定UDP响应数据包,并将所述UDP响应数据包发送给所述代理客户端;代理客户端解析UDP响应数据包以获得访问客户端的身份标识和所述TCP服务器发送的响应数据,并将TCP服务器发送的响应数据发送给身份标识对应的访问客户端。可见,本发明提供的通信方法和通信系统,通过将访问客户端发送的TCP数据与访问客户端的唯一身份信息绑定,并将TCP服务器返回的响应数据与访问客户端的身份信息绑定,然后通过代理客户端与UDP服务器进行通信,完成公网与局域网内部各个访问客户端之间的信息交互,可使没有公网的局域网服务器具备公网的服务能力,而且支持一台局域网服务器给多台访问客户端提供服务器的能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的通信方法的流程图;
图2为本发明实施例提供的通信系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种通信方法和通信系统,通过将访问客户端发送的TCP数据与访问客户端的唯一身份信息绑定,并将TCP服务器返回的响应数据与访问客户端的身份信息绑定,然后通过代理客户端与UDP服务器进行通信,完成公网与局域网内部各个访问客户端之间的信息交互,可使没有公网的局域网服务器具备公网的服务能力,而且支持一台局域网服务器给多台访问客户端提供服务器的能力。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例提供的一种通信方法的流程图。如图1所示,一种通信方法,所述通信方法包括:
步骤101:代理客户端和UDP服务器通过云服务器完成网络地址转换(NetworkAddress Translation,NAT)穿透连接;
步骤102:访问客户端向所述代理客户端发送传输控制协议((TransmissionControl Protocol,TCP)连接请求及TCP数据包;
步骤103:所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成用户数据报协议(User Datagram Protocol,UDP)数据传输包;
步骤104:所述代理客户端采用序列对秘钥对所述UDP数据传输包进行加密,获得序列对加密数据包;
步骤105:所述代理客户端按位对所述序列对加密数据包进行异或操作,获得加密后的UDP数据传输包,并将所述UDP数据传输包发送给所述UDP服务器;
步骤106:所述UDP服务器按位对所述UDP数据传输包进行异或操作,获得异或解密数据;
步骤107:所述UDP服务器采用所述序列对秘钥对所述异或解密数据进行解密,获得解密后的UDP数据传输包。
步骤108:所述UDP服务器将解密后的所述UDP数据传输包发送给TCP服务器,并根据所述TCP服务器返回的响应数据及所述访问客户端的身份信息确定UDP响应数据包,并对所述UDP响应数据包依次进行序列对私钥加密操作和按位进行异或操作进行加密后发送给所述代理客户端;
步骤109:所述代理客户端收到UDP响应数据包后首先按位对数据流进行异或操作获得异或解密数据流,然后再采用序列对私钥进行解密,获得解密后的UDP响应数据包。代理客户端继续解析所述UDP响应数据包以获得访问客户端的身份标识和所述TCP服务器发送的响应数据,并将所述TCP服务器发送的响应数据发送给所述身份标识对应的访问客户端。
具体地,所述步骤101:代理客户端和UDP服务器通过云服务器完成NAT穿透连接,具体包括:
代理客户端和UDP服务器分别向云服务器发送UDP连接请求包,其中,所述UDP连接请求包包含发送者的地址信息和端口信息;
所述云服务器将所述代理客户端发送的UDP连接请求包中的地址信息和端口信息发送给所述UDP服务器,并将所述UDP服务器发送的UDP连接请求包中的地址信息和端口信息发送给所述代理客户端;
所述代理客户端和所述UDP服务器通过UDP通道向对方发送连接信息以完成NAT穿透连接。
所述步骤103:代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,具体包括:
所述代理客户端根据所述访问客户端的IP地址和所述访问客户端的端口生成所述访问客户端的唯一身份标识。可选的,访问客户端的唯一身份标识为4字节访问客户端IP地址加2字节访问客户端端口信息。
访问客户端TCP报文内含的IP地址和端口不仅能够定位访问客户端,而且还能保留UDP通道,所以,本实施例利用访问客户端的4字节的IP地址加2字节的端口作为其唯一身份标识,不仅数据格式精简,无需开通多个客户端、服务器的端口。虽然每个UDP数据传输包和UDP相应数据包多了6个字节,但减少了程序的复杂度,特别是对于有端口数限制的NAT,能保证客户端、服务器均使用一个UDP端口完成整个通信生命周期,直至程序关闭,有效节省了UDP端口数量。
所述代理客户端根据所述访问客户端的唯一身份标识和所述TCP数据包生成UDP数据传输包。
本发明提供的通信方法,通过将访问客户端发送的TCP数据与访问客户端的唯一身份信息绑定,并将TCP服务器返回的响应数据与访问客户端的身份信息绑定,然后通过代理客户端与UDP服务器进行通信,完成公网与局域网内部各个访问客户端之间的信息交互,可使没有公网的局域网服务器具备公网的服务能力,而且支持一台局域网服务器给多台访问客户端提供服务器的能力。
图2为本发明实施例提供的通信系统的结构框图。如图2所示,一种通信系统,所述通信系统包括:若干访问客户端201、代理客户端202、云服务器203、UDP服务器204和TCP服务器205,其中,
所述代理客户端202和所述UDP服务器204通过所述云服务器203完成NAT穿透连接;
所述访问客户端201向所述代理客户端202发送TCP连接请求及TCP数据包;
所述代理客户端202根据所述访问客户端201的身份信息和所述TCP数据包生成UDP数据传输包,采用序列对秘钥对所述UDP数据传输包进行加密,获得序列对加密数据包,按位对所述序列对加密数据包进行异或操作,获得加密后的UDP数据传输包,并将加密后的所述UDP数据传输包发送给所述UDP服务器204。其中,序列对私钥为待加密数据的各字节在加密数据中的存放位置。
所述UDP服务器204按位对接收到的所述UDP数据传输包进行异或操作,获得异或解密数据,采用所述序列对秘钥对所述异或解密数据进行解密,获得解密后的UDP数据传输包,并将解密后的所述UDP数据传输包发送给所述TCP服务器205。
本实施例中,加密和解密算法的编程实现流程为:
(1)云服务器203存储代理客户端202、UDP服务器204的私钥,代理客户端202、UDP服务器204也保存有相同的私钥;
(2)UDP服务器204获取访问客户端201发送的TCP数据包中类型(不含)以后的数据流;
(3)建立序列对,序列对共36个,包含0-9A-Z,即0-35,即客户端、服务器、云服务器使用相同序列对,序列对内数字不重复出现,即0-35,形成一个序列,但序列顺序打乱;
(4)使用私钥token字符串,按待加密的数据流字节数进行重复,以保证token字节长度等于数据流的字节长度,命名为:重复的token。判断token每个字节所在的char值,如java的String.charAt(index),转换为0-35范围(如charAt小于65,charAt=charAt-48,否则charAt=charAt-55),形成数组数等于数据流字节数的数组,每个数组内含两个数组的二维数组,其中子数组内的含义为index,charAt对应序列对的值;
(5)对上一步骤中所述二维数组,按所述子数组的charAt对应序列对的值进行正序排序,形成新的二维数组,数组的index值已经按序列打乱;
(6)使用上一步骤中形成的index值,获取数据流对应的index位置的字节数据,形成通过序列对私钥加密的数据流;
(7)对上一步骤中形成的“重复的token”数据流按位进行异或操作,获得加密后的数据,至此加密完成。
UDP服务器204收到加密文件后,其解密过程与上述加密过程中的(1)-(5)类似,在此不再赘述。执行最后两步解密步骤时,首先使用“重复的token”数据流按位进行异或操作,获得异或解密数据,然后使用步骤(5)中形成的index,循环数据流字节,按index所在位置放回字节,解密完成。
同理,UDP服务器将TCP服务器返回的信息进行加密和代理客户端的解密过程与上述过程相同,再次不再赘述。
基于token算法实现对数据进行序列对私钥加密,数据流加密后数据流字节数不变,不增加带宽。而且本申请的加密方案,在没有基于token算法的序列对私钥的情况下,依然能够执行解密动作,但所得数据是无效数据。
其中,加密过程也可以使用半字节流加密算法,即将1个字节拆分成高低位两部分,高低位分别当一个字节来雷同处理。采用高低位算法将更加安全,特别在短字节流情况下,能够有效防止字节猜测的可能,但效率相对会有一定影响。
所述UDP服务器204还根据所述TCP服务器205返回的响应数据及所述访问客户端201的身份信息确定UDP响应数据包,并将所述UDP响应数据包发送给所述代理客户端202;
所述代理客户端202解析所述UDP响应数据包以获得访问客户端201的身份标识和所述TCP服务器205发送的响应数据,并将所述TCP服务器205发送的响应数据发送给所述身份标识对应的访问客户端201。
代理客户端202和UDP服务器204启动后,二者先通过云服务器203进行连接请求,其中,UDP报文头由UDP底层库支持,如java的DatagramSocket,1字节类型可以作为统一的协议约定,如:0x00代表建立连接,0x01代表UDP隧道打通(客户端、服务器互发数据就是一种隧道打通的方式),0x02代表数据发送,在特定情况下,如,隧道打通时,可以没有子客户端信息,没有负载,甚至没有序号。具体地,所述代理客户端202和UDP服务器204通过云服务器203完成NAT穿透连接具体包括:
所述代理客户端202和所述UDP服务器204分别向所述云服务器203发送UDP连接请求包,其中,所述UDP连接请求包包含发送者的地址信息和端口信息;
所述云服务器203将所述代理客户端202发送的UDP连接请求包中的地址信息和端口信息发送给所述UDP服务器204,并将所述UDP服务器204发送的UDP连接请求包中的地址信息和端口信息发送给所述代理客户端202;
所述代理客户端202和所述UDP服务器204通过UDP通道向对方发送连接信息以完成NAT穿透连接。
本实施例中,NAT穿透连接的具体实施步骤为:
(1)代理客户端202、UDP服务器204发送UDP连接请求至云服务器203,其中发送的UDP连接请求包经过NAT后,UDP连接请求包将自动携带公网IP和端口。其中,所述公网在局域网模式时,自动带出客户端、服务器局域网IP、端口,此功能由NAT设备自动完成。所述UDP连接请求包包含NAT的IP、端口;还包含身份信息,如公司名称或者公司ID;还可包含签名信息、时间戳等用于连接安全验证的信息,用于对公司名称或ID对应的身份进行验证。其中,身份是指是客户端还是服务器。
(2)UDP服务器204端建立一个key、value对象,按照公司名称或公司ID,形成key。将IP、端口、身份等核心字段放入value。value可以使用数组,也可以使用身份(客户端、服务器)作为key。IP、端口作为value形成两级的key、value数据结构。
(3)当对应key信息到达云服务器203时,云服务器203获取value,根据身份字段互换IP、端口,即如果身份是客户端,则获取服务器的IP、端口,如果是服务器,则获取客户端的IP、端口;如果无法获取到对方的IP、端口,则证明连接程序有一方没有运行。
(4)将获取到的代理客户端202、UDP服务器204的IP、端口,通过代理客户端202、UDP服务器204的UDP通道进行响应。
(5)代理客户端202向UDP服务器204发送用于进行NAT穿透的连接指令,并在UDP服务器204收到此指令时,表示NAT穿透连接成功。
(6)UDP服务器204向代理客户端202发送连接指令。
具体地,所述代理客户端202根据所述访问客户端201的身份信息和所述TCP数据包生成UDP数据传输包,具体包括:
所述代理客户端202根据所述访问客户端201的IP地址和所述访问客户端201的端口生成所述访问客户端201的唯一身份标识;
所述代理客户端202根据所述访问客户端201的唯一身份标识和所述TCP数据包生成UDP数据传输包。
本实施例提供的通信系统中,代理客户端202的数据结构为:UDP报文头+1字节类型+4字节序号+4字节访问客户端IP地址+2字节访问客户端端口+负载。UDP服务器204的数据结构为:UDP报文头+1字节类型+4字节序号+4字节访问客户端IP地址+2字节访问客户端端口+负载。
本实施例提供的通信系统的执行顺序为:
代理客户端202、UDP服务器204发起UDP连接请求至云服务器203,所述连接请求包报含发送者的身份(如公司名称)、连接时的IP、端口信息,云服务器203将代理客户端202、UDP服务器204对应身份信息的IP地址和端口互发至对应的服务器、客户端。所述云服务器203具备公网IP和端口,提供UDP连接服务;所述代理客户端202和UDP服务器204同时具备TCP连接与UDP连接能力。
代理客户端202、UDP服务器204互相发送任意字节数据,建立代理客户端202与UDP服务器204之间的连接。
局域网网络环境内的访问客户端201发送TCP连接请求及TCP数据至代理客户端202,代理客户端202记录访问客户端201的IP、端口,并生成所述访问客户端201对应的唯一身份信息,如访问客户端的4字节IP地址和2字节端口信息组成的6个字节身份标识信息,代理客户端202将收到的访问客户端201发送的TCP数据流报文前插入此唯一身份信息,形成UDP数据传输包,通过与UDP服务器已经建立好的连接转发UDP数据传输包;
UDP服务器204收到代理客户端201发送的UDP数据传输包后进行解析拆分,获取对应字节数的访问客户端201的唯一身份信息,并与UDP服务器网络环境下的TCP服务器205进行连接、通信;
UDP服务器204将TCP服务器205返回的数据通过UDP转发至代理客户端202,代理客户端202将数据转发回对应的访问客户端,最终实现局域网内的各个访问客户端与TCP服务器的通信。
为了保证公共网络下数据传输的安全性,UDP传输时,代理客户端与UDP服务器之间的传输数据可以加密。UDP传输下,利用滑动窗口协议,可极大提升网络利用率。
本实施例能够实现的有益效果是:
1、使用UDP在代理客户端与UDP服务器间进行网络传输,网络利用率,相比TCP更高、速率可控;
2、由于使用了中间数据流转发,在不改变原来TCP连接情况下,在UDP层得到加密传输,提高了原TCP在公网传输的安全性;
3、达到了没有公网IP、端口的服务器,也能提供基于UDP的TCP服务能力,在此基础上,可以完成大型跨地域网络结构的基础通信支持,如集团化多地域期间快速搭建私有云服务。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种通信方法,其特征在于,所述通信方法包括:
代理客户端和UDP服务器通过云服务器完成NAT穿透连接;
访问客户端向所述代理客户端发送TCP连接请求及TCP数据包;
所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,并将所述UDP数据传输包发送给所述UDP服务器;
所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,具体包括:
所述代理客户端根据所述访问客户端的IP地址和所述访问客户端的端口生成所述访问客户端的唯一身份标识;
所述代理客户端根据所述访问客户端的唯一身份标识和所述TCP数据包生成UDP数据传输包;访问客户端的唯一身份标识为4字节访问客户端IP地址加2字节访问客户端端口信息;
所述UDP服务器将接收到的所述UDP数据传输包发送给TCP服务器,并根据所述TCP服务器返回的响应数据及所述访问客户端的身份信息确定UDP响应数据包,并将所述UDP响应数据包发送给所述代理客户端;
所述代理客户端解析所述UDP响应数据包以获得访问客户端的身份标识和所述TCP服务器发送的响应数据,并将所述TCP服务器发送的响应数据发送给所述身份标识对应的访问客户端。
2.根据权利要求1所述的通信方法,其特征在于,所述代理客户端和UDP服务器通过云服务器完成NAT穿透连接,具体包括:
代理客户端和UDP服务器分别向云服务器发送UDP连接请求包,其中,所述UDP连接请求包包含发送者的地址信息和端口信息;
所述云服务器将所述代理客户端发送的UDP连接请求包中的地址信息和端口信息发送给所述UDP服务器,并将所述UDP服务器发送的UDP连接请求包中的地址信息和端口信息发送给所述代理客户端;
所述代理客户端和所述UDP服务器通过UDP通道向对方发送连接信息以完成NAT穿透连接。
3.根据权利要求1所述的通信方法,其特征在于,所述代理客户端将所述UDP数据传输包发送给所述UDP服务器之前,还包括:
所述代理客户端采用序列对秘钥对所述UDP数据传输包进行加密,获得序列对加密数据包;
所述代理客户端按位对所述序列对加密数据包进行异或操作,获得加密后的UDP数据传输包。
4.根据权利要求3所述的通信方法,其特征在于,所述UDP服务器将接收到的所述UDP数据传输包发送给TCP服务器之前,还包括:
所述UDP服务器按位对所述UDP数据传输包进行异或操作,获得异或解密数据;
所述UDP服务器采用所述序列对秘钥对所述异或解密数据进行解密,获得解密后的UDP数据传输包。
5.一种通信系统,其特征在于,所述通信系统包括:若干访问客户端、代理客户端、云服务器、UDP服务器和TCP服务器,其中,
所述代理客户端和所述UDP服务器通过所述云服务器完成NAT穿透连接;
所述访问客户端向所述代理客户端发送TCP连接请求及TCP数据包;
所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,并将所述UDP数据传输包发送给所述UDP服务器;
所述代理客户端根据所述访问客户端的身份信息和所述TCP数据包生成UDP数据传输包,具体包括:
所述代理客户端根据所述访问客户端的IP地址和所述访问客户端的端口生成所述访问客户端的唯一身份标识;
所述代理客户端根据所述访问客户端的唯一身份标识和所述TCP数据包生成UDP数据传输包;访问客户端的唯一身份标识为4字节访问客户端IP地址加2字节访问客户端端口信息;
所述UDP服务器将接收到的所述UDP数据传输包发送给所述TCP服务器,并根据所述TCP服务器返回的响应数据及所述访问客户端的身份信息确定UDP响应数据包,并将所述UDP响应数据包发送给所述代理客户端;
所述代理客户端解析所述UDP响应数据包以获得访问客户端的身份标识和所述TCP服务器发送的响应数据,并将所述TCP服务器发送的响应数据发送给所述身份标识对应的访问客户端。
6.根据权利要求5所述的通信系统,其特征在于,所述代理客户端和UDP服务器通过云服务器完成NAT穿透连接,具体包括:
所述代理客户端和所述UDP服务器分别向所述云服务器发送UDP连接请求包,其中,所述UDP连接请求包包含发送者的地址信息和端口信息;
所述云服务器将所述代理客户端发送的UDP连接请求包中的地址信息和端口信息发送给所述UDP服务器,并将所述UDP服务器发送的UDP连接请求包中的地址信息和端口信息发送给所述代理客户端;
所述代理客户端和所述UDP服务器通过UDP通道向对方发送连接信息以完成NAT穿透连接。
7.根据权利要求5所述的通信系统,其特征在于,所述代理客户端将所述UDP数据传输包发送给所述UDP服务器之前,还包括:
所述代理客户端采用序列对秘钥对所述UDP数据传输包进行加密,获得序列对加密数据包;
所述代理客户端按位对所述序列对加密数据包进行异或操作,获得加密后的UDP数据传输包。
8.根据权利要求7所述的通信系统,其特征在于,所述UDP服务器将接收到的所述UDP数据传输包发送给TCP服务器之前,还包括:
所述UDP服务器按位对所述UDP数据传输包进行异或操作,获得异或解密数据;
所述UDP服务器采用所述序列对秘钥对所述异或解密数据进行解密,获得解密后的UDP数据传输包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811000600.2A CN108989486B (zh) | 2018-08-30 | 2018-08-30 | 一种通信方法及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811000600.2A CN108989486B (zh) | 2018-08-30 | 2018-08-30 | 一种通信方法及通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989486A CN108989486A (zh) | 2018-12-11 |
CN108989486B true CN108989486B (zh) | 2021-07-13 |
Family
ID=64548074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811000600.2A Active CN108989486B (zh) | 2018-08-30 | 2018-08-30 | 一种通信方法及通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108989486B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112492004B (zh) * | 2020-11-17 | 2023-02-17 | 深圳市晨北科技有限公司 | 本地通信链接的建立方法及设备、系统及存储介质 |
CN116095018A (zh) * | 2022-12-31 | 2023-05-09 | 北京中嘉和信通信技术有限公司 | 数据传输方法、装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685247A (zh) * | 2013-12-04 | 2014-03-26 | 冯丽娟 | 安全通信方法、装置、系统以及安全主板 |
CN104836863A (zh) * | 2015-04-08 | 2015-08-12 | 杭州威威网络科技有限公司 | 实现tcp反向端口映射的系统和方法 |
CN105141711A (zh) * | 2015-08-24 | 2015-12-09 | 北京息通网络技术有限公司 | 一种基于大数据分析的对称nat穿越方法及系统 |
-
2018
- 2018-08-30 CN CN201811000600.2A patent/CN108989486B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685247A (zh) * | 2013-12-04 | 2014-03-26 | 冯丽娟 | 安全通信方法、装置、系统以及安全主板 |
CN104836863A (zh) * | 2015-04-08 | 2015-08-12 | 杭州威威网络科技有限公司 | 实现tcp反向端口映射的系统和方法 |
CN105141711A (zh) * | 2015-08-24 | 2015-12-09 | 北京息通网络技术有限公司 | 一种基于大数据分析的对称nat穿越方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108989486A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107018134B (zh) | 一种配电终端安全接入平台及其实现方法 | |
CN107077432B (zh) | Https请求充实 | |
CA2905583C (en) | Secure network communication | |
US20080072035A1 (en) | Securing multicast data | |
US8104082B2 (en) | Virtual security interface | |
JPH1155243A (ja) | 鍵管理方式におけるペア鍵の実装、閉ユーザグループにおける完全秘密転送の達成、及びデータグラムマルチキャスト送信のための方法、及び装置 | |
WO2001054379A1 (en) | A secure communication method for mobile ip | |
US20170126623A1 (en) | Protected Subnet Interconnect | |
US20140337967A1 (en) | Data Transmission Method, System, and Apparatus | |
US7055170B1 (en) | Security mechanism and architecture for collaborative software systems using tuple space | |
CN109743170B (zh) | 一种流媒体登录以及数据传输加密的方法和装置 | |
KR20180130203A (ko) | 사물인터넷 디바이스 인증 장치 및 방법 | |
CN108989486B (zh) | 一种通信方法及通信系统 | |
CN111614596B (zh) | 一种基于IPv6隧道技术的远程设备控制方法及系统 | |
CN111343083A (zh) | 即时通信方法、装置、电子设备及可读存储介质 | |
Park et al. | Survey for secure IoT group communication | |
Tiloca | Efficient protection of response messages in DTLS-based secure multicast communication | |
CN115567208A (zh) | 网络会话数据流细粒度透明加解密方法及系统 | |
CN115459913A (zh) | 一种基于量子密钥云平台的链路透明加密方法及系统 | |
Praptodiyono et al. | Performance Analysis of Internet Key Exchange Algorithms on IPsec Security Association Initiation | |
Asim | Security in Application Layer Protocols for IOT: A Focus on COAP. | |
Yeun et al. | Practical implementations for securing voip enabled mobile devices | |
CN115664807B (zh) | 一种ssl vpn转发方法、装置、系统及存储介质 | |
Bahnasse et al. | Performance Evaluation of Web-based Applications and VOIP in Protected Dynamic and Multipoint VPN | |
Fan et al. | A Mutual Authentication Method For Local MAC Address Allocation |
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 |