Published online by Cambridge University Press: 05 June 2013
The main motivation behind using network coding is the wireless broadcast nature, which means that every other node can potentially overhear the signal transmitted by one node. Conventionally, the overheard signal is treated as noise or interference, and thus completely ignored. However, as shown in , a smartly controlled interference can be used to greatly improve the total network throughput. While interference is harmful in a conventional perspective, if a node has previously transmitted or overheard the interference, its detrimental effects can be completely removed to increase the chance of conveying more information in a single transmission.
Network coding was initially proposed in  to achieve the multicast capacity of a single-session multicast network by permitting intermediate nodes to encode the received data in addition to traditional routing operations. For a single-session multicast network, it was shown in  that linear codes are sufficient to achieve the multicast capacity. A polynomial time algorithm for network code construction was proposed in . The distributed random linear code construction approach in  was shown to be asymptotically valid given a sufficiently large field size. For a multiple-session network, it was shown in [6, 7] that linear network coding may be insufficient to achieve the multicast capacity. Moreover, finding a network coding solution for a network with multiple sessions was shown to be an NP-hard problem [8, 9]. Although optimal network coding solutions for multiple-session networks are generally unknown, simple network coding solutions are able to offer tremendous throughput improvements for wireless cooperative networks, which was famously demonstrated by [1, 10–12].