Network coding, a relatively new area of research, has evolved from the theoretical level to become a tool used to optimize the performance of communication networks – wired, cellular, ad hoc, etc. The idea consists of mixing “packets” of data together when routing them from source to destination. Since network coding increases the network performance, it becomes a tool to enhance the existing protocols and algorithms in a network or for applications such as peer-to-peer and TCP. This book...