## 4 Taxonomy of the Existing Multipath Routing Protocols
### Concurrent Multipath Routing
#### Energy-Efficient Multipath Routing Protocol
These requirements increase the cost of network deployment and intensify the communication overhead, specifically in large and dense wireless sensor networks. In addition, as low-power wireless links exhibit significant signal variations over time, calculating the interference range of the sensor nodes based on the distance may not result in an accurate interference estimation [72]. Moreover, while transmitting data over minimum-hop paths can theoretically reduce end-to-end delay and resource utilization, however, using such paths in low-power wireless networks increases the probability of packet loss and intensifies the overhead of packet retransmission over each hop. _Low-Interference Energy-Efficient Multipath Routing Protocol (LIEMRO)_[59, 68] improves the performance demands of event-driven sensor networks (e.g., delay, data delivery ratio, throughput, and  
Figure 13: A simple example of the constructed paths by EECA. lifetime) through construction of an adequate number of interference-minimized paths. LIEMRO utilizes an adaptive iterative approach to construct a sufficient number of node-disjoint paths with minimum interference from each event area towards the sink node. Whenever an event occurs in the sensor field and there is no active path for data transmission towards the sink node, the selected source node starts to establish the first path by transmitting a _Route-request_ message towards the sink node. During this stage, source node and all the intermediate nodes select one of their next-hop neighboring nodes using Equations (8) and (9):  
\[Next\_hop_{i}=\{j|\forall j\in N_{i}\text{ {and} }Cost_{i,j}=Min_{j\in N_{i}}(Cost_{i,j})\} \tag{8}\] \[Cost_{i,j}=\left(accETX_{i,sink}\right)\cdot\left(\frac{1}{resBatt _{j}}\right)\cdot\left(1+interferenceLevel_{j}\right) \tag{9}\]  
In Equation (8) \(N_{i}\) represents the neighboring set of node \(i\). In Equation (9), \(resBatt_{j}\) is the residual battery level of node \(j\), \(interferenceLevel_{j}\) is the experienced interference level at node \(j\), and \(accETX_{i,sink}\) is the accumulated ETX value from node \(i\) to the sink node through neighboring node \(j\). ETX value of a link is calculated as _1/pq_, where \(p\) and \(q\) indicate the probability of successful forward and backward packet reception over that link, respectively. During the network initialization and neighbor discovery phase, the accumulated ETX value of all the sensor nodes towards the sink node are calculated through constructing the optimal spanning tree using the ETX cost. Upon reception of the first _Route-request_ message by the sink node, it confirms the discovered path by forwarding a _Route_reply_ message along the reverse path. While the _Route_reply_ message moves from sink node towards the source node, whenever a node overhears this message it updates its interference level value based on the backward packet reception probability (_i.e._, \(q\)) of the node from which this message has been overheard. When the source node receives a _Route_reply_ packet, it transmits its data packets through the constructed path and starts the construction of another path by sending a new _Route-request_ message towards the sink node. Path construction process continues in an iterative manner as long as the sink node realizes that using a new path results in higher end-to-end throughput; otherwise, if the last established path reduces the end-to-end throughput, sink node asks the source node to disable the last constructed path. Upon establishing a new path (_i.e._, when the source node receives a _Route_reply_ packet), the source node transmits a portion of its traffic through this path using a quality-based load distribution algorithm. The proposed load balancing algorithm calculates the optimal traffic rate of the established paths based on their accumulated residual battery level, experienced interference level, and the probability of successful forward and backward packet reception over the links of a path.