CN111314458A - P2p网络的打洞方法、打洞装置及计算机可读存储介质 - Google Patents
P2p网络的打洞方法、打洞装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111314458A CN111314458A CN202010090431.7A CN202010090431A CN111314458A CN 111314458 A CN111314458 A CN 111314458A CN 202010090431 A CN202010090431 A CN 202010090431A CN 111314458 A CN111314458 A CN 111314458A
- Authority
- CN
- China
- Prior art keywords
- node
- punching
- intranet
- network
- hole
- 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
Images
Classifications
-
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种P2P网络的打洞方法,请求打洞节点从分布式网络中获取目标内网节点注册的打洞服务节点的信息之后,向目标内网节点注册的打洞服务节点发起打洞请求,在打洞服务节点将请求打洞节点的信息发送至目标内网节点之后,请求打洞节点接收目标内网节点发送的打洞信令,此时,目标内网节点的NAT设备便记录了请求打洞节点的地址,请求打洞节点便可以向目标内网节点发送打洞信令,请求打洞节点发送的打洞信令不会再被目标内网节点拒收,从而建立了请求打洞节点与目标内网节点之间的数据通道,请求打洞节点可以向目标内网节点请求数据。
Description
技术领域
本发明涉及通信领域,尤其涉及P2P网络的打洞方法、打洞装置及计算机可读存储介质。
背景技术
网络地址包含局域网范畴下的私有网际协议(internet protocol,IP)地址与广域网范畴下的公有IP协议,某个内网节点在与外网节点或者其他内网节点进行通信时,需要由网络地址转换(network address translation,NAT)设备进行网络地址转换,网络地址转换具体指的是NAT设备将私有IP地址转换为公有IP地址。
在实际应用中,NAT设备只在内网节点主动发起与外网节点或者其他内网节点的连接的情况下才允许外网节点或者其他内网节点访问该内网节点,在该内网节点没有主动发起连接的情况下,该内网节点的NAT设备上没有记录外网节点或者其他内网节点的IP地址,此时,当有外网节点或者其他内网节点主动向该内网节点发送数据包时,该内网节点的NAT设备会将该数据包丢弃,拒收该数据包,从而导致外网节点或者其他内网节点无法访问该内网节点。
此外,位于中心化网络下的节点在进行数据通信时会受到该中心化网络中的中心服务器的监管,用户通过节点发送的信息会受到该中心服务器的追踪,因此难以保证节点的用户的隐私安全。
发明内容
本发明的主要目的在于提供一种P2P网络的打洞方法、打洞装置及计算机可读存储介质,以解决在内网节点没有主动发起连接的情况下,外网节点或者其他内网节点无法与内网节点进行通信的问题。
为实现上述目的,本发明提供的一种P2P网络的打洞方法,所述方法应用于分布式网络,所述方法包括:
从所述分布式网络中获取目标内网节点注册的打洞服务节点的信息,所述打洞服务节点为外网节点,所述目标内网节点为请求打洞节点所要打洞的内网节点;
向所述目标内网节点注册的打洞服务节点发起打洞请求,以使得所述打洞服务节点将所述请求打洞节点的信息发送至所述目标内网节点;
向所述目标内网节点发送打洞信令,并接收所述目标内网节点的打洞信令,以使得所述请求打洞节点与所述目标内网节点建立数据通道。
优选的,所述从所述分布式网络中获取目标内网节点注册的打洞服务节点的信息,包括:
获取文件分片的标识信息,所述文件分片的标识信息与所述分布式网络中的内网节点的注册信息打包后由所述内网节点扩散至所述分布式网络中,所述注册信息为所述内网节点注册打洞服务时所形成的信息,所述注册信息包括所述目标内网节点注册的打洞服务节点的信息;
根据所述文件分片的标识信息查询对应的注册信息,得到所述打洞服务节点的信息。
优选的,所述方法还包括:
根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点。
优选的,当所述注册信息包括网际协议地址时,所述根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点,包括:
从多个所述内网节点中,选择网际协议地址所在的互联网服务提供商与所述请求打洞节点的网际协议地址所在的互联网服务提供商相同的内网节点作为所述目标内网节点。
优选的,当所述注册信息包括网际协议地址时,所述根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点,包括:
从多个所述内网节点中,选择网际协议地址所在的互联网服务提供商与所述请求打洞节点的网际协议地址所在的互联网服务提供商位于相同地区的内网节点作为所述目标内网节点。
优选的,当所述注册信息包括网络地址转换NAT类型时,所述根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点,包括:
从多个所述内网节点中,选择网络地址转换NAT类型为预设类型的内网节点作为所述目标内网节点。
本申请实施例第二方面提供了一种P2P网络的打洞方法,所述方法应用于分布式网络,所述方法包括:
内网节点与打洞服务节点建立连接,并在所述打洞服务节点注册打洞服务,所述打洞服务节点为外网节点;
将注册信息扩散至所述内网节点所在的去中心化网络的其他节点;
接收所述打洞服务节点的打洞请求通知,所述打洞请求通知中包含请求打洞节点的信息;
向所述请求打洞节点发送打洞信令,并接收所述请求打洞节点的打洞信令,以使得所述请求打洞节点与所述内网节点建立数据通道。
优选的,所述将注册信息扩散至所述内网节点所在的去中心化网络的其他节点,包括:
将所述注册信息与部署在所述分布式网络中的文件分片的标识信息打包;
将打包后的所述注册信息与所述文件分片的标识信息扩散至所述去中心化网络的其他节点。
优选的,所述将打包后的所述注册信息与所述文件分片的标识信息扩散至所述去中心化网络的其他节点,包括:
将打包后的所述文件分片的标识信息作为关键字key、所述注册信息作为值value,形成键值对类型数据;
将所述键值对类型数据扩散至所述去中心化网络的其他节点,以使所述其他节点根据所述关键字key查询对应的所述值value。
优选的,所述与打洞服务节点建立连接,并在所述打洞服务节点注册打洞服务,包括:
与所述打洞服务节点建立UDP连接,并获得由所述打洞服务节点生成的节点标识信息。
优选的,所述注册信息包括所述打洞服务节点的网际协议地址、所述打洞服务节点的端口号、打洞服务端口信息、所述节点标识信息、所述内网节点的网络地址转换NAT类型、所述内网节点在分布式哈希表DHT网络中的节点标识信息中的一项或多项。
本申请实施例第三方面提供了一种P2P网络的打洞装置,其特征在于,所述装置应用于分布式网络,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的P2P网络的打洞程序,所述P2P网络的打洞程序被所述处理器执行时实现如前述第一方面及第二方面所述的方法。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有P2P网络的打洞程序,所述P2P网络的打洞程序可被一个或者多个处理器执行,以实现上述P2P网络的打洞方法。
为实现上述目的,本发明进一步提供一种计算机程序产品,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机可以执行上述P2P网络的打洞方法。
本申请实施例中,请求打洞节点从分布式网络中获取目标内网节点注册的打洞服务节点的信息之后,向目标内网节点注册的打洞服务节点发起打洞请求,在打洞服务节点将请求打洞节点的信息发送至目标内网节点之后,请求打洞节点接收目标内网节点发送的打洞信令,此时,目标内网节点的NAT设备便记录了请求打洞节点的地址,请求打洞节点便可以向目标内网节点发送打洞信令,请求打洞节点发送的打洞信令不会再被目标内网节点拒收,从而建立了请求打洞节点与目标内网节点之间的数据通道,请求打洞节点可以向目标内网节点请求数据。此外,本申请实施例的方法应用在了分布式网络,该分布式网络为去中心化的网络结构,网络中每个节点均是平等的,不存在中心服务器,因此,节点之间的信息交互是独立进行的,不会受到中心服务器的监管和追踪,保障了用户的隐私安全。
附图说明
图1为本申请实施例中分布式网络的网络框架示意图;
图2为本申请实施例P2P网络的打洞方法一实施例的流程示意图;
图3为本申请实施例P2P网络的打洞方法另一实施例的流程示意图;
图4为本申请实施例P2P网络的打洞方法另一实施例的流程示意图;
图5为本申请实施例P2P网络的打洞装置的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本申请实施例提供了一种P2P网络的打洞方法、打洞装置及计算机可读存储介质,以解决在内网节点没有主动发起连接的情况下,外网节点或者其他内网节点无法与内网节点进行通信的问题。
参照图1,图1为本申请实施例中分布式网络的网络框架示意图,该分布式网络的网络框架包括:
内网节点101及内网节点101的网络地址转换(network address translation,NAT)设备1011、内网节点102及内网节点102的NAT设备1021、外网节点103、打洞服务节点104、网络105。
本申请实施例的分布式网络可以是分布式哈希表(distributed hash table,DHT)网络。除此之外,可以对网络中的节点所发出的信息进行扩散的其他分布式网络亦可,例如还可以是内容分发网络(content delivery network,CDN)或者是区块链网络。
需要说明的是,本申请实施例的网络框架中,仅以两个内网节点101以及102、一个打洞服务节点104以及一个外网节点103为例进行说明,在实际应用中,该网络框架可以有更多的内网节点、打洞服务节点以及外网节点。
其中,内网节点101及内网节点102为终端设备,可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、个人数字助理(personal digital assitant,PDA)、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备等终端设备。
NAT设备1011或NAT设备1021分别用于将内网节点101或内网节点102的私网IP转换为公网IP,以便于内网节点101或内网节点102与外界的其他节点通信,NAT设备1011或NAT设备1021可以是路由器或者其他能够进行网络地址转换的设备,具体NAT设备的种类不作限定。
外网节点103为具有公网IP的网络设备,其可以是终端或服务器。打洞服务节点104为开启了打洞服务的网络节点,可用于为分布式网络中的节点转发信令或网络请求,其可以是具有外网服务能力的外网节点。
本网络框架中,网络105一般为无线网络,也可以是有线网络,如果是无线网络,其类型可以为蜂窝状无线网络,或者是WiFi网络,或者是其他类型的无线网络。如果是有线网络,一般的网络形式为光纤网络。本网络框架中的节点与节点之间可以基于用户数据报协议(user datagram protocol,UDP)进行通信连接。
在本申请实施例的分布式网络中,不存在中心化的网络节点,分布式网络中每个网络节点均是平等的,不受任何其他网络节点的控制,网络节点之间的数据交互和信息传输是独立进行的,因此能够很好地保护网络节点的用户的隐私信息。
下面结合图1的网络框架,对本申请实施例中的P2P网络的打洞方法进行描述:
请参阅图2,图2为本申请实施例中一实施例的流程示意图。
在本实施例中,P2P网络的打洞方法应用于分布式网络,该方法包括:
S201,从分布式网络中获取目标内网节点注册的打洞服务节点的信息。
本实施例中,对等网络(P2P,Peer-to-peer)可以是图1所述的分布式网络,在分布式网络中,请求打洞节点与分布式网络中的内网节点进行打洞从而与该内网节点建立数据交互通道,此时,请求打洞节点获取该内网节点注册的打洞服务节点的信息。本实施例中,将请求打洞节点所要打洞的该内网节点称为目标内网节点。目标内网节点注册打洞服务节点也就是目标内网节点在打洞服务节点上注册了打洞服务。
其中,目标内网节点与打洞服务节点之间的连接可以是基于用户数据报协议(user datagram protocol,UDP),也可以是基于快速UDP互联网连接协议(quick UDPInternet connection,QUIC),连接所使用的协议能够保证目标内网节点与打洞服务节点之间进行正常的数据传输,连接协议的具体类型不作限定。
本实施例中,打洞服务节点为外网节点,请求打洞节点为分布式网络中请求访问目标内网节点的任意节点,可以是外网节点或者除了目标内网节点之外的其他内网节点。
S202,向目标内网节点注册的打洞服务节点发起打洞请求。
请求打洞节点获取到打洞服务节点的信息之后,向与该信息对应的打洞服务节点发起打洞请求,打洞请求用于表示请求打洞节点需要对目标内网节点进行打洞,打洞请求中包括了请求打洞节点的信息,以便于打洞服务节点将打洞请求中包括的请求打洞节点的信息发送至目标内网节点。
S203,向目标内网节点发送打洞信令,并接收目标内网节点的打洞信令。
在目标内网节点接受到打洞服务节点转发的打洞请求之后,目标内网节点向请求打洞节点发送打洞信令,请求打洞节点接收目标内网节点发送的打洞信令,并向目标内网节点发送打洞信令,请求打洞节点向目标内网节点发送的打洞信令不会再被目标内网节点拒收,从而在请求打洞节点与目标内网节点之间建立起了数据通道。
本实施例中,请求打洞节点接收到目标内网节点发送的打洞信令,此时,目标内网节点的NAT设备便记录了请求打洞节点的地址,请求打洞节点便可以向目标内网节点发送打洞信令,请求打洞节点发送的打洞信令不会再被目标内网节点拒收,从而建立了请求打洞节点与目标内网节点之间的数据通道,请求打洞节点可以向目标内网节点请求数据。此外,本实施例的方法应用在了分布式网络,该分布式网络为去中心化的网络结构,网络中每个节点均是平等的,不存在中心服务器,因此,节点之间的信息交互是独立进行的,不会受到中心服务器的监管和追踪,保障了用户的隐私安全。
以上是从请求打洞节点的角度说明本申请实施例的技术方案,接下来将从内网节点的角度来对本申请实施例做进一步的描述。请参照图3,图3为本申请实施例另一实施例的流程示意图。在另一实施例中,该方法包括:
S301、内网节点与打洞服务节点建立连接,并在打洞服务节点注册打洞服务。
内网节点查询分布式网络中开启了打洞服务的外网节点,并将该外网节点作为自己的打洞服务节点并与之建立连接,内网节点与打洞服务节点之间的连接可以是基于UDP协议,也可以是基于快速UDP互联网连接QUIC协议,内网节点与代理服务节点连接所使用的协议能够保证目标内网节点与代理服务节点进行正常的数据传输,连接协议的具体类型不作限定。
内网节点与打洞服务节点建立连接之后,内网节点在打洞服务节点上注册打洞服务,以便于打洞服务节点可以为内网节点转发信令,其中打洞服务节点为外网节点。
S302、将注册信息扩散至内网节点所在的去中心化网络的其他节点。
内网节点在打洞服务节点上注册了打洞服务之后形成了注册信息,注册信息包括内网节点的信息以及内网节点所注册的打洞服务节点的信息。内网节点将注册信息扩散至内网节点所在的去中心化网络的其他节点,以便于该其他内网节点可以获取内网节点的注册信息。
S303、接收打洞服务节点的打洞请求通知。
去中心化网络的其他节点获取到内网节点的注册信息之后,该其他节点中的请求打洞节点向打洞服务节点发送打洞请求,打洞服务节点响应该打洞请求,并向内网节点发送打洞请求通知,该打洞请求通知表示请求打洞节点需要与内网节点进行打洞以建立数据连接通道。内网节点接收该打洞请求通知,该打洞请求通知中包含了请求打洞节点的信息。
S304、向请求打洞节点发送打洞信令,并接收请求打洞节点的打洞信令。
内网节点接收到打洞请求通知之后,响应该打洞请求通知,向请求打洞节点发送打洞信令。此时,内网节点的NAT设备上便记录了请求打洞节点的信息,请求打洞节点向内网节点发送的打洞信令被内网节点接收,至此便实现了请求打洞节点与内网节点之间的数据传输,请求打洞节点与内网节点可以进行通信。
本申请实施例中,请求打洞节点获取到分布式网络中的内网节点的注册信息之后,可以根据预设的筛选标准来筛选出更适合打洞的目标内网节点。接下来将结合该筛选标准来对本申请实施例作进一步的描述。请参阅图4,图4为本申请实施例的另一实施例的流程示意图,本实施例的打洞方法包括:
S401、目标内网节点与打洞服务节点建立连接。
本步骤与前述图3所示实施例中的步骤301目标内网节点与打洞服务节点建立连接时所执行的操作类似,此处不再赘述。
S402、目标内网节点在打洞服务节点注册打洞服务。
目标内网节点与打洞服务节点建立连接之后,目标内网节点在打洞服务节点注册打洞服务,也就是从打洞服务节点获得由打洞服务节点生成的节点标识信息。节点标识信息为用于识别和确认特定节点的信息,包括节点的身份识别信息等信息。
目标内网节点在打洞服务节点上注册了打洞服务之后形成了注册信息,注册信息包括目标内网节点的信息以及目标内网节点所注册的打洞服务节点的信息,具体包括但不限于目标内网节点的网际协议IP地址、打洞服务节点的网际协议地址、打洞服务节点的端口号、打洞服务端口信息、内网节点注册打洞服务时形成的节点标识信息、内网节点的网络地址转换NAT类型、内网节点在分布式哈希表DHT网络中的节点标识信息中的一项或多项。
目标内网节点将注册信息扩散至目标内网节点所在的去中心化网络的其他节点,以便于该其他目标内网节点可以获取目标内网节点的注册信息。
本实施例中,目标内网节点将注册信息扩散至其他节点的方式可以是如后续步骤403至404所述的方式。
S403、将注册信息与部署在分布式网络中的文件分片的标识信息打包。
目标内网节点在向分布式网络扩散注册信息之前,目标内网节点将注册信息与部署在分布式网络中的文件分片的标识信息进行打包。其中文件分片为目标内网节点所存储的文件的分片,所存储的文件可以是视频文件、音频文件或其他数据。文件分片的标识信息用于表示文件分片的存储位置。
S404、将打包后的注册信息与文件分片的标识信息扩散至去中心化网络的其他节点。
目标内网节点将打包后得到的注册信息与文件分片的标识信息扩散至目标内网节点所在的分布式网络中,以使分布式网络根据路由表对打包后的注册信息与文件分片的标识信息进行扩散,以便于分布式网络中的其他节点获取,并根据文件分片的标识信息查询对应的注册信息。
为便于其他节点查询注册信息,目标内网节点可以将打包后的文件分片的标识信息作为关键字key、注册信息作为值value,也就是将注册信息与文件分片的标识信息作为键值对类型的数据。之后,目标内网节点将该键值对类型数据扩散至去中心化网络的其他节点,其他节点便可以根据关键字key查询对应的值value。
在实际应用中,目标内网节点还可以对打包后的注册信息与文件分片的标识信息进行加密后再扩散到分布式网络中,以保证数据信息不被泄露。
本实施例中,将注册信息与文件分片的标识信息打包并扩散的做法能够便于分布式网络中的其他节点查询注册信息,可以理解的是,目标内网节点将注册信息扩散至其他节点的方式除了步骤403至404所述的方式,还可以是,目标内网节点也可以不将注册信息与文件分片的标识信息打包,而是建立注册信息与文件分片的标识信息之间的映射关系,并分开扩散注册信息与文件分片的标识信息,其他节点根据映射关系即可查询到与文件分片的标识信息对应的注册信息。
本实施例中,目标内网节点将注册信息扩散至其他节点之后,该其他节点中的请求打洞节点可以获取到注册信息,该注册信息中包括了目标内网节点所注册的打洞服务节点的信息。请求打洞节点获取注册信息的方式可以是如后续步骤405至406所述的方式。
S405、获取文件分片的标识信息。
在目标内网节点将打包后的注册信息与文件分片的标识信息扩散至分布式网络中的其他节点之后,请求打洞节点从分布式网络中获取文件分片的标识信息。
可以理解的是,若分布式网络中任意的多个内网节点均注册到打洞服务节点,则请求打洞节点也可以从分布式网络中获取该任意的多个内网节点的注册信息,并根据具体的筛选标准从任意的多个内网节点中确定目标内网节点。
S406、根据文件分片的标识信息查询对应的注册信息,得到打洞服务节点的信息。
请求打洞节点获取到文件分片的标识信息之后,由于文件分片的标识信息与注册信息打包在一起,因此,请求打洞节点可以根据文件分片的标识信息查询对应的注册信息,从而得到该注册信息包括的打洞服务节点的信息,该打洞服务节点为目标内网节点所注册的打洞服务节点,该打洞服务节点的信息用于使请求打洞节点确认特定的打洞服务节点,以便于在后续步骤中向特定的打洞服务节点发起打洞请求。打洞服务节点的信息包括但不限于打洞服务节点的网际协议地址、打洞服务节点的端口号、打洞服务端口信息,只要是能够识别打洞服务节点的信息即可。
S407、根据注册信息从多个内网节点中确定一个或多个作为目标内网节点。
当请求打洞节点从分布式网络中获取任意的内网节点的注册信息时,请求打洞节点可以根据具体的筛选标准从任意的多个内网节点中确定目标内网节点。具体的筛选标准可以是如下所述的几种筛选方式。
一种筛选方式是,如前所述,注册信息包括了内网节点的IP地址,由于节点的IP地址的互联网服务提供商ISP相同更有利于节点的打洞,因此,筛选标准可以设置为“IP地址所在的ISP与请求打洞节点的IP地址所在的ISP相同的内网节点为目标内网节点”,则请求打洞节点可以根据筛选标准判断多个内网节点中的一个或多个的IP地址的ISP是否与自身的IP地址的ISP相同,若相同,则确定该内网节点为目标内网节点。
另一筛选方式是,由于节点的IP地址的ISP位于相同的地区更容易实现对节点的打洞,因此,筛选标准还可以设置为“IP地址所在的ISP与请求打洞节点的IP地址所在的ISP位于相同地区的内网节点为目标内网节点”,则请求打洞节点可以根据筛选标准判断内网节点的IP地址的ISP是否与自身的IP地址的ISP位于相同的地区,若位于相同的地区,则确定该内网节点为目标内网节点。
除此之外,内网节点的注册信息如果包含了内网节点的NAT类型,请求打洞节点还可以根据NAT类型来筛选目标内网节点。例如,请求打洞节点可以筛选NAT类型为预设类型的内网节点作为目标内网节点,NAT的预设类型可以是全锥形或者IP地址限制型,也可以是端口限制型,具体此处不作限定。
可以理解的是,除了上述几种筛选标准,请求打洞节点也可以根据自身节点与内网节点的逻辑距离确定目标内网节点,逻辑距离在预设距离之内的内网节点确定为目标内网节点,筛选标准的具体形式不做限定,只要该筛选标准能够确定出请求打洞节点所要打洞的目标内网节点即可。
可以理解的是,请求打洞节点在获取到分布式网络中任意的多个内网节点所扩散的注册信息之后,也可以将该多个内网节点确定为所要打洞的目标内网节点,而不进行筛选确定出目标内网节点,请求打洞节点是否要筛选内网节点不作限定。
S408、请求打洞节点向打洞服务节点发起打洞请求。
请求打洞节点生成打洞请求并将获取到的目标内网节点的注册信息封装入打洞请求,其中注册信息中包括了目标内网节点的信息。打洞请求用于表示请求打洞节点要对目标内网节点进行打洞。
S409、打洞服务节点向目标内网节点发送打洞请求通知。
请求打洞节点向打洞服务节点发送打洞请求之后,打洞服务节点响应该打洞请求,并向目标内网节点发送打洞请求通知,该打洞请求通知表示请求打洞节点需要与内网节点进行打洞以建立数据连接通道。
S410、目标内网节点向请求打洞节点发送打洞信令。
本步骤与前述图3所示实施例中的步骤304类似,此处不再赘述。
S411、请求打洞节点向目标内网节点发送打洞信令。
本步骤与前述图2所示实施例中的步骤203类似,此处不再赘述。
本实施例中,请求打洞节点可以依据筛选标准确定所要打洞的目标内网节点,若根据筛选标准选择容易打洞的内网节点进行打洞,则提升了打洞的成功率,若根据IP地址选择目标内网节点,则可以有目的性地对特定内网节点进行打洞。因此,请求打洞节点依据筛选标准确定目标内网节点可以使打洞选择更具有灵活性。
上面对本申请实施例中的P2P网络的打洞方法进行了描述,下面对本申请实施例中的P2P网络的打洞装置进行描述。本申请实施例的打洞装置可以应用于分布式网络。请参阅图5,本申请实施例中P2P网络的打洞装置一个实施例包括:
在本实施例中,P2P网络的打洞装置可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
该P2P网络的打洞装置可以是组成CDN网络或者区块链网络、分布式哈希表(distributed hash table,DHT)网络的节点。
该P2P网络的打洞装置可以包括存储器501、处理器502和总线503。
其中,存储器501至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器501在一些实施例中可以是P2P网络的打洞装置的内部存储单元,例如该P2P网络的打洞装置的硬盘。存储器501在另一些实施例中也可以是P2P网络的打洞装置的外部存储设备,例如P2P网络的打洞装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器501还可以既包括P2P网络的打洞装置的内部存储单元也包括外部存储设备。存储器501不仅可以用于存储安装于P2P网络的打洞装置的应用软件及各类数据,例如P2P网络的打洞程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器502在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器501中存储的程序代码或处理数据,例如执行P2P网络的打洞程序等。
该总线503可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,P2P网络的打洞装置还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该P2P网络的打洞装置与其他电子设备之间建立通信连接。
可选地,该P2P网络的打洞装置还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在P2P网络的打洞装置中处理的信息以及用于显示可视化的用户界面。
图5仅示出了具有组件501-503以及P2P网络的打洞程序的P2P网络的打洞装置,本领域技术人员可以理解的是,图5示出的结构并不构成对P2P网络的打洞装置的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种P2P网络的打洞方法,其特征在于,所述方法应用于分布式网络,所述方法包括:
从所述分布式网络中获取目标内网节点注册的打洞服务节点的信息,所述打洞服务节点为外网节点,所述目标内网节点为请求打洞节点所要打洞的内网节点;
向所述目标内网节点注册的打洞服务节点发起打洞请求,以使得所述打洞服务节点将所述请求打洞节点的信息发送至所述目标内网节点;
向所述目标内网节点发送打洞信令,并接收所述目标内网节点的打洞信令,以使得所述请求打洞节点与所述目标内网节点建立数据通道。
2.根据权利要求1所述的P2P网络的打洞方法,其特征在于,所述从所述分布式网络中获取目标内网节点注册的打洞服务节点的信息,包括:
获取文件分片的标识信息,所述文件分片的标识信息与所述分布式网络中的内网节点的注册信息打包后由所述内网节点扩散至所述分布式网络中,所述注册信息为所述内网节点注册打洞服务时所形成的信息,所述注册信息包括所述目标内网节点注册的打洞服务节点的信息;
根据所述文件分片的标识信息查询对应的注册信息,得到所述打洞服务节点的信息。
3.根据权利要求2所述的P2P网络的打洞方法,其特征在于,所述方法还包括:
根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点。
4.根据权利要求3所述的P2P网络的打洞方法,其特征在于,当所述注册信息包括网际协议地址时,所述根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点,包括:
从多个所述内网节点中,选择网际协议地址所在的互联网服务提供商与所述请求打洞节点的网际协议地址所在的互联网服务提供商相同的内网节点作为所述目标内网节点。
5.根据权利要求3所述的P2P网络的打洞方法,其特征在于,当所述注册信息包括网际协议地址时,所述根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点,包括:
从多个所述内网节点中,选择网际协议地址所在的互联网服务提供商与所述请求打洞节点的网际协议地址所在的互联网服务提供商位于相同地区的内网节点作为所述目标内网节点。
6.根据权利要求3所述的P2P网络的打洞方法,其特征在于,当所述注册信息包括网络地址转换NAT类型时,所述根据所述注册信息从多个所述内网节点中确定一个或多个作为所述目标内网节点,包括:
从多个所述内网节点中,选择网络地址转换NAT类型为预设类型的内网节点作为所述目标内网节点。
7.一种P2P网络的打洞方法,其特征在于,所述方法应用于分布式网络,所述方法包括:
内网节点与打洞服务节点建立连接,并在所述打洞服务节点注册打洞服务,所述打洞服务节点为外网节点;
将注册信息扩散至所述内网节点所在的去中心化网络的其他节点;
接收所述打洞服务节点的打洞请求通知,所述打洞请求通知中包含请求打洞节点的信息;
向所述请求打洞节点发送打洞信令,并接收所述请求打洞节点的打洞信令,以使得所述请求打洞节点与所述内网节点建立数据通道。
8.根据权利要求7所述的P2P网络的打洞方法,其特征在于,所述将注册信息扩散至所述内网节点所在的去中心化网络的其他节点,包括:
将所述注册信息与部署在所述分布式网络中的文件分片的标识信息打包;
将打包后的所述注册信息与所述文件分片的标识信息扩散至所述去中心化网络的其他节点。
9.根据权利要求8所述的P2P网络的打洞方法,其特征在于,所述将打包后的所述注册信息与所述文件分片的标识信息扩散至所述去中心化网络的其他节点,包括:
将打包后的所述文件分片的标识信息作为关键字key、所述注册信息作为值value,形成键值对类型数据;
将所述键值对类型数据扩散至所述去中心化网络的其他节点,以使所述其他节点根据所述关键字key查询对应的所述值value。
10.根据权利要求7所述的P2P网络的打洞方法,其特征在于,所述与打洞服务节点建立连接,并在所述打洞服务节点注册打洞服务,包括:
与所述打洞服务节点建立UDP连接,并获得由所述打洞服务节点生成的节点标识信息。
11.根据权利要求10所述的P2P网络的打洞方法,其特征在于,所述注册信息包括所述打洞服务节点的网际协议地址、所述打洞服务节点的端口号、打洞服务端口信息、所述节点标识信息、所述内网节点的网络地址转换NAT类型、所述内网节点在分布式哈希表DHT网络中的节点标识信息中的一项或多项。
12.一种P2P网络的打洞装置,其特征在于,所述装置应用于分布式网络,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的P2P网络的打洞程序,所述P2P网络的打洞程序被所述处理器执行时实现如权利要求1-11任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有P2P网络的打洞程序,所述P2P网络的打洞程序可被一个或者多个处理器执行,以实现如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010090431.7A CN111314458A (zh) | 2020-02-13 | 2020-02-13 | P2p网络的打洞方法、打洞装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010090431.7A CN111314458A (zh) | 2020-02-13 | 2020-02-13 | P2p网络的打洞方法、打洞装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111314458A true CN111314458A (zh) | 2020-06-19 |
Family
ID=71147033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010090431.7A Pending CN111314458A (zh) | 2020-02-13 | 2020-02-13 | P2p网络的打洞方法、打洞装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314458A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112468610A (zh) * | 2020-11-17 | 2021-03-09 | 杭州安恒信息安全技术有限公司 | 数据传输方法、监控节点、监控服务器及监控网络系统 |
CN114598532A (zh) * | 2022-03-11 | 2022-06-07 | 北京百度网讯科技有限公司 | 连接建立方法、装置、电子设备和存储介质 |
CN114765614A (zh) * | 2020-12-31 | 2022-07-19 | 华为技术有限公司 | 一种访问局域网服务设备的方法及电子设备 |
CN115695442A (zh) * | 2022-10-31 | 2023-02-03 | 安徽高山科技有限公司 | 一种基于p2p技术的电子合同安全传输方法、装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286927A (zh) * | 2008-05-08 | 2008-10-15 | 蒋一 | 一种基于节点互连优化实现p2p流媒体系统的方法 |
US20080294785A1 (en) * | 2007-05-23 | 2008-11-27 | Brother Kogyo Kabushiki Kaisha | Communication system, node device, node process program and a message transmitting and receiving method |
CN107580081A (zh) * | 2017-09-18 | 2018-01-12 | 北京奇艺世纪科技有限公司 | 一种nat穿透方法及装置 |
CN108282525A (zh) * | 2018-01-22 | 2018-07-13 | 浙江省公众信息产业有限公司 | 基于对等网络的视频资源管理系统和方法 |
CN109376122A (zh) * | 2018-09-25 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种文件管理方法、系统及区块链节点设备和存储介质 |
CN109788051A (zh) * | 2019-01-02 | 2019-05-21 | 深圳市网心科技有限公司 | 基于分布式文件系统的网络资源传输方法及系统 |
-
2020
- 2020-02-13 CN CN202010090431.7A patent/CN111314458A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080294785A1 (en) * | 2007-05-23 | 2008-11-27 | Brother Kogyo Kabushiki Kaisha | Communication system, node device, node process program and a message transmitting and receiving method |
CN101286927A (zh) * | 2008-05-08 | 2008-10-15 | 蒋一 | 一种基于节点互连优化实现p2p流媒体系统的方法 |
CN107580081A (zh) * | 2017-09-18 | 2018-01-12 | 北京奇艺世纪科技有限公司 | 一种nat穿透方法及装置 |
CN108282525A (zh) * | 2018-01-22 | 2018-07-13 | 浙江省公众信息产业有限公司 | 基于对等网络的视频资源管理系统和方法 |
CN109376122A (zh) * | 2018-09-25 | 2019-02-22 | 深圳市元征科技股份有限公司 | 一种文件管理方法、系统及区块链节点设备和存储介质 |
CN109788051A (zh) * | 2019-01-02 | 2019-05-21 | 深圳市网心科技有限公司 | 基于分布式文件系统的网络资源传输方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112468610A (zh) * | 2020-11-17 | 2021-03-09 | 杭州安恒信息安全技术有限公司 | 数据传输方法、监控节点、监控服务器及监控网络系统 |
CN114765614A (zh) * | 2020-12-31 | 2022-07-19 | 华为技术有限公司 | 一种访问局域网服务设备的方法及电子设备 |
CN114598532A (zh) * | 2022-03-11 | 2022-06-07 | 北京百度网讯科技有限公司 | 连接建立方法、装置、电子设备和存储介质 |
US11863630B2 (en) | 2022-03-11 | 2024-01-02 | Beijing Baidu Netcom Science Technology Co., Ltd. | Connection establishment method, server, accessed node, access node, and storage medium |
CN115695442A (zh) * | 2022-10-31 | 2023-02-03 | 安徽高山科技有限公司 | 一种基于p2p技术的电子合同安全传输方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314458A (zh) | P2p网络的打洞方法、打洞装置及计算机可读存储介质 | |
JP6726426B2 (ja) | 端末間のログイン不要方法及び装置 | |
WO2016029821A1 (zh) | 一种虚拟网络实例的创建方法以及设备 | |
US11240314B2 (en) | Systems and methods for remote management of appliances | |
US20180063879A1 (en) | Apparatus and method for interoperation between internet-of-things devices | |
US20170034174A1 (en) | Method for providing access to a web server | |
CN109951562B (zh) | Nat穿透方法和系统、电子设备和存储介质 | |
US20160234307A1 (en) | Data transmission method, device, and system | |
JP2019519975A (ja) | リソースサブスクリプション方法、リソースサブスクリプション装置、及びリソースサブスクリプションシステム | |
EP3016423A1 (en) | Network safety monitoring method and system | |
CN111224878B (zh) | 路由转发方法、装置、电子设备及存储介质 | |
CN109495362B (zh) | 一种接入认证方法及装置 | |
JP2017208797A (ja) | 不均一ネットワークにまたがる統合されたデータ・ネットワーキング | |
CN107592299B (zh) | 代理上网识别方法、计算机装置及计算机可读存储介质 | |
US10455413B2 (en) | Systems and methods to anonymize web browsing | |
WO2007069337A1 (ja) | 不正通信プログラムの規制システム及びそのプログラム | |
WO2016008212A1 (zh) | 一种终端及检测终端数据交互的安全性的方法、存储介质 | |
US9973587B2 (en) | Web page pushing method and apparatus, and terminal | |
CN110808974A (zh) | 数据获取方法及装置、计算机装置及存储介质 | |
CN115913597A (zh) | 确定失陷主机的方法及装置 | |
CN108712367A (zh) | 一种报文处理方法、装置及设备 | |
CN110278558B (zh) | 报文的交互方法及wlan系统 | |
CN105959248B (zh) | 报文访问控制的方法及装置 | |
CN111147186B (zh) | 数据传输方法及装置、计算机设备及存储介质 | |
US10958580B2 (en) | System and method of performing load balancing over an overlay network |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |