IP Library Granted Patent US 10,862,620
Granted Patent B2
US 10,862,620 · App. 15/714,303 · Granted Dec 8, 2020

Systems and methods to optimize the load of multipath data transportation

Inventors: Mingchao Yu (Belconnen, AU); Mark Craig Reed (Lyneham, AU)
Assignee: Dolby Laboratories Licensing Corporation
H04L1/0041H04L1/0009H04L1/20H04L29/04H04L69/14H04L43/0829H04L45/24H04L45/302H04L47/27H04L2001/0096
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 10,862,620
App. No.
15/714,303
Granted
Dec 8, 2020
Kind
B2
Abstract

A control unit of a multipath data transportation system that optimizes the load of the multiple communication paths of this system when the system transmits a data segment over these paths in parallel with forward error correction. The control unit determines an optimized number of packets to send over each path based on a prediction of quality for each path. The transmitted packets include systematic packets and coded packets.

Claims (44)

1. A method implemented in a computing apparatus, the method comprising:

partitioning, by the computing apparatus, a data segment into a number of original data packets;

predicting, by the computing apparatus, a quality for each of a plurality of network paths to be used to transmit communication packets to a receiver, wherein the communication packets include first systematic packets, and the communication packets further include first coded packets to be generated from the original data packets using a coding technique;

determining, by the computing apparatus, a total number of communication packets to transmit for each respective path, based on the quality predicted for the respective path;

independently determining, by the computing apparatus, a transmission rate for each respective path, based on the quality predicted for the respective path;

generating, by the computing apparatus, a plurality of first communication packets using the coding technique, the first communication packets to be transmitted via the plurality of network paths; and

transmitting, by the computing apparatus, the first communication packets to the receiver, wherein the first communication packets are distributed among the plurality of network paths based on the total number and the transmission rate determined for each respective path,

wherein the total number of communication packets to transmit for each respective path is optimized such that the receiver can complete the download from different paths at the same time.

2. The method of claim 1 , further comprising determining a number of systematic packets to transmit for each of the plurality of network paths, wherein the first systematic packets are distributed among the network paths based on the respective number of systematic packets determined for each path.

3. The method of claim 2 , wherein the first coded packets are transmitted subsequent to any of the first systematic packets transmitted on the same network path, and wherein the coding technique is a forward error correction technique.

4. The method of claim 2 , wherein the first systematic packets are distributed among the network paths proportionally to the respective predicted quality for each path.

5. The method of claim 2 , wherein the first systematic packets are distributed among the network paths based on a respective packet loss rate for each path.

6. The method of claim 1 , wherein determining the total number of communication packets to transmit for each respective path comprises further optimizing by determining an optimized number of communication packets to transmit for the respective path, and then increasing the optimized number to provide the total number of communication packets to transmit.

7. The method of claim 6 , wherein the total number of communication packets to transmit for each path is further optimized such that the receiver will not receive more communication packets after the receiver has received sufficient communication packets for decoding.

8. The method of claim 1 , wherein the quality comprises at least one of bandwidth, latency, or packet loss.

9. The method of claim 1 , further comprising determining a number of the plurality of network paths to be used for transmitting the first communication packets.

10. The method of claim 9 , wherein the data segment has a transmission time window, and wherein the number of paths to be used is based on the transmission time window.

11. The method of claim 1 , wherein the data segment has a transmission time window, and wherein determining the total number of communication packets to transmit for each respective path is further based on the transmission time window.

12. The method of claim 1 , wherein the data segment has an overall delivery time, and determining the total number of communication packets to transmit for each respective path further comprises optimizing the total number based on a minimization of the overall delivery time.

13. The method of claim 1 , wherein determining the total number of communication packets to transmit for each respective path is further based on a decoding success for each of the plurality of network paths.

14. The method of claim 1 , wherein determining the total number of communication packets to transmit for each respective path is further based on optimization without a limited transmission time window for the data segment.

15. The method of claim 14 , wherein determining the total number of communication packets to transmit for each respective path further comprises adjusting a number of packets for the respective path where the transmission time window limits the respective path, wherein adjusting the number of packets comprises relocating leftover packets to other network paths that are able to transmit an additional number of communication packets.

16. The method of claim 15 , further comprising calculating an overall delivery time for the data segment based on the adjusting the number of packets.

17. The method of claim 16 , further comprising ignoring those paths of the plurality of network paths having a single trip time greater than the overall delivery time.

18. The method of claim 17 , further comprising setting a number of communication packets for each of the ignored paths to probe the quality of the ignored paths.

19. The method of claim 15 , wherein the leftover packets are relocated to other network paths proportional to a rate at which the receiver can receive communication packets from the respective network path.

20. A non-transitory computer storage medium storing instructions which, when executed by a computing apparatus, cause the computing apparatus to perform a method, the method comprising:

partitioning, by the computing apparatus, a data segment into a number of original data packets;

predicting, by the computing apparatus, a quality for each of a plurality of network paths to be used to transmit communication packets to a receiver, wherein the communication packets include first systematic packets, and the communication packets further include first coded packets to be generated from the original data packets using a coding technique;

determining, by the computing apparatus, a total number of communication packets to transmit for each respective path, based on the quality predicted for the respective path;

independently determining, by the computing apparatus, a transmission rate for each respective path, based on the quality predicted for the respective path;

generating, by the computing apparatus, a plurality of first communication packets using the coding technique, the first communication packets to be transmitted via the plurality of network paths; and

transmitting, by the computing apparatus, the first communication packets to the receiver, wherein the first communication packets are distributed among the plurality of network paths based on the total number and the transmission rate determined for each respective path,

wherein the total number of communication packets to transmit for each respective path is optimized such that the receiver can complete the download from different paths at the same time.

21. A computing apparatus, comprising:

at least one microprocessor; and

memory storing instructions configured to instruct the at least one microprocessor to:

partition a data segment into a number of original data packets;

predict a quality for each of a plurality of network paths to be used to transmit communication packets to a receiver, wherein the communication packets include first systematic packets, and the communication packets further include first coded packets to be generated from the original data packets using a coding technique;

determine a total number of communication packets to transmit for each respective path, based on the quality predicted for the respective path;

independently determine a transmission rate for each respective path, based on the quality predicted for the respective path;

generate a plurality of first communication packets using the coding technique, the first communication packets to be transmitted via the plurality of network paths; and

transmit the first communication packets to the receiver, wherein the first communication packets are distributed among the plurality of network paths based on the total number and the transmission rate determined for each respective path,

wherein the total number of communication packets to transmit for each respective path is optimized such that the receiver can complete the download from different paths at the same time.

Assignments (5)
CORRECTION BY DECLARATION OF AN ERRONEOUS FILED DOCUMENT AT REEL/FRAME 043685/0116 Recorded Jan 15, 2019
From: INTERFEREX COMMUNICATIONS PTY LTD.
To: INTERFEREX COMMUNICATIONS PTY LTD.
Reel/Frame 048076/0713 →
CORRECTION BY DECLARATION OF AN ERRONEOUS FILED DOCUMENT AT REEL/FRAME 043685/0116 Recorded Dec 6, 2018
From: INTERFEREX COMMUNICATIONS PTY LTD.
To: INTERFEREX COMMUNICATIONS PTY LTD.
Reel/Frame 049042/0726 →
NUNC PRO TUNC ASSIGNMENT Recorded Aug 10, 2018
From: INTERFEREX COMMUNICATIONS PTY LTD.
To: DOLBY LABORATORIES LICENSING CORP.
Reel/Frame 046617/0149 →
CONFIRMATORY STATEMENT OF PRIOR ASSIGNMENT Recorded Jul 19, 2018
From: REED, MARK C.; YU, MINGCHAO
To: INTERFEREX COMMUNICATIONS PTY LTD.
Reel/Frame 046593/0737 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: YU, MINGCHAO; REED, MARK CRAIG
To: INTERFEREX COMMUNICATIONS INC.
Reel/Frame 043685/0116 →
Continuity (1)
Related Publication 20190097754A1 · Mar 28, 2019