CN109660637B - P2p打洞传输方法和系统、电子装置及计算机可读存储介质 - Google Patents
P2p打洞传输方法和系统、电子装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109660637B CN109660637B CN201811366334.5A CN201811366334A CN109660637B CN 109660637 B CN109660637 B CN 109660637B CN 201811366334 A CN201811366334 A CN 201811366334A CN 109660637 B CN109660637 B CN 109660637B
- Authority
- CN
- China
- Prior art keywords
- client
- port
- external network
- hole
- stun server
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004080 punching Methods 0.000 title claims abstract description 32
- 238000012360 testing method Methods 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims description 30
- 238000005553 drilling Methods 0.000 claims description 19
- 239000000523 sample Substances 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011330 nucleic acid test Methods 0.000 description 1
- 230000003287 optical effect 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
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种P2P打洞传输方法,应用于客户端,该方法包括:通过STUN服务器获取自身的外网IP和端口;通过Internet网络向远端客户端发送自身的外网IP和端口;通过Internet网络获取所述远端客户端的外网IP和端口,所述远端客户端的外网IP和端口由所述远端客户端通过就近区域的STUN服务器获取;向所述远端客户端的外网IP和端口发送测试数据包,并接收所述远端客户端发送的测试数据包,以建立P2P打洞数据传输通道。本发明还提供一种P2P打洞传输系统、电子装置及计算机可读存储介质。本发明能够准确探测客户端最近的外网IP和port,并缩短路由路径节点距离,提升P2P打洞的成功率和传输效率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种P2P打洞传输方法和系统、电子装置及计算机可读存储介质。
背景技术
现有的基于单节点的STUN(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)服务P2P打洞技术方案中,客户端a和客户端b均是经由各自对应的NAT(NetworkAddress Translation,网络地址转换)网关,通过同一个STUN服务器探测自己的外网IP和端口(port),然后通过Internet网络向对方发送各自的外网IP和port,再向对方的外网IP和port发送数据包,如果对方可以收到数据包,则该P2P打洞数据传输通道建立成功,否则该P2P打洞数据传输通道建立失败。
但是,这种方式存在着如下的缺陷:由于STUN服务器是单节点或者是少数几个节点部署的,如果用户a和用户b处在和STUN服务器处在不同的运营商网络上,由于运营商网络在国内互联互通比较复杂,在用户后端多级NAT设备的情况下,将可能导致用户a和用户b的外网互通的几率减少。另外,在上述环境下,即使P2P打洞连接成功,可能也将会导致用户a和用户b之间的路由路径过长,影响数据传输速率。
发明内容
有鉴于此,本发明提出一种P2P打洞传输方法和系统、电子装置及计算机可读存储介质,以解决至少一个上述技术问题。
首先,为实现上述目的,本发明提出一种P2P打洞传输方法,应用于客户端,所述方法包括:
通过STUN服务器获取自身的外网IP和端口;
通过Internet网络向远端客户端发送自身的外网IP和端口;
通过Internet网络获取所述远端客户端的外网IP和端口,所述远端客户端的外网IP和端口由所述远端客户端通过就近区域的STUN服务器获取;及
向所述远端客户端的外网IP和端口发送测试数据包,并接收所述远端客户端发送的测试数据包,以建立P2P打洞数据传输通道。
可选地,所述建立P2P打洞数据传输通道还包括:
当所述客户端接收到所述远端客户端发送的测试数据包后,及时向所述远端客户端反馈ACK回应帧;
当所述客户端在预设时间内收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立成功;
当所述客户端超时没有收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立失败,所述客户端通过公网中的中继服务器与所述远端客户端进行中转传输。
可选地,所述通过所述STUN服务器获取自身的外网IP和端口包括:
通过调度服务器获取就近区域的具有公网IP的STUN服务器信息;
发送探测数据包给所述STUN服务器;
接收所述STUN服务器回传的所述客户端的外网IP和端口。
此外,为实现上述目的,本发明还提供一种电子装置,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的P2P打洞传输程序,所述P2P打洞传输程序被所述处理器执行时实现如下方法:
通过STUN服务器获取自身的外网IP和端口;
通过Internet网络向远端客户端发送自身的外网IP和端口;
通过Internet网络获取所述远端客户端的外网IP和端口,所述远端客户端的外网IP和端口由所述远端客户端通过就近区域的STUN服务器获取;及
向所述远端客户端的外网IP和端口发送测试数据包,并接收所述远端客户端发送的测试数据包,以建立P2P打洞数据传输通道。
可选地,所述建立P2P打洞数据传输通道还包括:
当所述电子装置接收到所述远端客户端发送的测试数据包后,及时向所述远端客户端反馈ACK回应帧;
当所述电子装置在预设时间内收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立成功;
当所述电子装置超时没有收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立失败,所述客户端通过公网中的中继服务器与所述远端客户端进行中转传输。
可选地,所述通过所述STUN服务器获取自身的外网IP和端口包括:
通过调度服务器获取就近区域的具有公网IP的STUN服务器信息;
发送探测数据包给所述STUN服务器;
接收所述STUN服务器回传的所述电子装置的外网IP和端口。
进一步地,为实现上述目的,本发明还提供一种P2P打洞传输系统,所述系统包括:
STUN服务器;
至少两个客户端;
两个所述客户端分别通过所述STUN服务器获取自身的外网IP和端口;
两个所述客户端分别通过Internet网络向对方发送自身的外网IP和端口,以及获取对方的外网IP和端口;
两个所述客户端各自向对方的外网IP和端口发送测试数据包,以建立P2P打洞数据传输通道。
可选地,所述STUN服务器为多个,每个所述STUN服务器连接一个或多个NAT网关,每个所述NAT网关连接一个或多个所述客户端,两个所述客户端分别经由对应的所述NAT网关,通过就近区域的所述STUN服务器获取自身的外网IP和端口。
可选地,所述建立P2P打洞数据传输通道还包括:
当所述客户端接收到对方发送的测试数据包后,及时向对方反馈ACK回应帧;
当至少一个所述客户端在预设时间内收到对方反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立成功;
当两个所述客户端都超时没有收到对方反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立失败,两个所述客户端之间通过公网中的中继服务器进行中转传输。
可选地,所述通过所述STUN服务器获取自身的外网IP和端口包括:
所述客户端通过调度服务器获取就近区域的具有公网IP的STUN服务器信息;
所述客户端发送探测数据包给所述STUN服务器;
所述客户端接收所述STUN服务器回传的所述客户端的外网IP和端口。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有P2P打洞传输程序,所述P2P打洞传输程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的P2P打洞传输方法。
相较于现有技术,本发明所提出的P2P打洞传输方法和系统、电子装置及计算机可读存储介质,可以准确探测客户端最近的外网IP和port,优化后台多级NAT出口IP和port变化的可能,提升P2P打洞的成功率。并且可以缩短路由路径节点距离,提升P2P传输效率。
附图说明
图1是本发明第一实施例提出的一种P2P打洞传输系统的架构示意图;
图2是本发明第二实施例提出的一种电子装置的架构示意图;
图3是本发明第三实施例提出的一种P2P打洞传输方法的流程示意图;
图4是本发明第四实施例提出的一种P2P打洞传输方法的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
第一实施例
参阅图1所示,本发明第一实施例提出一种P2P打洞传输系统较佳实施例的架构示意图。
在本实施例中,P2P打洞传输系统1包括多个STUN服务器2,每个STUN服务器2连接一个或多个NAT网关3,每个NAT网关3连接一个或多个客户端4,上述各个装置之间通过有线或无线网络进行数据通信。
在本实施例中,为了解决P2P打洞成功率,以及优化P2P传输路由路径,所以STUN服务器2采用分布式方式部署,覆盖各个区域的运营商网络,提升跨网域能力。
两个客户端4(本地客户端41和远端客户端42,图中未示出)分别经由对应的NAT网关3,通过就近区域的STUN服务器2获取自身的外网IP和port。然后通过Internet网络向对方发送自身的外网IP和port,以及获取对方的外网IP和port。最后本地客户端41和远端客户端42各自向对方的外网IP和port发送测试数据包,以建立P2P打洞数据传输通道。其中,当本地客户端41或远端客户端42接收到对方发送的测试数据包后,及时向对方反馈ACK回应帧。当本地客户端41或远端客户端42在预设时间内收到对方反馈的ACK回应帧时,确定该P2P打洞数据传输通道建立成功。当本地客户端41和远端客户端42都超时没有收到对方反馈的ACK回应帧时,确定该P2P打洞数据传输通道建立失败。若该P2P打洞数据传输通道建立失败,则本地客户端41和远端客户端42需要通过公网中的中继(relay)服务器进行中转传输。
上述P2P打洞传输系统1中各个装置的功能的详细说明请参阅下述第三实施例,在此不再赘述。
第二实施例
参阅图2所示,本发明第二实施例提出一种电子装置10。在本实施例中,所述电子装置10可以为所述客户端4(本地客户端41)。
所述电子装置10包括:存储器11、处理器13、网络接口15及通信总线17。其中,网络接口15可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。通信总线17用于实现这些组件之间的连接通信。
存储器11至少包括一种类型的可读存储介质。上述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,上述存储器11可以是电子装置10的内部存储单元,例如该电子装置10的硬盘。在另一些实施例中,上述存储器11也可以是电子装置10的外部存储单元,例如电子装置10上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
上述存储器11可以用于存储安装于电子装置10的应用软件及各类数据,例如P2P打洞传输程序100的程序代码及其运行过程中产生的相关数据。
处理器13在一些实施例中可以是一中央处理器,微处理器或其它数据处理芯片,用于运行存储器11中存储的程序代码或处理数据。
图2仅示出了具有组件11、13、15、17以及P2P打洞传输程序100的电子装置10,但是应理解的是,图2并未示出电子装置10的所有组件,可以替代实施更多或者更少的组件。
在图2所示的电子装置10实施例中,作为一种计算机存储介质的存储器11中存储P2P打洞传输程序100的程序代码,处理器13执行上述P2P打洞传输程序100的程序代码时,实现如下方法:
(1)经由对应的NAT网关3,通过STUN服务器2获取自身的外网IP和port。
(2)通过Internet网络向远端客户端4发送自身的外网IP和port。
(3)通过Internet网络获取远端客户端4的外网IP和port。
(4)向远端客户端42的外网IP和port发送测试数据包,并接收远端客户端42发送的测试数据包,以建立P2P打洞数据传输通道。其中,当本地客户端41(电子装置10)或远端客户端42接收到对方发送的测试数据包后,及时向对方反馈ACK回应帧。当本地客户端41或远端客户端42在预设时间内收到对方反馈的ACK回应帧时,确定该P2P打洞数据传输通道建立成功。当本地客户端41和远端客户端42都超时没有收到对方反馈的ACK回应帧时,确定该P2P打洞数据传输通道建立失败。若该P2P打洞数据传输通道建立失败,则本地客户端41和远端客户端42需要通过公网中的中继服务器进行中转传输。
上述方法的详细说明请参阅下述第四实施例,在此不再赘述。
第三实施例
参阅图3所示,本发明第三实施例提出一种P2P打洞传输方法,应用于上述P2P打洞传输系统1。在本实施例中,根据不同的需求,图3所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。该方法包括:
S10,本地客户端41和远端客户端42分别经由对应的NAT网关3,通过STUN服务器2获取自身的外网IP和port。
在本实施例中,客户端4(本地客户端41和远端客户端42)可以通过调度服务器(图1中未示出)获取该客户端4所在同一区域(就近区域)的具有公网IP的STUN服务器2信息,其中该调度服务器中包含了线上所有STUN服务器2的信息。根据STUN的Binding Requests协议,客户端4发送探测数据包给就近区域的STUN服务器2,该STUN服务器2接收客户端4发送的探测数据包后,得到该客户端4的外网(NAT公网)IP和port,并把该IP和port打包回传给该客户端4。
例如,A客户端(本地客户端41)经过NAT A网关,通过就近区域的STUN服务器A探测自身的外网IP_a:port_a。B客户端(远端客户端42)经过NAT B网关,通过就近区域的STUN服务器B探测自身的外网IP_b:port_b。
S12,本地客户端41和远端客户端42通过Internet网络向对方发送自身的外网IP和port。
例如,A客户端通过Internet网络向B客户端发送自身的外网IP_a:port_a,B客户端通过Internet网络向A客户端发送自身的外网IP_b:port_b。
S14,本地客户端41和远端客户端42通过Internet网络获取对方的IP和port。
例如,A客户端通过Internet网络接收B客户端发送的外网IP_b:port_b,B客户端通过Internet网络接收A客户端发送的外网IP_a:port_a。
S16,本地客户端41和远端客户端42各自向对方的外网IP和port发送测试数据包,以建立P2P打洞数据传输通道。
当本地客户端41或远端客户端42接收到对方发送的测试数据包后,及时向对方反馈ACK回应帧。只要本地客户端41和远端客户端42中至少一方在预设时间内收到对方反馈的ACK回应帧,则确定该P2P打洞数据传输通道建立成功。若本地客户端41和远端客户端42都超时没有收到对方反馈的ACK回应帧,则确定该P2P打洞数据传输通道建立失败。若该P2P打洞数据传输通道建立失败,则本地客户端41和远端客户端42需要通过公网中的中继服务器进行中转传输。
本实施例提供的P2P打洞传输方法,可以准确探测客户端4最近的外网IP和port,优化后台多级NAT出口IP和port变化的可能,提升P2P打洞的成功率。并且可以缩短路由路径节点距离,提升P2P传输效率。
第四实施例
参阅图4所示,本发明第四实施例提出一种P2P打洞传输方法,应用于上述电子装置10,也就是客户端4(本地客户端41)。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。该方法包括:
S20,经由对应的NAT网关3,通过STUN服务器2获取自身的外网IP和port。
在本实施例中,客户端4可以通过调度服务器(图1中未示出)获取该客户端4所在同一区域(就近区域)的具有公网IP的STUN服务器2信息,其中该调度服务器中包含了线上所有STUN服务器2的信息。根据STUN的Binding Requests协议,客户端4发送探测数据包给就近区域的STUN服务器2,该STUN服务器2接收客户端4发送的探测数据包后,得到该客户端4的外网(NAT公网)IP和port,并把该IP和port打包回传给该客户端4。
S22,通过Internet网络向远端客户端42发送自身的外网IP和port。
S24,通过Internet网络获取远端客户端42的外网IP和port。
S26,向远端客户端42的外网IP和port发送测试数据包,并接收远端客户端42发送的测试数据包,以建立P2P打洞数据传输通道。
当本地客户端41(电子装置10)或远端客户端42接收到对方发送的测试数据包后,及时向对方反馈ACK回应帧。只要本地客户端41和远端客户端42中至少一方在预设时间内收到对方反馈的ACK回应帧,则确定该P2P打洞数据传输通道建立成功。若本地客户端41和远端客户端42都超时没有收到对方反馈的ACK回应帧,则确定该P2P打洞数据传输通道建立失败。若该P2P打洞数据传输通道建立失败,则本地客户端41和远端客户端42需要通过公网中的中继(relay)服务器进行中转传输。
本实施例提供的P2P打洞传输方法,可以准确探测客户端4最近的外网IP和port,优化后台多级NAT出口IP和port变化的可能,提升P2P打洞的成功率。并且可以缩短路由路径节点距离,提升P2P传输效率。
第五实施例
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,上述计算机可读存储介质存储有P2P打洞传输程序100,上述P2P打洞传输程序100可被至少一个处理器执行,以使上述至少一个处理器执行如上述的P2P打洞传输方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台客户端(可以是手机,计算机,电子装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种P2P打洞传输方法,应用于客户端,其特征在于,所述方法包括:
通过调度服务器获取就近区域的具有公网IP的STUN服务器信息;
发送探测数据包给所述STUN服务器;
接收所述STUN服务器回传的所述客户端的外网IP和端口;
通过Internet网络向远端客户端发送自身的外网IP和端口;
通过Internet网络获取所述远端客户端的外网IP和端口,所述远端客户端的外网IP和端口由所述远端客户端通过就近区域的STUN服务器获取,所述STUN服务器在各个区域分布式部署;及
向所述远端客户端的外网IP和端口发送测试数据包,并接收所述远端客户端发送的测试数据包,以建立P2P打洞数据传输通道。
2.如权利要求1所述的P2P打洞传输方法,其特征在于,所述建立P2P打洞数据传输通道还包括:
当所述客户端接收到所述远端客户端发送的测试数据包后,及时向所述远端客户端反馈ACK回应帧;
当所述客户端在预设时间内收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立成功;
当所述客户端超时没有收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立失败,所述客户端通过公网中的中继服务器与所述远端客户端进行中转传输。
3.一种电子装置,其特征在于,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的P2P打洞传输程序,所述P2P打洞传输程序被所述处理器执行时实现如下方法:
通过调度服务器获取就近区域的具有公网IP的STUN服务器信息;
发送探测数据包给所述STUN服务器;
接收所述STUN服务器回传的所述电子装置的外网IP和端口;
通过Internet网络向远端客户端发送自身的外网IP和端口;
通过Internet网络获取所述远端客户端的外网IP和端口,所述远端客户端的外网IP和端口由所述远端客户端通过所述就近区域的STUN服务器获取,所述STUN服务器在各个区域分布式部署;及
向所述远端客户端的外网IP和端口发送测试数据包,并接收所述远端客户端发送的测试数据包,以建立P2P打洞数据传输通道。
4.如权利要求3所述的电子装置,其特征在于,所述建立P2P打洞数据传输通道还包括:
当所述电子装置接收到所述远端客户端发送的测试数据包后,及时向所述远端客户端反馈ACK回应帧;
当所述电子装置在预设时间内收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立成功;
当所述电子装置超时没有收到所述远端客户端反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立失败,所述客户端通过公网中的中继服务器与所述远端客户端进行中转传输。
5.一种P2P打洞传输系统,其特征在于,所述系统包括:
STUN服务器,所述STUN服务器在各个区域分布式部署;
至少两个客户端;
两个所述客户端分别通过调度服务器获取就近区域的具有公网IP的STUN服务器信息,发送探测数据包给所述STUN服务器,接收所述STUN服务器回传的所述客户端的外网IP和端口;
两个所述客户端分别通过Internet网络向对方发送自身的外网IP和端口,以及获取对方的外网IP和端口;
两个所述客户端各自向对方的外网IP和端口发送测试数据包,以建立P2P打洞数据传输通道。
6.如权利要求5所述的P2P打洞传输系统,其特征在于,所述STUN服务器为多个,每个所述STUN服务器连接一个或多个NAT网关,每个所述NAT网关连接一个或多个所述客户端,两个所述客户端分别经由对应的所述NAT网关,通过就近区域的所述STUN服务器获取自身的外网IP和端口。
7.如权利要求5所述的P2P打洞传输系统,其特征在于,所述建立P2P打洞数据传输通道还包括:
当所述客户端接收到对方发送的测试数据包后,及时向对方反馈ACK回应帧;
当至少一个所述客户端在预设时间内收到对方反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立成功;
当两个所述客户端都超时没有收到对方反馈的ACK回应帧时,确定所述P2P打洞数据传输通道建立失败,两个所述客户端之间通过公网中的中继服务器进行中转传输。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有P2P打洞传输程序,所述P2P打洞传输程序可被至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-2中任一项所述的P2P打洞传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811366334.5A CN109660637B (zh) | 2018-11-16 | 2018-11-16 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811366334.5A CN109660637B (zh) | 2018-11-16 | 2018-11-16 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660637A CN109660637A (zh) | 2019-04-19 |
CN109660637B true CN109660637B (zh) | 2024-01-19 |
Family
ID=66110974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811366334.5A Active CN109660637B (zh) | 2018-11-16 | 2018-11-16 | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660637B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110266828A (zh) * | 2019-06-11 | 2019-09-20 | 华为技术有限公司 | 一种建立端到端网络连接的方法、装置及网络系统 |
CN111600968B (zh) * | 2020-03-31 | 2022-07-05 | 普联技术有限公司 | P2p网络中nat打洞方法、装置、设备及可读存储介质 |
CN111506013A (zh) * | 2020-04-08 | 2020-08-07 | 上海汉枫电子科技有限公司 | 一种基于虚拟串口的plc设备远程数据通信实现方法 |
CN111711654B (zh) * | 2020-05-14 | 2023-03-31 | 深圳威尔视觉传媒有限公司 | P2p通讯连接方法、电子设备及计算机可读存储介质 |
CN111741075A (zh) * | 2020-05-28 | 2020-10-02 | 深圳市元征科技股份有限公司 | 通信连接方法、车辆远程连接系统及连接设备 |
CN112152992A (zh) * | 2020-07-21 | 2020-12-29 | 北京天顶星智能信息技术有限公司 | 一种端到端的数据安全传输网络通信方法及装置 |
CN112954061A (zh) * | 2021-02-20 | 2021-06-11 | 杭州卯方科技有限公司 | 一种在端口受限的网络中实现p2p打洞的装置 |
CN114338632B (zh) * | 2021-12-24 | 2023-09-22 | 广州通则康威智能科技有限公司 | 远程终端控制方法、装置、计算机设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217536A (zh) * | 2007-12-28 | 2008-07-09 | 腾讯科技(深圳)有限公司 | 穿越网络地址转换设备/防火墙的方法、系统及客户端 |
CN101741914A (zh) * | 2010-02-03 | 2010-06-16 | 上海悠络客电子科技有限公司 | 一种p2p网络中穿透nat建立覆盖网的方法和系统 |
WO2012048613A1 (zh) * | 2010-10-15 | 2012-04-19 | 中兴通讯股份有限公司 | 支持nat穿越的集中式p2p系统、nat穿越的方法 |
CN103392316A (zh) * | 2013-01-11 | 2013-11-13 | 华为技术有限公司 | 穿越防火墙的方法、客户端和媒体穿越服务器 |
CN104717186A (zh) * | 2013-12-16 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 一种在网络系统中传输数据的方法、装置及数据传输系统 |
CN105120530A (zh) * | 2015-09-11 | 2015-12-02 | 北京金山安全软件有限公司 | 一种获取数据的方法、装置及数据获取系统 |
CN105847343A (zh) * | 2016-03-21 | 2016-08-10 | 福建星网锐捷通讯股份有限公司 | 用于点对点传输的公网信息探测方法、装置及系统 |
CN106210092A (zh) * | 2016-07-19 | 2016-12-07 | 天彩电子(深圳)有限公司 | 一种融合upnp及stun的p2p穿越方法及其系统 |
CN106303117A (zh) * | 2015-06-08 | 2017-01-04 | 李明 | 基于ip网络的通讯方法及通讯系统 |
-
2018
- 2018-11-16 CN CN201811366334.5A patent/CN109660637B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217536A (zh) * | 2007-12-28 | 2008-07-09 | 腾讯科技(深圳)有限公司 | 穿越网络地址转换设备/防火墙的方法、系统及客户端 |
CN101741914A (zh) * | 2010-02-03 | 2010-06-16 | 上海悠络客电子科技有限公司 | 一种p2p网络中穿透nat建立覆盖网的方法和系统 |
WO2012048613A1 (zh) * | 2010-10-15 | 2012-04-19 | 中兴通讯股份有限公司 | 支持nat穿越的集中式p2p系统、nat穿越的方法 |
CN103392316A (zh) * | 2013-01-11 | 2013-11-13 | 华为技术有限公司 | 穿越防火墙的方法、客户端和媒体穿越服务器 |
CN104717186A (zh) * | 2013-12-16 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 一种在网络系统中传输数据的方法、装置及数据传输系统 |
CN106303117A (zh) * | 2015-06-08 | 2017-01-04 | 李明 | 基于ip网络的通讯方法及通讯系统 |
CN105120530A (zh) * | 2015-09-11 | 2015-12-02 | 北京金山安全软件有限公司 | 一种获取数据的方法、装置及数据获取系统 |
CN105847343A (zh) * | 2016-03-21 | 2016-08-10 | 福建星网锐捷通讯股份有限公司 | 用于点对点传输的公网信息探测方法、装置及系统 |
CN106210092A (zh) * | 2016-07-19 | 2016-12-07 | 天彩电子(深圳)有限公司 | 一种融合upnp及stun的p2p穿越方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109660637A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109660637B (zh) | P2p打洞传输方法和系统、电子装置及计算机可读存储介质 | |
US10341393B2 (en) | Apparatus and method for communications involving a legacy device | |
CN109495599B (zh) | 数据传输方法和系统、电子装置及计算机可读存储介质 | |
US8159988B2 (en) | Relay apparatus, relay method, and recording medium storing relay program | |
CN106899500B (zh) | 一种跨虚拟可扩展局域网的报文处理方法及装置 | |
EP3142322B1 (en) | Auto configuration server and method | |
US20180302370A1 (en) | Communication system, address notification apparatus, communication control apparatus, terminal, communication method, and program | |
CN102547553B (zh) | 一种基于wap进行业务访问的方法、系统及装置 | |
CN111510476A (zh) | 通信方法、装置、计算机设备和计算机可读存储介质 | |
JP3999785B2 (ja) | 通信方法 | |
CN103973648B (zh) | 应用数据推送方法、装置及系统 | |
CN111464879A (zh) | 一种数据通信的方法及装置 | |
US10375175B2 (en) | Method and apparatus for terminal application accessing NAS | |
CN109286665B (zh) | 实时移动游戏长链接处理方法及装置 | |
CN103152495A (zh) | 一种媒体转移的方法、装置及系统 | |
CN112202780B (zh) | 一种基于双套接字的数据传输方法、装置、设备及介质 | |
US20080198851A1 (en) | Information processing system including information processing apparatus and terminals, and information processing method for the same | |
RU2003137223A (ru) | Система связи | |
CN110351159A (zh) | 一种跨内网的网络性能测试方法及装置 | |
CN111464654A (zh) | 数据传输方法及装置 | |
CN117081990B (zh) | 一种mpls流量代理方法、系统、设备及存储介质 | |
CN110601982A (zh) | 路由传递方法、装置及路由器 | |
CN105556921A (zh) | 用于浏览器始发规程的基于移动设备的代理 | |
KR101586058B1 (ko) | Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법 | |
CN114466008B (zh) | 一种云边通信系统、方法、装置、电子设备及存储介质 |
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 |