  Protecting against link failures in communication networks is essential to
increase robustness, accessibility, and reliability of data transmission.
Recently, network coding has been proposed as a solution to provide agile and
cost efficient network protection against link failures, which does not require
data rerouting, or packet retransmission. To achieve this, separate paths have
to be provisioned to carry encoded packets, hence requiring either the addition
of extra links, or reserving some of the resources for this purpose. In this
paper, we propose network protection codes against a single link failure using
network coding, where a separate path using reserved links is not needed. In
this case portions of the link capacities are used to carry the encoded
packets.
  The scheme is extended to protect against multiple link failures and can be
implemented at an overlay layer. Although this leads to reducing the network
capacity, the network capacity reduction is asymptotically small in most cases
of practical interest. We demonstrate that such network protection codes are
equivalent to error correcting codes for erasure channels. Finally, we study
the encoding and decoding operations of such codes over the binary field.
