  In recent years, network coding has emerged as an innovative method that
helps a wireless network approach its maximum capacity, by combining multiple
unicasts in one broadcast. However, the majority of research conducted in this
area is yet to fully utilize the broadcasting nature of wireless networks, and
still assumes fixed route between the source and destination that every packet
should travel through. This assumption not only limits coding opportunities,
but can also cause buffer overflow in some specific intermediate nodes.
Although some studies considered scattering of the flows dynamically in the
network, they still face some limitations. This paper explains pros and cons of
some prominent research in network coding and proposes a Flexible and
Opportunistic Network Coding scheme (FlexONC) as a solution to such issues.
Furthermore, this research discovers that the conditions used in previous
studies to combine packets of different flows are overly optimistic and would
affect the network performance adversarially. Therefore, we provide a more
accurate set of rules for packet encoding. The experimental results show that
FlexONC outperforms previous methods especially in networks with high bit error
rate, by better utilizing redundant packets spread in the network.
