IP Library Granted Patent US 8,015,300
Granted Patent B2
US 8,015,300 · App. 12/910,624 · Granted Sep 6, 2011

Traversal of symmetric network address translator for multiple simultaneous connections

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 8,015,300
App. No.
12/910,624
Granted
Sep 6, 2011
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 (27)

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) sending a connection request message containing a list of predicted transport addresses from the first node to a second node;

b) receiving a provisional response to the connection request message at the first node;

c) performing a check of connectivity between the first node and the second node using the list of predicted transport addresses; and

d) delaying port prediction for communication between the first node and a third node until after c) has begun.

2. The method of claim 1 , further comprising:

e) after d), 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;

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

g) 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: h) delaying port prediction for communication between the first node and a fourth node until after g).

4. The method of claim 1 wherein performing the connectivity check 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 provided by the first node in the connection request message.

5. The method of claim 4 wherein performing the connectivity check 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 Tw after a), but before b) in response to a message from the second node indicating that the second node is queued for connection to another node;

canceling the communication session between the first node and the second node; and repeating a), b), c), d),

wherein the amount of time Tw 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 c) includes sending one or more test packets from the first node to the second node using a transport address from the list of predicted transport addresses.

8. The method of claim 7 wherein d) 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) send a connection request message containing a list of predicted transport addresses from the node to a second node;

ii) receiving a provisional response to the connection request message at the node;

iii) performing a check of connectivity between the first node and the second node using the list of predicted transport addresses; and

iv) delaying port prediction for communication between the node and a third node until after iii) has begun.

Assignments (2)
CHANGE OF NAME Recorded Jul 1, 2016
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 039239/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2014
From: TAKEDA, YUTAKA
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 034159/0789 →