IP Library Granted Patent US 7,764,681
Granted Patent B2
US 7,764,681 · App. 11/763,247 · Granted Jul 27, 2010

Topology and routing model for a computer network

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 7,764,681
App. No.
11/763,247
Granted
Jul 27, 2010
Kind
B2
Abstract

Various embodiments of a system and method related to a topology and routing model for a peer-to-peer network are disclosed. A plurality of nodes may be coupled to each other to form a peer-to-peer network. A routing table may be created on each node in the peer-to-peer network. Each node may be operable to route messages to other nodes in the peer-to-peer network using information stored in the routing table. Messages may be propagated among nodes in the peer-to-peer network in a decentralized manner. For example, the peer-to-peer network may not utilize centralized servers of any kind. Each node in the peer-to-peer network may perform substantially the same routing functionality.

Claims (82)

1. A method for sending messages in a peer-to-peer network including a plurality of nodes, the method comprising:

associating a location-independent address with a first node in the peer-to-peer network;

sending a first message to the location-independent address, wherein the nodes in the peer-to-peer network are operable to route the first message to the first node with which the location-independent address is associated;

re-associating the location-independent address with a second node in the peer-to-peer network instead of the first node in response to a request from the second node; and

sending a second message to the location-independent address after re-associating the location-independent address with the second node, wherein the nodes in the peer-to-peer network are operable to route the second message to the second node with which the location-independent address is associated;

wherein re-associating the location-independent address with the second node in the peer-to-peer network comprises associating a first instance of the location-independent address with the second node, wherein the method further comprises:

associating a second instance of the location-independent address with a third node in the peer-to-peer-network; and

sending a third message to the location-independent address after associating the second instance of the location-independent address with the third node, wherein the nodes in the peer-to-peer network are operable to route the third message to both the second node which the first instance of the location independent address is associated and the third node with which the second instance of the location independent address is associated.

2. The method of claim 1 , further comprising:

storing routing information on each of the plurality of nodes;

wherein the nodes in the peer-to-peer-network are operable to route the first message to the first node with which the location-independent address is associated based on the routing information stored on the nodes.

3. The method of claim 2 ,

wherein each of the plurality of nodes has one or more links to one or more other nodes in the peer-to-peer-network;

wherein for each particular node in at least a. subset of the nodes, the routing information on the particular node specifies a link by which to forward the first message.

4. The method of claim 1 , further comprising:

the second node sending the third message to the first node before said re-associating the location-independent address with the second node, wherein the third message includes a request to acquire the location-independent address;

wherein the location-independent address is re-associated with the second node instead of the first node in response to the request to acquire the location-independent address in the third message.

5. The method of claim 1 , further comprising:

storing routing information on a fourth node in the peer-to-peer network, wherein the routing information specifies that the fourth node should forward messages addressed to the location-independent address over both a first link to a fifth node and a second link to a sixth node;

wherein, when the nodes in the peer-to-peer network route the third message to, both the second node with which the first instance of the location independent address is associated and the third node with which the second instance of the location independent address is associated, the fourth node is operable to:

receive the third message from a seventh node; and

forward the third message over both the first link to the fifth node and the second link to the sixth node, based on the routing information stored on the fourth node.

6. The method of claim 1 ,

wherein the first message is sent to the location-independent address using a “sender to receiver back to sender” network protocol that directly supports a response to the first message.

7. The method of claim 1 ,

wherein the first message originates from the third node;

wherein the first message is propagated from the third node to the first node through a path including a subset of the nodes in the peer-to-peer network;

wherein the method further comprises the first node returning one or more responses to the first message, wherein the responses are returned to the third node via the same path by which the first message is propagated from the third node to the first node.

8. A computer-readable storage medium including program instructions executable to implement a method for sending messages in a peer-to-peer network including a plurality of nodes, wherein the method comprises:

associating a location-independent address with a first node in the peer-to-peer network;

sending a first message to the location-independent address, wherein the first message is routed to the first node with which the location-independent address is associated;

re-associating the location-independent address with a second node in the peer-to-peer network instead of the first node in response to a request from the second node; and

sending a second message to the location-independent address after re-associating the location independent address with the second node, wherein the second message is routed to the second node with which the location-independent address is associated;

wherein re-associating the location-independent address with the second node in the peer-to-peer network comprises associating a first instance of the location-independent address with the second node, wherein the method further comprises:

associating a second instance of the location-independent address with a third node in the peer-to-peer-network; and

sending a third message to the location-independent address after associating the second instance of the location-independent address with the third node, wherein the nodes in the peer-to-peer network are operable to route the third message to both the second node which the first instance of the location independent address is associated and the third node with which the second instance of the location independent address is associated.

9. The computer-readable storage medium of claim 8 , wherein the method further comprises:

storing routing information on each of the plurality of nodes;

wherein the first message is routed to the first node with which the location-independent address is associated based on the routing information stored on the nodes.

10. The computer-readable storage medium of claim 9 ,

wherein each of the plurality of nodes has one or more links to one or more other nodes in the peer-to-peer network;

wherein for each particular node in at least a subset of the nodes, the routing information on the particular node specifies a link by which to forward the first message.

11. The computer-readable storage medium of claim 8 , wherein the method further comprises:

the second node sending the third message to the first node before said re-associating the location-independent address with the second node, wherein the third message includes a request to acquire the location-independent address;

wherein the location-independent address is re-associated with the second node instead of the first node in response to the request to acquire the location-independent address in the third message.

12. The computer-readable storage medium of claim 8 ,

wherein the first message originates from the third node;

wherein the first message is propagated from the third node to the first node through a path including a fourth node in the peer-to-peer network;

wherein the method further comprises the fourth node storing routing information mapping the location independent address to a first link before the first message is sent to the location independent address;

wherein said propagating the first message through the path comprises:

the fourth node in the path receiving the first message;

the fourth node detecting a failure of the first link;

the fourth node storing new routing information in response to detecting the failure of the first link, wherein the new routing information maps the location independent address to a second link; and

the fourth node forwarding the first message over the second link.

13. A peer-to-peer network comprising:

a plurality of nodes;

wherein the nodes are operable to execute program instructions to implement a method comprising:

associating a location-independent address with a first node in the peer-to-peer network;

sending a first message to the location-independent address, wherein the nodes in the peer-to-peer network are operable to route the first message to the first node with which the location-independent address is associated;

re-associating the location-independent address with a second node in the peer-to-peer network instead of the first node in response to a request from the second node; and

sending a second message to the location-independent address after re-associating the location-independent address with the second node, wherein the nodes in the peer-to-peer network are operable to route the second message to the second node with which the location-independent address is associated,

wherein re-associating the location-independent address with the second node in the peer-to-peer network comprises associating a first instance of the location-independent address with the second node, wherein the method further comprises:

associating a second instance of the location-independent address with a third node in the peer-to-peer network; and

sending a third message to the location-independent address after associating the second instance of the location-independent address with the third node, wherein the nodes in the peer-to-peer network are operable to route the third message to both the second node with which the first instance of the location independent address is associated and the third node with which the second instance of the location independent address is associated.

14. The peer-to-peer network of claim 13 , wherein the method further comprises:

storing routing information on each of the plurality of nodes;

wherein the nodes in the peer-to-peer network are operable to route the first message to the first node with which the location-independent address is associated based on the routing information stored on the nodes.

15. The peer-to-peer network of claim 14 ,

wherein each of the plurality of nodes has one or more links to one or more other nodes in the peer-to-peer network;

wherein for each particular node in at least a subset of the nodes, the routing information on the particular node specifies a link by which to forward the first message.

16. The peer-to-peer network of claim 13 , wherein the method further comprises:

the second node sending the third message to the first node before said re-associating the location-independent address with the second node wherein the third message includes a request to acquire the location-independent address;

wherein the location-independent address is re-associated with the second node instead of the first node in response to the request to acquire the location-independent address in the third message.

17. The peer-to-peer network of claim 13 ,

wherein the first message originates from the third node;

wherein the first message is propagated from the third node to the first node through a path including a fourth node in the peer-to-peer network;

wherein the method further comprises the fourth node storing routing information mapping the location independent address to a first link before the first message is sent to the location independent address;

wherein said propagating the first message through the path comprises:

the fourth node in the path receiving the first message;

the fourth node detecting a failure of the first link;

the fourth node storing new routing information in response to detecting the failure of the first link, wherein the new routing information maps the location independent address to a second link; and

the fourth node forwarding the first message over the second link.

Assignments (6)
SECURITY INTEREST Recorded Jan 11, 2017
From: MOTHEYE TECHNOLOGIES, LLC; SYNCHRONICITY IP LLC; TRAVERSE TECHNOLOGIES CORP.; 3D NANOCOLOR CORP.; BISMARCK IP INC.; MAGNUS IP GMBH; MUNITECH IP S.À.R.L.; VERMILION PARTICIPATIONS; MARATHON VENTURES S.À.R.L; NYANZA PROPERTIES; MARATHON IP GMBH; ORTHOPHOENIX, LLC; MEDTECH DEVELOPMENT DEUTSCHLAND GMBH; SYNCHRONICITY IP GMBH; TLI COMMUNICATIONS GMBH
To: DBD CREDIT FUNDING LLC, AS COLLATERAL AGENT
Reel/Frame 041333/0001 →
SECURITY INTEREST Recorded Feb 2, 2015
From: MARATHON PATENT GROUP, INC.; CLOUDING CORP.
To: DBD CREDIT FUNDING, LLC
Reel/Frame 034873/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2014
From: SYMANTEC CORPORATION
To: CLOUDING IP, LLC
Reel/Frame 033707/0959 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2014
From: CLOUDING IP, LLC
To: CLOUDING CORP.
Reel/Frame 033709/0456 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Feb 21, 2008
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 020540/0248 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →