IP Library Granted Patent US 12,028,233
Granted Patent B2
US 12,028,233 · App. 17/219,884 · Granted Jul 2, 2024

Automated formation and optimization of a group of nodes for distributed data routing over computer networks

Inventors: William B. Norton (Palo Alto, CA); Jonas Simanavicius (Vilnius, LT); Domas Povilauskas (Vilnius, LT); Jim X. Wen (Sunnyvale, CA)
Assignee: Syntropy Network Limited
H04L43/16H04L43/0858H04L43/10H04L45/02H04L45/123H04L45/24
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 12,028,233
App. No.
17/219,884
Granted
Jul 2, 2024
Kind
B2
Abstract

A method for autonomously routing data with reduced latencies over the Internet includes sending one or more ping messages from a first node to one or more genesis nodes on the Internet, receiving one of the ping messages from the first node by a first genesis node, sending a reply message to invite the first node to join a pulse group if the first node is selected based on predetermined criteria, automatically measuring one-way latencies between a plurality of nodes in the pulse group, wherein the pulse group includes the first genesis node, a first node, and a second node, automatically removing a node from the pulse group if fluctuations of one-way latencies associated with the node exceed a pre-determined threshold, and automatically determining a lower-latency data routing path from the first node to the second node based on the one-way latencies measured in the pulse group.

Claims (51)

1. A method for autonomously routing data with reduced latencies in a group of distributed computer nodes over the Internet, comprising:

sending one or more ping messages from a first node to one or more genesis nodes on the Internet;

receiving one of the ping messages from the first node by a first genesis node;

sending a reply message to invite the first node to join a pulse group if the first node is selected based on predetermined criteria;

automatically measuring one-way latencies between a plurality of nodes in the pulse group, wherein the pulse group includes the first genesis node, a first node, and a second node;

automatically removing at least one node from the pulse group if fluctuations of one-way latencies associated with the at least one node exceed a pre-determined threshold; and

automatically determining a lower-latency data routing path from the first node to the second node based on the one-way latencies measured in the pulse group.

2. The method of claim 1 , further comprising:

automatically removing the at least one node from the pulse group based on a latency between the at least one node and the first genesis node in the pulse group.

3. The method of claim 1 , wherein the first node is selected if nodes in the pulse group are below a minimum threshold number for a pulse group.

4. The method of claim 1 , wherein the first node is selected at least in part based on a number of lower-latency data routing paths that the first node has relayed.

5. The method of claim 1 , wherein the at least one node is removed from the pulse group if fluctuations of one-way latencies relative to an average one-way latency associated with the at least one node exceed 30% of the average one-way latency over a predetermined period.

6. The method of claim 1 , further comprising:

determining a probability for improved data routing paths in the pulse group by comparing average one-way latencies measured between different pairs of nodes.

7. The method of claim 6 , wherein one or more additional nodes are invited to join the pulse group if a maximum average measured one-way latency is less than twice a minimum average measured one-way latency between different pairs of nodes in the pulse group.

8. The method of claim 6 , wherein an improved data routing path comprising an integer number n of relay nodes requires a maximum average measured one-way latency is more than (n+1) times a minimum average measured one-way latency between different pairs of nodes in the pulse group.

9. The method of claim 1 , further comprising:

if the at least one node is removed from the pulse group, inviting one or more additional nodes by the first genesis node to join the pulse group.

10. The method of claim 1 , wherein the plurality of ping messages are formed by single data packets.

11. The method of claim 1 , wherein the one-way latencies include a first one-way latency measured from a direct path from the first node to the second node is measured with,

wherein the lower-latency data routing path passes through a relay node in the pulse group,

wherein the first lower-latency data routing path has a sum of one-way latencies from the first node to the second node via the relay node lower than the first one-way latency.

12. The method of claim 1 , further comprising:

sending data from the first node to the second node along the lower-latency data routing path via the relay node.

13. The method of claim 1 , further comprising:

automatically recording the one-way latencies between nodes in the pulse group in a one-way latency matrix, wherein the lower-latency data routing path from the first node to the second node is automatically determined based on the one-way latencies in the one-way latency matrix.

14. The method of claim 1 , wherein automatically measuring one-way latencies between nodes in the pulse group comprises:

automatically sending a plurality of pulse messages from the first node to other nodes in the pulse group;

receiving one of the plurality of pulse messages by the second node, wherein the one of the plurality of pulse messages includes a first timestamp associated with a sending time by the first node, wherein the one of the plurality of pulse messages is received at a reception time associated with a second time stamp; and

automatically computing the first one-way latency for a direct path from the first node to the second node based on the first time stamp and the second time stamp.

15. The method of claim 14 , wherein at least some computer clocks at the plurality of nodes in the pulse group have skews relative to each other, wherein automatically determining a first lower-latency data routing path is independent of the skews between the some of the computer clocks at the plurality of nodes in the pulse group.

16. 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 a computer network, the operations comprising:

sending one or more ping messages from a first node to one or more genesis nodes on the Internet;

receiving one of the ping messages from the first node by a first genesis node;

sending a reply message to invite the first node to join a pulse group if the first node is selected based on predetermined criteria;

automatically measuring one-way latencies between a plurality of nodes in the pulse group, wherein the pulse group includes the first genesis node, a first node, and a second node;

automatically removing at least one node from the pulse group if fluctuations of one-way latencies associated with the at least one node exceed a pre-determined threshold; and

automatically determining a lower-latency data routing path from the first node to the second node based on the one-way latencies measured in the pulse group.

17. The non-transitory computer-readable medium of claim 16 , wherein the first node is selected at least in part based on a number of lower-latency data routing paths that the first node has relayed.

18. The non-transitory computer-readable medium of claim 16 , wherein the at least one node is removed from the pulse group if fluctuations of one-way latencies relative to an average one-way latency associated with the at least one node exceed 30% of the average one-way latency over a predetermined period.

19. A computer system for autonomously selecting low-latency data routing paths across the Internet, comprising:

a server configured to send instructions to a plurality of nodes in a computer network; and

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

send one or more ping messages from a first node to one or more genesis nodes on the Internet;

receive one of the ping messages from the first node by a first genesis node;

send a reply message to invite the first node to join a pulse group if the first node is selected based on predetermined criteria;

automatically measure one-way latencies between a plurality of nodes in the pulse group, wherein the pulse group includes the first genesis node, a first node, and a second node;

automatically remove at least one node from the pulse group if fluctuations of one-way latencies associated with the at least one node exceed a pre-determined threshold; and

automatically determine a lower-latency data routing path from the first node to the second node based on the one-way latencies measured in the pulse group.

20. The computer system of claim 19 , wherein the first node is selected at least in part based on a number of lower-latency data routing paths that the first node has relayed.

21. The computer system of claim 19 , wherein the at least one node is removed from the pulse group if fluctuations of one-way latencies relative to an average one-way latency associated with the at least one node exceed 30% of the average one-way latency over a predetermined period.

Assignments (6)
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 →
CHANGE OF NAME Recorded Feb 21, 2022
From: NOIA NETWORK LIMITED
To: SYNTROPY NETWORK LIMITED
Reel/Frame 059907/0427 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2022
From: NORTON, WILLIAM B; SIMANAVICIUS, JONAS; POVILAUSKAS, DOMAS; WEN, JIM X
To: NOIA NETWORK LIMITED
Reel/Frame 059045/0933 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2021
From: NORTON, WILLIAM B; SIMANAVICIUS, JONAS; POVILAUSKAS, DOMAS; WEN, JIM X
To: NOIA NETWORK LIMITED
Reel/Frame 055863/0868 →
Continuity (5)
Continuation In Part 17196012 · Mar 9, 2021
Continuation In Part 17153163 · Jan 20, 2021
Continuation In Part 17132193 · Dec 23, 2020
Provisional Application 62972126 · Feb 10, 2020
Related Publication 20210250271A1 · Aug 12, 2021