In
computer networking, linear network coding is a program in which intermediate nodes transmit data from source nodes to sink nodes by means of
linear combination
In mathematics, a linear combination or superposition is an Expression (mathematics), expression constructed from a Set (mathematics), set of terms by multiplying each term by a constant and adding the results (e.g. a linear combination of ''x'' a ...
s.
Linear network coding may be used to improve a network's throughput, efficiency, and
scalability
Scalability is the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system.
In an economic context, a scalable business model implies that ...
, as well as reducing attacks and eavesdropping. The
node
In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex).
Node may refer to:
In mathematics
* Vertex (graph theory), a vertex in a mathematical graph
*Vertex (geometry), a point where two or more curves, lines ...
s of a network take ''several'' packets and combine for transmission. This process may be used to attain the maximum possible
information
Information is an Abstraction, abstract concept that refers to something which has the power Communication, to inform. At the most fundamental level, it pertains to the Interpretation (philosophy), interpretation (perhaps Interpretation (log ...
flow in a
network.
It has been proven that, theoretically,
linear coding is enough to achieve the upper bound in multicast problems with one source. However linear coding is not sufficient in general; even for more general versions of linearity such as
convolutional coding and
filter-bank coding. Finding optimal coding solutions for general network problems with arbitrary demands is a hard problem, which can be
NP-hard
and even
undecidable.
Encoding and decoding
In a linear network coding problem, a group of nodes
are involved in moving the data from
source nodes to
sink nodes. Each node generates new packets which are linear combinations of past received packets by multiplying them by
coefficient
In mathematics, a coefficient is a Factor (arithmetic), multiplicative factor involved in some Summand, term of a polynomial, a series (mathematics), series, or any other type of expression (mathematics), expression. It may be a Dimensionless qu ...
s chosen from a
finite field
In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
, typically of size
.
More formally, each node,
with
indegree,
, generates a message
from the linear combination of received messages
by the formula:
:
Where the values
are coefficients selected from
. Since operations are computed in a finite field, the generated message is of the same length as the original messages. Each node forwards the computed value
along with the coefficients,
, used in the
level,
.
Sink nodes receive these network coded messages, and collect them in a matrix. The original messages can be recovered by performing
Gaussian elimination
In mathematics, Gaussian elimination, also known as row reduction, is an algorithm for solving systems of linear equations. It consists of a sequence of row-wise operations performed on the corresponding matrix of coefficients. This method can a ...
on the matrix. In reduced row echelon form, decoded packets correspond to the rows of the form