Relay optimization using software defined networking
US-9762508-B2 · Sep 12, 2017 · US
US10129209B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10129209-B2 |
| Application number | US-201615051298-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 23, 2016 |
| Priority date | Oct 22, 2015 |
| Publication date | Nov 13, 2018 |
| Grant date | Nov 13, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and a communication device for network address translation (NAT) traversal is provided. The method includes following steps. A NAT device information is exchanged between a communication device and another communication device. A relay connection is established between the communication device and the another communication device through a relay server. Whether it is feasible to establish a P2P connection between the communication device and the another communication device is determined according to the NAT device information. When it is feasible to establish the P2P connection between the communication device and the another communication device, an attempt to establish the P2P connection between the communication device and the another communication device is made. If the P2P connection is not established successfully, an attempt to establish the P2P connection between the communication device and the another communication device is made again.
Opening claim text (preview).
What is claimed is: 1. A method for network address translation (NAT) traversal used in a communication device correspondingly connected to a first NAT device, wherein the method comprises: exchanging a NAT device information with another communication device by the communication device; establishing a relay connection with the another communication device through a relay server and performing data transmission through the relay connection by the communication device; during data transmission through the relay connection, determining whether it is feasible to establish a peer-to-peer (P2P) connection with the another communication device by the communication device according to the NAT device information; and making an attempt to establish the P2P connection with the another communication device by the communication device if it is feasible to establish the P2P connection with the another communication device by the communication device, and the communication device makes an attempt to establish the P2P connection with the another communication device again if the P2P connection is not established successfully. 2. The method according to claim 1 , wherein the step of exchanging the NAT device information with the another communication device by the communication device comprises: transmitting, by the communication device, a first NAT device information related to the first NAT device; and receiving, by the communication device, a second NAT device information related to a second NAT device correspondingly connected to the another communication device. 3. The method according to claim 2 , further comprising: predicting a first port used by the first NAT device to obtain a first predicted value; determining a NAT type of the first NAT device; predicting a second port used by the second NAT device to obtain a second predicted value; and determining a NAT type of the second NAT device. 4. The method according to claim 3 , wherein the first NAT device information comprises a local IP address of the communication device, a local port of the communication device, a public IP address of the first NAT device, the first predicted value of the first NAT device and the NAT type of the first NAT device, and the second NAT device information comprises a local IP address of the another communication device, a local port of the another communication device, a public IP address of the second NAT device, the second predicted value of the second NAT device and the NAT type of the second NAT device. 5. The method according to claim 3 , wherein whether it is feasible to establish the P2P connection with the another communication device by the communication device is determined according to the first predicted value, the NAT type of the first NAT device, the second predicted value and the NAT type of the second NAT device. 6. The method according to claim 5 , wherein the step of determining whether it is feasible to establish the P2P connection with the another communication device by the communication device comprises: determining whether the first port is predictable according to the first predicted value; and determining whether the second port is predictable according to the second predicted value; wherein it is determined that it is feasible to establish the P2P connection if both the first port and the second port are predictable; wherein it is determined that it is not feasible to establish the P2P connection if both the first port and the second port are unpredictable. 7. The method according to claim 6 , wherein when one of the first port and the second port is predictable but the other is unpredictable, it is determined that it is not feasible to establish the P2P connection if the NAT type of the NAT device having a predictable port is symmetric or port restricted cone; and it is determined that it is feasible to establish the P2P connection if the NAT type of the NAT device having a predictable port is full cone or address restricted cone. 8. The method according to claim 1 , wherein the step of making the attempt to establish the P2P connection with the another communication device again comprises: exchanging a third NAT device information with the another communication device by the communication device, wherein the third NAT device information comprises a local IP address of the communication device and a local port of the communication device; and making an attempt to establish the P2P connection with the another communication device by the communication device according to the third NAT device information. 9. The method according to claim 3 , wherein the step of making the attempt to establish the P2P connection with the another communication device again comprises: predicting the first port used by the first NAT device again to obtain a third predicted value; exchanging a third NAT device information including the third predicted value with the another communication device by the communication device; and making an attempt to establish the P2P connection with the another communication device by the communication device according to the third NAT device information. 10. The method according to claim 1 , further comprising: disconnecting the relay connection established between the communication device and the another communication device if the P2P connection is established successfully. 11. A communication device for network address translation (NAT) traversal, wherein the communication device is correspondingly connected to a first NAT device, and comprises: a communication unit; and a processing unit coupled to the communication unit; wherein, the processing unit controls the communication unit to: exchange a NAT device information with another communication device; establish a relay connection with the another communication device through a relay server and perform data transmission through the relay connection; during data transmission through the relay connection, determine whether it is feasible to establish a peer-to-peer (P2P) connection with the another communication device by the communication unit according to the NAT device information; and make an attempt to establish the P2P connection with the another communication device by the communication unit if it is feasible to establish the P2P connection with the another communication device by the communication unit, and makes an attempt to establish the P2P connection with the another communication device again if the P2P connection is not established successfully. 12. The communication device according to claim 11 , wherein the processing unit controls the communication unit to transmit, by the communication unit, a first NAT device information related to the first NAT device; and receive, by the communication unit, a second NAT device information related to a second NAT device correspondingly connected to the another communication device. 13. The communication device according to claim 12 , wherein the processing unit further controls the communication unit to: predict a first port used by the first NAT device to obtain a first predicted value; determine a NAT type of the first NAT device; predict a second port used by the second NAT device to obtain a second predicted value; and determine a NAT type of the second NAT device. 14. The communication device according to claim 13 , wherein the first NAT device information comprises a local IP address of the communication device, a local port of the communication device, a public IP address of the first NAT device, the first predicted value of the first NAT device and the NAT type of the fir
using port numbers · CPC title
over a relay server, e.g. traversal using relay for network address translation [TURN] · CPC title
using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN] · CPC title
between local and global IP addresses · CPC title
Point-to-point connection between the data network and the subscribers (encapsulation H04L12/4633; virtual LANs H04L12/4641; routing of packets H04L45/00) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.