## 4 Taxonomy of the Existing Multipath Routing Protocols
### Concurrent Multipath Routing
#### 4.2.1 Multipath Routing Protocols for Reliable Data Transmission  
As it was pointed out in Section 3.1, in addition to the alternative routing techniques, concurrent multipath routing can be used to support reliable communication over unreliable low-power wireless links through introducing data redundancy during the data transmission process. According to the operation of the protocols presented in the previous section, those protocols are designed to reduce the frequency of path rediscovery while they provide high path resilience against route failure. However, introduced protocols in this section utilize the packet replication technique or erasure coding in conjunction with the concurrent multipath routing technique to satisfy the reliability requirements of various applications. The rest of this section provides an in-detail explanation of the employed route discovery mechanisms in a few of the existing reliable-based multipath routing protocols and investigates about their advantages and disadvantages. Table 2 summarizes the main operation of the selected reliable-based multipath routing protocols to provide a fast overview over the main features of these protocols. \begin{table}
\begin{tabular}{|p{42.7 pt}|p{42.7 pt}|p{42.7 pt}|p{42.7 pt}|p{42.7 pt}|p{42.7 pt}|p{42.7 pt}|p{42.7 pt}|} \hline
**Features** & **Path Disjointedness** & **Rout Maintenance** & **Traffic Distribution** & **Employed Reliability Mechanism** & **Number of Paths** & **Path Chooser** & **Improved Performance Parameters** \\ \hline
**ReInForm** & Link-disjoint mentioned & Not mentioned & Multiple copies of each packet & Copying the original packets & Based on the desired reliability & Source node & Reliability \\ \hline
**N-to-1 Multipath Multipath Routing** & Node-disjoint mentioned & Not mentioned & Per-packet splitting & Packet salvaging & Not limited & Source node Intermediate nodes & Reliability \\ \hline
**H-SPREAD** & Node-disjoint mentioned & Not mentioned & Per-packet splitting & Erasure coding & Not limited & Source node Intermediate nodes & Reliability \\ \hline
**MMSPEED** & Partially disjoint & Not mentioned & Multiple copies of each packet & Copying the original packets & Based on the desired reliability & Source node Intermediate nodes & Reliability \\ \hline
**MCNP** & Partially disjoint & Not mentioned & Multiple copies of each packet & Copying the original packets & Based on the desired reliability & Intermediate nodes & Data delivery ratio \\ \hline
**ECMP** & Partially disjoint & Not mentioned & Multiple copies of each packet & Copying the original packets & Based on the desired reliability and energy consumption for data transmission over individual links & Network lifetime nodes & Data delivery ratio \\ \hline
**DCHT** & Node-disjoint mentioned & Not mentioned & Two copies of each packet over two paths & Erasure coding & Not limited & Source node & Data \\ \hline
**EQSR** & Node-disjoint & Not mentioned & Per-packet splitting & Erasure coding & Based on the probability of successful data delivery over the active paths & Source node & delivery ratio \\ \hline \end{tabular}
\end{table} 
Table 2: Summary of the selected multipath routing protocols which are designed to provide reliable data transmission. _Reliable Information Forwarding (ReInForm) Using Multiple Paths in Sensor Networks_[57] uses the packet duplication technique to provide desired data transmission reliability for each application. In this approach, whenever a source node wants to forward its traffic towards the sink node, it first determines the required data transmission reliability based on the importance of the collected data. After that, the source node adds some information (e.g., local channel error rate, its hop count towards the sink node, and desired reliability) as Dynamic Packet State (DPS) fields to the data packets and sends multiple copies of the generated data packets over several paths.