In this section, we describe energy-efficient and reliable multipath routing using opportunistic routing to satisfy the required packet delivery ratio in long-hop WSNs. The proposed scheme can be largely categorized as a bifurcation decision, bifurcation transmission, and exceptional handling process.
3.1. Overview
In this section, we present the basic operation mechanism of the proposed routing protocol. The nodes are deployed over a field, and they could know a time
T that has elapsed since the operation of a node began. Each node is aware of its own location by GPS or other techniques and knows the location of the destination. Moreover, each node keeps information about the location of its one-hop neighbor nodes by beaconing. The beacon interval
is predetermined before network deployment according to the requirement of the applications. As shown in
Figure 1, a packet from a source node is transferred to the destination performing path branching and merging on the intermediate nodes. The source and each intermediate node predict the packet delivery ratio from itself to the destination with opportunistic routing, firstly. If the predicted packet delivery ratio is lower than the required packet delivery ratio, the node calculates the number of paths and performs path bifurcation to satisfy the required packet delivery ratio (see more details in
Section 3.2). In
Figure 1, the nodes with diagonals perform the path bifurcation. If the node could satisfy the required packet delivery ratio without path bifurcation, the node transmits the packet based on opportunistic routing only (a white node on the transport path in
Figure 1). As the nodes receive packets through opportunistic routing, they should compete to determine the transmitting node. In this process, each node starts a timer according to the distance between itself to destination. The shorter the distance, the shorter the duration of the timer. The node where the timer is expired transmits a packet, and its competitors quit the packet transmission process if a sufficient number of paths have been constructed (see more details in
Section 3.3). Unfortunately, as transfers are by opportunistic routing, the path merger problem could occur (a black node on the transport path in
Figure 1). In this case, assigned packet delivery ratios on each path would be merged and it leads to degradation of the overall packet delivery ratio required by the source node. To address this issue, the node aggregates the assigned packet delivery ratio from each parent node and exploits the aggregated packet delivery ratio when it transmit the packet to its destination (see more details in
Section 3.4).
3.2. Multiple Path Bifurcation Decision Process
In this section, we describe the path bifurcation decision process to determine the number of paths. Algorithm 1 describes the pseudocode for the bifurcation decision process at an intermediate node. The process proceeds as follows: (1) predict the packet delivery ratio, (2) decide whether to perform the bifurcation, and (3) calculate the number of paths. is the link success ratio to node n, and k is the number of neighbors that are located closer to the destination compared with the intermediate node.
Algorithm 1 Pseudocode for the bifurcation decision process at an intermediate node i |
- 1:
Input: ← required packet delivery ratio, ← the number of neighbors - 2:
Output: n ← the number of paths(default = 1) - 3:
- 4:
▹ link reliability by opportunistic routing - 5:
= ▹ expected hop-count from itself to the destination - 6:
= ▹ expected packet delivery ratio - 7:
- 8:
ifthen ▹ bifurcation do not require - 9:
return n - 10:
end if - 11:
- 12:
whiledo ▹ bifurcation required - 13:
n = n+1 - 14:
= ▹ when n of nodes is selected by opportunistic routing - 15:
end while - 16:
- 17:
return n
|
Step 1 (lines 4–6): First, all nodes can measure the link quality of each other through beacon message exchange before data transmission. Each node knows the transmission cycle of beacon messages; the link quality is calculated through the number of received beacon messages from each neighbor node over some time. For example, if the transmission cycle of beacon message is 1 second and an intermediate
i receives 80 beacon messages for 100 seconds from a neighbor node
j, the link quality
is 80%. That is, the link quality
could be computed as follows:
where (
1),
is a number of received beacon message and
T and
are simulation time and beacon duration, respectively.
Based on the measurements, an intermediate node can acquire the link quality to each neighbor node and forecast the link reliability based on opportunistic routing as (line 4). Let r be the radius of the radio range and be the distance from a to b. The intermediate node calculates expected number of hop counts from itself to the destination as (line 5). Using the probability and the expected number of hop counts , the intermediate node can obtain the expected packet delivery ratio () given by (line 6).
Step 2 (lines 8–10): After predicting the packet delivery ratio, the intermediate node compares with the required packet delivery ratio (). If the is greater than , the intermediate node decides whether path bifurcation is required and returns n (lines 8–10).
Step 3 (lines 12–17): However, if is less than , the intermediate node decides that path bifurcation should be performed to improve (line 12). The intermediate node increases n by 1 and recalculates (lines 13–14). When the intermediate node determines the number of nodes required to satisfy the condition that is greater than , the intermediate node can find the number of paths, n, to satisfy and returns n (line 17).
However, during this process the issue of whether a neighbor node not realizing a packet transmission of the other neighbor nodes may arise. That is, if the distance between a pair of neighbor nodes of the intermediate node is longer than the transmission radius of the sensor, they may not recognize the transmission of the other, causing excessive bifurcation without timer termination.
Figure 2 shows the node selection problem. When the intermediate node,
S, broadcasts the packet to its neighbor nodes, the neighbor nodes start the timer to broadcast the packet. Suppose that a timer of node 1 expires when the number of calculated paths is one. Node 1 tries to broadcast the packet, and the other neighbor nodes terminate their timers when they receive the packet of node 1. However, nodes 4 and 5 are located outside the transmission range of node 1. Thus, nodes 4 and 5 cannot overhear the packet of node 1 and the timer does not terminate. Finally, nodes 4 or 5 broadcast the packet when their timers have expired. This phenomenon causes excessive bifurcation.
To solve this problem, the intermediate node calculates a neighbor set that selects the maximum number of neighbors. The nodes in the set should be located within a communication radius of each other. That is, the node can communicate with any node in the set. To calculate the neighbor set, the intermediate node calculates the center point of all of the neighbor nodes and excludes the farthest node from the center point. The intermediate node then measures the distance between the farthest pair among the neighbor nodes. If the measured distance is less than the transmission radius, the neighbor set calculation is completed. However, if the distance is greater than the radius, the abovementioned process is repeated until the proper neighbor set is found. Through this process, the intermediate node can find the proper neighbor set in which all of the nodes are separated by the communication radius. As shown in
Figure 2, the source
S calculates the center point
C of all of the neighbor nodes. The source node excludes node 1 that is the farthest from
C among the neighbor set. The source node measures whether the two most distant neighbors of the remaining neighbors, nodes 2 and 5, are within the communication radius of each other. As the distance is shorter than the transmission radius
r, nodes 2–5 are located within one communication radius of each other. The source node
S forms a neighbor set consisting of nodes 2–5. Finally, as the node
S broadcasts the packet to the formed neighbor set, opportunistic routing could avoid the abovementioned problem.
3.3. Bifurcation Transmission Process Based on Opportunistic Routing
After calculating the number of paths through the path bifurcation decision process, the intermediate node transmits the packet to the destination. In this section, we explain the bifurcation transmission process for a reliable packet transmission. Existing opportunistic routing provides a transmission opportunity to only one neighbor node. However, the proposed scheme provides a transmission opportunity to the same number of neighbor nodes as the number of paths determined in the path branch decision process. To grant an opportunity to a number of neighbors, the intermediate node records the number of paths in the packet. The neighbor nodes can know how many neighbors will be selected. Algorithm 2 describes the bifurcation transmission process to transmit the packet as many as the number of paths from the point of view the receiver. The process consists of two cases: (1) expiring timer and (2) receiving a number of transmissions from other competitors. If the intermediate node decides to bifurcate to
n paths, the intermediate node records the bifurcation number
n in the packet and broadcasts it to the neighbor nodes (line 1). The timer of the neighbor nodes that received the packet would expire sequentially depending on the distance from itself,
j, to the destination of the opportunistic routing (line 7). The waiting time
t is calculated as follow. Each neighbor node
j receives a message from intermediate node
i and could predict the distance to the destination and the expected number of hop counts. The node
j divides the distance by the expected number of hop counts and exploits the result as a criterion for waiting time. For example, if the distance from arbitrary node
j to the destination is 500 m and the expected number of hop counts is 5, the waiting time for node
j could be 100 ms. That is, the waiting time
of node
j could be computed as follows:
where
is a distance between
j to the destination and
is the number of expected hop counts from
j to the destination as
.
k is exploited to modulate the time duration according to node specifications, network congestion, and various points of consideration for requirements. A smaller
k value leads to a shorter delay to a transmit packet, while a larger
k value could mitigate network congestion.
Case 1 (lines 9–14): Suppose a timer of an arbitrary node, j, is expired (line 9); then, the node calculates the number of paths, , by Algorithm 1 (line 10) and inserts into the packet (line 11). The intermediate node, j, then broadcasts the packet to its neighbor nodes (line 12) and quits the competition process (line 13).
Case 2 (lines 15–22): Unlike case 1, node j could receive packets from other competitors before the timer expires (line 15). In this case, node j counts the number of transmissions overhearing h (line 16). If h is greater than n (line 17), then the node j realizes that a sufficient number of paths have been constructed through other competitors. Thus, node j terminates the timer T (line 18) and drops the packet (line 19) to prevent unnecessary bifurcation.
Algorithm 2 Pseudocode for the receiver-based transport competition process at neighbor node j |
- 1:
Input: ← received packet from the intermediate node i - 2:
- 3:
← the packet to transmit at node j - 4:
h ← the number of overhearing (default = 0) - 5:
- 6:
n = GetNumberofPaths() ▹ extract the number of paths n from the packet - 7:
StartTimer(T) ▹ timer for waiting according to distance from j to destination - 8:
while TRUE do - 9:
if T.expired() == TRUE then ▹ waiting timer expiration - 10:
= bifurcation_decision_process, ▹ calculate the number of path (Algorithm 1) - 11:
.SetNumberofPaths() ▹ set the number of paths to satisfy the - 12:
Send() ▹ send a packet - 13:
Exit() ▹ quit the competition process - 14:
end if - 15:
if Receive() == TRUE then ▹ when receive the packet from other competitor - 16:
h = h + 1 - 17:
if h ≥ n then ▹ already enough number of paths are constructed - 18:
T.Stop() ▹ stop timer to transmit the packet - 19:
Drop() ▹ drop the packet - 20:
Exit() ▹ quit the competition process - 21:
end if - 22:
end if - 23:
end while
|
In addition, we should consider the distribution of to prevent unnecessary bifurcation. Suppose that each bifurcation path has the same value as of the intermediate node; then, the total increases, leading to an unnecessary bifurcation. For example, consider an application requiring a of 80% with a bifurcation number 2. If the intermediate node does not distribute to each path, each path attempts to achieve a of 80%. That is, the total is 96%, i.e., . Each node on the path can also perform an unnecessary bifurcation to satisfy when is not properly distributed.
Figure 3 shows an example of the bifurcation transmission process and
distribution to prevent unnecessary bifurcation. To explain the bifurcation process and
distribution, we suppose that the source node,
S, and node 3 are decided to perform the branching with two paths and the original
at the source node is 80%. To bifurcate the path, the source node
S calculates the proper distribution of
. In
Figure 3, the source node distributes a
of 80% to 50% and 60%
. The source node
S records the number of paths and distributed
in the packet and broadcasts the packet. Nodes 1 and 3 receive the packet from the source node
S. A timer of node 3 that is closer to the destination expires before the timer expiration of the node 1. At that time, node 3 realizes the given
is 50%. In the case of node 1, as for the timer of node 3, node 1 knows that only one node has a transmission opportunity with 60%
. When a timer of node 1 expires, node 1 broadcasts the packet with the 60%
. When
that is distributed to nodes 1 and 3 are combined, the calculated total
is 80%, i.e.,
. In other words, even if the path is bifurcated, the original
remains unaffected and the proposed scheme can prevent unnecessary branching. If node 3 requires bifurcation of the path, since
of the node 3 is less than 50%
, it is possible to construct an additional multipath by further distributing
to nodes 5 and 6, as shown in
Figure 3.
3.4. Exception Handling
As opportunistic routing is only aimed at the probabilistic increase of the link reliability by giving an opportunity to all of the neighbor nodes, all nodes may fail to transmit the packet or else a sufficient number of paths cannot be constructed. In this case, the packet delivery ratio is degraded. To complement this problem, we exploit a characteristic of the opportunistic routing called overhearing. We present an exception handling process (Algorithm 3). When the intermediate node broadcasts the packet to its neighbor nodes, the intermediate node starts a timer to overhear the transmission of the neighbor nodes and counts the number of transmissions (lines 6–10). Similar to the competition process (Algorithm 2), the exception handling process is divided into three cases: (1) all of the paths are successfully constructed, (2) no paths are constructed, or (3) only some paths are constructed.
Case 1 (lines 11–13): If the intermediate node i received the same number of transmissions h as the number of paths n (Line line 11), the intermediate node realizes that a sufficient number of paths are constructed that satisfy . In this case, the exception handling process is terminated without any handling because a sufficient number of paths have already been created (line 12).
Case 2 (lines 17–19): On the other hand, the intermediate node i cannot receive any packet (line 17). This phenomenon means that all of the neighbor nodes fail to receive the packet from the intermediate node i. Thus, the intermediate node i retransmits the packet to the neighbor nodes to construct paths (line 18).
Case 3 (Line lines 20–23): Similarly, in the case in which the intermediate node i overhears a lesser number h of transmissions than the number of calculated paths n (line 20), the intermediate node i judges that an insufficient number of paths has been constructed. The intermediate node i calculates the required number of paths to construct n paths and inserts into the packet (line 21). The intermediate node i then transmits the packet to the neighbor nodes (line 22).
The modified packet includes the number of modified paths and modified . For example, suppose that three paths are required to satisfy and the intermediate node overhears only one transmission. In this case, the intermediate node modifies the packet, the number of paths is reduced from 3 to 2, and the distributed is also reduced. Through this process, the proposed scheme can prevent the degradation of the packet delivery ratio by a failure of the transmission based on the opportunistic routing.
Algorithm 3 Pseudocode for an exceptional case handling process at an intermediate node i |
- 1:
n ← number of paths ▹ number of paths calculated by Algorithm 1 - 2:
← original packet to construct the number of paths at node i - 3:
← modified packet to handle the exception - 4:
← received packet from the neighbor node j - 5:
h ← number of overhearings (default = 0) - 6:
- 7:
StartTimer(T) ▹ when this timer expires, the timer of all neighbors is considered to have expired - 8:
whileT.expired() == FALSE do ▹ overhearing the transmission of the neighbors - 9:
if Receive() == TRUE then ▹ when receiving the packet from the neighbor nodes - 10:
h = h + 1 - 11:
if then ▹ a sufficient paths are constructed - 12:
Exit() ▹ quit the exception handling process - 13:
end if - 14:
end if - 15:
end while - 16:
- 17:
ifh = 0 then ▹ no paths were constructed - 18:
Send() - 19:
end if - 20:
ifh < n then ▹ Some paths were constructed and the number of paths is insufficient by . - 21:
.SetNumberofPaths() ▹ set the number of paths, , to construct n paths - 22:
Send () ▹ modified packet is retransmitted - 23:
end if
|
In addition to the transmission failure problem, the path merger problem occurs because a proposed scheme cannot guarantee a node-disjoint transmission. That is, an arbitrary node can receive two or more packets from different parent nodes. To deal with this problem, when the node receives two or more packets, the node finds the
of each packet. Then, the node combines the
of each packet into one
. The node calculates the required number of paths with a combined
when it transmits the packet to the destination.
Figure 4 shows an example of the path merger problem. Suppose that the intermediate node 1 performs a branch to nodes 2 and 3 with 30% of
. Suppose also that node 4 is selected as the opportunistic routing results of nodes 2 and 3. In this case, node 4 finds the
of each packet form from nodes 2 and 3. In the case of
Figure 4, the
of nodes 2 and 3 is 30%. Thus, node 4 merges
, i.e.,
. As a result, node 4 can obtain approximately 50% of
. A comparison of
of the intermediate node 1 and calculated
of node 4 confirms that node 4 can obtain the same value through the merger process. That is, even if the path merging problem occurs in the bifurcation process, the proposed scheme can prevent the degradation of
.