Definition - What does Network Coding mean?
Network coding is a networking technique in which transmitted data is encoded and decoded to increase network throughput, reduce delays and make the network more robust. In network coding, algebraic algorithms are applied to the data to accumulate the various transmissions. The received transmissions are decoded at their destinations. This means that fewer transmissions are required to transmit all the data, but this requires more processing at intermediary and terminal nodes.
Techopedia explains Network Coding
In traditional routing networks, packets are cached and forwarded downstream. Therefore, if a routing node receives two packets from two sources it forwards them one after another, and queues the others in the meantime, even if both are headed for the same destination. This requires separate transmissions for each and every message delivered, which decreases network efficiency. In network coding, algorithms are used to merge those two messages and the accumulated result is forwarded to the destination. After receiving the accumulated massage, it is decoded at the destination using the same algorithm.
In order for this technique to work, the destination node needs to be completely synchronized with the transmitting nodes.
Network coding is perceived to be useful in wireless mesh networks, messaging networks, storage networks, multicast streaming networks, file-sharing peer-to-peer networks and other networks where the same data needs to be transmitted to a number of destination nodes. The regular topology change that occurs in peer-to-peer networks poses a challenge to the network coding technique because it complicates network synchronization. In addition, the peers may need a large amount of processing time while trying to decode data.
Overall, large networks can increase their efficiency through the use of network coding, but high overhead costs may make them less amenable for small networks.