IP Library Granted Patent US 11,140,053
Granted Patent B2
US 11,140,053 · App. 14/586,622 · Granted Oct 5, 2021

Traversal of symmetric network address translator for multiple simultaneous connections

Inventor: Yutaka Takeda (San Mateo, CA)
Assignee: SONY INTERACTIVE ENTERTAINMENT INC.
H04L43/0811H04L29/12528H04L29/12537H04L61/2575H04L61/2578H04L29/125H04L61/2564H04L61/6068
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,140,053
App. No.
14/586,622
Granted
Oct 5, 2021
Kind
B2
Abstract

Handling of multiple connections during NAT traversal for a node behind a symmetric NAT is disclosed. The likelihood of connection failure during symmetric NAT traversal may be reduced by serializing critical time windows after port prediction. Once a connection request has been sent for a first connection, port prediction for a subsequent connection may be delayed until a connectivity check has begun for the first connection. This process may be repeated to handle NAT traversal for multiple simultaneous connections to different nodes.

Claims (40)

1. A method for peer-to-peer connection over a network between a first node behind a first symmetric network address translator (NAT) and two or more other nodes, the method comprising:

a) performing a check of connectivity between the first node and a second node using one or more predicted transport addresses; and

b) delaying port prediction for communication between the first node and a third node until after the check of connectivity between the first node and the second node has begun.

2. The method of claim 1 , further comprising:

c) after b), performing the port prediction for communication between the first node and a third node, wherein the first node constructs a list of predicted transport addresses on the first symmetric NAT;

d) sending a connection request message containing the list of predicted transport addresses from the first node to a third node;

e) performing a check of connectivity between the first node and the third node using the predicted transport addresses.

3. The method of claim 2 , further comprising: f) delaying port prediction for communication between the first node and a fourth node until after the check of connectivity between the first node and the third node.

4. The method of claim 1 wherein performing the check of connectivity includes sending Session Traversal Utility for NAT (STUN) packets from the second node to one or more of the one or more predicted transport addresses.

5. The method of claim 4 wherein performing the check of connectivity further includes sending a STUN packet response from the first node to the second node, wherein the STUN packet response includes a transport address of an external port on the first symmetric NAT through which one of the STUN packets sent from the second node reached the first node.

6. The method of claim 1 , further comprising:

waiting for a period of time T w before a) in response to receiving a message from the second node indicating that the second node is queued for connection to another node;

canceling initiation of a communication session between the first node and the second node, when the amount of time T w is greater than or equal to zero and less than a timeout for connectivity failure between the first and second nodes.

7. The method of claim 1 , wherein performing the check of connectivity between the first node and the second node includes sending one or more test packets from the first node to the second node using a transport address of the one or more predicted transport addresses.

8. The method of claim 7 wherein delaying port prediction for communication between the first node and the third node includes delaying port prediction for communication between the first node and the third node until after a first of the one or more test packets has been sent.

9. A node, comprising:

a processor;

a memory;

a network interface; and

instructions embodied in the memory and configured for execution on the processor, the instructions comprising: a set of instructions that, when executed, cause the node to:

i) perform a check of connectivity between the first node and a second node using one or more predicted transport addresses; and

ii) delaying port prediction for communication between the first node and a third node until after the check of connectivity between the first node and the second node has begun.

10. The node of claim 9 , wherein the instructions further comprise a set of instructions that, when executed, cause the node to:

iii) after ii), perform the port prediction for communication between the first node and a third node, wherein the first node constructs a list of predicted transport addresses on the first symmetric NAT;

iv) send a connection request message containing the list of predicted transport addresses from the first node to a third node; and

v) performing a check of connectivity between the first node and the third node using the predicted transport addresses.

11. The node of claim 10 , wherein the instructions further comprise a set of instructions that, when executed, cause the node to: vi) delaying port prediction for communication between the first node and a fourth node until after the check of connectivity between the first node and the third node.

12. The node of claim 9 , wherein performing the check of connectivity includes sending Session Traversal Utility for NAT (STUN) packets from the second node to one or more of the one or more predicted transport addresses.

13. The node of claim 12 , wherein performing the check of connectivity further includes sending a STUN packet response from the first node to the second node, wherein the STUN packet response includes a transport address of an external port on the first symmetric NAT through which one of the STUN packets sent from the second node reached the first node.

14. The node of claim 9 , wherein the instructions further comprise a set of instructions that, when executed, cause the node to:

wait for a period of time T w before a) in response to receiving a message from the second node indicating that the second node is queued for connection to another node;

canceling initiation of a communication session between the first node and the second node, when the amount of time T w is greater than or equal to zero and less than a timeout for connectivity failure between the first and second nodes.

15. The node of claim 9 , wherein performing the check of connectivity between the first node and the second node includes sending one or more test packets from the first node to the second node using a transport address of the one or more predicted transport addresses.

16. The node of claim 15 wherein delaying port prediction for communication between the first node and the third node includes delaying port prediction for communication between the first node and the third node until after a first of the one or more test packets has been sent.

17. A non-transitory computer readable medium having instructions therein configured to implement a method for peer-to-peer connection over a network between a first node behind a first symmetric network address translator (NAT) and two or more other nodes upon execution, the method comprising:

a) performing a check of connectivity between the first node and a second node using one or more predicted transport addresses; and

b) delaying port prediction for communication between the first node and a third node until after the check of connectivity between the first node and the second node has begun.

18. The non-transitory computer readable medium of claim 17 , wherein performing the check of connectivity includes sending Session Traversal Utility for NAT (STUN) packets from the second node to one or more transport addresses in the list of predicted transport addresses in the connection request message.

19. The non-transitory computer readable medium of claim 18 wherein performing the check of connectivity further includes sending a STUN packet response from the first node to the second node, wherein the STUN packet response includes a transport address of an external port on the first symmetric NAT through which one of the STUN packets sent from the second node reached the first node.

20. The non-transitory computer readable medium of claim 17 , wherein performing the check of connectivity between the first node and the second node includes sending one or more test packets from the first node to the second node one or more of the one or more predicted transport addresses.

Assignments (2)
CHANGE OF NAME Recorded Jul 1, 2016
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 039239/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2015
From: TAKEDA, YUTAKA
To: SONY COMPUTER ENTERTAINMENT INC
Reel/Frame 034856/0497 →
Continuity (4)
Continuation 13224253 · Sep 1, 2011
Continuation 12910624 · Oct 22, 2010
Continuation 12043080 · Mar 5, 2008
Related Publication 20150120918A1 · Apr 30, 2015