Method and apparatus for establishing end-to-end network connection, and network system

US12058096B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12058096-B2
Application numberUS-202017618123-A
CountryUS
Kind codeB2
Filing dateJun 9, 2020
Priority dateJun 11, 2019
Publication dateAug 6, 2024
Grant dateAug 6, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for establishing an end-to-end network connection includes obtaining, by a first node, super node information from a server, obtaining, by the first node, a network address translation (NAT) type of the first node, obtaining, by the first node, a NAT type of a to-be-connected second node from the server, determining, by the first node based on the NAT type of the first node and the NAT type of the second node, whether to use a relay node, and selecting, by the first node, the relay node from super nodes to establish a connection to the second node.

First claim

Opening claim text (preview).

What is claimed is: 1. A method implemented by a first node, wherein the method comprises: obtaining, from a server, super node information of super nodes; sending, to the super nodes, a first data packet; receiving, from the super nodes in response to the first data packet, a second data packet; determining a first network address translation (NAT) type of the first node based on the second data packet; obtaining, from the server, a second NAT type of a second node; determining, based on the first NAT type and the second NAT type, whether to use a relay node from the super nodes; selecting, in response to determining to use the relay node, a super node from the super nodes as the relay node; establishing a connection to the second node using the relay node; selecting a first super node and a second super node from the super nodes; sending a third data packet to the first super node to enable the first super node to obtain a first source Internet Protocol (IP) address of the third data packet and a first source port of the third data packet and to instruct the second super node to send a fourth data packet to the first source IP address and the first source port; and determining that the first NAT type is a full cone NAT when the first node receives the fourth data packet. 2. The method of claim 1 , further comprising: sending, to at least two super nodes, data packets; and determining the first NAT type based on a fifth data packet received from the at least two super nodes and a parameter of the fifth data packet. 3. The method of claim 1 , further comprising: sending a fifth data packet to the second super node when the first node does not receive the fourth data packet, wherein the fifth data packet enables the second super node to obtain a second source IP address of the fifth data packet and a second source port of the fifth data packet and to analyze whether the first source port is the same as the second source port; and determining that the first NAT type is a symmetric NAT when the first source port is different from the second source port. 4. The method of claim 3 , further comprising: determining whether a sixth data packet is received when the first source port is the same as the second source port, wherein the sixth data packet is from the second super node to the second source IP address and the second source port using a public port that is different from a destination port of the fifth data packet; determining that the first NAT type is a restricted cone NAT when the first node receives the sixth data packet; and determining that the first NAT type is a port restricted cone NAT when the first node does not receive the sixth data packet. 5. The method of claim 1 , further comprising: determining whether the super node information comprises historically selected super nodes; and selecting, based on determining that the super node information comprises the historically selected super nodes, the first super node and the second super node from the historically selected super nodes. 6. The method of claim 1 , further comprising: obtaining online node information from the server; determining a node identity (ID) of the second node from the online node information according to a user instruction; sending, to the server, a query instruction carrying the node ID; and receiving, from the server based on the query instruction, the second NAT type. 7. The method of claim 1 , further comprising determining to use the relay node either when the first NAT type and the second NAT type are a restricted cone NAT or a port restricted cone NAT or when one of the first NAT type or the second NAT type is a symmetric NAT and the other is the restricted cone NAT, wherein the relay node is used by the first node and the second node to perform User Datagram Protocol (UDP) hole punching. 8. The method of claim 1 , further comprising performing instant messaging (IM) with the second node using the relay node, wherein the instant messaging comprises at least one of a voice communication, a video communication, an image transmission, a text transmission or a file transmission. 9. A first node comprising: a memory configured to store program instructions; and a processor coupled to the memory, wherein when executed by the processor, the program instructions cause the first node to: obtain, from a server, super node information of super nodes; send a first data packet to the super nodes; receive, from the super nodes in response to the first data packet, a second data packet; determine a first network address translation (NAT) type of the first node based on the second data packet; obtain, from the server, a second NAT type of a second node; determine, based on the first NAT type and the second NAT type, whether to use a relay node from the super nodes; select, in response to determining to use the relay node, a super node from the super nodes as the relay node; establish a connection to the second node using the relay node; select a first super node and a second super node from the super nodes; send a third data packet to the first super node to enable the first super node to obtain a first source Internet Protocol (IP) address of the third data packet and a first source port of the first data packet and to instruct the second super node to send a fourth data packet to the first source IP address and the first source port; and determine that the first NAT type is a full cone NAT when the first node receives the fourth data packet. 10. The first node of claim 9 , wherein when executed by the processor, the program instructions further cause the first node to: send data packets to at least two super nodes; and determine the first NAT type based on a fifth data packet received from the at least two super nodes and a parameter of the fifth data packet. 11. The first node of claim 9 , wherein when executed by the processor, the program instructions further cause the first node to: send a fifth data packet to the second super node when the first node does not receive the fourth data packet, wherein the fifth data packet enables the second super node to obtain a second source IP address of the fifth data packet and a second source port of the fifth data packet and to analyze whether the first source port is the same as the second source port; and determine that the second NAT type is a symmetric NAT when the first source port is different from the second source port. 12. The first node of claim 11 , wherein when executed by the processor, the program instructions further cause the first node to: determine whether a sixth data packet is received when the first source port is the same as the second source port, wherein the sixth data packet is from the second super node to the second source IP address and the second source port using a public port that is different from a destination port of the fifth data packet; and determine that the first NAT type is a restricted cone NAT when the first node receives the sixth data packet; and determine that the first NAT type is a port restricted cone NAT when the first node does not receive the sixth data packet. 13. The first node of claim 9 , wherein when executed by the processor, the program instructions further cause the first node to: determine whether the super node information comprises historically selected super nodes; and select, in response to determining that the super node information comprises the historically selected super nodes, the first super node and the second super node from the historically selected super nodes. 14. The first n

Assignees

Inventors

Classifications

  • H04L61/256Primary

    NAT traversal · CPC title

  • H04W40/22Primary

    using selective relaying for reaching a BTS [Base Transceiver Station] or an access point · CPC title

  • based on transmission quality or channel quality · CPC title

  • Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70) · CPC title

  • over a relay server, e.g. traversal using relay for network address translation [TURN] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12058096B2 cover?
A method for establishing an end-to-end network connection includes obtaining, by a first node, super node information from a server, obtaining, by the first node, a network address translation (NAT) type of the first node, obtaining, by the first node, a NAT type of a to-be-connected second node from the server, determining, by the first node based on the NAT type of the first node and the NAT…
Who is the assignee on this patent?
Huawei Tech Co Ltd
What technology area does this patent fall under?
Primary CPC classification H04L61/256. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 06 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).