## 4 Taxonomy of the Existing Multipath Routing Protocols
### Concurrent Multipath Routing
#### 4.2.1 Multipath Routing Protocols for Reliable Data Transmission
Therefore, MMSPEED benefits from a prioritized medium access mechanism through cross-layer interactions. According to the above descriptions, whenever a source node wants to forward a data packet towards the destination, it determines the speed requirement of the data packet based on its distance to the destination and its specified end-to-end deadline. Then, the classifier of the source node selects the corresponding speed layer that can meet the speed requirements of the data packet. The selected speed layer module performs all the subsequent routing decisions for data packet forwarding during the data transmission process. These routing decisions are made based on the amount of speed progress that can be achieved by each intermediate node. Furthermore, if an intermediate node receives a data packet and it perceives that this packet cannot meet its specified deadline through the selected speed layer, the receiver node can set another speed layer to satisfy the deadline requirement of the packet. From reliability perspective, MMSPEED benefits from path diversity property of multipath routing approach to guarantee reliability requirements of each data packet. This protocol provides reliability differentiation through controlling number of active paths and sending multiple copies of the original data packets over several paths. Accordingly, each intermediate node selects a set of next-hop neighboring nodes towards the destination node based on the estimated packet loss rate over each link and their geographic distance from itself. Figure 7: Progress speed from node A to node B towards the destination node. As mentioned above, MMSPEED provides a probabilistic QoS guarantee in two different domains through combining geographic forwarding technique with a multipath routing approach. To satisfy different delay requirements, each intermediate node tries to forward its received data packet to the neighboring node, which is closer to the destination node in order to provide a good speed progress. However, according to the experimental results provided in [9], probability of successful data transmission over low-power wireless links highly depends on the sender-receiver distance and interference power of the receiver. Therefore, using geographic routing with greedy forwarding does not necessarily improve network performance metrics. Moreover, since data transmission over long links exacerbate the required energy for data transmission, this protocol cannot support long-life applications. _Multi-Constrained QoS Multipath Routing (MCMP)_[60] is mainly designed to provide soft-QoS guarantee in terms of reliability and delay. The end-to-end soft-QoS problem is formulated as a probabilistic programming problem and then it is converted into a deterministic linear programming using an approximation technique. Therefore, MCMP is developed according to the linear programming approach which is a deterministic approximate of the defined end-to-end soft-QoS problem. Using Equations (1) and (2), MCMP maps the delay and reliability of the links along different paths towards the sink node to the end-to-end delay and reliability demands of various applications:  
\[L_{i}^{d}=\frac{D-D_{i}}{h_{i}} \tag{1}\]  
\[L_{i}^{r}=\sqrt[h_{i}]{R_{i}} \tag{2}\]  
where \(L_{i}^{d}\) and \(L_{i}^{r}\) represent the delay and reliability requirements at node \(i\). \(D_{i}\) is the delay experienced by a packet at node \(i\). \(R_{i}\) is the fraction of the reliability requirement assigned to the path passing through node \(i\), and \(h_{i}\) is the hop count from node \(i\) to the sink node. MCMP utilizes two different strategies to satisfy delay and reliability demands of wireless sensor network applications. During the route discovery process, all the intermediate nodes utilize Equation (1) to choose the neighboring node that fulfills the delay requirement of the intended application. To satisfy reliability, each node selects one or a set of its neighboring nodes, which additively provides the desired reliability towards the sink node.