IP Library Granted Patent US 7,570,600
Granted Patent B1
US 7,570,600 · App. 10/738,431 · Granted Aug 4, 2009

Overlay network with efficient routing and recovery

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,570,600
App. No.
10/738,431
Granted
Aug 4, 2009
Kind
B1
Abstract

A network having a plurality of nodes interconnected by links (virtual communication channels) is disclosed. In one embodiment, the nodes may communicate with each other in a decentralized or peer-to-peer manner. A method for establishing the links among the nodes is disclosed. The links may be established such that the system is able to operate efficiently. In particular, the manner in which the nodes are interconnected by links may enable the system to efficiently route messages and efficiently recover from network failures.

Claims (60)

1. A computer-readable memory medium storing program instructions executable to implement a method comprising:

determining an ordering for a plurality of N nodes such that the nodes are circularly ordered as nodes D 0 , D 1 , D 2 , . . . D N−1 ;

each node D i in the plurality of nodes establishing a link to X other nodes chosen as nodes D i+1 , D i+2 , . . . D i+X , wrapping to D 0 if necessary; and

each node D j in at least a subset of the plurality of nodes establishing a link with one or more additional chosen nodes not in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+x ; and

for each node D j in the at least the subset, each node in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+x establishing a link with the one or more additional nodes chosen by the node D j .

2. The computer-readable memory medium of claim 1 ,

wherein said each node D j in the at least the subset establishing a link: with one or more additional chosen nodes not in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 . . . D j+X comprises each node D j in the at least the subset establishing a link with one or more randomly chosen nodes not in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+X .

3. The computer-readable memory medium of claim 2 , wherein said each node D j in the at least the subset establishing a link with one or more randomly chosen nodes comprises each node D j in the at least the subset establishing a link with exactly one randomly chosen node.

4. The computer-readable memory medium of claim 1 , wherein the plurality of nodes utilize the established links to communicate in a peer-to-peer manner.

5. The computer-readable memory medium of claim 1 , wherein the nodes are circularly ordered so that node D N−1 follows node D 0 in the ordering.

6. The computer-readable memory medium of claim 1 , wherein the method implemented by the program instructions further comprises:

selecting the nodes for the at least the subset of the plurality of nodes such that the at least the subset includes nodes whose position in the ordering is a multiple of 2X.

7. The computer-readable memory medium of claim 1 , wherein X is at least eighty percent smaller than N.

8. The computer-readable memory medium of claim 1 ,

wherein each node in the plurality of nodes has a unique node ill;

wherein said determining the ordering comprises determining an ordering based on the node IDs.

9. The computer-readable memory medium of claim 8 , wherein the node IDs are capable of being ordered;

wherein said determining the ordering based on the node IDs comprises ordering the node IDs;

wherein the node with the first node ID in the ordering is selected as node D 0 , wherein the node with the second node ID in the ordering is selected as node D 1 and so on, up to the node with the highest node ID in the ordering being selected as node D N−1 .

10. The computer-readable memory medium of claim 1 , wherein each link between two nodes comprises a virtual communication channel between the two nodes.

11. The computer-readable memory medium of claim 1 , wherein the established links comprise one or more TCP links and/or one or more UDP links.

12. The computer-readable memory medium of claim 1 , wherein the plurality of nodes are interconnected in a local area network (LAN).

13. The computer-readable memory medium of claim 1 , wherein the method implemented by the program instructions further comprises: one or more nodes in the plurality of nodes establishing one or more additional links to one or more other nodes.

14. The computer-readable memory medium of claim 1 , wherein the established links enable a message to be routed from any given first node to any given second node with an average efficiency on the order of log(N) message hops.

15. The computer-readable memory medium of claim 1 , wherein the established links enable recovery operations to be performed in the event of node failures with an average efficiency on the order of 3 message hops or less.

16. A computer-readable memory medium storing program instructions executable to implement a method comprising:

determining an ordering for a plurality of N nodes such that the nodes are circularly ordered as nodes D 0 , D 1 , D 2 . . . D N−1 ;

each node D i in the plurality of nodes establishing a link to X other nodes chosen as D i+1 , D i+2 , . . . D i+X , wrapping to D 0 if necessary; and

for each node D j in at least a subset of the plurality of nodes:

the node Dj establishing a link with one or more randomly chosen nodes not in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+X ;

each node in the set D j−x , D j−X+1 . . . D j−1 , D j+1 , D j+2 , . . . D j+X establishing a link with the one or more nodes randomly chosen by the node D j .

17. A computer-readable memory medium storing program instructions executable to implement a method comprising:

determining an ordering for a plurality of nodes such that the ordering has a first node, a second node, and so on, up to a last node, wherein the ordering is circular so that the first node follows the last node in the ordering;

each node establishing one or more links to one or more nodes immediately following the node in the ordering; and

for each respective node of at least a subset of the plurality of nodes, the respective node establishing one or more links to one or more randomly chosen nodes and each of the one or more nodes immediately following the respective node also establishing a link to each of the one or more nodes randomly chosen by the respective node.

18. A system comprising:

a plurality of N nodes;

wherein each node is operable to determine an ordering for the plurality of N nodes such that the nodes are circularly ordered as nodes D 0 , D 1 , D 2 , . . . D N−1 ;

wherein each node D i in the plurality of nodes is operable to establish a link to X other nodes chosen as nodes D i+1 , D i+2 , . . . D i+X , wrapping to D 0 if necessary; and

wherein each node D j in at least a subset of the plurality of nodes is operable to establish a link with one or more additional chosen nodes not in the set D j−X , D j−X+1 . . . D j−1 , D j+1 , D j+2 , . . . D j+x : and

wherein for each node D j in the at least the subset each node in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+X is operable to establish a link with the one or more additional nodes chosen by the node D j .

19. The system of claim 18 ,

wherein said each node D j in the at least the subset establishing a link with one or more additional chosen nodes not in the set D j−X , D j−X+1 , . . . D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+X comprises each node D j in the at least the subset establishing a link with one or more randomly chosen nodes not in the set D j−X , D j−X+1 , . . . D j−1 , D j+1 , D j+2 , . . . D j+X .

20. The system of claim 19 ,

wherein said each node D j in the at least the subset establishing a link with one or more randomly chosen nodes comprises each node D j in the at least the subset establishing a link with exactly one randomly chosen node.

21. The system of claim 18 ,

wherein the plurality of nodes are operable to utilize the established links to communicate in a peer-to-peer manner.

22. The system of claim 18 ,

wherein the at least the subset includes nodes whose position in the ordering is a multiple of 2X.

23. The system of claim 18 ,

wherein X is at least eighty percent smaller than N.

24. The system of claim 18 ,

wherein each node in the plurality of nodes has a unique node ID;

wherein said determining the ordering comprises determining an ordering based on the node IDs.

25. The system of claim 18 ,

wherein each link: between two nodes comprises a virtual communication channel between the two nodes.

26. The system of claim 18 ,

wherein the network comprises a local area network (LAN), wherein the LAN interconnects the plurality of nodes.

27. The system of claim 18 ,

wherein one or more nodes in the plurality of nodes are operable to establish one or more additional links to one or more other nodes.

Assignments (18)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2003
From: SLAUGHTER, GREGORY L.; SAULPAUGH, THOMAS E.; KWIATKOWSKI, MARC P.; JORAPURKAR, GIRISH
To: VERITAS OPERATING CORPORATION
Reel/Frame 014827/0129 →