System and method for a distributed server for peer-to-peer networks
First Claim
1. A computer-implemented method for cooperatively managing a routed IP address space in the absence of managed network services, comprising:
- identifying cooperative agents on a backbone network;
selecting a backbone address for a current cooperative agent on the backbone network;
wherein selecting the backbone address for the current cooperative agent includes comparing a portion of a selected backbone address for the current cooperative agent with the same portion of a selected backbone address of each of the identified cooperative agents on the backbone network;
selecting a client subnet address that corresponds to the current cooperative agent;
receiving a notification of an allocated client subnet address from another cooperative agent;
wherein relevance of the received notification is determined according to at least one of a timestamp included in the received notification and a hop count associated with the received notification;
notifying other cooperative agents on the backbone network of the client subnet address selection;
determining the relevance of the received notification;
forwarding the received notification to neighboring cooperative agents when the received notification is determined as relevant; and
discarding the received notification when the received notification is determined as irrelevant.
2 Assignments
0 Petitions
Accused Products
Abstract
A logical distributed server is generated for managing (Internet Protocol (IP) address allocation for an ad-hoc, self-forming peer-to-peer (P2P) network. The logical distributed server is generated according to messaging scheme where nodes on the P2P network allocate addresses for themselves and for clients connected to them. Each node implements a server that listens on the incoming client connections. Each node maintains data structures that represent the current state of an address database. Routing requests are fielded by the nodes from the clients and the messaging scheme is used to inform other nodes of its action so a consistent address space is maintained between all the nodes on the P2P network.
-
Citations
21 Claims
-
1. A computer-implemented method for cooperatively managing a routed IP address space in the absence of managed network services, comprising:
-
identifying cooperative agents on a backbone network; selecting a backbone address for a current cooperative agent on the backbone network;
wherein selecting the backbone address for the current cooperative agent includes comparing a portion of a selected backbone address for the current cooperative agent with the same portion of a selected backbone address of each of the identified cooperative agents on the backbone network;selecting a client subnet address that corresponds to the current cooperative agent; receiving a notification of an allocated client subnet address from another cooperative agent;
wherein relevance of the received notification is determined according to at least one of a timestamp included in the received notification and a hop count associated with the received notification;notifying other cooperative agents on the backbone network of the client subnet address selection; determining the relevance of the received notification; forwarding the received notification to neighboring cooperative agents when the received notification is determined as relevant; and discarding the received notification when the received notification is determined as irrelevant. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-readable medium that includes computer-executable instructions for cooperatively managing a routed IP address space in the absence of managed network services, the instructions executing on a processor performing a method, comprising:
-
identifying neighboring mesh nodes on a mesh network;
wherein identifying mesh nodes on the mesh network further comprises broadcasting a discovery message that determines whether other mesh nodes are within communication range of the current mesh node;
wherein the discovery message includes an indication of randomly selected portion of the mesh-facing address for the current mesh node for comparison with the same portion of mesh-facing addresses selected by other mesh nodes;
wherein a conflict between the randomly selected portion of the mesh-facing address for the current mesh node and the same portion for another mesh node is resolved by setting both portions to a single common value;obtaining routing tables corresponding to any neighboring mesh nodes, wherein the routing tables include address allocations made by the neighboring mesh nodes; selecting a mesh-facing address for a current mesh node on the mesh network;
wherein selecting the mesh-facing address for the current mesh node includes comparing a portion of a selected mesh-facing address for the current mesh node with the same portion of a selected mesh-facing address of each of the identified mesh nodes on the mesh network;selecting a client subnet range of addresses that corresponds to the current mesh node; and notifying other mesh nodes on the mesh network of the client subnet range selection by the current mesh node. - View Dependent Claims (15, 16)
-
-
17. A system for cooperatively managing a routed IP address space in the absence of managed network services, comprising:
-
a mesh network having mesh nodes included therein; and a logical server distributed across the mesh network that is configured to execute computer-executable instructions on each of the mesh nodes, the computer-executable instructions comprising; identifying neighboring mesh nodes on the mesh network by broadcasting a discovery message that determines whether other mesh nodes are within communication range of the current mesh node;
wherein the discovery message includes an indication of a selected portion of the mesh-facing address for the current mesh node for comparison with the same portion of mesh-facing addresses selected by other mesh nodes;
wherein the selected portion of the mesh-facing address is randomly selected;
wherein the discovery message includes an indication of randomly selected portion of the backbone address for the current mesh node for comparison with the same portion of backbone addresses selected by other mesh nodes;
wherein a conflict between the randomly selected portion of the backbone address for the current mesh node and the same portion for another mesh node is resolved by setting both portions to a single common value;obtaining routing tables corresponding to any neighboring mesh nodes, wherein the routing tables include address allocations made by the neighboring mesh nodes; selecting a mesh-facing address for a current mesh node on the mesh network; selecting a client subnet range of addresses that corresponds to the current mesh node; and notifying other mesh nodes on the mesh network of the client subnet range selection by broadcasting an allocation message to the neighboring mesh nodes, wherein the allocation message includes and indicator that the client subnet range has been allocated by the current mesh node. - View Dependent Claims (18, 19, 20, 21)
-
Specification