# A Multipath Routing Protocol Based on Bloom Filter for Multihop Wireless Networks

Authors: Junwei Jin; Sanghyun Ahn
Journal: Mobile Information Systems
 (2016)

---

## Abstract

On-demand multipath routing in a wireless ad hoc network is effective in achieving load balancing over the network and in improving the degree of resilience to mobility. In this paper, the salvage capable opportunistic node-disjoint multipath routing (SNMR) protocol is proposed, which forms multiple routes for data transmission and supports packet salvaging with minimum overhead. The proposed mechanism constructs a primary path and a node-disjoint backup path together with alternative paths for the intermediate nodes in the primary path. It can be achieved by considering the reverse route back to the source stored in the route cache and the primary path information compressed by a Bloom filter. Our protocol presents higher capability in packet salvaging and lower overhead in forming multiple routes. Simulation results show that SNMR outperforms the compared protocols in terms of packet delivery ratio, normalized routing load, and throughput.


---

## Body

## 1. Introduction

The dynamic source routing (DSR) [1] is one of the routing protocols widely used for mobile ad hoc networks (MANETs). However, DSR is unable to utilize the route information recorded in a duplicate route request (RREQ) message for the destination which is extremely helpful in constructing node-disjoint paths. Several routing protocols based on DSR have been proposed in order to reduce the overhead of route reconstruction due to link failures. The split multipath routing (SMR) [2] based on DSR constructs a primary path and a maximally disjoint backup path by allowing intermediate nodes to forward duplicate packets in some cases. However, it induces extra overhead caused by rebroadcasting duplicate RREQs. In addition, data packets may be lost due to the absence of any alternative paths for the intermediate nodes of a primary path.To overcome this problem, we propose the salvage capable opportunistic node-disjoint multipath routing (SNMR) protocol that forms opportunistic node-disjoint routes with minimum overhead and enables the capability of packet salvaging in a primary path. In order to achieve this goal, SNMR makes the use of the reverse route back to the source of every duplicate RREQ. In addition, the Bloom filter is considered to assist the discovery of the backup path.A Bloom filter is constructed using a simple algorithm so that the presence of a key can be determined based on data. It allows false positives, but the space savings often outweigh this drawback when the probability of an error is well controlled. Reference [3] has proposed a routing protocol for MANETs which uses a Bloom filter for forwarding received packets. Routing information is expressed by a Bloom filter consisting of the hashed addresses of nodes. Our protocol employs a Bloom filter to reduce the space when appending the primary route information to a route reply (RREP) message.In SNMR, the hashed addresses of the intermediate nodes of the primary path are compressed into a Bloom filter at the destination. We insert this information into the Bloom filter field of a second RREP message to facilitate the discovery of the node-disjoint backup path for the source in the route reply phase. Based on this Bloom filter field, we can check whether a reverse route to the source is node-disjoint with the primary path and whether a specific node is a member of the primary path.Our main contributions are summarized as follows:(i)
We propose the salvage capable opportunistic node-disjoint multipath routing protocol considering the route information to the source and the primary path information.
(ii)
Our routing protocol is based on DSR [1] but constructs opportunistic node-disjoint routes for data transmission without rebroadcasting any duplicate RREQs.
(iii)
Our mechanism provides the available alternative paths for the nodes in the primary path to improve the capability of packet salvaging, thereby providing higher robustness to mobility.
(iv)
We reduce the overhead when forming multiple routes by leveraging the primary path information compressed in a Bloom filter.The rest of this paper is organized as follows. Section2 briefly discusses the related work. In Section 3, we describe our salvage capable opportunistic node-disjoint multipath routing (SNMR) protocol in detail. Section 4 shows our performance studies. Finally, we conclude our mechanism and present the future work in Section 5.


## 2. Related Work

There has been extensive study done on multipath routing for MANETs. Multipath routing protocols create multiple routes from the source to the destination instead of the conventional single route. The main advantage of discovering multiple paths is that it achieves load balancing and is more robust to mobility. It helps during times of network congestion which may arise due to bursty traffic within the network. Also, it can improve network reliability in case of link disconnection of an active route and require less cost for the alternate route discovery.SMR (split multipath routing) [2] is an ad hoc routing protocol based on DSR which establishes and uses multiple routes of the maximally disjoint paths from a source to a destination. Multiple routes are discovered on-demand and are helpful in minimizing the route recovery process and control message overhead. A per-packet allocation scheme is employed to utilize the available network resource and prevent the nodes of the route from being congested in heavily loaded traffic situation. However, SMR may induce extra overhead as it has to forward some duplicate RREQs in order to provide enough route information to the destination. In addition, the overhead caused by extra RREQ propagation may exceed the overhead reduced within a reconstruction process especially in a large dense network. Furthermore, data packets are dropped due to the absence of any alternative paths constructed for the intermediate nodes of the primary path.A previous study [4] proposes a backup path setup scheme based on the ad hoc on-demand distance vector (AODV) [5] protocol for ad hoc networks. It makes use of the ns (neighbor of source) and nn (next node) conceptions which can be more effective in finding a backup path link-disjoint with the primary path. However, it cannot guarantee a node-disjoint route to be found that can bypass all the nodes on the primary path as it cannot check whether a next node exists in the primary path or not. Moreover, it may consume more time and more control messages in performing the one-hop presearch scheme.HB-DSR [6] has realized a mechanism that utilizes the Bloom filter to store the source route information in order to reduce overhead in large networks. In HB-DSR, the DSR source-routing option is compressed by a Bloom filter. Upon receiving a packet, the node verifies if any of its neighbors’ addresses are contained in the Bloom filter carried in the packet. If a neighbor belongs to the Bloom filter, the packet is forwarded to that neighbor. Otherwise, the packet is silently dropped.Reference [7] firstly points out the threat of topology-exposure and proposes the topology-hiding multipath routing (THMR) protocol. THMR does not allow packets to carry routing information, so malicious nodes cannot deduce any topology information and launch attacks based on it. This protocol can establish multiple node-disjoint routes by executing RREP broadcasting procedure in a route discovery attempt and exclude unreliable routes before transmitting packets. However, it should be noted that the broadcasting of RREP packets may increase the overhead and that the intermediate node cannot guarantee that all of the routes containing nodes placed on established routes have already been removed before selecting the next node [7]. In other words, it may not receive enough RREP packets before selecting an appropriate next node to establish a route. In addition, the node-excluding mechanism adding the excluded node address to a reply message is not effective and wastes space. Furthermore, no valid alternative path is established during the route discovery process.In [8], the authors propose a multipath routing protocol which combines the improvements afforded by SMP-DSR [9] and SMS [10]. This protocol constructs the least hop backup path detouring the failed link. In addition, it ensures that the packets which might be lost at the intermediate nodes can be salvaged. Although the proposed scheme just transmits an RREP to the corresponding intermediate node, the large amount of RREP transmissions may also increase the overhead. Moreover, it does not have any scheme to eliminate duplicate RREQ retransmissions.Considering all the discussions above, we propose the salvage capable opportunistic node-disjoint multipath routing (SNMR) protocol which is based on DSR. The proposed scheme has the advantages of none duplicate RREQ rebroadcasting, packet salvaging, minimum overhead, node-disjoint multipath, and so on. Our protocol uses the Bloom filter for space saving. The intermediate nodes of the primary path are compressed in a Bloom filter consisting of the hashed addresses of them. We use a given hashed node address for checking the existence of the node in a Bloom filter. Thus, an intermediate node can check whether a neighbor node is included in the primary path or not.The ad hoc on-demand multipath distance vector (AOMDV) [11], an extension of the ad hoc on-demand distance vector (AODV) [5], was proposed for computing multiple loop-free and link-disjoint paths. In [12], the authors propose an on-demand multiple path routing protocol based on DSR for mobility. They developed an analytic modelling framework to determine the relative frequency of query floods and showed that multipath routing is significantly better than single path routing. In mobility scenarios, specifically, they show that providing all intermediate nodes in the primary (shortest) route with alternative paths has a significantly better performance than providing only the alternative route(s) to the source.In [13], the authors propose an on-demand multipath routing protocol for multihop wireless networks that can find spatially disjoint paths without location information. Reference [14] shows that finding multiple uncorrelated node-disjoint paths in an ad hoc network is the same as finding a chordless cycle in a graph that contains source and destination nodes. Finally, they design the interference aware multipath routing mechanisms between a given pair of nodes.Up to now, none of the existing multipath protocols consider inserting the primary path into a reply packet to establish a node-disjoint path. To the best of our knowledge, we are the first one to propose such a mechanism in discovering node-disjoint paths with minimum overhead.


## 3. Bloom Filter-Based Multipath Routing

The main idea of the proposed mechanism is to construct a primary path and a node-disjoint backup path between a source-destination pair together with alternative paths for the intermediate nodes of a primary path within a route discovery attempt. By considering the route information to the source node and the primary path information compressed in a Bloom filter in the route reply phase, our protocol eliminates the overhead caused by duplicate RREQ propagation in forming multiple routes and recovers quickly from link failures due to the capability of packet salvaging.


### 3.1. Overview

Our SNMR is an on-demand Bloom filter based multipath routing protocol that is composed of two main stages, the route discovery and the route maintenance stages. The route discovery stage consists of the route request phase and the route reply phase.In the route request phase, the source node broadcasts an RREQ message. Every intermediate node creates a reverse route to the source for every received message but only rebroadcasts the first RREQ. After the route request phase, multiple reverse routes back to the source node can be established. This is to support the discovery of a node-disjoint backup path for the source in the route reply phase.In the route reply phase, the primary path is constructed for the destination to send an RREP1 message back to the source as soon as the first RREQ arrives at the destination. The primary path information is compressed in a Bloom filter and, then, this compressed information is inserted into the Bloom filter field of a second reply message after a given time interval.Every intermediate node utilizes the Bloom filter field carried in the reply message to construct the expected backup path with the help of the previously established reverse routes. This Bloom filter field is used to ensure the capability of forming the alternative paths for the nodes in the primary path.Before we delve into the details of our proposed SNMR protocol, in Section3.2, the operation of SMR is to be described in more detail because SNMR is based on SMR.


### 3.2. Operation of Split Multipath Routing

SMR is an on-demand routing protocol which builds maximally disjoint multiple paths using RREQ and RREP message exchanges. SMR is mainly designed for preventing certain nodes from being congested and utilizing the available network resources efficiently. For that, the destination has to know the entire path information of all the available routes which are included in the RREQ message with the source ID and a sequence number and, then, it selects two routes that are maximally disjoint. In DSR, when an intermediate node receives an RREQ message that is not a duplicate, it appends its ID and rebroadcasts the packet to the entire network. In order to provide more maximally disjoint paths from those available routes. SMR permits the duplicate packet that has traversed through an incoming link different from that of the first received RREQ. The hop count of the duplicate packet should not be larger than that of the firstly received RREQ for the shortest hop route.In case of RREP message transmissions, an intermediate node may not send an RREP message back to the source even when it has the route information to the destination in its local cache because SMR uses the source routing in which only the source node maintains the route information to the destination.When the destination receives the first RREQ message, it records the entire path and sends an RREP message back to the source via this route. After this process, the destination waits a certain amount of time to receive more RREQs and learns about all the possible routes in order to figure out maximally disjoint routes. Then, the destination sends another RREP to the source via the second route selected. Therefore, in SMR, each node uses less memory, but the packet header size is large because of using the source routing.


### 3.3. Route Discovery

The route discovery stage of SNMR consists of two basic phases, the route request and the route reply phases.


#### 3.3.1. Route Request Phase

In SNMR, the source node initiates the route discovery mechanism by flooding the network with RREQ messages when there is no route available for data transmission. Every intermediate node removes all routes to the source before processing the first received RREQ message. In addition, each intermediate node records the reverse route back to the source for every received RREQ message but rebroadcasts only the first RREQ message. This is to ensure that the route cache maintains fresh reverse routes which are to be used in the route reply phase. Similar to SMR, an intermediate node cannot reply back to the source node using the information in its route cache even when it has the route information to the destination. The operation of an intermediate node is shown in Figure1.Figure 1
Operation of an intermediate node after receiving an RREQ message.When the destination node receives the first RREQ message, it initiates its timer Td and generates the primary path based on the information in the received RREQ message. The destination replies to the first RREQ and processes the subsequently received RREQ messages received within the Td time duration. In particular, the destination records the primary path information in a Bloom filter and initiates another reply message before timeout if any of duplicate RREQs has a route which is node-disjoint to the primary path.


#### 3.3.2. Route Reply Phase

(1) Primary Path Construction. When the destination node receives the first RREQ message, it initiates its timer Td to collect subsequently received RREQs. It records the entire route stored in the first RREQ message in the Bloom filter (BF) as the primary path. The BF consists of the hashed addresses of the intermediate nodes in the primary path. The destination node sends an RREP (RREP1) message back to the source via the reverse path (i.e., the primary path) identified in this message. The BF is used in checking whether a possible alternative path and the primary path are node-disjoint or not, so the BF is not included in the RREP1 message.(2) Node-Disjoint Alternative Path Construction. Before presenting this part, we introduce two major conceptions. The next node (nn) is the neighbor node which is the first hop of a reverse route back to the source stored in the route cache. The node which is one hop away from the source along a reverse route back to the source is called the neighbor of source (ns). The ns value [4] is used for finding a node-disjoint backup path of the primary path. The philosophy behind this is that those two routes with the same ns value are not node-disjoint to each other.The destination processes the subsequent RREQ messages received within the Td duration. In addition, it checks the ns value of every duplicate RREQ message to determine whether the route is node-disjoint to the primary path. If this ns value is not included in the BF, this route is considered to be node-disjoint to the primary path. Then, the destination node sends an RREP_N message back to the source that contains a complete node-disjoint backup path and the BF. Otherwise, the neighbors of the destination are also added to the BF in order to avoid constructing a route with a detour through two intermediate neighbors [7].If no such an RREP_N message has been generated by the destination, the destination sends a second RREP (RREP2) message, after timeout, with the BF and the corresponding route to the destination. RREP2 is first relayed to the sender of the secondly received RREQ message.For the construction of a node-disjoint backup path bypassing all the nodes in the primary path, each intermediate node processes the received RREP2 message by carrying out the following two steps:(i)
Select an appropriate next node (nn) to construct a node-disjoint backup path.
(ii)
Check if it is qualified to establish an alternative route for a neighbor node located on the primary path.During the first step, the route information from an intermediate node to the source is classified into three types as shown in Table1. Based on the BF in the received RREP2 message and the multiple reverse routes from the route cache, the intermediate node updates the route to the destination in the RREP2 message and forwards it to one of its neighbors with considering the route priority described in Table 1.Table 1
Route classification based on ns and nn values.
Type
Description
N_Route
A path (to the source) in the route cache that has a different neighbor of source (ns) value from that of the primary path; a node-disjoint path with the highest priority
O_Route
A path that has the same ns value as that of the primary path, but whose next node (nn) value does not exist in the primary path; an overlapped path with the medium priority
L_Route
A path that is 1-hop away from the route included in the RREP2 message; a loop route with the lowest priorityThe expected backup path for the source is discovered when the RREP2 message reaches a node with an N_Route. Then, the RREP_N message with the BF and the complete node-disjoint route from the source to the destination is sent to the source. In this case, the RREP_N message is forwarded along the shortest reverse route to the source in the route cache.During the second step, the intermediate node on the backup path checks the nn value to determine whether it is a member of the primary path. If any hashed neighbor address is found in the BF of a reply message (RREP2, RREP_N), we consider it as a member of the primary path. In this case, an RREP_A message containing only the route to the destination carried in RREP2 message is sent to that neighbor in order to establish an alternative path from the neighbor.The whole procedure in the route reply phase is described in Algorithm1.Algorithm 1:Operation at a node.
Notations:
hc: hop count
nn: next node
ns: neighbor of source
Rs: route to the source
Rd: route to the destination
BF: bloom filter
(1) Upon receiving an RREQ message at the destination
Begin
if a new RREQ then
Set a timer Td
/∗ Initiate an RREP2 after timeout ∗/
Send an RREP1 back to the source
Record the BF of the primary path
end if
if a second RREQ && RREQ.ns ∈ BF then
Record the previous hop as the next hop of RREP2
else if a duplicate RREQ && within the timer Td then
if RREQ.ns ∉ BF then
Initiate an RREP_N
else
Add the neighbor nodes of the destination to the BF
end if
End
(2) Upon timeout at the destination
Begin
if receives a second RREQ && haven’t sent an RREP_N then
Extract the information of the next hop and the BF
Initiate an RREP2
end if
End
(3) Upon receiving a reply message at an intermediate node
Begin
Case: an RREP1
Forward the RREP1 based on the source route
Case:an RREP2
ifhas an N_Route (Rs.ns ∉ BF) then
Initiate an RREP_N
else if has an O_Route (Rs.ns ∈ BF && Rs.nn ∉ BF) then
Relay the RREP2 to Rs.nn
else if has an L_Route (Rs.nn ∉ BF && Rs.hc == 1) then
Relay the RREP2 to Rs.nn
end if
ifhas an Rs.nn ∈ BF && Rs.hc is the shortest onethen
Send an RREP_A to Rs.nn
end if
Case: an RREP_N
if has an Rs.nn ∈ BF && Rs.hc is the shortest one then
Send an RREP_A to Rs.nn
end if
Relay the RREP_N to next hop based on the source route
Case: an RREP_A
Record the Rd information stored in the RREP_A
End


### 3.4. Route Maintenance

After the source node receives the first RREP1 message, it caches the route as the primary path and transmits its buffered data packets through it. The second received route is cached as a node-disjoint backup path. A link of a route can be disconnected because of mobility, congestion, and/or packet collisions. It is important to recover quickly from link breaks.In SNMR, when a node fails to deliver a data packet to the next hop of the given route, it considers the link as disconnected. The node sends a route error (RERR) message back to the source through the shortest reverse route in its route cache. The RERR message contains the broken link information and the shortest reverse route to the source. In addition, this node searches a capable alternative path for packet salvaging. Upon receiving this RERR message, the source node removes all the route information with the broken link.If only one of the two routes is invalidated, the source uses the remaining valid route for data transmission. Route reconstruction process is initiated only when both of the routes are broken.


### 3.5. Example

SNMR computes a node-disjoint backup path that bypasses all the intermediate nodes in the primary path. An example that illustrates the computation of two opportunistic node-disjoint paths and relative alternative paths for the intermediate nodes in the primary path is shown in Figure2. An RREP1 message is unicast towards the source S by creating the reverse path (C-B-A-S). The destination node D first sends an RREP2 message to node H. Then, H selects the next node G (located on the O_Route G-B-A-S) to relay the RREP2 message and sends an RREP_A message to node C. Similarly, G selects the next node F (located on the O_Route F-A-S) to relay the RREP2 and sends an RREP_A to B. Finally, F forwards an RREP_N message to the source along the path E-S (based on the N_Route). In addition, E and F send an RREP_A to A, respectively. Finally, the expected node-disjoint backup path is established. In addition, an alternative path is also found within one route discovery attempt for each intermediate node in the primary path.Figure 2
An example showing the alternative path found by SNMR.Table2 shows the comparisons on RREQ propagation and the routes selected by the protocols, DSR, SMR, and SNMR. It is obvious that our SNMR protocol obtains more useful route information with less RREQ propagation.Table 2
Comparisons on RREQ propagation and routes selected.
RREQ propagation
Routes selected
DSR
SMR
SNMR


## 3.1. Overview

Our SNMR is an on-demand Bloom filter based multipath routing protocol that is composed of two main stages, the route discovery and the route maintenance stages. The route discovery stage consists of the route request phase and the route reply phase.In the route request phase, the source node broadcasts an RREQ message. Every intermediate node creates a reverse route to the source for every received message but only rebroadcasts the first RREQ. After the route request phase, multiple reverse routes back to the source node can be established. This is to support the discovery of a node-disjoint backup path for the source in the route reply phase.In the route reply phase, the primary path is constructed for the destination to send an RREP1 message back to the source as soon as the first RREQ arrives at the destination. The primary path information is compressed in a Bloom filter and, then, this compressed information is inserted into the Bloom filter field of a second reply message after a given time interval.Every intermediate node utilizes the Bloom filter field carried in the reply message to construct the expected backup path with the help of the previously established reverse routes. This Bloom filter field is used to ensure the capability of forming the alternative paths for the nodes in the primary path.Before we delve into the details of our proposed SNMR protocol, in Section3.2, the operation of SMR is to be described in more detail because SNMR is based on SMR.


## 3.2. Operation of Split Multipath Routing

SMR is an on-demand routing protocol which builds maximally disjoint multiple paths using RREQ and RREP message exchanges. SMR is mainly designed for preventing certain nodes from being congested and utilizing the available network resources efficiently. For that, the destination has to know the entire path information of all the available routes which are included in the RREQ message with the source ID and a sequence number and, then, it selects two routes that are maximally disjoint. In DSR, when an intermediate node receives an RREQ message that is not a duplicate, it appends its ID and rebroadcasts the packet to the entire network. In order to provide more maximally disjoint paths from those available routes. SMR permits the duplicate packet that has traversed through an incoming link different from that of the first received RREQ. The hop count of the duplicate packet should not be larger than that of the firstly received RREQ for the shortest hop route.In case of RREP message transmissions, an intermediate node may not send an RREP message back to the source even when it has the route information to the destination in its local cache because SMR uses the source routing in which only the source node maintains the route information to the destination.When the destination receives the first RREQ message, it records the entire path and sends an RREP message back to the source via this route. After this process, the destination waits a certain amount of time to receive more RREQs and learns about all the possible routes in order to figure out maximally disjoint routes. Then, the destination sends another RREP to the source via the second route selected. Therefore, in SMR, each node uses less memory, but the packet header size is large because of using the source routing.


## 3.3. Route Discovery

The route discovery stage of SNMR consists of two basic phases, the route request and the route reply phases.


### 3.3.1. Route Request Phase

In SNMR, the source node initiates the route discovery mechanism by flooding the network with RREQ messages when there is no route available for data transmission. Every intermediate node removes all routes to the source before processing the first received RREQ message. In addition, each intermediate node records the reverse route back to the source for every received RREQ message but rebroadcasts only the first RREQ message. This is to ensure that the route cache maintains fresh reverse routes which are to be used in the route reply phase. Similar to SMR, an intermediate node cannot reply back to the source node using the information in its route cache even when it has the route information to the destination. The operation of an intermediate node is shown in Figure1.Figure 1
Operation of an intermediate node after receiving an RREQ message.When the destination node receives the first RREQ message, it initiates its timer Td and generates the primary path based on the information in the received RREQ message. The destination replies to the first RREQ and processes the subsequently received RREQ messages received within the Td time duration. In particular, the destination records the primary path information in a Bloom filter and initiates another reply message before timeout if any of duplicate RREQs has a route which is node-disjoint to the primary path.


### 3.3.2. Route Reply Phase

(1) Primary Path Construction. When the destination node receives the first RREQ message, it initiates its timer Td to collect subsequently received RREQs. It records the entire route stored in the first RREQ message in the Bloom filter (BF) as the primary path. The BF consists of the hashed addresses of the intermediate nodes in the primary path. The destination node sends an RREP (RREP1) message back to the source via the reverse path (i.e., the primary path) identified in this message. The BF is used in checking whether a possible alternative path and the primary path are node-disjoint or not, so the BF is not included in the RREP1 message.(2) Node-Disjoint Alternative Path Construction. Before presenting this part, we introduce two major conceptions. The next node (nn) is the neighbor node which is the first hop of a reverse route back to the source stored in the route cache. The node which is one hop away from the source along a reverse route back to the source is called the neighbor of source (ns). The ns value [4] is used for finding a node-disjoint backup path of the primary path. The philosophy behind this is that those two routes with the same ns value are not node-disjoint to each other.The destination processes the subsequent RREQ messages received within the Td duration. In addition, it checks the ns value of every duplicate RREQ message to determine whether the route is node-disjoint to the primary path. If this ns value is not included in the BF, this route is considered to be node-disjoint to the primary path. Then, the destination node sends an RREP_N message back to the source that contains a complete node-disjoint backup path and the BF. Otherwise, the neighbors of the destination are also added to the BF in order to avoid constructing a route with a detour through two intermediate neighbors [7].If no such an RREP_N message has been generated by the destination, the destination sends a second RREP (RREP2) message, after timeout, with the BF and the corresponding route to the destination. RREP2 is first relayed to the sender of the secondly received RREQ message.For the construction of a node-disjoint backup path bypassing all the nodes in the primary path, each intermediate node processes the received RREP2 message by carrying out the following two steps:(i)
Select an appropriate next node (nn) to construct a node-disjoint backup path.
(ii)
Check if it is qualified to establish an alternative route for a neighbor node located on the primary path.During the first step, the route information from an intermediate node to the source is classified into three types as shown in Table1. Based on the BF in the received RREP2 message and the multiple reverse routes from the route cache, the intermediate node updates the route to the destination in the RREP2 message and forwards it to one of its neighbors with considering the route priority described in Table 1.Table 1
Route classification based on ns and nn values.
Type
Description
N_Route
A path (to the source) in the route cache that has a different neighbor of source (ns) value from that of the primary path; a node-disjoint path with the highest priority
O_Route
A path that has the same ns value as that of the primary path, but whose next node (nn) value does not exist in the primary path; an overlapped path with the medium priority
L_Route
A path that is 1-hop away from the route included in the RREP2 message; a loop route with the lowest priorityThe expected backup path for the source is discovered when the RREP2 message reaches a node with an N_Route. Then, the RREP_N message with the BF and the complete node-disjoint route from the source to the destination is sent to the source. In this case, the RREP_N message is forwarded along the shortest reverse route to the source in the route cache.During the second step, the intermediate node on the backup path checks the nn value to determine whether it is a member of the primary path. If any hashed neighbor address is found in the BF of a reply message (RREP2, RREP_N), we consider it as a member of the primary path. In this case, an RREP_A message containing only the route to the destination carried in RREP2 message is sent to that neighbor in order to establish an alternative path from the neighbor.The whole procedure in the route reply phase is described in Algorithm1.Algorithm 1:Operation at a node.
Notations:
hc: hop count
nn: next node
ns: neighbor of source
Rs: route to the source
Rd: route to the destination
BF: bloom filter
(1) Upon receiving an RREQ message at the destination
Begin
if a new RREQ then
Set a timer Td
/∗ Initiate an RREP2 after timeout ∗/
Send an RREP1 back to the source
Record the BF of the primary path
end if
if a second RREQ && RREQ.ns ∈ BF then
Record the previous hop as the next hop of RREP2
else if a duplicate RREQ && within the timer Td then
if RREQ.ns ∉ BF then
Initiate an RREP_N
else
Add the neighbor nodes of the destination to the BF
end if
End
(2) Upon timeout at the destination
Begin
if receives a second RREQ && haven’t sent an RREP_N then
Extract the information of the next hop and the BF
Initiate an RREP2
end if
End
(3) Upon receiving a reply message at an intermediate node
Begin
Case: an RREP1
Forward the RREP1 based on the source route
Case:an RREP2
ifhas an N_Route (Rs.ns ∉ BF) then
Initiate an RREP_N
else if has an O_Route (Rs.ns ∈ BF && Rs.nn ∉ BF) then
Relay the RREP2 to Rs.nn
else if has an L_Route (Rs.nn ∉ BF && Rs.hc == 1) then
Relay the RREP2 to Rs.nn
end if
ifhas an Rs.nn ∈ BF && Rs.hc is the shortest onethen
Send an RREP_A to Rs.nn
end if
Case: an RREP_N
if has an Rs.nn ∈ BF && Rs.hc is the shortest one then
Send an RREP_A to Rs.nn
end if
Relay the RREP_N to next hop based on the source route
Case: an RREP_A
Record the Rd information stored in the RREP_A
End


## 3.3.1. Route Request Phase

In SNMR, the source node initiates the route discovery mechanism by flooding the network with RREQ messages when there is no route available for data transmission. Every intermediate node removes all routes to the source before processing the first received RREQ message. In addition, each intermediate node records the reverse route back to the source for every received RREQ message but rebroadcasts only the first RREQ message. This is to ensure that the route cache maintains fresh reverse routes which are to be used in the route reply phase. Similar to SMR, an intermediate node cannot reply back to the source node using the information in its route cache even when it has the route information to the destination. The operation of an intermediate node is shown in Figure1.Figure 1
Operation of an intermediate node after receiving an RREQ message.When the destination node receives the first RREQ message, it initiates its timer Td and generates the primary path based on the information in the received RREQ message. The destination replies to the first RREQ and processes the subsequently received RREQ messages received within the Td time duration. In particular, the destination records the primary path information in a Bloom filter and initiates another reply message before timeout if any of duplicate RREQs has a route which is node-disjoint to the primary path.


## 3.3.2. Route Reply Phase

(1) Primary Path Construction. When the destination node receives the first RREQ message, it initiates its timer Td to collect subsequently received RREQs. It records the entire route stored in the first RREQ message in the Bloom filter (BF) as the primary path. The BF consists of the hashed addresses of the intermediate nodes in the primary path. The destination node sends an RREP (RREP1) message back to the source via the reverse path (i.e., the primary path) identified in this message. The BF is used in checking whether a possible alternative path and the primary path are node-disjoint or not, so the BF is not included in the RREP1 message.(2) Node-Disjoint Alternative Path Construction. Before presenting this part, we introduce two major conceptions. The next node (nn) is the neighbor node which is the first hop of a reverse route back to the source stored in the route cache. The node which is one hop away from the source along a reverse route back to the source is called the neighbor of source (ns). The ns value [4] is used for finding a node-disjoint backup path of the primary path. The philosophy behind this is that those two routes with the same ns value are not node-disjoint to each other.The destination processes the subsequent RREQ messages received within the Td duration. In addition, it checks the ns value of every duplicate RREQ message to determine whether the route is node-disjoint to the primary path. If this ns value is not included in the BF, this route is considered to be node-disjoint to the primary path. Then, the destination node sends an RREP_N message back to the source that contains a complete node-disjoint backup path and the BF. Otherwise, the neighbors of the destination are also added to the BF in order to avoid constructing a route with a detour through two intermediate neighbors [7].If no such an RREP_N message has been generated by the destination, the destination sends a second RREP (RREP2) message, after timeout, with the BF and the corresponding route to the destination. RREP2 is first relayed to the sender of the secondly received RREQ message.For the construction of a node-disjoint backup path bypassing all the nodes in the primary path, each intermediate node processes the received RREP2 message by carrying out the following two steps:(i)
Select an appropriate next node (nn) to construct a node-disjoint backup path.
(ii)
Check if it is qualified to establish an alternative route for a neighbor node located on the primary path.During the first step, the route information from an intermediate node to the source is classified into three types as shown in Table1. Based on the BF in the received RREP2 message and the multiple reverse routes from the route cache, the intermediate node updates the route to the destination in the RREP2 message and forwards it to one of its neighbors with considering the route priority described in Table 1.Table 1
Route classification based on ns and nn values.
Type
Description
N_Route
A path (to the source) in the route cache that has a different neighbor of source (ns) value from that of the primary path; a node-disjoint path with the highest priority
O_Route
A path that has the same ns value as that of the primary path, but whose next node (nn) value does not exist in the primary path; an overlapped path with the medium priority
L_Route
A path that is 1-hop away from the route included in the RREP2 message; a loop route with the lowest priorityThe expected backup path for the source is discovered when the RREP2 message reaches a node with an N_Route. Then, the RREP_N message with the BF and the complete node-disjoint route from the source to the destination is sent to the source. In this case, the RREP_N message is forwarded along the shortest reverse route to the source in the route cache.During the second step, the intermediate node on the backup path checks the nn value to determine whether it is a member of the primary path. If any hashed neighbor address is found in the BF of a reply message (RREP2, RREP_N), we consider it as a member of the primary path. In this case, an RREP_A message containing only the route to the destination carried in RREP2 message is sent to that neighbor in order to establish an alternative path from the neighbor.The whole procedure in the route reply phase is described in Algorithm1.Algorithm 1:Operation at a node.
Notations:
hc: hop count
nn: next node
ns: neighbor of source
Rs: route to the source
Rd: route to the destination
BF: bloom filter
(1) Upon receiving an RREQ message at the destination
Begin
if a new RREQ then
Set a timer Td
/∗ Initiate an RREP2 after timeout ∗/
Send an RREP1 back to the source
Record the BF of the primary path
end if
if a second RREQ && RREQ.ns ∈ BF then
Record the previous hop as the next hop of RREP2
else if a duplicate RREQ && within the timer Td then
if RREQ.ns ∉ BF then
Initiate an RREP_N
else
Add the neighbor nodes of the destination to the BF
end if
End
(2) Upon timeout at the destination
Begin
if receives a second RREQ && haven’t sent an RREP_N then
Extract the information of the next hop and the BF
Initiate an RREP2
end if
End
(3) Upon receiving a reply message at an intermediate node
Begin
Case: an RREP1
Forward the RREP1 based on the source route
Case:an RREP2
ifhas an N_Route (Rs.ns ∉ BF) then
Initiate an RREP_N
else if has an O_Route (Rs.ns ∈ BF && Rs.nn ∉ BF) then
Relay the RREP2 to Rs.nn
else if has an L_Route (Rs.nn ∉ BF && Rs.hc == 1) then
Relay the RREP2 to Rs.nn
end if
ifhas an Rs.nn ∈ BF && Rs.hc is the shortest onethen
Send an RREP_A to Rs.nn
end if
Case: an RREP_N
if has an Rs.nn ∈ BF && Rs.hc is the shortest one then
Send an RREP_A to Rs.nn
end if
Relay the RREP_N to next hop based on the source route
Case: an RREP_A
Record the Rd information stored in the RREP_A
End


## 3.4. Route Maintenance

After the source node receives the first RREP1 message, it caches the route as the primary path and transmits its buffered data packets through it. The second received route is cached as a node-disjoint backup path. A link of a route can be disconnected because of mobility, congestion, and/or packet collisions. It is important to recover quickly from link breaks.In SNMR, when a node fails to deliver a data packet to the next hop of the given route, it considers the link as disconnected. The node sends a route error (RERR) message back to the source through the shortest reverse route in its route cache. The RERR message contains the broken link information and the shortest reverse route to the source. In addition, this node searches a capable alternative path for packet salvaging. Upon receiving this RERR message, the source node removes all the route information with the broken link.If only one of the two routes is invalidated, the source uses the remaining valid route for data transmission. Route reconstruction process is initiated only when both of the routes are broken.


## 3.5. Example

SNMR computes a node-disjoint backup path that bypasses all the intermediate nodes in the primary path. An example that illustrates the computation of two opportunistic node-disjoint paths and relative alternative paths for the intermediate nodes in the primary path is shown in Figure2. An RREP1 message is unicast towards the source S by creating the reverse path (C-B-A-S). The destination node D first sends an RREP2 message to node H. Then, H selects the next node G (located on the O_Route G-B-A-S) to relay the RREP2 message and sends an RREP_A message to node C. Similarly, G selects the next node F (located on the O_Route F-A-S) to relay the RREP2 and sends an RREP_A to B. Finally, F forwards an RREP_N message to the source along the path E-S (based on the N_Route). In addition, E and F send an RREP_A to A, respectively. Finally, the expected node-disjoint backup path is established. In addition, an alternative path is also found within one route discovery attempt for each intermediate node in the primary path.Figure 2
An example showing the alternative path found by SNMR.Table2 shows the comparisons on RREQ propagation and the routes selected by the protocols, DSR, SMR, and SNMR. It is obvious that our SNMR protocol obtains more useful route information with less RREQ propagation.Table 2
Comparisons on RREQ propagation and routes selected.
RREQ propagation
Routes selected
DSR
SMR
SNMR


## 4. Performance Evaluation

We evaluate and compare the performance of the following protocols:(i)
SNMR: our proposed scheme that finds two opportunistic node-disjoint paths.
(ii)
SMR: the split multipath routing [3] that finds two maximally disjoint paths.
(iii)
DSR: the dynamic source routing [1] that finds a single path.


### 4.1. Example Topology

Figure3 shows the example topology realized in the Qualnet network simulator [15] and the simulation environment is shown in Table 3.Table 3
Simulation environment.
Parameter
Value
Simulation area
1500 m × 1500 m
Traffic model
CBR
The number of mobile nodes
1
Simulation time
25 s
Packet generation rate
1 packet/second
Maximum propagation distance
350 m
Packet size
512 bytesFigure 3
An example topology with a single mobile node.The comparison results in Table4 show that SNMR has more powerful capability in salvaging packets in the primary path, so higher throughput and lower packet losses can be achieved. As it spends extra time in salvaging packets, the proposed scheme presents a higher end-to-end delay than SMR. However, it gives the lowest overhead among the three protocols. As a result, our protocol performs well in terms of packet delivery ratio (PDR) and normalized routing load (NRL). NRL is the ratio of the number of control packets propagated by every node in the network to the number of data packets received by the destination nodes.Table 4
Comparison results.
Metric
SNMR
SMR
DSR
Packet loss
0
1
1
Packet delivery ratio
1
0.96
0.96
Throughput (bits/s)
8192
7864
7864
End-to-end delay (s)
0.0326
0.0287
0.0359
The number of route discoveries
1
1
2
RREQs forwarded
10
19
16
RREPs received
13
9
23
RERRs received
1
1
1
Normalized routing load
1
1.26
1.74Due to the overlapped route problem, DSR has to initiate the recovery process at the source to discover a new valid route. Therefore, DSR shows the highest overhead compared to the other two protocols and the highest end-to-end delay.SMR uses two maximally node-disjoint routes for data transmission. SMR gives higher overhead than SNMR in RREQ propagation. That is, SNMR is good for a large network. In addition, SNMR produces higher throughput than SMR thanks to alternative paths for packet salvaging.


### 4.2. Random Topology

Figure4 and Table 5 show the random topology and the corresponding simulation environment. The simulation network is composed of 50 mobile nodes placed randomly within the 1500 m × 1500 m area. Each source generates CBR traffic at the rate of two 512-byte packets per second with the pause time of 50 seconds. We have used the random waypoint model as the mobility model. In random-based mobility simulation models, mobile nodes move randomly and freely with pause time over time. To be more specific, the destination, the speed (i.e., velocity, acceleration), and the direction are all chosen randomly and independently of other nodes. The total simulation time is 300 s and the maximum propagation distance is 350 m based on the IEEE 802.11.Table 5
Simulation environment for the random topology.
Parameter
Value
Simulation area
1500 m × 1500 m
Traffic model
CBR
The number of mobile nodes
50
Simulation time
300 s
MAC protocol
802.11
Pause time
50 s
Source-destination pairs
20
Mobility model
Random waypoint
Node movement speed
(0, 10 m/s)
Packet generation rate
2 packets/second
Maximum propagation distance
350 m
Packet size
512 bytesFigure 4
Random topology with 50 mobile nodes.The packet delivery ratio of each protocol is shown in Figure5. SNMR performs better than SMR due to its lower overhead and salvaging paths for intermediate nodes in the primary path. As regards DSR, many stale routes are used for data transmission, resulting in low packet delivery ratio.Figure 5
(a) Packet delivery ratio versus the number of flows. (b) Packet delivery ratio versus pause time.
(a)
(b)Figure6 depicts the results in terms of the normalized routing load (NRL). We can observe that the normalized routing load of SNMR is the lowest among the compared protocols. This is because of the fact that SNMR forms alternative routes within a route discovery attempt without rebroadcasting any duplicate RREQs. SMR has a higher NRL as a result of excessive broadcasts of RREQs. DSR performs the worst due to the usage of stale routes, thereby invoking more route reconstruction and overhead.Figure 6
(a) Normalized routing load versus the number of flows. (b) Normalized routing load versus pause time.
(a)
(b)As the pause time decreases (i.e., the mobility increases), the probability of a link failure increases and hence the performance becomes worse. DSR invokes higher packet drops and more route recovery processes due to the usage of the stale routes. Both SNMR and SMR use multiple routes for data transmission to avoid extra route recovery attempts and prevent the nodes of the route from being congested in heavily loaded traffic. However, with the increase of the speed (the higher degree of mobility), SNMR presents much better performance than SMR due to its lower overhead.In case of SMR, the amount of duplicate RREQ propagation increases significantly with the increase of the route recovery attempt. It may cause collision and contention with data packets and affect the route efficiency. Furthermore, the large amount of overhead generated by SMR may increase the waiting time of data packets in transmission buffers. As regards SNMR, the overhead which occurred during the route discovery phase can be significantly reduced thanks to the absence of duplicate RREQ propagation when compared with SMR.Figure7 shows the throughput for various pause times. The throughput decreases as the mobility increases (i.e., the pause time decreases). SNMR performs in a more stable way than the other protocols in terms of throughput.Figure 7
Throughput versus pause time.Figure8 shows the results in terms of throughput with increasing the packet generation rate. Due to lower overhead and efficient alternative paths, SNMR gives the best performance for all cases.Figure 8
Throughput versus packet generation rate.Figure9 shows the comparison results in terms of packet losses for various pause times. Due to higher reliability and efficient alternative paths, SNMR presents the best performance for all the cases.Figure 9
Packet loss versus pause time.Figure10 shows the simulation results in terms of end-to-end delay for various pause times. SNMR gives the smallest end-to-end delay for all the cases.Figure 10
End-to-end delay versus pause time.


## 4.1. Example Topology

Figure3 shows the example topology realized in the Qualnet network simulator [15] and the simulation environment is shown in Table 3.Table 3
Simulation environment.
Parameter
Value
Simulation area
1500 m × 1500 m
Traffic model
CBR
The number of mobile nodes
1
Simulation time
25 s
Packet generation rate
1 packet/second
Maximum propagation distance
350 m
Packet size
512 bytesFigure 3
An example topology with a single mobile node.The comparison results in Table4 show that SNMR has more powerful capability in salvaging packets in the primary path, so higher throughput and lower packet losses can be achieved. As it spends extra time in salvaging packets, the proposed scheme presents a higher end-to-end delay than SMR. However, it gives the lowest overhead among the three protocols. As a result, our protocol performs well in terms of packet delivery ratio (PDR) and normalized routing load (NRL). NRL is the ratio of the number of control packets propagated by every node in the network to the number of data packets received by the destination nodes.Table 4
Comparison results.
Metric
SNMR
SMR
DSR
Packet loss
0
1
1
Packet delivery ratio
1
0.96
0.96
Throughput (bits/s)
8192
7864
7864
End-to-end delay (s)
0.0326
0.0287
0.0359
The number of route discoveries
1
1
2
RREQs forwarded
10
19
16
RREPs received
13
9
23
RERRs received
1
1
1
Normalized routing load
1
1.26
1.74Due to the overlapped route problem, DSR has to initiate the recovery process at the source to discover a new valid route. Therefore, DSR shows the highest overhead compared to the other two protocols and the highest end-to-end delay.SMR uses two maximally node-disjoint routes for data transmission. SMR gives higher overhead than SNMR in RREQ propagation. That is, SNMR is good for a large network. In addition, SNMR produces higher throughput than SMR thanks to alternative paths for packet salvaging.


## 4.2. Random Topology

Figure4 and Table 5 show the random topology and the corresponding simulation environment. The simulation network is composed of 50 mobile nodes placed randomly within the 1500 m × 1500 m area. Each source generates CBR traffic at the rate of two 512-byte packets per second with the pause time of 50 seconds. We have used the random waypoint model as the mobility model. In random-based mobility simulation models, mobile nodes move randomly and freely with pause time over time. To be more specific, the destination, the speed (i.e., velocity, acceleration), and the direction are all chosen randomly and independently of other nodes. The total simulation time is 300 s and the maximum propagation distance is 350 m based on the IEEE 802.11.Table 5
Simulation environment for the random topology.
Parameter
Value
Simulation area
1500 m × 1500 m
Traffic model
CBR
The number of mobile nodes
50
Simulation time
300 s
MAC protocol
802.11
Pause time
50 s
Source-destination pairs
20
Mobility model
Random waypoint
Node movement speed
(0, 10 m/s)
Packet generation rate
2 packets/second
Maximum propagation distance
350 m
Packet size
512 bytesFigure 4
Random topology with 50 mobile nodes.The packet delivery ratio of each protocol is shown in Figure5. SNMR performs better than SMR due to its lower overhead and salvaging paths for intermediate nodes in the primary path. As regards DSR, many stale routes are used for data transmission, resulting in low packet delivery ratio.Figure 5
(a) Packet delivery ratio versus the number of flows. (b) Packet delivery ratio versus pause time.
(a)
(b)Figure6 depicts the results in terms of the normalized routing load (NRL). We can observe that the normalized routing load of SNMR is the lowest among the compared protocols. This is because of the fact that SNMR forms alternative routes within a route discovery attempt without rebroadcasting any duplicate RREQs. SMR has a higher NRL as a result of excessive broadcasts of RREQs. DSR performs the worst due to the usage of stale routes, thereby invoking more route reconstruction and overhead.Figure 6
(a) Normalized routing load versus the number of flows. (b) Normalized routing load versus pause time.
(a)
(b)As the pause time decreases (i.e., the mobility increases), the probability of a link failure increases and hence the performance becomes worse. DSR invokes higher packet drops and more route recovery processes due to the usage of the stale routes. Both SNMR and SMR use multiple routes for data transmission to avoid extra route recovery attempts and prevent the nodes of the route from being congested in heavily loaded traffic. However, with the increase of the speed (the higher degree of mobility), SNMR presents much better performance than SMR due to its lower overhead.In case of SMR, the amount of duplicate RREQ propagation increases significantly with the increase of the route recovery attempt. It may cause collision and contention with data packets and affect the route efficiency. Furthermore, the large amount of overhead generated by SMR may increase the waiting time of data packets in transmission buffers. As regards SNMR, the overhead which occurred during the route discovery phase can be significantly reduced thanks to the absence of duplicate RREQ propagation when compared with SMR.Figure7 shows the throughput for various pause times. The throughput decreases as the mobility increases (i.e., the pause time decreases). SNMR performs in a more stable way than the other protocols in terms of throughput.Figure 7
Throughput versus pause time.Figure8 shows the results in terms of throughput with increasing the packet generation rate. Due to lower overhead and efficient alternative paths, SNMR gives the best performance for all cases.Figure 8
Throughput versus packet generation rate.Figure9 shows the comparison results in terms of packet losses for various pause times. Due to higher reliability and efficient alternative paths, SNMR presents the best performance for all the cases.Figure 9
Packet loss versus pause time.Figure10 shows the simulation results in terms of end-to-end delay for various pause times. SNMR gives the smallest end-to-end delay for all the cases.Figure 10
End-to-end delay versus pause time.


## 5. Conclusion

We have proposed the salvage capable opportunistic node-disjoint multipath routing (SNMR) protocol that forms opportunistic node-disjoint routes together with alternative paths for intermediate nodes in the primary path. To this end, our protocol uses the Bloom filter to store the primary path information with minimum overhead. In addition, alternative paths can be found for all the intermediate nodes in the primary path, simultaneously. As a consequence, SNMR provides higher robustness to mobility and has a better capability of packet salvaging.Performance evaluation shows that SNMR presents higher packet delivery ratio, higher throughput, and lower normalized routing load among the compared three protocols. It is because of the fact that not only the source node but also the intermediate nodes can obtain alternative routes for packet salvaging.



---

*Source: 8151403-2016-01-18.xml*