# US 2020/0112514 A1 · Congestion control

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

- Number: US 2020/0112514 A1
- Document ID: US20200112514A1
- Status: Published application
- Kind: A1
- Application number: 16/665,780
- Filed: 2019-10-28
- Published: 2020-04-09
- Earliest claimed: 2016-08-23
- Assignees: Netduma Software, LTD.
- Applicants: Netduma Software, LTD.
- Inventors: Iain Kibet Fraser
- Web page: https://patentgrep.com/patent/US20200112514A1

## CPC

- H04L 47/27: Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
- H04L 47/225: {Determination of shaping rate, e.g. using a moving window}
- H04L 47/76: using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In an embodiment, header information of messages is altered to specify a window within which to receive information, so that the messages sent by a remote device will be sent at a rate that a network can receive messages. The sending of acknowledgements of messages are paced to control window growth. Bandwidth is allocated to a plurality of flows such that the satisfied flows require less bandwidth than an amount of bandwidth allocated to each unsatisfied flow.

## Claims

### Claim 1

A method comprising:
allocating, by a machine, bandwidth to each of a plurality of flows that is adequate to satisfy the plurality flows, such that each flow that is allocated enough bandwidth to be satisfied, requires less bandwidth to be satisfied than an amount of bandwidth allocated to each unsatisfied flow, the machine including a processor system including at least one processor and a memory system.

### Claim 2 (depends on 1)

The method of claim 1, wherein bandwidth allocated to keep a flow satisfied is taken from unsatisfied flows.

### Claim 3 (depends on 1)

The method of claim 1, detecting that a flow is new, categorizing the flow as unsatisfied; and reallocating bandwidth already allocated to unsatisfied flows to the new flow.

### Claim 4 (depends on 1)

The method of claim 1, detecting that a flow ceased; and
reallocating bandwidth previously allocated to the ceased flow to unsatisfied flows.

### Claim 5 (depends on 1)

The method of claim 1, further comprising
detecting that an unsatisfied flow increased an amount of bandwidth required to be satisfied, in response, leaving an amount of bandwidth allocated to the unsatisfied flow unchanged.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining that a previously satisfied flow has increased an amount of bandwidth required to remain satisfied,
determining whether reallocating bandwidth from unsatisfied flows to the previously satisfied flow will result in the previously satisfied flow being allocated more bandwidth than an average bandwidth allocated to unsatisfied flows,
if reallocating bandwidth from unsatisfied flows to the previously satisfied flow will result in the previously satisfied flow being allocated more bandwidth than the average bandwidth allocated to unsatisfied flows, ceasing to allocate the previously satisfied flow an amount of bandwidth required to keep the previously satisfied flow satisfied, adding the bandwidth allocated to the satisfied flow to the bandwidth allocated to unsatisfied flows, and allocating to the previously satisfied flow an amount of bandwidth that is an average of bandwidth allocated to unsatisfied flows; and
if reallocating bandwidth from unsatisfied flows to the previously satisfied flow will not result in the previously satisfied flow being allocated more bandwidth than the average bandwidth allocated to unsatisfied flows, reallocating enough bandwidth from the unsatisfied flows to keep the previously satisfied flow satisfied, therein decreasing the average bandwidth allocated to unsatisfied flows.

### Claim 7 (depends on 1)

The method of claim 1, detecting that a satisfied flow decreased an amount of bandwidth that is required to remain satisfied, and in response reallocating from the satisfied flow to unsatisfied flows bandwidth that is no longer required to satisfy the satisfied flow.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
after an action that causes an increase in the average bandwidth allocated to previously unsatisfied flows, determining whether there are previously unsatisfied flows that have been allocated more bandwidth than the previously unsatisfied flow requires to be satisfied, if there is previously unsatisfied flow that has been allocated more bandwidth than the previously unsatisfied flow requires to be satisfied, then reallocating to unsatisfied flows bandwidth that is currently allocated to the previously unsatisfied flow that is not needed to satisfy the previously unsatisfied flow.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
after an action that causes a decrease in the average bandwidth allocated to unsatisfied flows, checking previously satisfied flows to determine whether there are previously satisfied flows that require more bandwidth to remain satisfied than the average bandwidth allocated to unsatisfied flows,
if there are previously satisfied flows that require more bandwidth to remain satisfied than the average bandwidth allocated to unsatisfied flows, reallocating to unsatisfied flows the bandwidth allocated to the previously satisfied flows that require more bandwidth to remain satisfied than the average bandwidth allocated to unsatisfied flows, and the previously satisfied flows that require more bandwidth to remain satisfied than the average bandwidth allocated to unsatisfied flows being allocated less bandwidth than required to remain satisfied, therein causing the previously satisfied flows that require more bandwidth to remain satisfied than the average bandwidth allocated to satisfied flows to be unsatisfied.
