Network Coding: An Introduction