In
computer networking
A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ...
, linear network coding is a program in which intermediate nodes transmit data from source nodes to sink nodes by means of
linear combinations.
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 by adding resources to the system.
In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
, 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 abstract concept that refers to that which has the power to inform. At the most fundamental level information pertains to the interpretation of that which may be sensed. Any natural process that is not completely random ...
flow in a
network
Network, networking and networked may refer to:
Science and technology
* Network theory, the study of graphs as a representation of relations between discrete objects
* Network science, an academic field that studies complex networks
Mathematics ...
.
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 remains an open problem.
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
coefficients chosen from a
finite field
In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field that contains a finite number of elements. As with any field, a finite field is a set on which the operations of multiplication, addition, subtr ...
, typically of size
.
More formally, each node,
with
indegree
In mathematics, and more specifically in graph theory, a directed graph (or digraph) is a graph that is made up of a set of vertices connected by directed edges, often called arcs.
Definition
In formal terms, a directed graph is an ordered pa ...
,
, 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 on the matrix. In reduced row echelon form, decoded packets correspond to the rows of the form