Traversal of symmetric network address translator for multiple simultaneous connections
First Claim
Patent Images
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 port prediction for initiating a communication session between the first node and a second node with first node and constructing a list of predicted transport addresses on the first NAT with the first node;
b) sending a CONNECTION REQUEST message containing the list of predicted transport addresses from the first node to a second node;
c) receiving a provisional response to the CONNECTION REQUEST message at the first node;
d) performing a check of connectivity between the first node and the second node using the predicted transport addresses; and
e) delaying port prediction for communication between the first node and a third node until after d) has begun.
4 Assignments
0 Petitions
Accused Products
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 port prediction has begun 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.
-
Citations
20 Claims
-
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 port prediction for initiating a communication session between the first node and a second node with first node and constructing a list of predicted transport addresses on the first NAT with the first node; b) sending a CONNECTION REQUEST message containing the list of predicted transport addresses from the first node to a second node; c) receiving a provisional response to the CONNECTION REQUEST message at the first node; d) performing a check of connectivity between the first node and the second node using the predicted transport addresses; and e) delaying port prediction for communication between the first node and a third node until after d) has begun. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. 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 behind, the method comprising:
-
a) receiving a CONNECTION REQUEST message from a second node at the first node, wherein the CONNECTION REQUEST message contains a first list of predicted transport addresses; b) performing a port prediction for initiating a communication session between the first node and the second node with first node and constructing a list of predicted transport addresses on the first NAT with the first node; c) sending a provisional response to the CONNECTION REQUEST message to the second node from the first node; d) performing a check of connectivity between the first node and the second node using the predicted transport addresses in the CONNECTION REQUEST message; and e) delaying port prediction for communication between the first node and a third node until after d) has begun. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A node, comprising:
-
a processor; a memory; a network interface; and instructions embodiment in the memory and configured for execution on the processor, the instructions comprising either; A) a set of instructions that, when executed, cause the node to; i) perform a port prediction for initiating a communication session between the node and a second node with the node and construct a list of predicted transport addresses on a first NAT with the node; ii) send a CONNECTION REQUEST message containing the list of predicted transport addresses from the node to the second node; iii) receive a provisional response to the CONNECTION REQUEST message at the node; iv) perform a check of connectivity between the node and the second node using the predicted transport addresses; and v) delay port prediction for communication between the node and a third node until after iv) has begun, or B) a set of instructions that, when executed, cause the node to i) receive a CONNECTION REQUEST message from a second node at the node, wherein the CONNECTION REQUEST message contains a first list of predicted transport addresses; ii) perform a port prediction for initiating a communication session between the node and the second node with the node and construct a list of predicted transport addresses on the first NAT with the node; iii) send a provisional response to the CONNECTION REQUEST message to the second node from the node; iv) perform a check of connectivity between the node and the second node using the predicted transport addresses in the CONNECTION REQUEST message; and v) delay port prediction for communication between the node and a third node until after iv) has begun.
-
Specification