IP Library Granted Patent US 12,362,858
Granted Patent B2
US 12,362,858 · App. 17/538,128 · Granted Jul 15, 2025

Packet coding based network communication

Inventors: Tracey Ho (Pasadena, CA); John Segui (Costa Mesa, CA); Chun Meng (South Pasadena, CA); Steven Blumenthal (Lexington, MA)
Assignee: STRONG FORCE IOT PORTFOLIO 2016, LLC
H04L1/0076H03M13/05H03M13/13H03M13/373H03M13/3761H03M13/611H03M13/6547H04L1/0002H04L1/0041H04L1/1614H04L1/187H04L47/27
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,362,858
App. No.
17/538,128
Filed
Nov 30, 2021
Granted
Jul 15, 2025
Kind
B2
Art Unit
2477
USPC
714/776
Abstract

A method for data communication between a first node and a second node includes forming one or more redundancy messages from data messages at the first node using an error correcting code and transmitting first messages from the first node to the second node over a data path, the transmitted first messages including the data messages and the one or more redundancy messages. Second messages are received at the first node from the second node, which are indicative of: (i) a rate of arrival at the second node of the first messages, and (ii) successful and unsuccessful delivery of the first messages. A transmission rate limit and a window size are maintained according to the received second messages. Transmission of additional messages from the first node to the second node is limited according to the maintained transmission rate limit and window size.

Claims (37)

1. A method for data communication between a first node and a second node over a data path coupling the first node and the second node, via an intermediate node, the method comprising:

receiving, on a first channel, at least a first set of messages at the intermediate node from the first node, wherein the first set of messages includes first channel redundancy information, wherein the first channel redundancy information includes first channel characteristics associated with the first channel;

determining second channel redundancy information by modifying the first channel redundancy information based, at least in part, on at least one characteristic of a second channel; and

transmitting a second set of messages from the intermediate node to the second node on the second channel, wherein the second set of messages includes the second channel redundancy information.

2. The method of claim 1 , wherein the second channel redundancy information is further determined based, at least in part, on a second channel transmission rate based on a rate of arrival of messages at the second node, and the method further comprises limiting the transmitting of messages from the intermediate node to the second node based on the second channel transmission rate.

3. The method of claim 2 , wherein the rate of arrival of messages at the second node is based, at least in part, on at least one acknowledgment message received at the intermediate node from the second node.

4. The method of claim 1 , wherein the at least one of the first channel characteristics includes at least one of a block size, a congestion window size, or a pacing rate associated with the first channel.

5. The method of claim 1 , wherein the first channel redundancy information is determined, at least in part, using a forward error correction, wherein the forward error correction is based on a linear error correcting code.

6. The method of claim 1 , wherein the first channel redundancy information is determined, at least in part, using a forward error correction, wherein the forward error correction is based on a nonlinear error correcting code.

7. The method of claim 1 , wherein the first set of messages further includes a first encoded data message, and wherein the second set of messages further includes a second encoded data message.

8. The method of claim 7 , further including:

decoding the first encoded data message, resulting in message data; and

encoding the message data, resulting in the second encoded data.

9. The method of claim 1 ,

wherein the first set of messages further includes a first encoded data message, and

further comprising sending the first encoded data message to the second node unchanged.

10. The method of claim 1 , wherein the first channel characteristics include at least one of a capacity, a latency, a variability in transit time, an error rate, or a burst characteristic.

11. The method of claim 1 , wherein the second channel redundancy information is based, at least in part, on a pacing rate associated with the at least one channel characteristic of the second node.

12. The method of claim 1 , further comprising sending a first feedback message, indicative of successful or unsuccessful delivery, from the intermediate node to the first node in response to the at least one of the first set of messages.

13. The method of claim 12 , further comprising:

determining a round trip time from the transmitting of the at least one of the set of first messages to the receiving of the first feedback message;

estimating an available bandwidth of the first channel based on the round trip time;

in response to the estimated available bandwidth, updating the first channel redundancy information based, at least in part, the estimated available bandwidth; and

transmitting a third set of messages from the first node to the intermediate node, including applying forward error correction to at least one of the set of third messages, based at least in part on, the estimated available bandwidth.

14. A communication apparatus comprising: a first interface for passing messages to and from a first node over a first data path coupling the first node to the communication apparatus,

a second data interface for passing messages to and from a second node over a second data path coupling the second node to the communication apparatus; and a communication controller configured to:

receive, on a first channel, a first set of messages at the communication apparatus from the first node, wherein the first set of message includes first channel redundancy information associated with the first channel;

determine second channel redundancy information based, at least in part, on modifying the first channel redundancy information based on a second channel characteristic of the second data path; and

transmit, from the communication apparatus to the second node, on the second data path, a second set of messages including the second channel redundancy information.

15. The communication apparatus of claim 14 , wherein the second channel redundancy information is based on a rate of arrival of messages at the second node, and the communication controller is further configured to limit the transmit of further messages from the communication apparatus to the second node based on a second transmission rate, wherein the second transmission rate is based on the rate of arrival of messages from the communication apparatus at the second node.

16. The communication apparatus of claim 15 , wherein the communication controller further receives acknowledgement messages based on successful and unsuccessful delivery of messages, and wherein the second transmission rate is further based on a round trip time between the transmission of a message from the communication apparatus to the second node and the receiving of the acknowledgement messages from the second node.

17. The communication apparatus of claim 14 , wherein the first channel redundancy information of the first set of messages is based on successful and unsuccessful delivery of messages at the communication apparatus, and the communication controller is further configured to transmit messages based on successful and unsuccessful delivery of messages from the communication apparatus to the first node.

18. The communication apparatus of claim 11 , wherein the first set of messages further includes a first encoded data message and the second set of messages further includes a second encoded data message.

19. The communication apparatus of claim 18 , wherein the communication controller is further configured to:

decode the first encoded data message, resulting in message data; and

encode the message data, resulting in the second encoded data message.

20. The communication apparatus of claim 14 , wherein the first set of messages further includes a first encoded data message, and wherein the communication controller is further configured to send the first encoded data message to the second node without additional processing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2023
From: HO, TRACEY; MENG, CHUN; BLUMENTHAL, STEVEN
To: STRONG FORCE IOT PORTFOLIO 2016, LLC
Reel/Frame 063021/0372 →