Chapter 2 Background
2.1 Network Coding
2.1.1 Basic Concept
The basic concept of Network Coding is that we consider packets that can be combined together at any hop of the path from the source to the destination. The combination of packets can be performed in many ways but in the context of Linear Network Coding, packets are linearly combined together.
Figure 2.1. Example of Packet Combination in Butterfly Network
In Figure 2.1, the node A (source) tries to send two symbols and to the nodes D and E (sinks). The node F mixes the two symbols it just received. The resulting symbol is noted
4
. If we assume that each link has a capacity of transmitting one symbol per unit of time, the multicast rate is then two symbols per unit of time. Without network coding, it would have been impossible to transmit the two symbols on the bottleneck between F and G. So the multicast rate would have been only one symbol per unit of time.
2.1.2 Main Theoretical Result
In Figure 2.1, we could achieve the multicast rate of two symbols per unit of time thanks to Network Coding. From a naïve perspective, we could say that Network Coding enables all receivers to use all of their possible paths from the source simultaneously.
This example illustrates the main theoretical result on Network Coding that can be extended to any acyclic network:
For the unicast case, the famous max-flow min-cut theorem [1] states that a source node can send information through a network (V, E) to a sink node at a rate ω determined by the min-cut value separating and .
In the multicast case, the upper bound for the achievable transmission rate is the minimum of the maximum flow for each sink. We note it
In general , the multicast rate of ω suggests the existence of ω non-intersecting paths from the source to each sink, which are called edge-disjoint paths in [2], although the paths destined to different receivers may share some edges. It was proved in [3] that reliable multicast at a rate equal to the upper bound , can always be achieved in any network using network coding. Therefore, we can always benefit from the possible advantages of Network coding described in [4] : increased bandwidth, robustness to dynamical changes of
5
topology, minimizing energy per bit for wireless communications, minimizing delay, enhanced security.
In contrast, most of the time traditional routing cannot reach the upper bound . Even when it can, working out the multicast trees (Steiner trees) that achieve that rate is a NP-hard problem.
2.1.3 Random Linear Network coding (RLNC)
It was proved in [5] that linear network coding is sufficient to achieve the multicast rate in any acyclic network. Furthermore, deterministic polynomial time algorithms and even faster randomized algorithms were found in [6] for directed acyclic graphs with edges of unit capacity. Some codes that are tolerant to edge failures were designed. These results are very interesting since RLNC can achieve the highest multicast rate with reasonable calculation time.
2.1.3.1 Local and Global Encoding Vectors
Whenever a packet p reaches a specific node e, the packet p is a linear combination of the original packets. The coefficients with which you can express the packet received in function of the original packets from the source constitute the global encoding vector. These coefficients are the result of every mixing that occurs at each hop of the packet.
∑ Vector ⃗⃗ . This vector contains the coefficients that this specific node will use to combine the k packets it just received in order to generate a new packet j and to send it to the next hop f.
6 matrices of the predecessors of e. Note that without this matrix, it is impossible to retrieve the initial value .
We also define the Local encoding kernel and global encoding kernel as the juxtaposition of respectively the local encoding vectors and the global encoding vectors at a node.
2.1.3.2 Packet Tagging
In order to facilitate the decoding of the final GEK matrix, we tag each packet with the coefficients of its own global encoding vector. This procedure was first used in [7], under the name “packet tagging”.
7
At the source, instead of combining only a set of symbols [ ] , we juxtapose it to
and send this resulting matrix one line (= one datagram) at a time:
[
After a certain number of hops, m different packets will arrive at the node e. So the content of the buffer at the node e will be:
This is due to the fact that the unit vectors will go through the exact same path that the rest of the packets. Thus, it will undergo the same combinations. After extracting the different information from this last matrix, we obtain the equation:
where for any packet i that was received by the destination:
is the coded value received.
⃗⃗⃗ [ ] is the global encoding vector at the destination for the ith packet.
We need to solve the above system for the destination to get the original symbols that the source coded and sent. Therefore, is the unknown. Finding the solution of this linear equation system leads to finding the original values.
8 2.1.3.3 Random Encoding and Invertibility
The key idea in Random Linear Network Codes is that the Local Encoding Vectors have to be chosen randomly among the finite field, independently between nodes and following a uniform law. This approach enables [4] to provide us with a lower bound on the invertibiliy probability of the global encoding kernel:
where:
E is the number of edges in the network,
F is the size of the Galois field in which you choose the coefficients.
is the global encoding kernel at the sink t
The finite field has to be big enough for a given to have a high invertibiliy probability. But on the other hand, bigger Finite field would lead to bigger overhead. Thus, this parameter has to be chosen carefully.
Although RLNC can already achieve the maximum throughput for a multicast session, very little work has been done on creating optimal network codes with respect to UEP.
2.1.3.4 Data Protection of RLNC
A trivial approach is to achieve UEP through basic redundancy. By sending multiple combinations of the same packets over edge-disjoint paths, you can improve the protection of original packets. This technique is the key idea in the approach in [8]. This protection is a
advantages drawbacks
No need for an optimal coding scheme since this one performs very well in average
Efficient in average only: Certainly can perform better (size of the Finite field, …) Decentralized : if you can propagate the
coefficients
Doesn’t prioritize data
Easy to make use of it
Table 2.1: Advantages and Drawbacks of RLNC
9
built-in feature of RLNC but it has two major drawbacks. Firstly, sending redundant packets is very costly in terms of network resource. Secondly, all packets have the same protection level. It is impossible to prioritize certain data stream over the others with such a trivial technique.