Network Coding: Fundamentals and Applications