# A Novel Effective Multipath Routing Technique Providing High Availability in Wireless Networks
## 3 The NDMR Approach
### NDMR Operations
#### 4.1.2 Case 2: The three-way handshake process  
In this case, the second path has not been selected yet, and either the _Path_selection_timer_ expired or the number of PREQ copies received at the destination reached the _Maximum_received_PREQ_ value. The destination informs the first discovered path by sending a PREP to the source and initiates the second path discovery by broadcasting an SPREQ. Both these messages contain the first path. The propagation process of the PREP is similar to that described in Case 1. When the PREQ arrives at the source, the source sets up the first path to the destination based on the _discovered_path_ field of the received PREP. Like a PREQ, an SPREQ is broadcast in the wireless network. An SPREQ, however, is delivered from the destination to the source and contains the first path. Intermediate nodes along the first path discard the SPREQ and do not re-transmit the message. Other intermediate nodes re-broadcast the SPREQ. Like PREQ, duplicates of the SPREQ are discarded at the intermediate nodes. Eventually, copies of the SPREQ arrive at the source node. The source selects the second path based on the _node_list_ field of the first received copy of the SPREQ. The source then sends a PREP containing the second path to the destination. Upon receiving the PREP, intermediate nodes along the second path add corresponding route entries for the forward and reverse paths into their route table. Finally, the destination receives the PREP and then adds the second path to its route table.  
The path discovery in this case is a three-way handshake process as shown in Figure 3(b).  
Intermediate nodes belonging to the discovered paths build their route table based on receiving PREQ/SPREQ and PREP messages. For each discovered path between the source and destination,  
Figure 4: The path discovery of NDMR.  
two route entries are created, namely a forward route for the forward path and a reverse route for the reverse path. The forward route is built based on information contained in the received PREP whereas the reverse route is determined based on the received PREQ. Each entry of the route table contains the following information: _source node_, _destination node_, _next hop_, _route_age_time_. The _route_age_time_ of an entry determines the lifetime of the entry in the route table. Each time a route entry is used to transmit data frames, its _route_age_time_ is reset. If the _route_age_time_ of a route entry is timeout, the entry is removed from the route table.  
When an intermediate node receives a PREQ or SPREQ, the node adds a potential reverse route into its buffer. The potential reverse route contains several fields aforementioned in Section 3.2.1, including _source node_, _destination node_, _next hop_, and _route_timeout_.  
Later, if the intermediate node receives a PREP of which the node sees itself in the _discovered_path_ field, the node immediately adds two route entries into its route table as follows:  
* _Reverse route_ is determined based on the potential reverse route stored in its buffer.
* _Forward route_ is built based on the received PREP.  
Otherwise, if the intermediate node has not received any PREP for the pair of the source and destination nodes and _route_timeout_ of a potential reverse route expired, the node removes the potential route from its buffer.