System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于通信,特别涉及一种基于udp穿透nat实现p2p通信的方法及设备。
技术介绍
1、现代网络环境的发展带来了许多便利,但也引发了一些问题。nat(networkaddress translation)是一种将私有ip地址转换为公共ip地址的技术,它在当前互联网中得到了广泛的应用。由于ipv4地址资源的稀缺性,nat技术可以有效地节约ip地址资源,使得更多的设备可以接入互联网。而且,nat技术还可以增加网络的安全性,因为私有ip地址不会暴露在公网上,从而减少了被攻击的风险。然而,这也导致了无法通过公网访问局域网的资源成为了一个普遍存在的问题。
2、目前通常采用端口映射、vpn以及upnp以及内网穿透技术等方法来解决公网与内网的访问问题,但是也存在如下诸多问题:1)安全风险问题;通过内网穿透技术,会将内部服务暴露到公共网络中。这样一来,攻击者就有机会尝试利用这些服务的漏洞来攻击我们的系统。因此,在使用内网穿透技术时,我们必须非常小心地配置和管理相关的安全性能。2)性能问题;在内网穿透中,数据需要流量转发以及加密解密,这会对性能产生影响,可能会增加延迟或带宽消耗,特别是在高峰期或大数据量传输的情况下。3)可用性问题;内网穿透通常依赖于第三方提供商,例如ngrok、frp等,如果这些服务出现故障或关闭,则无法进行内网穿透。同时,一些内网穿透软件需要在内部网络中运行,并且需要动态分配ip等参数。这给运维团队带来了挑战,使得内网穿透不易于实施和维护。4)不支持udp协议;由于udp协议本身不可靠,内网穿透技术无法很好地支
3、针对上述问题,需要提出本申请的基于udp穿透nat实现p2p通信的方法及设备。
技术实现思路
1、为了解决所述现有技术的不足,本申请提供了一种基于udp穿透nat实现p2p通信的方法及设备,以解决现有的解决公网与内网的访问方案中的安全性差,性能不稳定,可用性低以及不支持udp传输的问题。
2、本申请所要达到的技术效果通过以下方案实现:
3、第一方面,本申请实施例提供一种基于udp穿透nat实现p2p通信的方法,所述方法包括:
4、服务端和客户端分别在消息中间件上进行注册,完成鉴权;
5、所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
6、所述客户端和所述服务端在分别收到对方的身份信息之后,通过ice服务器获取对应的ip和端口信息,并通过所述消息中间件将各自对应的ip和端口信息发送至对方;
7、在所述服务端和所述客户端均收到对方的ip和端口信息之后,启动udp连接尝试,在通过发现过程确定了可连接的ip和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
8、在完成所述协议初始化过程之后,所述服务端在现有的ip(即udp ip)和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
9、所述客户端在所述现有ip(即udp ip)和端口组合的情况下,尝试与所述服务端建立tcp over udp连接,在所述tcp over udp连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
10、具体地,所述服务端或者客户端在现有的ip和端口组合的情况下执行监听,其中现有的ip和端口组合指的是,从双方通过发现过程确定的可连接的ip和端口信息中确定的当前能用的ip(即udp ip)和端口组合。
11、在一些实施例中,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
12、在一些实施例中,所述消息中间件是ws消息服务器。
13、在一些实施例中,所述服务端和所述客户端全部或部分通过所述nat设备连接网络。
14、在一些实施例中,所述服务端和所述客户端包括nas设备、智能终端、pc、iot设备。
15、第二方面,本申请实施例提供一种基于udp穿透nat实现p2p通信的设备,所述设备包括:
16、存储器;
17、处理器;
18、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行如下步骤:
19、服务端和客户端分别在消息中间件上进行注册,完成鉴权;
20、所述客户端通过所述消息中间件向所述服务端发送连接请求,所述服务端接收到包含所述客户端的第一身份信息的所述连接请求后,通过所述消息中间件向所述客户端发送所述服务端的第二身份信息,并配置连接环境;
21、所述客户端和所述服务端在分别收到对方的身份信息之后,通过ice服务器获取对应的ip和端口信息,并通过所述消息中间件将各自对应的ip和端口信息发送至对方;
22、在所述服务端和所述客户端均收到对方的ip和端口信息之后,启动udp连接尝试,在通过发现过程确定了可连接的ip和端口信息之后,所述服务端和所述客户端分别进行协议初始化过程;
23、在完成所述协议初始化过程之后,所述服务端在现有的udp ip和端口组合的情况下执行监听,监听来自所述客户端的连接请求;
24、所述客户端在所述现有udp ip和端口组合的情况下,尝试与所述服务端建立tcpover udp连接,在所述tcp over udp连接建立成功之后,所述服务端和所述客户端间开始正常通讯。
25、在一些实施例中,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
26、在一些实施例中,所述消息中间件是ws消息服务器。
27、在一些实施例中,所述服务端和所述客户端全部或部分通过所述nat设备连接网络。
28、在一些实施例中,所述服务端和所述客户端包括nas设备、智能终端、pc、iot设备。
29、第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一项所述的方法。
30、通过本申请实施例提供的基于udp穿透nat实现p2p通信的方法及设备,该方法通过ice服务器以及ws消息服务器接受服务端和客户端的注册消息;完成服务端和客户端的身份鉴权,并转发服务端和客户端的消息交换请求,从而在服务端和客户端之间建立tcpover udp连接,使得所述服务端和所述客户端间通过udp实现p2p通讯,实现了保证数据传输效率和准确率,且保证通信连接安全稳定的技术效果。
本文档来自技高网...【技术保护点】
1.一种基于UDP穿透NAT实现P2P通信的方法,其特征在于,所述方法包括:
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通信的设备,其特征在于,所述设备包括:
7.如权利要求6所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述发现过程按照环回地址、内网地址、外方地址的顺序依次进行。
8.如权利要求6或7所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所
9.如权利要求8所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述服务端和所述客户端全部或部分通过所述NAT设备连接网络。
10.如权利要求9所述的基于UDP穿透NAT实现P2P通信的设备,其特征在于,所述服务端和所述客户端包括NAS设备、智能终端、PC、IoT设备。
...【技术特征摘要】
1.一种基于udp穿透nat实现p2p通信的方法,其特征在于,所述方法包括:
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设备。
...【专利技术属性】
技术研发人员:卢扬,徐彬,牛冠杰,
申请(专利权)人:联通在线信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。