USRE44593EExpiredUtility

Method and apparatus for facilitating peer-to-peer application communication

Assignee: MOLITOR ANDREW TPriority: Sep 13, 2000Filed: Dec 30, 2011Granted: Nov 12, 2013
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
45
PatentIndex Score
0
Cited by
11
References
57
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-modified
What 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 IP 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 with 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;   providing 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   providing 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.   
     
     
       15. The method of  claim 14 , wherein the step of providing a control channel comprises receiving from the first application a request that specifies that the translation rule to be established associates the first application's internal address with an available external address and providing 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 a control channel for receiving a request comprises receiving from the first application a request that specifies 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 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 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 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 an address manager comprises providing 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 an address manager comprises providing 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 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 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 step of providing 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 a service request at a network address translation device from a second application acting as a proxy for the first application, 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 second application acting as a proxy and providing the internal address of 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.   
     
     
       28. The method of claim 27, wherein the message packet communication is communication of media packets. 
     
     
       29. The method of claim 27, wherein the message packet communication is communication of digitized audio packets. 
     
     
       30. The method of claim 27, wherein the first application is an application running on a telephone. 
     
     
       31. The method of claim 27, wherein the second application acting as a proxy is a virtual PBX. 
     
     
       32. The method of claim 27, wherein the first application is an application for instant messaging. 
     
     
       33. The method of claim 27, wherein the external address realm address includes an externally valid IP address and port number, which the address translator will translate into an internally valid IP address and port number of the internal address for the first application. 
     
     
       34. The method of claim 27, wherein the second application receives from the address translator the external address realm address. 
     
     
       35. The method of claim 34, further comprising the step of providing, in a data portion of a message from the second application, the external address realm address to the application in the external address realm, whereby the application in the external address realm can initiate communications with the first application by addressing messages to the external address realm address. 
     
     
       36. The method of claim 34, further comprising the step of providing, in a data portion of a message from the second application, the external address realm address to a third application acting as a proxy for the application in the external address realm, whereby the application in the external address realm can initiate communications with the first application by addressing messages to the external address realm address. 
     
     
       37. The method of claim 27, wherein the translation rule pairing the external address realm address with the first application's internal address defines a first translation rule; the outgoing message initiates communications with the application in the external address realm; and the incoming message from the application in the external address realm, addressed to the external address realm address that the network address translation device will translate according to the first translation rule, is in response to such first application initiated communications; and further comprising the steps of:
 establishing at the network address translation device a second translation rule in response to the same or a further service request from the second application providing a second internally valid address for the first application, the second translation rule including a second externally valid address paired with the second internally valid address; and   providing, in a data portion of a message from the second application, the second externally valid address to the application in the external address realm, whereby the application in the external address realm can initiate communications with the first application by addressing messages to the second externally valid address.   
     
     
       38. The method of claim 27, wherein the first application and the application in the external address realm are peer-to-peer applications, which communicate in an essentially symmetric fashion. 
     
     
       39. The method of claim 38, wherein each peer-to-peer application functions as a client and a server. 
     
     
       40. 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 second application acting as a proxy on behalf of 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 second application acting as a proxy for providing the internal address of 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, in a data portion of a message from the second application, the external address to which messages from the application in the external address realm are to be sent for communicating with the first application.   
     
     
       41. The method of claim 40, wherein the message packet communication is communication of media packets. 
     
     
       42. The method of claim 40, wherein the message packet communication is communication of digitized audio packets. 
     
     
       43. The method of claim 40, wherein the first application is an application running on a telephone. 
     
     
       44. The method of claim 40, wherein the second application acting as a proxy is a virtual PBX. 
     
     
       45. The method of claim 40, wherein the first application is an application for instant messaging. 
     
     
       46. The method of claim 40, wherein the first application and the application in the external address realm are peer-to-peer applications that communicate in an essentially symmetric fashion. 
     
     
       47. The method of claim 46, wherein each peer-to-peer application functions as a client and a server. 
     
     
       48. The method of claim 40, wherein the external address comprises an externally valid IP address and port number, which the network translator will translate into an internally valid IP address and port number of the internal address for the first application. 
     
     
       49. The method of claim 40, wherein the application in the external address realm can initiate communications with the first application by addressing messages to the external address. 
     
     
       50. The method of claim 40, wherein the message having the external address in the data portion thereof is provided to a third application acting as a proxy on behalf of the application in the external address realm. 
     
     
       51. 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 a second application, acting as a proxy on behalf of the first application, a service request for establishing a new translation rule at the address translator, the service request specifying an internal address associated with 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   receiving the external address at the second application acting as a proxy on behalf of the first application for message packet communication.   
     
     
       52. The method of claim 51 wherein the service request specifies a required or desired characteristic for the external address to be established in the new translation rule. 
     
     
       53. The method of claim 52, wherein the required or desired characteristic specifies that the external address of the new translation rule must be a particular address or in a specified range of IP addresses. 
     
     
       54. The method of claim 51, wherein the second application acting as a proxy is a virtual PBX. 
     
     
       55. The method of claim 51, further comprising, providing, in a data portion of a message from the second application, the external address to which messages from the application in the external address realm are to be sent for communicating with the first application. 
     
     
       56. The method of claim 55, wherein the message providing the external address in the data portion thereof is provided to a third application acting as a proxy on behalf of the application in the external address realm. 
     
     
       57. 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 and wherein the step of receiving at a network address translation device a service request comprises receiving a request communicated from a proxy server;   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.

Join the waitlist — get patent alerts

Track USRE44593E — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.