7730207

Routing in Peer-To-Peer Networks

PublishedJune 1, 2010
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
21 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method comprising: storing, in a non-transitory memory communicatively coupled to a processor, processor-executable instructions for performing the method; executing the instructions on the processor; according to the instructions being executed: receiving at one of a plurality of nodes in a peer-to-peer network, an indication of a change in membership by another said node in the peer-to-peer network; updating, in response to the receipt of the indication, at least one soft state routing table entry in a soft state routing table (SSRT) having a plurality of said SSRT entries, each referencing a corresponding node from among said plurality of nodes, wherein the said SSRT entries describe a current membership of the system; broadcasting a report that describes the change to each said node referenced in an SSRT used by the one said node, wherein the report is only formed after aggregating a plurality of said indications received from two or more nodes indicating a change in membership of the two or more nodes; maintaining a finger table having a plurality of finger table entries, wherein the SSRT is a finger table having a plurality of finger table entries, wherein each said finger table entry references successively farther nodes by following a logarithmic function, wherein the logarithmic function is a prefix routing algorithm of the form log(N) where N is a total number of nodes in the peer-to-peer network; updating a leafset table that defines a hash space for the node, the hash space having information about resources provided in the peer-to-peer network, the leafset table enabling a guarantee of the integrity of a key space of the network and giving priority to node-leaving indications over node-joining indications.

2

2. The method as described in claim 1 , wherein the indication is a join or leave event regarding the other said node in the peer-to-peer network, and wherein the report is broadcast to every node in the routing table in parallel at a pre-defined broadcast interval.

3

3. The method as described in claim 1 , further comprising forming the report by determining whether the indication has previously been received by the one said node, and if not, including the indication in the report, and wherein a reference to a successively farther node in the finger table is found by flipping a bit of a node identifier and using a result of flipping the bit to acquire an address to another node and pointing to the another node.

4

4. The method as described in claim 1 , wherein the routing table does not reference at least one other said node of the plurality of nodes, and wherein each node maintains a plurality of routing tables where each routing table comprises a different hierarchy of nodes where each hierarchy is a different set of nodes with a different set of similar addresses.

5

5. The method as described in claim 1 , wherein the broadcasting is performed when a predetermined broadcast time has been reached, and wherein the report is only broadcast to approximately Log b(N) number of nodes where N is the total number of nodes in the peer-to-peer network and where b is any number.

6

6. The method as described in claim 1 , wherein each said node is provided by a computing device, wherein the leafset table defines a plurality of zones, wherein resources are associated with keys, wherein a key is hashed to find a particular zone of the plurality of zones, each zone representing a portion of the total resources shared in the network, and wherein the DHT stores key and value pairs.

7

7. In a node configured for inclusion in a peer-to-peer network, the network having a plurality of said nodes, a method comprising: storing, in a non-transitory memory communicatively coupled to a processor, processor-executable instructions for performing the method; executing the instructions on the processor; according to the instructions being executed: receiving, at the node, an indication broadcast by another said node; updating, in response to the receipt of the indication, at least one soft state routing table entry in a soft state routing table (SSRT) having a plurality of said SSRT entries each referencing a corresponding said node, wherein the said SSRT entries describe the current membership of the system; updating a leafset table that defines a hash space for the node, the hash space having information about resources provided in the peer-to-peer network, the leafset table enabling a guarantee of the integrity of a key space of the network; maintaining the leafset table by periodically probing at least one other said node; and maintaining a finger table having a plurality of finger table entries, wherein each said finger table entry describes a location of a corresponding node, wherein each said finger table entry references a successive node by following a logarithmic function, wherein the logarithmic function is a prefix routing algorithm of the form log(N) where N is a total number of nodes in the peer-to-peer network, wherein the finger table is maintained by probing each said corresponding node referenced in the finger table entries of the finger table, and wherein node-leaving indications are given priority over node-joining indications.

8

8. The method as described in claim 7 , wherein the indication is a join or leave event.

9

9. The method as described in claim 7 , wherein the indication is broadcast by the other said node after examining a finger table, and wherein the indication is broadcast a fixed number of times in addition to a first time to provide redundancy and communicating less than a predetermined number of events over a given period of time.

10

10. The method as described in claim 9 , further comprising: determining whether each said indication has previously been received by the node, and if not, performing the updating; and queuing each said indication in a queue if the predetermined number of events have already been communicated over the given period of time, and sending each said indication which has been queued after the expiration of the given period of time.

11

11. A method comprising: storing, in a non-transitory memory communicatively coupled to a processor, processor-executable instructions for performing the method; executing the instructions on the processor; according to the instructions being executed: determining, on a node for inclusion in a peer-to-peer network, available resources of the node for communicating in the peer-to-peer network when the node joins the network, wherein the resources are at least one of hardware, software, or network resources of the node; determining at periodic intervals available resources of at least one other node in the peer-to-peer network; and forming a routing table on the node, based on the determination of available resources of the node and the at least one other node, for routing requests in the peer-to-peer network, wherein the forming comprises deriving a number of entries in the routing table based on the determination, and wherein the number of entries in the routing table is based on the resources of the node; updating a leafset table that defines a hash space for the node, the hash space having information about resources provided in the peer-to-peer network, the leafset table enabling a guarantee of integrity of a key space of the network; maintaining the leafset table by periodically probing at least one other node; and maintaining a finger table having a plurality of finger table entries, wherein each said finger table entry describes a location of a corresponding node, wherein each said finger table entry references a successive node by following a logarithmic function, wherein the logarithmic function is a prefix routing algorithm of the form log(N) where N is a total number of nodes in the peer-to-peer network, and wherein node-leaving indications are given priority over node-joining indications.

12

12. The method as described in claim 11 , wherein the number of entries in the routing table is also based on the resources of the at least one other node.

13

13. A non-transitory computer-readable media comprising computer executable instructions that, when executed by a computer, direct the computer to perform a method, the method comprising: storing, in the non-transitory computer-readable memory, communicatively coupled to a processor, processor-executable instructions for performing the method; executing the instructions on the processor; according to the instructions being executed: determine when a change in membership in a peer-to-peer network has occurred with respect to one or more of a plurality of nodes, wherein the plurality of nodes in the network employ a distributed hash table for dividing a resource space provided by the plurality of nodes into a plurality of zones; and when the change has occurred, broadcast a report to a subset of the plurality of nodes, wherein: the report describes the change in membership; and the subset is established by examining a routing table that references each said node in the subset, wherein the routing table is configured as a finger table having a plurality of finger table entries, each said finger table entry describing a location of a corresponding successively farther node by following a logarithmic function, wherein the logarithmic function is a prefix routing algorithm of the form log(N) where N is a total number of nodes in the peer-to-peer network, and wherein node-leaving indications are given priority over node-joining indications; updating a leafset table that defines a hash space for the node, the hash space having information about resources provided in the peer-to-peer network, the leafset table enabling a guarantee of the integrity of a key space of the network; and maintaining the leafset table by periodically probing at least one other said node.

14

14. The non-transitory computer-readable media as described in claim 13 , wherein the table is maintained by probing each said node referenced in the subset.

15

15. A system comprising a plurality of nodes arranged in a peer-to-peer network each including a processor for executing computer instructions, comprising: a soft-state routing table (SSRT) within each of said nodes, each SSRT having a plurality of SSRT entries that reference a set of said nodes; a leafset table that defines a hash space for resources provided in the peer-to-peer network, wherein the leafset table defines a hash space for the node, the hash space having information about resources provided in the peer-to-peer network, wherein the leafset table enables a guarantee of the integrity of a key space of the network, and wherein the leafset table is maintained by periodically probing at least one other said node; a finger table having a plurality of finger table entries, wherein each said finger table entry references successively farther nodes by following a logarithmic function, wherein successively farther nodes are found by flipping a bit of a node identifier to find a successive node identifier and then pointing to a successive node having the successive node identifier, and wherein the logarithmic function is a prefix routing algorithm of the form log(N) where N is a total number of nodes in the peer-to-peer network, and wherein node-leaving indications are given priority over node-joining indications; a reference on each said SSRT entry to a respective said node from the set of said nodes; and an update corresponding to each said SSRT entry, produced by execution of the computer instructions by the processor, upon receipt of an indication broadcast from at least one said node included in the set of said nodes.

16

16. The system as described in claim 15 , wherein the indication is a join or leave event.

17

17. The system as described in claim 15 , wherein the indication is configured for broadcast by the at least one said node by examining a finger table of the at least one said node.

18

18. A node for inclusion in a peer-to-peer network having a plurality of nodes, each of which is locatable via an identifier that is divisible into a plurality of blocks, a block being a segment of the identifier, the node comprising: a processor; and non-transitory memory, coupled to the processor and configured to maintain: a leafset table that defines a hash space for resources provided in the peer-to-peer network, the leafset table enabling a guarantee of the integrity of a key space of the network.

19

19. The node as described in claim 18 , wherein: the leafset table and the finger table are configured to be updated via probing; and the SSRT is configured to be updated via receipt of a broadcast of an indication from one or more said nodes referenced by the SSRT entries.

20

20. The node as described in claim 19 , wherein the indication is configured for broadcast by at least one said node by examining a finger table included in the at least one said node.

21

21. The node as described in claim 18 , wherein a number of the SSRT entries in the SSRT is determined based on available resources of the node compared with other said nodes in the peer-to-peer network.

Patent Metadata

Filing Date

Unknown

Publication Date

June 1, 2010

Inventors

Zheng Zhang
Qiao Lian
Yu Chen

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “ROUTING IN PEER-TO-PEER NETWORKS” (7730207). https://patentable.app/patents/7730207

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.