Persistent network addressing system and method
First Claim
1. An improved computer system for maintaining a network connection with a remote computer by providing persistent network addressing system, the improved computer system comprising:
- a local computer that includes;
at least one processor;
a local routable address; and
a memory device that stores a persistent address application, the at least one processor being adapted by the persistent address application to;
receive a first request, from a requesting application, to send a first outbound data to a remote computer, the remote computer including;
at least one remote processor,a remote routable address, anda remote memory device;
send the first outbound data to the remote computer based at least in part on the local and remote routable addresses; and
present at least one of the following to the requesting application;
a local persistent address as the local routable address, wherein the local persistent address is configured to remain the same while the local routable address changes; and
a remote persistent address as the remote routable address, wherein the remote persistent address is configured to remain the same while the remote routable address changes;
wherein the persistent address application utilizes network implementation details while allowing the requesting application to bypass network implementation details.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved computer system for maintaining a network connection whereby a local computer stores a persistent address application, which adapts at least one processor to: receive a first request, from a requesting application, to send a first outbound data to a remote computer; and present a local persistent address as the local routable address; and/or a remote persistent address as the remote routable address; wherein the persistent address application utilizes network implementation details. A method for providing persistent network addressing by receiving, at a local computer a first request, from a requesting application, to send a first outbound data to a remote computer; sending the first outbound data to the remote computer; and presenting a local persistent address as the local routable address and/or a remote persistent address as the remote routable address; wherein the persistent address application utilizes network implementation details.
-
Citations
27 Claims
-
1. An improved computer system for maintaining a network connection with a remote computer by providing persistent network addressing system, the improved computer system comprising:
-
a local computer that includes; at least one processor; a local routable address; and a memory device that stores a persistent address application, the at least one processor being adapted by the persistent address application to; receive a first request, from a requesting application, to send a first outbound data to a remote computer, the remote computer including; at least one remote processor, a remote routable address, and a remote memory device; send the first outbound data to the remote computer based at least in part on the local and remote routable addresses; and present at least one of the following to the requesting application; a local persistent address as the local routable address, wherein the local persistent address is configured to remain the same while the local routable address changes; and a remote persistent address as the remote routable address, wherein the remote persistent address is configured to remain the same while the remote routable address changes; wherein the persistent address application utilizes network implementation details while allowing the requesting application to bypass network implementation details. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
3. The improved computer system for providing persistent network addressing of claim 2, wherein the improved computer system supports and the requesting application does not otherwise support at least one of the following:
- a network protocol, a NAT traversal method, an authentication method, an encryption method, or other network implementation details.
-
4. The improved computer system for providing persistent network addressing of claim 2, wherein the requesting application communicates via a network with the network implementation details.
-
5. The improved computer system for providing persistent network addressing of claim 2, wherein the requesting application observes a persistent address continuously even when a network configuration change occurs, consolidating the complexity of transitioning from a routable address to another or a set of network implementation details to another into an embodiment, thereby reducing errors in a requesting application that does not handle the network configuration change and reducing wasteful duplication of effort, code size or complexity in each requesting application that would otherwise have implemented support for the network configuration change.
-
6. The improved computer system for providing persistent network addressing of claim 1, further comprising a plurality of non-routable addresses,
wherein the at least one processor is further adapted by the persistent address application to set at least one of the following: -
the local persistent address to a first non-routable address, of the plurality of non-routable addresses; and the remote persistent address to a second non-routable address, of the plurality of non-routable addresses.
-
-
7. The improved computer system for providing persistent network addressing of claim 6,
wherein the plurality of non-routable addresses comprises at least one private network address. -
8. The improved computer system for providing persistent network addressing of claim 1,
wherein the first request is associated with a remote computer identifier, and the at least one processor is further adapted by the persistent address application to resolve the remote routable address from the remote computer identifier. -
9. The improved computer system for providing persistent network addressing of claim 8,
wherein the at least one processor is further adapted by the persistent address application to resolve the remote computer identifier by way of an associated relay device, the associated relay device comprising: -
at least one relay processor; a relay routable address; and a relay memory device that stores a relay application, the at least one relay processor being adapted by the relay application to; receive, from the local computer, a resolution request, the resolution request including the remote computer identifier; and send, to the local computer, a first set of connection parameters comprising a remote routable address.
-
-
10. The improved computer system for providing persistent network addressing of claim 9,
wherein the associated relay device further comprises a distributed hash table. -
11. The improved computer system for providing persistent network addressing of claim 9,
wherein the at least one processor is further adapted by the persistent address application to: -
receive a second request, from the requesting application, to send a second data to the remote computer; negotiate, with the remote computer or the associated relay device, a second set of connection parameters after detecting one of the following; the second data is unable to be delivered to the remote computer; the local routable address is about to change; and the remote routable address is about to change.
-
-
12. The improved computer system for providing persistent network addressing of claim 8,
wherein the remote computer identifier comprises a public key fingerprint. -
13. The improved computer system for providing persistent network addressing of claim 12,
wherein a selected one of the remote routable address, a first outbound data, a first inbound data, a subsequent outbound data, or a subsequent inbound data, is cryptographically authenticated based at least in part on the public key fingerprint. -
14. The improved computer system of claim 1, further comprising:
-
a memory device that stores a persistent address application, the at least one processor being adapted by the persistent address application to; receive a first request, from a requesting application, to send a first outbound data to a remote computer, the remote computer including; at least one remote processor; a remote routable address; and a remote memory device, wherein the first request is associated with a remote computer identifier, the remote computer identifier comprising a public key fingerprint; resolve the remote routable address from the remote computer identifier by way of an associated relay device, the associated relay device comprising; at least one relay processor; a relay routable address; and a relay memory device that stores a relay application, the at least one relay processor being adapted by the relay application to; receive, from the local computer, a resolution request, the resolution request including the remote computer identifier; and send, to the local computer, a first set of connection parameters including the remote routable address, wherein a selected one of the remote routable address, a first outbound data, a first inbound data, a subsequent outbound data, or a subsequent inbound data, is cryptographically authenticated based at least in part on the public key fingerprint; send the first outbound data to the remote computer based at least in part on the local and remote routable addresses, wherein the first outbound data is encrypted before it is sent to the remote computer; set at least one of the following; a local persistent address to a first non-routable address, of a plurality of non-routable addresses; and a remote persistent address to a second non-routable address, of the plurality of non-routable addresses; present at least one of the following to the requesting application; the local persistent address as the local routable address, wherein the local persistent address is configured to remain the same while the local routable address changes; and the remote persistent address as the remote routable address, wherein the remote persistent address is configured to remain the same while the remote routable address changes; receive a second request, from the requesting application, to send a second data to the remote computer; and negotiate, with the remote computer or the associated relay device, a second set of connection parameters after detecting one of the following; the second data is unable to be delivered to the remote computer; the local routable address is about to change; the remote routable address is about to change; and wherein the persistent address application utilizes network implementation details while allowing the requesting application to bypass network implementation details.
-
-
15. A method for providing persistent network addressing comprising:
-
receiving, at a local computer that includes; at least one processor; a local routable address; and a memory device that stores a persistent address application, a first request, from a requesting application, to send a first outbound data to a remote computer, the remote computer including; at least one remote processor; a remote routable address; and a remote memory device; sending, by way of the at least one processor being adapted by the persistent address application, the first outbound data to the remote computer based at least in part on the local and remote routable address; and presenting, by way of the at least one processor being adapted by the persistent address application, at least one of the following to the requesting application; a local persistent address as the local routable address, wherein the local persistent address is configured to remain the same while the local routable address changes; a remote persistent address as the remote routable address, wherein the remote persistent address is configured to remain the same while the remote routable address changes; and wherein the persistent address application utilizes network implementation details while allowing the requesting application to bypass network implementation details. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
23. The method for providing persistent network addressing of claim 22,
wherein the associated relay device further comprises a distributed hash table. -
24. The method for providing persistent network addressing of claim 22 further comprising:
-
receiving, at the at least one processor, a second request, from the requesting application, to send a second data to the remote computer; and negotiating, by way of the local computer with the remote computer or the associated relay device, a second set of connection parameters after detecting one of the following; the second data is unable to be delivered to the remote computer; the local routable address is about to change; and the remote routable address is about to change.
-
-
25. The method for providing persistent network addressing of claim 21,
wherein the remote computer identifier comprises a public key fingerprint. -
26. The method for providing persistent network addressing of claim 25 further comprising:
cryptographically authenticating the selected one of the remote routable address, a first outbound data, a first inbound data, a subsequent outbound data, or a subsequent inbound data, based at least in part on the public key fingerprint.
-
27. The method for providing persistent network addressing of claim 15 further comprising:
-
receiving, at a local computer that includes; at least one processor; a local routable address; and a memory device that stores a persistent address application, a first request, from a requesting application, to send a first outbound data to a remote computer, the remote computer including; at least one remote processor; a remote routable address; and a remote memory device, the at least one processor being adapted by the persistent address application to perform; sending the first outbound data to the remote computer based at least in part on the local and remote routable address; and presenting at least one of the following to the requesting application; a local persistent address as the local routable address, wherein the local persistent address is configured to remain the same while the local routable address changes; and a remote persistent address as the remote routable address, wherein the remote persistent address is configured to remain the same while the remote routable address changes, setting at least one of the following; the local persistent address to a first non-routable address, of a plurality of non-routable addresses; and the remote persistent address to a second non-routable address, of the plurality of non-routable addresses; associating the first request with a remote computer identifier; resolving, by way of the persistent address application adapting the at least one processor, the remote routable address from the remote computer identifier, by using an associated relay device, the associated relay device comprising; at least one relay processor; a relay routable address; and a relay memory device that stores a relay application, the at least one relay processor being adapted by the relay application to perform; receiving, from the remote computer, a resolution request, the resolution request including the remote computer identifier; and sending, to the local computer, a first set of connection parameters; wherein the plurality of non-routable addresses comprises at least one private network address, the remote computer identifier comprises a public key fingerprint, and the first set of connection parameters includes the remote routable address; receiving, at the at least one processor, a second request, from the requesting application, to send a second data to the remote computer; negotiating, by way of the local computer with the remote computer or the associated relay device, a second set of connection parameters after detecting one of the following; the second data is unable to be delivered to the remote computer; the local routable address is about to change; and the remote address is about to change; cryptographically authenticating a selected one of the remote routable address, a first inbound data, a subsequent outbound data, or a subsequent inbound data based at least in part on the public key fingerprint; encrypting the first outbound data before it is sent to the remote computer; and wherein the persistent address application utilizes network implementation details while allowing the requesting application to bypass network implementation details.
-
Specification