Skip to main content

Research on network coding aware energy efficient routing for wireless sensor networks

Abstract

Wireless sensor nodes in wireless sensor networks are generally battery powered and it is usually hard to change their batteries. Therefore, energy saving has always been the basic critical problem of wireless sensor networks. In recent years, network coding has become a promising technology to improve network throughput, reduce transmission number, and save energy, which has great potential to solve the energy efficiency problem of wireless sensor networks. In addition, some network coding aware routings have been proposed. However, the network coding condition of existing network coding aware routings may experience the problem of false-coding effect in some scenarios, and usually neglect node energy, which greatly influences the energy efficiency performance. Therefore, existing network coding aware routings are not suitable for wireless sensor networks. This paper proposes network coding aware energy efficient routing (NAER) for wireless sensor networks. In NAER, universal network coding condition is presented and proved to avoid false-coding problem. Besides, combined with the coverage control and topology control mechanism at lower layer, cross layer coding opportunity discover mechanism is presented to increase coding opportunities. In addition, a network coding aware energy efficient routing metric (NERM) is presented, which takes coding opportunity, node energy, and link quality into account jointly. Simulation results demonstrate that NAER improves the accuracy of coding discovery mechanism, increases the number of coding opportunities, saves node’s energy consumption, and prolongs network lifetime.

1 Introduction

In past decades, wireless sensor networks (WSNs) [1, 2] have drawn great attention from research filed due to its potential in many important applications, e.g., hazardous environment monitoring, target tracking, biomedical health monitoring, and so on. However, sensor nodes in WSNs are generally powered by batteries, and it is usually hard for administrator to replace their batteries, due to the constraints of numerous number of nodes and the network deployment environment. Therefore, the energy saving [3, 4] is a basic and critical issue for wireless sensor networks, and the design of energy-efficient routing algorithm [5,6,7,8] is an important aspect.

In 2000, Ahlswede et al. [9] proposed the concept of “network coding.” Network coding allows the intermediate nodes of the network to encode the received packets, subverting the opinion of traditional information theory that the encoding to the received packets at intermediate nodes brings no gain. Li et al. [10] proved that the rate of multicast exploiting network coding can reach the upper bound of the maximum flow minimum cut theory. Specially, the network coding in the wireless environment [11, 12] can make full use of the open characteristics of the wireless channel, reduce the number of data transmissions and improve the network throughput, which is very suitable for wireless sensor networks.

To illustrate the advantage of network coding in wireless environment versus traditional store forward manner, take the scenario in Fig. 1 as an example. In Fig. 1, node 1 and 3 want to exchange a pair of packets via node 2. Using store forward manner, the exchange process will require four transmissions as Fig. 1a. However, using network coding manner, after having received P1 and P2 respectively from node 1 and node 3, node 2 performs network coding operation on P1 and P2 and then sends out the coded packet P1P2. Due to the broadcast nature of wireless channel, both node 1 and 3 will receive P1P2. Then node 1 can obtain the native packet P2 through calculation of P1 (P1P2) = P2, and node 3 can obtain P1 through P2 (P1P2) = P1. It is obvious from Fig. 1b that the number of transmissions using network coding is reduced to three compared with the store-forward manner shown in Fig. 1a.

Fig. 1
figure 1

Network Coding VS. Store Forward Manner. Figure 1 depicts the advantage of (a) network coding vs. traditional (b) store forward manner in reduction of transmission, through a scenario with three nodes, in which two nodes want to exchange packets through the intermediate node

Due to the advantages of network coding in reducing data transmission and improving throughput, some network coding-based routings for wireless multi-hop network have emerged [13,14,15]. The network coding exploited in wireless multi-hop network routing can be divided into two categories: inter-flow network coding and intra-flow network coding according to the packets participating in network coding belongs to single flow or multiple flow [9]. Intra-flow network coding generally uses random linear network coding to solve transmission reliability problem, while inter-flow network coding, which generally performs XOR operation, exploits the broadcast nature of the wireless channel to reduce the number of data transmission and is suitable for energy-efficient routing. Therefore, this paper focuses on the research of inter-flow network coding-based routing for wireless sensor networks. Besides, inter-flow network coding-based routing is also commonly known as coding aware routing.

Katti et al. [16] proposed coding opportunity architecture (COPE) to solve unicast problem using network coding in wireless mesh networks and presented classical “one hop” coding structures. Ni et al. [17] proposed routing with opportunistically coded exchanges (ROCX). ROCX can proactively change routes according to “one hop” coding structures to create more coding opportunities. Le et al. [18] presented distributed coding aware routing (DCAR), which extends the range of coding structure in COPE to multi-hop and increases coding opportunities. Guo et al. [19] investigated the failure decoding problem according to the network coding condition of DCAR in some scenarios and presented some improvement strategies. Peng [20] and Hou [21] proposed the interference and coding aware routing, which jointly consider network coding and wireless interference.

However, these proposed network coding aware routings mentioned above do not analyze the network coding condition failure problem in depth and do not present the network coding condition that can guarantee the decodable of coded packets. In addition, the node energy consumption and network lifetime are not considered by these routings. Therefore, existing network coding aware routings are not suitable for wireless sensor networks. In this paper, a network coding aware energy efficient routing (NAER) for wireless sensor networks is proposed. The contribution of this paper includes:

Analyzing the network coding failure problem in existing network coding aware routings, this paper proposes and proves universal sufficient and necessary network coding condition, to improve the accuracy of coding opportunity discovery;

Based on cross layer technique, coding opportunity discovery combined with coverage control and topology control is presented to increase the number of potential coding opportunities.

A comprehensive routing metric, called network coding energy efficient routing metric (NERM), is presented, which jointly considers network coding opportunities, node energy, and link quality.

This paper is organized as follows: Section 2 describes the key design methods of NAER and details information of the experiments. The related works and motivations are presented in Section 3. Section 4 gives the detailed design of NAER routing algorithm. Simulation details and performance analysis are presented in Section 5. Section 6 gives the discussion on the design of NAER and experimental results. Section 7 concludes this paper.

2 Methods/experimental

The aim of this paper is to apply the network coding aware routing in wireless sensor networks to improve the energy efficiency of transmission in wireless sensor networks and prolong the network lifetime of wireless sensor networks. To solve this problem, NAER is proposed. The design of NAER includes three aspects: network coding condition definition, coding opportunity discovery algorithm design, and routing metric design. After analyzing the network coding condition failure problem in existing routings, this paper presents universal network coding condition to avoid decoding failure problem. In addition, based on universal network coding condition, this paper proposes the network coding opportunity discovery algorithm through cross layer interacting with coverage control and topology control to further increase network coding opportunities. Finally, a comprehensive routing metric, which jointly considers network coding opportunities, node energy, and link quality, is designed for NAER to reflect the quality of the discovered path.

To analyze the performance of NAER, extensive simulations are carried out on Network Simulator 2 (NS2). The simulations consider two scenarios, grid network without cross layer interaction and random network with cross layer interaction. Simulation results confirm that NAER can increase network coding opportunities significantly and prolong the network lifetime of WSNs.

3 Related works and motivations

Currently, some network coding-based routings for wireless multi-hop network have been proposed. And the key technologies of these routings will be analyzed in this section.

Sachin et al. [16] introduced network coding into the unicast in wireless multi-hop network, and proposed the routing framework COPE. In COPE, four classical coding structures (chain structure, “X” structure, cross structure, wheel structure) that exist network coding opportunities are discussed as in Fig. 2. Specially, the dashed line in Fig. 2 means that the node at one end of the dashed line can overhear the packets sent by the node at the other end of the dashed line through the open wireless channel. However, COPE passively discovers the network coding opportunities according to the classical coding structure in established routings. In addition, the coding structures in COPE are limited within the one hop range of the coding nodes.

Fig. 2
figure 2

Classical coding structure with One Hop Range in COPE. Figure 2 shows the classical coding structure existing coding opportunity in COPE, which can be classified as (a) chain structure, b “X” structure, c cross coding structure, and (d) wheel structure according to the shape of the coding structure

Ni et al. [17] proposed the concept of “Coding Aware” and ROCX, which combines route discovery with coding opportunity discovery to find path with coding opportunities as routing. Take the scenario in Fig. 3 as an example to explain the principle of coding aware routing. In Fig. 3, there are two flows initially, flow 1:8  1, flow 2:1  5, and their paths are illustrated in Fig. 3. Then, 5 wants to send packets to 8. Using COPE, 8 will choose the shortest path, path 1 as the routing, while path 2 will be chosen as routing by ROCX, since there exist coding opportunities at node 2, 3, 4, 9 using path 2. Therefore, ROCX actively discovers the routing with coding opportunities, and increases the number of coding opportunities. However, ROCX uses one hop coding structures to discover coding opportunities as in COPE.

Fig. 3
figure 3

Example of coding aware principle in ROCX. Figure 3 demonstrates an example of ROCX to show why ROCX choose the routing with coding opportunity to exploit network coding

Le et al. [18] proposed distributed code aware routing (DCAR). DCAR presented multi-hop network coding condition for two flows intersecting at one intermediate node, which expands range of the coding structure from one hop to multi-hop. The scenario in Fig. 4 depicts an example of coding structure with multi-hop range. In Fig. 4, flow 1 and flow 2 intersects at node 3. Then, 11 can overhear packets from 1, and 5 can overhear packet form 8. If node 3 codes the packets of flow 1 and flow 2, 6 and 11 can obtain their native packet respectively. It is obvious from Fig. 4 that the decoding nodes and overhearing nodes are all two hops away from the coding node 3, which expands the range of coding structure compared with COPE. Although DCAR broadens the scope of coding structures and improves the ability of routing to discover more coding opportunities, the decoding according to the multi-hop network coding condition may be failure (false-coding effect) in some scenarios as given in Fig. 5.

Fig. 4
figure 4

Example of coding structure with multi-hop range in DCAR. Figure 4 depicts an example scenario with two flows intersecting at node 3, which illustrates the principle of multi-hop rage coding structure and wireless overhearing

Fig. 5
figure 5

Example of decoding failure and improvement for coding structure with multi-hop range in GCC. Figure 5 illustrates the decoding failure problem in MCC, and gives three improvements to solve the decoding failure problem. a Failure decoding problem at 10, b improvement of case 1, c improvement of case 2, and d improvement of case 3

Guo et al. [19] investigated the decoding failure scenarios according to the network coding condition in DCAR as given in Fig. 5. In Fig. 5a, there are three flows, flow 1:1  3, flow 2:8  10, and flow 3:4  7. According to the multi-hop network coding condition in DCAR, flow 1 and flow 3 can be coded at 5, flow 2 and flow 3 can be coded at 6. Then, 3 and 7 can obtain the native packet P1 and P2 eventually, but 10 can only get coded packet P1P2, instead of native packet P2. In other words, the multi-hop network coding condition occurs decoding failure in some scenarios. To address the decoding failure problem, [19] presented some improvement measures and general network coding condition (GCC) to correct the network coding condition in DCAR. Additionally, [19] proposed free-ride-oriented routing metric (FORM) In Fig. 5b a previous hop of 6 in flow 3, node C, is expected to get P3 as soon as possible through decoding P1P3, while in Fig. 5c, d, more downstream nodes of node 6 in flow 2 are expected to overhear enough packets for correct decoding. However, the deep reason for the decoding failure is not analyzed. In addition, the GCC is not specific and formal, and is difficult to be used in coding opportunity discovery procedure.

Peng et al. [20] and Hou et al. [21] presented coding and interference aware routing. The available bandwidth calculation method under network coding is investigated in [20, 21]. However, [20] exploited the network coding condition of DCAR, while [21] judges network coding opportunities at each intermediate node according to the classical coding structures in COPE.

Kok et al. [22] proposed improved general network coding condition (IGCC). However, IGCC includes five rules and rules vary under different scenarios, which is a bit complex for node to implement coding opportunity discovery procedure. Chen et al. [23] investigated the network coding condition for multi-flows. However, the coding condition is necessary, not sufficient, which means that decoding failure may occur according to the necessary coding condition.

In addition, the above routings in [16,17,18,19,20,21,22,23] do not consider the node energy consumption, which is critical for energy constraint wireless sensor networks. Therefore, theses routings are not suitable for wireless sensor networks.

Besides, some network coding-based routings for wireless sensor networks have also been proposed.

Li [24], Yang [25], Wang [26], and Miao [27] proposed network coding-based routing for wireless sensor networks. However, routings in [24,25,26,27] exploit intra-flow network coding (random linear network coding), instead of inter-flow network coding, to improve the transmission reliability. To address the coding packet length matching problem, Shen [28] presented inter-flow network coding-based adaptive opportunistic coding routing (AONC). But AONC uses opportunistic routing and decides next hop at each intermediate node, which degrades the performance of network coding.

At present, there are few attempts to apply inter-flow network coding-based routing to wireless sensor networks in research filed. Because it is generally believed that inter-flow network coding-based routing requires all network nodes to continuously overhear transmission of neighbors and buffer the overheard packets, which consumes extra node energy, and requires the sensor node to set a larger memory to buffer the overheard packets. However, it is obvious that only a limited number of nodes need to perform overhearing operations through analyzing classical coding structures. On the other hand, the price of memory has been declining, with the development of integrated circuit technology.

The traditional protocol layering technology can simplify the problem and ensure the designed protocol be optimal at each layer, but generally it cannot guarantee the optimal of the overall performance. In recent years, cross layer technology [29] has become a promising technology to improve network overall performance. However, existing network coding aware routings only consider the routing problem from the network layer, never attempt to combine network coding with cross layer technology to improve network coding opportunities and overall network performance.

The above analysis on current research works of network coding aware routing and the cross layer technology motivates us to present a new network coding aware routing for energy constrained wireless sensor networks. This paper proposes network coding aware energy efficient routing (NAER) for wireless sensor networks. In NAER, the universal sufficient and necessary network coding condition for two flows is presented and proved. Then the network coding condition is extended to multiple flows scenarios. Combined with cross layer interaction with coverage control and topology control in wireless sensor network, then the coding discovery mechanism is proposed based on the proposed network coding condition. In addition, a comprehensive routing metric, network coding aware energy efficient routing metric (NERM) is proposed, which jointly considers the network coding opportunities, link quality, and node energy. Simulation results on NS2 demonstrate that NAER increases network coding opportunities and prolongs network lifetime.

4 Design of NAER algorithm

4.1 Universal network coding condition

Network coding condition is a set of rules for network coding aware routing to discover the network coding opportunities among routings. In addition, network coding condition affects the quantity and accuracy of network coding opportunity and directly determines the ability of network coding aware routing to exploit network coding. Therefore, network coding condition is a basic and critical problem for network coding aware routing.

Before delving into the formal definition of the universal network coding condition, notations of relevant terms and lemmas are given first.

The wireless sensor network can be represented by a graph G(V,E), where V represents the set of sensor nodes and E represents the set of wireless links between nodes in the network. For any node v, the set of nodes with direct link to v is denoted by N(v), also called neighbor set of node v. If a node v belongs to a flow f, we say that vf. The packet that is not coded is called native packet, while the packet that has been coded is called coded packet. The node at which the network coding is carried on is called coding node. If there is no coding node on one flow, the flow is called native flow, otherwise it is called coded flow.

In COPE, Sachi et al. [16] proposed classical network coding structure and presented one hop network coding condition (OCC).

Lemma 1 One Hop Network Coding Condition (OCC)

The sufficient and necessary network coding condition is that, for each intended next hop of the coded packets, it has enough information to decode the encoded packet.

In other words, as long as the next hop nodes of each coded packets can decode the encoded packet successfully, the network coding can be carried out. Therefore, OCC defines the network coding condition from the prospective of decoding result, which is simple and easy to judge network coding opportunity. However, OCC limits the topology within one hop of coding node, and neglects many potential network coding opportunities.

Le et al. [18] extends the range of coding topology and proposed multi-hop network coding condition (MCC).

For a flow f and one node v on f, let U(v, f) denotes the set of all upstream nodes of v on flow f, and D(v, f) denotes the set of all downstream nodes of v on flow f. Assume the path of flow f from source node S to destination node D is: S → N1 → N2… → Nn → v → Nn + 1 → Nn + 2… → Nn + m → D, then there are U(v,f= {S, N1Nn} and D(v,f= {Nn + 1,…Nn + m, D}.

Lemma 2 Multi-hop Network Coding Condition (MCC)

Assume two flows, f1 and f2, intersect at node v, and the channel condition and scheduling are ideal, then the necessary and sufficient condition for f1 and f2 to perform correct network coding and decoding is as follows:

  1. 1)

    d1D(v,f1), such that d1N(s2), s2U(v,f2), or d1U(c,f2).

  2. 2)

    d2D(v,f2), such that d2N(s1), s1U(v,f1), or d2U(c,f1).

However, as mentioned in Section 3, there exists decoding failure problem (false-coding effect) in some scenarios for MCC and Guo et al. [19] illustrate the example of false-coding effect in Fig. 5. It is clear from Fig. 5 that the MCC is satisfied only when the two intersecting flows are both native flows.

To address the drawback of MCC, Guo et al. [19] presented the general network coding condition (GCC).

Lemma 3 General Network Coding Condition (GCC)

For a potential coding node, the general network coding condition is that:

  1. (1)

    There exist upstream decode-capable nodes, which can extract the intended native packet for the node, on the considered flow.

  2. (2)

    There exist downstream acquisition nodes, which can overhear enough packets (either native or encoded) to decode, on other flows associated with the encoding function at this node.

However, the GCC is derived from Fig. 5, which only involves one coded flow intersects with one native flow. Actually, there exists two coded flows intersect at one node. Besides, the downstream acquisition nodes not only should overhear enough packets but also the decoding order should be adequately prepared and the duplication in the overheard packets should be strictly avoided.

Take the scenario in Fig. 6 for example. There are four flows in Fig. 6 marked with different colored lines and arrows. The dashed line with arrow represents the overhearing relationship between two nodes.

Fig. 6
figure 6

Examples to illustrate the problem of GCC and motivation of EMCC and UCC. Figure 6 depicts the problem of coding opportunity loss using GCC, and failed decoding problem in GCC. a Correct decoding scenario with multiple coding using MCC. b Failed decoding scenario without enough packets for decoding. c Failed decoding scenario with fake enough packets for decoding

In Fig. 6a, flow 1 and flow 2 can be coded at node 7, while flow 3 and flow 4 can be coded at node 13, according to MCC. Since flow 2 and flow 3 are both coded flows, and for node 9 there are no upstream node to extract the intended native packet for node 9, there should be no coding opportunity at node 9 according to GCC. However, it is obvious from Fig.6a that flow 3 and flow 4 can be coded at node 9 and each flow can obtain its native packet eventually.

Figure 6b illustrates the false coding scenario without enough packets for decoding. In Fig. 6b, flow 2 and flow 3 are coded at node 9. However, since flow 3 overhears P2 and P4 at node 17 and 15 respectively, the destination node 17 can eventually obtain the coded packet P1P3, which is not intend native packet P3. The reason behind is that flow 3 does not overhear P1 for decoding, resulting in the failed decoding. Similarly, the destination of flow 2, node 11 eventually gets coded packet P2P4, instead of P2.

After modifying the relative positions of node 5, 6, 7 in Fig. 6b, we get the Fig. 6c. In Fig. 6c, flow 3 is coded with flow 2 at node 9, and flow 3 overhears packet P2, P4, P1P2 at node 16, 17, 17 respectively. It appears that flow 3 get enough packets for decoding on P1P2P3P4. However, it is clear that node 16 obtains P1P3P4 through overheard P2 XORing with P1P2P3P4. Then node 17 obtains P1P3 through overheard P4 XORing with P1P3P4, or obtains P2P3 through overhead P4, P1P2, XORing with P1P3P4. In this scenario, flow 3 cannot obtain native packet, although it gets enough packets for decoding according to GCC.

From the above analysis, it can be found that GCC is derived from Fig. 5. And GCC exists coding opportunities loss and failure decoding problem in certain scenarios. Therefore, it is essential to investigate the network coding condition failure problem and propose universal network coding condition through in-depth analysis of MCC, GCC.

Before giving the universal network coding condition, the MCC will be analyzed at first. Although the MCC is confirmed to exist the false-coding effect problem. However, MCC has also been proved to be an easy and efficient way to discover coding opportunities for two native flows. False-coding effect only exists for coded flows. However, there exists an interesting phenomenon in Fig. 6a that the coding opportunity at node 9 for flow 2 and flow 3 can be determined according to MCC. However, flow 2 and flow 3 both have been coded before node 9. That is to say that MCC still holds in certain circumstances even the flows are coded flows and the MCC can be extended to more relax condition. If the downstream nodes in MCC overhear the packets that participate network coding, then the corresponding flow must be able to decode correctly at the downstream node. Based on this point of view, the extended multi-hop network coding condition (EMCC) is presented.

Before presenting the EMCC, related terms are given. The packet before network coding operation is called pre-coded packet, while the result of network coding operation is called en-coded packet. The aim of EMCC is to assure the destination can get the pre-coded packet.

For a node c of a flow f, if node c operates network coding on packets of flow f, then the node c is called coding node of flow f. For a node v of a flow f, if node v receives packet P of flow f, the node s of flow f firstly sends out the packet P, then node s is called the initial node of node v for flow f and the initial node is represented by in(v,f).

For a flow f and one node v on f, let UI(v,f) denote the set of nodes that traverses backward from node v to the in(v,f). Obviously, if there is no coding node in U(v,f), then UI(v,f) = U(v,f). Otherwise, UI(v,f) U(v,f), and the UI(v,f) consists of all nodes that traverse from node v to the first coding node.

Assume the path of flow f from source node S to destination node D is S → N1 → N2…Nc → Nc + 1Nc + 2… → Nn-2 → Nn-1 → Nn → v → Nn + 1 → Nn + 2… → Nn + m → D, and in(v,f) is Nc, then there are UI(v,f= {Nc…,Nn-1, Nn}.

Take the scenario in Fig. 6a for example. Flow 2 and flow 3 intersects at node 9. Before node 9, flow 2 has been coded at node 7 with flow 1, flow 3 has been coded at node 13 with flow 4. Therefore, flow 2 and flow 3 are both coded flows. And there are in(9,flow 2) = 7, U(9,flow 2) = {8,7,6}, UI(9,flow 2) = {9,8,7}, in(9,flow 3) = 13, U(9,flow 3) = {9,14,13,12}, UI(9,flow 3) = {9,14,13}.

Theorem 1 Extended Multi-hop Network Coding Condition (EMCC)

Assume two flows, f1 and f2, intersect at node v, and the channel condition and scheduling are ideal, then the sufficient condition for f1 and f2 to perform correct network coding and decoding is as follows:

  1. (1)

    d1D(v,f1), such that d1N(s2), s2UI(v,f2), or d1UI(c,f2).

  2. (2)

    d2D(v,f2), such that d2N(s1), s1UI(v,f1), or d2UI(c,f1).

Proof To prove the sufficiency of EMCC, the proof is divided into three circumstances.

Circumstance1: f1 and f2 are not coded before node v.

In this case, there are UI(v,f1) = U(v,f1) and UC(v,f2) = U(v,f2), and EMCC is just the same as MCC. Therefore (1) and (2) is sufficient conditions for coding opportunity at node v, according to MCC.

Circumstance2: One of f1 and f2 is coded before node v.

Assume that f1 is coded before arriving v, coded packet Pc from f1 arrive at node v, while native packet P2 from f2 arrive at node v. In this case, UI(v,f2) = U(v,f2).

It is assumed that (1) and (2) hold. According to (2), d2 receive coded packet (PcP2), and it maintains (d2UI(c,f1)) or overhears the packet Pc (d2N(s1)), then d2 could decode through (PcP2) Pc = P2 to get P2. According to (1), d1 receive coded packet (PcP2), and it maintain or overhear the packet P2, then d1 could decode through (PcP2) P2 = Pc to get Pc. For packet Pc, it will be decoded to native packet eventually through iterative iteration according to (1) and (2). If f2 is coded before arriving v, the proof is similar. Therefore, f1 and f2 can be coded at v, and both f1 and f2 can decode correctly to get pre-coded packets. Sufficiency of EMCC is proved.

Circumstance3: Both f1 and f2 are coded before node v.

It is assumed that (1) and (2) hold, and the pre-coded packets of f1 and f2 are Pc1 and Pc2 respectively. According to (1), d1 receive coded packet (Pc1Pc2), and it maintains (d1UI(c,f2)) or overhears the packet Pc2(d1N(s1)), then d1 could decode through (Pc1Pc2) Pc2 = Pc1 to get Pc1. Similarly, d2 could decode through (Pc1Pc2) Pc1 = Pc2 to get Pc2. Then both f1 and f2 can decode correctly to get pre-coded packets. Sufficiency of EMCC is proved.

Take the scenario in Fig. 6a as an example to illustrate the principles of EMCC. In Fig. 6a, flow 2 and flow 3 intersects at node 9. There are (1) 10D(9,flow2), such that 10N(14), 14UI(9,flow3);(2) 15D(9,flow3), such that 15N(8), 8UI(9,flow2). According to EMCC, flow 2 and flow 3 can be coded at node 9. And node 10 and 15 can get pre-coded packets respectively. And Fig. 6a confirms the judgment according to EMCC.

However, the EMCC is only sufficient network coding condition, and there is doubt that whether it is necessary network coding condition. That is when f1 and f2 can code at v, whether (1) and (2) still hold. To prove the un-necessity of EMCC, a counterexample is given in Fig. 7.

Fig. 7
figure 7

Example to illustrate the un-necessity of EMCC. Figure 7 illustrates the un-necessity of EMCC through an example, in which two flows can be coded but do not satisfy the requirement of EMCC

In Fig. 7, there are four flows. According to EMCC, flow 1 and flow 3 can be coded at node 6, while flow 2 and flow 4 can be coded at node 9. Besides, flow 1 intersects with flow 2 at node 12. And there are UI(12,flow 1= {7}, UI(12,flow 2= {8}, 11N(5), 13N(10). That is to say that condition (1) and (2) are not satisfied. According to EMCC, flow 1 and flow 2 cannot be coded at node 12. Nevertheless, flow 1 and flow 2 can be coded at node 12 actually, since node 11 and node 13 can get native packet successfully through decoding. Therefore, two flows satisfied with (1) and (2) of EMCC can be coded together. But two flows which can be coded together at intersecting node might not satisfy the (1) and (2) of EMCC. In other words, if two flows can be coded together, it is not necessary that (1) and (2) of EMCC hold, which is sufficient not necessary.

Analyzing the scenario in Fig. 7, it is obvious that EMCC restricts the overhearing from the node in UI(v,f) to ensure that the overheard packets are just the packets participating network coding to guarantee the correct decoding at downstream node. However, the overhearing can be at the upstream node of the node in UI(v,f) which further extends the scope of overhearing in EMCC. This motivates us to propose universal network coding condition (UCC).

Assume one node v is the neighbor of node s, then v can overhear packet sent by s, and the packet overheard by v from s is marked as OH(s). And s is called overheard node, while v is called overhearing node. \( \sum \limits_{i=1}^m OH\left({s}_i\right) \) represents the XOR operations of multiple parameters, i.e., \( \sum \limits_{i=1}^m OH\left({s}_i\right)= OH\left({s}_1\right)\oplus OH\left({s}_2\right)\dots \oplus OH\left({s}_m\right) \). Pc is the XOR result of n native packets (p1, p2, …pn). G(Pc) is the set of native packets forming Pc. Assume one node v on flow f sends packet P. The packet P is the XOR result of m native packets (P1, P2, …Pm). If m < n and G(P G(Pc), then f is called the related flow of Pc, and node v is called the related node of Pc. The set of related nodes of coded packet Pc is marked as RN(Pc).

Theorem 2 Universal Network Coding Condition for Two Flows (UCC-2)

Assume two flows, f1 and f2, whose native packets are P1 and P2 respectively, intersect at node v, and the channel condition and scheduling are ideal. The packets arrive at node v from f1 and f2 are P’1 and P’2 respectively, and Pc = P’1P’2. Then the necessary and sufficient condition for f1 and f2 to perform correct network coding and decoding is as follows:

  1. (1)

    diD(v,f1), such that diN(s2i), s2iU(v,f2)RN(Pc), or diU(v,f2), i = 1…m, and there are \( {P}_c\oplus \sum \limits_{i=1}^m OH\left({s}_{2i}\right)={P}_1 \).

  2. (2)

    djD(v,f2), such that djN(s1j), s1jU(v,f1)RN(Pc), or djU(v,f1), j = 1…n, and there are \( {P}_c\oplus \sum \limits_{j=1}^n OH\left({s}_{1j}\right)={P}_2 \).

Proof The proof of UCC-2 is divided into sufficiency proof and necessity proof.

Sufficiency Proof: Assume (1) and (2) hold, and f1 and f2 are coded at node v. Then for flow f1, at each overhearing node di, di can operate decoding through \( {P}_c\oplus \sum \limits_{i=1}^i OH\left({s}_{2i}\right) \). Then at node dm, dm can get the native packet P1 through \( {P}_c\oplus \sum \limits_{i=1}^m OH\left({s}_{2i}\right)={P}_1 \). Similarly, flow f2 can get native packet P2 through \( {P}_c\oplus \sum \limits_{i=1}^n OH\left({s}_{1j}\right)={P}_2 \). Therefore, f1 and f2 can get native packet through decoding successfully, and they can be coded at node v. The sufficiency is proved.

Necessity Proof: Assume f1 and f2 can be coded at node v, then f1 and f2 should be able to get the native packet through decoding at the overhearing node. EMCC requires that the overheard nodes should be in UI(v,f). However, the scenario in Fig. 7 illustrates that the overheard node can be extended to U(v,f). Assume there are m overhearing nodes on f1. For overhearing node dif1, it can get overheard packet OH(s1i) from overheard node s1i on f2. Since f1 can get the native packet P1, the coded packet Pc is decoded at each di like peeling onion, and at node dm, the native packet P1 is obtained through \( {P}_c\oplus \sum \limits_{i=1}^m OH\left({s}_{2i}\right)={P}_1 \). Therefore, (1) holds. Similarly, the (2) holds. The necessity is proved.

Based on the above proof of sufficiency and necessity, the UCC-2 is proved.

Take the scenario in Figs. 7 and 8 as examples to illustrate the principle of UCC-2. In Fig. 7, flow 1 and flow 2 intersect at node 12. For flow 1 and flow 2, Pc = P1P2. (1) 13D(12,flow 1), 13N(10), 10U(12,flow 2), OH(10) = P2 and there are PcP2 = P1. (2)11D(12,flow 2), 11N(5), 5U(12,flow 1), OH(5) = P1 and there are PcP1 = P2. Therefore, flow 1 and flow 2 in Fig. 7 can be coded at node 12 according to UCC, and Fig. 7 confirms the judgment.

Fig. 8
figure 8

Example to illustrate the principle of UCC-2. Figure 8 shows how to identify the coding opportunity using UCC-2 through an example

The scenario in Fig. 8 is similar with that in Fig. 6b, and flow 2 and flow 3 intersect at node 9, where Pc = P1  P2  P3  P4 is generated. (1) 10D(9,flow 2), 10N(13), 13U(9,flow3); 10D(9,flow 2), 10N(1), 1RN(Pc); OH(13) = P3  P4, OH(1) = P1, PcOH(13)  OH(1) = P2. (2)15D(9,flow 3), 15N(20), 20RN(pc); 16D(9,flow 3), 16N(4), 4RN(Pc); 17D(9,flow 3), 17N(6), 6U(9,flow2); OH(20) = P4, OH(4) = P1, OH(6) = P2, PcOH(20)  OH(4)  OH(6) = P3. Therefore, according to UCC-2, flow 2 and flow 3 can be coded at node 9 and each flow can get native packet respectively.

Theorem 3 Universal Network Coding Condition for N Flows (UCC-N)

Assume N flows, f1, f2, …, fN, intersect at node v, and the channel condition and scheduling are ideal. Then the necessary and sufficient condition for the N flows to perform correct network coding and decoding is that for any two flows of the N flows, fi and fj (i ≠ j), satisfy UCC-2.

Proof The proof of UCC-N is divided into sufficiency proof and necessity proof.

  1. (1)

    Sufficiency Proof: Assume any two flows of the N flows, fi and fj, satisfy UCC-2, and their native packets are Pi and Pj respectively, and the packets arriving at node v are Pi and Pj respectively. According to UCC-2, flow fi can get its native packet Pi through \( P{'}_i\oplus P{'}_j\oplus \sum \limits_{k=1}^{m_j} OH\left({s}_{jk}\right) \). Assume the packets of the N flows coded at v and form the coded packet Pc = P’1P’2 … P’N. Assume i = 1, there are following results.

Since f1 and f2 meets UCC-2, then there is

$$ P{'}_1\oplus P{'}_2\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)={P}_1,{P}_1=P{'}_1\oplus P{'}_2\oplus {K}_2 $$

Since f1 and f3 meets UCC-2, then there is

$$ P{'}_1\oplus P{'}_3\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right)={P}_1,{P}_1=P{'}_1\oplus P{'}_3\oplus {K}_3 $$

Since f1 and f4 meets UCC-2, then there is

$$ P{'}_1\oplus P{'}_4\oplus \sum \limits_{k=1}^{m_4} OH\left({s}_{4k}\right)={P}_1,{P}_1=P{'}_1\oplus P{'}_4\oplus {K}_4 $$

Since f1 and f5 meets UCC-2, then there is

$$ P{'}_1\oplus P{'}_5\oplus \sum \limits_{k=1}^{m_5} OH\left({s}_{5k}\right)={P}_1,{P}_1=P{'}_1\oplus P{'}_2\oplus {K}_5 $$

……where \( {K}_i=\sum \limits_{k=1}^{m_i} OH\left({s}_{ik}\right) \).

Accordingly, when N = 2, there are

$$ {P}_c=P{'}_1\oplus P{'}_2={P}_1\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right), $$
$$ {P}_1={P}_c\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right) $$

When N = 3, there are

$$ {\displaystyle \begin{array}{c}{P}_c=P{'}_1\oplus P{'}_2\oplus P{'}_3\\ {}={P}_1\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)\oplus P{'}_3\\ {}=P{'}_1\oplus P{'}_3\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right)\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)\oplus P{'}_3\\ {}=P{'}_1\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right)\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)\\ {}=P{'}_1\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right)\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)\\ {}={P}_1\oplus P{'}_2\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right)\oplus \sum \limits_{k=1}^{m_2} OH\left({s}_{2k}\right)\\ {}={P}_1\oplus P{'}_2\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right)\\ {}\end{array}} $$
$$ P1= Pc\oplus P{'}_2\oplus \sum \limits_{k=1}^{m_3} OH\left({s}_{3k}\right) $$

According to above rules, when N = 2 k, there are

$$ {P}_c={P}_1\oplus \sum \limits_{l=2}^{2k}{K}_l $$
$$ {P}_1={P}_c\oplus \sum \limits_{l=2}^{2k}{K}_l $$
(1)

When N = 2 k + 1, there are

$$ {P}_c={P_1}^{'}\oplus \sum \limits_{l=2}^{2k+1}{K}_l={P}_1\oplus P{'}_2\oplus \sum \limits_{l=3}^{2k+1}{K}_l $$
$$ {P}_1={P}_c\oplus P{'}_2\oplus \sum \limits_{l=3}^{2k+1}{K}_l $$
(2)

Therefore, flow 1 can get the native packet P1 eventually according to formula (1) and (2). In other words, each flow can get the native packet since the flow 1 is random chosen from N flows, and the N flows can be coded at node v and each flow can decode successfully.

  1. (2)

    Necessity Proof: Assume the N flows can be coded at node v, then each flow can get their native packets respectively through decoding. For any two flows of the N flows, fi and fj, (i! = j), there are:

    $$ {P}_c\oplus K={P}_i, $$
    (3)
    $$ {P}_c\oplus M={P}_j, $$
    (4)

    where Pc = P1P2… Pi… Pj… PN, K is the XOR result of overheard packets by fi, M is the XOR result of overheard packets by fj.

The coded packet Pc can be expressed with two parts as

$$ {\displaystyle \begin{array}{l}{P}_c=P{'}_i\oplus P{'}_j\oplus P{'}_1\dots \oplus P{'}_{i-1}\oplus P{'}_{i+1}\dots \oplus P{'}_{j-1}\oplus P{'}_{j+1}\dots \oplus P{'}_N\\ {}=P{'}_i\oplus P{'}_j\oplus {P}_{uij},\end{array}} $$

where Puij is the XOR result of arriving packets of the flows except fi and fj, Puij = P’1… P’i-1P’i + 1… P’j-1P’j + 1… P’N.

In addition, the K and M can also be expressed with two parts as

$$ K={K}_j\oplus {K}_{uij}, $$

where Kj is the XOR result of overheard packets related to fj, while Kuij is the XOR result of overheard packets unrelated to fi and fj.

Similarly,

$$ M={M}_i\oplus {M}_{uij}, $$

where Mi is the XOR result of overheard packets related to fi, while Muij is the XOR result of overheard packets unrelated to fi and fj.

Then formula (3) and (4) can be further expressed as

$$ P{'}_i\oplus P{'}_j\oplus {P}_{uij}\oplus {K}_j\oplus {K}_{uij}=P{'}_i\oplus P{'}_j\oplus {K}_j\oplus \left({P}_{uij}\oplus {K}_{uij}\right)={P}_i $$
(5)
$$ P{'}_i\oplus P{'}_j\oplus {P}_{uij}\oplus {M}_i\oplus {M}_{uij}=P{'}_i\oplus P{'}_j\oplus {M}_i\oplus \left({P}_{uij}\oplus {M}_{uij}\right)={P}_j $$
(6)

Since Puij contains information of the flows except fi and fj, and fi need to get native packet Pi, the result of PuijKuij should be all zero. Similarly, PuijMuij should also be all zero. According to the rule of XOR, formula (5) and (6) can be reduced as

$$ P{'}_i\oplus P{'}_j\oplus {K}_j={P}_i, $$
(7)
$$ P{'}_i\oplus P{'}_j\oplus {M}_i={P}_j, $$
(8)

Actually, the Kj can be expressed as \( {K}_j=\sum \limits_{p=1}^m OH\left({s}_{jp}\right) \), where sjp is the overheard node in U(v,fj). Similarly, \( {M}_i=\sum \limits_{q=1}^n OH\left({s}_{iq}\right) \), where siq is the overheard node in U(v,fi). Then the formula (7) and (8) are expressed as

$$ P{'}_i\oplus P{'}_j\oplus \sum \limits_{p=1}^m OH\left({s}_{jp}\right)={P}_i, $$
(9)

and dpD(v,fi), such that dpN(sjp), sjpU(v,fj), or dpU(v,fj), p = 1…m,

$$ P{'}_i\oplus P{'}_j\oplus \sum \limits_{q=1}^n OH\left({s}_{iq}\right)={P}_j, $$
(10)

and dqD(v,fj), such that dqN(siq), siqU(v,fi), or dqU(v,fi), q = 1…n,

According to formula (9) and (10), fi and fj satisfy the UCC-2.

Based on the above proof, the sufficiency and necessity of UCC-N are proved.

The comparison of the typical network coding conditions with UCC is presented in Table 1.

Table 1 Comparison of typical network coding conditions with UCC

In addition, decoding as soon as possible (ASAP Decoding) is the principle of NAER. The overhearing may happen at several nodes after the coding node. ASAP decoding means that the decoding should take place at the first overhearing node to ensure the coded packets is decoded as soon as possible after coding. Take the scenario in Fig. 9 as an example. The scenario in Fig. 9 is similar with that of Fig. 7a. flow 1 and flow 2 codes at node 7, while flow 3 and flow 4 codes at node 13. However, flow 2 decodes at node 8, and flow 3 decodes at node 14. When the flow 2 and flow 3 reach node 9, both of them send native packet. Then Fig. 9 is clearer than that in Fig. 7a.

Fig. 9
figure 9

Example to illustrate the principle of decoding as soon as possible. Figure 9 shows the advantage of decoding as soon as possible principle through an example

4.2 Principle of cross layer network coding aware

Figure 5 illustrates the improvements to MCC by GCC. To achieve the network coding opportunity at node 5, GCC inserts node C into the network as Fig. 5b, c or enhance the transmission range of node 2 as Fig. 5d. However, adding new node into network is impossible for ordinary fixed network. On the other side, topology control and coverage control, which control the transmission range or node’s mode (sleeping or working) in network, is ordinary in wireless sensor network due to the energy efficiency demand. In addition, cross layer mechanism has become a promising technology to improving the overall network performance. Therefore, NAER attempts to exploit cross layer mechanism to increase network coding opportunities through combining network coding opportunities discovery mechanism with topology control and coverage control.

Topology control and coverage control algorithms affect the discovery of some potential network coding opportunities. Taking the scenario in Fig. 6b as an example, the flow 2 and flow 3 cannot code at node 9 in Fig. 6b, since both flows cannot get native packets respectively. Nevertheless, if enhance the transmission range of node 4 and 21 through updating the topology control, and let node 16 and 10 overhear the packet from 4 and 21 respectively as shown in Fig. 10a, then node 11 and node 17 can get the native packet P2 and P3 correctly.

Fig. 10
figure 10

Example to illustrate the benefit of cross layer network coding aware. Figure 10 illustrates two example scenarios to show the coding opportunities creating through combining routing with topology control and coverage control. a Correct decoding using UCC after topology control updating. b Correct decoding using UCC after convergence control updating

On the other hand, if wake the sleep nodes, node N1 between 9 and 10, node N2 between 15 and 16, through updating the coverage control mechanism, then flow 2 and flow 3 can get native packets through decoding successfully as well as shown in Fig. 10b.

Therefore, it is clear from Fig. 10 that network coding opportunities can be further increased through combing network coding opportunity discovery with topology control and coverage control, which motivate NAER to present the idea of cross layer network coding opportunity aware mechanism. Figure 11 depicts the principles of cross layer interactions in NAER.

Fig. 11
figure 11

Principle of cross layer interactions in NAER. Figure 11 gives the principle of cross layer interaction from the perspective of protocol stack

4.3 Network coding aware energy efficient routing metric

Although increasing the number of coding opportunities is one goal of network coding aware routing, the route with most coding opportunities in WSNs may not be optimal in energy consumption, quality of each link, or other aspects. Therefore, it is necessary to design a comprehensive routing metric that takes into account factors such as node energy, network coding opportunities, and wireless link quality. In this paper, the network coding aware energy efficient routing metric (NERM) is proposed.

Since energy efficiency is a fundamental demand of protocol design for WSNS, NERM is designed from the prospective of energy consumption. Assume lij is the link from node i to node j on route R. Then the NERM value of lij, NERM(lij) is defined as follow.

$$ \mathrm{NERM}\left({l}_{ij}\right)\kern0.5em =\kern0.5em \left(\mathrm{SEC}(i)\kern0.5em +\kern0.5em \mathrm{REC}(j)\right)\kern0.5em \times \kern0.5em \mathrm{EF}(i) $$
(11)

where SEC(i) is the sending energy consumption at node i, REC(j) is the receiving energy consumption at node j, and EF(i) is the energy factor of node i and will be explained below.

Assume the route R can be coded with other flows at node i, and the number of flows participating coding is c(i), then the c(i) native packets of the c(i) flows can be coded and sent out in one coded packet. Therefore, the energy consumption for R at i is 1/c(i) of the energy consumption for coded packet transmission. When c(i) is 1, it means that there exists no coding opportunity at node i for R.

Since lij is wireless channel, sending and receiving on it follows probability model. In other words, the sending and receiving on lij may not succeed in one time. Therefore, the expected transmission number E(lij) is used to reflect the link quality of lij. Let φ(lij) represent the needed transmission count for one successful transmission on lij, then E(lij) is calculated as follow.

$$ E\left({l}_{ij}\right)=\frac{1}{\sum \limits_{k=0}^{+\infty }P\left(\varphi \left({l}_{ij}\right)>k\right)} $$
(12)

Let ET(i) denote the energy consumption intensity for sending at node i. ET(i) is expressed as follow.

$$ ET(i)={E}^{TElec}+{\varepsilon}_{amp}{d}^{\gamma } $$
(13)

where ETElec is the energy consumption for sending of unit data, εamp is the energy consumption of amplifier for sending of unit data, d is the distance between sender and receiver, and γ is the path loss coefficient whose value is in [2, 4].

Then SEC(i) can be calculated as follow.

$$ \mathrm{SEC}(i)\kern0.5em =\kern0.5em E\left({l}_{ij}\right)\times \frac{1}{c(i)}\kern0.5em \times \kern0.5em \mathrm{ET}(i) $$
(14)

Assume ERElec(j) is the energy consumption for receiving of unit data, then REC(i) can be expressed as follow.

$$ \mathrm{REC}(i)\kern0.5em =\kern0.5em E\left({l}_{ij}\right)\times {E}^{RElec} $$
(15)

In wireless sensor network, once one node’s energy is exhausted, the node will no longer send or receive, resulting in routes interruption. Therefore, NERM should consider the energy of nodes on routes to avoid selecting nodes with less energy and balance the energy consumption in the network. The energy factor of node i, EF(i) is to reflect the node’s energy. Assume EL(i) is the percentage of node’s remaining energy, EL(i) is calculated as follow.

$$ EL(i)=\frac{E_r(i)}{E_t(i)} $$
(16)

where Er(i) is the remaining energy of node i, and Et(i) is the initial total energy of node i.

Then EF(i) is expressed as follow.

$$ EF(i)={e}^{- EL(i)} $$
(17)

Based on the calculation of NERM value of link lij, the NERM value of the route R is expressed as follow.

$$ NERM(R)=\sum \limits_{l_{ij}\in R}^R NERM\left({l}_{ij}\right) $$
(18)

It is clear from the formula (18) that a larger number of participating coding flows better link quality, and a larger percentage of remaining energy lead to a smaller NERM value of Route R, which implies that lower level of energy consumption of routing and better routing performance. Compared with the routing metric of other network coding aware routing, NERM has the following features: (a) NERM jointly considers coding opportunity, link quality, and node energy, instead of only pursuing the increment of coding opportunities. (b) The NERM calculation is based on the energy consumption which is critical for energy constraint wireless sensor network. (c) The NERM value of routes can be calculated in distributed manner after the route discovery phase, and source node select the routes according to their NERM value.

4.4 NAER procedure

The procedure and implementation details of NAER are presented in this section.

In NAER, each node maintains following elements:

  1. (a)

    Neighbor table (NT): NT is used to record information of neighbors, which include IDs and state of Active neighbors, temporary Unreachable neighbors due to topology control, and Sleeping neighbors due to coverage control.

  2. (b)

    Cycle buffer queue (CBQ): CBQ is set to store the overheard packets from neighbors.

  3. (c)

    Flow table (FT): FT records the detailed information of the flows traversing through current node, including the flow ID, the ID of each node on these flows, and the neighbors’ information of each node on these flows.

  4. (d)

    Overhearing state (OHS): OHS is a Boolean type value, with HEAR meaning that the node can overhear and cache packets from neighbors, and UNHEAR meaning that the node will drop packets not for itself from neighbors. At the initial stage of the network, all nodes are set to the UNHEAR state.

  5. (e)

    Routing table (RT): Routing table includes the source routings from current node to other nodes in the network.

When the nodes in the network are powered on, each node sends a probe packet with its ID using the maximum transmitting power. Receiving the probe packet, each node stores the ID in the probe packet into its NT. However, some nodes may be set sleeping after coverage control, and some nodes’ transmission range may shrink after adjusting its transmission power by topology control. Therefore, the neighbors’ state should be updated after coverage control and topology control.

In other coding aware routing, the coding opportunities are usually calculated at intermediate node in route reply phase, i.e., along the reverse path discovered by routing request phase. However, NAER allows the multiple coding nodes on one path. If the coding opportunity is calculated as the other coding aware routing, the already calculated coding opportunities at downstream nodes may be turned to be false-coding node when calculate the coding opportunities at upstream nodes. Therefore, the coding opportunities calculation of NAER should be along the path discovered by route request phase, instead of reverse order.

Then there is doubt that whether the coding opportunity can be calculated at source node S. However, according to UCC-2 and UCC-N, to calculate the coding opportunity at one node, it is essential for current node to know the information of flows traversing the current node and neighbors’ information of each node on these flows. If the coding opportunity is calculated at source node S, all the above information needs to be collected to send to S, which is too large and will consume lots of energy.

Therefore, two additional phases called coding opportunity calculation phase and coding reply phase are introduced in NAER, to calculate coding opportunities in distributed manner to avoid the related information transmission. And totally, NAER needs three round-trip interactions between source and destination to complete the routing discovery procedure: one round-trip interactions to discover routes, one round-trip interactions to calculate coding opportunities, and one round-trip interactions to specify the overhearing node.

When a new arriving flow whose source is node S and destination is node D is injected into the network and there is no route entry for the flow in RT of node S, S starts routing discovery procedure. The routing discovery procedure of NAER includes six phases: (1) Route request, (2) Route reply, (3) Coding opportunity calculation, (4) Coding reply, (5) Routing and coding confirm, and (6) Routing and coding reply.

The detailed steps of NAER are described as follows.

  1. (1)

    Route request

S generates route request (RREQ) message and broadcasts it to its neighbors. The structure of RREQ in NAER is shown in Fig. 12. The field “Type” indicates the type of the message. The length of the RREQ is given in field “Length.” The field “RREQ_ID” is the consequence ID of the RREQ message. “Source_ID” and “Destination_ID” are the IDs of the source and destination respectively. The ID of each node that RREQ traverses is recorded in the field “Forward_ID”.

Fig. 12
figure 12

Structure of RREQ message. Figure 12 shows the structure of RREQ message, including the name of fields and their length

Upon receiving an RREQ, the intermediate node v proceeds as follows.

If node v have received one RREQ message with the same RREQ_ID, node v drops the latest received RREQ.

Add the ID of node v into RREQ.

Rebroadcast the updated RREQ message to discover the remaining path.

  1. (2)

    Route reply

When RREQ arrives at D, D proceeds as follows.

Copy the IDs of the node on the path collected by RREQ to create corresponding RREP message, whose structure is shown in Fig. 13.

Fig. 13
figure 13

Structure of RREP Message. Figure 13 shows the structure of RREP message, including the name of fields and their length

Unicast the RREP to node S along the reverse path discovered by RREQ.

As shown in Fig. 13, the field “RREP_ID” is the consequence ID of the RREP message. The “Neighbors_ Information” field stores the number of current node’s neighbors and ID of each neighbor. The rest field of RREQ is the same as that of RREQ.

  1. (3)

    Coding opportunity calculation

Upon receiving RREQ message, node S set a timer Ts, and create route coding opportunity calculation (RCOC) message for each RREQ arrived within Ts. The structure of RCOC is shown in Fig. 14. Then S unicast the RCOC to node D along the path discovered by RREQ.

Fig. 14
figure 14

Structure of RCOC Message. Figure 14 shows the structure of RCOC message, including the name of fields and their length

As depicted in Fig. 14, the field “RCOC” is the consequence ID of RCOC. “Energy_Percent” implies the remaining energy percentage of current node. “Link_Quality” indicates the successful transmission probability of the link form current node to next hop, while “Link_Distance” is the distance between current node and next hop. In addition, “Code_State” field is bool type value, which indicates whether the path can be coded with existing flows at current node. If “Code_State” is set true, “Num_Code” will give how many flows will participate in the network coding, “Code_Flow_Information” will present the IDs of flows involving network coding, and “Overhear_Information” will give the IDs of nodes involving the overhearing.

Upon receiving RCOC message, intermediate node v proceeds as follows.

Collect v’s remaining energy percentage, the quality and the distance of the link from v to next hop, and update related fields in RCOC.

If v’s FT is not empty, execute the network coding opportunity calculation algorithm as shown in Algorithm 1 based on the Neighbors_Information in RCOC and v’s FT.

If there exits coding opportunity at v for the path discovered by RREQ, set the “Code_State” field as TRUE, and update “Number_Code,” “Code_flows_Information,” “Overhear_Information” fields based on the results of Algorithm 1.

  1. (4)

    Coding reply

When D receives RCOC, it proceeds as follows.

Based on the information in RCOC, it create route and coding opportunity reply (RCOR) message. The structure of RCOR is as shown in Fig. 15. It is obvious that the structure of RCOR is almost the same as that of RCOC other than the field “Neighbors_Information,” which is not essential for calculation of NERM value.

Fig. 15
figure 15

Structure of RCOR Message. Figure 15 shows the structure of RCOR message, including the name of fields and their length

Unicast RCOR message along the reverse path discovered by RREQ.

Intermediate node just forwards RCOR without any modifications.

  1. (5)

    Routing and coding confirm

When S receives RCOR, it proceeds as follows.

Calculate the NERM value of the path stored in RCOR.

Select the path with the minimum NERM value as final routing and update RT.

S creates routing and coding confirm (RCON) message and unicast it to node D. The structure of RCON is shown in Fig. 16. Compared with RCOR, the structure of RCON deletes the fields related to NERM calculation, e.g., “Energy_Percent,” “Link_Quality,” and “Link_Distance.”

Fig. 16
figure 16

Structure of RCON Message. Figure 16 shows the structure of RCON message, including the name of fields and their length

When an intermediate node v receives RCON, it proceeds as follows.

Update its FT according to the path of RCON.

Set the working mode of the node in SO_ID to overhear packets from the node in RO_ID.

If the TS is not NULL, execute the topology control mechanism to require the nodes in TS to enhance transmission range. If the CS is NULL, execute the coverage control mechanism to wake up the nodes in CS.

  1. (6)

    Routing and coding reply

When D receive RCON, it proceeds as follows.

Create route and coding acknowledgement (RACK), and unicast it to S. The structure of RACK is shown in Fig. 17. The structure of RACK is similar with that of RREQ, and deletes unnecessary fields to reduce the data to transmit.

Fig. 17
figure 17

Structure of RACK Message. Figure 17 shows the structure of RACK message, including the name of fields and their length

When S receive the RACK, it begins to transmit data using the routing in RT.

The flow chart of route discovery procedure of NAER is illustrated in Fig.18.

Fig. 18
figure 18

The route discovery procedure of NAER. Figure 18 shows the six phases of route discovery procedure of NAER, including the flows charts of the messages transmitted among source node, intermediate node and destination node

figure a

5 Simulations and performance analysis

5.1 Parameters for simulations

In order to evaluate the performance of the proposed NAER, extensive simulations are conducted using NS2 platform. In addition, COPE [16], DCAR [18], and FORM [19] are also simulated as comparison items. As the simulations of typical network coding aware routings, e.g., DCAR [18], FORM [19], and so on, grid topology and random topology are considered in simulations. Besides, to investigate the contribution of cross layer network coding aware, with and without topology and coverage control cases are considered respectively. Therefore, the simulation scenarios are listed as follows to analyze the performance of NAER.

  1. (1)

    Scenario 1: 100 nodes form a 10 × 10 grid network which is uniformly deployed in a square area of 500 m × 500 m. In this case, there is no topology control or coverage control, and all nodes are active.

  2. (2)

    Scenario 2: 150 nodes are uniformly deployed in a square area of 500 m × 500 m. Universal network coding condition and cross layer network coding aware are focus of this paper, instead of topology control algorithm and coverage control algorithm. Therefore, topology control exploits the classical node scheduling scheme (NSS) [30] algorithm, and coverage control uses traditional local mean algorithm (LMA) [31], to illustrate the benefit of cross layer network coding aware.

The MAC layer of the node adopts IEEE 802.15.4, whose channel capacity is 250Kbps and sending queue size is 100. Besides, the packet size is 128 byte. The data flow in the network is set to constant bit rate (CBR) type and the data flow rate is 8 kbps. The source and destination of each CBR flow are randomly selected from active network nodes. The other detailed simulation parameters are shown in Table 2. In the simulations, the number of flows is increased gradually to analyze the performance of routings under different network load.

Table 2 Simulation parameters setting

5.2 Simulation results analysis

5.2.1 Scenario 1: grid network

Figure 19 presents the network throughput using four routings under different number of flows in grid network. It is clear that as the number of flows grows, the network throughput increases, but the advantage of NAER becomes obvious. The network throughput of NAER exceeds that of COPE 9.85%, DCAR 6.62%, and FORM 3.57% with 20 flows. When the number of flows is increased to 40, the gaps of the network throughput turn into 29.07%, 15.63% and 6.73%, individually.

Fig. 19
figure 19

Network throughput under different number of flows in grid network. Figure 19 shows the network throughput comparison of COPE, DCAR, FORM, and NAER under different number of flows in grid network

The reason is that the network coding opportunity is rare, which leads to comparable network throughput of four routings, when the number of flows is small. However, the chances of cross-over and overlapping among flows increases with the ascending of flows number which creates more coding opportunities among routes. As network coding aware routing, DCAR, FORM, and NAER can discover and exploit coding opportunities to save bandwidth and reduce interference, which improve network throughput eventually. Sine COPE can only discover coding opportunities in established routes, which neglects many potential coding opportunities, the network throughput of COPE is the lowest in the four routings. Furthermore, compared to DCAR and FORM, NAER has a better throughput because it improves the network coding condition of DCAR and FORM, and proposes UCC which increase the quantity of coding opportunities and guarantee the decodable of coded packets.

The average end-to-end delay under different number of flows is given in Fig. 20. It is clear that the average end-to-end delay of the four routings rises, as the number of flows ascends. Due to the extra coding opportunity discovery process in routing discovery, DCAR, FORM, and NAER have larger average end-to-end delay than COPE, when the number of flows is less than 28. In addition, when the number of flows is over 30, the average end-to-end delay of the four routings grows greatly. The reason behind the phenomenon is that congestion is more likely to happen in network as the number of flows is over 30. However, since NAER discovers more coding opportunities which save node bandwidth, it has the least delay compared with other three routings when the number of flows is over 32.

Fig. 20
figure 20

Average end-to-end delay under different number of flows in grid network. Figure 20 shows the average end-to-end comparison of COPE, DCAR, FORM, and NAER under different number of flows in grid network

The energy consumption per packet is the ratio of nodes’ total energy consumption to the number of all transmitted packets. The energy consumption per packet comparison of four routings with different number of flows is exhibited in Fig. 21. It is clear that NAER has a slight advantage when the number of flows is small. When the number of flows grows, NAER has a larger superiority compared to the other three routings. There are two reasons for this phenomenon. On the one hand, NAER presents UCC and exploits more coding opportunities among routings which reduce the number of transmissions and reduce the energy consumption per packet actually. On the other hand, NAER can guarantee the decodable of coded packets to avoid retransmission compared with other three routings.

Fig. 21
figure 21

Energy consumption per packet under different number of flows in grid network. Figure 21 shows the energy consumption per packet comparison of COPE, DCAR, FORM, and NAER under different number of flows in grid network

The network lifetime in NAER is defined as the time until the first sensor node run out of energy and die. Figure 22 exhibits the network lifetime under different number of flows in grid network. It can be found from Fig. 22 that the network lifetime of the four routings is close when the number of flows is less than 12. The gap among the four routings becomes larger as the number of flows increases. Moreover, the network lifetime of the NAER is always longer than COPE, DCAR, and FORM, especially with larger number of flows, indicating that NAER achieves a better energy consumption performance. The reason is that NAER presents the routing metric NERM which considers the node’s energy and balance network energy consumption. In addition, NAER can discover more coding opportunities through using UCC, which reduce number of transmission and save node’s energy consumption.

Fig. 22
figure 22

Network lifetime under different number of flows in grid network. Figure 22 shows the network lifetime comparison of COPE, DCAR, FORM, and NAER under different number of flows in grid network

The coded packet percentage is calculated as the number of coded packets to the total number of packets transmitted in network, which reflects the approximate quantity of the coded packets in the network transmission. The coded packet percentage under different number of flows in grid network is shown in Fig. 23. It is obvious from Fig. 23 that the coded packet percentage of the four routings is comparable due to fewer coding opportunities when the number of flows is less than 6. The coded packet percentage of the four routings ascends gradually with the number of flows increasing. And the coded packet percentage of COPE is far less than DCAR, FORM, and NAER when the number of flows is over 8, since it discovers less coding opportunities compared with other routings. And the gap among DCAR, FORM, and NAER becomes larger when the number of flows is over 16. The reason behind the phenomenon is that NAER presents UCC improved from DCAR and FORM and can discover more potential coding opportunities.

Fig. 23
figure 23

Coded packet percentage under different number of flows in grid network. Figure 23 shows the coded packet percentage comparison of COPE, DCAR, FORM, and NAER under different number of flows in grid network

Since NAER can discover more coding opportunities through UCC, it is essential to analyze the coding opportunities in NAER through classifying the coding opportunities based on the coding conditions. In fact, all the coding opportunities in NAER are discovered based on UCC. The classification of coding opportunities means to confirm whether one coding opportunity in NAER can be discovered using MCC, EMCC, UCC-2, or UCC-N. The purpose of the classification is to analyze the contribution of UCC-2 and UCC-N to coding opportunities discovery. The coding condition percentage of NAER under different number of flows in grid network is shown in Fig. 24.

Fig. 24
figure 24

Coding condition percentage of NAER under different number of flows in grid network. Figure 24 shows the coding condition percentage comparison of NAER under different number of flows in grid network

It is interesting from Fig. 24 that different coding conditions have different trend as the number of flows increases. When there are two flows, the MCC is 100%. However, MCC decreases sharply with the increasing of number of flows, because MCC requires that the two intersecting flows should not be coded before the intersecting node, which is hard to be satisfied in network with more flows. EMCC increases first and then decrease when the number of flows is 8, since EMCC has no limitation on whether the flows have been coded before intersecting node, but strictly limits the node of overhearing, thus reduces the coding opportunities as the number of flows increases. UCC-2 increases rapidly when the number of flows is between 6 and 16. When the number of flows is over 16, UCC-2 is over 40% and grows slower, but far larger than other coding conditions since UCC-2 can find many potential coding opportunities that MCC and EMCC cannot discover. UCC-N discovers the coding opportunities involve multiple flows which is usually greater than 3. As the number of flows grows, the chance that multiple flows intersect at one node increases and the coding condition percentage of UCC-N ascends gradually.

5.2.2 Scenario 2: random network

Figure 25 presents the network throughput under different number of flows in random network. It can be seen from Fig. 25 that the changing trends of network throughput for all the four routings in the random network are similar to those in the grid network. The network throughput of network coding aware routing DCAR, FORM, and NAER outperforms that of COPE under different number of flows. At the same time, NAER has the best throughput and its advantage over FORM is more obvious than that in grid network shown in Fig. 19. The reason is that NAER can discover more coding opportunities through cross layer interaction with topology control and coverage control, which further save node’s bandwidth and improve network throughput especially when the number of flows becomes larger.

Fig. 25
figure 25

Network throughput under different number of flows in random network. Figure 25 shows the network throughput comparison of COPE, DCAR, FORM, and NAER under different number of flows in random network

Figure 26 depicts the average end-to-end delay under different number of flows in random network. It can be observed from Fig. 26 that DCAR, FORM, and NAER have larger end-to-end delay than COPE when number of flows is below 32 dues to the additional coding/decoding operations essential for network coding aware routing. When the number of flows is over 34, the average end-to-end delay of the four routings increases sharply. However, NAER has the slowest growth compare with other routings, since it can find more coding opportunities and save node bandwidth to postpone the network congestion. Besides, the gap between NAER and FORM is larger than that in Fig. 20 when the number of flows is between 34 and 40, because NARE in random network can exploit cross layer technique to exploit more coding opportunities which further improve the average end-to-end delay performance of NAER.

Fig. 26
figure 26

Average end-to-end delay under different number of flows in random network. Figure 26 shows the average end-to-end delay comparison of COPE, DCAR, FORM, and NAER under different number of flows in random network

Figure 27 demonstrates the energy consumption per packet under different number of flows in random network. It can be found from Fig. 27 that the trend of the changing trend of the four routings is similar with that in grid network shown in Fig. 21. When the number of flows is 2, the energy consumption per packet of the four routings is comparable. And the energy consumption per packet of the four routings decrease first and then increase when the number of flows is over 26. NAER always has the lowest energy consumption per packet when the number of flows is over 2, since NAER can discover maximum of coding opportunities which reduce the number of transmission and reduce the energy consumption per packet finally.

Fig. 27
figure 27

Energy consumption per packet under different number of flows in random network. Figure 27 shows the energy consumption per packet comparison of COPE, DCAR, FORM, and NAER under different number of flows in random network

Figure 28 shows the network lifetime under different number of flows in random network. As shown in Fig. 28, the trend of network lifetime of the four routings is similar with that in grid network drawn in Fig. 22. The network lifetime of the four routings decrease gradually with the number of flows increasing. When the number of flows is over 16, the advantage of NAER over other three routings is more obvious, and even larger than that in grid network shown in Fig. 22. Besides the analyzed reason for Fig. 22, the additional reason is that NAER in random network can detect more coding opportunities through interactions with topology control and coverage control compared NAER in grid network.

Fig. 28
figure 28

Network lifetime under different number of flows in random network. Figure 28 shows the network lifetime comparison of COPE, DCAR, FORM, and NAER under different number of flows in random network

Figure 29 shows the coded packet percentage under different number of flows in random network. It is clear form Fig. 29 that the coded packet percentage of the four routings increases with the number of flows increasing. And NAER has a larger superiority compared to the other three routings when the number of flows grows. Besides, the value of NAER in Fig. 29 is higher than that in Fig. 23 when the number of flows is the same. The curve of NAER indicates that NAER can exploit most coding opportunities since it detects coding opportunity based on UCC and interacts with topology control and coverage control to increase coding opportunities, which is consistent with the analysis for previous figures.

Fig. 29
figure 29

Coded packet percentage under different number of flows in random network. Figure 29 shows the coded packet percentage comparison of COPE, DCAR, FORM, and NAER under different number of flows in random network

Figure 30 presents the coding condition percentage of NAER under different number of flows in random network. It can be found that the trend of the four coding conditions is similar with that in grid network shown in Fig. 24. And when the number of flows is over 12, coded packets based on UCC-2 and UCC-N accounts for the majority of the coded packets, which reflects the contribution of UCC-2 and UCC-N to increase coding opportunities.

Fig. 30
figure 30

Coding condition percentage of NAER under different number of flows in random network. Figure 30 shows the coding condition percentage comparison of NAER under different number of flows in random network

Since the cross layer interactions (CLI) between different layers are exploited in simulations of random network, it is essential to investigate the contributions of the cross layer interactions with coverage control and topology control. To solve this problem, the coding opportunities are classified into four categories: (1) No cross layer interaction is involved in the coding opportunity, marked as No CLI; (2) interactions with coverage control are involved in the coding opportunity, marked as With CC; (3) interactions with topology control are involved in the coding opportunity, marked as With TC; and (4) interactions with coverage control and topology control are both involved in the coding opportunity, marked as With TC & CC.

The cross layer interaction type percentage of NAER under different number of flows in random network is presented in Fig. 31. It is clear from Fig. 31 that No CLI accounts for majority (almost 100%) of the coding opportunities when the number of flows is below 8. And No CLI decreases gradually, while other types ascend gradually, as the number of flows increases. It is obvious that No CLI always has the highest percentage value in the coding opportunities. It is also clear that With CC increases much faster than With TC, With TC & CC, which indicates that interactions with coverage control brings more coding opportunities than that with topology control. The reason behind the phenomenon is that topology control usually needs to increase the transmitting power of node to increase coding opportunities, which lead to the increasing of node’s energy consumption and increase the NERM value of the path. Coverage control only control the node’s working mode, and do not increase transmitting power, which will not lead to the increasing of path’s NERM value.

Fig. 31
figure 31

Cross layer interaction type percentage of NAER under different number of flows in random network. Figure 31 shows the cross layer interaction type percentage comparison of NAER under different number of flows in random network

6 Discussion

The simulation results provide valuable insights in exploiting NAER in wireless sensor networks, which gives another way to improve energy efficiency of wireless sensor network. Based on the simulation results analysis, the characteristics of NAER can be summarized as follows: (1) NAER increases the network coding opportunities significantly since NAER exploits UCC to detect network coding opportunities. (2) The contribution of coverage control outperforms that of topology control in increasing network coding opportunities, because nodes’ transmitting power need to be increased to create coding opportunities through interacting with the topology control, which contradicts with the original intention of energy saving. (3) Although NAER improves the energy efficiency of WSNs, the extra coding operations and related procession increase the average end-to-end delay. Therefore, delay optimization will be an issue to addressed for NAER in future.

7 Conclusion

Due to the problem of network coding condition failure and neglection of node energy, existing network coding aware routings are not suitable for wireless sensor networks. To address these problems, a network coding aware energy efficient routing (NAER) for wireless sensor networks is proposed. Based on the in-depth analysis of existing network coding condition, universal network coding condition, UCC is presented to avoid network coding condition failure problem. Based on UCC, the cross layer network coding discovery mechanism combined with coverage control and topology control is presented to further increase the number of network coding opportunities. Simulation results on NS2 confirm that NAER can increase the number of coding opportunities and extend the network lifetime of wireless sensor network. Future research work includes the delay optimization of network coding aware routing, and the load balancing algorithm for network coding aware routing.

Abbreviations

AONC:

Adaptive opportunistic coding routing

CBQ:

Cycle buffer queue

CBR:

Constant bit rate

COPE:

Coding opportunity architecture

DCAR:

Distributed coding aware routing

EMCC:

Extended multi-hop network coding condition

FORM:

Free-ride-oriented routing metric

FT:

Flow table

GCC:

General network coding condition

ID:

Identification

IGCC:

Improved general network coding condition

LMA:

Local mean algorithm

MCC:

Multi-hop network coding condition

NAER:

Network coding aware energy efficient routing

NERM:

Network coding aware energy efficient routing metric

NSS:

Node scheduling scheme

NT:

Neighbor table

OCC:

One hop network coding condition

OHS:

Overhearing state

RACK:

Route and coding acknowledgement

RCOC:

Route coding opportunity calculation

RCON:

Routing and coding confirm

RCOR:

Route and coding opportunity reply

ROCX:

Routing with opportunistically coded exchanges

RREP:

Route reply

RREQ:

Route request

UCC:

Universal network coding condition

UCC-2:

Universal network coding condition for two flows

UCC-N:

Universal network coding condition for N flows

WSNs:

Wireless sensor networks

XOR:

Exclusive or

References

  1. Y. Jennifer, M. Biswanath, G. Dipak, Wireless sensor network survey. Comput. Netw. 52(12), 2292–2330 (2008)

    Article  Google Scholar 

  2. P. Rawat, K.D. Singh, H. Chaouchi, J.M. Bonnin, Wireless sensor networks: a survey on recent developments and potential synergies. J. Supercomput. 68(1), 1–48 (2014)

    Article  Google Scholar 

  3. A. Giuseppe, C. Marco, D.F. Mario, P. Andrea, Energy conservation in wireless sensor networks: a survey. Ad Hoc Netw. 7(3), 537–568 (2009)

    Article  Google Scholar 

  4. T. Rault, A. Bouabdallah, Y. Challal, Energy efficiency in wireless sensor networks: a top-down survey. Comput. Netw. 67(7), 104–122 (2014)

    Article  Google Scholar 

  5. N.A. Pantazis, S.A. Nikolidakis, D.D. Vergados, Energy-efficient routing protocols in wireless sensor networks: a survey. IEEE Commun. Surv. Tutor. 15(2), 551–591 (2013)

    Article  Google Scholar 

  6. O.O. Ogundile, A.S. Alfa, A survey on an energy-efficient and energy-balanced routing protocol for wireless sensor networks. Sensors 17(5), 1–51 (2017)

    Article  Google Scholar 

  7. W. Rehan, S. Fischer, M. Rehan, A critical review of surveys emphasizing on routing in wireless sensor networks-an anatomization under general survey design framework. Sensors 17(8), 1–37 (2017)

    Article  Google Scholar 

  8. C.W. C Zhao, X. Wang, W.K. Ling, K.L. Teo, Maximizing lifetime of a wireless sensor network via joint optimizing sink placement and sensor-to-sink routing. Appl. Math. Model. 49(9), 319–337 (2017)

    Article  MathSciNet  Google Scholar 

  9. R. Ahlswede, N. Cai, S.-Y. Robert Li, R.W. Yeung, Network information flow. IEEE Trans. Inf. Theory 46(4), 1204–1216 (2000)

    Article  MathSciNet  Google Scholar 

  10. S.-Y. Robert Li, R.W. Yeung, N. Cai, Linear network coding. IEEE Trans. Inf. Theory 49(2), 371–381 (2003)

    Article  MathSciNet  Google Scholar 

  11. M.Z. Farooqi, S.M. Tabassum, M.H. Rehmani, Y. Saleem, A survey on network coding: From traditional wireless networks to emerging cognitive radio networks. J. Netw. Comput. Appl. 46(11), 166–181 (2014)

    Article  Google Scholar 

  12. C. Fragouli, D. Katabi, A. Markopoulou, M. Medard, H. Rahul, Wireless network coding: opportunities and challenges (IEEE MilCom, Piscataway, 2007), pp. 29–31

  13. M.A. Iqbal, B. Dai, B. Huang, A. Hassan, S. Yu, Survey of network coding-aware routing protocols in wireless networks. J. Netw. Comput. Appl. 34(6), 1956–1970 (2011)

    Article  Google Scholar 

  14. L.F. Xie, P.H.J. Chong, I.W.H. Ho, Y.L. Guan, A survey of inter-flow network coding in wireless mesh networks with unicast traffic. Comput. Netw. 91(3), 738–751 (2015)

    Article  Google Scholar 

  15. S. Kafaie, Y. Chen, O.A. Dobre, M.H. Ahmed, Joint inter-flow network coding and opportunistic routing in multi-hop wireless mesh networks: a comprehensive survey. IEEE Commun. Surv. Tutor. 20(2), 1014–1035 (2018)

    Article  Google Scholar 

  16. S. Katti, H. Rahul, W. Hu, D. Katabi, M. Médard, J. Crowcroft, XORs in the air: practical wireless network coding. IEEE/ACM Trans. Netw. 16(3), 497–510 (2008)

    Article  Google Scholar 

  17. B. Ni, S. Naveen, Z. Zhong, N. Srihari, Routing with opportunistically coded exchanges in wireless mesh networks (IEEE WiMESH, Piscataway, 2006), pp. 157–159

  18. J. Le, J.C.S. Lui, D.M. Chiu, DCAR: Distributed coding-aware routing in wireless networks. IEEE Trans. Mob. Comput. 9(4), 596–608 (2010)

    Article  Google Scholar 

  19. B. Guo, H. Li, C. Zhou, Y. Cheng, Analysis of general network coding conditions and design of a free-ride-oriented routing metric. IEEE Trans. Veh. Technol. 60(4), 1714–1727 (2011)

    Article  Google Scholar 

  20. Y. Peng, Y. Yu, X. Wang, Q. Song, Y. Yu, C. Yu, A new coding- and interference- aware routing protocol in wireless mesh networks. Comput. Electr. Eng. 39(6), 1822–1836 (2013)

    Article  Google Scholar 

  21. R. Hou, S. Qu, K.-S. Lui, J. Li, Coding- and interference-aware routing protocol in wireless networks. Comput. Commun. 36(17–18), 1745–1753 (2013)

    Article  Google Scholar 

  22. G.-X. Kok, C.-O. Chow, H. Ishii, Improving network coding in wireless ad hoc netwrks. Ad Hoc Netw. 33(10), 16–34 (2015)

    Article  Google Scholar 

  23. J. Chen, K. He, Q. Yuan, R. Du, L. Wang, J. Wu, Distributed greedy coding-aware deterministic routing for multi-flow in wireless networks. Comput. Netw. 105(8), 194–206 (2016)

    Article  Google Scholar 

  24. S. Li, X. Liao, P. Zhu, N. Xiao, A method for multipath routing based on network coding in wireless sensor network. J. Soft. 19(10), 2638–2647 (2008)

    Article  MathSciNet  Google Scholar 

  25. Y. Yang, C. Zhong, Y. Sun, J. Yang, Network coding based reliable disjoint and braided multipath routing for sensor networks. J. Netw. Comput. Appl. 33(3), 422–432 (2010)

    Article  Google Scholar 

  26. L. Wang, Y. Yang, W. Zhao, Network coding-based multipath routing for energy efficiency in wireless sensor networks. EURASIP J. Wirel. Commun. Netw. 2012(1), 1–15 (2012)

    Article  Google Scholar 

  27. L. Miao, K. Djouani, A. Kurien, G. Noel, Network coding and competitive approach for gradient based routing in wireless sensor networks. Ad Hoc Netw. 10(6), 990–1008 (2012)

    Article  Google Scholar 

  28. H. Shen, G. Bai, L. Zhao, Z. Tang, An adaptive opportunistic network coding mechanism in wireless multimedia sensor networks. Int. J. Distrib. Sens. Netw. 8(12), 565–604 (2012)

    Article  Google Scholar 

  29. L.D.P. Mendes, J.P.C. Rodrigues, A survey on cross-layer solutions for wireless sensor networks. J. Netw. Comput. Appl. 34(2), 523–534 (2011)

    Article  Google Scholar 

  30. D. Tian, N.D. Georganas, A node scheduling scheme for energy conservation in large wireless sensor networks. Wirel. Commun. Mob. Comput. 3(2), 271–290 (2003)

    Article  Google Scholar 

  31. M. Kubisch, H. Karl, Distributed algorithms for transmission power control in wireless sensor networks (IEEE WCN, Piscataway, 2003), pp. 16–20

Download references

Acknowledgements

The authors would like to thank anonymous reviewers for their valuable and insightful comments and suggestions for the improvement of this paper. This work was supported in part by the National Natural Science Foundation of China (No.61502411), Natural Science Foundation of Jiangsu Province (No.BK20150432, No.BK20151299), Natural Science Research Project for Universities of Jiangsu Province (No.15KJB520034), China Postdoctoral Science Foundation (No.2015M581843), Jiangsu Provincial Qinglan Project, Jiangsu Provincial Government Scholarship for Studying Abroad, Talents Project of Yancheng Institute of Technology (No.KJC2014038), and Project of Jiangsu Provincial Collaborative Innovation Center of Ecological Building Materials and Environmental Protection Equipment (GX2015206).

Funding

This work was supported by the National Natural Science Foundation of China (No.61502411), Natural Science Foundation of Jiangsu Province (No.BK20150432, No.BK20151299), Natural Science Research Project for Universities of Jiangsu Province (No.15KJB520034), China Postdoctoral Science Foundation (No.2015M581843), Jiangsu Provincial Qinglan Project, Jiangsu Provincial Government Scholarship for Studying Abroad, Talents Project of Yancheng Institute of Technology (No.KJC2014038), and Project of Jiangsu Provincial Collaborative Innovation Center of Ecological Building Materials and Environmental Protection Equipment (GX2015206).

Availability of data and materials

The simulations were performed using NS2 in Intel Core I7 (64bit). All data generated or analyzed during this study are included in this published article.

Author information

Authors and Affiliations

Authors

Contributions

All authors contribute to the concept, the design, proof and developments of the routing algorithm, universal network coding condition, and the simulation results in this manuscript. All authors read and approved the final manuscript.

Corresponding author

Correspondence to Xing Shao.

Ethics declarations

Authors’ information

Xing Shao received the B.S degree in computer science and technology from Nanjing University of Posts and Telecommunications, Nanjing, China, in 2007, and the Ph.D degree in information network from Nanjing University of Posts and Telecommunications, in 2013. Since 2013, he has been with Yancheng Institute of Technology, where he is currently an associate professor with the Network Engineering Department. His current research interests include wireless sensor network, wireless multi-hop network, routing, network coding, and coding aware routing.

Cuixiang Wang received a B.S degree in computer science and technology from Qufu Normal University, Qufu, China, in 2007. She received her M.S. degree in Computer Software and Theory from Nanjing University of Posts and Telecommunications, Nanjing, China, in 2010. From 2010 to 2013, she was a software engineer with the ZTESoft Technology Co., Ltd., China. Since 2013, she has been a lecturer with the Network Engineering Department. Her current research interests include wireless sensor network, routing algorithm, network coding aware routing, and RFID anti-collision algorithm.

Jun Gao received a Ph.D degree in computer network from Jiangnan University, in 2010. Since 1990, he has been with Yancheng Institute of Technology, where he is currently a professor with the College of Information Engineering. His current research interests include wireless sensor network, wireless multi-hop network, and routing.

Competing interests

All authors confirm that they have read Springer Open’s guidance on competing interests. The authors declare that they have no competing interests.

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Shao, X., Wang, C. & Gao, J. Research on network coding aware energy efficient routing for wireless sensor networks. J Wireless Com Network 2018, 231 (2018). https://doi.org/10.1186/s13638-018-1245-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1186/s13638-018-1245-8

Keywords