Creation and Maintenance of Self-Organizing Communication Orbits in Distributed Networks
First Claim
1. A method of managing a network comprising a non-static collection of machines, comprising:
- at a first client node to be coupled to the network;
providing a registration message to a server of the network, the registration message specifying a respective unique identifier of the first client node;
receiving from the server contact information of one or more potential neighbor nodes for the first client node in a linear communication orbit, wherein the linear communication orbit is formed by a plurality of client nodes currently known to exist in the network according to a sequential order of respective unique identifiers of the plurality of client nodes, wherein the linear communication orbit includes a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit;
proactively establishing a respective reporting channel for providing information to a respective upstream neighbor of the first client node and allowing a respective receiving channel for receiving information from the respective upstream neighbor to be established by the respective upstream neighbor, the respective upstream neighbor comprising a closest live preceding node among the one or more potential neighbor nodes; and
when the one or more potential neighbor nodes include at least one live succeeding node;
proactively establishing a respective propagation channel for providing information to a respective downstream neighbor of the first client node and allowing a respective collection channel for receiving information from the respective downstream neighbor to be established by the respective downstream neighbor, the respective downstream neighbor comprising a closest live succeeding node among the one or more potential neighbor nodes; and
upon establishment of the respective receiving and propagation channels, terminating an existing communication channel from the server to the first client node and an existing communication channel from the first client node to the server.
1 Assignment
0 Petitions
Accused Products
Abstract
In one aspect, machines in a managed network implements a set of rules that cause individual machines to directly interact with only a small number of machines in the network (i.e., a local neighborhood within the network), while the independent local actions of the individual machines collectively cause the individual machines to be self-organized into one or more communication orbits without any global control or coordination by a server or an administrator. The communication orbits are used for supporting network, security and system management communications in the managed network.
-
Citations
28 Claims
-
1. A method of managing a network comprising a non-static collection of machines, comprising:
at a first client node to be coupled to the network; providing a registration message to a server of the network, the registration message specifying a respective unique identifier of the first client node; receiving from the server contact information of one or more potential neighbor nodes for the first client node in a linear communication orbit, wherein the linear communication orbit is formed by a plurality of client nodes currently known to exist in the network according to a sequential order of respective unique identifiers of the plurality of client nodes, wherein the linear communication orbit includes a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit; proactively establishing a respective reporting channel for providing information to a respective upstream neighbor of the first client node and allowing a respective receiving channel for receiving information from the respective upstream neighbor to be established by the respective upstream neighbor, the respective upstream neighbor comprising a closest live preceding node among the one or more potential neighbor nodes; and when the one or more potential neighbor nodes include at least one live succeeding node; proactively establishing a respective propagation channel for providing information to a respective downstream neighbor of the first client node and allowing a respective collection channel for receiving information from the respective downstream neighbor to be established by the respective downstream neighbor, the respective downstream neighbor comprising a closest live succeeding node among the one or more potential neighbor nodes; and upon establishment of the respective receiving and propagation channels, terminating an existing communication channel from the server to the first client node and an existing communication channel from the first client node to the server. - View Dependent Claims (2, 3, 4, 5)
-
6. A non-transitory computer-readable medium, having instructions stored thereon, which when executed by one or more processors cause the processors to perform operations comprising:
at a first client node to be coupled to a network comprising a non-static collection of machines; providing a registration message to a server of the network, the registration message specifying a respective unique identifier of the first client node; receiving from the server contact information of one or more potential neighbor nodes for the first client node in a linear communication orbit, wherein the linear communication orbit is formed by a plurality of client nodes currently known to exist in the network according to a sequential order of respective unique identifiers of the plurality of client nodes, wherein the linear communication orbit includes a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit; proactively establishing a respective reporting channel for providing information to a respective upstream neighbor of the first client node and allowing a respective receiving channel for receiving information from the respective upstream neighbor to be established by the respective upstream neighbor, the respective upstream neighbor comprising a closest live preceding node among the one or more potential neighbor nodes; and when the one or more potential neighbor nodes include at least one live succeeding node; proactively establishing a respective propagation channel for providing information to a respective downstream neighbor of the first client node and allowing a respective collection channel for receiving information from the respective downstream neighbor to be established by the respective downstream neighbor, the respective downstream neighbor comprising a closest live succeeding node among the one or more potential neighbor nodes; and upon establishment of the respective receiving and propagation channels, terminating an existing communication channel from the server to the first client node and an existing communication channel from the first client node to the server. - View Dependent Claims (7)
-
8. A system, comprising:
-
one or more processors; and memory having instructions stored thereon, which when executed by the one or more processors cause the processors to perform operations comprising; at a first client node to be coupled to a network comprising a non-static collection of machines; providing a registration message to a server of the network, the registration message specifying a respective unique identifier of the first client node; receiving from the server contact information of one or more potential neighbor nodes for the first client node in a linear communication orbit, wherein the linear communication orbit is formed by a plurality of client nodes currently known to exist in the network according to a sequential order of respective unique identifiers of the plurality of client nodes, wherein the linear communication orbit includes a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit; proactively establishing a respective reporting channel for providing information to a respective upstream neighbor of the first client node and allowing a respective receiving channel for receiving information from the respective upstream neighbor to be established by the respective upstream neighbor, the respective upstream neighbor comprising a closest live preceding node among the one or more potential neighbor nodes; and when the one or more potential neighbor nodes include at least one live succeeding node; proactively establishing a respective propagation channel for providing information to a respective downstream neighbor of the first client node and allowing a respective collection channel for receiving information from the respective downstream neighbor to be established by the respective downstream neighbor, the respective downstream neighbor comprising a closest live succeeding node among the one or more potential neighbor nodes; and upon establishment of the respective receiving and propagation channels, terminating an existing communication channel from the server to the first client node and an existing communication channel from the first client node to the server. - View Dependent Claims (9)
-
-
10. A method of managing a network comprising a non-static collection of machines, comprising:
at a server of the network; maintaining a record identifying a plurality of client nodes known to be coupled to the network during a present timeframe, wherein the plurality of client nodes are self-organized in a linear communication orbit, wherein the plurality of client nodes in the linear communication orbit include a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit; receiving a respective request from a first client node to join the network; and based on a respective unique identifier of the first client node, providing, to the first client node, contact information for a plurality of potential neighbor nodes for the first client node in the linear communication orbit, wherein the contact information is utilized by the first client node to establish a communication channel with at least one of the potential neighbor nodes and become part of the linear communication orbit. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
25. A non-transitory computer-readable medium, having instructions stored thereon, which when executed by one or more processors cause the processors to perform operations comprising:
at a server of a network comprising a non-static collection of machines; maintaining a record identifying a plurality of client nodes known to be coupled to the network during a present timeframe, wherein the plurality of client nodes are self-organized in a linear communication orbit, wherein the plurality of client nodes in the linear communication orbit include a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit; receiving a respective request from a first client node to join the network; and based on a respective unique identifier of the first client node, providing, to the first client node, contact information for a plurality of potential neighbor nodes for the first client node in the linear communication orbit, wherein the contact information is utilized by the first client node to establish a communication channel with at least one of the potential neighbor nodes and become part of the linear communication orbit. - View Dependent Claims (26, 28)
-
27. A system, comprising:
-
one or more processors; and memory having instructions stored thereon, which when executed by the one or more processors cause the processors to perform operations comprising; at a server of a network comprising a non-static collection of machines; maintaining a record identifying a plurality of client nodes known to be coupled to the network during a present timeframe, wherein the plurality of client nodes are self-organized in a linear communication orbit, wherein the plurality of client nodes in the linear communication orbit include a head node, a tail node, and a sequence of one or more intermediate nodes between the head node and the tail node, and wherein the server provides management messages to the plurality of client nodes through the head node, and each intermediate node receives the management messages from the server through a respective upstream neighbor node in the linear communication orbit and forwards the management messages to a respective downstream neighbor node in the linear communication orbit; and receiving a respective request from a first client node to join the network; based on a respective unique identifier of the first client node, providing, to the first client node, contact information for a plurality of potential neighbor nodes for the first client node in the linear communication orbit, wherein the contact information is utilized by the first client node to establish a communication channel with at least one of the potential neighbor nodes and become part of the linear communication orbit.
-
Specification