Abstract:Opportunistic routing (OR) significantly improves transmission reliability and network throughput in wireless mesh networks by taking advantage of the broadcast nature of the wireless medium. With network coding (NC), OR can be implemented in a simple and practical way without resorting to a complicated scheduling. With the introduction of NC, how to reduce redundant transmission of coded packets becomes a very important problem in OR protocol. MORE, et al. protocols estimate the expected number of transmissions for each forwarder based on periodic measurements of the average link loss rates. However, these approaches may suffer severe performance degradation in dynamic wireless environments. Recently, some studies, known as CCACK, employ orthogonal vector as feedback to reduce redundant transmission of coded packets. The analysis of CCACK scheme indicates that the false-positive probability is reduced at the cost of increasing the false-negative probability, which results in unnecessary packets transmission. This paper proposes a NC-based OR protocol, named CFACK, based on cumulative coding coefficient feedback acknowledgement. In this scheme, the coding vectors piggybacked in coded packets are used as feedback information, and each forwarder overhears coding vectors sent by downstream nodes. Through correlation analysis between coding vectors from upstream nodes and downstream ones each forwarder knows whether its knowledge space is covered by its downstream nodes. This paper proves that CFACK is completely free from any false-positive and false-negative problem in reliable network. The efficiency of CFACK in unreliable network is also analyzed, and the result shows that in random topologies embedding an extra ACK vector in each packet can guarantee 90% accuracy. Evaluation shows that, compared with CCACK, CFACK significantly improves throughput by reducing unnecessary packet transmission, with average improvements of 72.2%. Furthermore, the overheads of encoding computation, storage, and header of CFACK are less than that of CCACK.