IP Library Patent Application 17820453
Patent Application
App. No. 17/820,453

LINK SELECTION IN AN OVERLAY NETWORK

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 None
App. No.
17/820,453
Abstract

An overlay network system includes multiple point-of-presence (POP) devices each including a path finding component and corresponding telemetry component, agent component, and routing daemon. The telemetry component generates latency measurements for the POP on which it is disposed. A centralized billboard service provides border gateway protocol (BGP) announcements and point-of-presence (POP) peering decisions to each of the agent components. On each of the POPs, the path finding component and corresponding telemetry component, agent component, and routing daemon cooperate to transform the BGP announcements, peering decisions, and latency measurements into routing tables and link selections for packet streams routed through the POPs.

Claims (45)

1 . An overlay network system comprising:

a plurality point-of-presence (POP) devices;

each POP comprising a path finding component and corresponding telemetry component, agent component, and routing daemon;

each telemetry component generating latency measurements for the POP on which it is disposed;

a centralized billboard service providing border gateway protocol (BGP) announcements and point-of-presence (POP) peering decisions to each of the agent components; and

on each of the POPs, the path finding component and corresponding telemetry component, agent component, and routing daemon cooperating to transform the BGP announcements, peering decisions, and latency measurements into routing tables and link selections for packet streams routed through the POPs.

2 . The system of claim 1 , further comprising a graph service configured to generate routing path updates to the billboard service.

3 . The system of claim 2 , wherein the graph service receives the telemetry measurements from the telemetry components.

4 . The system of claim 2 , further comprising:

the graph service generating a plurality of profiles; and

the path finding components utilizing the profiles to determine how the telemetry latency measurements should be weighted for selection of links between the POPs.

5 . The system of claim 4 , wherein a first type of the profiles emphasizes selection of lower latency links over lower jitter or loss links, and a second type of the profiles emphasizes the selection of the lower jitter or loss links over the lower latency links.

6 . The system of claim 5 , wherein a third type of the profiles emphasizes selection of links comprising a best combination of latency, jitter, and packet loss such that the links comprise low latency with acceptable jitter or loss.

7 . The system of claim 5 , wherein one or more of the profiles imposes geographical constraints on selection of the links by the path finding components.

8 . The system of claim 1 , wherein the agent components each independently poll the billboard service for the BGP announcements and peering decisions at regular intervals.

9 . The system of claim 8 , wherein the agents generate control templates for the routing daemons based on the BGP state information and peering decisions and apply the templates to the routing daemons.

10 . The system of claim 9 , wherein the control templates are configuration files.

11 . The system of claim 8 , wherein, in the event the billboard service becomes unresponsive to the polling by the agent components, the routing daemons continue to execute as routers utilizing the last polling updates received from the billboard service.

12 . The system of claim 1 , the billboard service implementing a traffic drain to enable a shifting of network traffic away from particular ones of the POP devices.

13 . The system of claim 12 , wherein the traffic drain comprises:

a command to shift all inbound traffic away from a particular one of the POP devices;

a command to shift all inbound traffic away from a specific peer device of a particular one of the POP devices;

a command to shift a specific type of inbound traffic away from a particular one of the POP devices; and

a command to shift a specific type of inbound traffic away from a specific peer device of a particular one of the POP devices.

14 . The system of claim 1 , wherein the path finding services make egress link selections between the POPs.

15 . The system of claim 1 , wherein each of the routing daemons comprises multiple independent routing tables, each synchronized to a kernel routing table of the POP on which the routing daemon is disposed.

16 . The system of claim 15 , further comprising filters that control which routes are synchronized to the kernel routing tables.

17 . The system of claim 1 , wherein the routing daemons are Bird routers.

18 . The system of claim 1 , wherein one or more of the telemetry components and the path finding components are configured to:

(i) maintain a loss count for a packet flow;

(ii) for each data packet sequence number (seq_i):

(a) on condition that a previous sequence number (seq_i−1) is present, then measure passive-round-trip-time[seq_i]=timestamp_value[seq_i]-timestamp_value[seq_i−1];

(b) on condition that the previous sequence number (seq_i−1) is missing, increment a loss counter for the packet flow.

19 . A method comprising:

determining a new weight for a current link for traffic between network devices for a combination of traffic dimensions;

setting current best dimensions for the current link to the combination of traffic dimensions;

setting a current best weight for the current link to the new weight on condition that there is no current best weight for the combination of dimensions;

setting the current best weight to the new weight and updating the current best dimensions on condition that the new weight is better than the current best weight;

making no changes to the current best weight or current best dimensions on condition that the new weight is worse than the current best weight and the combination of dimensions for the new weight do not match a combination of dimensions used to calculate the current best weight; and

selecting a new link to be the current link for the traffic between the network devices on condition that the new weight is worse than the current best weight, and the dimensions of the new weight and the current best weight match.

20 . A method comprising:

maintaining a loss count for a packet flow;

for each data packet sequence number (seq_i):

measuring passive-round-trip-time[seq_i]=timestamp_value[seq_i]-timestamp_value[seq_i−1] on condition that a previous sequence number (seq_i−1) is present; and

incrementing a loss counter for the packet flow on condition that the previous sequence number (seq_i−1) is missing.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2024
From: SUBSPACE ALPHA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
To: NEOATOMIC LLC
Reel/Frame 066301/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2022
From: CHOE, BRANDON; HULCHER, CHARLIE FREDERICK
To: SUBSPACE ALPHA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 061846/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2022
From: CHOE, BRANDON; HULCHER, CHARLIE FREDERICK
To: SUBSPACE ALPHA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 061822/0297 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2022
From: SWAFFORD, DAVID; MARX, BENJAMIN
To: SUBSPACE ALPHA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 061713/0754 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2022
From: SHAW, STEPHEN; WHITED, JORDAN
To: SUBSPACE ALPHA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 061699/0533 →