## 4 Taxonomy of the Existing Multipath Routing Protocols
### Concurrent Multipath Routing
#### Energy-Efficient Multipath Routing Protocol  
[67] exploits the path diversity provided by multipath routing approach to prolong network lifetime by distributing network traffic over multiple node-disjoint paths. When an event occurs in the network, a sensor node in the event area is selected as the source node and initiates the route discovery process. Accordingly, the selected source node transmits multiple _Route-request_ messages to its neighboring nodes. These _Route-request_ messages include different path _IDs_ to construct multiple node-disjoint paths from the selected source node towards the sink node. During the route discovery process, all the intermediate nodes select one of their best next-hop neighboring nodes towards the sink node, which satisfy Equation (6) and it is not included in any other path: \begin{table}
\begin{tabular}{|p{56.9 pt}|p{56.9 pt}|p{56.9 pt}|p{56.9 pt}|p{56.9 pt}|p{56.9 pt}|p{56.9 pt}|p{56.9 pt}|} \hline
**Features** & **Path** & **Route** & **Traffic** & **Number of Paths** & **Interference** & **Improved Performance** \\
**Protocols** & **Disjointedness** & **Maintenance** & **Distribution** & **Paths** & **Chooser** & **Technique** & **Parameters** \\ \hline
**Energy-Efficient Multipath Routing** & Node-disjoint & When two or less than two paths are active & Per-packet splitting & Not limited & \(\bullet\) Sink node & & \(\bullet\) Network lifetime \\
**AODV-Inspired Multipath Routing** & Link-disjoint & When all the paths have failed & Per-packet splitting & Not limited & \(\bullet\) Sink node & None & \(\bullet\) Network lifetime \\
**I2 MR** & Node-disjoint & When first and second paths have failed & Per-packet splitting & Three paths & \(\bullet\) Sink node & Through using the exact location of the source and destination nodes & \(\bullet\) Throughput \\ \hline
**MR2** & Node-disjoint & When a path has failed & Per-packet splitting & Based on the bandwidth requirements of the target application & \(\bullet\) Sink node & Through using the broadcast nature of wireless channel & \(\bullet\) Network lifetime \\ \hline
**EECA** & Node-disjoint & Not mentioned & Per-packet splitting & Two paths & \(\bullet\) Intermediate nodes & Through using the exact location of sensor nodes & \(\bullet\) Network lifetime \\ \hline
**LIEMRO** & Node-disjoint & When less than two paths are active & When less than two paths & Per-packet endpoint of the active paths & Based on the end-to-end & \(\bullet\) Sink node & Through using the throughput & \(\bullet\) Network lifetime \\ \hline \end{tabular}
\end{table} 
Table 3: Summary of the multipath routing protocols mainly designed to provide efficient resource utilization. \[Next\_hop\ =\arg\min_{b\in N_{a}}\left\{\left(1-\frac{e_{b,residual}}{e_{b,init}} \right)^{\left[\frac{\beta\left(1-\left(Ad+1\right)\right]}{d_{ay}}\right]} \right\} \tag{6}\]  
where \(N_{a}\) represents the neighboring set of node \(a\). \(d_{ay}\) is the distance (in hop count) between node \(a\) and sink node, \(d_{by}\) is the distance (in hop count) between node \(b\) and sink node, and \(\Delta d\) is the difference between \(d_{ay}\) and \(d_{by}\). \(e_{b,residual}\) and \(e_{b,init}\) represent the residual and initial battery level of node \(b\), respectively. Upon reception of the first _Route-request_ message by the sink node, it sets a timer to fulfill the path establishment process in an acceptable period. Therefore, all the paths discovered after the timer timeouts are considered as low-quality paths and the sink node discards the _Route-request_ messages received from these paths. Then, the sink node assigns different data rates to the established paths using Equation (7). Sink node uses the _ASSIGN_ messages to inform the selected source node about the assigned data rate of each path.