CN117614929A - 一种基于udp穿透nat实现p2p通信的方法及设备 - Google Patents
一种基于udp穿透nat实现p2p通信的方法及设备 Download PDFInfo
- Publication number
- CN117614929A CN117614929A CN202311460492.8A CN202311460492A CN117614929A CN 117614929 A CN117614929 A CN 117614929A CN 202311460492 A CN202311460492 A CN 202311460492A CN 117614929 A CN117614929 A CN 117614929A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- udp
- connection
- nat
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004891 communication Methods 0.000 title claims abstract description 65
- 230000000149 penetrating effect Effects 0.000 title claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000005641 tunneling Effects 0.000 claims 7
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 description 17
- 230000035515 penetration Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
- 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/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于UDP穿透NAT实现P2P通信的方法及设备,该方法包括:服务端和客户端分别在消息中间件上进行注册,完成鉴权;客户端通过消息中间件向服务端发送连接请求,服务端接收含客户端的身份信息并向客户端发送自己的身份信息,并配置连接环境;二者在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过消息中间件将各自对应的IP和端口信息发送至对方;而后启动UDP连接尝试,确定了可连接的IP和端口信息之后,进行协议初始化过程;并尝试在服务端与客户端建立TCP over UDP连接,连接建立成功后,开始正常通讯。本申请使得服务端和客户端间通过UDP实现P2P通讯,保证数据传输效率和准确率,且保证通信连接安全稳定。
Description
技术领域
本申请属于通信技术领域,特别涉及一种基于UDP穿透NAT实现P2P通信的方法及设备。
背景技术
现代网络环境的发展带来了许多便利,但也引发了一些问题。NAT(NetworkAddress Translation)是一种将私有IP地址转换为公共IP地址的技术,它在当前互联网中得到了广泛的应用。由于IPv4地址资源的稀缺性,NAT技术可以有效地节约IP地址资源,使得更多的设备可以接入互联网。而且,NAT技术还可以增加网络的安全性,因为私有IP地址不会暴露在公网上,从而减少了被攻击的风险。然而,这也导致了无法通过公网访问局域网的资源成为了一个普遍存在的问题。
目前通常采用端口映射、VPN以及UPnP以及内网穿透技术等方法来解决公网与内网的访问问题,但是也存在如下诸多问题:1)安全风险问题;通过内网穿透技术,会将内部服务暴露到公共网络中。这样一来,攻击者就有机会尝试利用这些服务的漏洞来攻击我们的系统。因此,在使用内网穿透技术时,我们必须非常小心地配置和管理相关的安全性能。2)性能问题;在内网穿透中,数据需要流量转发以及加密解密,这会对性能产生影响,可能会增加延迟或带宽消耗,特别是在高峰期或大数据量传输的情况下。3)可用性问题;内网穿透通常依赖于第三方提供商,例如Ngrok、Frp等,如果这些服务出现故障或关闭,则无法进行内网穿透。同时,一些内网穿透软件需要在内部网络中运行,并且需要动态分配IP等参数。这给运维团队带来了挑战,使得内网穿透不易于实施和维护。4)不支持UDP协议;由于UDP协议本身不可靠,内网穿透技术无法很好地支持UDP协议的传输。
针对上述问题,需要提出本申请的基于UDP穿透NAT实现P2P通信的方法及设备。
发明内容
为了解决所述现有技术的不足,本申请提供了一种基于UDP穿透NAT实现P2P通信的方法及设备,以解决现有的解决公网与内网的访问方案中的安全性差,性能不稳定,可用性低以及不支持UDP传输的问题。
本申请所要达到的技术效果通过以下方案实现:
第一方面,本申请实施例提供一种基于UDP穿透NAT实现P2P通信的方法,所述方法包括:
服务端和客户端分别在消息中间件上进行注册,完成鉴权;
所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
所述客户端和所述服务端在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过所述消息中间件将各自对应的IP和端口信息发送至对方;
在所述服务端和所述客户端均收到对方的IP和端口信息之后,启动UDP连接尝试,在通过发现过程确定了可连接的IP和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
在完成所述协议初始化过程之后,所述服务端在现有的IP(即UDP IP)和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
所述客户端在所述现有IP(即UDP IP)和端口组合的情况下,尝试与所述服务端建立TCP over UDP连接,在所述TCP over UDP连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
具体地,所述服务端或者客户端在现有的IP和端口组合的情况下执行监听,其中现有的IP和端口组合指的是,从双方通过发现过程确定的可连接的IP和端口信息中确定的当前能用的IP(即UDP IP)和端口组合。
在一些实施例中,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
在一些实施例中,所述消息中间件是WS消息服务器。
在一些实施例中,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
在一些实施例中,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
第二方面,本申请实施例提供一种基于UDP穿透NAT实现P2P通信的设备,所述设备包括:
存储器;
处理器;
以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行如下步骤:
服务端和客户端分别在消息中间件上进行注册,完成鉴权;
所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
所述客户端和所述服务端在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过所述消息中间件将各自对应的IP和端口信息发送至对方;
在所述服务端和所述客户端均收到对方的IP和端口信息之后,启动UDP连接尝试,在通过发现过程确定了可连接的IP和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
在完成所述协议初始化过程之后,所述服务端在现有的UDP IP和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
所述客户端在所述现有UDP IP和端口组合的情况下,尝试与所述服务端建立TCPover UDP连接,在所述TCP over UDP连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
在一些实施例中,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
在一些实施例中,所述消息中间件是WS消息服务器。
在一些实施例中,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
在一些实施例中,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一项所述的方法。
通过本申请实施例提供的基于UDP穿透NAT实现P2P通信的方法及设备,该方法通过ICE服务器以及WS消息服务器接受服务端和客户端的注册消息;完成服务端和客户端的身份鉴权,并转发服务端和客户端的消息交换请求,从而在服务端和客户端之间建立TCPover UDP连接,使得所述服务端和所述客户端间通过UDP实现P2P通讯,实现了保证数据传输效率和准确率,且保证通信连接安全稳定的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中的基于UDP穿透NAT实现P2P通信的方法的流程图;
图2为本申请一实施例中的基于UDP穿透NAT实现P2P通信的系统的示例架构图;
图3为本申请一实施例中的基于UDP穿透NAT实现P2P通信的方法的协议栈的示意图;
图4为本申请一实施例中的基于UDP穿透NAT实现P2P通信的方法的重连接状态机的示意图;
图5为本申请一实施例中的电子设备的示意框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,除非另外定义,本申请一个或多个实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
相关技术中,由于NAT技术的存在,导致了一个很普遍的问题,即无法通过公网访问局域网的资源。这是因为,当一个设备处于NAT网络中时,它的私有IP地址是无法直接被公网访问的。如果我们想要通过公网访问局域网中的资源,就需要采取一些特殊的措施。
针对无法通过公网访问局域网的问题,有几种常见的解决方法:
1.端口映射
端口映射是最常见的解决方法之一。它的原理是将一个内网设备的端口映射到公网上的某个端口上,从而实现公网访问内网的目的。例如,我们可以将局域网中的Web服务器的80端口映射到公网上的8080端口上,这样外部用户就可以通过访问公网IP地址和8080端口来访问内网中的Web服务器了。
2.VPN
VPN(Virtual Private Network)是另一种解决方法。它可以在公网上建立一个虚拟的私有网络,使得内网设备可以通过VPN连接到公网上,从而实现公网访问内网的目的。VPN技术可以加密数据传输,增加网络的安全性。
3.UPnP
UPnP(Universal Plug and Play)是一种自动配置网络设备的协议。如果路由器支持UPnP协议,那么内网设备可以自动向路由器注册,并获得一个公网IP地址和端口映射信息。这样,内网设备就可以直接通过公网访问了。
除了上述的解决方法之外,还有一种更加高效的方式来解决无法通过公网访问局域网资源的问题,那就是通过ICE(Interactive Connectivity Establishment)服务建立P2P连接。
ICE是一种用于实时通信的协议,它可以在不同的网络环境下建立点对点(P2P)连接。当两个设备需要建立P2P连接时,它们会通过ICE服务器进行交互,找到一条最佳的连接路径,并且穿越NAT设备,从而建立起P2P连接。通过ICE服务建立的P2P连接速度快、稳定性高,可以有效地提升实时通信的质量和效率。
内网穿透技术是一种将内网设备暴露在公网上的技术,它可以使得公网用户可以直接访问内网设备。内网穿透技术的主要应用场景包括:
1.远程桌面
远程桌面是一种将本地计算机桌面显示在远程计算机上的技术。如果我们想要在外出时远程访问公司的电脑,就需要使用内网穿透技术。
2.文件共享
文件共享是一种将文件分享给其他用户的技术。如果我们想要在家里访问公司的文件服务器,就需要使用内网穿透技术。
3.实时通信
实时通信是一种通过网络进行实时音视频通话的技术。如果我们想要在不同的地方进行实时通信,就需要使用内网穿透技术。
总之,现代网络环境的发展带来了许多便利,但也引发了一些问题。其中,NAT技术的广泛使用导致了无法通过公网访问局域网的资源成为了一个普遍存在的问题。针对这个问题,我们可以采取端口映射、VPN、UPnP等常见的解决方法,也可以通过ICE服务建立P2P连接来提高实时通信的效率。此外,内网穿透技术的应用场景广泛,但也需要注意安全性和稳定性的问题。
本申请提出一种使用UDP网络通信协议,通过中间消息传输网关,实现跨NAT设备建立、维护P2P连接的方法。
下面结合附图,详细说明本申请的各种非限制性实施方式。
首先,参照图1,对本申请的基于UDP穿透NAT实现P2P通信的方法进行详细说明。
第一方面,本申请实施例提供一种基于UDP穿透NAT实现P2P通信的方法,所述方法包括:
S101:服务端和客户端分别在消息中间件上进行注册,完成鉴权;
S102:所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
S103:所述客户端和所述服务端在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过所述消息中间件将各自对应的IP和端口信息发送至对方;
S104:在所述服务端和所述客户端均收到对方的IP和端口信息之后,启动UDP连接尝试,在通过发现过程确定了可连接的IP和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
S105:在完成所述协议初始化过程之后,所述服务端在现有的UDP IP和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
S106:所述客户端在所述现有UDP IP和端口组合的情况下,尝试与所述服务端建立TCP over UDP连接,在所述TCP over UDP连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
在一些实施例中,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
在一些实施例中,所述消息中间件是WS消息服务器。
在一些实施例中,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
在一些实施例中,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
具体地,本申请的上述基于UDP穿透NAT实现P2P通信的方法应用与基于UDP穿透NAT实现P2P通信的系统,其中如图2所示,该系统包括:ICE服务器,WS消息服务器,NAT设备,服务端和所述客户端(这二者可以互换),其中服务端和所述客户端可以是多个,并且多个服务端和所述客户端可以部分或者全部通过NAT设备与网络连接。
示例性地,WS消息服务器(WS messages server)可以部署于公网,用于接受服务端和客户端的注册消息;完成服务端和客户端的身份鉴权;并转发服务端和客户端的消息交换请求。
示例性地,ICE服务器用于收集服务端和客户端通过NAT访问公网资源时的IP和端口号。
示例性地,服务端和客户端根据用户需要,可全部或部分部署于NAT设备之后,即通过NAT设备连接至网络。
具体地,服务端和客户端可以是NAS设备、智能终端、PC、IoT设备等终端类型。
本申请的基于UDP穿透NAT实现P2P通信的方法,基于UDP协议(协议栈如图3所示,最底层是IP,然后IP上面一层是UDP,接着是TCP,还包括socks5),在S106建立客户端和服务端之间的网络“TCP over UDP连接”之后,通过基于UDP的数据封装,在用户环境下实现拥塞控制算法,并拦截应用的TCP通讯数据报,将数据进行再封装,通过UDP协议进行传输。该UPD传输中不但可以保证TCP数据包的传输顺序,而且可以实现UDP连接的连接复用。在一条UDP“连接”上实现多条TCP数据流的并行连接。服务端根据需要的对接应用层协议(此处为socks5协议),实现客户端的请求的代理、转发等服务功能。
本申请的基于UDP穿透NAT实现P2P通信的方法,在建立连接之后,例如可以实现连接状态转换,如图4所示。
具体地,在连接态时,若正常关闭连接,则进入关闭态;在连接态时,若异常关闭连接,则进入非连接态,在非连接态下执行重连接,可进入重连接态,如果重连接超时,则进入超时态,超时态可以重复执行三次重连接,如果成功实现重连接则由超时态进入重连接态,如果超过三次重连接未成功,则进入失败态,进而进入关闭态。
通过本申请实施例提供的基于UDP穿透NAT实现P2P通信的方法及设备,该方法通过ICE服务器以及WS消息服务器接受服务端和客户端的注册消息;完成服务端和客户端的身份鉴权,并转发服务端和客户端的消息交换请求,从而在服务端和客户端之间建立TCPover UDP连接,使得所述服务端和所述客户端间通过UDP实现P2P通讯,实现了保证数据传输效率和准确率,且保证通信连接安全稳定的技术效果。
第二方面,本申请实施例提供一种基于UDP穿透NAT实现P2P通信的设备,所述设备包括:
存储器;
处理器;
以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行如下步骤:
服务端和客户端分别在消息中间件上进行注册,完成鉴权;
所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
所述客户端和所述服务端在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过所述消息中间件将各自对应的IP和端口信息发送至对方;
在所述服务端和所述客户端均收到对方的IP和端口信息之后,启动UDP连接尝试,在通过发现过程确定了可连接的IP和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
在完成所述协议初始化过程之后,所述服务端在现有的UDP IP和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
所述客户端在所述现有UDP IP和端口组合的情况下,尝试与所述服务端建立TCPover UDP连接,在所述TCP over UDP连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
在一些实施例中,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
在一些实施例中,所述消息中间件是WS消息服务器。
在一些实施例中,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
在一些实施例中,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
该实施例中的设备能够实现上述任一一种方法的技术效果,此处不再赘述。
需要说明的是,本申请一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还公开一种电子设备;
具体地,图5示出了本实施例所提供的一种基于UDP穿透NAT实现P2P通信的方法的电子设备的硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中,处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如,USB、网线等)实现通信,也可以通过无线方式(例如,移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如,处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于UDP穿透NAT实现P2P通信的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于UDP穿透NAT实现P2P通信的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于UDP穿透NAT实现P2P通信的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以避免使本申请一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于UDP穿透NAT实现P2P通信的方法,其特征在于,所述方法包括:
服务端和客户端分别在消息中间件上进行注册,完成鉴权;
所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
所述客户端和所述服务端在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过所述消息中间件将各自对应的IP和端口信息发送至对方;
在所述服务端和所述客户端均收到对方的IP和端口信息之后,启动UDP连接尝试,在通过发现过程确定了可连接的IP和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
在完成所述协议初始化过程之后,所述服务端在现有的IP和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
所述客户端在所述现有的IP和端口组合的情况下,尝试与所述服务端建立TCP overUDP连接,在所述TCP over UDP连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
2.如权利要求1所述的基于UDP穿透NAT实现P2P通信的方法,其特征在于,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
3.如权利要求1或2所述的基于UDP穿透NAT实现P2P通信的方法,其特征在于,所述消息中间件是WS消息服务器。
4.如权利要求3所述的基于UDP穿透NAT实现P2P通信的方法,其特征在于,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
5.如权利要求4所述的基于UDP穿透NAT实现P2P通信的方法,其特征在于,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
6.一种基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述设备包括:
存储器;
处理器;
以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行如下步骤:
服务端和客户端分别在消息中间件上进行注册,完成鉴权;
所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
所述客户端和所述服务端在分别收到对方的身份信息之后,通过ICE服务器获取对应的IP和端口信息,并通过所述消息中间件将各自对应的IP和端口信息发送至对方;
在所述服务端和所述客户端均收到对方的IP和端口信息之后,启动UDP连接尝试,在通过发现过程确定了可连接的IP和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
在完成所述协议初始化过程之后,所述服务端在现有的IP和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
所述客户端在所述现有的IP和端口组合的情况下,尝试与所述服务端建立TCP overUDP连接,在所述TCP over UDP连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
7.如权利要求6所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
8.如权利要求6或7所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述消息中间件是WS消息服务器。
9.如权利要求8所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
10.如权利要求9所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311460492.8A CN117614929A (zh) | 2023-11-03 | 2023-11-03 | 一种基于udp穿透nat实现p2p通信的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311460492.8A CN117614929A (zh) | 2023-11-03 | 2023-11-03 | 一种基于udp穿透nat实现p2p通信的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117614929A true CN117614929A (zh) | 2024-02-27 |
Family
ID=89947071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311460492.8A Pending CN117614929A (zh) | 2023-11-03 | 2023-11-03 | 一种基于udp穿透nat实现p2p通信的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117614929A (zh) |
-
2023
- 2023-11-03 CN CN202311460492.8A patent/CN117614929A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2790387B1 (en) | Method and system for providing connectivity for an ssl/tls server behind a restrictive firewall or nat | |
US9507630B2 (en) | Application context transfer for distributed computing resources | |
JP4146886B2 (ja) | 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム | |
US10498864B1 (en) | System and method for selecting connection mode between a client and a server | |
EP2803181A1 (en) | Cloud computing controlled gateway for communication networks | |
WO2011059770A2 (en) | Smart client routing | |
US11533179B2 (en) | Turn authentication using SIP channel discovery | |
CN109587028B (zh) | 一种控制客户端流量的方法和装置 | |
CN112702338B (zh) | Ike报文获取方法及装置 | |
CN117914960A (zh) | 一种专网机顶盒访问公网的方法 | |
US9860225B1 (en) | Network directory and access service | |
WO2023116165A1 (zh) | 网络负载均衡方法、装置、电子设备、介质和程序产品 | |
EP3264730A1 (en) | Method and apparatus for terminal application accessing nas | |
TWI551100B (zh) | 用以進行點對點連接的方法、伺服器與裝置 | |
CN117614929A (zh) | 一种基于udp穿透nat实现p2p通信的方法及设备 | |
GB2496380A (en) | Private cloud server and client architecture using e-mail/SMS to establish communication | |
US20220210192A1 (en) | Network configuration security using encrypted transport | |
CN115834684A (zh) | 数据处理方法、云桌面系统、设备及存储介质 | |
WO2015059128A1 (en) | A forwarder selection protocol for a network and a respective cpe device | |
CN110086702B (zh) | 报文转发方法、装置、电子设备及机器可读存储介质 | |
CN111107126B (zh) | 用于加密卷复制的方法和设备 | |
US20200196135A1 (en) | Enhanced connectivity in dual-mode networks for single-mode nodes | |
AU2012319193A1 (en) | Techniques for accessing logical networks via a programmatic service call | |
CN113067908B (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
KR101807695B1 (ko) | 이동통신 라우터 장치 및 이를 포함하는 ip 공유 시스템 |
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 |