IP Library Granted Patent US 9,055,082
Granted Patent B2
US 9,055,082 · App. 12/868,454 · Granted Jun 9, 2015

Peer to peer localization for content in a distributed hash table

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,055,082
App. No.
12/868,454
Granted
Jun 9, 2015
Kind
B2
Abstract

Provided is a method for localizing content in a peer-to-peer network. The method includes receiving a message announcing first content. Storing a <key, value> pair in a table based on the message. The key represents content information and the value represents node information. The node information identifies a node announcing the content, and the content information identifying the content. Storing a plurality of first variation keys in the table. Each of the plurality of first variation keys being a variation of the stored first key. The method further includes intercepting a request message and sending a response to a sender of the request message. The response message including the list of nodes, the list of nodes based on a key based on a destination address of the request message and the table.

Claims (66)

1. A method for localizing content in a peer-to-peer network, the method comprising:

intercepting, by a node of the peer-to-peer network, a request message, the request message being a request for content, the request message including a destination address;

determining, by the node, a first key based on the destination address;

determining, by the node, a list of nodes based on the first key and a table,

the table including a plurality of entries, each entry having one of a key and a variation key of a plurality of variation keys, at least one key being based on an announce message, the key representing content information, the key having an associated value representing node information, the node information identifying a node announcing content, and the content information identifying the content and each variation key being a variation of one of the keys, each of the plurality of variation keys being generated by varying at least one of the node information and the content information, and at least one entry in the table further includes characteristic information, the characteristic information including node related information and content related information, and

the determining the list of nodes includes,

determining which entries in the table have keys or variation keys matching the first key,

generating the list of nodes from the determined entries such that nodes associated with the determined entries have characteristic information indicating the requested content, and

filtering the list of nodes such that the list of nodes only includes nodes associated with the network associated with the sender of the request message; and

sending, by the node, to a sender of the request message, a response message, the response message including the list of nodes.

2. The method of claim 1 , wherein, for each of the plurality of variation keys, a first series of bits in each of the plurality of variation keys includes at least 24 bits in common with the first series of bits in the first key.

3. The method of claim 1 , further comprising:

intercepting, by the node, a second message announcing second content, the second message including a destination address; and

storing, by the node, characteristic information associated with the second message in relation to one of the plurality of variation keys if a first series of bits in a key generated based on the destination address matches a first series of bits in one of the plurality of variation keys.

4. The method of claim 3 , wherein if the first series of bits in the key generated based on the destination address does not match the first series of bits in one of the plurality of first variation keys, the method further comprises:

storing, by the node, a second key in the table based on the second message, the second key representing second node information and second content information, the second node information identifying a second node announcing the second content, and the second content information identifying the second content; and

storing, by the node, a plurality of second variation keys in the table, each of the plurality of second variation keys being a variation of the stored second key.

5. The method of claim 1 , further comprising:

deleting the first key from the table after a threshold period of time expires.

6. The method of claim 1 , wherein storing the plurality of first variation keys includes storing at least 256 variation keys.

7. The method of claim 1 , wherein

at least one key includes a bit sequence based on a function of the content information, the bit sequence including a first series of bits representing a prefix and a second series of bits representing content associated with the announce message, and

at least one variation key includes a varied subset of the first series of bits of the at least one key.

8. The method of claim 7 , wherein the bit sequence is determined based on a hashing function of the first node information and the first content information.

9. The method of claim 1 , wherein

the node related information includes, at least one of an internet service provider of a node associated with the announce message, a name of the node associated with the announce message, an address of the node associated with the announce message, and a port of the node associated with the announce message; and

the content related information includes at least one of a description of the content, a type of the content, a size of the content, a pointer to the peer holding the content and a storage location associated with the node associated with the announce message.

10. The method of claim 1 , wherein if the filtered list of nodes is less than a threshold number, additional nodes are added to the list of nodes, the additional nodes include nodes filtered from the list of nodes.

11. A non-transitory computer-readable medium including program code that when executed by a processor, configures the processor to:

intercept a request message, the request message being a request for content, the request message including a destination address;

determine a first key based on the destination address;

determine a list of nodes based on the first key and a table,

the table including a plurality of entries, each entry having one of a key and a variation key, at least one key being based on an announce message, the key representing content information, the key having an associated value representing node information, the node information identifying a node announcing content, and the content information identifying the content and each variation key being a variation of one of the keys, each variation key being generated by varying at least one of the node information and the content information, and at least one entry in the table further includes characteristic information, the characteristic information including node related information and content related information, and

in the determining the list of nodes, the processor is configured to,

determine which entries in the table have keys or variation keys matching the first key,

generate the list of nodes from the determined entries such that nodes associated with the determined entries have characteristic information indicating the requested content, and

filter the list of nodes such that the list of nodes only includes nodes associated with the network associated with the sender of the request message; and

send to a sender of the request message, a response message, the response message including the list of nodes.

12. A node of a peer-to-peer network, the node comprising:

a memory configured to store a table; and

a processor configured to,

intercept a request message, the request message being a request for content, the request message including a destination address;

determine a first key based on the destination address;

determine a list of nodes based on the first key and the table,

the table including a plurality of entries, each entry having one of a key and a variation key, at least one key being based on an announce message, the key representing content information, the key having an associated value representing node information, the node information identifying a node announcing content, and the content information identifying the content and each variation key being a variation of one of the keys, each variation key being generated by varying at least one of the node information and the content information, and at least one entry in the table further includes characteristic information, the characteristic information including node related information and content related information, and

in the determining the list of nodes, the processor is configured to,

determine which entries in the table have keys or variation keys matching the first key,

generate the list of nodes from the determined entries such that nodes associated with the determined entries have characteristic information indicating the requested content, and

filter the list of nodes such that the list of nodes only includes nodes associated with the network associated with the sender of the request message; and

send to a sender of the request message, a response message, the response message including the list of nodes.

13. The node of claim 12 , wherein

at least one key includes a bit sequence based on a function of the content information, the bit sequence including a first series of bits representing a prefix and a second series of bits representing content associated with the announce message, and

at least one variation key includes a varied subset of the first series of bits of the at least one key.

14. The node of claim 13 , wherein the bit sequence is determined based on a hashing function of the first node information and the first content information.

15. The node of claim 12 , wherein

the node related information includes, at least one of an internet service provider of a node associated with the announce message, a name of the node associated with the announce message, an address of the node associated with the announce message, and a port of the node associated with the announce message; and

the content related information includes at least one of a description of the content, a type of the content, a size of the content, a pointer to the peer holding the content and a storage location associated with the node associated with the announce message.

16. The node of claim 12 , wherein if the filtered list of nodes is less than a threshold number, additional nodes are added to the list of nodes, the additional nodes include nodes filtered from the list of nodes.

17. The node of claim 12 , wherein, for each of the plurality of variation keys, a first series of bits in each of the plurality of variation keys includes at least 24 bits in common with the first series of bits in the first key.

18. The node of claim 12 , wherein the processor is further configured to:

Intercept a second message announcing second content, the second message including a destination address; and

store characteristic information associated with the second message in relation to one of the plurality of variation keys if a first series of bits in a key generated based on the destination address matches a first series of bits in one of the plurality of variation keys.

19. The node of claim 18 , wherein if the first series of bits in the key generated based on the destination address does not match the first series of bits in one of the plurality of variation keys, the processor is further configured to:

store a second key in the table based on the second message, the second key representing second node information and second content information, the second node information identifying a second node announcing the second content, and the second content information identifying the second content; and

store a plurality of second variation keys in the table, each of the plurality of second variation keys being a variation of the stored second key.

20. The node of claim 12 , wherein the processor is configured to store the plurality of variation keys including storing at least 256 variation keys.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jun 3, 2021
From: TERRIER SSC, LLC
To: WSOU INVESTMENTS, LLC
Reel/Frame 056526/0093 →
SECURITY INTEREST Recorded Jun 1, 2021
From: WSOU INVESTMENTS, LLC
To: OT WSOU TERRIER HOLDINGS, LLC
Reel/Frame 056990/0081 →
RELEASE OF SECURITY INTEREST Recorded May 21, 2019
From: OCO OPPORTUNITIES MASTER FUND, L.P. (F/K/A OMEGA CREDIT OPPORTUNITIES MASTER FUND LP
To: WSOU INVESTMENTS, LLC
Reel/Frame 049246/0405 →
SECURITY INTEREST Recorded May 20, 2019
From: WSOU INVESTMENTS, LLC
To: BP FUNDING TRUST, SERIES SPL-VI
Reel/Frame 049235/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: ALCATEL LUCENT
To: WSOU INVESTMENTS, LLC
Reel/Frame 044000/0053 →
SECURITY INTEREST Recorded Sep 21, 2017
From: WSOU INVESTMENTS, LLC
To: OMEGA CREDIT OPPORTUNITIES MASTER FUND, LP
Reel/Frame 043966/0574 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033949/0016 →
SECURITY INTEREST Recorded Mar 7, 2013
From: ALCATEL-LUCENT USA INC.
To: CREDIT SUISSE AG
Reel/Frame 030510/0627 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2011
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 027003/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2010
From: STEINER, MORITZ; VARVELLO, MATTEO
To: ALCATEL-LUCENT USA INC.
Reel/Frame 025306/0749 →