Network coding is an elegant and novel technique introduced at the turn
of the millennium to improve network throughput and performance. It
is expected to be a critical technology for networks of the future. This
tutorial addresses the first most natural questions one would ask about
this new technique: how network coding works and what are its bene-
fits, how network codes are designed and how much it costs to deploy
networks implementing such codes, and finally, whether there are meth-
ods to deal with cycles and delay that are present in all real networks.
A companion issue deals primarily with applications of network coding.
1