Multi-Path Data Transfer Using Network Coding
First Claim
1. A machine implemented method for use in transferring data to a destination node, the method comprising:
- obtaining as plurality of original data packets to he transferred to the destination node;
generating first coded packets by linearly combining original data packets using network coding;
distributing the first coded packets among multiple available paths leading to the destination node;
generating second coded packets by linearly combining first coded packets distributed to a first path of the multiple available paths, using network coding; and
transmitting the second coded packets associated with the first path to the destination node via a network associated with the first path.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques, devices, systems, and protocols are disclosed herein that relate to data transfer between communication nodes via multiple heterogeneous paths. In various embodiments, network coding may he used to improve data flow and reliability in a multiple path scenario. Transmission control protocol (TCP) may also be used within different paths to further enhance data transfer reliability. In some embodiments, multiple levels of network coding may be provided within a transmitter in a multiple path scenario, with one level being applied across ail paths and another being applied within individual paths.
139 Citations
30 Claims
-
1. A machine implemented method for use in transferring data to a destination node, the method comprising:
-
obtaining as plurality of original data packets to he transferred to the destination node; generating first coded packets by linearly combining original data packets using network coding; distributing the first coded packets among multiple available paths leading to the destination node; generating second coded packets by linearly combining first coded packets distributed to a first path of the multiple available paths, using network coding; and transmitting the second coded packets associated with the first path to the destination node via a network associated with the first path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A machine implemented method for use in processing coded packets received from a source node via multiple different paths, the method comprising:
-
receiving coded packets associated with a first connection via multiple different paths, the coded packets each including a linear combination of original data packets; for each coded packet associated with the first connection that is successfully received, sending an acknowledgement message to the source node without first determining whether the coded packet is linearly independent of previously received coded packets associated with the first connection; forwarding all coded packets associated with the first connection, received from all paths, to a common processing layer without decoding the coded packets; and for each coded packet associated with the first connection forwarded to the common processing layer; determining whether the coded packet is linearly independent of coded packets associated with the connection that were previously forwarded to the common processing layer; and sending an acknowledgement message to the source node acknowledging that a new degree of freedom has been received for the first connection if the coded packet is determined to be linearly independent. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A communication device comprising:
-
a first network interface unit configured for communication in a first network; a second network interface unit configured for communication in a second network that is different from the first network; and at least one processor to manage data transfer between the communication device and a destination node using multiple different paths, the at least one processor to; obtain a plurality of original packets representative of data to be transferred to the destination node; generate first coded packets by linearly combining original data packets using network coding; distribute first coded packets to the multiple different paths to the destination node; and generate second coded packets within individual paths by linearly combining first coded packets distributed to the path, using network coding. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A communication device comprising:
-
a first network interface unit configured for communication in a first network; a second network interface unit configured for communication in a second network that is different from the first network; and at least one processor to manage processing of coded data packets received from a source node via multiple different paths as part of a first connection, the coded data packets each including a linear combination of original data packets, the at least one processor to; send an acknowledgement message to the source node for each coded data packet associated with the first connection that is successfully received; forward coded data packets associated with the first connection, received from all paths, to a common processing layer without first decoding the coded packets; and for each coded packet associated with the first connection forwarded to the common processing layer; determine whether the coded packet is linearly independent of coded packets associated with the connection that were previously forwarded to the common processing layer; and send an acknowledgement message to the source node acknowledging that a new degree of freedom has been received for the first connection if the coded packet is determined to be linearly independent. - View Dependent Claims (28, 29, 30)
-
Specification