Error-correcting codes help balance throughput and reliability.When multiple parallel communication links are available, it is useful to consider link-utilization strategies that provide tradeoffs between reliability and throughput. Interesting cases arise when there are three or more available links. Under the model considered, the links have known probabilities of being in working order, and each link has a known capacity. The sender has a number of messages to send to the receiver. Each message has a size and a value (i.e., a worth or priority). Messages may be divided into pieces arbitrarily, and the value of each piece is proportional to its size. The goal is to choose combinations of messages to send on the links so that the expected value of the messages decodable by the receiver is maximized. There are three parts to the innovation:
(1) Applying coding to parallel links under the model;
(2) Linear programming formulation for finding the optimal combinations of messages to send on the links; and
(3) Algorithms for assisting in finding feasible combinations of messages, as support for the linear programming formulation.
There are similarities between this innovation and methods developed in the field of network coding. However, network coding has generally been concerned with either maximizing through-put in a fixed network, or robust communication of a fixed volume of data. In contrast, under this model, the throughput is expected to vary depending on the state of the network. Examples of error-correcting codes that are useful under this model but which are not needed under previous models have been found.
This model can represent either a one-shot communication attempt, or a stream of communications. Under the one-shot model, message sizes and link capacities are quantities of information (e.g., measured in bits), while under the communications stream model, message sizes and link capacities are information rates (e.g., measured in bits/second).
This work has the potential to increase the value of data returned from spacecraft under certain conditions.