Peer-to-peer communication traversing symmetric network address translators
First Claim
1. A method for peer-to-peer connection over a network between a first node behind a first network address translator (NAT) and a second node behind a second NAT, despite the first NAT and the second NAT intervening between the first and second nodes, wherein the first NAT is a Symmetric NAT, the method comprising the steps of:
- performing a port prediction on the first NAT with the first node wherein the first node uses a port allocation rule discovery process to determine port allocation characteristics of the first NAT and constructs a list of predicted transport addresses on the first NAT according to the determined port allocation characteristics;
sending an INVITE message containing the list of predicted transport addresses from the first node to the second node, wherein the INVITE message does not contain a NAT type or NAT behavior information for the first NAT; and
performing a connectivity check using the predicted transport addresses by sending one or more STUN packets from the first node to one or more transport addresses provided by the second node in a provisional response to the INVITE message and receiving a STUN packet response from the second node at the first node, wherein the STUN packet response includes a transport address of an external port on the second NAT through which one of the STUN packets sent from the first node reached the second node.
4 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are systems and methods for peer-to-peer communication over a network between a first node behind a first network address translator (NAT) and a second node behind a second NAT, despite the first NAT and the second NAT intervening between the first and second nodes. The first NAT is a Symmetric NAT. A port prediction is performed wherein the first node constructs a list of predicted transport addresses on the first NAT. A message containing the list of predicted transport addresses is sent from the first node to the second node. A connectivity check is performed with the second node using the predicted transport addresses.
422 Citations
40 Claims
-
1. A method for peer-to-peer connection over a network between a first node behind a first network address translator (NAT) and a second node behind a second NAT, despite the first NAT and the second NAT intervening between the first and second nodes, wherein the first NAT is a Symmetric NAT, the method comprising the steps of:
-
performing a port prediction on the first NAT with the first node wherein the first node uses a port allocation rule discovery process to determine port allocation characteristics of the first NAT and constructs a list of predicted transport addresses on the first NAT according to the determined port allocation characteristics; sending an INVITE message containing the list of predicted transport addresses from the first node to the second node, wherein the INVITE message does not contain a NAT type or NAT behavior information for the first NAT; and performing a connectivity check using the predicted transport addresses by sending one or more STUN packets from the first node to one or more transport addresses provided by the second node in a provisional response to the INVITE message and receiving a STUN packet response from the second node at the first node, wherein the STUN packet response includes a transport address of an external port on the second NAT through which one of the STUN packets sent from the first node reached the second node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A first node operable for peer-to-peer connection over a network from behind a first network address translator (NAT) with a second node behind a second NAT, wherein the first NAT is a Symmetric NAT, wherein the first node includes a general purpose computer programmed with instructions for performing peer-to-peer communication over a network, the instructions including:
-
an instruction for performing a port prediction on the first NAT with the first node wherein the first node uses a port allocation rule discovery process to determine port allocation characteristics of the first NAT and constructs a list of predicted transport addresses on the first NAT according to the determined port allocation characteristics; an instruction for sending an INVITE message with the list of predicted transport addresses to the second node, wherein the INVITE message does not contain a NAT type or NAT behavior information for the first NAT; and an instruction for checking for connectivity with the second node by sending one or more STUN packets from the first node to one or more transport addresses provided by the second node in a provisional response to the INVITE message and receiving a STUN packet response from the second node at the first node, wherein the STUN packet response includes a transport address of an external port on the second NAT through which one of the STUN packets sent from the first node reached the second node. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A system for peer-to-peer connection, comprising
a first node behind a first network address translator (NAT); -
a second node behind a second NAT, wherein the first and second nodes respectively include first and second general purpose computers programmed with instructions for performing peer-to-peer communication over a network, the instructions including; an instruction for performing a port prediction on the first NAT with the first node wherein the first node uses a port allocation rule discovery process to determine port allocation characteristics of the first NAT and constructs a list of predicted transport addresses on the first NAT according to the determined port allocation characteristics; an instruction for sending an INVITE message with the list of predicted transport addresses from the first node to the second node, wherein the INVITE message does not contain a NAT type or NAT behavior information for the first NAT; and an instruction for performing a connectivity check with the second node using the predicted transport addresses by sending one or more STUN packets from the first node to one or more transport addresses provided by the second node in a provisional response to the INVITE message and receiving a STUN packet response from the second node at the first node, wherein the STUN packet response includes a transport address of an external port on the second NAT through which one of the STUN packets sent from the first node reached the second node. - View Dependent Claims (23, 24)
-
-
25. A method for peer-to-peer connection over a network between a first node behind a first network address translator (NAT) and a second node behind a second NAT, despite the first NAT and the second NAT intervening between the first and second nodes, wherein the first NAT is a Symmetric NAT, the method comprising the steps of:
-
performing a port prediction on the first NAT with the first node wherein the first node uses a port allocation rule discovery process to determine port allocation characteristics of the first NAT and constructs a list of predicted transport addresses on the first NAT according to the determined port allocation characteristics; sending an INVITE message containing the list of predicted transport addresses from the first node to the second node, wherein the INVITE message does not contain a NAT type or NAT behavior information for the first NAT; and performing a connectivity check using the predicted transport addresses by receiving STUN packets from the second node at the one or more transport addresses provided by the first node in the INVITE message and 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 NAT through which one of the STUN packets sent from the second node reached the first node. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A first node operable for peer-to-peer connection over a network from behind a first network address translator (NAT) with a second node behind a second NAT, wherein the first NAT is a Symmetric NAT, wherein the first node includes a general purpose computer programmed with instructions for performing peer-to-peer communication over a network, the instructions including:
-
an instruction for performing a port prediction on the first NAT with the first node wherein the first node uses a port allocation rule discovery process to determine port allocation characteristics of the first NAT and constructs a list of predicted transport addresses on the first NAT according to the determined port allocation characteristics; an instruction for sending an INVITE message with the list of predicted transport addresses to the second node, wherein the INVITE message does not contain a NAT type or NAT behavior information for the first NAT; and an instruction for checking for connectivity with the second node by receiving STUN packets from the second node at the one or more transport addresses provided by the first node in the INVITE message and 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 NAT through which one of the STUN packets sent from the second node reached the first node.
-
Specification