## 3 Multipath Routing in Wireless Sensor Networks
### Motivations for Using Multipath Routing Approach in Wireless Sensor Networks  
As stated before, multipath routing technique has demonstrated its efficiency to improve wireless sensor and _ad hoc_ networks' performance. In the following, we review the performance gains that can be achieved through using multipath routing approaches. _Reliability and Fault-Tolerance_: Due to the time-varying characteristics of low-power wireless links, dynamic network topology, and wireless interference, reliable data transmission in wireless networks is a challenging task [34, 35]. The original idea behind using multipath routing approach in wireless sensor networks was to provide path resilience (against node or link failures) and reliable data transmission. In the fault tolerance domain, whenever a sensor node cannot forward its data packets towards the sink, it can benefit from the availability of alternative paths to salvage its data packets from node or link failures. Through this mechanism, as long as an alternative path is available from a target area towards the sink node, data forwarding can be continued without any interruption even in the case of path failure. Multiple paths also can be used simultaneously to elevate data transmission reliability. There are two different approaches to provide reliable data transmission through concurrent multipath routing. The first approach is based on transmitting multiple copies of an original data packet over different paths to ensure packet recovery from several path failures. Through this technique, data transmission reliability can be guaranteed, if data forwarding over at last one path is done successfully. Erasure coding is another technique used by some of the existing protocols to provide desired reliability demand of different applications. Based on the utilized coding technique, each source node adds some additional information to the original data packets and then distributes the generated data packets over different paths. To reconstruct original packets, at last a certain number of transmitted data packets from each source node should be received by the sink node. Accordingly, if a few numbers of paths failed to deliver some data packets to the sink node, still the reliability of data transmission can be guaranteed through reconstructing data packets from successfully received data packets by the sink node. _Load Balancing and Bandwidth Aggregation_: According to the resource limitations of wireless sensor nodes, intensive traffic loads in high-data rate applications are prone to congestion, which highly influences the network performance [36, 37]. To handle this problem, data dissemination algorithms can profit from the high density of wireless sensor networks to increase network capacity by employing more network resources. For this purpose, multipath routing approaches can provide the best solution to support the bandwidth requirements of different applications and reduce the probability of network congestion through splitting network traffic over several paths [38, 39, 40]. Furthermore, distributing network traffic over more sensor nodes can result in even energy consumption among the sensor nodes and prolong the network lifetime. However, the broadcast nature of radio communications impedes achieving these goals. In fact, since in a single-channel wireless network, sensor nodes use a shared wireless channel to communicate with each other, concurrent utilization of adjacent paths results in intensive inter-path interference, which increases the probability of packet collision at the nodes along the active paths [41, 42]. In the literature, this problem is called the _route coupling effect_[43] and specifically limits the performance of multipath routing protocols [44, 45]. This issue imposes a big challenge in designing efficient multipath routing protocols. In order to reduce the effects of route coupling problem, _location-aware routing_ is one of the most evident techniques to construct non-interfering paths [25, 46].