Claims
- 1. A method of persistently identifying nodes in networks having transient network communities where a collection of the nodes making up the network may change over time, comprising steps of:
assigning an initial network address to each node upon its initial entry into the network; creating a persistent node identifier for each of the nodes, upon the initial entry of the node into the network; storing a mapping between the initial network address and the persistent node identifier; and using the persistent node identifier to resolve each node's identity upon its subsequent entry into the network, even though a different network address may be assigned to the node upon the subsequent entry.
- 2. The method according to claim 1, further comprising the steps of:
assigning, for a particular one of the nodes, the different network address to the particular node upon the subsequent entry of the particular node into the network; and using the persistent node identifier of the particular node to resolve the particular node's identity after assigning the different network address.
- 3. The method according to claim 1, further comprising the step of revising the stored mapping for a particular node, whenever the particular node re-enters the network with a different network address, such that the network address from the mapping for the particular node is replaced with the different network address.
- 4. The method according to claim 1, wherein the persistent node identifier of each node uniquely identifies a linkbase used by the node to store links.
- 5. The method according to claim 1, wherein the persistent node identifier for a particular node comprises the initial network address of the particular node, a date upon which the initial entry into the network occurred, a time at which the initial entry into the network occurred, and an identifier of a domain in which the initial entry occurred.
- 6. The method according to claim 5, wherein the persistent node identifiers are based on a Universal Unique Identifier (“UUID”) format.
- 7. The method according to claim 1, wherein the mapping for a particular node is stored in a resource set having mappings that persistently identify other nodes known by the particular node.
- 8. The method according to claim 1, further comprising the step of using the persistent node identifiers to track each node's behavior in the network.
- 9. The method according to claim 8, wherein the behavior for a particular node comprises how well the particular node responds to requests from other nodes.
- 10. The method according to claim 1, further comprising the step of using the persistent node identifier to track network traversal paths taken by content resources in the network.
- 11. The method according to claim 10, wherein the tracking step further comprises:
identifying, for a particular content resource, where the particular content resource entered the network, or, alternatively, was generated in the network; and identifying, for the particular content resource, each node through which the particular content resource passed on a selected network traversal, wherein the identifying steps use the persistent network identifiers for corresponding nodes.
- 12. The method according to claim 9, wherein the particular node's behavior is indicated on outbound messages sent from the particular node.
- 13. The method according to claim 11, wherein the network traversal path of the particular content resource is indicated on outbound messages which carry the particular content resource.
- 14. The method according to claim 2, further comprising the steps of:
broadcasting, by each node upon re-entry into the network, a message which identifies the node using its persistent network identifier and a current version of its network address; receiving, by other nodes in the network, the broadcast message; revising, by the receiving nodes, their stored mappings to reflect the current version of the re-entering node's network address.
- 15. The method according to claim 1, wherein the mapping are specified using Xlink notation.
- 16. The method according to claim 14, further comprising the step of consulting the stored mappings to identify previous behavior of a selected node.
- 17. The method according to claim 14, further comprising the step of consulting the stored mappings to track content created by, or forwarded by, a selected node.
- 18. The method according to claim 1, wherein the network is a peer-to-peer network.
- 19. A system for persistently identifying nodes in ad hoc networks, where a collection of the nodes making up the network may change over time, comprising:
means for assigning an initial network address to each node upon its initial entry into the network; means for creating a persistent node identifier for each of the nodes, upon the initial entry of the node into the network; means for storing a mapping between the initial network address and the persistent node identifier; means for revising the stored mapping, for each node that re-enters the network with a different network address, wherein the revision comprises replacing the initial network address with the different network address; and means for resolving the particular node's identity using its persistent node identifier after the particular node re-enters the network with the different network address.
- 20. The system according to claim 19, wherein the persistent node identifier of each node uniquely identifies a linkbase managed by the node.
- 21. The system according to claim 19, wherein the persistent node identifier for a particular node is created as a function of the initial network address of the particular node, a date upon which the initial entry into the network occurred, a time at which the initial entry into the network occurred, and an identifier of a domain in which the initial entry occurred.
- 22. The system according to claim 19, wherein the mappings are stored in a resource set having mappings that persistently identify the nodes in the network.
- 23. The system according to claim 19, further comprising means for using the persistent node identifiers to track each node's behavior in the network, wherein the behavior for a particular node comprises how well the particular node responds to requests from other nodes.
- 24. The system according to claim 19, further comprising means for using the persistent node identifier to track network traversal paths taken by content resources in the network, wherein the means for tracking further comprises:
means for identifying, for a particular content resource, where the particular content resource entered the network, or, alternatively, was generated in the network; and means for identifying, for the particular content resource, each node through which the particular content resource passed on a selected network traversal, wherein the means for identifying use the persistent network identifiers for corresponding nodes.
- 25. The system according to claim 23, wherein the particular node's behavior is indicated on outbound messages sent from the particular node.
- 26. The system according to claim 24, wherein the network traversal path of the particular content resource is indicated on outbound messages which carry the particular content resource.
- 27. The system according to claim 19, further comprising:
means for broadcasting, by each node upon re-entry into the network, a message which identifies the node using its persistent network identifier and a current version of its network address; means for receiving, by other nodes in the network, the broadcast message; and means for revising, by the receiving nodes, their stored mappings to reflect the current version of the re-entering node's network address.
- 28. A computer program product for persistently identifying nodes in ad hoc networks, where a collection of the nodes making up the network may change over time, the computer program product embodied on one or more computer-readable media and comprising:
computer-readable program code means for assigning an initial network address to each node upon its initial entry into the network; computer-readable program code means for creating a persistent node identifier for each of the nodes, upon the initial entry of the node into the network; computer-readable program code means for storing a mapping between the initial network address and the persistent node identifier; computer-readable program code means for revising the stored mapping, for each node that re-enters the network with a different network address, wherein the revision comprises replacing the initial network address with the different network address; and computer-readable program code means for resolving the particular node's identity using its persistent node identifier after the particular node re-enters the network with the different network address.
- 29. The computer program product according to claim 28, wherein the persistent node identifier for a particular node is created as a function of the initial network address of the particular node, a date upon which the initial entry into the network occurred, and an identifier of a domain in which the initial entry occurred.
- 30. The computer program product according to claim 28, wherein the mappings are stored in a resource set having mappings that persistently identify the nodes in the network.
- 31. The computer program product according to claim 28, further comprising computer-readable program code means for using the persistent node identifiers to track each node's behavior in the network, wherein the behavior for a particular node comprises how well the particular node responds to requests from other nodes and wherein the particular node's behavior is indicated on outbound messages sent from the particular node.
- 32. The computer program product according to claim 28, further comprising computer-readable program code means for using the persistent node identifier to track network traversal paths taken by content resources in the network, wherein the computer-readable program code means for tracking further comprises:
computer-readable program code means for identifying, for a particular content resource, where the particular content resource entered the network, or, alternatively, was generated in the network; and computer-readable program code means for identifying, for the particular content resource, each node through which the particular content resource passed on a selected network traversal, wherein the computer-readable program code means for identifying use the persistent network identifiers for corresponding nodes and wherein the network traversal path of the particular content resource is indicated on outbound messages which carry the particular content resource.
- 33. The computer program product according to claim 28, further comprising:
computer-readable program code means for broadcasting, by each node upon re-entry into the network, a message which identifies the node using its persistent network identifier and a current version of its network address; computer-readable program code means for receiving, by other nodes in the network, the broadcast message; and computer-readable program code means for revising, by the receiving nodes, their stored mappings to reflect the current version of the re-entering node's network address.
- 34. The computer program product according to claim 33, further comprising computer-readable program code means for consulting the stored mappings to identify previous behavior of a selected node.
- 35. The computer program product according to claim 33, further comprising computer-readable program code means for consulting the stored mappings to track content created by, or forwarded by, a selected node.
RELATED INVENTIONS
[0001] The present invention is related to the following commonly-assigned inventions, all of which were filed concurrently herewith and which are hereby incorporated herein by reference: U.S. Pat. No. ______ (Ser. No. ______, titled “Content Tracking in Transient Communities”; U.S. Pat. No. ______ (Ser. No. ______), titled “Broadcast Tiers in Decentralized Networks”; U.S. Pat. No. ______ (Ser. No. ______), titled “Providing Management Functions in Decentralized Networks”; U.S. Pat. No. ______ (Ser. No. ______), titled “Persisting Node Reputations in Transient Communities”; and U.S. Pat. No. ______ (Ser. No. ______), titled “Managing Storage Resources in Decentralized Networks”.