CPC H04L 45/121 (2013.01) [H04L 43/0829 (2013.01); H04L 43/0852 (2013.01); H04L 45/02 (2013.01)] | 21 Claims |
1. A method for autonomously routing data in a peer-to-peer computer network, comprising:
automatically discovering a neighbor node associated with a first node in the peer-to-peer computer network, comprising:
automatically sending bursts of first pulse messages from the first node to neighbor nodes and candidate nodes associated with the first node;
in response to the bursts of first pulse messages, receiving first return pulses by the first node from at least some of the neighbor nodes and the candidate nodes;
calculating round-trip times (RTTs), jitter, and packet loss between the first node and the neighbor nodes or the candidate nodes based on the bursts of first pulse messages and the first return pulses;
sorting the neighbor nodes and the candidate nodes into a plurality of orbital bins each characterized by a specific interval of the RTTs associated with the first node; and
based on the RTTs, the jitter, and the packet loss, automatically selecting and assigning a node from one of the orbital bins to be the neighbor node associated with the first node;
automatically updating the neighbor nodes connected to the first node in the peer-to-peer computer network, comprising:
automatically sending second pulse messages from the first node to the neighbor nodes and the candidate nodes associated with the first node, wherein the second pulse messages are longer than the first pulse messages, wherein the second pulse messages have longer intervals in between than intervals between the first pulse messages in one of the bursts;
in response to the second pulse messages, receiving second return pulses by the first node from at least some of the neighbor nodes and the candidate nodes;
calculating RTTs between the first node and the neighbor nodes or the candidate nodes based on the second pulse messages and the second return pulses;
based on the RTTs and the jitter, automatically adding a candidate node to the plurality of orbital bins associated with the first node or retiring a neighbor node associated with the first node; and
based on the RTTs and the jitter, automatically selecting and assigning a node from one of the orbital bins to update the neighbor nodes associated with the first node; and
automatically relaying data from the first node to a second node by one of the neighbor nodes associated with the first node in the peer-to-peer computer network.
|