IP Library Granted Patent US 10,644,978
Granted Patent B2
US 10,644,978 · App. 15/820,820 · Granted May 5, 2020

Latency increase estimated rate limiter adjustment

Inventors: Douglas Dillon (Germantown, MD); Arun Athrey Chandrasekaran (Germantown, MD)
Assignee: HUGHES NETWORK SYSTEMS, LLC
H04L43/087H04L12/4641H04L47/196H04L47/215H04L47/22H04L47/24H04L47/25H04L47/27H04L47/283H04L47/14H04L63/0428
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,644,978
App. No.
15/820,820
Granted
May 5, 2020
Kind
B2
Abstract

The technology described herein is directed to configuring the rate limiters of network devices based on latency measurements. The rate limiters are configured based on latency measurements such that the network traffic is transmitted and/or received at a maximum possible rate while minimizing/preventing the loss of traffic prioritization. To this end, a latency increase, estimated rate decrease algorithm may be implemented whereby the percentage rate reduction of a rate limiter is based on the rate of increase in inbound latency or outbound latency measured over a predetermined period of time (e.g., over a predetermined number of latency measurements). Depending on the change of inbound latency or outbound latency of traffic on the network, a receive rate limiter or a transmit rate limiter of an edge device may be dynamically adjusted.

Claims (50)

1. A method, comprising:

periodically measuring outbound latency of communications over a network from a first networked device to a second networked device, wherein one or more outbound latency measurements are made;

storing the one or more outbound latency measurements and a time corresponding to each of the one or more outbound latency measurements;

determining a rate of outbound latency increase based on a most recent outbound latency measurement and the stored one or more outbound latency measurements and the corresponding times, wherein determining the rate of outbound latency increase comprises calculating an increase in outbound latency over time from one of the stored one or more outbound latency measurements to the most recent outbound latency measurement;

determining a proportion by which to decrease a target transmission rate of the first networked device based on at least the determined rate of outbound latency increase; and

decreasing the target transmission rate of the first networked device by the determined proportion.

2. The method of claim 1 , further comprising: adjusting, based on the decreased target transmission rate, bandwidth allocation at the first networked device to a plurality of traffic streams having different priorities of service.

3. The method of claim 1 , further comprising: determining that the most recent outbound latency measurement exceeds a threshold; and in response to determining that the most recent outbound latency measurement exceeds the threshold, performing the operation of determining the proportion by which to decrease the target transmission rate of the first networked device.

4. The method of claim 3 , wherein the threshold is based on a moving average of a plurality of outbound latency measurements made before the most recent outbound latency measurement.

5. The method of claim 1 , further comprising: creating an object having a queue of predetermined size for storing a plurality of most recent outbound latency measurements and a time corresponding to each of the plurality of most recent outbound latency measurements, wherein the one or more outbound latency measurements are stored in the queue.

6. The method of claim 5 , further comprising: updating the object based on a new outbound latency measurement, wherein updating the object comprises:

determining if the object's queue is full;

if the object's queue is full, removing an entry from the queue corresponding to an oldest outbound latency measurement stored in the queue; and

adding the new outbound latency measurement and its associated time as a new entry into the queue.

7. The method of claim 5 , wherein determining the proportion by which to decrease the target transmission rate of the first networked device based on at least the determined rate of outbound latency increase, comprises:

for each of a plurality of entries of the object's queue, calculating a rate of outbound latency increase from the outbound latency measurement of the entry to the most recent outbound latency measurement; and

returning a maximum of the calculated rates of outbound latency increase.

8. The method of claim 7 , wherein the rate of outbound latency increase is calculated for each of the plurality of entries using: (L 0 −L N )/(T 0 −T N ), where L 0 is the most recent outbound latency measurement, L N is the outbound latency measurement associated with the queued entry, T 0 is the time of the most recent outbound latency measurement, and T N is the time of the outbound latency measurement associated with the queued entry.

9. The method of claim 1 , wherein periodically measuring outbound latency of communications over a network from the first networked device to the second networked device, comprises:

synchronizing a system clock of the first networked device with a system clock of the second networked device;

determining, using the system clock of the first networked device, when a data packet was transmitted by the first networked device to the second networked device; and

determining, using the system clock of the second networked device, when the data packet was received by the second networked device.

10. The method of claim 2 , wherein the first networked device is a router communicatively coupled to a broadband modem, the router configured to forward packets to the modem for transmission over the network.

11. The method of claim 10 , wherein the router is communicatively coupled to the second networked device over a tunnel.

12. A system, comprising:

a first networked device;

a processor; and

a non-transitory computer-readable operatively coupled to the processor, and having instructions stored therein that when executed by the processor causes the system to:

periodically measure outbound latency of communications over a network from the first networked device to a second networked device, wherein one or more outbound latency measurements are made;

store the one or more outbound latency measurements and a time corresponding to each of the one or more outbound latency measurements;

determine a rate of outbound latency increase based on a most recent outbound latency measurement and the stored one or more outbound latency measurements and the corresponding times, wherein determining the rate of outbound latency increase comprises calculating an increase in outbound latency over time from one of the stored one or more outbound latency measurements to the most recent outbound latency measurement;

determine a proportion by which to decrease a target transmission rate of the first networked device based on at least the determined rate of outbound latency increase; and

decrease the target transmission rate of the first networked device by the determined proportion.

13. The system of claim 12 , wherein the instructions, when executed by the processor, further cause the system to: adjust, based on the decreased target transmission rate, bandwidth allocation at the first networked device to a plurality of traffic streams having different priorities of service.

14. The system of claim 12 , wherein the instructions, when executed by the processor, further cause the system to: determine that the most recent outbound latency measurement exceeds a threshold; and in response to determining that the most recent outbound latency measurement exceeds the threshold, performing the operation of determining the proportion by which to decrease the target transmission rate of the first networked device, wherein the threshold is based on a moving average of a plurality of outbound latency measurements made before the most recent outbound latency measurement.

15. The system of claim 12 , wherein the instructions, when executed by the processor, further cause the system to: create an object having a queue of predetermined size for storing a plurality of most recent outbound latency measurements and a time corresponding to each of the plurality of most recent outbound latency measurements, wherein the one or more outbound latency measurements are stored in the queue.

16. The system of claim 15 , wherein the instructions, when executed by the processor, further cause the system to: update the object based on a new outbound latency measurement, wherein updating the object comprises:

determining if the object's queue is full;

if the object's queue is full, removing an entry from the queue corresponding to an oldest outbound latency measurement stored in the queue; and

adding the new outbound latency measurement and its associated time as a new entry into the queue.

17. The system of claim 15 , wherein determining the proportion by which to decrease the target transmission rate of the first networked device based on at least the determined rate of outbound latency increase, comprises:

for each of a plurality of entries of the object's queue, calculating a rate of outbound latency increase from the outbound latency measurement of the entry to the most recent outbound latency measurement; and

returning a maximum of the calculated rates of outbound latency increase.

18. The system of claim 17 , wherein rate of outbound latency increase is calculated for each of the plurality of entries using: (L 0 −L N )/(T 0 −T N ), where L 0 is the most recent outbound latency measurement, L N is the outbound latency measurement associated with the queued entry, T 0 is the time of the most recent outbound latency measurement, and T N is the time of the outbound latency measurement associated with the queued entry.

19. A method, comprising:

periodically measuring inbound latency of communications over a network to a first networked device from a second networked device, wherein one or more inbound latency measurements are made;

storing the one or more inbound latency measurements and a time corresponding to each of the one or more inbound latency measurements;

determining a rate of inbound latency increase based on a most recent inbound latency measurement and the stored one or more inbound latency measurements and the corresponding times, wherein determining the rate of inbound latency increase comprises calculating an increase in inbound latency over time from one of the stored one or more inbound latency measurements to the most recent inbound latency measurement;

determining a proportion by which to decrease a target receive rate of the first networked device based on at least the determined rate of inbound latency increase; and

decreasing the target receive rate of the first networked device by the determined proportion.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 15649418 PREVIOUSLY RECORDED ON REEL 050600 FRAME 0314. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF PATENT SECURITY AGREEMENTS. Recorded Sep 3, 2020
From: WELLS FARGO, NATIONAL BANK ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 053703/0367 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2020
From: DILLON, DOUGLAS; CHANDRASEKARAN, ARUN ATHREY
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 052192/0433 →
ASSIGNMENT OF PATENT SECURITY AGREEMENTS Recorded Oct 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 050600/0314 →
SECURITY INTEREST Recorded Feb 19, 2018
From: HUGHES NETWORK SYSTEMS, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION - AS COLLATERAL AGENT
Reel/Frame 044966/0156 →
Cited By (1)
US 12,712,849