USRE43057EExpiredUtility
Method and apparatus for facilitating peer-to-peer application communication
Individually held — no corporate assignee on recordPriority: Sep 13, 2000Filed: Dec 9, 2005Granted: Jan 3, 2012
Est. expirySep 13, 2020(expired)· nominal 20-yr term from priority
Inventors:Andrew Molitor
H04L 61/2567H04L 61/2557H04L 61/2575H04L 61/00H04L 67/104
59
PatentIndex Score
2
Cited by
60
References
109
Claims
Abstract
A system for performing Network Address Translation, which allows applications to request information concerning address translations to be performed, so that those applications may send useful information to other applications for the purposes of allowing applications to communicate through the NAT device in the absence of statically defined rules for specific channels of communication.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A network address translation device for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it a set of available addresses valid for use in the external address realm, comprising:
an address translator for translating addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that resolve the incompatibility of the internal and external address realms;
an address manager for establishing and storing the translation rules, said address manager having access to the set of available addresses valid for use in the external address realm; and
a control channel communicating with the address manager for receiving from the first application a service request message for establishing in response to the first application's service request a translation rule specified by the first application.
2. The network address translation device of claim 1 , wherein the first application specifies that the translation rule to be established associates the first application's internal address with an available external address and the first application has access to the associated available external address as data for an outgoing message packet.
3. The network address translation device of claim 1 wherein the first application specifies that the translation rule to be established associates the first application's internal address with an available external address that is a particular WP address or within a specified range of IP addresses.
4. The network address translation device of claim 1 wherein the first application specifies that the translation rule is one of two or more translation rules applicable to an incoming message packet, where the selection of which translation rule is applied is contingent on address information in the incoming message packet.
5. The network address translation device of claim 2 wherein the available external address requested by the first application is a terminating address.
6. The network address translation device of claim 2 wherein the available external address requested by the first application is an originating address.
7. The network address translation device of claim 2 wherein the internal address realm is a private network and the external address realm is the Internet.
8. The network address translation device of claim 1 wherein the internal address realm is a private network and the external address realm is the Internet and the address manager establishes a translation rule by associating an address valid in the private network realm with an address valid in the Internet.
9. The network address translation device of claim 4 , wherein the selection of which translation rule is applied is made in response to the presence or absence of specified originating address information in the incoming message.
10. The network address translation device of claim 1 , wherein the communication facilitated is peer-to-peer application communication.
11. The network address translation device of claim 1 , wherein the communication facilitated is peer-to-peer telephony communication.
12. The network address translation device of claim 3 , wherein the translation rule to be established forces the outgoing message packet to have a destination address in a transit network.
13. The network address translation device of claim 3 , wherein the translation rule to be established forces at least a portion of the packet communication between the first application and the second application to pass through a specified network.
14. A method for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it a set of addresses valid for use in the external address realm, comprising:
providing the internal address realm withreceiving message packets at a network address translation device having an address translator for translating addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that resolve the incompatibility of the internal and external address realms;
providingestablishing and storing using an address manager for establishing and storing the translation rules for the network address translation device, said address manager having access to the set of available addresses valid for use in the external address realm; and
providingreceiving via a control channel communicating with the address manager for receiving from the first application a service request message transmitted from the first application for establishing in response to the first application's service request a translation rule specified by the first application.
15. The method of claim 14 , wherein the step of providing receiving via a control channel comprises receiving from the first application a request that specifies specifying that the translation rule to be established associates the first application's internal address with an available external address and providing returning to the first application access to the associated available external address as data for an outgoing message packet.
16. The method of claim 14 wherein the step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request that specifies specifying that the translation rule to be established associates the first application's internal address with an available external address that is a particular IP address or within a specified range of IP addresses.
17. The method of claim 14 wherein the step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request that the translation rule is one of two or more translation rules applicable to an incoming message packet, where the selection of which translation rule is applied is contingent on address information in the incoming message packet.
18. The method of claim 14 wherein the step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request for a translation rule for a terminating address.
19. The method of claim 14 wherein the step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request for a translation rule for an originating address.
20. The method of claim 14 wherein the internal address realm is a private network and the step of providing establishing and storing translation rules using an address manager comprises providing using an address manager having access to a set of available addresses valid in the Internet.
21. The method of claim 14 wherein the internal address realm is a private network and the external address realm is the Internet and the step of providing establishing and storing the translation rules using an address manager comprises providing using an address manager that establishes a translation rule by associating an address valid in the private network realm with an address valid in the Internet.
22. The method of claim 17 , wherein step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request that the translation rule is one of two or more translation rules applicable to an incoming message, where the selection of which translation rule is applied is made in response to the presence or absence of specified originating address information in the incoming message.
23. The method of claim 14 , wherein the communication facilitated is peer-to-peer application communication.
24. The method of claim 14 , wherein the communication facilitated is peer-to-peer telephony communication.
25. The method of claim 16 , wherein the step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request that the translation rule to be established forces the outgoing message packet to have a destination address in a transit network.
26. The method of claim 16 , wherein the step of providing receiving via a control channel for receiving a request comprises receiving from the first application a request that the translation rule to be established forces at least a portion of the packet communication between the first application and the second application to pass through a specified network.
27. A method for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it a set of addresses valid for use in the external address realm, comprising:
receiving message packets at a network address translation device having an address translator for translating addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that resolve the incompatibility of the internal and external address realms; establishing and storing using an address manager the translation rules for the network address translation device, said address manager having access to the set of available addresses valid for use in the external address realm; and receiving via a control channel communicating with the address manager a service request message transmitted from the first application for establishing in response a translation rule specified by the first application, wherein the address manager transmits to the first application in response to the service request a first address valid for use in the external address realm and wherein the first application causes the first address to be transmitted to the external address realm in an SIP message.
28. The method of claim 27, wherein the SIP message is an SIP INVITE message.
29. The method of claim 27, wherein the first application causes the SIP message to be transmitted to a second application in the external address realm.
30. The method of claim 27, wherein the first address includes an IP address and a port number.
31. The method of claim 27, wherein an SIP proxy server is invoked in transmitting the SIP message to a second application in the external address realm.
32. The method of claim 27, wherein the SIP message is used to establish a peer-to-peer communication session.
33. The method of claim 27, wherein the SIP message is used to establish an IP telephonic communication session.
34. The method of claim 27, wherein the SIP message is used to establish an instant messaging session.
35. A method for facilitating message packet communication between a first host having an internal address valid in an internal address realm and one or more hosts in an external address realm, the internal address realm having available to it a set of addresses valid for use in the external address realm, comprising the steps of:
transmitting from an initiating application associated with the first host in the internal address realm to a network address translation device a service request establishing a translation rule on the network translation device, the network translation device adapted to translate addresses included in headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that resolve incompatibility between the internal and external address realms; receiving at the initiating application from the network translation device in response to the service request a first address valid for use by the initiating application to identify itself in the external address realm; and causing the first address to be transmitted to the external address realm in a data portion of an SIP message from the initiating application.
36. The method of claim 35, wherein the SIP message is an SIP INVITE message.
37. The method of claim 35, wherein the first address is transmitted to an SIP-aware application in the external address realm.
38. The method of claim 35, wherein the first address includes an IP address and a port number.
39. The method of claim 35, wherein an SIP proxy server is invoked in transmitting the first address to an SIP-aware application in the external address realm.
40. The method of claim 35, wherein the SIP message is used to establish a peer-to-peer communication session.
41. The method of claim 35, wherein the SIP message is used to establish an IP telephonic communication session.
42. The method of claim 35, wherein the SIP message is used to establish an instant messaging session.
43. A method for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it a set of addresses valid for use in the external address realm, comprising:
receiving a service request from the first application at a network address translation device, wherein the network address translation device has an address translator for translating addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with at least one translation rule that maps correspondence between addressing in the internal and external address realms; and responsive to the service request from the first application received by the network address translation device, establishing a translation rule specified by the service request that provides for the first application an external address realm address paired with the first application's internal address to use in an outgoing message to facilitate an incoming message from an application in the external address realm.
44. The method of claim 43, wherein the service request comprises instructing the network address translation device to communicate the external address realm address included in the translation rule to the first application.
45. The method of claim 43, further comprising receiving a service request with specifications for a new translation rule.
46. The method of claim 43, further comprising receiving a service request with desired characteristics for a translation rule.
47. The method of claim 46, wherein the desired characteristics for the translation rule identify a specified range of IP addresses.
48. The method of claim 46, wherein the desired characteristics for the translation rule identify a particular external IP address.
49. The method of claim 43, wherein the message packet communication is communication of media packets.
50. The method of claim 43, wherein the message packet communication is communication of digitized voice packets.
51. The method of claim 43, further comprising establishing a translation rule with different translated address values depending on an incoming source address.
52. The method of claim 43, wherein the step of receiving a service request comprises receiving a request communicated from a proxy server.
53. A method for facilitating message packet communication between an internal address realm and an external address realm, comprising:
receiving at a network address translation device a service request from a first application having an internal address valid in the internal address realm, wherein the network address translation device has an address translator for translating addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with at least one translation rule that maps correspondence between addressing in the internal and external address realms; establishing at the network address translation device a translation rule with respect to the service request from the first application, the translation rule including an external address valid for use in the external address realm and paired with the first application's internal address to use in an outgoing message to facilitate an incoming message from an application in the external address realm; and providing the external address to the first application.
54. The method of claim 53, further comprising receiving a service request with specifications for a new translation rule.
55. The method of claim 53, further comprising receiving a service request with desired characteristics for a translation rule.
56. The method of claim 55, wherein the desired characteristics for the translation rule identify a specified range of IP addresses.
57. The method of claim 55, wherein the desired characteristics for the translation rule identify a particular external IP address.
58. The method of claim 53, wherein the message packet communication is communication of media packets.
59. The method of claim 53, wherein the message packet communication is communication of digitized voice packets.
60. The method of claim 53, wherein the step of establishing at the network address translation device a translation rule comprises establishing a translation rule with different translated address values depending on an incoming source address.
61. The method of claim 52, wherein the step of receiving at a network address translation device a service request comprises receiving a request communicated from a proxy server.
62. A first application encoded on a non-transitory computer readable medium for facilitating message packet communication between a first host having an internal address valid in an internal address realm and one or more hosts in an external address realm, the internal address realm having available to it a set of addresses valid for use in the external address realm, the first application comprising software instructions executable by a processor for performing steps comprising:
transmitting in the internal address realm to a network address translator a service request whereby a translation rule is established for the network translator, the network translator adapted to translate addresses included in headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that resolve incompatibility between the internal and external address realms; receiving in the internal address realm from the network translator in response to the service request a first address valid for use in the external address realm; and causing the first address to be transmitted to the external address realm in an IP packet sent by the first application.
63. The first application of claim 62, wherein the application is SIP-aware and the IP packet is an SIP INVITE message.
64. The first, SIP-aware application of claim 63, wherein the SIP message is transmitted to a second SIP-aware application in the external address realm.
65. The first application of claim 62, wherein the first address includes an IP address and a port number.
66. The first SIP-aware application of claim 63, wherein an SIP proxy server is invoked in transmitting the first address to a second SIP-aware application in the external address realm.
67. The first application of claim 62, wherein the IP packet is used to establish a peer-to-peer communication session.
68. The first application of claim 62, wherein the IP packet is used to establish an IP telephonic communication session.
69. The first application of claim 62, wherein the IP packet is used to establish an instant messaging session.
70. A network address translation device for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it at least one address valid for use in the external address realm, comprising:
an address translator for translating addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that resolve the incompatibility of the internal and external address realms; and an address manager for establishing a new translation rule for the address translator in response to a service request received from the first application, the new translation rule including the internal address specified in the service request paired with an external address from the at least one address valid for use in the external address realm.
71. The device of claim 70 wherein the service request specifies a required or desired characteristic for the external address to be established in the new translation rule.
72. The device of claim 71, wherein the required or desired characteristic is that the external address of the new translation rule must be a particular address or in a specified range of IP addresses.
73. The device of claim 71, wherein the required or desired characteristic for the external address is an externally valid port number to be translated into an internally valid port number.
74. The device of claim 73, wherein the internally valid port number is of one value or a different value depending on an incoming source address.
75. The device of claim 73, wherein the external address includes an externally valid IP address and the externally valid port number, which the address translator will translate into an internally valid IP address and the internally valid port number of the internal address for the first application.
76. The device of claim 70, wherein the address manager comprises a processor and memory for storing code that determines what services and functions are available in response to control messages from the application.
77. The device of claim 76, comprising a control channel whereby the address manager exchanges the control messages with the application.
78. The device of claim 77, wherein the address manager receives service requests and returns requested information or status information to the application over the control channel.
79. A method for facilitating message packet communication between a first application in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it at least one address valid for use in the external address realm and an address translator translating addresses included in headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that map correspondence between addressing in the internal and external address realms, the method comprising the steps of:
sending from the first application a service request for establishing a new translation rule at the address translator, the service request specifying an internal address of the first application to be mapped with an external address for the first application from the at least one address valid for use in the external address realm; and receiving the external address at the first application.
80. The method of claim 79 wherein the service request specifies a required or desired characteristic for the external address to be established in the new translation rule.
81. The method of claim 80, wherein the required or desired characteristic is that the external address of the new translation rule must be a particular address or in a specified range of IP addresses.
82. The method of claim 80, wherein the required or desired characteristic for the external address is an externally valid port number to be translated into an internally valid port number.
83. The method of claim 82, wherein the internally valid port number is of one value or a different value depending on an incoming source address.
84. The method of claim 82, wherein the external address includes an externally valid IP address and the externally valid port number, which the address translator will translate into an internally valid IP address and the internally valid port number of the internal address for the first application.
85. The method of claim 79, wherein the first application sends service requests and receives requested information or status information from the address translator over a control channel.
86. The method of claim 79, comprising the step of providing, in a data portion of a message from the first application, the external address to which messages from the one or more applications in the external address realm are to be sent for communicating with the first application.
87. The method of claim 86, wherein the one or more applications in the external address realm can initiate communications with the first application by addressing messages to the external address.
88. The method of claim 79, comprising the step of providing, in a data portion of a message from the first application, the external address to a second application acting as a proxy on behalf of the one or more applications in the external address realm.
89. The method of claim 79, wherein the first application and the one or more applications in the external address realm are peer-to-peer applications which communicate in an essentially symmetric fashion.
90. The method of claim 89, wherein each peer-to-peer application functions as a client and a server.
91. A method for facilitating message packet communication between an internal application in an internal address realm and an external application in an external address realm, said internal address realm having available to it at least one address valid for use in the external address realm and an address translator translating addresses included in headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that map correspondence between addressing in the internal and external address realms, the method comprising the steps of:
specifying, by the internal application, establishment of a first translation rule at the address translator, the first translation rule defining a first internal address for the internal application to be mapped with a first external address from the at least one address valid for use in the external address realm; and sending, from the internal application, an outgoing message whose header includes the first internal address to the external application via the address translator; whereby the first internal address included in the header of the outgoing message is translated according to the first translation rule into the first external address and this translated outgoing message initiates communications with the external application, and in response to such internal application initiated communications, the external application in the external address realm sends an incoming message addressed to the first external address which the address translator will translate according to the first translation rule into the first internal address for the internal application.
92. The method of claim 91, comprising the steps of:
specifying, by the internal application, establishment of a second translation rule at the address translator, the second translation rule defining a second internal address for the internal application to be mapped with a second external address from the at least one address valid for use in the external address realm; and providing, in a data portion of a message from the internal application, the second external address to the external application in the external address realm; whereby the external application can initiate communications with the internal application by addressing messages to the second external address which the address translator will translate according to the second translation rule into the second internal address for the internal application.
93. A method for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, using a network address translator that translates addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with at least one address translation rule that resolves incompatibility of the addressing schemes of the internal and external address realms, comprising the method steps:
receiving from the first application a service message requesting establishment of an address translation rule; using an address manager associated with the address translator to establish an address translation rule accessible to the address translator, said rule providing an external address and port for use by the first application as a terminating address identifying a device and port that will receive inbound message packets directed to the first application during peer-to-peer communication; and communicating to the first application the external address established in the address translation rule for use by the first application as its terminating address in a data portion of a peer-to-peer communication.
94. The method of claim 93 wherein the address translation rule established is formulated so that the address translator checks a source address and/or port of an incoming message and applies a different translation rule depending on the source address and/or port of an incoming message.
95. The method of claim 93 wherein the service message specifies that the requested address translation rule establish a particular terminating address from those external addresses available to the first application.
96. The method of claim 93 wherein the service message specifies that the requested address translation rule establish a terminating address from within a specified range of external addresses available to the first application.
97. A method for facilitating message packet communication between a first application having an internal address valid in an internal address realm and one or more applications in an external address realm, using a network address translator that translates addresses included in the headers of message packets incoming to and outgoing from the internal address realm in accordance with at least one address translation rule that resolves incompatibility of the addressing schemes of the internal and external address realms, comprising the method steps:
receiving from the first application a service message requesting establishment of an address translation rule; using an address manager associated with the address translator to establish an address translation rule accessible to the address translator, said rule providing an external address and port for use by the first application as an originating address identifying a device and port that will receive inbound message packets directed to the first application during peer-to-peer communication; and communicating to the first application the external address established in the address translation rule for use by the first application as its originating address in a data portion of a peer-to-peer communication.
98. The method of claim 97 wherein the address translation rule established is formulated so that the address translator checks the source address and/or port of an incoming message and applies a different translation rule depending on the source address and/or port of an incoming message.
99. The method of claim 97 wherein the service message specifies that the requested address translation rule establish a particular originating address from those external addresses available to the first application.
100. The method of claim 97 wherein the service message specifies that the requested address translation rule establish an originating address from within a specified range of external addresses available to the first application.
101. An apparatus for facilitating message packet communication between a first application in an internal address realm and one or more applications in an external address realm, said internal address realm having available to it at least one address valid for use in the external address realm, comprising:
a message component for sending message packets from the first application to an address translator for translating addresses included in headers of message packets incoming to and outgoing from the internal address realm in accordance with translation rules that map correspondence between addressing in the internal and external address realms; and a service component for (a) sending from the first application to an address manager for the internal address realm a service request for establishing a new translation rule at the address translator, the service request specifying an internal address of the first application to be mapped with an external address from the at least one address valid for use in the external address realm, and (b) for receiving an address manager response comprising the external address mapped to the internal address of the first application.
102. The apparatus of claim 101 wherein the service request specifies a required or desired characteristic for the external address to be established in the new translation rule.
103. The apparatus of claim 102, wherein the required or desired characteristic is that the external address of the new translation rule must be a particular address or in a specified range of IP addresses.
104. The apparatus of claim 102, wherein the required or desired characteristic for the external address is an externally valid port number to be translated into an internally valid port number.
105. The apparatus of claim 104, wherein the internally valid port number is of one value or a different value depending on an incoming source address.
106. The apparatus of claim 104, wherein the external address includes an externally valid IP address and the externally valid port number, which the address translator will translate into an internally valid IP address and the internally valid port number of the internal address for the first application.
107. The apparatus of claim 101, further comprising a component for providing, in a data portion of a message from the first application, the external address.
108. The apparatus of claim 101, wherein the first application and the one or more applications in the external address realm are peer-to-peer applications which communicate in an essentially symmetric fashion.
109. The apparatus of claim 101, wherein the address manager response includes the external address for use by the first application.Join the waitlist — get patent alerts
Track USRE43057E — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.