In this section, we present our vector-based forwarding (VBF) protocol and its enhanced version, hop-by-hop vector-based forwarding (HH-VBF) protocol in details.
3.1. Overview of VBF
In sensor networks, energy constraint is a crucial factor since sensor nodes usually run on battery, and it is impossible or difficult to recharge them in most application scenarios. In underwater sensor networks, in addition to energy saving, the routing algorithms should be able to handle node mobility in an efficient way.
Vector-Based Forwarding (VBF) protocol meets these requirements successfully. We assume that each node in VBF knows its position information, which is provided by some location algorithms [32–37]. If there is no such localization service available, a sensor node can still estimate its relative position to the forwarding node by measuring its distance to the forwarder and the angle of arrival (AOA) and strength of the signal by being armed with some hardware device. This assumption is justified by the fact that acoustic directional antennae are of much smaller size than RF directional antennae due to the extremely small wavelength of sound. Moreover, underwater sensor nodes are usually larger than land-based sensors, and they have room for such devices. In this work, we assume that the position information can be calculated by measuring the AOA and strength of the signal.
In VBF, each packet carries the positions of the sender, the target, and the forwarder (i.e., the node which transmits this packet). The forwarding path is specified by the routing vector from the sender to the target. Upon receiving a packet, a node computes its relative position to the forwarder. Recursively, all the nodes receiving the packet compute their positions. If a node determines that it is sufficiently close to the routing vector (e.g., less than a predefined distance threshold), it puts its own computed position in the packet and continues forwarding the packet; otherwise, it simply discards the packet. In this way, all the packet forwarders in the sensor network form a "routing pipe": the sensor nodes in this pipe are eligible for packet forwarding, and those which are not close to the routing vector (i.e., the axis of the pipe) do not forward. Figure 1 illustrates the basic idea of VBF. In the figure, node
is the source, and node
is the sink. The routing vector is specified by
. Data packets are forwarded from
to
. Forwarders along the routing vector form a routing pipe with a precontrolled radius (i.e., the distance threshold, denoted by
in this paper).
As we can see, like all other source routing protocols, VBF requires no state information at each node. Therefore, it is scalable to the size of the network. Moreover, in VBF, only the nodes along the forwarding path (specified by the routing vector) are involved in packet routing, thus saving the energy of the network.
3.2. The Basic VBF Protocol
VBF is a source routing protocol where each packet carries simple routing information. In a packet, there are three position fields, SP, TP, and FP, that is, the coordinates of the sender, the target, and the forwarder. In order to handle node mobility, each packet contains a RANGE field. When a packet reaches the area specified by its TP, this packet is flooded in an area controlled by the RANGE field. The forwarding path is specified by the routing vector from the sender to the target. Each packet also has a RADIUS field, which is a predefined threshold used by sensor nodes to determine if they are close enough to the routing vector and eligible for packet forwarding.
3.2.1. Sink-Initiated Query
There are two types of queries. One is location-dependent query. In this case, the sink is interested in some specific area and knows the location of the area. The other type is location independent query, when the sink wants to know some specific type of data regardless of its location. For example, the sink wants to know if there exist abnormal high temperatures in the network. Both of these two types of queries can be routed effectively by VBF.
For location dependent queries, the sink is interested in some specific area; so it issues an INTEREST query packet, which carries the coordinates of the sink and the target in the sink-based coordinate system. Each node which receives this packet calculates its own position and the distance to the routing vector. If the distance is less than RADIUS (i.e., the distance threshold), then this node updates the FP field of the packet and forwards it; otherwise, it discards this packet. For location-independent queries, the INTEREST packet may carry some invalid positions for the target. Upon receiving such packets, a node first checks if it has the data which the sink is interested in. If so, the node computes its position in the sink-based coordinate system, generates data packets, and sends back to the sink. Otherwise, it updates the FP field of the packet and further forwards it.
3.2.2. Source-Initiated Query
In some application scenarios, the source can initiate the query process. VBF also supports such source_initiated query. If a source senses some events and wants to inform the sink, it first broadcasts a DATA_READY packet. Upon receiving such packets, each node computes its own position in the source-based coordinate system, updates the FP field, and forwards the packet. Once the sink receives this packet, it calculates its position in the source-based coordinate system and transforms the position of the source into its own coordinate system. Then the sink can decide if it is interested in such data. If so, it may send out an INTEREST packet to the area where the source resides.
Handling Source Mobility
Since the source node keeps moving, its location calculated based on the old INTEREST packet might not be accurate any more. If no measure is taken to correct the source location, the actual forwarding path might get far away from the expected one; that is, the destination of the data forwarding path most probably misses the sink. We propose the following sink-assisted approach to solve this problem.
The source keeps sending packets to the sink, and the sink can utilize the source location information carried in the packets to determine if the source moves out of the targeted scope. For example, if the sink calculates its position as
based on the coordinates of the source,
, and its real position is
, then the sink can calculate the relative position of the sink to the source as
. Therefore, the real position of the source is
. By comparing
and
, the sink can decide if the source moves out of the scope of the interested area. If so, the sink sends the SOURCE_DENY packet to the source using
. Once the source gets such packets, it stops sending data. At the same time, the sink initiates a new INTEREST query and finds a new source.
3.3. The Self-Adaptation Algorithm for VBF
In the basic VBF protocol, all the nodes inside the routing pipe are qualified to forward packets. In dense networks, too many nodes might be involved in the data forwarding process. To save energy, it is desirable to adjust the forwarding policy based on the node density. However, due to the mobility of the nodes in the network, it is infeasible to determine the global node density. Moreover, it is inappropriate to measure the density at the transmission ends (i.e., the sender and the target) because of the low propagation speed of acoustic signals. We propose a self-adaptation algorithm for VBF to allow each node to estimate the density in its neighborhood (based on local information) and forward packets adaptively.
Desirableness Factor
We introduce the notion of desirableness factor to measure the "suitableness" of a node to forward packets.
Definition 1.
Given a routing vector
, where
is the source and
is the sink, for forwarder
, the VBF desirableness factor,
, of a node
, is defined as
, where
is the distance of
to the routing vector
,
is the distance between node
and node
and
is the angle between vector
and vector
.
is the transmission range and
is the radius of the "routing pipe" (i.e., the distance threshold).
Figure 2(a) depicts the various parameters used in the definition of desirableness factor. From the definition, we see that for any node close enough to the routing vector, that is,
, the desirableness factor of that this node is in the range of
. For a node, if its desirableness factor is large, it means that either its distance to the routing vector is large or it is not far away from the forwarder. In other words, it is not desirable for this node to continue forwarding the packet. On the other hand, if the desirableness factor of a node is
, then this node is on both the routing vector and the edge of the transmission range of the forwarder. We call this node as the optimal node, and its position as the best position. For any forwarder, there is at most one optimal node and one best position. If the desirableness factor of a node is close to
, it means this node is close to the best position.
The Algorithm
We propose a self-adaptation algorithm based on the concept of desirableness factor. This algorithm aims to select the most desirable nodes as forwarders. In this algorithm, when a node receives a packet, it first determines if it is close enough to the routing vector. If yes, the node then holds the packet for a time period related to its desirableness factor. In other words, each qualified node delays forwarding the packet by a time interval
, which is calculated as follows:
where
is a predefined maximum delay,
is the propagation speed of acoustic signals in water, that is, 1500 m/s, and
is the distance between this node and the forwarder. In the above equation, the first term reflects the waiting time based on the node's desirableness factor: the more desirable (i.e., the smaller the desirableness factor), the less time to wait. The second term represents the additional time needed for all the nodes in the forwarder's transmission range to receive the acoustic signal from the forwarder.
During the delayed time period
, if a node receives duplicate packets from
other nodes, then this node has to compute its desirableness factors relative to these nodes,
, and the original forwarder,
. If
, where
is a predefined initial value of desirableness factor (
), then this node forwards the packet; otherwise, it discards the packet.
Essentially, the above self-adaptation algorithm gives higher priority to the desirable node to continue broadcasting the packet, and it also allows a less desirable node to have chances to reevaluate its "importance" in the neighborhood. After receiving the same packets from its neighbors, the less desirable node can measure its importance by computing its desirableness factor relative to its neighbors. If there are many more desirable nodes in the neighborhood, we exponentially reduce the probability of this node to forward the packet. That is, it is useless for this node to forward the packet anymore since many other more desirable nodes have forwarded the packet. In fact, if a node receives more than two duplicate packets during its waiting time, it is most likely that this node will not forward the packet no matter what initial value
takes. In this way, we can reduce the computation overhead by skipping the reevaluation of the desirableness factor.
From (1), we can see that the optimal node does not defer forwarding packets in the self-adaptation algorithm. Thus, we have the following lemma.
Lemma 2.
If there exists an optimal path from the sender to the target, that is, each node in the path is the optimal node for its upstream node, then the self-adaptation algorithm selects this path and entails no delay.
An Example
We illustrate VBF with self-adaptation in Figure 2(b). In this figure, the forwarding path is specified as the routing vector
from the source
to the sink
. The node
is the current forwarder. There are three nodes, namely,
,
and
in its transmission range. Node
has the smallest desirableness factor among these nodes. Therefore,
has the shortest delay time and sends out the packet first. As shown in this figure, node
is most likely to discard the packet because it is in the transmission range of
and it has to reevaluate the benefit to send the packet. Node
is out of the transmission range of
; therefore, it also forwards the packet.
3.4. Summary of VBF
We have described the basic VBF routing protocol and the self-adaptation algorithm. We can see that VBF addresses the mobility of nodes in the network effectively. The positioning of nodes is performed locally and no global synchronization required. VBF has no requirement for stable forward path. VBF is an energy efficient and scalable protocol.
In VBF, no state information is required for each node; therefore, it is scalable to the size of the network.
In VBF, only the nodes close to the routing vector are involved in packet forwarding, and all other nodes are in idle state, thus saving energy. The self-adaptation algorithm helps to further reduce energy consumption by selecting more desirable nodes.
VBF is also robust and less computationally demanding.
The success of data delivery is not dependent on the stable neighborhood, but on the node density. If there exists at least one path in the "routing pipe" specified by the routing vector, then the packet can be successfully delivered.
The computation demand on each node is appropriate for routing on-demand since only simple vector-related calculation is needed.
The routing pipe in VBF is determined by a predefined radius. In sparse networks, if no nodes lie within this pipe, then data packets cannot be forwarded to the sink even though paths may exist outside the pipe. In basic VBF, these paths will not be discovered and thus the delivery ratio will be severely affected. To improve the performance of VBF in sparse networks, we propose an enhanced version of VBF: Hop-by-hop Vector-based Forwarding (HH-VBF).
3.5. VBF Enhancement: Hop-by-Hop Vector-Based Forwarding (HH-VBF)
In HH-VBF, we redefine the routing virtual pipe to be a per-hop virtual pipe creation, instead of a unique pipe from the source to the sink. This hop-by-hop approach allows the expansion of the probability of finding a routing path in comparison with VBF. Consider a node
which receives a packet from the source or a forwarder node
. Upon receipt of the packet, the node computes the vector from the sender
to the sink. In this way, the forwarding pipe changes each hop in the network, giving the name hop-by-hop vector-based forwarding (HH-VBF). After a receiver computes the vector from its sender to the sink, it calculates its distance to that vector. If this distance is smaller than the predefined threshold, it is eligible to forward the packet. We refer to such a node as a candidate forwarder for the packet.
As in VBF, each candidate forwarder maintains a self-adaptation timer which depends on the desirableness factor. The timer represents the time the node holds the packet before forwarding it. We modify Definition 1 and get a new definition of the desirableness factor for HH-VBF.
Definition 3.
For a candidate forwarder
, the HH-VBF desirableness factor,
, of a node
, is defined as
where
is the distance between node
and node
, and
is the angle between
and
.
is the transmission range and
is the sink.
The self-adaption algorithm in HH-VBF is different from that in the VBF. As we recall, due to the effective packet suppression strategy adopted in VBF, only a few paths could be selected to forward packets. This may cause problems in sparse networks. To enhance the packet delivery ratio in sparse networks, we introduce some redundancy control in the self-adaption procedure for HH-VBF.
In HH-VBF, when a node receives a packet, it first holds the packet for some time period proportional to its desirableness factor (this is similar to VBF). Therefore, the node with the smallest desirableness factor will send the packet first. Following this way, each node in the neighborhood may hear the same packet multiple times. HH-VBF allows each node overhearing the duplicate packet transmissions to control the forwarding of this packet as follows: the node calculates its distances to the various vectors from the packet forwards to the sink. If the minimum one of these distances is still larger than a predefined minimum distance threshold
, this node will forward the packet; otherwise, it simply drops the packet. Obviously, the bigger
is, the more nodes will be allowed for packet forwarding. Thus, HH-VBF can control forwarding redundancy by adjusting
.
Each node that qualifies as a candidate forwarder delays the packet forwarding by an interval
which is computed the same way as in VBF. Then each node still uses the self-adaptation algorithm to limit the redundant packets.
Compared with the basic VBF, HH-VBF has two significant benefits:
more paths can be found for data delivery in sparse networks;
HH-VBF is less sensitive to the routing pipe radius (i.e., the distance threshold). Correspondingly, we have the following two lemmas.
Lemma 4.
Given the same routing pipe radius, if a packet is routable in VBF, then it must be routable in HH-VBF.
Proof.
If we can show that any routing-involved node in VBF is also involved in routing in HH-VBF, then we prove the lemma. Now, we assume that in HH-VBF, a node
is not involved in routing. This implies that in the network no path leading from the source to
gives the distance threshold. Thus, the source-to-sink routing pipe of the basic VBF protocol does not cover node
; that is,
is not involved in routing. Using the contradiction method, we prove the lemma.
Lemma 4 indicates that HH-VBF is at least as reliable as VBF.
Lemma 5.
The valid range of routing pipe radius of HH-VBF is
, while the valid range of VBF is
, where
is the node transmission range, and
is the network diameter (here one assumes that all nodes have the same transmission range).
Proof.
In HH-VBF, each node makes packet forwarding decisions based on its distance to the vector from its forwarder to the sink. If the distance is smaller than the predefined pipe radius, the node will forward the packet; otherwise it will discard the packet. In this way, when the pipe radius is bigger than the transmission range of the forwarder, those nodes which are outside the transmission range while still lie in the routing pipe are useless since they can not hear the packets from the forwarder. Thus, the valid range of routing pipe radius of HH-VBF is
, where
is the transmission range.
In VBF, each node makes packet forwarding decisions based on its distance to the vector from the source to the sink. When the pipe radius is bigger than the transmission range, those nodes which are outside the transmission range of one forwarder while still lie in the routing pipe may hear packets from other forwarder. This means that they may be still eligible for packet forwarding. Thus, theoretically there is no upper limit for the pipe radius of VBF, while in practice, the valid range of routing pipe radius of VBF is
, where
is the network diameter.
In VBF, the bigger the pipe radius, the higher successful data delivery ratio VBF can achieve, and the more optimal the paths VBF can select. Thus, for networks with different node densities, a proper pipe radius should be carefully chosen. While for HH-VBF, from Lemma 5, we can see that the biggest value of the pipe radius is
, which will clearly yield the highest successful data delivery ratio. Thus, in HH-VBF, we can eliminate the trouble of tuning the pipe radius by simply choosing the transmission range
.