# US 10,122,640 B2 · Minimal buffer network arbiter

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

- Number: US 10,122,640 B2
- Document ID: US10122640B2
- Status: Granted
- Kind: B2
- Application number: 14/605,498
- Filed: 2015-01-26
- Published: 2016-07-28
- Granted: 2018-11-06
- Earliest claimed: 2015-01-26
- Assignees: LiveQoS Inc.
- Applicants: LiveQoS Inc.
- Inventors: Miika Anttoni Klemetti; Yuri Nebogatov; Matthew Robert Williams
- Web page: https://patentgrep.com/patent/US10122640B2

## CPC

- H04L 47/30: in combination with information about buffer occupancy at either end or at transit nodes
- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L 47/28: in relation to timing considerations
- H04L 47/724: at intermediate nodes, e.g. resource reservation protocol [RSVP]
- H04L 65/765: {intermediate}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network arbiter and associated method for linking and controlling the rate of data transmission between a sender on a connected network and a client with an advertised receive window are disclosed. The network arbiter comprises a downstream temporary storage for temporarily storing data in transmission from the sender to the client, an upstream temporary storage for temporarily storing data in transmission from the client to the sender and a processor operatively connected to the downstream temporary storage and the upstream temporary storage. The processor is configured to alter the advertised receive window in order to modulate the rate of data transmission.

## Claims

### Claim 1

A network arbiter for minimizing buffering by controlling a rate of packet data transmission between a sender and a client connected to a network, the network arbiter comprising:
an advertised receive window of a predetermined size expressed in one of bytes or number of packets;
a downstream temporary storage for temporarily storing data in transmission from the sender to the client;
an upstream temporary storage for temporarily storing data in transmission from the client to the sender; and
a processor, operatively connected to the downstream temporary storage and the upstream temporary storage, the processor configured to alter the predetermined size of the advertised receive window in order to modulate the rate of packet data transmission of the data temporarily stored in the downstream temporary storage and the data temporarily stored in the upstream temporary storage.

### Claim 2 (depends on 1)

The network arbiter of claim 1 wherein the processor is configured to:
a. determine a round trip time between the client and the sender;
b. determine a downstream channel capacity between the downstream temporary storage and the client;
c. calculate a bandwidth delay product from the round trip time and the downstream channel capacity; and
d. alter the size of the advertised receive window to a number of bytes equal to the calculated bandwidth delay product.

### Claim 3 (depends on 2)

The network arbiter of claim 2 wherein the processor repeats steps a to d when a prescribed condition is met.

### Claim 4 (depends on 3)

The network arbiter of claim 3 wherein the prescribed condition is a passage of a preset amount of time.

### Claim 5 (depends on 3)

The network arbiter of claim 3 wherein the prescribed condition is a reception of a preset number of data packets.

### Claim 6 (depends on 3)

The network arbiter of claim 3 wherein the prescribed condition 1 s the downstream temporary storage filling to a prescribed level.

### Claim 7 (depends on 2)

The network arbiter of claim 2 wherein the downstream channel capacity is a preset value.

### Claim 8 (depends on 2)

The network arbiter of claim 2 wherein the downstream channel capacity is determined dynamically by the processor according to traffic conditions.

### Claim 9 (depends on 2)

The network arbiter of claim 2 wherein the bandwidth delay product is calculated by multiplying the round trip time by the downstream channel capacity.

### Claim 10 (depends on 2)

The network arbiter of claim 2 wherein the processor alters the size of the advertised receive window by overwriting a value in an acknowledgement data packet sent by the client.

### Claim 11 (depends on 1)

The network arbiter of claim 1 wherein the processor is configured to apply a random early discard packet dropping algorithm if the downstream temporary storage nears saturation.

### Claim 12

A method of minimizing buffering of a data stream through control of a rate of packet data transmission between a sender and a client connected to a network, the method comprising:
setting a size of an advertised received window in one of number of bytes or number of packets;
temporarily storing data in transmission from the sender to the client, in a downstream temporary storage;
temporarily storing data in transmission from the client to the sender, in an upstream temporary storage; and
altering the size of the advertised received window of said client in order to modulate the rate of data transmission of the data temporarily stored in the downstream temporary storage and the data temporarily stored in the upstream temporary storage.

### Claim 13 (depends on 12)

The method of claim 12 which includes:
a. determining a round trip time between the client and the sender;
b. determining a downstream channel capacity between the network arbiter and the client;
c. calculating a bandwidth delay product from the round trip time and the downstream channel capacity; and
d. altering the size of the advertised receive window to be equal to the calculated bandwidth delay product.

### Claim 14 (depends on 13)

The method of claim 13 wherein steps a-d are repeated when a prescribed condition is met.

### Claim 15 (depends on 14)

The method of claim 14 wherein the prescribed condition is a passage of a preset amount of time.

### Claim 16 (depends on 14)

The method of claim 14 wherein the prescribed condition is a reception of a preset number of data packets.

### Claim 17 (depends on 14)

The method of claim 14 wherein the prescribed condition is a downstream temporary storage filling to a prescribed level.

### Claim 18 (depends on 13)

The method of claim 13 wherein the downstream channel capacity is a preset value.

### Claim 19 (depends on 13)

The method of claim 13 wherein the downstream channel capacity is determined dynamically according to traffic conditions.

### Claim 20 (depends on 13)

The method of claim 13 wherein the bandwidth delay product is calculated by multiplying the round trip time by the downstream channel capacity.

### Claim 21 (depends on 12)

The method of claim 12 wherein the size of the advertised receive window is altered by overwriting a value in an acknowledgement data packet sent by the client.

### Claim 22 (depends on 12)

The method of claim 12 wherein a random early discard packet dropping algorithm is applied if the downstream temporary storage nears saturation.
