IP Library Granted Patent US 11,689,456
Granted Patent B2
US 11,689,456 · App. 17/502,382 · Granted Jun 27, 2023

Autonomous data routing in a peer-to-peer computer network

Inventors: Andrejus Mikonis (Vilnius, LT); Vytautas Jurenas (Vilnius, LT); Jonas Simanavicius (Vilnius, LT)
Assignee: Syntropy Network Limited
H04L45/70H04L9/3247H04L43/0852H04L45/7453H04L67/104H04L9/50
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 11,689,456
App. No.
17/502,382
Granted
Jun 27, 2023
Kind
B2
Abstract

A method is disclosed for autonomously routing data using in a peer-to-peer computer network includes automatically updating a peer-to-peer computer network. The method includes automatically sending pulse messages from a first node to neighbor nodes and candidate nodes, receiving return pulses by the first node from at least some of the neighbor nodes and the candidate nodes, calculating round-trip times (RTTs) between the first node and the neighbor nodes or the candidate nodes based on the pulse messages and the return pulses, sorting the nodes in the neighbor nodes and the candidate nodes into orbital bins based on RTTs, and automatically selecting and adding a node from one of the orbital bins based on the RTTs to updated neighbor nodes for the first node, and routing data from the first node to a second node via a relay node in the peer-to-peer computer network.

Claims (72)

1. A method for autonomously routing data using in a peer-to-peer computer network, comprising:

automatically updating the peer-to-peer computer network comprising a plurality of nodes each associated with a unique node ID, comprising:

storing, at a first node, IDs of neighbor nodes that are connected to the first node in the peer-to-peer computer network;

storing, at the first node, IDs of candidate nodes for connecting to the first node in the peer-to-peer computer network;

automatically sending pulse messages from the first node to the neighbor nodes and the candidate nodes;

in response to the pulse messages, receiving return pulses by the first node from at least some of the neighbor nodes and the candidate nodes;

calculating round-trip times (RTTs) between the first node and the neighbor nodes or the candidate nodes based on the pulse messages and the return pulses;

sorting the nodes in the neighbor nodes and the candidate nodes into a plurality of orbital bins each comprising nodes characterized by RTTs related to the first node within a specific interval; and

automatically selecting and adding at least one node from one of the orbital bins based on the RTTs to updated neighbor nodes for the first node; and

automatically routing data from the first node to a second node via a relay node that is one of updated nodes in the peer-to-peer computer network.

2. The method of claim 1 , wherein the updated nodes in the peer-to-peer computer network are formed by updated neighbor nodes of the plurality of nodes in the peer-to-peer computer network.

3. The method of claim 1 , wherein an RTT between the first node and a node in the neighbor nodes or the candidate nodes is calculated by a sending time stamp of a pulse message sent from the first node and a reception time stamp of a return pulse received by the first node in response to the pulse message, the sending time stamp and the reception time stamp being both recorded at the first node.

4. The method of claim 3 , wherein at least some of computer clocks at the plurality of nodes have skews or clock rate discrepancies relative to each other, wherein step of calculating round-trip times (RTTs) is independent of the skews or the clock rate discrepancies between the computer clocks at the plurality of nodes in the peer-to-peer computer network.

5. The method of claim 1 , wherein the at least one node is selected from each of the orbital bins further based on durations of the at least one node that has been an updated neighbor node in the peer-to-peer computer network.

6. The method of claim 1 , wherein the neighbor nodes and the candidate nodes are sorted substantially evenly into a plurality of orbital bins based on the RTTs of the associated return messages received by the first node.

7. The method of claim 1 , wherein updating the peer-to-peer computer network comprising the plurality of nodes further comprises:

removing a node from the updated neighbor nodes for the first node if no return pulse is received from the node by the first node after a pulse message is sent from the first node to the node.

8. The method of claim 1 , wherein updating the peer-to-peer computer network comprising the plurality of nodes each associated with the unique node ID further comprises:

removing a node from the updated neighbor nodes for the first node if return pulses from the node have jitter exceeding a predetermined threshold.

9. The method of claim 1 , wherein updating the peer-to-peer computer network comprising the plurality of nodes each associated with the unique node ID further comprises:

repeating step of automatically selecting a node from another one of the orbital bins, wherein the node selected is added to the updated nodes in the peer-to-peer computer network.

10. The method of claim 1 , wherein step of automatically routing the data from the first node to the second node via the relay node that is the one of updated nodes in the peer-to-peer computer network further comprises:

sending one or more path packages from the first node directly to the second node to measure a one-way latency (OWL) and jitter in a direct path between the first node and the second node;

sending one or more path packages from the first node to the second node via one or more relay nodes, each path package recording a reception time stamp and a sending time stamps at the relay nodes along associated relayed data path;

automatically selecting one of the relayed data paths if a total OWL and an average jitter associated with the one of the relayed data paths satisfy predetermine criteria in comparison to the direct path; and

sending data from the first node to the second node along the selected one of the relayed data paths.

11. The method of claim 10 , further comprising:

cryptographically signing a path packet by a relay node in a relayed data path using a private key paired with a public key of the relay node.

12. The method of claim 10 , further comprising:

cryptographically signing an updated version of a path packet by a relay node in a relayed data path, wherein the updated version of the path packet includes node IDs of a previous node and a next node along the relayed path and a measured OWL of a last routing segment along the relayed path.

13. The method of claim 11 , wherein node ID of the relay node is obtained from the public key of the relay node.

14. The method of claim 10 , further comprising:

storing, at each of the updated nodes, a peer-node hash table that includes hash values of the node IDs of some of the updated nodes; and

querying a node ID of the second node using peer-node hash tables stored at the first node and other updated nodes.

15. The method of claim 10 , wherein the plurality of nodes in the peer-to-peer computer network includes one or more virtual nodes associated with a software defined network,

wherein a relay node of the one of the relayed data paths is a virtual node.

16. The method of claim 10 , wherein one of the one or more relayed data paths includes two relay nodes that are the updated nodes in the peer-to-peer computer network, wherein data is sent from the first node to the second node via the two relay nodes.

17. The method of claim 10 , wherein the total OWL associated with each of the one or more relayed data paths between the first node and the second node is obtained by summing OWLs measured at all routing segments along the each of the one or more relayed data paths.

18. The method of claim 10 , wherein the total OWL associated with a selected one of the relayed data paths is smaller than the OWL measured in direct path from the first node to the second node.

19. The method of claim 10 , wherein the average jitter associated with each of the one or more relayed data paths between the first node and the second node is obtained by calculating a mean of jitters measured at all routing segments along the each of the one or more relayed data paths.

20. A non-transitory computer-readable medium storing a plurality of instructions which, when executed by one or more processors, cause the one or more processors to perform operations in a peer-to-peer computer network, the operations comprising:

automatically updating the peer-to-peer computer network comprising a plurality of nodes each associated with a unique node ID, comprising:

storing, at a first node, IDs of neighbor nodes that are connected to the first node in the peer-to-peer computer network;

storing, at the first node, IDs of candidate nodes for connecting to the first node in the peer-to-peer computer network;

automatically sending pulse messages from the first node to the neighbor nodes and the candidate nodes;

in response to the pulse messages, receiving return pulses by the first node from at least some of the neighbor nodes and the candidate nodes;

calculating round-trip times (RTTs) between the first node and the neighbor nodes or the candidate nodes based on the pulse messages and the return pulses;

sorting the nodes in the neighbor nodes and the candidate nodes into a plurality of orbital bins each comprising nodes characterized by RTTs related to the first node within a specific interval; and

automatically selecting and adding at least one node from one of the orbital bins based on the RTTs to updated neighbor nodes for the first node; and

automatically routing data from the first node to a second node via a relay node that is one of updated nodes in the peer-to-peer computer network.

21. The non-transitory computer-readable medium of claim 20 , wherein step of automatically routing the data from the first node to the second node via the relay node that is the one of updated nodes in the peer-to-peer computer network further comprises:

sending one or more path packages from the first node directly to the second node to measure a one-way latency (OWL) and jitter in a direct path between the first node and the second node;

sending one or more path packages from the first node to the second node via one or more relay nodes, each path package recording a reception time stamp and a sending time stamps at the relay nodes along associated relayed data path;

automatically selecting one of the relayed data paths if a total OWL and an average jitter associated with the one of the relayed data paths satisfy predetermine criteria in comparison to the direct path; and

sending data from the first node to the second node along the selected one of the relayed data paths.

22. A computer system for autonomously routing data using in a peer-to-peer computer network, comprising:

a communication module configured to send or receive data to and from nodes in the peer-to-peer computer network; and

a computer memory storing the instructions that, when executed by the one or more processors at the plurality of nodes, cause the plurality of nodes to:

automatically update the peer-to-peer computer network comprising a plurality of nodes each associated with a unique node ID, which comprises:

storing, at a first node, IDs of neighbor nodes that are connected to the first node in the peer-to-peer computer network;

storing, at the first node, IDs of candidate nodes for connecting to the first node in the peer-to-peer computer network;

automatically sending pulse messages from the first node to the neighbor nodes and the candidate nodes;

in response to the pulse messages, receiving return pulses by the first node from at least some of the neighbor nodes and the candidate nodes;

calculating round-trip times (RTTs) between the first node and the neighbor nodes or the candidate nodes based on the pulse messages and the return pulses;

storing the nodes in the neighbor nodes and the candidate nodes into a plurality of orbital bins each comprising nodes characterized by RTTs related to the first node within a specific interval; and

automatically selecting and adding at least one node from one of the orbital bins based on the RTTs to updated neighbor nodes for the first node; and

automatically route data from the first node to a second node via a relay node that is one of updated nodes in the peer-to-peer computer network.

23. The computer system of claim 22 , wherein the instructions that, when executed by the one or more processors at the plurality of nodes, further cause the plurality of nodes to

send one or more path packages from the first node directly to the second node to measure a one-way latency (OWL) and jitter in a direct path between the first node and the second node;

send one or more path packages from the first node to the second node via one or more relay nodes, each path package recording a reception time stamp and a sending time stamps at the relay nodes along associated relayed data path;

automatically select one of the relayed data paths if a total OWL and an average jitter associated with the one of the relayed data paths satisfy predetermine criteria in comparison to the direct path; and

send data from the first node to the second node along the selected one of the relayed data paths.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBERS PREVIOUSLY RECORDED AT REEL: 74336 FRAME: 527. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT. Recorded Apr 27, 2026
From: SYNTERNET LIMITED
To: BIANCHI, MARC
Reel/Frame 075031/0132 →
CHANGE OF NAME Recorded Apr 27, 2026
From: SYNTROPY NETWORK LIMITED
To: SYNTERNET LIMITED
Reel/Frame 075031/0201 →
NUNC PRO TUNC ASSIGNMENT Recorded Apr 10, 2026
From: SYNTERNET LIMITED
To: BIANCHI, MARC
Reel/Frame 074336/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2021
From: MIKONIS, ANDREJUS; JURENAS, VYTAUTAS; SIMANAVICIUS, JONAS
To: SYNTROPY NETWORK LIMITED
Reel/Frame 057877/0474 →
Continuity (1)
Related Publication 20230124157A1 · Apr 20, 2023