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 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;
wherein the first external address of the first node, the another first external address of the first node, the second external address of the second node and the another second external address of the second node comprise an Internet protocol address and a user datagram protocol port.
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
12 Claims
-
1. 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; wherein the first external address of the first node, the another first external address of the first node, the second external address of the second node and the another second external address of the second node comprise an Internet protocol address and a user datagram protocol port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer implemented method for performing address resolution, comprising the steps of:
-
determining by a controller that a first node is behind a first network address translator and a second node is behind a second network address translator; and performing address resolution by the controller, the performing step comprising; sending a first initiate message by the controller to the first node, the first initiate message telling the first node to send a first special message to the controller at a first predetermined address, sending a second initiate message by the controller to the second node, the second initiate message telling the second node to send a second special message to the controller at a second predetermined address, 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, wherein the first external address of the first node, the another first external address of the first node, the second external address of the second node and the another second external address of the second node comprise an Internet protocol address and a user datagram protocol port.
-
-
11. 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; wherein the first external address of the first node, the another first external address of the first node, the second external address of the second node and the another second external address of the second node comprise an Internet protocol address and a user datagram protocol port. - View Dependent Claims (12)
-
Specification