CPC H04L 45/44 (2013.01) [H04L 45/02 (2013.01); H04L 45/122 (2013.01); H04L 45/20 (2013.01); H04L 45/24 (2013.01)] | 25 Claims |
1. A method for autonomously routing data using in a peer-to-peer computer network, comprising:
identifying a destination node to receive a data transfer in the peer-to-peer computer network, wherein the peer-to-peer computer network comprises a plurality of nodes each associated with a unique node ID;
defining one or more constraints for the data transfer;
storing, at a source node, IDs of first neighbor nodes that are connected to the source node in the peer-to-peer computer network, wherein the first neighbor nodes are sorted into a plurality of first orbital bins according to round-trip times (RTTs) between the source node and the first neighbor nodes;
sending one or more path packets from the source node to the destination node in a first direct data path from the source node to the destination node;
sending path packets from the source node to the first neighbor nodes, wherein the first neighbor nodes include a first hop node;
updating a path packet received by the first hop node with associated hop information;
sending one or more path packets comprising updated hop information to the destination node in a second direct data path from the first hop node to the destination node;
storing IDs of second neighbor nodes that are connected to the first hop node, wherein the second neighbor nodes are sorted into a plurality of second orbital bins according to RTTs between the first hop node and the second neighbor nodes;
if the one or more constraints for the data transfer allow more than one relay node in a data routing path,
sending path packets comprising updated hop information from the first hop node to the second neighbor nodes, wherein the second neighbor nodes include a second hop node; and
repeating, at the second hop node, steps of updating a path packet with associated hop information and sending one or more path packets to the destination node;
receiving, by the destination node, path packets from the source node, the first hop node, and additional hop nodes allowed by the one or more constraints for the data transfer;
calculating total one-way latencies (OWLs) and performance metrics respectively for the path packets received by the destination node; and
automatically selecting a relayed data path for the data transfer from the source node to the destination node if the associated total OWL and the associated performance metrics satisfy predetermine criteria.
|