# US 11,909,593 B2 · System and method for assessing communication resources

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

- Number: US 11,909,593 B2
- Document ID: US11909593B2
- Status: Granted
- Kind: B2
- Application number: 16/640,985
- Filed: 2018-08-22
- Published: 2021-04-29
- Granted: 2024-02-20
- Earliest claimed: 2017-08-22
- Assignees: Dejero Labs Inc.
- Applicants: Dejero Labs Inc.
- Inventors: Imad Azzam; David Sze; Todd Schneider; Jonathon Oberholzer; Bogdan Frusina
- Web page: https://patentgrep.com/patent/US11909593B2

## CPC

- H04L 43/0882: Utilisation of link capacity
- H04L 41/0896: Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities (flow or congestion control using dynamic resource allocation, e.g. in-call renegotiation, H04L47/76)
- H04L 43/0829: Packet loss
- H04L 43/0852: Delays
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In some embodiments, a computer implemented method for assessing network bandwidth availability in a network connection having unknown excess capacity beyond an initial network capacity is provided. There are two cases to be considered: (1) the network has a given capacity and the system doesn't know what it is (e.g., on a cellular network) this capacity may change over time as more users use the network and/or a user is mobile, and (2) the system is assigned capacity but by pushing the network, the system may be able to get more capacity (e.g., on a satellite hub). The excess capacity may be quantified for future potential opportunistic, emergency or priority usage, or in some embodiments, utilized periodically or continuously.

## Claims

### Claim 1

A computer implemented method for assessing network bandwidth availability in a network connection of a plurality of network connections each having a corresponding allocated capacity which in total is a full hub capacity, the network connection having unknown excess capacity beyond a first network capacity, the method comprising:
maintaining a data structure storing an estimated maximum network capacity value for a network connection;
generating a probe data payload paired with one or more non-probe data payloads, the probe data payload including additional data based on the one or more non-probe data payloads;
transmitting the probe data payload and the one or more non-probe data payloads through a network connection, the probe data payload and the one or more non-probe data payloads exceeding the estimated maximum network capacity value for the network connection by a controlled amount;
monitoring one or more network response characteristics of the network connection to determine whether at least one of increased latency or increased packet loss occurs responsive to the transmission during a corresponding time of day or corresponding location of a device transmitting the probe data payload and the one or more non-probe data payloads;
responsive to the one or more network response characteristics indicating that neither increased latency or increased packet loss occurs, periodically or continuously updating the data structure to increase the estimated maximum network capacity value for the network connection for a duration corresponding to the corresponding time of day or for an area corresponding to the corresponding location, the estimated maximum network capacity value representative of the assessed network bandwidth availability; and
responsive to an overcapacity data request for additional availability for usage of existing networking connections beyond nominally allocated capacities during the duration corresponding to the corresponding time of day or from a device located within the area, communicating the overcapacity data request at least partially on the network connection by iteratively reconfiguring the corresponding allocated capacity of one or more other network connections of the plurality of network connections to allow for the overcapacity data request during a period of the overcapacity data request; wherein a number of iterations n of step-wise increases is based at least on a relation:
n=[log(C−T−(K−1)R)−log(C−C/K−(K−1)R)]/[log(K−1)−log(K)], where C is the full hub capacity, K is a total number of network connections of the plurality of network connections, R is a minimum bit rate at each network connection of the plurality of network connections, and T is a target bit rate requested by a terminal requesting the overcapacity data request and updating the estimated maximum network capacity value for the data structure for the corresponding time of day or the corresponding location.

### Claim 2 (depends on 1)

The method of claim 1, wherein the probe data payload is sized such that the latency responsive to the addition of the probe data payload to the transmission is less than or equal to a glass-to-glass latency between a transmitter and an endpoint.

### Claim 3 (depends on 1)

The method of claim 1, wherein the probe data payload is sized such that the latency responsive to the addition of the probe data payload to the transmission is less than or equal to a glass-to-glass latency between a transmitter and an endpoint reduced by a safety factor margin.

### Claim 4 (depends on 1)

The method of claim 1, wherein the probe data payload is sized to cause a burst in bandwidth required for the transmission of the probe data payload and the one or more non-probe data payloads.

### Claim 5 (depends on 4)

The method of claim 4, wherein at least one of the increased latency and the increased packet loss is averaged across a pre-defined duration of time.

### Claim 6 (depends on 4)

The method of claim 4, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the burst.

### Claim 7 (depends on 1)

The method of claim 1, comprising:
iteratively probing the network connection by generating one or more additional probe data payloads, each sequential additional probe data payload of the one or more additional probe data payloads being sized to require differing amounts of data than a previous probe data payload, the one or more additional probe data payloads used to iteratively update the estimated maximum network capacity value for the network connection over a period of time; and
wherein the size of each sequential additional probe data payload is increased responsive to the one or more network response characteristics when the one or more network response characteristics indicate that neither increased latency or increased packet loss occurs; or
wherein the size of each sequential additional probe data payload is decreased responsive to the one or more network response characteristics when the one or more network response characteristics indicate that at least one of increased latency and increased packet loss occurs.

### Claim 8 (depends on 7)

The method of claim 7, wherein the size of the increase or the decrease of size of each sequential additional probe data payload is a constant value.

### Claim 9 (depends on 8)

The method of claim 8, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the constant value.

### Claim 10 (depends on 7)

The method of claim 7, wherein the iterative probing occurs until a steady state estimated maximum network capacity value is observed for a period of time, and comprising: updating the data structure to store the steady-state estimated maximum network capacity value.

### Claim 11 (depends on 1)

The method of claim 1, wherein the estimated maximum network capacity value is reserved for usage during at least one of emergency or priority communications.

### Claim 12 (depends on 1)

The method of claim 1, wherein the data structure is populated with an initial estimated maximum network capacity value set at an initial network capacity value.

### Claim 13 (depends on 1)

The method of claim 1, wherein the estimated maximum network capacity value is transmitted to a network controller.

### Claim 14 (depends on 1)

The method of claim 1, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the probe data payload, the picture loss risk tolerance factor value being substantially proportional to the size of the probe data payload.

### Claim 15 (depends on 1)

The method of claim 1, wherein the data structure is maintained by a central bandwidth manager, the central bandwidth manager configured to triage bandwidth requests and to identify connections by utilizing at least one of burst probing and step-wise probing.

### Claim 16 (depends on 1)

The method of claim 1, wherein the updated estimated maximum network capacity value is associated with an expiry time duration, and upon elapse of the expiry time duration, the estimated maximum network capacity is reset to the initial network capacity value.

### Claim 17 (depends on 1)

The method of claim 1, wherein the initial network capacity is at least one of (i) an allocated network capacity or (ii) an unknown quantity dependent on one or more external characteristics of the network connection.

### Claim 18 (depends on 1)

The method of claim 1, wherein the network connection comprises one or more bonded or blended network connections, the estimated network capacity value based on an overall network capacity provided across all or a part of the one or more bonded or blended network connections.

### Claim 19 (depends on 1)

The method of claim 1, further comprising:
processing the data structure to determine whether the estimated maximum network capacity value for the network connection is sufficient to fulfill a target network capacity value;
upon determining that the estimated maximum network capacity value is not sufficient to fulfill the target network capacity value, requesting additional network resources for bonding or blending with the network connection.

### Claim 20 (depends on 1)

The method of claim 1, wherein the initial network capacity is constrained by a selection of a data package determining a level of network resources allocated to the network connection by a network provider.

### Claim 21

A computer implemented system for assessing network bandwidth availability in a network connection of a plurality of network connections each having a corresponding allocated capacity which in total is a full hub capacity, the network connection having unknown excess capacity beyond a first network capacity, the system comprising:
a data storage configured to maintain a data structure storing an estimated maximum network capacity value for a network connection;
a processor configured to generate a probe data payload paired with one or more non-probe data payloads, the probe data payload including additional data based on the one or more non-probe data payloads;
a network interface configured to transmit the probe data payload and the one or more non-probe data payloads through a network connection, the probe data payload and the one or more non-probe data payloads exceeding the estimated maximum network capacity value for the network connection by a controlled amount;
the processor further configured to monitor one or more network response characteristics of the network connection to determine whether at least one of increased latency or increased packet loss occurs responsive to the transmission during a corresponding time of day or corresponding location of a device transmitting the probe data payload and the one or more non-probe data payloads;
responsive to the one or more network response characteristics indicating that neither increased latency or increased packet loss occurs, periodically or continuously update the data structure to increase the estimated maximum network capacity value for the network connection for a duration corresponding to the corresponding time of day or for an area corresponding to the corresponding location, the estimated maximum network capacity value representative of the assessed network bandwidth availability; and
responsive to an overcapacity data request for additional availability for usage of existing networking connections beyond nominally allocated capacities during the duration corresponding to the corresponding time of day or from a device located within the area, communicate the overcapacity data request at least partially on the network connection by iteratively reconfiguring the corresponding allocated capacity of one or more other network connections of the plurality of network connections to allow for the overcapacity data request during a period of the overcapacity data request; wherein a number of iterations n of step-wise increases is based at least on a relation:
n=[log(C−T−(K−1)R)−log(C−C/K−(K−1)R)]/[log(K−1)−log(K)], where C is the full hub capacity, K is a total number of network connections of the plurality of network connections, R is a minimum bit rate at each network connection of the plurality of network connections, and T is a target bit rate requested by a terminal requesting the overcapacity data request; and updating the estimated maximum network capacity value for the data structure for the corresponding time of day or the corresponding location.

### Claim 22 (depends on 21)

The system of claim 21, wherein the probe data payload is sized such that the latency responsive to the addition of the probe data payload to the transmission is less than or equal to a glass-to-glass latency between a transmitter and an endpoint.

### Claim 23 (depends on 21)

The system of claim 21, wherein the probe data payload is sized such that the latency responsive to the addition of the probe data payload to the transmission is less than or equal to a glass-to-glass latency between a transmitter and an endpoint reduced by a safety factor margin.

### Claim 24 (depends on 21)

The system of claim 21, wherein the probe data payload is sized to cause a burst in bandwidth required for the transmission of the probe data payload and the one or more non-probe data payloads.

### Claim 25 (depends on 24)

The system of claim 24, wherein at least one of the increased latency and the increased packet loss is averaged across a pre-defined duration of time.

### Claim 26 (depends on 24)

The system of claim 24, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the burst.

### Claim 27 (depends on 21)

The system of claim 21, the processor further configured to iteratively probe the network connection by generating one or more additional probe data payloads, each sequential additional probe data payload of the one or more additional probe data payloads being sized to require differing amounts of data than a previous probe data payload, the one or more additional probe data payloads used to iteratively update the estimated maximum network capacity value for the network connection over a period of time; and
wherein the size of each sequential additional probe data payload is increased responsive to the one or more network response characteristics when the one or more network response characteristics indicate that neither increased latency or increased packet loss occurs; or
wherein the size of each sequential additional probe data payload is decreased responsive to the one or more network response characteristics when the one or more network response characteristics indicate that at least one of increased latency and increased packet loss occurs.

### Claim 28 (depends on 27)

The system of claim 27, wherein the size of the increase or the decrease of size of each sequential additional probe data payload is a constant value.

### Claim 29 (depends on 28)

The system of claim 28, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the constant value.

### Claim 30 (depends on 27)

The system of claim 27, wherein the iterative probing occurs until a steady state estimated maximum network capacity value is observed for a period of time, and comprising: updating the data structure to store the steady-state estimated maximum network capacity value.

### Claim 31 (depends on 21)

The system of claim 21, wherein the estimated maximum network capacity value is reserved for usage during at least one of emergency or priority communications.

### Claim 32 (depends on 21)

The system of claim 21, wherein the data structure is populated with an initial estimated maximum network capacity value set at an initial network capacity value.

### Claim 33 (depends on 21)

The system of claim 21, wherein the estimated maximum network capacity value is transmitted to a network controller.

### Claim 34 (depends on 21)

The system of claim 21, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the probe data payload, the picture loss risk tolerance factor value being substantially proportional to the size of the probe data payload.

### Claim 35 (depends on 21)

The system of claim 21, wherein the data structure is maintained by a central bandwidth manager, the central bandwidth manager configured to triage bandwidth requests and to identify connections by utilizing at least one of burst probing and step-wise probing.

### Claim 36 (depends on 21)

The system of claim 21, wherein the updated estimated maximum network capacity value is associated with an expiry time duration, and upon elapse of the expiry time duration, the estimated maximum network capacity is reset to the initial network capacity value.

### Claim 37 (depends on 21)

The system of claim 21, wherein the initial network capacity is at least one of (i) an allocated network capacity or (ii) an unknown quantity dependent on one or more external characteristics of the network connection.

### Claim 38 (depends on 21)

The system of claim 21, wherein the network connection comprises one or more bonded or blended network connections, the estimated network capacity value based on an overall network capacity provided across all or a part of the one or more bonded or blended network connections; and wherein the overcapacity data request for additional availability is allocated across all of the one or more bonded or blended network connections.

### Claim 39 (depends on 21)

The system of claim 21, the system further comprising:
a network controller configured to process the data structure to determine whether the estimated maximum network capacity value for the network connection is sufficient to fulfill a target network capacity value, and
the network controller is configured to, upon determining that the estimated maximum network capacity value is not sufficient to fulfill the target network capacity value, generate one or more requests additional network resources for bonding or blending with the network connection.

### Claim 40 (depends on 21)

The system of claim 21, wherein the initial network capacity is constrained by a selection of a data package determining a level of network resources allocated to the network connection by a network provider.

### Claim 41

A non-transitory computer readable medium, storing machine interpretable instructions, which when executed, cause a processor to perform a method for assessing network bandwidth availability in a network connection of a plurality of network connections each having a corresponding allocated capacity which in total is a full hub capacity, the network connection having unknown excess capacity beyond a first network capacity, the method comprising:
maintaining a data structure storing an estimated maximum network capacity value for a network connection;
generating a probe data payload paired with one or more non-probe data payloads, the probe data payload including additional data based on the one or more non-probe data payloads;
transmitting the probe data payload and the one or more non-probe data payloads through a network connection, the probe data payload and the one or more non-probe data payloads exceeding the estimated maximum network capacity value for the network connection by a controlled amount;
monitoring one or more network response characteristics of the network connection to determine whether at least one of increased latency or increased packet loss occurs responsive to the transmission during a corresponding time of day or corresponding location of a device transmitting the probe data payload and the one or more non-probe data payloads; and
responsive to the one or more network response characteristics indicating that neither increased latency or increased packet loss occurs, periodically or continuously updating the data structure to increase the estimated maximum network capacity value for the network connection for a duration corresponding to the corresponding time of day or for an area corresponding to the corresponding location, the estimated maximum network capacity value representative of the assessed network bandwidth availability; and
responsive to an overcapacity data request for additional availability for usage of existing networking connections beyond nominally allocated capacities during the duration corresponding to the corresponding time of day or from a device located within the area, communicate the overcapacity data request at least partially on the network connection by iteratively reconfiguring the corresponding allocated capacity of one or more other network connections of the plurality of network connections to allow for the overcapacity data request during a period of the overcapacity data request; wherein a number of iterations n of step-wise increases is based at least on relation:
n=[log(C−T−(K−1)R)−log(C−C/K−(K−1)R)]/[log(K−1)−log(K)], where C is the full hub capacity, K is a total number of network connections of the plurality of network connections, R is a minimum bit rate at each network connection of the plurality of network connections, and T is a target bit rate requested by a terminal requesting the overcapacity data request; and updating the estimated maximum network capacity value for the data structure for the corresponding time of day or the corresponding location.

### Claim 42 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the probe data payload is sized such that the latency responsive to the addition of the probe data payload to the transmission is less than or equal to a glass-to-glass latency between a transmitter and an endpoint.

### Claim 43 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the probe data payload is sized such that the latency responsive to the addition of the probe data payload to the transmission is less than or equal to a glass-to-glass latency between a transmitter and an endpoint reduced by a safety factor margin.

### Claim 44 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the probe data payload is sized to cause a burst in bandwidth required for the transmission of the probe data payload and the one or more non-probe data payloads.

### Claim 45 (depends on 44)

The non-transitory computer readable medium of claim 44, wherein at least one of the increased latency and the increased packet loss is averaged across a pre-defined duration of time.

### Claim 46 (depends on 44)

The non-transitory computer readable medium of claim 44, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the burst.

### Claim 47 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the method comprises:
iteratively probing the network connection by generating one or more additional probe data payloads, each sequential additional probe data payload of the one or more additional probe data payloads being sized to require differing amounts of data than a previous probe data payload, the one or more additional probe data payloads used to iteratively update the estimated maximum network capacity value for the network connection over a period of time; and
wherein the size of each sequential additional probe data payload is increased responsive to the one or more network response characteristics when the one or more network response characteristics indicate that neither increased latency or increased packet loss occurs; or
wherein the size of each sequential additional probe data payload is decreased responsive to the one or more network response characteristics when the one or more network response characteristics indicate that at least one of increased latency and increased packet loss occurs.

### Claim 48 (depends on 47)

The non-transitory computer readable medium of claim 47, wherein the size of the increase or the decrease of size of each sequential additional probe data payload is a constant value.

### Claim 49 (depends on 48)

The non-transitory computer readable medium of claim 48, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the constant value.

### Claim 50 (depends on 47)

The non-transitory computer readable medium of claim 47, wherein the iterative probing occurs until a steady state estimated maximum network capacity value is observed for a period of time, and comprising: updating the data structure to store the steady-state estimated maximum network capacity value.

### Claim 51 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the estimated maximum network capacity value is reserved for usage during at least one of emergency or priority communications.

### Claim 52 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the data structure is populated with an initial estimated maximum network capacity value set at an initial network capacity value.

### Claim 53 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the estimated maximum network capacity value is transmitted to a network controller.

### Claim 54 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the data structure further includes a picture loss risk tolerance factor value, and the picture loss risk tolerance factor value is used to determine the size of the probe data payload, the picture loss risk tolerance factor value being substantially proportional to the size of the probe data payload.

### Claim 55 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the data structure is maintained by a central bandwidth manager, the central bandwidth manager configured to triage bandwidth requests and to identify connections by utilizing at least one of burst probing and step-wise probing.

### Claim 56 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the updated estimated maximum network capacity value is associated with an expiry time duration, and upon elapse of the expiry time duration, the estimated maximum network capacity is reset to the initial network capacity value.

### Claim 57 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the initial network capacity is at least one of (i) an allocated network capacity or (ii) an unknown quantity dependent on one or more external characteristics of the network connection.

### Claim 58 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the network connection comprises one or more bonded or blended network connections, the estimated network capacity value based on an overall network capacity provided across all or a part of the one or more bonded or blended network connections; and wherein the overcapacity data request for additional availability is allocated across all of the one or more bonded or blended network connections.

### Claim 59 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the method further comprises:
processing the data structure to determine whether the estimated maximum network capacity value for the network connection is sufficient to fulfill a target network capacity value;
upon determining that the estimated maximum network capacity value is not sufficient to fulfill the target network capacity value, requesting additional network resources for bonding or blending with the network connection.

### Claim 60 (depends on 41)

The non-transitory computer readable medium of claim 41, wherein the initial network capacity is constrained by a selection of a data package determining a level of network resources allocated to the network connection by a network provider.
