WO2021056738A1 - 分布式系统nat穿透方法、装置、设备及存储介质 - Google Patents
分布式系统nat穿透方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- WO2021056738A1 WO2021056738A1 PCT/CN2019/117700 CN2019117700W WO2021056738A1 WO 2021056738 A1 WO2021056738 A1 WO 2021056738A1 CN 2019117700 W CN2019117700 W CN 2019117700W WO 2021056738 A1 WO2021056738 A1 WO 2021056738A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- information
- list
- local
- network
- Prior art date
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/256—NAT traversal
- H04L61/2575—NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
-
- 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
Definitions
- This application relates to the field of blockchain technology, in particular to a distributed system NAT penetration method, device, equipment and storage medium.
- P2P peer-to-peer computer network is a distributed application architecture that distributes tasks and workloads among peers. It is a networking or network form formed by a peer-to-peer computing model at the application layer. P2P is widely used in fields such as IM (especially mobile IM), online live broadcast, and online education.
- IM especially mobile IM
- online live broadcast and online education.
- NAT Network Address Translator
- the prior art generally adopts STUN (Session Traversal Utilities for NAT)/TURN (Traversal Using Relays around NAT) server to achieve NAT penetration.
- STUN Session Traversal Utilities for NAT
- TURN Traversal Using Relays around NAT
- the inventor realizes that because there are a large number of NAT hosts in the real network, the keep-alive messages of these hosts will bring huge performance pressure to the STUN/TURN server, which will lead to problems such as slow network data transmission and even system paralysis.
- the purpose of the embodiments of this application is to propose a distributed system NAT traversal method, device and equipment.
- This application does not need to be equipped with a central STUN/TURN server.
- the opposite node cannot communicate directly, it requests the node adjacent to the target node to assist in the hole drilling. Achieve penetration.
- the embodiment of the present application provides a distributed system NAT traversal method, which adopts the following technical solution: when the first node accesses the P2P network, it communicates with the public network node in the P2P network. Establish a communication connection, obtain the node information of the node list of the public network node, and update the local node list of the first node according to the obtained node information; when the first node requests storage resources, it passes through the P2P network Obtains the information of the nearest second node that can provide storage resources for the first node by using the overlapping network transmission protocol; and the first node establishes a communication connection with the second node according to the obtained information of the second node .
- an embodiment of the present application also provides a NAT traversal device, which is a node in a P2P network, and adopts the following technical solution: an access module is used to access the P2P network, Establish a communication connection with the public network node in the P2P network, obtain the node information of the node list of the public network node, and update the local node list of the first node according to the obtained node information; the obtaining module is configured to: When requesting storage resources, obtain the information of the nearest second node that can provide storage resources to the first node through the overlay network transmission protocol of the P2P network; the communication module is used to obtain the information of the second node according to the obtained information Establish a communication connection with the second node.
- an embodiment of the present application also provides a NAT traversal device, the device is a storage node in a P2P network, and the following technical solution is adopted: the NAT traversal device includes a processor and a memory And the NAT penetrating readable instructions stored in the memory, the NAT penetrating readable instructions are executed by the processor to implement the steps of the NAT penetrating method as described above.
- the embodiments of the present application further provide one or more non-volatile readable storage media, the computer-readable storage medium stores NAT traversal readable instructions, and the NAT traversal readable instructions When run by the processor, the steps of the NAT traversal method as described above are realized.
- Fig. 1 is a flowchart of an embodiment of a NAT traversal method for a distributed system according to the present application
- FIG. 2 is a flowchart of a specific implementation manner of step 102 and step 103 in FIG. 1;
- Fig. 3 is a schematic structural diagram of an embodiment of a NAT penetration device according to the present application.
- Fig. 4 is a schematic structural diagram of an embodiment of a NAT penetration device according to the present application.
- the NAT traversal method of the distributed system in the embodiment of the present application is mainly applied to a P2P (Peer-to-peer) network.
- P2P Peer-to-peer
- multiple computers connected to each other are in a peer-to-peer position, and each computer has the same function.
- master and slave There is no distinction between master and slave.
- One computer can be used as a server and set shared resources for the network. Used by other computers, it can also be used as a workstation.
- Each computer in the network can not only act as a requester of network services, but also respond to requests from other computers, providing resources, services, and content.
- nodes b1 and b2 are public network nodes.
- the b1 and b2 nodes can be ordinary nodes, which are set on the public network and have a public network address, so that all nodes in the local area network can connect to them.
- the nodes of the local area network do not need to pass through these startup nodes when communicating between them. Their function is to provide the node with the information of the nodes in the P2P network during the startup phase of the node.
- the node information is stored in the routing list of the startup node, including the node ID and Address information. It should be understood that the numbers of storage type nodes and startup nodes in FIG. 1 are merely illustrative. There can be any number according to implementation needs.
- the NAT penetration method of the distributed system includes the following steps:
- Step 101 When a first node accesses a P2P network, it establishes a communication connection with a public network node in the P2P network, obtains node information in a node list of the public network node, and updates the first node according to the obtained node information.
- the local node list of a node When a first node accesses a P2P network, it establishes a communication connection with a public network node in the P2P network, obtains node information in a node list of the public network node, and updates the first node according to the obtained node information.
- the local node list of a node When a first node accesses a P2P network, it establishes a communication connection with a public network node in the P2P network, obtains node information in a node list of the public network node, and updates the first node according to the obtained node information.
- the local node list of a node When a first node
- the first node obtains the node information of the node list of the public network node, and tries to establish a communication connection with the node corresponding to the node information according to the obtained node information; if the first node successfully communicates with If the node corresponding to the node information establishes a communication connection, the node information is added to the local node list of the first node to update the local node list.
- Each storage node has a local node list.
- the storage node Node1 when the storage node Node1 is connected to the P2P network, it will establish a communication connection with the public network nodes b1 and b2, and obtain the node information in the node list of b1 and b2.
- the local node list In the initial stage, the local node list only contains a few default public network nodes. Subsequent storage nodes will query the available nodes through the nodes in the public network node list. After the query is found, they will try to connect to the other party. The new node is added to its local node list, and the local node list is updated. So back and forth, there will be more and more local nodes in the list.
- Step 102 When the first node requests storage resources, it obtains information of the nearest second node that can provide storage resources for the first node through the overlay network transmission protocol (Kademlia, Kad) of the P2P network.
- the overlay network transmission protocol Kerdemlia, Kad
- Kad is a decentralized P2P communication protocol, which connects all users into a network without going through the server, so as to directly search for resources and sources, reducing the burden on the server.
- the node in the node list of the public network node and the node in the local node list of the first node are searched through the xor algorithm of the overlapping network transmission protocol
- the node and the node in the first node's local node list send a storage resource request, the request includes the requested amount of storage resources; the node that receives the node list of the public network node and the node in the first node's local node list return storage resources Feedback, the feedback includes the amount of storage resources that can be provided; according to the storage resource feedback, the nodes with the amount of storage resources that can be provided are selected to be greater than or equal to the amount of storage resources requested by the first node, and based on the selected nodes and the amount of storage resources The distance of the first node is used to determine the closest second node that can provide storage resources.
- Node1 requests to store a piece of data with a Hash (hash) of 156abc, and it is found through KAD that the nearest node is Node2.
- the ID of Node2 is recorded in the local node list of Node3, and the ID and address information of Node3 are in the local node list of Node1, it indicates that although Node1 and Node2 cannot be directly connected, they can be connected to Node3.
- Step 103 The first node establishes a communication connection with the second node according to the acquired information of the second node.
- step 102 and step 103 specifically include at least the following steps:
- Step 201 The first node requests storage resources, and finds the nearest second node through KAD.
- Step 202 The first node judges whether the information of the second node is included in the local node list, if it is, step 203 is executed, otherwise, step 204 is executed.
- Step 203 The first node directly establishes a communication connection with the second node according to the information of the second node.
- the first node's local node list already has information about the second node, it will be directly connected to the second node.
- Step 204 The first node traverses, visits and updates the node corresponding to the node information in the local list, until the information of the second node is queried through the third node.
- the first node's local node list does not have the information of the second node, it will keep querying the second node from other nodes in the local node list.
- the P2P network structure is as follows: the first node is connected to node A, node A is connected to node B, node B is connected to node C and node D, and node C is connected to the second node, then the first node is queried in the local node list
- the second node process is as follows:
- the first node queries node A for the information of the second node; node A queries its own local node list. If the second node information is not queried, it will feed back the query result to the first node, and add the information in the A node’s own local node list
- the node information is sent to the first node, and the first node updates the received node information in the local node list. Assuming that the local node list of node A includes node B information, the updated local node list of the first node Will include Node B information;
- the first node queries node B for the information of the second node; node B queries its own local node list, but fails to find the second node information, feeds back the query result to the first node, and sends the node information in the local node list of node B For the first node, the first node updates the received node information in the local node list. Assuming that the node information in the local node list of the B node includes the information of the C node and the D node, the updated first node’s local The node list will include C node information and D node information;
- the first node queries the node C for the information of the second node;
- the C node queries its own local node list, and finds the second node information, and therefore feeds back the queried node information of the second node to the first node;
- the first node has inquired about the information of the second node, so it does not continue to visit node D.
- the node C that finds the second node is regarded as the third node, that is, the intermediate node through which the first node and the second node communicate.
- the first node obtains new node information, it will update the local node list.
- Step 205 The first node sends a hole punching request to the second node through a third node that feeds back information about the second node.
- the first node after the first node obtains the node information of the second node, it will first try to directly connect to the second node according to the address in the node information. If the direct connection fails, hole punching or relaying is required.
- the first node sends a hole-punching request to the third node, and the open-up request includes the ID and address information of the first node and the ID of the second node; the third node forwards the received hole-punching request to the third node.
- Two nodes after receiving the hole punching request, the second node sends a response message to the first node through the third node, and the response message contains the hole punching confirmation, ID and address information of the second node, so Both the first node and the second node have obtained each other's complete address information list.
- Step 206 The first node establishes a communication connection with the second node according to the response message of the second node forwarded by the third node.
- the first node and the second node when they have each other's complete address information, they will traverse the addresses in the address list one by one and try to open each other's holes in the network. Once open, the connection is successful; if the hole fails , You can find a relay node such as a third node to complete the communication. It can be seen that in the whole process, the third node only acts as an intermediary to forward the messages of both the first node and the second node.
- the readable instructions run by all nodes are actually the same. Hole punching is done by dynamically searching and querying nodes in the P2P network, instead of using fixed service nodes to punch holes. All the nodes in the embodiments of this application are dynamic, both on the public network and NAT. All nodes will automatically maintain the list of certain connectable nodes. All search and hole drilling are performed through a series of dynamic queries. It is realized by nodes, and has the characteristics of self-adaptation and elastic expansion, and there is no need to define specific node types or designate specific nodes to maintain certain specific information.
- an intermediate node that can directly connect to the target node can be requested to assist in the communication, so as to make holes to achieve penetration, without the need to carry the central STUN/TURN. Server, to avoid problems such as slow network data transmission or even system breakdown due to excessive performance pressure of STUN/TURN server.
- the aforementioned storage medium may be a non-volatile storage medium such as a magnetic disk, an optical disc, a read-only memory (Read-Only Memory, ROM), or a random access memory (Random Access Memory, RAM), etc.
- the present application provides an embodiment of a NAT traversal device 300, which corresponds to the method embodiment shown in FIG. 2.
- an embodiment of the present application also provides a NAT traversal device 300, which is a node in a P2P network and includes:
- the access module 31 is configured to establish a communication connection with a public network node in the P2P network when accessing a P2P network, obtain node information in the node list of the public network node, and update the first node according to the obtained node information
- the local node list of a node
- the obtaining module 32 is configured to obtain information of the nearest second node that can provide storage resources through the overlapping network transmission protocol of the P2P network when requesting storage resources;
- the communication module 33 is configured to establish a communication connection with the second node according to the acquired information of the second node.
- the communication module 33 is further configured to: traverse, visit and update the node information corresponding to the local list. Until the second node's information is queried through the third node.
- the communication module 33 is further configured to: send a hole punching request to the second node through the third node, and the hole punching request includes the ID of the first node and Address information and the ID of the second node; receive the response message returned by the second node through the third node, the response message containing the hole punching confirmation, ID and address information of the second node; use the address of the second node The information punches a hole to the second node in the network. If the hole punching is successful, a communication connection is established with the second node. If the hole punching fails, the third node is used to communicate with the second node. Communications.
- the NAT traversal device 300 when the NAT traversal device 300 requests resources after accessing the P2P network, but cannot directly communicate with the target node, an intermediate node that can be directly connected to the target node can be requested to assist in communication, so as to make holes to achieve penetration
- an intermediate node that can be directly connected to the target node can be requested to assist in communication, so as to make holes to achieve penetration
- an embodiment of the present application further provides a NAT traversal device 400.
- the device is a storage node in a P2P network.
- the NAT traversal device 400 includes a processor 41, a memory 42, and The NAT traversal readable command in the memory.
- the steps of the NAT traversal method as described above are implemented.
- the various embodiments of the NAT traversal method of this application please refer to the various embodiments of the NAT traversal method of this application, which will not be repeated here.
- the embodiment of the present application further provides one or more non-volatile readable storage media, the non-volatile readable storage medium stores NAT traversal readable instructions, and the NAT traversal readable instructions are executed by the processor At runtime, the steps of the NAT traversal method as described above are implemented.
- the steps of the NAT traversal method as described above are implemented.
- the method implemented when the NAT traversal readable instruction is executed please refer to the various embodiments of the NAT traversal method of this application, which will not be repeated here.
- the technical solution of this application essentially or the part that contributes to the existing technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium (such as ROM/RAM, magnetic disk, The optical disc) includes several instructions to enable a terminal device (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the method described in each embodiment of the present application.
- a terminal device which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例属于区块链领域,涉及一种分布式系统NAT穿透方法、装置、设备及存储介质,所述方法包括:当第一节点接入P2P网络时,与P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并更新本地节点列表;当第一节点请求存储资源时,通过P2P网络的重叠网络传输协议获取可为所述第一节点提供存储资源的最近的第二节点的信息;及第一节点根据获取的所第二节点的信息与所述第二节点建立通讯连接。本申请无需搭载中心STUN/TURN服务器,当对方节点无法直接通信时,请求临近目标节点的节点协助打洞实现穿透。
Description
本申请以2019年9月23日提交的申请号为201910898337.1,名称为“分布式系统NAT穿透方法、装置、设备及存储介质”的中国发明专利申请为基础,并要求其优先权。
本申请涉及区块链技术领域,尤其涉及分布式系统NAT穿透方法、装置、设备及存储介质。
P2P对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。P2P广泛应用在诸如IM(尤其移动端IM)、在线直播、在线教育等领域。
NAT(Network Address Translator)技术通过将只能作为局域网内部地址而在因特网上不能被识别或直接使用的私有IP地址映射为Internet上合法IP地址,实现私有网络中节点对Internet的访问。NAT设备位于互联网与局域网之间,有翻译网络地址和保护网络安全的作用。但是NAT之后的主机不能作为服务器向外部网络提供服务,位于不同NAT之后的主机间也无法互相通信,因而NAT的穿透对P2P技术应用有重要意义。
现有技术一般采用STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)/TURN(Traversal Using Relays around NAT,使用中继穿越NAT)服务器实现NAT的穿透。
发明人意识到,由于在现实网络中存在大量NAT主机,这些主机的保活报文将给STUN/TURN服务器带来巨大的性能压力,进而导致网络数据传输缓慢,甚至系统瘫痪等问题。
发明内容
本申请实施例的目的在于提出一种分布式系统NAT穿透方法、装置及设备,采用本申请不用搭载中心STUN/TURN服务器,当对方节点无法直接通信时,请求临近目标节点的节点协助打洞实现穿透。
为了解决上述技术问题,本申请实施例提供一种分布式系统NAT穿透方法,采用了如下所述的技术方案:当第一节点接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;所述第一节点在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可为所述第一节点提供存储资源的最近的第二节点的信息;及所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
为了解决上述技术问题,本申请实施例还提供一种NAT穿透装置,所述装置为P2P网络中的节点,采用了如下所述的技术方案:接入模块,用于接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;获取模块,用于在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可向所述第一节点提供存储资源的最近的第二节点的信息;通讯模块,用于根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
为了解决上述技术问题,本申请实施例还提供一种NAT穿透设备,所述设备为P2P网络中的存储节点,采用了如下所述的技术方案:所述NAT穿透设备包括处理器,存储器以及存储在所述存储器中的NAT穿透可读指令,所述NAT穿透可读指令被所述处理器运行时,实现如前所述的NAT穿透方法的步骤。
为了解决上述技术问题,本申请实施例还提供一个或多个非易失性可读存储介质,所述计算机可读存储介质上存储有NAT穿透可读指令,所述NAT穿透可读指令被处理器运行时,实现如前所述的NAT穿透方法的步骤。
本申请的一个或多个实施例的细节在下面的附图和描述中提出,本申请的其他特征和优点将从说明书、附图以及权利要求变得明显。申请
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1根据本申请分布式系统NAT穿透方法的一个实施例的流程图;
图2是图1中步骤102和步骤103的一种具体实施方式的流程图;
图3是根据本申请NAT穿透装置的一个实施例的结构示意图;
图4是根据本申请的NAT穿透设备的一个实施例的结构示意图。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例的分布式系统NAT穿透方法主要应用于P2P(Peer-to-peer,对等)网络。在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地 位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。
本申请实施例中,假设P2P网络上有第一节点Node1,第二节点Node2和第三节点Node3三个存储类型节点,另外还有2个bootstrap节点(启动节点):b1和b2。Node1,Node2,Node3启动时会连接b1或者b2节点,从而加入P2P网络。在本实施例中,假定Node1和Node2不可直接通信。b1和b2节点为公网节点。在实际应用中,b1和b2节点可以是普通节点,其设置在公网上,有公网地址,这样所有局域网里面的节点都能连接到它们。局域网的节点之间通信时不需要经过这些启动节点,它们的作用是在节点的启动阶段给节点提供P2P网络里面的节点的信息,节点信息存储在启动节点的路由列表中,包括节点的ID和地址信息。应该理解,图1中的存储类型节点和启动节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目。
如图1所示,示出了根据本申请的分布式系统NAT穿透方法的一个实施例的流程图。所述的分布式系统NAT穿透方法,包括以下步骤:
步骤101,当第一节点接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表。
在本申请实施例中,第一节点获取所述公网节点的节点列表的节点信息,并根据获取的节点信息尝试与所述节点信息对应的节点建立通讯连接;如果所述第一节点成功与所述节点信息对应的节点建立通讯连接,则将所述节点信息添加到所述第一节点的本地节点列表中更新本地节点列表。
假设Node1,Node2,Node3启动时会连接b1或者b2节点,从而加入P2P网络。每个存储节点都有本地节点列表。例如当存储节点Node1接入P2P网络后,将与公网节点b1和b2节点建立通讯连接,获取b1和b2的节点列表中的节点信息。在最开始阶段,本地节点列表里仅包含几个默认的公网节点,后续存储 节点会通过公网节点列表里的节点查询可用的节点,查询到之后会尝试连接对方,连接上之后再将此新节点添加到自己的本地节点列表,更新本地节点列表。如此往复,本地节点列表里面就会有越来多。
步骤102,所述第一节点在请求存储资源时,通过所述P2P网络的重叠网络传输协议(Kademlia,Kad)获取可为所述第一节点提供存储资源的最近的第二节点的信息。
Kad是一种分散式的P2P通信协议,将所有的用户连成一个网络,不通过服务器,从而直接进行搜索资源和来源的操作,减低服务器的负担。
在本申请实施例中,通过重叠网络传输协议的xor算法,查找所述公网节点的节点列表的节点和第一节点本地节点列表的节点,
计算公网节点的节点列表的节点和所述第一节点的距离,以及所述第一节点本地节点列表的节点和所述第一节点的距离,并分别向所述公网节点的节点列表的节点和第一节点本地节点列表的节点发送存储资源请求,所述请求中包括请求的存储资源量;接收所述公网节点的节点列表的节点和第一节点本地节点列表的节点返回的存储资源反馈,所述反馈中包括可提供的存储资源量;根据所述存储资源反馈,筛选出可提供的存储资源量大于等于第一节点请求的存储资源量的节点,并根据筛选出的节点与所述第一节点的距离,来确定可提供存储资源的最近的第二节点。
假设Node1请求存储一个Hash(散列)为156abc的数据,通过KAD发现最近节点为Node2。Node2的ID在Node3的本地节点列表里有记录,而Node3的ID和地址信息在Node1的本地节点列表中,那么表明虽然Node1和Node2无法直接连接,但都和Node3可以连接。
步骤103,所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
如图2所示,所述步骤102和步骤103具体包括至少以下步骤:
步骤201,所述第一节点请求存储资源,通过KAD发现最近的第二节点。
步骤202,所述第一节点判断所述本地节点列表中是否包含所述第二节点的 信息,若是执行步骤203,否则执行步骤204。
步骤203,所述第一节点直接根据所述第二节点的信息与所述第二节点建立通讯连接。
在本申请实施例中,如果第一节点的本地节点列表中里面已经有第二节点的信息,则会直连到第二节点。
步骤204,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息。
在本申请实施例中,如果第一节点的本地节点列表中没有第二节点的信息,它会在本地节点列表中的其他节点不停查询第二节点。
假设P2P网络结构如下:第一节点连接到节点A,节点A连接到节点B,节点B连接到节点C和节点D,节点C连接到第二节点,则第一节点在本地节点列表中查询的第二节点过程如下:
第一节点向节点A查询第二节点的信息;A节点查询自己的本地节点列表,未查询到第二节点信息,则向第一节点反馈查询结果,并将A节点自己的本地节点列表中的节点信息发送给第一节点,第一节点将接收到的节点信息在本地节点列表中进行更新,假设A节点的本地节点列表中包括B节点信息,则更新后的第一节点的本地节点列表中将包括B节点信息;
第一节点向节点B查询第二节点的信息;B节点查询自己的本地节点列表,未查询到第二节点信息,向第一节点反馈查询结果,并将B节点本地节点列表中的节点信息发送给第一节点,第一节点将接收到的节点信息在本地节点列表中进行更新,假设B节点本地节点列表中的节点信息包括C节点和D节点的信息,则更新后的第一节点的本地节点列表中将包括C节点信息和D节点信息;
第一节点向节点C查询第二节点的信息;C节点查询自己的本地节点列表,查询到了第二节点信息,因此向第一节点反馈查询到的第二节点的节点信息;
通过上述步骤,第一节点查询到了第二节点的信息,所以不再继续访问节点D。此时,查找到第二节点的节点C即被视为第三节点,即第一节点和第二节点实现通信的中间节点。此外在上述的过程中,第一节点每次获取到新的节 点信息后,都会更新本地节点列表。
步骤205,所述第一节点通过反馈第二节点信息的第三节点向所述第二节点发送打洞请求。
在本申请实施例中,第一节点得到第二节点的节点信息后,会先根据节点信息中的地址尝试直接连接第二节点。如果直接连接失败,则需要进行打洞或者中继。
具体的,第一节点向所述第三节点发送打洞请求,所述打通请求包括第一节点的ID以及地址信息和第二节点的ID;第三节点将收到的打洞请求转发给第二节点;第二节点收到所述打洞请求后,通过所述第三节点向所述第一节点发送应答消息,所述应答消息包含第二节点的打洞确认、ID和地址信息,这样第一节点和第二节点都得到了对方的完整地址信息列表。
步骤206,所述第一节点根据所述第三节点转发的第二节点的应答消息与所述第二节点建立通讯连接。
具体的,当第一节点和第二节点有了对方的完整地址信息后,会挨个遍历地址列表中的地址彼此尝试在网络中打通向对方的洞,一旦打通,则连接成功;如果打洞失败,则可以找中继节点如第三节点来完成通信。可以看出这整个过程中,第三节点只是起一个中间人的作用来转发第一节点和第二节点双方的消息。
在本申请实施例的P2P网络中,所有节点运行的可读指令其实是一样的,打洞是通过去P2P网络里面动态查找节点并查询来打洞,无需通过固定的服务节点来打洞。本申请实施例中所有的节点都是动态的,有公网上的,也有NAT的,所有节点都会自动维护可连接的某一些节点列表信息,所有的查找和打洞都是通过动态的查询一系列节点来实现的,有自适应与弹性扩展的特性,不需要定义特定的节点类型,或者指定特定的节点来维护某些特定信息。因此在本申请实施例的P2P网络中,当第一节点与目标节点无法直接通信时,可以通过请求可以直接与目标节点连接的中间节点协助通讯,打洞实现穿透,无需搭载中心STUN/TURN服务器,避免因STUN/TURN服务器因性能压力过大导致网络数据传输缓慢,甚至系统瘫痪等问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于非易失性可读存储介质中,该可读指令在被执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图1和2所示方法的实现,本申请提供了一种NAT穿透装置300的一个实施例,该装置实施例与图2所示的方法实施例相对应。如图3所示,本申请实施例还提供一种NAT穿透装置300,所述装置为P2P网络中的节点,包括:
接入模块31,用于接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;
获取模块32,用于在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可提供存储资源的最近的第二节点的信息;
通讯模块33,用于根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
在本实施例的一些可选的实现方式中,如果所述本地节点列表中没有所述第二节点的信息,所述通讯模块33还用于:遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息。
在本实施例的一些可选的实现方式中,所述通讯模块33还用于:通过所述第三节点向所述第二节点发送打洞请求,所述打通请求包括第一节点的ID以及地址信息和第二节点的ID;接收所述第二节点通过第三节点返回的应答消息,所述应答消息包含第二节点的打洞确认、ID和地址信息;利用所述第二节点的地址信息在网络中打通往第二节点的洞,如果所述打洞成功,则与所述第二节点建立通讯连接,如果所述打洞失败,则通过所述第三节点实现和第二节点的通讯。
在本申请实施例中,当NAT穿透装置300接入P2P网络后请求资源,但与目标节点无法直接通信时,可以通过请求可以直接与目标节点连接的中间节点协助通讯,打洞实现穿透,无需搭载中心STUN/TURN服务器,避免因STUN/TURN服务器因性能压力过大导致网络数据传输缓慢,甚至系统瘫痪等问题。
如图4所示,本申请实施例还提供一种NAT穿透设备400,所述装置为P2P网络中的存储节点,所述NAT穿透设备400包括处理器41,存储器42以及存储在所述存储器中的NAT穿透可读指令。在本申请实施例中,所述NAT穿透可读指令被所述处理器运行时,实现如前所述的NAT穿透方法的步骤。所述NAT穿透可读指令被执行时所实现的方法可参照本申请NAT穿透方法发各个实施例,此处不再赘述。
本申请实施例还提供一个或多个非易失性可读存储介质,所述非易失性可读存储介质上存储有NAT穿透可读指令,所述NAT穿透可读指令被处理器运行时,实现如前所述的NAT穿透方法的步骤。所述NAT穿透可读指令被执行时所实现的方法可参照本申请NAT穿透方法发各个实施例,此处不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包 括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (20)
- 一种分布式系统NAT穿透方法,其特征在于,包括下述步骤:当第一节点接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;所述第一节点在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可为所述第一节点提供存储资源的最近的第二节点的信息;及所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
- 根据权利要求1所述的分布式系统NAT穿透方法,其特征在于,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表的步骤具体包括:所述第一节点获取所述公网节点的节点列表的节点信息,并根据获取的节点信息尝试与所述节点信息对应的节点建立通讯连接;如果所述第一节点成功与所述节点信息对应的节点建立通讯连接,则将所述节点信息添加到所述第一节点的本地节点列表中更新本地节点列表。
- 根据权利要求1所述的分布式系统NAT穿透方法,其特征在于,在通过所述P2P网络的重叠网络传输协议获取可提供存储资源的最近的第二节点的信息的步骤具体包括:通过重叠网络传输协议的xor算法,查找所述公网节点的节点列表的节点和第一节点本地节点列表的节点,计算所述公网节点的节点列表的节点和所述第一节点的距离,以及所述第一节点本地节点列表的节点和所述第一节点的距离,并分别向所述公网节点的节点列表的节点和第一节点本地节点列表的节点发送存储资源请求,所述请求中包括请求的存储资源量;接收所述公网节点的节点列表的节点和第一节点本地节点列表的节点返回的存储资源反馈,所述反馈中包括可提供的存储资源量;根据所述存储资源反馈,筛选出可提供的存储资源量大于等于第一节点请求的存储资源量的节点,并根据筛选出的节点与所述第一节点的距离,来确定可提供存储资源的最近的第二节点。
- 根据权利要求1所述的分布式系统NAT穿透方法,其特征在于,所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接的步骤具体包括:如果所述第一节点的本地节点列表中包含所述第二节点的信息,第一节点直接根据所述第二节点的信息与所述第二节点建立通讯连接;如果所述第一节点的本地节点列表中没有所述第二节点的信息,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息。
- 根据权利要求4所述的分布式系统NAT穿透方法,其特征在于,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息的步骤具体包括:所述第一节点遍历访问本地列表中的节点并向本地列表中的节点查询第二节点的信息;所述第一节点接收本地列表中的节点返回的查询结果及所述节点的本地列表中的节点信息,根据接收到的节点信息来更新所述第一节点的本地节点列表;当所述第一节点根据本地节点列表的节点的查询结果查询到所述第二节点的信息时,停止遍历访问本地列表中的其他节点,向所述第一节点反馈查询到所述第二节点信息的节点为所述第三节点。
- 根据权利要求4所述的分布式系统NAT穿透方法,其特征在于,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息的步骤之后,还包括:所述第一节点向所述第三节点发送打洞请求,以使所述第三节点将收到的打洞请求转发给第二节点,所述打通请求包括第一节点的ID以及地址信息和第二节点的ID;所述第一节点接收所述第三节点转发所述第二节点的应答消息,所述应答消息包含第二节点的打洞确认、ID和地址信息;所述第一节点根据所述第三节点转发的第二节点的应答消息与所述第二节点建立通讯连接。
- 根据权利要求4所述的分布式系统NAT穿透方法,其特征在于,所述第一节点根据所述第三节点转发的第二节点的应答消息与所述第二节点建立通讯连接的步骤具体包括:所述第一节点利用所述第二节点的地址信息在网络中打通往第二节点的洞;如果所述打洞成功,则所述第一节点成功与所述第二节点建立通讯连接;如果所述打洞失败,则所述第一节点通过所述第三节点实现和第二节点的通讯。
- 一种NAT穿透装置,所述装置为P2P网络中的存储节点,其特征在于,包括:接入模块,用于接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;获取模块,用于在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可为所述第一节点提供存储资源的最近的第二节点的信息;通讯模块,用于根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
- 根据权利要求8所述的NAT穿透装置,其特征在于,所述通讯模块还用于:遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息。
- 一种NAT穿透设备,所述设备为P2P网络中的存储节点,其特征在于,所述NAT穿透设备包括处理器,存储器以及存储在所述存储器中的NAT穿透可读指令,所述NAT穿透可读指令被所述处理器运行时,实现如下步骤:当第一节点接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;所述第一节点在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可为所述第一节点提供存储资源的最近的第二节点的信息;及所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
- 根据权利要求10所述的NAT穿透设备,其特征在于,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表的步骤具体包括:所述第一节点获取所述公网节点的节点列表的节点信息,并根据获取的节点信息尝试与所述节点信息对应的节点建立通讯连接;如果所述第一节点成功与所述节点信息对应的节点建立通讯连接,则将所述节点信息添加到所述第一节点的本地节点列表中更新本地节点列表。
- 根据权利要求10所述的NAT穿透设备,其特征在于,在通过所述P2P网络的重叠网络传输协议获取可提供存储资源的最近的第二节点的信息的步骤具体包括:通过重叠网络传输协议的xor算法,查找所述公网节点的节点列表的节点和第一节点本地节点列表的节点,计算所述公网节点的节点列表的节点和所述第一节点的距离,以及所述第一节点本地节点列表的节点和所述第一节点的距离,并分别向所述公网节点的节点列表的节点和第一节点本地节点列表的节点发送存储资源请求,所述请求中包括请求的存储资源量;接收所述公网节点的节点列表的节点和第一节点本地节点列表的节点返回的存储资源反馈,所述反馈中包括可提供的存储资源量;根据所述存储资源反馈,筛选出可提供的存储资源量大于等于第一节点请求的存储资源量的节点,并根据筛选出的节点与所述第一节点的距离,来确定可提供存储资源的最近的第二节点。
- 根据权利要求10所述的NAT穿透设备,其特征在于,所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接的步骤具体包括:如果所述第一节点的本地节点列表中包含所述第二节点的信息,第一节点直接根据所述第二节点的信息与所述第二节点建立通讯连接;如果所述第一节点的本地节点列表中没有所述第二节点的信息,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息。
- 根据权利要求13所述的NAT穿透设备,其特征在于,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息的步骤具体包括:所述第一节点遍历访问本地列表中的节点并向本地列表中的节点查询第二节点的信息;所述第一节点接收本地列表中的节点返回的查询结果及所述节点的本地列表中的节点信息,根据接收到的节点信息来更新所述第一节点的本地节点列表;当所述第一节点根据本地节点列表的节点的查询结果查询到所述第二节点的信息时,停止遍历访问本地列表中的其他节点,向所述第一节点反馈查询到所述第二节点信息的节点为所述第三节点。
- 根据权利要求13所述的NAT穿透设备,其特征在于,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息的步骤之后,还包括:所述第一节点向所述第三节点发送打洞请求,以使所述第三节点将收到的打洞请求转发给第二节点,所述打通请求包括第一节点的ID以及地址信息和第二节点的ID;所述第一节点接收所述第三节点转发所述第二节点的应答消息,所述应答消息包含第二节点的打洞确认、ID和地址信息;所述第一节点根据所述第三节点转发的第二节点的应答消息与所述第二节 点建立通讯连接。
- 一个或多个非易失性可读存储介质,其特征在于,所述非易失性可读存储介质上存储有NAT穿透可读指令,所述NAT穿透可读指令被处理器运行时,实现如下步骤:当第一节点接入P2P网络时,与所述P2P网络中的公网节点建立通讯连接,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表;所述第一节点在请求存储资源时,通过所述P2P网络的重叠网络传输协议获取可为所述第一节点提供存储资源的最近的第二节点的信息;及所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接。
- 根据权利要求16所述的非易失性可读存储介质,其特征在于,获取所述公网节点的节点列表的节点信息,并根据获取的节点信息更新所述第一节点的本地节点列表的步骤具体包括:所述第一节点获取所述公网节点的节点列表的节点信息,并根据获取的节点信息尝试与所述节点信息对应的节点建立通讯连接;如果所述第一节点成功与所述节点信息对应的节点建立通讯连接,则将所述节点信息添加到所述第一节点的本地节点列表中更新本地节点列表。
- 根据权利要求16所述的非易失性可读存储介质,其特征在于,在通过所述P2P网络的重叠网络传输协议获取可提供存储资源的最近的第二节点的信息的步骤具体包括:通过重叠网络传输协议的xor算法,查找所述公网节点的节点列表的节点和第一节点本地节点列表的节点,计算所述公网节点的节点列表的节点和所述第一节点的距离,以及所述第一节点本地节点列表的节点和所述第一节点的距离,并分别向所述公网节点的节点列表的节点和第一节点本地节点列表的节点发送存储资源请求,所述请求中包括请求的存储资源量;接收所述公网节点的节点列表的节点和第一节点本地节点列表的节点返回的存储资源反馈,所述反馈中 包括可提供的存储资源量;根据所述存储资源反馈,筛选出可提供的存储资源量大于等于第一节点请求的存储资源量的节点,并根据筛选出的节点与所述第一节点的距离,来确定可提供存储资源的最近的第二节点。
- 根据权利要求16所述的非易失性可读存储介质,其特征在于,所述第一节点根据获取的所述第二节点的信息与所述第二节点建立通讯连接的步骤具体包括:如果所述第一节点的本地节点列表中包含所述第二节点的信息,第一节点直接根据所述第二节点的信息与所述第二节点建立通讯连接;如果所述第一节点的本地节点列表中没有所述第二节点的信息,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息。
- 根据权利要求19所述的非易失性可读存储介质,其特征在于,所述第一节点遍历访问并更新所述本地列表中节点信息对应的节点,直至通过第三节点查询到所述第二节点的信息的步骤具体包括:所述第一节点遍历访问本地列表中的节点并向本地列表中的节点查询第二节点的信息;所述第一节点接收本地列表中的节点返回的查询结果及所述节点的本地列表中的节点信息,根据接收到的节点信息来更新所述第一节点的本地节点列表;当所述第一节点根据本地节点列表的节点的查询结果查询到所述第二节点的信息时,停止遍历访问本地列表中的其他节点,向所述第一节点反馈查询到所述第二节点信息的节点为所述第三节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910898337.1A CN110830601B (zh) | 2019-09-23 | 2019-09-23 | 分布式系统nat穿透方法、装置、设备及存储介质 |
CN201910898337.1 | 2019-09-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021056738A1 true WO2021056738A1 (zh) | 2021-04-01 |
Family
ID=69548117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/117700 WO2021056738A1 (zh) | 2019-09-23 | 2019-11-12 | 分布式系统nat穿透方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110830601B (zh) |
WO (1) | WO2021056738A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024179331A1 (zh) * | 2023-02-28 | 2024-09-06 | 华为技术有限公司 | 设备远场通信的方法和系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111405038A (zh) * | 2020-03-13 | 2020-07-10 | 杭州复杂美科技有限公司 | 区块链内网节点连接方法、设备和存储介质 |
CN112822242B (zh) * | 2020-12-30 | 2023-03-24 | 杭州趣链科技有限公司 | 一种点对点网络及其节点通信方法和装置 |
CN113347268B (zh) * | 2021-06-23 | 2022-11-08 | 广州炒米信息科技有限公司 | 基于分布式网络组网方法、装置、存储介质及计算机设备 |
CN114285785A (zh) * | 2021-12-24 | 2022-04-05 | 广州炒米信息科技有限公司 | 存储系统搭建方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340457A (zh) * | 2008-08-29 | 2009-01-07 | 北京邮电大学 | 一种不依赖于中心服务器的对等网络启动方法和系统 |
CN101741914A (zh) * | 2010-02-03 | 2010-06-16 | 上海悠络客电子科技有限公司 | 一种p2p网络中穿透nat建立覆盖网的方法和系统 |
WO2011150741A1 (zh) * | 2010-06-01 | 2011-12-08 | 中兴通讯股份有限公司 | P2p叠加网络及其数据资源操作方法和新节点加入方法 |
CN109218363A (zh) * | 2017-07-03 | 2019-01-15 | 中国移动通信有限公司研究院 | 内容分发方法、网络节点及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100531098C (zh) * | 2007-03-13 | 2009-08-19 | 华为技术有限公司 | 一种对等网络系统及重叠网间节点的互通方法 |
CN102045409B (zh) * | 2009-10-13 | 2013-05-01 | 财团法人工业技术研究院 | 网络穿透方法及网络通讯系统 |
CN109922156A (zh) * | 2019-03-20 | 2019-06-21 | 深圳市网心科技有限公司 | 一种数据通信方法及其相关设备 |
-
2019
- 2019-09-23 CN CN201910898337.1A patent/CN110830601B/zh active Active
- 2019-11-12 WO PCT/CN2019/117700 patent/WO2021056738A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340457A (zh) * | 2008-08-29 | 2009-01-07 | 北京邮电大学 | 一种不依赖于中心服务器的对等网络启动方法和系统 |
CN101741914A (zh) * | 2010-02-03 | 2010-06-16 | 上海悠络客电子科技有限公司 | 一种p2p网络中穿透nat建立覆盖网的方法和系统 |
WO2011150741A1 (zh) * | 2010-06-01 | 2011-12-08 | 中兴通讯股份有限公司 | P2p叠加网络及其数据资源操作方法和新节点加入方法 |
CN109218363A (zh) * | 2017-07-03 | 2019-01-15 | 中国移动通信有限公司研究院 | 内容分发方法、网络节点及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024179331A1 (zh) * | 2023-02-28 | 2024-09-06 | 华为技术有限公司 | 设备远场通信的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110830601A (zh) | 2020-02-21 |
CN110830601B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021056738A1 (zh) | 分布式系统nat穿透方法、装置、设备及存储介质 | |
CN110351191B (zh) | 网络配置方法、系统、设备及存储介质 | |
US9037628B2 (en) | Intelligent establishment of peer-to-peer communication | |
JP2020162146A (ja) | 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法 | |
US8285753B2 (en) | Change approvals for computing systems | |
CN113452592B (zh) | 混合云架构下的跨云数据访问方法及装置 | |
TWI584194B (zh) | 在一服務導向架構(soa)網路中尋求服務之技術 | |
US10637794B2 (en) | Resource subscription method, resource subscription apparatus, and resource subscription system | |
US11924164B2 (en) | Cloud access to local network addresses | |
US11178101B1 (en) | Method and apparatus of establishing a connection between devices using cached connection information | |
US10212126B2 (en) | System for mediating connection | |
US20120191769A1 (en) | Site-aware distributed file system access from outside enterprise network | |
US7965630B1 (en) | Load balancing port proxy for dynamically controlling routing of query requests | |
US10999243B2 (en) | Sharing media among remote access clients in a universal plug and play environment | |
CN113364741A (zh) | 一种应用访问方法及代理服务器 | |
KR20080069895A (ko) | 피어-투-피어 통신을 행하는 네트워크 시스템 | |
US11394635B2 (en) | Aggregated bit index explicit replication networking system | |
US7680130B2 (en) | Method for finding resource and service in network and relay node apparatus | |
US20060047821A1 (en) | System, method, and medium for relaying data using socket application program | |
US9124598B2 (en) | Method and apparatus of establishing a connection between devices using cached connection information | |
US20200127963A1 (en) | Establishing connection between different overlay networks using edge application gateway | |
CN112187963B (zh) | 分布式哈希表实现方法、计算机装置和存储介质 | |
US8671178B2 (en) | Information processing system and method providing a remote access | |
WO2022218194A1 (zh) | 服务路由方法及设备 | |
JP5084716B2 (ja) | Vpn接続装置、dnsパケット制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19947349 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19947349 Country of ref document: EP Kind code of ref document: A1 |