IP Library › Granted Patent US 10,673,767
Granted Patent B2
US 10,673,767 · App. 15/756,646 · Granted Jun 2, 2020

Methods and apparatus for real-time traffic steering using real-time user monitoring data

Inventors: Alin Popescu (Hanover, NH); Philip Stanhope (Newburyport, MA); Arun Mehra (Hanover, NH); Stephen Hulshof (Burlington, CA); Brian Premore (West Lebanon, NH); Douglas Madory (Lebanon, NH); Scott Michael Brazina (Concord, MA); Charlie Baker (Pelham, NH); Richard Gibson (Milford, NH)
Assignee: DYNAMIC NETWORK SERVICES, INC.
H04L47/283H04L43/0829H04L43/0864H04L43/10H04L43/106H04L45/04H04L45/121H04L61/1511
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 10,673,767
App. No.
15/756,646
Granted
Jun 2, 2020
Kind
B2
Abstract

Conventional internet routing is handled using routing protocols such as the Border Gateway Protocol (BGP). However, simple BGP does not account for latency, packet loss, or cost. To address this problem, smart routing systems that route traffic fast and in a cost-effective manner are implemented. In one approach, smart routing systems measure, compare, and analyze round-trip latencies and other metrics between a customer premises and one or more endpoints. Optimal inbound and outbound transit providers are selected for each endpoint based on these measurements. Other smart routing systems collect and analyze Real User Monitoring (RUM) data to predict latency performance of different content origins for serving data to a particular client based on the client's IP address and the content origins' IP addresses, which are ranked by performance. These rankings are used to steer traffic along lower latency paths by resolving Domain Name System (DNS) queries based on the performance associated with the IP addresses.

Claims (72)

1. A method of directing traffic from a customer premises to an Internet Protocol (IP) address among a plurality of transit providers, the method comprising:

measuring a first latency on a first path from a collector device at the customer premises to the IP address, wherein the first path comprises a first transit provider in the plurality of transit providers and a first border router coupled to the first transit provider;

measuring a second latency on a second path from the collector device to the IP address, wherein the second path comprises a second transit provider in the plurality of transit providers, a second border router, and the first border router;

performing a comparison of the first latency and the second latency;

selecting the second transit provider based on the comparison of the first latency and the second latency; and

directing traffic from the customer premises to the IP address, wherein directing the traffic to the IP address comprises directing the traffic to the second transit provider on the second path via the first border router and the second border router.

2. The method of claim 1 , wherein measuring the first latency comprises: transmitting an echo request to the IP address via the first transit provider; and receiving an echo reply via the second transit provider.

3. The method of claim 1 , wherein measuring the first latency comprises:

transmitting an echo request to the IP address via a first interface of a border router coupled to the first transit provider; and

receiving an echo reply via a second interface of the border router.

4. The method of claim 1 , wherein performing the comparison of the first latency and the second latency comprises:

comparing an inbound latency of the first transit provider to an inbound latency of the second transit provider; and

comparing an outbound latency of the first transit provider to an outbound latency of the second transit provider.

5. The method of claim 1 , wherein selecting the one of the first transit provider and the second transit provider further comprises:

selecting the one of the first transit provider and the second transit provider based on a cost of the first transit provider and a cost of the second transit provider.

6. The method of claim 1 , wherein selecting the one of the first transit provider and the second transit provider further comprises:

selecting the one of the first transit provider and the second transit provider based on a packet loss of the first transit provider and a packet loss of the second transit provider.

7. The method of claim 1 , wherein directing the traffic to the IP address comprises: associating a host prefix of a packet with a Border Gateway Protocol (BGP) community attribute; and

directing the packet to the one of the first transit provider and the second transit provider based on the BGP community attribute of the host prefix.

8. The method of claim 1 , wherein directing the traffic to the IP address comprises:

setting a next hop for traffic destined to the IP address to be a border router coupled to the one of the first transit provider and the second transit provider.

9. A method of directing traffic from a customer premises to an Internet Protocol (IP) address among a plurality of transit providers, the method comprising:

measuring a first latency on a first path from a collector device at the customer premises to the IP address, wherein the first path comprises a first transit provider in the plurality of transit providers and a first interface on a border router coupled to the first transit provider and the second transit provider;

measuring a second latency on a second path from the collector device to the IP address, wherein the second path comprises a second transit provider in the plurality of transit providers and a second interface on the border router;

performing a comparison of the first latency and the second latency;

selecting the second transit provider based on the comparison of the first latency and the second latency; and

directing traffic from the customer premises to the IP address via the second transit provider, wherein directing the traffic to the IP address comprises directing the traffic to the second transit provider via the second interface on the border router.

10. A non-transitory computer readable medium storing instructions which, when executed by one or more hardware processors, cause performance of operations for directing traffic from a customer premises to an Internet Protocol (IP) address among a plurality of transit providers, the operations comprising:

measuring a first latency on a first path from a collector device at the customer premises to the IP address, wherein the first path comprises a first transit provider in the plurality of transit providers and a first border router coupled to the first transit provider;

measuring a second latency on a second path from the collector device to the IP address, wherein the second path comprises a second transit provider in the plurality of transit providers, a second border router, and the first border router;

performing a comparison of the first latency and the second latency;

selecting the second transit provider based on the comparison of the first latency and the second latency; and

directing traffic from the customer premises to the IP address, wherein directing the traffic to the IP address comprises directing the traffic to the second transit provider on the second path via the first border router and the second border router.

11. The medium of claim 10 , wherein the operations for measuring the first latency further comprise:

transmitting an echo request to the IP address via the first transit provider; and

receiving an echo reply via the second transit provider.

12. The medium of claim 10 , wherein the operations for measuring the first latency further comprise:

transmitting an echo request to the IP address via a first interface of a border router coupled to the first transit provider; and

receiving an echo reply via a second interface of the border router.

13. The medium of claim 10 , wherein the operations for performing the comparison of the first latency and the second latency further comprise:

comparing an inbound latency of the first transit provider to an inbound latency of the second transit provider; and

comparing an outbound latency of the first transit provider to an outbound latency of the second transit provider.

14. The medium of claim 10 , wherein the operations for selecting the one of the first transit provider and the second transit provider further comprise:

selecting the one of the first transit provider and the second transit provider based on a cost of the first transit provider and a cost of the second transit provider.

15. The medium of claim 10 , wherein the operations for selecting the one of the first transit provider and the second transit provider further comprise:

selecting the one of the first transit provider and the second transit provider based on a packet loss of the first transit provider and a packet loss of the second transit provider.

16. The medium of claim 10 , wherein the operations for directing the traffic to the IP address further comprise: associating a host prefix of a packet with a Border Gateway Protocol (BGP) community attribute; and

directing the packet to the one of the first transit provider and the second transit provider based on the BGP community attribute of the host prefix.

17. The medium of claim 10 , wherein the operations for directing the traffic to the IP address further comprise:

setting a next hop for traffic destined to the IP address to be a border router coupled to the one of the first transit provider and the second transit provider.

18. A non-transitory computer readable medium storing instructions which, when executed by one or more hardware processors, cause performance of operations for directing traffic from a customer premises to an Internet Protocol (IP) address among a plurality of transit providers, the operations comprising:

measuring a first latency on a first path from a collector device at the customer premises to the IP address, wherein the first path comprises a first transit provider in the plurality of transit providers and a first interface on a border router coupled to the first transit provider and the second transit provider;

measuring a second latency on a second path from the collector device to the IP address, wherein the second path comprises a second transit provider in the plurality of transit providers and a second interface on the border router;

performing a comparison of the first latency and the second latency;

selecting the second transit provider based on the comparison of the first latency and the second latency; and

directing traffic from the customer premises to the IP address via the second transit provider, wherein directing the traffic to the IP address comprises directing the traffic to the second transit provider via the second interface on the border router.

19. A system, comprising:

at least one device including a hardware processor; and

the system being configured to perform operations for directing traffic from a customer premises to an Internet Protocol (IP) address among a plurality of transit providers, the operations comprising:

measuring a first latency on a first path from a collector device at the customer premises to the IP address, wherein the first path comprises a first transit provider in the plurality of transit providers and a first border router coupled to the first transit provider;

measuring a second latency on a second path from the collector device to the IP address, wherein the second path comprises a second transit provider in the plurality of transit providers, a second border router, and the first border router;

performing a comparison of the first latency and the second latency;

selecting the second transit provider based on the comparison of the first latency and the second latency; and

directing traffic from the customer premises to the IP address, wherein directing the traffic to the IP address comprises directing the traffic to the second transit provider on the second path via the first border router and the second border router.

20. A system, comprising:

at least one device including a hardware processor; and

the system being configured to perform operations for directing traffic from a customer premises to an Internet Protocol (IP) address among a plurality of transit providers, the operations comprising:

measuring a first latency on a first path from a collector device at the customer premises to the IP address, wherein the first path comprises a first transit provider in the plurality of transit providers and a first interface on a border router coupled to the first transit provider and the second transit provider;

measuring a second latency on a second path from the collector device to the IP address, wherein the second path comprises a second transit provider in the plurality of transit providers and a second interface on the border router;

performing a comparison of the first latency and the second latency;

selecting the second transit provider based on the comparison of the first latency and the second latency; and

directing traffic from the customer premises to the IP address via the second transit provider, wherein directing the traffic to the IP address comprises directing the traffic to the second transit provider via the second interface on the border router.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: POPESCU, ALIN; STANHOPE, PHILIP; MEHRA, ARUN; HULSHOF, STEPHEN; PREMORE, BRIAN; MADORY, DOUGLAS; BRAZINA, SCOTT MICHAEL; BAKER, CHARLIE; GIBSON, RICHARD
To: DYNAMIC NETWORK SERVICES, INC.
Reel/Frame 051804/0827 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2020
From: POPESCU, ALIN; STANHOPE, PHILIP; MEHRA, ARUN; HULSHOF, STEPHEN; PREMORE, BRIAN; MADORY, DOUGLAS; BRAZINA, SCOTT MICHAEL; BAKER, CHARLIE; GIBSON, RICHARD
To: DYNAMIC NETWOR SERVICES, INC.
Reel/Frame 051756/0622 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2018
From: POPESCU, ALIN; STANHOPE, PHILIP; MEHRA, ARUN; HULSHOF, STEPHEN; PREMORE, BRIAN; MADORY, DOUGLAS; BRAZINA, SCOTT MICHAEL; BAKER, CHARLIE; GIBSON, RICHARD
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 046665/0943 →
Continuity (2)
Provisional Application 62214814 · Sep 4, 2015
Related Publication 20180270161A1 · Sep 20, 2018