System, method , and computer program product for resolving addressing in a network including a network address translator
First Claim
1. A computer implemented method for performing address resolution, comprising the steps of:
- sending a first message by a controller to a first node causing the first node to listen for a special message from a second node, the first node not being behind a network address translator, and the second node being behind a network address translator;
sending a second message by the controller to the second node, the second message telling the second node to send the special message to the first node;
sending the special message by the second node to the first node;
determining by the first node an external address of the second node based on information received by the first node with the special message;
sending a third message by the first node to the controller, the third message including the external address of the second node; and
sending a fourth message by the controller to the first node, the fourth message including a communication address of the second node, the communication address being the external address of the second node.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method, and computer program product through which address resolution is performed for nodes (101, 103) of a network that are behind a network address translator (NAT). A determination is made upon the initiation of a communication session as to whether one or more of the nodes (101, 103) included in the session are behind a NAT. Based on the determination, information is exchanged (L102, L103) from an independent application server (105) to the nodes (101, 103) included in the session so as to resolve the addressing problems introduced by the NAT. The invention is applicable in applications including, but not limited to, IP telephony, and applications complying with the session initiation protocol (SIP).
-
Citations
49 Claims
-
1. A computer implemented method for performing address resolution, comprising the steps of:
-
sending a first message by a controller to a first node causing the first node to listen for a special message from a second node, the first node not being behind a network address translator, and the second node being behind a network address translator;
sending a second message by the controller to the second node, the second message telling the second node to send the special message to the first node;
sending the special message by the second node to the first node;
determining by the first node an external address of the second node based on information received by the first node with the special message;
sending a third message by the first node to the controller, the third message including the external address of the second node; and
sending a fourth message by the controller to the first node, the fourth message including a communication address of the second node, the communication address being the external address of the second node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer implemented method for performing address resolution, comprising the steps of:
-
sending a first initiate message by a controller to a first node, the first initiate message telling the first node to send a first special message to the controller at a first predetermined address, the first node being behind a first network address translator;
sending a second initiate message by the controller to a second node, the second initiate message telling the second node to send a second special message to the controller at a second predetermined address, the second node being behind a second network address translator;
sending the first special message by the first node to the controller at the first predetermined address;
sending the second special message by the second node to the controller at the second predetermined address;
determining by the controller a first external address of the first node based on information received by the controller with the first special message;
determining by the controller a second external address of the second node based on information received by the controller with the second special message;
sending a third initiate message by the controller to the first node, the third initiate message telling the first node to send another first special message to the controller at a third predetermined address;
sending a fourth initiate message by the controller to the second node, the fourth initiate message telling the second node to send another second special message to the controller at a fourth predetermined address;
sending the another first special message by the first node to the controller at the third predetermined address;
sending the another second special message by the second node to the controller at the fourth predetermined address;
determining by the controller another first external address of the first node based on information received by the controller with the another first special message;
determining by the controller another second external address of the second node based on information received by the controller with the another second special message;
determining by the controller that none of the first network address translator and the second network address translator base an address translation on a destination of a message sent;
sending a route message by the controller to the first node, the route message including a second communication address of the second node, the second communication address being the second external address of the second node; and
sending another route message by the controller to the second node, the another route message including a first communication address of the first node, the first communication address being the first external address of the first node. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer implemented method for performing address resolution, comprising the steps of:
-
receiving by a controller a first address message from a first node, the first address message including a first internal address corresponding to the first node;
receiving by the controller a second address message from a second node, the second address message including a second internal address corresponding to the second node;
comparing by the controller the first internal address with a first source address included with the first address message, and the second internal address with a second source address included with the second address message;
determining by the controller based on a result of the comparing step that the first node and the second node are behind the same network address translator;
sending a first route message by the controller to the first node, the first route message including a second communication address of the second node, the second communication address being the second internal address; and
sending a second route message by the controller to the second node, the second route message including a first communication address of the first node, the first communication address being the first internal address. - View Dependent Claims (22, 23, 24)
-
-
25. A computer implemented method for performing address resolution, comprising the steps of:
-
determining by a controller that at least one a first node and a second node of a communication session are behind a network address translator;
categorizing by the controller a result of the determining step as one of the first node is not behind a network address translator and the second node is behind a network address translator, the first node is behind a first network address translator and the second node is behind a second network address translator, and the first node and the second node are both behind a same network address translator; and
performing address resolution by the controller based on a result of the categorizing step. - View Dependent Claims (26, 27, 28)
-
-
29. A system for performing address resolution, comprising:
-
means for sending a first message by a controller to a first node causing the first node to listen for a special message from a second node, the first node not being behind a network address translator, and the second node being behind a network address translator;
means for sending a second message by the controller to the second node, the second message telling the second node to send the special message to the first node;
means for sending the special message by the second node to the first node;
means for determining by the first node an external address of the second node based on information received by the first node with the special message;
means for sending a third message by the first node to the controller, the third message including the external address of the second node; and
means for sending a fourth message by the controller to the first node, the fourth message including a communication address of the second node, the communication address being the external address of the second node. - View Dependent Claims (30)
-
-
31. A system for performing address resolution, comprising:
-
means for sending a first initiate message by a controller to a first node, the first initiate message telling the first node to send a first special message to the controller at a first predetermined address, the first node being behind a first network address translator;
means for sending a second initiate message by the controller to a second node, the second initiate message telling the second node to send a second special message to the controller at a second predetermined address, the second node being behind a second network address translator;
means for sending the first special message by the first node to the controller at the first predetermined address;
means for sending the second special message by the second node to the controller at the second predetermined address;
means for determining by the controller a first external address of the first node based on information received by the controller with the first special message;
means for determining by the controller a second external address of the second node based on information received by the controller with the second special message;
means for sending a third initiate message by the controller to the first node, the third initiate message telling the first node to send another first special message to the controller at a third predetermined address;
means for sending a fourth initiate message by the controller to the second node, the fourth initiate message telling the second node to send another second special message to the controller at a fourth predetermined address;
means for sending the another first special message by the first node to the controller at the third predetermined address;
means for sending the another second special message by the second node to the controller at the fourth predetermined address;
means for determining by the controller another first external address of the first node based on information received by the controller with the another first special message;
means for determining by the controller another second external address of the second node based on information received by the controller with the another second special message;
means for determining by the controller that none of the first network address translator and the second network address translator base an address translation on a destination of a message sent;
means for sending a route message by the controller to the first node, the route message including a second communication address of the second node, the second communication address being the second external address of the second node; and
means for sending another route message by the controller to the second node, the another route message including a first communication address of the first node, the first communication address being the first external address of the first node. - View Dependent Claims (32)
-
-
33. A system for performing address resolution, comprising:
-
means for receiving by a controller a first address message from a first node, the first address message including a first internal address corresponding to the first node;
means for receiving by the controller a second address message from a second node, the second address message including a second internal address corresponding to the second node;
means for comparing by the controller the first internal address with a first source address included with the first address message, and the second internal address with a second source address included with the second address message;
means for determining by the controller based on a result of the comparing step that the first node and the second node are behind the same network address translator;
means for sending a first route message by the controller to the first node, the first route message including a second communication address of the second node, the second communication address being the second internal address; and
means for sending a second route message by the controller to the second node, the second route message including a first communication address of the first node, the first communication address being the first internal address.
-
-
34. A system for performing address resolution, comprising:
-
means for determining by a controller that at least one a first node and a second node of a communication session are behind a network address translator;
means for categorizing by the controller a result of the means for determining as one of the first node is not behind a network address translator and the second node is behind a network address translator, the first node is behind a first network address translator and the second node is behind a second network address translator, and the first node and the second node are both behind a same network address translator; and
means for performing address resolution by the controller based on a result of the means for categorizing.
-
-
35. A device for coordinating network address translation, comprising
a processor; - and
a computer readable medium encoded with processor readable instructions that when executed by the processor implement, a network address translator detection mechanism configured to determine that a first node is behind a network address translator, and an address resolution mechanism configured to determine an external address for the first node and to provide the external address to a second node. - View Dependent Claims (36)
- and
-
37. A device for coordinating network address translation, comprising
a processor; - and
a computer readable medium encoded with processor readable instructions that when executed by the processor implement, a network address translator detection mechanism configured to determine that a first node is behind a first network address translator and that a second node is behind a second network address translator, and an address resolution mechanism configured to determine a first external address for the first node and a second external address for the second node and to provide the first external address to the second node and the second external address to the first node. - View Dependent Claims (38)
- and
-
39. A device for coordinating network address translation, comprising
a processor; - and
a computer readable medium encoded with processor readable instructions that when executed by the processor implement, a network address translator detection mechanism configured to determine that a first node and a second node are both behind a same network address translator, and an address resolution mechanism configured to cause the first node to communicate with the second node using internal addresses.
- and
-
40. A device for coordinating network address translation, comprising
a processor; - and
a computer readable medium encoded with processor readable instructions that when executed by the processor implement, a translation case determination mechanism configured to characterize a communication session between a first node and a second node as one of case zero when none of the first node and the second node is behind a network address translator, case one when the first node is behind a network address translator and the second node is not behind a network address translator, case two when the first node is behind a first network address translator and the second node is behind a second network address translator, and case three when the first node and the second node are both behind a same network address translator;
a case one processor configured to determine an external address for the first node and to provide the external address to the second node when the translation case determination mechanism has characterized the communications session as case one;
a case two processor configured to determine a first external address for the first node and a second external address for the second node and to provide the first external address to the second node and the second external address to the first node when the translation case determination mechanism has characterized the communications session as case two; and
a case three processor configured to cause the first node to communicate with the second node using internal addresses when the translation case determination mechanism has characterized the communications session as case three. - View Dependent Claims (41, 49)
- and
-
42. A computer program product, comprising:
-
a computer storage medium; and
a computer program code mechanism embedded in the computer storage medium for causing a computer to coordinate network address translation between a first node and a second node in a communication session, the computer program code mechanism having a first computer code device configured to determine that the first node is behind a network address translator, and a second computer code device configured to determine an external address for the first node and to provide the external address to the second node. - View Dependent Claims (43)
-
-
44. A computer program product, comprising:
-
a computer storage medium; and
a computer program code mechanism embedded in the computer storage medium for causing a computer to coordinate network address translation between a first node and a second node in a communication session, the computer program code mechanism having a first computer code device configured to determine that the first node is behind a first network address translator and that the second node is behind a second network address translator, and a second computer code device configured to determine a first external address for the first node and a second external address for the second node and to provide the first external address to the second node and the second external address to the first node. - View Dependent Claims (45)
-
-
46. A computer program product, comprising:
-
a computer storage medium; and
a computer program code mechanism embedded in the computer storage medium for causing a computer to coordinate network address translation between a first node and a second node in a communication session, the computer program code mechanism having a first computer code device configured to determine that the first node and the second node are both behind a same network address translator, and a second computer code device configured to cause the first node and the second node to communicate using internal addresses.
-
-
47. A computer program product, comprising:
-
a computer storage medium; and
a computer program code mechanism embedded in the computer storage medium for causing a computer to coordinate network address translation between a first node and a second node in a communication session, the computer program code mechanism having a first computer code device configured to characterize the communication session between the first node and the second node as one of case zero when none of the first node and the second node is behind a network address translator, case one when the first node is behind a network address translator and the second node is not behind a network address translator, case two when the first node is behind a first network address translator and the second node is behind a second network address translator, and case three when the first node and the second node are both behind a same network address translator;
a second computer code device configured to determine an external address for the first node and to provide the external address to the second node when the first computer code device has characterized the communications session as case one;
a third computer code device configured to determine a first external address for the first node and a second external address for the second node and to provide the first external address to the second node and the second external address to the first node when the first computer code device has characterized the communications session as case two; and
a fourth computer code device configured to cause the first node to communicate with the second node to communicate using internal addresses when the first computer code device has characterized the communications session as case three. - View Dependent Claims (48)
-
Specification