# US 10,320,526 B1 · Packet coding based network communication

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

- Number: US 10,320,526 B1
- Document ID: US10320526B1
- Status: Granted
- Kind: B1
- Application number: 14/936,010
- Filed: 2015-11-09
- Granted: 2019-06-11
- Earliest claimed: 2014-11-07
- Assignees: Strong Force IOT Portfolio 2016, LLC
- Applicants: Strong Force Iot Portfolio 2016, LLC
- Inventors: Tracey Ho
- Web page: https://patentgrep.com/patent/US10320526B1

## CPC

- H04L 1/0076: {Distributed coding, e.g. network coding, involving channel coding (coding in both space and time H04L1/0618; cooperative diversity H04B7/022)}
- H04L 1/0009: {by adapting the channel coding (H04L1/1812 takes precedence)}
- H04L 1/0041: {Arrangements at the transmitter end}
- H04L 1/0071: {Use of interleaving (interleaving per se H03M13/27)}
- H04L 2001/0093: {Point-to-multipoint}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for data communication from a first node to a second node over a data channel coupling the first node and the second node includes receiving messages at the first node from the second node, including receiving messages comprising data that depend at least in part of characteristics of the channel coupling the first node and the second node, transmitting messages from the first node to the second node, including applying forward error correction according to parameters determined from the received messages, the parameters determined from the received messages including at least two of a block size, an interleaving factor, and a code rate.

## Claims

### Claim 1

A method for data communication from a first node to a second node over a data channel coupling the first node and the second node, the method comprising:
receiving messages at the first node from the second node, including:
receiving messages comprising data that depend at least in part on: (i) characteristics of the channel coupling the first node and the second node and (ii) at least one of a state of a buffer size at the second node and a state of unused data at a client application associated with the second node;
transmitting messages from the first node to the second node, including applying forward error correction according to parameters determined from the data of the received messages, the parameters determined from the data of the received messages including at least two of
a block size,
an interleaving factor, and
a code rate.

### Claim 2 (depends on 1)

The method of claim 1 further comprising selecting parameters for forward error correction for transmission of messages from the first node to the second node.

### Claim 3 (depends on 2)

The method of claim 2 wherein the selecting of the parameters is performed at the first node.

### Claim 4 (depends on 2)

The method of claim 2 wherein the selecting of the parameters is performed at the second node.

### Claim 5 (depends on 1)

The method of claim 1 wherein the received messages from the second node include data representing the parameters.

### Claim 6 (depends on 5)

The method of claim 5 further comprising selecting the parameters for forward error correction at the second node, and forming the data representing said parameters at the second node.

### Claim 7

A method for data communication from a first node to a second node over a data channel coupling the first node and the second node, the method comprising:
transmitting messages from the second node to the first node, including:
transmitting a message to the first node comprising data that depends at least in part on: (i) measured or expected characteristics of the channel coupling the first node and the second node and (ii) at least one of a state of a buffer size at the second node and a state of unused data at a client application associated with the second node;
receiving messages at the second node from the first node, the messages comprising forward error correction applied at the first node according to the data of the message transmitted from the second node to the first node,
wherein the data that depends at least in part on measured or expected characteristics includes data that specifies characteristics of the forward error correction,
wherein the data that specifies the characteristics of the forward error correction comprises data specifying at least two of:
a block size,
an interleaving factor,
a code rate,
a pacing rate, and
a window size.

### Claim 8 (depends on 7)

The method of claim 7 wherein the data that depends at least in part on measured or expected characteristics includes data characterizing a pattern of message erasure on the channel.

### Claim 9 (depends on 8)

The method of claim 8 where in the data characterizing a pattern of message erasure comprises data representing an erasure rate.

### Claim 10 (depends on 7)

The method of claim 7 further comprising computing at the second node characteristics of forward error correction for application to messages at the first node prior to their transmission to the second node.

### Claim 11 (depends on 10)

The method of claim 10 wherein computing the characteristics of the forward error correction includes using measured or expected characteristics of the channel coupling the first node and the second node.

### Claim 12 (depends on 11)

The method of claim 11 wherein computing the characteristics of the forward error correction includes using a state of a consumer of the message received from the first node at the second node.

### Claim 13 (depends on 12)

The method of claim 12 where the state includes a state related to an amount of buffered messages for the consumer of the messages.

### Claim 14

A communication apparatus comprising a first device having an interface for passing messages to and from a second device over a communication path coupling the first device to the second device, the communication apparatus configured to:
receive messages at the first device from the second device, including:
receiving messages comprising data that depend at least in part on: (i) characteristics of the channel coupling the first device and the second device and (ii) at least one of a state of a buffer size at the second device and a state of unused data at a client application associated with the second device; and
transmit messages from the first device to the second device, including applying forward error correction according to parameters determined from the data of the received messages, the parameters determined from the data of the received messages including at least two of
a block size,
an interleaving factor, and
a code rate.

### Claim 15 (depends on 14)

The communication apparatus of claim 14 further configured to select parameters for forward error correction for transmission of messages from the first device to the second device.

### Claim 16 (depends on 15)

The communication apparatus of claim 15 wherein the selecting of the parameters is performed at the first device.

### Claim 17 (depends on 15)

The communication apparatus of claim 15 wherein the selecting of the parameters is performed at the second device.

### Claim 18 (depends on 14)

The communication apparatus of claim 14 wherein the received messages from the second device include data representing the parameters.

### Claim 19 (depends on 18)

The communication apparatus of claim 18 further configured to select the parameters for forward error correction at the second device, and forming the data representing said parameters at the second device.

### Claim 20

A communication apparatus comprising a first device having an interface for passing messages to and from a second device over a communication path coupling the first device to the second device, the communication apparatus configured to:
transmit messages from the second device to the first device, including:
transmit a message to the first device comprising data that depends at least in part on: (i) measured or expected characteristics of the channel coupling the first device and the second device node and (ii) at least one of a state of a buffer size at the second device and a state of unused data at a client application associated with the second device; and
receive messages at the second device from the first device, the messages comprising forward error correction applied at the first device according to the data of the message transmitted from the second device to the first device,
wherein the data that depends at least in part on measured or expected characteristics includes data that specifies characteristics of the forward error correction,
wherein the data that specifies the characteristics of the forward error correction comprises data specifying at least two of:
a block size,
an interleaving factor,
a code rate,
a pacing rate, and
a window size.

### Claim 21 (depends on 20)

The communication apparatus of claim 20 wherein the data that depends at least in part on measured or expected characteristics includes data characterizing a pattern of message erasure on the channel.

### Claim 22 (depends on 21)

The communication apparatus of claim 21 where in the data characterizing a pattern of message erasure comprises data representing an erasure rate.

### Claim 23 (depends on 20)

The communication apparatus of claim 20 further comprising computing at the second device characteristics of forward error correction for application to messages at the first device prior to their transmission to the second device.

### Claim 24 (depends on 23)

The communication apparatus of claim 23 wherein computing the characteristics of the forward error correction includes using measured or expected characteristics of the channel coupling the first device and the second device.

### Claim 25 (depends on 23)

The communication apparatus of claim 23 wherein computing the characteristics of the forward error correction includes using a state of a consumer of the message received from the first device at the second device.

### Claim 26 (depends on 25)

The communication apparatus of claim 25 where the state includes a state related to an amount of buffered messages for the consumer of the messages.
