# US 2018/0026897 A1 · Systems and methods for managing network congestion

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0026897 A1
- Document ID: US20180026897A1
- Status: Published application
- Kind: A1
- Application number: 15/213,759
- Filed: 2016-07-19
- Published: 2018-01-25
- Earliest claimed: 2016-07-19
- Assignees: CoCo Communications Corp.
- Applicants: CoCo Communications Corp.
- Inventors: A. Riley Eller; Dennis M. Edwards
- Web page: https://patentgrep.com/patent/US20180026897A1

## CPC

- H04L 47/27: Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
- H04L 43/045: for graphical visualisation of monitoring data
- H04L 43/067: using time frame reporting
- H04L 43/0882: Utilisation of link capacity
- H04L 47/127: by using congestion prediction
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques for managing congestion in a computer network are described. In some examples a network node uses a dynamic moving average to determine a level of network congestion a computer network. The dynamic moving average uses a window that is dynamically resized based on the contents of the window. For example, when the contents of the half of the window containing older samples are sufficiently different from the contents of the half of the window containing newer samples, the older samples are discarded and an average is calculated using just the newer samples.

## Claims

### Claim 1

A method for managing congestion in a computer network, the method comprising:
by a network node having a processor, a memory, and a network interface,
recording in the memory a history of network performance measurements provided by the network interface, wherein the history includes, for each of multiple times, a first and second value that each represent a different performance characteristic of the network measured at the time;
identifying a first and second portion of the history, wherein the first portion corresponds to earlier performance measurements, and wherein the second portion corresponds to later performance measurements that occur after the measurements represented by the first portion;
determining whether or not a difference between first values of the first portion and first values of the second portion is statistically significant; and
when the difference is statistically significant, determining a network congestion level using only second values in the second portion of the history.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: when the difference is statistically significant, discarding the first portion of the history.

### Claim 3 (depends on 1)

The method of claim 1, wherein the determining whether or not the difference between first values of the first portion and first values of the second portion is statistically significant includes: performing a t-test to compare an average of the values in the first portion with an average of the values of the second portion.

### Claim 4 (depends on 1)

The method of claim 1, further comprising: when the difference is not statistically significant, determining the network congestion level using second values in the entire history.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first and second values each represent one of packet transmission or delivery failure/success, network data rate, and network noise level.

### Claim 6 (depends on 1)

The method of claim 1, wherein the identifying a first and second portion of the history includes: identifying a first half of the history and a second half of the history, the first half corresponding to the earlier performance measurements, and the second half corresponding to the later performance measurements.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
establishing a maximum and minimum size for the history; and
when new performance measurements are to be recorded and the history has a current size that is equal to the maximum size, discarding the values corresponding to the oldest measurements.

### Claim 8 (depends on 7)

The method of claim 7,
wherein the maximum size is 64 entries; and
wherein the minimum size is 8 entries.

### Claim 9 (depends on 1)

The method of claim 1, wherein determining the network congestion level includes:
determining an average based on second values in the history.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
in response to the determined network congestion level, instructing the network interface to adjust transmission parameters in response.

### Claim 11

A system configured to manage congestion in a computer network, the system comprising:
a first network node having a processor, a memory, and a network interface;
wherein the processor is configured to:
record in the memory a history of network performance measurements provided by the network interface, wherein the history includes, for each of multiple times, a first and second value that each represent a different performance characteristic of the network measured at the time;
identify a first and second portion of the history, wherein the first portion corresponds to earlier performance measurements, and wherein the second portion corresponds to later performance measurements that occur after the measurements represented by the first portion;
determine whether or not a difference between first values of the first portion and first values of the second portion is statistically significant; and
when the difference is statistically significant, determine a network congestion level using only second values in the second portion of the history.

### Claim 12 (depends on 11)

The system of claim 11, wherein the first network node is configured to:
initially transmit packets to a second network node via an intermediary network node, wherein the intermediary network node forwards packets to the second network node; and
in response to the determined network congestion level, transmit packets to the second network node directly, without use of the intermediary network node.

### Claim 13 (depends on 12)

The system of claim 12, wherein the first network node is configured to:
determine a first network congestion level based on a recorded first history of network performance measurements for a link between the first network node and the second network node;
determine a second network congestion level based on a recorded second history of network performance measurements for a link between the first network node and the intermediary network node; and
determine, based on a comparison of the first network congestion level to the second network congestion level, to transmit packets to the second network node directly instead of via the intermediary network node.

### Claim 14 (depends on 11)

The system of claim 11, wherein the first network node discards the first portion of the history when the difference is statistically significant.

### Claim 15 (depends on 11)

The system of claim 11, wherein the first network node determines whether or not the difference between first values of the first portion and first values of the second portion is statistically significant by: determining whether an average of the values of the first portion is within a predetermined confidence interval of an average of the values of the second portion.

### Claim 16 (depends on 11)

The system of claim 11, wherein the first network node is further configured to: when the difference is not statistically significant, determine the network congestion level using the second values in the entire history.

### Claim 17 (depends on 11)

The system of claim 11, wherein the first and second values each represent one of packet transmission or delivery failure/success, network data rate, and network noise level.

### Claim 18

A non-transitory computer-readable medium including contents that are configured, when executed, to cause a network node to perform a method for managing congestion in a computer network, wherein the network node includes a processor, a memory, and a network interface, the method comprising:
by the network node,
recording in the memory a history of network performance measurements provided by the network interface, wherein the history includes, for each of multiple times, a first and second value that each represent a different performance characteristic of the network measured at the time;
identifying a first and second portion of the history, wherein the first portion corresponds to earlier network performance measurements, and wherein the second portion corresponds to later network measurements that occur after the measurements represented by the first portion;
determining whether or not the difference between first values of the first portion and first values of the second portion is statistically significant; and
when the difference is statistically significant, determining a network congestion level using only second values in the second portion of the history.

### Claim 19 (depends on 18)

The non-transitory medium of claim 18, wherein the method further comprises:
discarding the first portion of the history when the difference is statistically significant;
when the difference is not statistically significant, determining the network congestion level using second values in the entire history;
establishing a maximum and minimum size for the history; and
when new network performance measurements are to be recorded and the history has a current size that is equal to the maximum size, discarding the values corresponding to the oldest measurements;
wherein the first and second values each represent one of packet transmission or delivery failure/success, network data rate, and network noise level;
wherein the identifying the first and second portion of the history includes identifying a first half of the history and a second half of the history, the first half corresponding to the earlier performance measurements, and the second half corresponding to the later performance measurements.

### Claim 20 (depends on 19)

The non-transitory medium of claim 19, wherein the method further comprises:
determining a first congestion level based on a recorded first history of performance measurements for a link between the first network node and a second network node;
determining a second congestion level based on a recorded second history of performance measurements for a link between the first network node and an intermediary network node; and
determining, based on a comparison of the first congestion level to the second congestion level, to transmit packets to the second network node directly instead of via the intermediary network node.
