Skip to content


  • Research
  • Open Access

TOAR: transmission-aware opportunistic ad hoc routing protocol

EURASIP Journal on Wireless Communications and Networking20132013:237

  • Received: 14 December 2012
  • Accepted: 17 September 2013
  • Published:


Opportunistic routing (OR) protocols for ad hoc networks basically consist of selecting a few forwarders between the source and destination and prioritizing their transmission. The performance of OR protocols depends on how these two steps are performed. The aim was to reduce the number of transmissions to deliver packets to the destination. In this paper, we first present a mathematical model to compute the total number of packets including duplicate packets generated by OR protocols. We use the model to analyse well-known OR protocols and understand the reason behind their increase in number of transmissions. Next, we propose an OR scheme transmission-aware opportunistic ad hoc routing (TOAR) protocol, which attempts to minimize retransmissions. Our proposed OR protocol uses tree structures to select forwarders and prioritize them. The use of tree structures helps in identifying primary forwarders which carry packets farthest to the destination during each transmission round. TOAR also helps in choosing secondary forwarders which will transmit packets missed out by the forwarder. The optimized selection of forwarders results in significant reduction in retransmissions, a smaller forwarder list set, and improvement in goodput.


  • Source Node
  • Packet Delivery Ratio
  • Dynamic Source Rout
  • Candidate Node
  • Effective Weight

1 Introduction

Ad hoc wireless networks are important communication techniques where wireless infrastructures cannot be deployed. This class of wireless network does not have any centralized control or fixed infrastructure, instead the nodes interconnect with each other through multi-hop routing paths. All the nodes have similar privileges, and they collectively participate in the routing procedures. A great number of wireless routing protocols based on traditional routing techniques [14] are proposed in the literature. Although these protocols attempt to optimize different metrics, in general, they select a path from source to destination prior to injecting packets to the network and then forward data through that predetermined route. The main characteristic of the wireless network is that it is broadcast in nature, i.e., all the nodes in the range of the transmitting node are able to listen to the packet even if the packet is not meant for them. OR protocols are designed to exploit this broadcast nature of wireless networks. In OR protocols, the source node rather than choosing a single path to the destination selects a number of potential forwarders between the source-destination pair and broadcasts the packet. Among the selected forwarders that received the packet successfully, the node closest to the destination is given the first chance to forward the packet. This procedure continues until the packet reaches the destination. It has already been demonstrated in literature that OR protocols produce significantly better results than traditional wireless protocols [5].

1.1 Problem outline and motivation

The two main steps in an OR protocol are (1) selection of the forwarder list and (2) prioritization among these forwarders. The efficiency of an OR protocol mainly depends upon these two steps. There may be numerous nodes available between the source and the destination. The job of the selection procedure is to decide which subset of the nodes will participate in the routing process that will lead to optimal result. One major issue with the selection process is the generation of duplicate packets due to improper selection strategy. The main goal of this paper was to understand the cause of duplicate transmissions and then propose a forwarder selection strategy that addresses the problem.

The motivation behind studying duplicate transmissions in ad hoc OR protocols can be justified as follows. Most of the OR protocols available in literature use different forwarder selection criteria in an attempt to reduce retransmissions. Classical OR protocols such as ExOR [6] run a simulation and select those nodes as forwarders that can forward a certain percentage of packets. The more recent protocols select subsets of relays, compute the expected number of retransmissions for each subset, and choose the one that minimizes transmissions. However, none of these works did an in-depth study to find the cause of retransmissions. These protocols primarily concentrate on the global goal of reducing transmissions but do not attempt to understand the dynamics between the relays within a subset.

1.2 Contribution

In this paper, we systematically analyse the number of retransmissions that occur in OR protocols. This paper makes the following contributions. We first propose a mathematical model to analyse OR protocols in terms of the number of transmissions. The model considers the probability of duplicate packet generations. Using this model, we then analyse well-known OR protocols and try to understand the reason behind the generation of duplicate packets. Through quantitative analysis, we show that the main reason behind retransmissions is because adjacent forwarders are not in the range of one another. Finally, using this knowledge, we try to select forwarders from each hop distance to the destination, such that the communication between forwarders are more reliable as well as the set of forwarders reduce the overall number of transmissions. In particular, we show that there is at least 20% decrease in the number of retransmissions which subsequently results in improvement of goodput.

1.3 Paper outline

The rest of the paper is organized as follows. Section 2 presents a survey of related work. In Section 3, we discuss how duplicate packets can occur due to improper selection of forwarders. A mathematical model to compute transmissions in OR protocols is given in Section 4. Problem statement and our proposed OR protocol TOAR are given in Sections 5 and 6, respectively. In Section 7, the simulation results are presented. Finally, the concluding remarks are given in Section 8.

2 Related works

The first OR protocol was proposed by Biswas and Morris [6]. The protocol, named Extreme Opportunistic Routing (ExOR) protocol, was proposed for wireless mesh networks. ExOR selects the forwarders based on simulation with available nodes prioritized using a metric expected transmission cost (ETX) [7]. This metric computes the average number of retransmissions needed to forward a packet over a link using the packet delivery ratio of the link. ETX of a node in ExOR can be considered as the logical distance of the node from destination that is used to prioritize the nodes according to their positions. ExOR does not consider the link quality between adjacent forwarders which may result in these forwarders appearing on disjoint paths to the destination.

Another protocol MORE [8], which was designed as an improvement over ExOR, uses linear network coding for spatial reuse. This protocol, as it uses linear network coding technique, does not require strict coordination among the forwarders. However, the destination requires information regarding the number of packets encoded by the sender for successful decoding. This protocol also inherits the problems of ExOR.

Other OR protocols like EEOR [9] and OPRENU [10] use OR structures similar to ExOR but different routing metrics. GeRaF [11] is a location-based protocol where the source node uses the destination geographical location information to forward packets. It does not deterministically assign priorities to the forwarders, but at the time of transmission, the next higher priority node is chosen according to their location information. The problem with this approach is the protocol needs extra hardware and service supports to get the location information for routing.

Mao et al. proposed a global approach in their routing protocol EEOR [9], which selects route that is expected to use lowest energy among all the routes between source and destination to deliver packets. Kim et al. proposed a local approach in ORTR [12] for wireless sensor networks to deliver data under time constraints and efficient power consumption.

Zhong et al. proposed another metric, expected any-path transmission (EAX), that computes the expected number of transmissions to reach the destination given a certain ordered set of forwarders. This metric requires packet delivery ratios (PDR) between all pair of nodes, where these PDRs are assumed to be mutually independent. However, as the metric computes ETX for all possible candidate sets, the cost is high. Choice of the metric, being an important issue to select the forwarders, there is a challenge to find a metric or a set of metrics for the purpose for a given network. Some other metrics proposed for OR protocols are geographical location [11], remaining power level (RPL) [12], etc.

Resilient opportunistic routing protocol [13], proposed by Yuan et al., is a credit-based OR protocol for wireless mesh networks. There approach builds a forwarding mesh on the fly around the minimum cost path. Each data packet carries some extra credit, over the minimum cost from source to destination, so that the packet can afford to travel more paths. Upon receiving a packet, each candidate node forwards the packet, only if the node satisfies a threshold credit/cost ratio. The mesh of candidates from source to the destination is controlled by adjusting the extra credit assigned per packet. Forwarding the packets independently and building a forwarder set for each packet will incur high overheads [1]. The second issue with this approach is that the authors have not clearly mentioned how to assign credits to the packets, which is clearly a non-trivial issue as effective candidate set selection depends upon it. It is also not clear how the forwarding nodes coordinate among themselves or how the ACKs are propagated among the forwarders.

In 2009, Rozner et al. proposed another OR protocol SOAR [14] that tries to avoid duplicate transmissions. In this protocol, an intermediate node selects its next hop forwarders such that the cost from each of the nodes in this set to the destination is lower than that of the selector’s. Moreover, the protocol ensures that each node is in the range of at least one node in the default (shortest) path. The protocol also bounds the number of forwarders to be selected. The protocol has some serious flaws. As the protocol follows the shortest path while building the candidate list, it might fail in scenarios where node availability around the shortest path is scarce. Another problem with the approach is it uses simple ETX as the metric to select the forwarders list. While ETX is a single-path metric, using this directly to find weights of the nodes will not reflect the improvements due to multiple next hop forwarders.

The work which is most related to ours is the Least-Cost Anypath Routing (LCAR) proposed by Dubois-Ferrire et al. [15]. This protocol chooses anypath and not the shortest path, in order to reduce retransmissions. A node selects its forwarder list (selector node) by considering all possible subsets of its neighbor set and then compute the relay cost from each of the subset to the destination. The total cost, from the selector node to the destination through a subset, is the sum of the relay set cost and the cost to the set from the selector. The subset which results in the minimum total cost of the selector is selected as its relay set. As for each selection, nodes in the relay set will have lower weights to the destination than the intermediate node; the method assures that there are no cycles. The main issue with this approach is that while selecting the relay set, it does not consider the connectivity between the member nodes of the set. They assume that the nodes in the neighbor set are in the range of one another which may not be always true. In such a case, it will result in divergent path which will defeat the basic aim. The second drawback of this approach is that while selecting the relay set, LCAR considers all possible combinations of the neighbour set. For n neighbors, the complexity of their approach will be O(2 n ) [16], whereas our approach has quadratic complexity. Finally as LCAR does not put a limit on the maximum number of nodes in the relay set, it may end up in selecting unnecessary large sets.

In terms of modeling OR protocols, very few work are present in literature. The authors in [17] proposed a model for OR protocols to compare them in terms of the number of retransmissions. Their model is based on discrete-time Markov chain (DTMC). The model assumes that acknowledgments for successful packet receptions are propagated to lower priority forwarders without any failure. As a consequence, their model omits duplicate packets generated during transmission. However, such an assumption is impractical, as the main problem with most OR protocols is duplicate transmissions due to failure in acknowledgment propagation.

3 Retransmissions in OR

The main goal of OR protocols is to decrease the number of transmissions needed to deliver packets to the destination. The imminent approach taken by OR for this motivation is to advance packets as close to the destination as possible in each retransmission, by exploiting all possible paths through the selected forwarders. In OR, packets are transmitted in batches. OR uses source routing to deliver packets to the destination. The source includes the list of forwarders ordered by their distance to the destination. The OR packet header format [18, 19]) is shown in Figure 1. Forwarding Set is the list of forwarders. These forwarders buffer received packets.
Figure 1
Figure 1

OR packet header format. The figure shows the various field of an OR packet.

At the end of the batch transmission, the highest priority forwarder broadcasts the buffered packets. OR protocols use a mechanism similar to passive acknowledgments to avoid individual acknowledgments and suppress duplicate retransmissions.

3.1 Batch map

As can be seen in Figure 1, each OR packet contain in its header, acknowledgments called batch map [18] for all packets in the batch. The aim of the batch map is to avoid sending individual acknowledgment per packet. The batch map entries indicate, for each individual packet, the last known highest priority forwarder(as visualized by the sender) that has buffered the packet successfully. The number of entries in the batch map, therefore, is equal to the batch size. Note that each entry in the batch map, the forwarder is encoded with its id, the position of the node in the Forwarding Set (refer to Figure 1). This optimization makes it feasible to embed a complete batch map in every OR packet. The space required for a 100-packet batch with 16 forwarders is log2(16)100 or 50 bytes.

To keep track of packets, each forwarder keeps a copy of the batch map in its local memory. Whenever a forwarder receives OR packets, the batch map is updated. The batch map retrieved from the received OR packet’s header is compared with the node’s local batch map. If an entry in the local batch map shows a lower value, the value is updated with the one suggested by the received packet’s batch map. This way, the local batch map indicates the highest known forwarders for each packet.

While forwarding packets, the node only forwards those buffered packets which were not acknowledged by higher priority forwarders. The local batch map of the node is inserted in the transmitted packets. Thus, a single transmitted packet from a forwarder carries entire information about packet positions gathered by that node.

Figure 2 shows an example of updating batch map for a batch size of 18 packets. The node receives a packet from the third forwarder. In this example, the value of the first entry in the local batch map is 0, whereas it is 3 in the received batch map. Therefore, the local batch map is updated with the value 3. There are a total of nine entries where the received batch map differs from the local one. However, for the 2nd and 18th entries, the value in the received batch map is smaller than the local one. This means that forwarder 3 has older information regarding those two packets, so the batch map is not updated for these two entries. All the other seven entries are updated in the local batch map, and they are shown in gray in the figure. It may be noted that, though the batch map came from forwarder 3, some updates show the packets buffered by forwarder 4. These updates are passively received from node 4 via node 3, as node 3 integrates the updates received from node 4 upon receiving a batch map from the node.
Figure 2
Figure 2

Example of a batch map update for a batch size of 18 packets for a forwarder. The figure depicts an example of a batch map updating procedure to demonstrate how it works.

3.2 OR transmissions

The packet transmission process in OR is shown in Figure 3. The figure shows a forwarder list with linearly positioned forwarders v0 to v n prioritized according to their positions with v n , the destination node, being the highest priority node. In OR, a forwarder will ideally transmit before any of the lower priority forwarders. Since each packet contains a batch map, this means that a node will come to know of the packets that have been buffered by nodes with higher priority. In our example when node v0 transmits, v3 will be the highest priority node able to receive those packets. After v0 completes, v3 will start retransmitting while other lower priority nodes, like v2 and v1, will try to listen to these transmissions to get the current packet positions. When node v2’s turn comes, it will not retransmit the packets already buffered by v3, as it gathers the information about node v3 by listening to its transmissions. In v1’s turn, it will not transmit the packets buffered by v2 or v3, even if it does not receive any packet from v3 as node v2’s packets already include the information of node v3.
Figure 3
Figure 3

Ideal forwarder positions from node v 0 to v n . The figure shows nodes v0 to v n linearly positioned according to their priorities, where nodes v0 and v n have the lowest and the highest priorities, respectively. The dotted arcs show the range of a certain node, for example, dotted arc labeled v0 denotes the transmission range of node v0.

This example show an ideal scenario, where all forwarders with successive priority are in the range of one another, i.e., they can listen to some or all the packets transmitted by next higher and lower priority forwarder nodes. But this may not be true, for real network scenarios where successive forwarders may fall in divergent path. For example in Figure 4, we assume a scenario where v0 is the source and v7 is the destination node. The figure also shows all the possible paths to the destination v7. Let us assume an OR protocol similar to ExOR [6, 18, 20] that consider hop count and packet delivery probability together to select and prioritize the forwarders. In the scenario, there are two shortest paths, they are {v0,v3,v6,v7} and {v0,v2,v5,v7}. The protocol, using the above selection criteria, will select both the paths and prepare a forwarders list {v0,v2,v3,v5,v6,v7}, where the nodes are prioritized by logical distances to the destination using PDRs. Here, the node pairs {v2,v3}, {v3,v5}, and {v5,v6} in spite of being adjacent priority nodes, they are not in range of each other. The direct effect of this situation is that for each pair of nodes, the lower priority node may transmit packets just transmitted by the higher priority node, as the lower priority forwarder is not able to get updated batch map from the adjacent higher priority nodes.
Figure 4
Figure 4

Simple network with all possible paths from node v 0 to v 7 . The figure displays all possible paths from source node v0 to destination node v7. The dashed lines denote the existing links among the nodes that construct various paths to the destination.

4 Modeling retransmissions in OR

In this section, we present an analytical model to compute expected number of retransmissions for a given source destination pair. Such a model will allow comparison of OR protocols. In the recent past, there have been some attempts to model the OR paradigm and compute the expected number of transmissions.

In [17], the authors present a discrete-time Markov chain (DTMC) model that represents a discrete phase-type distribution in which the last state is strictly an absorbing state. In the proposed Markov model, each state represents a forwarder node. The states are sequenced as the positions of the forwarders in the ordered list, with destination being the absorbing state. The model, given the strict forwarder priorities and the packet delivery probabilities, can compute retransmissions for a certain forwarders list using the following recursive equation:
E [ X i ] = 1 + l = 1 n i p il E [ X l ] 1 - p ii , i d .

Here, X i is a random variable that represent the number of transitions from state i till total absorption occurs. The variable p il denotes the probability of transition from state i to state l, with p ii being the probability of remaining in the same state i. The above equation is applicable to all the states except the absorbing state (destination node). As the destination node does not transmit any data packet, the absorbing state holds the equation E[ X d ] = 0. The main problem with this model is that, it assumes that all the nodes have knowledge of the packets received by the higher priority nodes, i.e., it does not consider duplicate retransmissions. Duplicate retransmissions occur in OR due to the failure in receiving updated acknowledgments by the lower priority forwarders. This mainly happens when the forwarder set is not strategically chosen. A lower priority node does not overhear transmission from the next higher priority forwarder.

In this section, we formulate an analytical framework for comparing OR protocols. In the remaining part of the paper, we call our model the binomial model, since it is mainly based on binomial distribution. The framework computes the expected number of retransmissions, including number of duplicate packets, given the prioritized forwarders list and the packet delivery probabilities between the forwarders.

4.1 The binomial model

Let V = { v 0 , v 1 , v 2 , , v i , , v m } be a ordered set of forwarder list with v0, the source node and v m , the destination node, being the lowest and the highest priority forwarders, respectively. Let a i j denote the PDR between two nodes v i and v j . To make the mathematical model simple, we assume that all the links are symmetrical that means a i j = a j i . Moreover, we assume that the PDRs of the links are constant during the period of delivering the whole batch of packets. It is worth mentioning that the end result of using different path loss or shadowing models to represent a channel is difference in packet losses. The ratio of received and dropped packets reflects the effects of channel properties of the underlying channel. In this work, rather than modeling the channel directly, we use PDRs to estimate the channel qualities. Since PDRs can be easily measured, results of the mathematical models can be validated in a realistic as well as simulated environment.

Suppose n(v i ) denote the number of packets received and δ(v i ) is the number of packets to be transmitted by node v i . The number of packets to be transmitted by a node is the difference between the number of packets it received from lower priority nodes and the number of packets for which acknowledgments are received from the higher priority nodes. Let a c k(v i ) denote the number of acknowledgments received by node v i . We can define δ(v i ) as
δ ( v i ) = n ( v i ) - ack ( v i ) .

In opportunistic routing, first turn to retransmit is given to the highest priority node. After this node finishes its transmission, the lower priority nodes are given chance one after another, on the basis of their priority with the source node being the last node to retransmit. This process is repeated till all packets are delivered to the destination node. We define round as the retransmission period starting from the highest priority forwarder to the end of transmission of the source node. To send a batch of packets, one or more number of rounds of retransmissions may be needed.

Let X ij be a random variable, to denote the expected number of packets received by node v j from the lower priority node v i with PDR a i j . The number packets successfully received (X ij ) may be anything from 0 to δ(v i ). We use binomial distribution [21] to derive the expected number of packets received by node v j from node v i . The binomial distribution is the discrete probability distribution of the number of successes in a sequence of n independent yes/no experiments, each of which yields success with probability a. In our case, each packet transmitted by v i is an experiment. It is a success with a probability a i j , if v j receives a packet successfully. Thus, the expected number of packets received by node v j from node v i can be calculated as
E [ X ij ] = k = 1 δ ( v i ) k.b ( k ; δ ( v i ) , a i j ) ,
where b ( k ; δ ( v i ) , a i j ) is the binomial distribution that gives the probability of receiving exactly k packets out of δ(v i ) transmitted. The total number of packets received by v j from all the lower priority nodes can be computed as
n t ( v j ) = n t - 1 ( v j ) + i = 0 j - 1 E [ X ij ] .

The first term in Equation 4 denotes the total number of packets received till the last round. The second term denotes the number of packets received in the current round t.

In OR, receiving only one packet from a forwarder is enough to receive all the acknowledgments from that node. The probability of receiving at least one packet by v j , out of δ t (vj+1) packets transmitted by vj+1, can be computed as 1 - ( 1 - a j j + 1 ) δ t ( v j + 1 ) . Using this expression, the number of acknowledgments can be formulated as
ack t ( v j ) = l = j + 1 m 1 - ( 1 - a j l ) δ t ( v l ) n t ( v l ) ,

where n t (v l ) is the number of packets received by v l in tth round.

As failures are independent in wireless channel, the set of packets held by a higher priority node may not be a subset of the set of packets held by lower priority nodes. In other words, it means out of the total number of acknowledgments received by a node v j (as shown in Equation 5) from its higher priority forwarders, some of the corresponding packets may not be in the buffer of v j . Thus, to compute the number of packets to be transmitted by a forwarder, we need to compute the set difference of the total number of packets received and total number of acknowledgments received. Let us define for a node v j , the set of acknowledgments corresponding to ack t (v j ), as A t (v j ). Similarly, let the set N t (v j ) denote the set of packets received corresponding to n t (v j ).

For all the nodes in the forwarder list, we can define the total number of retransmissions for a round t as
R t = i = 0 m | N t ( v i ) - A t ( v i ) | .
The above equation shows the sum of the transmissions performed by all the participating nodes in a certain round. Equation 6 can be extended to calculate total number of retransmissions needed to deliver a batch of packets as follows.
R total = t = 1 R t

Equation 7 can be used to compute the number of retransmissions for any OR protocol. The value for t is taken from 1 to , as the number of rounds to be taken to deliver the packets is not known in prior. This will not affect the model by getting into an infinite loop as the simulation will stop, when after some rounds, the number of packets transmitted becomes zero and the value of R total becomes constant. The values of the variables used in the equation can be computed using the Equations 4 and 5.

4.2 Validation of mathematical model

In order to test the accuracy of our mathematical model, we first implemented an OR protocol ExOR [6, 18, 20] in simulation framework and recorded the total number of transmissions for a particular network scenario.

4.2.1 Network model

We implement ExOR in the discrete event driven simulator EXata Cyber [22] and measure the results. The simulations are run with 100 nodes, randomly spread over an open area of 1,500 × 1,500 m2. The path loss model used is log-normal shadowing model [23]. This shadowing model includes the path loss and the random shadowing effects of an wireless channel that may occur over a large number of measurement locations. The nodes are configured to use the 802.11b specification in broadcast mode. This mode does not use the RTS/CTS mechanism. The data rate is fixed to 4 Mbps, as bit rate selection algorithms are not compatible with any broadcast-based routing protocol. We take the batch size to be of 100 packets, where each of the packets contain 1 kbyte of data. We assume the nodes to be static and no background traffic.

Experiments were performed for different network scenarios, with nodes being deployed randomly. The source and destination pair were chosen randomly with different shortest path distance. In the experiments, the hop counts considered varied from 1 through 14. The outcomes from same shortest path distances are then averaged to obtain the results. During the experiment, we recorded the forwarder lists and the PDRs between each pair of nodes which are required as inputs to the mathematical models. These values are then fed into the mathematical models, discrete-time Markov chain model[17] and our proposed binomial model. The expected number of transmissions for both the models were computed.

4.2.2 PDR measurements

To measure packet delivery ratio, each node broadcast measurement packets at regular intervals, which are received by all nodes in its range. We use broadcast, as unicast packets have MAC layer retransmissions, which will falsely portray the link qualities to be better. Each of these packets contain a packet number such that receiving nodes can recognize the packets they missed out. To make the PDR measurement more accurate, the size of the measurement packets is same as that of data packets, which is 1 kbyte in our case. Another important part is bit rate. As the packet error rate depends upon the bit rate used, the bit rate is kept constant (at 4 Mbps) during both PDR measurement as well as data packet transmission. The PDRs are computed using 500 measurement packets. In general, the overhead of PDR measurements in OR protocols is comparable to link state updates used in traditional proactive protocols [24].

4.2.3 Results

In this work, we implemented ExOR, but using any other OR protocol would make no difference on the result, since we use the same PDRs and forwarder list used by the OR protocol in the mathematical models. Figure 5 compares the three results obtained from simulation, the DTMC model, and binomial model. We can see from the figure that in general as the distance between source and destination increase, the number of transmissions also increase for all the three cases. From the figure, we can see that the binomial model gives more precise results over the DTMC model. The number of transmissions for the DTMC model is less than the simulation results. However, we also find scenarios where all the three results are similar, as in scenarios 1, 4, and 10. These are the cases that show scenarios where all the forwarders lie in a single path, and the inter-node communications (PDRs) are good. The explanation for these results is that the PDRs between adjacent forwarders are high, assuring the propagation of the acknowledgments to lower priority forwarders from higher priority forwarders. For this reason, as the knowledge of packet reception converges through all the forwarders, the chance of duplicate packet transmissions is very nominal.
Figure 5
Figure 5

Expected number of transmissions for different shortest path distances. The figure represents the comparison results of ExOR protocol using simulation, binomial model, and the DTMC model for the comparison metric expected number of transmissions.

The scenes where the nodes are not close to each other, that is, the PDRs between the nodes are not high (such as scenes 3, 7, 9, 14, etc. of Figure 5), we can see that the number of transmissions are significantly less in the case of the DTMC model. In this case, as the PDRs are less between the forwarders, acknowledgments may be lost. So, during instances where the acknowledgments do not reach the lower priority forwarders, duplicate retransmissions will occur. The DTMC model assumes that the acknowledgments are always propagated with a probability of 1; hence, it is unable to capture such duplicate transmissions. Therefore, for such cases, the number of transmissions predicted by the DTMC model is always less than the simulation results. On the other hand, the proposed binomial model considers the propagation of the acknowledgments through the forwarders, hence computation of the transmissions is more realistic.

Scenes 2, 6, 12, and 13 of Figure 5 depict those scenarios where the forwarder selection procedure selects nodes from divergent paths. In such scenarios, since two adjacent priority forwarders do not belong to a single path, the nodes are not in each others transmission range. This infers that information from the higher priority forwarder in one path is unlikely to propagate to the lower priority forwarders belonging to the other path. As a consequence, the lower priority nodes on the second path retransmit packets already transmitted by the other nodes in the first path, causing significant increase in the number of transmissions. The DTMC model do not consider such cases; hence, the number of transmission predicted by it is significantly less. We will look into more such scenarios in the following section. We find that our proposed binomial model closely follows the simulation results.

4.2.4 Duplicate packets

In Section 3, we explained how retransmissions can happen in opportunistic routing protocols. In this section, we provide experimental results to prove our claim. From the experiments conducted, we consider a scenario where the source (node 55) and destination (node 51) are two hops away, as shown in Figure 6. The paths to the destination formed by the selected forwarder set {55, 57, 12, 5, 15, 51} are shown with solid arrows. We can see that the pairs of adjacent priority forwarders {57, 12} and {5,15} are not in the communication range of one another. Initially, source node 55 forwards a batch of 100 packets which is received by both nodes 12 and 57. The forwarder nodes 12 and 57 receive 100 and 90 packets, respectively, and buffer them. Among the two, node 12 being the higher priority forwarder, it further forwards the packets but this transmission does not reach the lower priority node 57. Hence, node 57 again transmits the 90 packets in its buffer, resulting in 90 duplicate packets. Similarly, duplicate packets will again be generated for nodes 5 and 15, too.
Figure 6
Figure 6

Scenario depicting duplicate transmissions. Depicts an example scenario to show how duplicate packets can be generated if the forwarders are selected from divergent paths. Here, the paths through the node sets {12, 5} and {57, 15} are mutually disjoint.

The number of packets forwarded by each forwarder is shown in Figure 7. We can see that the number of packets transmitted by nodes 57 and 12 are more than the batch size. From Figure 6, we can see that there are two parallel paths to the destination: 55→12→5→51 and 55→57→15→51. The PDR of the links {12, 5} and {57, 15} is low. As a result, packet loss on these links is high, and so, nodes 12 and 57 have to (re)transmit more number of packets. In Figure 7, we see that nodes 5 and 15 transmit almost equal number of packets. Node 15, being the higher priority node, starts transmitting first. However, since node 5 is not in the transmission range of node 15, it is unable to get the acknowledgments. Node 5, therefore, waits for five packet durations and starts transmitting, before node 15 finishes its turn. So, the packets transmitted by node 5 are due to the non-existent link between the two nodes and are purely duplicates.
Figure 7
Figure 7

Number of transmissions per forwarder for ExOR. Shows the number of packets forwarded per forwarder obtained through simulation for the scenario shown in Figure 6.

The total number of transmissions for the above scenario, as obtained from simulation and as predicted by the binomial and DTMC model, is shown as scenario 2 in Figure 5. As explained earlier, the DTMC model does not consider the divergent paths into consideration; hence, it is not able to capture the retransmissions. Thus, the number of transmissions predicted by the DTMC model is significantly less than the simulation results. The binomial model considers the probability of receiving an acknowledgment as can be seen in Equation 5. Therefore, the number of transmissions predicted by the binomial model is very close to the simulation result. Such duplicate transmissions can be avoided if we ensure that adjacent forwarders are in the transmission range of one another.

5 Problem formulation and objectives

Let (V,) be a totally ordered set where the set V={v0,v1,…,v m } is the set of forwarders. The set V is a totally ordered set, sorted according to the increasing orders of node priority with source node v0 having the least priority and destination v m having the highest priority. With a view to order the nodes, we define as a function that assigns weights to nodes and links, where [ v] means the weight of node v and (u,v) means the weight of the link (u,v). The weight metric can be logical distances between nodes, hop counts to the destination, etc. The operator is used to compare the priorities among two nodes in terms of their weights given by the weight function. A node u is said to be preferred over v if [ u][ v]. We also define N(v i ) as the set of higher priority nodes which are in the transmission range of v i .

In this work, our aim is to compute the set V such that the number of retransmission is reduced. In Section 3, we have already shown that if the forwarders selected lie in divergent paths, then the number of retransmissions is increased due to duplicate retransmissions. If we ensure that all the adjacent forwarders are in the range of each other, then retransmissions will reduce. Mathematically this can be stated as,

Given: v j ,v k N(v i ),

where: [v k ][v j ][v i ]

then: { v j , v k } V

if: v k N(v j ).

This means if we have a node v i and two other nodes v j and v k in the transmission range of v i , then both can appear as the forwarders of v i , iff they are also in the transmission range of one another. Else, only one of them may appear as a forwarder.

6 Transmission-aware OR

In OR, there are three basic steps involved to select and prioritize the forwarders list.
  1. 1.

    Candidate list selection: From the set of nodes between source-destination pair, potential nodes, that is, nodes that can actually improve the performance of routing, are to be selected.

  2. 2.

    Forwarder set selection: From the set of candidate nodes, those nodes that will maximize the network objective are to be selected. At the end of this step, forwarders will be obtained.

  3. 3.

    Prioritization of the forwarders: The selected forwarders need to be prioritized which will decide their order of transmissions.


We encounter each step stated above and describe them individually. The main highlight of our proposed OR protocol is that, while selecting the forwarder list, we ensure that adjacent forwarders are in each others transmission range. Thus, we call our proposed approach transmission-aware OR ad hoc routing protocol (TOAR).

6.1 Candidate list selection

OR is basically a source-based routing protocol. The nodes periodically flood the link state of their neighbors using link state advertisement (LSA) packets. After the LSAs have been flooded, a source node will have map of the entire network. In order to route packet to a destination, the source node needs to find those intermediate routers which can forward packets toward the destination. These routers are then encoded in the packet headers as a forwarder list, and the packets are dispatched. The network map at the source node will have all possible paths to a destination. This is comparable to the topology table of EIGRP [25] which contain all routes to a destination. We view the entire set of paths from a source to destination as a tree rooted at the source and leave nodes as destination. We call such a tree as a full path tree.

Definition 1 (Full path tree)

A full path tree, for a given source destination node pair, is a tree consisting of all possible paths from source to the destination node. Source node is considered as the root, and all leaf nodes are the destination node.

The full path tree can be trivially built by starting with the source node (v s ) as root. Nodes in the set of neighboring nodes of (v s ) are selected as child. The process is repeated recursively for each child node until the destination node is reached. However, the full path tree does not ensure loop-free paths. Figure 8 represents the full path tree for the network topology shown in Figure 4. In Figure 8, if we follow the right sub-tree through v3, we can reach v1. However, from v1, there is a path to v3, as can be seen in the left sub-tree rooted at v0. Thus, the nodes v3 and v1 form a loop. Our aim was to remove such loops from the full path tree. Just like conventional routing algorithm [25] clears bad route from its topology table, we also need to discard the sub-paths that create loops. In Theorem 1, we give a necessary and sufficient condition to make the full path tree loop-free.
Figure 8
Figure 8

Full path tree for the scenario shown in Figure 4 with node v 0 as source and v 7 as destination. This figure shows the full path tree for the scenario shown in Figure 4 with node v0 as source and v7 as destination. All the possible paths are shown in the tree as the paths to the leaf nodes where all the leaf nodes denote the destination node.

Theorem 1. In a full path tree, if any two nodes do not appear in the sub-tree of one another, then the tree has loop free path.

Proof. Consider two nodes v i and v j such that v j appears in the sub-tree rooted at v i . Further, we also assume that v i appears in the sub-tree rooted at v j . If we follow the first path, we can arrive at v j , and since v i appears in the sub-tree rooted at v j , there will also be a path from v j to v i . Thus, the path between v j and v i forms a loop. □

A full path tree that satisfies Theorem 1 is called a candidate tree. It is so named because each node in the tree is a potential candidate for being a forwarder.

Definition 2 (Candidate tree). A candidate tree for a given source destination pair is a full path tree where the paths do not contain any routing loop.

Since our aim in this work was to reduce the number of retransmissions, we need to choose a metric for the weight function that measures efficiency in terms of successful packet delivery. One straight forward choice of such a weight function can be inverse of PDR, that is,
1 Packet delivery ratio .

We employ this weight function as our to assign weights to the nodes. In order to obtain the candidate tree from the full path tree, we apply Theorem 1 on the full path tree. The weight function we use here can be defined as [ u][ v][ u]≤[ v], which means the lower the weight, the higher the priority. The algorithm to obtain the candidate tree is shown in Algorithm 1.

Algorithm 1 Algorithm to construct a Candidate tree

The procedure starts from the leaf nodes and ends at the root node. Let T denote the full path tree and T.d e p t h be the depth of the full path tree T. The function h e i g h t(h) returns all nodes at level h. The source or root node (v0) is at level 0. The weight of the leaf nodes will have the lowest weights as they are the destination nodes themselves. Let us also denote M(v) as the candidate tree or a candidate sub-tree rooted at a node v. We define as an operator that merges two sub-trees to create a new one. The algorithm iteratively adds the child nodes to the new tree which are logically closer to the destination than their parents, as given in line 13 of the algorithm.

6.2 Selection and prioritization of the forwarders

Once the candidate tree containing the candidate nodes is prepared, we are in a position to select the potential forwarders to build the forwarder list that will finally participate in packet forwarding. For this purpose, we need to further prune the candidate tree to get a more simplified tree containing only the forwarder nodes.

In Section 4, we showed that if adjacent forwarders cannot listen to each others transmission, then the two forwarders are on separate paths. Such a scenario can increase the number of retransmissions. Our aim was to select the forwarders, such that there is at least one common path which includes all of them. The candidate tree constructed using Theorem 1 will give us the shortest path to the destination. However, in OR, the aim was not to select the shortest path but to select forwarders that move packets closest to the destination. Therefore, we need to select the forwarders from each hop such that the number of transmissions needed is minimized. At each hop, if the best forwarder is unable to receive packets, then other forwarders that receive the packets must help it by re-transmitting those packets. Nevertheless, in each hop, the highest priority forwarder, since it is closest to the destination among the other nodes in that hop, is clearly the best node to forward the packets. We call such nodes as primary forwarders. In [26], candidate nodes are also represented using OR tree, but such a tree does not allow lower priority nodes to be selected as backup forwarders.

Speaking in terms of the candidate tree, it means at each hop there must be exactly one primary forwarder, and zero or more secondary forwarders to backup transmission to that primary forwarder. We call such secondary forwarders as backup forwarders.

The number of backup forwarders to be selected per hop depends upon the improvement they offer in terms of weight for the current primary and its parent node duo.

Let v i , v j and v k be three nodes with priorities given as [v k ][v j ][v i ]. Let us also denote the delivery probability of a link (v i ,v j ) as a i j . If there exist a path P1=v i v k , then the forwarder list between v i and v k is {v i ,v k }. If there exist a second path P2=v i v j v k , then the following theorem holds a rule to select v j as a backup forwarder.

Theorem 2. Given three nodes v i , v j and v k , if there exist two paths P1=v i v k and P2=v i v j v k then adding v j as a backup forwarder to the forwarder list {v i ,v k } will increase the delivery probability to v k .

Proof. Let the delivery probability of the links (v i ,v j ), (v i ,v k ), and (v j ,v k ) be a i j , a i k and a j k , respectively. Then, the PDR to node v k such that it receives packet from v i either through path P1 or P2 is
P v j v i , v k = 1 - ( 1 - a i k ) ( 1 - a i j a j k ) ,

where P v j ( v i , v k ) is the delivery probability from v i to v k if the candidate node v j is added as backup forwarder. The PDRs will be non-zero since there exists path between the nodes. Hence, from Equation 9, we can see that adding v j in the forwarder list will increase the PDR to v k by a factor equivalent to the second term. □

Our aim was to choose zero or more backup forwarders between each pair of adjacent primary forwarders such that the PDR improves. The weight function () used for selecting candidate nodes will not work here as it represents the weight of a node through the shortest path. Though this weight function does not reflect the increment in probability of forwarding a packet in presence of backup forwarders, it is needed to prioritize the selected forwarders. Let us assume node v i has two child nodes v j and v k , where v k also appears as a child of v j as shown in Figure 9. Assuming v i and v k are primary forwarders, then v j can act as a backup forwarder. Including v j as a (backup) forwarder will improve the PDR of v i , or in other words, its weight will be decreased. However, if we keep on adding more forwarders between v i and v k , the weight of v i may get decreased to such an extent that its weight becomes less than its child node. This is a violation of rule since, in a candidate tree, the child nodes should have less weight (higher priority) than their parents. Thus, we need to preserve the order of the candidate nodes with the help of the weight function .
Figure 9
Figure 9

Example of primary and back-up forwarder selection. The figure depicts an example on how to select primary and backup forwarders from the candidate tree using Theorem 2. Here, node v i tries to select node v k as primary and node v j as backup forwarders.

To measure the improvement in PDR due to the introduction of backup forwarders, we introduce effective weights e f f . The effective weight of the path from v i to v k after incorporating v j as a (backup) forwarder can be directly computed from Theorem 2 as shown below:
v j eff ( v i , v k ) = 1 1 - ( 1 - 1 ( v i , v k ) ) ( 1 - 1 ( v i , v j ) ( v j , v k ) ) = 1 1 - C ( 1 - 1 ( v i , v j ) ( v j , v k ) ) .
In Equation 10, since the primary forwarders v i and v k are fixed, we denote the term ( 1 - 1 ( v i , v k ) ) with a constant C. The possible effective weight of node v i using v k as primary and v j as a backup forwarder, v j eff v i , can be calculated in the same manner as we computed the weights of the nodes.
v j eff v i = v j eff ( v i , v k ) + eff v k .
The actual effective weight of a node will be computed by considering all its child nodes and possible backup nodes. For example, in Figure 8, node v i has two child nodes v j and v k . The effective weight of v i will be computed by considering the two child nodes as possible primary forwarders with no backup nodes; or consider one as a primary forwarder and the other as a backup forwarder (if possible). Thus, in this example, there are three possible options for node v i to choose from. Among these three possible weights, the one having the least value is selected as the effective weight of v j as can be seen from the following equation.
eff v i = MIN ϕ eff ( v i , v k ) + eff v k , v j eff ( v i , v k ) + eff v k , ϕ eff ( v i , v j ) + eff v j .
The forwarder set of node v i is then prepared by adding the node itself, the backup forwarder v j and the current forwarder set. If the nodes v j and v k are selected as next hop forwarders then FWD (v i ), the forwarder set of v i can be built as follows.
FWD ( v i ) = { v i } { v j } FWD ( v k ) .

This forwarder set is then prioritized using the weight function that gives a proper ordering of the forwarders along the destination node, where highest priority node has the lowest weight.

The above procedure can be generalized for large candidate trees. In Equation 10, we assumed that only one node is available as backup forwarder. However, more than one node maybe available as backup forwarders. In such a case, we first order the nodes according to their weights. Each of them is then examined, by adding them as backup node starting with the one having the highest priority and check the improvement in the effective weight of the parent node. Let us assume R as such a set of backup forwarders where R = { v j 1 v j n } . Using Equation 10, the effective link weight R eff(v i ,v k ) for this set of backup forwarders can now be written as
R eff ( v i , v k ) = 1 1 - C m = 1 n ( 1 - 1 ( v i , v j m ) ( v j m , v k ) ) .

Using this effective link weight, the effective weight R eff[v i ] can be computed by using Equation 12. The computation of effective weight of the nodes and the forwarder set follow a bottom-up approach. The leaf nodes are assigned effective weight of 1. The effective weight of the next higher nodes are then computed using the above equation. The process continues recursively until we reach the node at height 0, i.e., the root node. At this point, we have the forwarder set for the root (source) node, and the process terminates.

As there may be zero or more backup nodes, the size of the final forwarder list mainly depends upon the backup nodes selected in the list. This leads us to the need of limiting the number of nodes selected as backup forwarders. A node is considered as a possible backup, only if it offers a certain amount of improvement in the effective weight. In this work, we add a node as a possible backup forwarder if it only offers a 10% improvement. This threshold value has been taken in line with ExOR, where a node is included as a forwarder, if the number of packets expected to be forwarded by that node is 10% or more. Size of the backup forwarder list can be managed by regulating the threshold value. This cut-off process ensures that, in network scenarios where nodes are dense, the number of backup nodes do not become unmanageable.

In the example shown in Figure 10, we show how the threshold value controls the number of forwarders selected in the forwarder list. The figure shows a scenario where source v0 and destination v5 have four equally good candidate nodes. The PDRs of the links are marked alongside in the figure. Further, we assume that the PDRs of all the links between these candidate nodes are 1. As all the candidate nodes have equal weight of 2 ( 1 0.5 ), v0 may select any of them as the primary forwarder. Let v1 be the selected primary forwarder, weight of v0 becomes 5 (2+2+1). Now, the source node will try to reduce its effective weight by adding backup nodes. If we add node v2 to the list, the new weight of the link v0 to node v1 will become 1.3333, ( 1 1 - ( 1 - 0.5 ) ( 1 - 0.5 1 ) = 1 0.75 ). Since there is an improvement of more than 10%, v2 will be added as a backup forwarder. Similarly, adding v3 as a backup node will further reduce the weight to 1.1428 ( 1 1 - ( 1 - 0.75 ) ( 1 - 0.5 1 ) = 1 0.875 ). At this point, if we consider adding v4 as a backup node, the new reduced weight of link v0 to v1 will be 1.0667. Adding v4 does not give an improvement by 10%; hence, it is not eligible to become a backup forwarder and the process of backup forwarder selection terminates.
Figure 10
Figure 10

A sample scenario with four candidate nodes between source v 0 and destination v 5 . The figure shows a sample network where source v0 and destination v5 have four candidate nodes between them, namely v1, v2, v3, and v4. The scenario is used to demonstrate backup forwarder selection procedure.

Algorithm 2 shows the procedure for forwarder list selection. The function s o r t(c h i l d(v))sorts the child nodes of node v in increasing order of their weight . The variable Thresh is the minimum improvement a forwarder set must contribute to the weight to replace the previous set. This procedure computes the forwarder list for each node to the destination in the tree and finally returns the root (source) node’s forwarder list as FWD (v0). Let us now check the worst case time complexity of selecting the next hop forwarders for node v i . Let x be the size of the set N(v i )(refer to Section 5), that is, |N(v i )|=x. As the algorithm searches for each node v j in the set N(v i ) (v j N(v i ),j=1…x) and tries to add all the lower priority nodes in the set one by one (vj-1,vj-2,…,v1) in the sorted order the worst case time complexity of the process becomes O(x2).

Algorithm 2 Algorithm to create forwarder list

6.3 Example: creating forwarder list

Continuing with our example, the candidate tree shown in Figure 11 is obtained by applying Algorithm 1 to the full path tree of Figure 8. Next, we show how Algorithm 2 can be applied to this candidate tree to create the forwarder list. The computed effective weights for the nodes of the candidate tree is shown in Figure 12. In this figure, all the nodes are labeled with their calculated effective weights except the leaves for which the weights are always 1. The weights of the links are also given. In the case of a node with a single child, the effective weight is same as weight, and the computation is straight forward. As we start constructing the forwarder list bottom-up, the forwarder lists of each intermediate node is shown in braces. Consider the right sub-tree rooted at v3. Node v7, being the leaf element, has effective weight 1, and node v6, as it has only one child, computes its weight as 2.3. In similar manner, node v4 (child of node v3) calculates its effective weight as 3.5. Node v3 has two children v4 and v6. Although the child v6 has lower weight, node v3 has two routes to v6, one directly and the other through v4. The algorithm will try to couple v4 with v6 which will reduce the weight to node v6 from v3 to
1 1 - ( 1 - 1 1.3 ) ( 1 - 1 1.3 1.2 ) 1.09 ,
resulting in the weight of v3 as 3.39 (2.3+1.09). If node v3 had considered node v6 or v4 separately, its weight would have been either 3.6 or 4.8. Since the algorithm considers both the node as forwarders, the resulting forwarder list of node v3 is computed as {v3,v4,v6,v7}. Continuing in a similar manner, the three sub-trees of the the source node (v0) rooted at v1, v2, and v3 get the effective weight 4.49, 3.5, and 3.39, respectively. The sub-tree rooted at v3 has the lowest effective weight, and there are two paths to v3 from v0. The weight of the link to node v3 through v1 is computed as
1 1 - ( 1 - 1 1.3 ) ( 1 - 1 1.2 1.1 ) 1.06 .
The effective weight of v0, considering the sub-tree v3 as its forwarder and the path to v3 through v1, is 3.39+1.06=4.45. Thus, the forwarder list of the source node becomes {v0,v1,v3,v4,v6,v7}. Note that, if we had used the conventional single path metric (e.g., ETX) to build the forwarder list, then node v0 would have selected the the sub-tree rooted at node v2 which has the minimum ETX weight 3.5 (node v1 and v3 has the weights 4.7 and 3.6, respectively). As this path does not offer much node availability, selecting the path will not be a very good choice.
Figure 11
Figure 11

Candidate tree for the scenario shown in Figure 4 with node v 0 as source and v 7 as destination. The figure shows the candidate tree obtained from the full path tree in Figure 8 by applying Algorithm 1. The tree contains only the paths that do not form a routing loop.

Figure 12
Figure 12

Effective weights and selection procedure for the Candidate tree in Figure 11. This figure shows the computation of effective weights and construction of forwarder lists for the candidate tree in Figure 11 using Algorithm 2. The computed effective weights as well as the constructed forwarder lists are marked along with the root and the intermediate nodes in the tree.

7 Performance evaluation

For OR protocols to be useful, the average number of transmissions per packet must be lower as compared to conventional shortest path routing protocols. The experiments have been performed keeping two objectives in mind. First, we wanted to prove the performance improvements of OR protocols in general as compared to traditional shortest path first (SPF) routing protocols. The SPF protocol that we consider is dynamic source routing (DSR) [1]. Second, we wanted to show that our forwarder selection procedure (TOAR) results in overall improvement as compared to existing OR protocol like ExOR. The protocols were implemented in EXata Cyber simulation framework [22].

7.1 Network description

We used ExOR as the base OR protocol for our study to compare our protocol. We implemented ExOR, TOAR, and a traditional shortest path protocol DSR [1] in EXata Cyber network simulator for comparison and analysis.

As described in Section 4.2, we take 100 nodes that are scattered over an open play ground of 1,500 × 1,500 m2 area. The path loss model considered is log-normal shadowing model. The nodes are assumed to be using 802.11b specification in broadcast mode. A fixed data rate of 4 Mbps is considered.

In our implementation, each node broadcasts a probe packet per second. Using the information of the number of probes successfully received over time, the packet delivery ratios of the links are measured. As these PDR information need to converge over the network for successful forwarder selection, we allow 500 s of warm-up time. After the warm-up time, the source node tries to send 100 kbytes of data to the destination as a batch of 100 packets, each of which contain 1 kbyte of data. The measurements are taken at the time of data transmission which are compared and analysed next.

7.2 Measurements

The experiments were performed for different network scenarios. The performance metrics considered were number of transmissions required, size of forwarders list, average number of next hop nodes per forwarder, and goodput. Our choice for these metrics is explained in the sections below.

7.2.1 Number of transmissions

We computed the number of transmissions, for different source-destination pairs, with different shortest path distances between them. In Figure 13, we show the result for the protocols ExOR, TOAR, and DSR. The reason for choosing DSR was that we want to compare the efficiency of OR and shortest path first routing (SPF) protocols. Moreover, DSR-like OR protocols is a source routing protocol.
Figure 13
Figure 13

Expected number of transmissions for different shortest path distances and scenarios. The figure shows the simulation results of comparison of the three protocols ExOR, TOAR, and DSR in terms of expected number of transmissions. The figure is plotted for source-destination pairs with different shortest path distances (hop-counts).

From the figure, we see that in the case of single-hop distances, the number of transmissions in all the three protocols are similar, and as the distance increases, the OR protocols outperform DSR. In general, we find that using OR protocols, there is on average a 32% reduction in the number of transmissions. In DSR, the intermediate nodes forward packets only to the next forwarder as listed in the shortest path. In such cases, those nodes that are not the next hop node discard the packets even if it was successfully received. This is true for all SPF routing protocols. Hence, these protocols are unable to take advantage of the stochastic nature of wireless networks, which is considered in OR protocols to improve performance. Another drawback in SPF is that when a packet is received in error by an intermediate node, the packet is retransmitted from the source increasing the number of transmissions. In OR protocols, the lost packet is retransmitted by the forwarder closest to the destination that buffered the packet successfully.

Next, if we compare the results of our proposed protocol TOAR with ExOR, we see a performance improvement of around 20% to 30%. The main ground of performance improvement in our protocol is mainly due to the forwarder set selection procedure. ExOR simply selects the set of forwarders by running a simulation with the full set of candidates and select those nodes that forward at least 10% of the packets. As a result, there is a high probability that the protocol select nodes from different path that are mutually divergent. Hence, duplicate packets generated will be higher. On the other hand, TOAR ensures that a forwarder is in the communication range of its next higher and lower priority forwarders. Such a selection strategy improves the chances of successful propagation of acknowledgements to the lower priority forwarders. As a consequence, the expected number of duplicate packet transmissions is reduced. Moreover, this calculated selection procedure reduces the chance of improper forwarder set selection leads to a smaller forwarder set size, as will be seen in the next section.

7.2.2 Number of selected forwarders

Another important metric for comparison of OR protocols is number of selected forwarders. A huge and tactically selected forwarder list may improve the performance, in terms of number of transmission required by increasing node availability for each forwarder. However, there are two disadvantages. Firstly, a large forwarder list will complicate the coordination among the nodes which will affect the throughput of the system. Secondly, OR protocols being source routing the packet header overhead will be high. The aim of OR protocols must be to select a small forwarder list yet maintain enough node availability for delivering the packets.

In Figure 14, we compare the forwarder list size for different source destination pairs. From the figure, we see that the number of forwarders selected by ExOR is generally higher than that of TOAR. On an average, TOAR selects about 25% less number of forwarders than ExOR. In a few cases, we observe that the selected number of forwarders in both the protocols are comparable. On further examination, we found that these are the cases where path availability is scarce and both the protocols are forced to select the same set of nodes. In the remaining cases where the number of forwarder list size is greater for ExOR, if we look at their corresponding number of transmissions in Figure 13, we also find it to be higher for ExOR. These observation prove our conjecture that ExOR selects nodes from different and disjoint paths.
Figure 14
Figure 14

Number of selected forwarders for different shortest path distances and scenarios. This figure shows the simulation results of comparison of the two protocols ExOR and TOAR in terms of the number of selected forwarders. The figure is plotted for source-destination pairs with different shortest path distances (hop-counts).

7.2.3 Number of next hop nodes per forwarder

To evaluate and compare the quality of the different forwarder list, we use the comparison metric average out-degree, which is the average number of next hop forwarders available per forwarder. In OR, more number of next hop forwarders mean that the packets have more chance to move forward toward the destination at each transmission. A higher value in this evaluation will mean a better forwarder list with better node availability.

We depict the results of this comparison in Figure 15. We can observe from the figure that in the case of TOAR out-degree per forwarder is higher than ExOR for all the scenarios. This improvement is in spite of the fact that TOAR has a forwarder list of smaller size. Although ExOR has a larger forwarder list, it does not consider the link qualities between forwarders; hence, it has a smaller out-degree per forwarder.
Figure 15
Figure 15

Average number of out-degree per forwarder for different shortest path distances and scenarios. This figure shows the simulation results of comparison of the two protocols ExOR and TOAR in terms of average number of out-degree per forwarder, that is, average number of next hop nodes available per forwarders. The figure is plotted for source-destination pairs with different shortest path distances (hop-counts).

7.2.4 Improvement in goodput

Throughput is an effective evaluation technique for most routing protocol. It measures the total number of bytes transferred including protocol overheads and retransmissions. However, in OR protocols, the overhead in the packet header (control information) is large and non-negligible. Therefore, a better way to compare OR protocols is to measure the number of data bits transferred per second (goodput).

The average goodputs of ExOR, TOAR, and DSR for the scenarios given in Figure 13 are shown in Figure 16. From the figure, we can see that our protocol outperforms ExOR by 25% to 30% and DSR by 50% to 60%. The scheduling scheme used in TOAR is same as that of ExOR. The improvement in goodput is mainly due to two reasons. Firstly, as the number of transmissions needed to deliver packets is less in case of TOAR, the total time required for completion of delivery is also reduced. Secondly, due to our forwarder selection strategy, each pair of forwarders in the list has forward paths (path toward destination) between them. Thus, coordination between the forwarders is simpler.
Figure 16
Figure 16

Goodputs of ExOR, TOAR, and DSR for different shortest path distances and scenarios. The figure shows the simulation results of comparison of the three protocols ExOR, TOAR, and DSR in terms of goodput. The figure is plotted for source-destination pairs with different shortest path distances (hop-counts).

In DSR, the main reason of decrease in goodput is due to the increase in the number of transmissions, as can be seen from Figure 13. More number of packet transmissions mean more time in packet delivery. Secondly, when a packet is not received by an intended intermediate node, the sender waits for a certain amount of time before retransmitting the packet again. This waiting time increases the delivery time further over the number of transmissions.

8 Conclusions

In this paper, we first proposed a mathematical model for OR protocol that can be used to study and analyse the protocols in terms of expected number of transmissions to deliver packets. Using this model, we studied classical OR protocols like ExOR and examined the cause of duplicate packet transmissions. We found that existing OR routing models assumed the protocol to be ideal in the sense that there were no duplicate packet transmissions. Our analysis indicated that duplicate packet transmissions occur if a lower priority forwarder cannot hear the transmission of its adjacent higher priority forwarder.

Based on our mathematical analysis, we proposed TOAR, transmission-aware opportunistic ad hoc routing protocol. The goal of our proposed OR protocol is to forward packets closest to the destination during each transmission as well as minimize the duplicate transmissions. The primary steps in TOAR are (1) select the potential nodes that can act as forwarders (candidate nodes); (2) from among the candidate nodes, select the actual forwarders such that network objective function is maximized, and (3) prioritize the forwarders. TOAR performs all these operations by constructing a full path tree and systematically pruning nodes of the tree. As our proposed model considers the number of duplicate packets generated, the results are more realistic. Empirical results show that TOAR significantly reduces the number of duplicate transmissions, and at the same time, the number of forwarders selected is small. The efficient selection of forwarders also results in better goodput of TOAR.

In ad hoc networks, since nodes can be mobile, in the future, we would like to consider node mobility during forwarder selection. Ad hoc networks are usually deployed in energy constrained scenarios, thus another important parameter that needs to considered is the power level of the nodes.


Authors’ Affiliations

Department of Computer Science and Engineering, Indian Institute of Technology Patna, Patna, 800013, India


  1. Johnson DB, Maltzand DA: Dynamic source routing in ad hoc wireless networks. Mobile Comput 1996, 353(5):153-181.View ArticleGoogle Scholar
  2. Perkins CE, Bhagwat P: Highly dynamic destination-sequenced distance-vector routing DSDV for mobile computers. SIGCOMM Comput. Commun. Rev 1994, 24(4):234-244.View ArticleGoogle Scholar
  3. Perkins CE, Belding-Royer E: Ad hoc on-demand distance vector (AODV) routing. IETF Netw. Working Group, RFC 3561 1994. . Accessed 10 Dec 2012 RFC 3561 1994. . Accessed 10 Dec 2012
  4. T Clausen P, Jacquet P: Optimized link state routing protocol (OLSR). IETF Netw. Working Group, RFC 3626 2003. . Accessed 10 Dec 2012 RFC 3626 2003. . Accessed 10 Dec 2012
  5. Mazumdar AP, Sairam AS: Opportunistic routing: opportunities and challenges. In Proceedings of the International Conference on Network, Communication and Computing. New Delhi; 19–20 March 2011:191-195.Google Scholar
  6. Biswas S, Morris R: ExOR: opportunistic multi-hop routing for wireless networks. SIGCOMM Comput. Commun. Rev 2005, 35(4):133-144.View ArticleGoogle Scholar
  7. Couto DD, Aguayo D, Bicket J, Morris R: A high-throughput path metric for multi-hop wireless routing. In Proceedings of the ACM 9th Annual International Conference on Mobile Computing and Networking (MobiCom '03). San Diego; 14–19 Sept 2003:134-146.View ArticleGoogle Scholar
  8. Chachulski S, Jennings M, Katti S, Katabi D: Trading structure for randomness in wireless opportunistic routing. SIGCOMM Comput. Commun. Rev 2007, 37(4):169-180.View ArticleGoogle Scholar
  9. Mao X, Tang S, Xu X, Li XY, Ma H: Energy-efficient opportunistic routing in wireless sensor networks. IEEE Trans. Parallel Distributed Syst 2011, 22(11):1934-1942.View ArticleGoogle Scholar
  10. Wu J, Lu M, Li F: Utility-based opportunistic routing in multi-hop wireless networks. In Proceedings of the IEEE Computer Society 1st International Conference Simulation Tools and Techniques for Communications, Networks and Systems. Marseille; 03–07 March 2008:470-477.Google Scholar
  11. Zorzi M, Rao RR: Geographic random forwarding (GeRaF) for ad hoc and sensor networks: multi-hop performance. IEEE Trans. Mobile Comput 2003, 2(4):337-348.View ArticleGoogle Scholar
  12. Kim J, Ravindran B: Opportunistic real-time routing in multi-hop wireless sensor networks. In Proceedings of the ACM Symposium on Applied Computing 2009 (SAC ’09). Honolulu; 9–12 March 2009:2197-2201.View ArticleGoogle Scholar
  13. Yuan Y, Yang H, Wong S, Lu S, Arbaugh W: ROMER: Resilient opportunistic mesh routing for wireless mesh networks. In Proceedings of the IEEE WiMesh 2005. Santa Clara; 26 Sept 2005.Google Scholar
  14. Rozner E, Seshadri J, Mehta Y, Qiu L: SOAR: simple opportunistic adaptive routing protocol for wireless mesh networks. IEEE Trans. Mobile Comput 2009, 8(12):1622-1635.View ArticleGoogle Scholar
  15. Dubois-Ferriere H, Grossglauser M, Vetterli M: Valuable detours: least-cost anypath routing. IEEE/ACM Trans. Netw 2011, 19(2):333-346.View ArticleGoogle Scholar
  16. Alspach BR, Hell P, Miller DJ: Algorithmic Aspects of Combinatorics. Amsterdam: North-Holland; 1978.Google Scholar
  17. Darehshoorzadeh A, Cerda-Alabern L, Pla V: Modeling and comparison of candidate selection algorithms in opportunistic routing. Comput. Netw 2011, 55(13):2886-2898.View ArticleGoogle Scholar
  18. Biswas SZ: Opportunistic routing in multi-hop wireless networks. PhD thesis. Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science 2005Google Scholar
  19. Mazumdar AP, Sairam AS: On performance modeling of ad hoc opportunistic routing protocols. In Routing in Opportunistic Networks. Edited by: Woungang I, Dhurandher SK, Anpalagan A, Vasilakos AV. New York: Springer; 2013:223-250.View ArticleGoogle Scholar
  20. Biswas S, Morris R: Opportunistic routing in multi-hop wireless networks. SIGCOMM Comput. Commun. Rev 2004, 34: 69-74.View ArticleGoogle Scholar
  21. Feller W: An Introduction to Probability Theory and its Applications. Hoboken: John Wiley & Sons, Inc.; 1968.Google Scholar
  22. EXata + Cyber SCALABLE Network Technologies . Accessed 25 Sept 2013
  23. Coulson AJ, Williamson AG, Vaughan RG: A statistical basis for lognormal shadowing effects in multipath fading channels. IEEE Trans. Commun 1998, 46(4):494-502.View ArticleGoogle Scholar
  24. Lee PPC, Misra V, Rubenstein D: On the robustness of wireless opportunistic routing toward inaccurate link-level measurements. In Proceedings of the 2nd international conference on Communication systems and Networks (COMSNETS’10). Bangalore; 5–9 Jan 2010:337-346.Google Scholar
  25. Durairaj V, Kalla P: Enhanced interior gateway routing protocol, Cisco white paper. In Proceedings of the 8th International Conference on Theory and Applications of Satisfiability Testing (SAT 2005). St. Andrews; 19–23 June 2005:415-422.Google Scholar
  26. Mazumdar AP, Sairam AS: PBFS: a technique to select forwarders in Opportunistic Routing. In Proceedings of the TENCON 2011 - 2011 IEEE Region 10 Conference. Bali; 21–24 Nov 2011:149-153.View ArticleGoogle Scholar


© Mazumdar and Sairam; licensee Springer. 2013

This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.