# Linear network coding

(Redirected from Network coding)

Linear network coding is a technique which can be used to improve a network's throughput, efficiency and scalability, as well as resilience to attacks and eavesdropping. Instead of simply relaying the packets of information they receive, the nodes of a network take several packets and combine them together for transmission. This can be used to attain the maximum possible information flow in a network.

It has been proven that linear coding is enough to achieve the upper bound in multicast problems with one or more sources.[1] However linear coding is not sufficient in general (e.g. multisource, multisink with arbitrary demands), even for more general versions of linearity such as convolutional coding and filter-bank coding.[2] 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 ${\displaystyle P}$ are involved in moving the data from ${\displaystyle S}$ source nodes to ${\displaystyle K}$ sink nodes. Each node generates new packets which are linear combinations of earlier received packets, multiplying them by coefficients chosen from a finite field, typically of size ${\displaystyle GF(2^{s})}$.

Each node, ${\displaystyle p_{k}}$ with indegree, ${\displaystyle InDeg(p_{k})=S}$, generates a message ${\displaystyle X_{k}}$ from the linear combination of received messages ${\displaystyle \{M_{i}\}_{i=1}^{S}}$ by the relation:

${\displaystyle X_{k}=\sum _{i=1}^{S}g_{k}^{i}\cdot M_{i}}$

where the values ${\displaystyle g_{k}^{i}}$ are the coefficients selected from ${\displaystyle GF(2^{s})}$. Note that, 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 ${\displaystyle X_{k}}$ along with the coefficients, ${\displaystyle g_{k}^{i}}$, used in the ${\displaystyle k^{\text{th}}}$ level, ${\displaystyle g_{k}^{i}}$.

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.[3] In reduced row echelon form, decoded packets correspond to the rows of the form ${\displaystyle e_{i}=[0...010...0]}$.

## A brief history

A network is represented by a directed graph ${\displaystyle {\mathcal {G}}=(V,E,C)}$. ${\displaystyle V}$ is the set of nodes or vertices, ${\displaystyle E}$ is the set of directed links (or edges), and ${\displaystyle C}$ gives the capacity of each link of ${\displaystyle E}$. Let ${\displaystyle T(s,t)}$ be the maximum possible throughput from node ${\displaystyle s}$ to node ${\displaystyle t}$. By the max-flow min-cut theorem, ${\displaystyle T(s,t)}$ is upper bounded by the minimum capacity of all cuts, which is the sum of the capacities of the edges on a cut, between these two nodes.

Karl Menger proved that there is always a set of edge-disjoint paths achieving the upper bound in a unicast scenario, known as the max-flow min-cut theorem. Later, the Ford–Fulkerson algorithm was proposed to find such paths in polynomial time. Then, Edmonds proved in the paper "Edge-Disjoint Branchings" the upper bound in the broadcast scenario is also achievable, and proposed a polynomial time algorithm.

However, the situation in the multicast scenario is more complicated, and in fact, such an upper bound can't be reached using traditional routing ideas. Ahlswede, et al. proved that it can be achieved if additional computing tasks (incoming packets are combined into one or several outgoing packets) can be done in the intermediate nodes.[4]

## The butterfly network example

Butterfly Network.

The butterfly network [4] is often used to illustrate how linear network coding can outperform routing. Two source nodes (at the top of the picture) have information A and B that must be transmitted to the two destination nodes (at the bottom), which each want to know both A and B. Each edge can carry only a single value (we can think of an edge transmitting a bit in each time slot).

If only routing were allowed, then the central link would be only able to carry A or B, but not both. Suppose we send A through the center; then the left destination would receive A twice and not know B at all. Sending B poses a similar problem for the right destination. We say that routing is insufficient because no routing scheme can transmit both A and B simultaneously to both destinations.

Using a simple code, as shown, A and B can be transmitted to both destinations simultaneously by sending the sum of the symbols through the center – in other words, we encode A and B using the formula "A+B". The left destination receives A and A + B, and can calculate B by subtracting the two values. Similarly, the right destination will receive B and A + B, and will also be able to determine both A and B.

A similar concept has been used to encode stereophonic sound, where there is a "left" signal and a "right" signal. The two analog signals are "added" together, and the "sum" is subsequently used to recover the original signals.

## Random Linear Network Coding

Random linear network coding [5] is a simple yet powerful encoding scheme, which in broadcast transmission schemes allows close to optimal throughput using a decentralized algorithm. Nodes transmit random linear combinations of the packets they receive, with coefficients chosen from a Galois field. If the field size is sufficiently large, the probability that the receiver(s) will obtain linearly independent combinations (and therefore obtain innovative information) approaches 1. It should however be noted that, although random linear network coding has excellent throughput performance, if a receiver obtains an insufficient number of packets, it is extremely unlikely that they can recover any of the original packets. This can be addressed by sending additional random linear combinations until the receiver obtains the appropriate number of packets.

### Open issues

Based on previous studies, there are three important open issues in RLNC:

1. High decoding computational complexity due to using the Gauss-Jordan elimination method
2. High transmission overhead due to attaching large coefficients vectors to encoded blocks
3. Linear dependency among coefficients vectors which can reduce the number of innovative encoded blocks

## Wireless Network Coding

The broadcast nature of wireless (coupled with network topology) determines the nature of interference. Simultaneous transmissions in a wireless network typically result in all of the packets being lost (i.e., collision, see Multiple Access with Collision Avoidance for Wireless). A wireless network therefore requires a scheduler (as part of the MAC functionality) to minimize such interference. Hence any gains from network coding are strongly impacted by the underlying scheduler and will deviate from the gains seen in wired networks. Further, wireless links are typically half-duplex due to hardware constraints; i.e., a node can not simultaneously transmit and receive due to the lack of sufficient isolation between the two paths.

Although, originally network coding was proposed to be used at Network layer (see OSI model), in wireless networks, network coding has been widely used in either MAC layer or PHY layer.[6] It has been shown that in both cases, network coding can increase the end-to-end throughput.[7]

## Applications

Network coding is seen to be useful in the following areas:

## References

1. ^ S. Li, R. Yeung, and N. Cai, "Linear Network Coding"(PDF), in IEEE Transactions on Information Theory, Vol 49, No. 2, pp. 371–381, 2003
2. ^ R. Dougherty, C. Freiling, and K. Zeger, "Insufficiency of Linear Coding in Network Information Flow" (PDF), in IEEE Transactions on Information Theory, Vol. 51, No. 8, pp. 2745-2759, August 2005 ( erratum)
3. ^ Chou, Philip A.; Wu, Yunnan; Jain, Kamal (October 2003), "Practical network coding", Allerton Conference on Communication, Control, and Computing, Any receiver can then recover the source vectors using Gaussian elimination on the vectors in its h (or more) received packets.
4. ^ a b Ahlswede, Rudolf; N. Cai, Shuo-Yen Robert Li, and Raymond Wai-Ho Yeung (2000). "Network Information Flow". IEEE Transactions on Information Theory, IT-46. 46 (4): 1204–1216. doi:10.1109/18.850663. Cite uses deprecated parameter |coauthors= (help)
5. ^ T. Ho, R. Koetter, M. Medard, D. R. Karger and M. Effros, "The Benefits of Coding over Routing in a Randomized Setting" in 2003 IEEE International Symposium on Information Theory. doi:10.1109/ISIT.2003.1228459
6. ^ M.H.Firooz, Z. Chen, S. Roy and H. Liu, (Wireless Network Coding via Modiﬁed 802.11 MAC/PHY: Design and Implementation on SDR) in IEEE Journal on Selected Areas in Communications, 2013.
7. ^ XORs in The Air: Practical Wireless Network Coding
8. ^ http://arxiv.org/abs/1212.2291
9. ^ http://www.ericsson.com/technology/research_papers/wireless_access/doc/Multi-User%20ARQ.pdf
10. ^ http://securenetworkcoding.wikidot.com/
11. ^ http://home.eng.iastate.edu/~yuzhen/publications/ZhenYu_INFOCOM_2008.pdf
12. ^ http://netcod.org/papers/11AcedanskiDMK-final.pdf
13. ^ http://arxiv.org/pdf/cs/0702015.pdf
14. ^ http://people.csail.mit.edu/rahul/papers/cope-ton2008.pdf
15. ^ "CORE: COPE with MORE in Wireless Meshed Networks". 2013 IEEE 77th Vehicular Technology Conference (VTC Spring). doi:10.1109/VTCSpring.2013.6692495.
16. ^ http://arena.cse.sc.edu/papers/rocx.secon06.pdf
17. ^ http://www.cs.wisc.edu/~shravan/infocom-07-2.pdf
18. ^ "NetworkCoding - batman-adv - Open Mesh". www.open-mesh.org. Retrieved 2015-10-28.
19. ^ Welcome to IEEE Xplore 2.0: Looking at Large Networks: Coding vs. Queueing
20. ^ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4549741
21. ^ Data dissemination in wireless networks with network coding
• Fragouli, C.; Le Boudec, J. & Widmer, J. "Network coding: An instant primer" in Computer Communication Review, 2006.

Ali Farzamnia, Sharifah K. Syed-Yusof, Norsheila Fisa "Multicasting Multiple Description Coding Using p-Cycle Network Coding", KSII Transactions on Internet and Information Systems, Vol 7, No 12, 2013.