Virtual-Coordinate-Based Delivery-Guaranteed
Routing Protocol in Wireless Sensor Networks
Ming-Jer Tsai, Hong-Yen Yang, Bing-Hong Liu, and Wen-Qian Huang
Abstract—In this paper, we first propose a method, ABVCap, to construct a virtual coordinate system in a wireless sensor network. ABVCap assigns each node multiple 5-tuple virtual coordinates. Subsequently, we introduce a protocol, ABVCap routing, to route packets based on the ABVCap virtual coordinate system. ABVCap routing guarantees packet delivery without the computation and storage of the global topological features. Finally, we demonstrate an approach, ABVCap maintenance, to reconstruct an ABVCap virtual coordinate system in a network with node failures. Simulations show ABVCap routing ensures moderate routing path length, as compared to virtual-coordinate-based routing, GLIDER, Hop ID, GLDR, and VCap.
Index Terms—GPS-free routing, delivery-guaranteed routing, virtual coordinate assignment, wireless sensor network.
I. INTRODUCTION
R
OUTING is an important issue that affects wirelesssensor networks [17], [21], [27]. Geographic routing uses the physical location as the node address [2], [5], [6], [8], [11], [12], [13]. The source node determines the destination address by looking it up from the location server [14], or by computing it using a hash function in a data-centric storage scheme [20]. The node usually forwards the packet to a neighbor closer to the destination. This, however, may take the packet to a dead-end node, that is, a node with no neighbor closer to the destination. In GPSR [11] and GFG [2] routing, the FACE algorithm is used on a planar graph to deal with the dead-end node problem. In addition, GSR routing [8] and a combination of the FACE algorithm and the shortcut-based procedure [5] are proposed to improve routing efficiency. GSR routing builds a planar routing subgraph, termed the Restricted Delaunay Graph (RDG), such that a path exists whose distance, in terms of the Euclidean distance or hop distance, in RDG is only the constant times to the minimum distance between any pair of nodes. Fang et al. [6] and Kuhn et al. [12] propose methods for mapping holes and routing around holes. In Lee et al. [13], the routing algorithm selects as the next hop the neighbor that represents the best trade-off between link cost and proximity instead of the neighbor that is located at the closest distance from the destination. Geographic routing protocols require nodes to have geographic information that is obtained with difficulty in wireless sensor networks because devices that operate via the geographic positioning system (GPS) consume a large amount of power and do not work indoors.
Routing protocols based on virtual coordinates that op-erate without the GPS assistance are proposed in wireless sensor networks. Through an iterative procedure, a relaxation algorithm [19] assigns virtual coordinates to nodes that are close to their physical locations, consuming, in the process,
a great deal of message broadcast overhead. In Shang et al. [23], the distance between any two nodes is first estimated by an all-pairs, shortest-paths algorithm. Subsequently, multi-dimensional scaling (MDS) is used to derive node locations that fit the estimated distances. In Bachrach et al. [1], several seed nodes are preprogrammed with their physical locations. Each node finds its location by determining the shortest hop counts to seed nodes and using the least square error method. In Pathirana et al. [18], the locations of sensor nodes are estimated by mobile robots that collect the signal strength of the messages sent by sensors. However, these methods do not guarantee packet delivery because the FACE algorithm cannot be used to solve the dead-end node problem due to the local error in the virtual coordinate assignment [22]. A survey of methods for assigning virtual coordinates, to nodes similar to the real ones, can be found in Hightower and Borriello [9].
In GLIDER [7], all nodes are divided into cells by the landmark Voronoi complex, and the connections between neighboring cells are represented by combinatorial Delaunay triangulation (CDT) on landmarks. GLIDER is a landmark-based routing scheme, in which a packet is routed via the shortest path from the source cell to the destination cell using the CDT identified by the source node. The efficiency of GLIDER depends on whether a good set of landmarks are selected. MAP [3] uses a medial axis graph (MAG) as the guide for routing without the need for the selection of landmarks. GLIDER and MAP compute the graph with global topological features, and require each node to memorize the graph to route a packet, resulting in a great deal of message communication, memory, and routing computation overhead. In Hop ID [26], each node is addressed by the hop distances from all landmarks, and a packet is greedily routed to the destination using the power distance. In GLDR [16], each node is addressed by the hop distances from a constant number of nearest landmarks, and a packet is routed along the shortest path to the landmark with the maximum ratio of its distances from the source and the destination. In Hop ID and GLDR, each node must obtain the minimum hop distances to all landmarks, demanding a considerable amount of message communication and memory overhead. In GREENWIS [15], a number of meridians are first established, and subsequently each node is assigned a 4-tuple virtual coordinate according to the meridians. In VCap [4], three anchors are first selected. The shortest hop counts to the three anchors are used as the virtual coordinate of the node. GREENWIS and VCap rapidly construct the virtual coordinates of the nodes. However, neither protocol guarantees packet delivery.
packet delivery without the computation and storage of the global topological features. The remainder of this paper is organized as follows. Research related to VCap is presented in Section II. In Section III, an Axis-Based Virtual Coordinate assignment protocol, ABVCap, is proposed to assign nodes virtual coordinates to construct an ABVCap virtual coordinate system. In Section IV, a routing protocol based on the ABV-Cap virtual coordinate system, ABVABV-Cap routing, is introduced. In Section V, a protocol, ABVCap maintenance, is presented to reconstruct an ABVCap virtual coordinate system in a network with node failures. We analyze the message overhead encountered using proposed protocols and the route stretch of ABVCap routing in Section VI, and evaluate, by simulations, the performance of GLIDER, Hop ID, GLDR, VCap, and ABVCap routing in Section VII. Finally, we conclude this paper in Section VIII.
II. RELATEDRESEARCH
In VCap, each node is assumed to be static, and has the same transmission range. Each node is assumed to have a unique identifier (ID) to break ties, which can be easily removed by allowing each node to choose a random number in a large enough interval. In VCap, three anchors, X, Y , and Z, are selected, and each node is assigned a 3-tuple virtual coordinate (x, y, z), where the x, y, and z coordinates denote the hop distances from anchors X, Y , and Z, respectively. In VCap, W is the sink node, X is the node with the maximum hop distance from W , Y is the node with the maximum hop distance from X, and Z is the node with the maximum hop distance from W among all nodes whose x and y coordinates each satisfy the relationship, x= y ± 1. In case of a tie, the node with the maximum ID is selected.
VCap proceeds in a four-phase process. In the first phase, each node is assigned a w coordinate that denotes the hop distance from W by the following method. Once the network is deployed, W assigns its w coordinate to 0 and generates a W SET message containing a hop counter that is initially set to 1 and advanced in increments by the forwarding nodes. The other node broadcasts the W SET message and assigns its w coordinate to the hop counter contained in the W SET message received. If a node receives more than one W SET message, the node assigns the w coordinate to the smallest hop counter and broadcasts the message containing the smallest hop counter. The second phase initiates after the w coordinates have been assigned to all nodes. Each node first broadcasts the ID and the w coordinate of the node with the maximum w coordinate in the 1-hop neighborhood, or, in case of a tie, the node with the maximum ID, which is obtained in the first phase. Subsequently, each node with the maximum w coordinate in the 2-hop neighborhood, or, in case of a tie, the node with the maximum ID, assigns its x coordinate to 0 and generates an X SET message containing its ID, its w coordinate, and a hop counter that is initially set to 1 and advanced in increments by the forwarding nodes. The node broadcasts the X SET message and assigns its x coordinate to the hop counter contained in the X SET message received that was generated by the node with the maximum w coordinate,
(1, 4, 2)
X
7 5 14 3 22 1 9 6 25 24 12 23 2 11Y
4 13 (0, 4, 3) (1, 3, 2) (3, 2, 0) (1, 4, 3) (1, 4, 4) (2, 3, 3) (2, 2,1) (3, 2, 2) (3,1, 2) (2, 3, 2) (4, 0, 2) (4,1, 3)Z
15 (3, 3, 3) (3, 2, 3) (3, 3,1) (2, 3,1) 19 10 17 16 18 8 (2, 3, 2) (2, 4, 3) (1, 5, 3) (3, 2, 2) (3, 2, 3) (4,1,1) 20 (3, 3, 4) 21 (4,1, 3)W
Fig. 1. Example of VCap. The number inside the circle denotes the node ID. The 1st
, 2nd
, and 3rd
entries in the parentheses denote the x, y, and z coordinates, respectively. W denotes the sink. X, Y , and Z denote anchors
X, Y , and Z, respectively.
or, in case of a tie, the node with the maximum ID. If a node receives more than one X SET message generated by a node, the node assigns the x coordinate to the smallest hop counter and broadcasts the message containing the smallest hop counter. The y and z coordinates are assigned in a manner analogous to that for the x coordinate in the third and fourth phases, which initiates after all nodes have been assigned the x and y coordinates, respectively.
In VCap routing, each node forwards the packet to a neighbor with closer and the minimal distance from the destination. The distance between two nodes with the vir-tual coordinates (x1, y1, z1) and (x2, y2, z2) is defined as
p(x2− x1)2+ (y2− y1)2+ (z2− z1)2. When the packet is
routed to a node in the zone of the destination, the packet is forwarded to the destination using proactive routing, in which a zone denotes a set of nodes with the same virtual coordinate. Because many zones are disconnected, proactive routing cannot always route a packet to the destination even if the packet reaches the zone of the destination. In addition, the state in which each node has at least one neighbor with a closer distance from the destination of any packet is difficult to achieve; therefore, VCap routing may convey the packet to a dead-end node. Consequently, packet delivery is not guaranteed.
An example of the assignment of the virtual coordinates using VCap protocol is presented in Fig. 1. Node 22 is sink node W . Node 25 is selected as anchor X since node 25 has the maximum ID among all nodes with the maximum hop distance from node 22. Node 24 is selected as anchor Y since node 24 has the maximum ID among all nodes with the maximum hop distance from node 25. For node 23, the x and y coordinates are 3 and 2, respectively, because the hop distances from nodes 25 and 24 are 3 and 2, respectively. Node 23 is selected as anchor Z since node 23 has the maximum hop distance from node 22, or, in case of a tie, the maximum ID, among all nodes with the x and y coordinates differing by 1. Consider the packet routed by VCap routing from node 18 to node 15. Node 18 forwards the packet to node 16 because node 16 has closer and the minimal distance, which is equal top(3 − 3)2+ (2 − 3)2+ (3 − 3)2, from node 15. However,
node 16 is a dead-end node because none of the neighbors has a closer distance from node 15.
III. THEABVCAP
Each node in ABVCap is assumed to be static, and has a unique ID and the same transmission range. Each node, U , is assigned at least one virtual coordinate containing five entries: longitude (U.lo), latitude (U.la), ripple (U.rp), up (U.up), and down (U.dn), where the longitude and latitude coordinates denote the location of the node in the network, and the ripple, up, and down coordinates assist the node in always routing packets to the destination. A node with multiple virtual coordinates is perceived as multiple virtual nodes each with exactly one virtual coordinate. If a node receives a message, each virtual node contained in the node receives the message. A node broadcasts (or generates) a message, if one or more virtual nodes contained in the node broadcast (or generate) the message. Let u and v be two virtual nodes contained in nodes U and V , respectively. The hop distance between u and v equals the hop distance between U and V ; u and v are neighbors if and only if U and V are neighbors. For simplicity of presentation, the node and the virtual node are used alternately through this paper. ABVCap is described in subsection A. An example of the assignment of the virtual coordinates using ABVCap is given in subsection B. And, we show ABVCap assigns at least one virtual coordinate to each node in subsection C. The following notations are necessary for the description in this paper.
Definition 1: A virtual node is said to be in longitude region i if the longitude coordinate equals i. N ET(i) denotes the subnetwork induced by the virtual nodes in longitude region i, and LH(i) denotes the longitude head of the virtual nodes in longitude region i.
Definition 2: A virtual node is said to be in cell region(i, j) if the longitude coordinate equals i and the latitude coordinate
equals j. N ET(i, j) denotes the subnetwork induced by the
virtual nodes in cell region (i, j), and CH(i, j) denotes the cell head of the virtual nodes in cell region(i, j).
A. The Protocol
The longitude and latitude coordinates are assigned in a manner analogous to that for the degrees of longitude and
latitude in the globe such that each subnetwork, N ET(i),
and each subnetwork, N ET(i, j), are connected. The up (or
down) coordinate of the virtual node in N ET(i) is assigned the number of internal nodes on the shortest path, passing
through the virtual nodes in N ET(i), to a virtual node in
N ET(i + 1) (or N ET (i − 1)) such that a packet in N ET (i)
can reach N ET(i + 1) (or N ET (i − 1)) if the packet is
repeatedly forwarded to a neighbor having a smaller up (or down) coordinate. The ripple coordinate of the virtual node
in N ET(i, j) is assigned the minimum hop distance from
CH(i, j) such that a packet in N ET (i, j) can reach CH(i, j) if the packet is repeatedly forwarded to a neighbor having a smaller ripple coordinate. Therefore, the packet can reach N ET(i, j + 1) (or N ET (i, j − 1)) because CH(i, j) is a
neighbor of CH(i, j + 1) (or CH(i, j − 1)) in ABVCap.
Algorithm 1
1. For sink W :
a) Assign the w coordinate to 0.
b) Generate and broadcast a W SET message containing
a hop counter set to 1.
2. For any node receiving a W SET message:
a) Assign the w coordinate to the hop counter contained
in the message, and broadcast the message with the hop counter increased by 1, if the message contains the small-est hop counter among all W SET messages generated or received.
3. For any node:
a) Broadcast the ID and the maximum w coordinate of
the node with the maximum w coordinate among itself and its neighbors, or, in case of a tie, the node with the maximum ID.
4. For any node with the maximum w coordinate in the
2-hop neighborhood, or, in case of a tie, the node with the maximum ID:
a) Assign the x coordinate to 0.
b) Generate and broadcast an X SET message containing
its ID, its w coordinate, and a hop counter set to 1.
5. For any node receiving an X SET message:
a) Assign the x coordinate to the hop counter contained
in the message, and broadcast the message with the hop counter increased by 1, if the message contains the maximum w coordinate, or, in case of a tie, the maximum ID, or, in case of identical ID, the smallest hop counter among all X SET messages generated or received.
ABVCap proceeds in a four-phase process. In the first phase, four anchors, X, Y , Z, and Z′, are selected, as described in subsection A.1, where X and Y are used to establish the equator, and Z and Z′, similar to the north and south poles, respectively, are used to establish a number of meridians in the second phase, as described in subsection A.2. The longitude, latitude, and ripple coordinates of the nodes on the axes (axis nodes), including the equator and meridians, are also assigned during the second phase. In the third phase, the longitude, latitude, and ripple coordinates of the nodes not on the axes (non-axis nodes) are assigned, as described in subsection A.3. Finally, all nodes are assigned the up and down coordinates in the fourth phase, as described in subsection A.4.
A.1 Election of Anchors
Anchors X, Y , and Z are first selected by the same method used in VCap. The node with the maximum hop distance from anchor Z among all nodes whose x and y coordinates each satisfy the relationship x= y ± 1 is selected as anchor Z′. In
case of a tie, the node with the maximum ID is selected. By the conclusion of this phase, each node has the x, y, z, and z′ coordinates, where the z′ coordinate denotes the hop distance
from anchor Z′. Algorithm 1 describes how to elect anchor
X and assign the x coordinates for nodes. A.2 Establishment of Axes
The equator consists of the nodes on the shortest path from anchor Y to anchor X. The i-th meridian consists of the node, U , on the equator whose x coordinate equals i, the nodes on the shortest path from U to anchor Z, and the nodes on
the shortest path from U to anchor Z′, as implemented in
Algorithm 2
1. For anchor Y :
a) Generate an Equator SET message.
2. For any node generating or receiving an Equator SET
message:
a) Assign the longitude coordinate to the x coordinate,
and the latitude and ripple coordinates to 0.
b) Forward the message to a neighbor whose x coordinate
is smaller by 1.
c) Generate a Meridian+ SET (or Meridian- SET)
mes-sage containing its x and z (or z′) coordinates.
3. For any node, V , generating or receiving a Meridian+ SET (or Meridian- SET) message generated by node U :
a) Assign the longitude coordinate to the x coordinate of
U , the ripple coordinate to 0, and the latitude coordinate to U.z− V.z (or V.z′− U.z′), where U.z and V.z (or U.z′
and V.z′) denote the z (or z′) coordinates of U and V , respectively .
b) Forward the message to a neighbor whose z (or z′) coordinate is smaller by 1.
which is forwarded by a node to another node whose x coor-dinate is smaller by 1 until anchor X is reached. Each node that receives the Equator SET message is on the equator and generates the Meridian+ SET and Meridian- SET messages. The Meridian+ SET (or Meridian- SET) message is forwarded by a node to another node whose z (or z′) coordinate is smaller by 1 until anchor Z (or Z′) is reached. Each node that receives the Meridian+ SET or Meridian- SET message generated by the node whose x coordinate equals i is on the i-th meridian. For a node, U , on the i-th meridian, the ripple and longitude coordinates are assigned to 0 and i, respectively. The latitude coordinate of U is assigned to the hop distance from the equator on the i-th meridian if U is on the shortest path from a node on the equator to anchor Z; otherwise, the latitude coordinate is assigned to the negative value of the hop distance from the equator on the i-th meridian. If U is located on k meridians, U is assigned k longitude, latitude, and ripple coordinates, as implemented in the following. Once a node receives the Equator SET message, the node assigns the longitude and latitude coordinates to its x coordinate and 0, respectively. A Meridian+ SET (or Meridian- SET)
message contains the x and z (or z′) coordinates of the
node that generates the message. Once a node receives the Meridian+ SET (or Meridian- SET) message generated by node U , the node assigns the longitude coordinate to the x coordinate of U , and the latitude coordinate to the z coordinate of U minus its z coordinate (or its z′ coordinate minus the z′ coordinate of U ). The node whose longitude coordinate equals i on the equator is the longitude head LH(i). The node whose latitude coordinate equals j on the i-th meridian is the cell
head CH(i, j). Algorithm 2 describes how to establish axes
and assign the longitude, latitude, and ripple coordinates for axis nodes. Fig. 2 illustrates a snapshot of the establishment of axes in the network consisting of around 2000 nodes.
A.3 Assignment of Longitude, Latitude, and Ripple Coordi-nates
A new phase initiates after all axis nodes have been assigned the longitude, latitude, and ripple coordinates. The longitude
Z
X
Y
Z'
Fig. 2. A snapshot of the establishment of axes in ABVCap.
and latitude coordinates of each non-axis node are assigned to the longitude and latitude coordinates of the cell head from which the node has the minimum hop distance. The ripple coordinate of each non-axis node is assigned to the minimum hop distance from the cell head, as implemented in the following. Every axis node generates a 3COOR SET message which is broadcast in a manner analogous to that for the X SET message. The 3COOR SET message contains the longitude and latitude coordinates of the node, U , that generates the message and a hop counter initially set to 1 and advanced in increments by the forwarding nodes. A non-axis node assigns the longitude and latitude coordinates to the longitude and latitude coordinates of U , and assigns the ripple coordinate to the hop counter according to the 3COOR SET message with the smallest hop counter. Algorithm 3 describes how a non-axis node assigns the longitude, latitude, and ripple coordinates.
A.4 Assignment of Up and Down Coordinates
After the longitude, latitude, and ripple coordinates have been designated for all nodes, the next phase involves the assignment of the up and down coordinates. Each virtual node in the longitude region of anchor Y (or X) assigns the up (or down) coordinate to 0. It is noted that each virtual node knows the longitude coordinate of anchor Y in the election of anchor Y . Each other virtual node, u, in N ET(i) assigns the up (or down) coordinate to the number of internal nodes on the shortest path, passing through the virtual nodes in N ET(i),
from u to a virtual node in N ET(i + 1) (or N ET (i − 1)),
as implemented in the following. Every virtual node that has one neighbor whose longitude coordinate is larger (or smaller) by 1 assigns the up (or down) coordinate to 0 and generates an UP SET (or DOWN SET) message containing its longitude coordinate and a hop counter initially set to 1 and advanced in increments by the forwarding nodes. The UP SET (or DOWN SET) message is broadcast between virtual nodes in a longitude region in a manner analogous to that for the X SET message between nodes in the whole network. The other virtual node assigns the up (or down) coordinate to the smallest hop counter contained in the UP SET (or DOWN SET) message received. Algorithm 4 describes how a virtual node assigns the up coordinate.
Algorithm 3
1. For any axis node:
a) Generate and broadcast a 3COOR SET message
con-taining its longitude and latitude coordinates and a hop counter set to 1.
2. For any non-axis node receiving a 3COOR SET message:
a) Assign the longitude and latitude coordinates to the
longitude and latitude coordinates of the node that gen-erates the message, assign the ripple coordinate to the hop counter contained in the message, and broadcast the message, if the message contains the smallest hop counter among all 3COOR SET messages received.
Algorithm 4
1. For any virtual node in the longitude region of anchor Y :
a) Assign the up coordinate to 0.
2. For any virtual node having one neighbor whose longitude coordinate is larger by 1:
a) Generate and broadcast an UP SET message containing
its longitude coordinate and a hop counter set to 1, and assign the up coordinate to 0.
3. For any other virtual node receiving a UP SET message:
a) Assign the up coordinate to the hop counter contained
in the message, and broadcast the message with the hop counter increased by 1, if the message is generated by a virtual node in the same longitude region and contains the smallest hop counter among all UP SET messages received.
B. An ABVCap Example
An example of the assignment of the virtual coordinates using ABVCap is presented in Fig. 3. In the first phase, node 22 is sink W . Nodes 25, 24, 23, 22 are selected as anchors X, Y , Z, and Z′, respectively. In the second phase, the longitude,
latitude, and ripple coordinates of node 6 are assigned to 2, 0, and 0, respectively, because node 6 whose x coordinate equals 2 receives the Equator SET message. The longitude, latitude, and ripple coordinates of node 3 are assigned to 2, -1, and 0, respectively, because node 3 whose z′ coordinate equals 1 receives the Meridian- SET message generated by
node 6 whose x and z′ coordinates equal 2. In the third
phase, the longitude, latitude, and ripple coordinates of node 15 are assigned to 2, -1, and 1, respectively, because node 15 receives the 3COOR SET message with the minimum hop counter equal to 1 generated by node 3. In the fourth phase, the virtual node contained in node 3 assigns the up coordinate to 0 because it has a neighbor contained in node 2 whose longitude coordinate is larger by 1. The virtual node contained in node 15 assigns the up coordinate to 1 because it receives an UP SET message with the hop counter equal to 1 generated by the virtual node contained in node 3. Note that node 5 is assigned two virtual coordinates(0, −2, 0, 0, 0) and (1, −1, 0, 0, 0). Thus, node 5 contains two virtual nodes with virtual coordinates (0, −2, 0, 0, 0) and (1, −1, 0, 0, 0), respectively.
C. Correctness of ABVCap
Only a connected network is considered here. Lemma 1 and Lemma 2 show that the subnetwork induced by the virtual nodes in a cell region and in a longitude region in ABVCap
X
12Y
4Z
15 19 10 17 16 18 8 (0,1, 0, 0, 0) (1,1, 0, 0, 0) (0, 3, 0, 0, 0) (0, 1, 0, 0, 0) (1, 1, 0, 0, 0) (4, 2, 0, 0, 0) (3,1, 0, 0, 0) (2, 1, 0, 0, 0) (3, 0, 0, 0, 0) (4, 0, 0, 0, 0) (4, 1, 0, 0, 0) (2, 1,1,1,1) (3, 1, 0, 0, 0) (3, 2, 0, 0, 0) (2, 2, 0, 0, 0) (0, 3, 0, 0, 0) (1, 2, 0, 0, 0) (0, 2, 0, 0, 0) (4,1, 0, 0, 0) (3, 2, 0, 0, 0) (1, 2, 0, 0, 0) (2,1, 0, 0, 0) (4, 2, 0, 0, 0) (0, 2,1, 0, 0) (0, 2, 0, 0, 0) (1, 0,1, 0, 0) (1, 0,1,1, 0) (0,1,1, 0, 0) (2, 0,1, 0,1) (3, 0,1,1, 0) (2, 0,1, 0, 0) (1, 0, 0, 0, 0) (1,1,1, 0, 0)Z'
(0, 0, 0, 0, 0) (2, 0, 0, 0, 0) (0, 0,1, 0, 0) 24 2 22 11 1 3 6 23 7 14 5 25 13 9 20 (1, 1,1, 0, 0) (0, 2,1, 0, 0) 21 (4, 0,1, 0, 0)Fig. 3. Example of ABVCap. The number inside the circle denotes the node ID. The 1st, 2nd, 3rd, 4th, and 5th entries in the parentheses denote the longitude, latitude, ripple, up, and down coordinates, respectively.
is connected, respectively. Theorem 1 shows that ABVCap assigns at least one 5-tuple virtual coordinate to each node.
Lemma 1: In ABVCap, the virtual nodes in a cell region induce a connected subnetwork.
Proof: It suffices to show there exists a path in N ET(i1, j1) between u and CH(i1, j1) for each virtual
node, u, in cell region (i1, j1). Suppose that u assigns its
longitude, latitude, and ripple coordinates when it receives the 3COOR SET message m1 generated by CH(i1, j1). Let
P (P = v1, v2, ..., vk) be the path traversed by message m1
from v1= CH(i1, j1) to vk = u. We show all virtual nodes
v1, v2, ..., vk are in cell region(i1, j1).
Suppose a virtual node exists, say vi (1 < i < k), that is
not in cell region (i1, j1). This implies that vi receives the
3COOR SET message m2 generated by CH(i2, j2) (i16= i2
or j1 6= j2) after vi receives the 3COOR SET message m1
and the hop counter contained in message m2 is less than the
one contained in message m1. In this case, u must update the
longitude and latitude coordinates to i2 and j2, respectively,
after u receives the 3COOR SET message m2. This implies
that u is in cell region(i2, j2), constituting a contradiction.
Lemma 2: In ABVCap, the virtual nodes in a longitude region induce a connected subnetwork.
Proof: Let u and v be two virtual nodes in longitude region i. Suppose that u and v are in cell regions(i, j1) and
(i, j2), respectively. According to Lemma 1, there is a path in
N ET(i, j1) between u and CH(i, j1), and there is a path in
N ET(i, j2) between v and CH(i, j2). Because there exists
a path in N ET(i) between CH(i, j1) and CH(i, j2), there
exists a path in N ET(i) between u and v.
Theorem 1: ABVCap assigns each node at least one 5-tuple virtual coordinate.
Proof: First note that ABVCap assigns each node at least one longitude, one latitude, and one ripple coordinates since the network is connected. We need to show that each virtual node u with the 3-tuple virtual coordinate (u.lo, u.la, u.rp) must be assigned u.up and u.dn. The proof of assigning u.up is omitted due to its similarity with that of assigning u.dn.
0; otherwise, u.dn is assigned after u receives a DOWN SET message or generates a DOWN SET message. It suffices to show u receives at least one DOWN SET message if u does not generate a DOWN SET message. Let u be in longitude
region i. The virtual node LH(i) must generate a DOWN SET
message because LH(i) has a neighbor LH(i − 1). Because
there is a path from LH(i) to u in N ET (i) according to
Lemma 2, u receives the DOWN SET message generated by LH(i) if u receives no other DOWN SET message.
IV. ABVCAPROUTING
We assume that a node receives all multiple virtual co-ordinates of all neighbors. We also assume that the virtual coordinate of the destination received by the source is unique [14], [20]. In ABVCap routing, the routed packet contains the longitude and latitude coordinates of the destination. ABVCap routing is described in subsection A. An ABVCap routing example is given in subsection B. And, we show ABVCap routing can always route the packet from the source to the destination in subsection C. The following notations are necessary for the description of ABVCap routing.
Definition 3: The pair of numbers a and b is defined to be smaller than the pair of numbers c and d, denoted by(a, b) < (c, d), if a < c, or a = c and b < d.
Definition 4: Given two virtual nodes u and v, the longitude distance is defined to be|u.lo − v.lo|, and the latitude distance is defined to be|u.la − v.la|.
Definition 5: Given destination d, for virtual node u, the notation u.rep denotes u.up if u.lo < d.lo, denotes u.dn if u.lo > d.lo, and denotes |u.la − d.la| if u.lo = d.lo.
A. The Routing Protocol
A packet in N ET(i) can reach N ET (i + 1) (or N ET (i − 1)) if the packet is repeatedly forwarded to a neighbor having a smaller up (or down) coordinate. This implies that a packet always can be routed to a virtual node in the longitude region of the destination. A packet in N ET(i, j) can reach N ET(i, j + 1) (or N ET (i, j − 1)) if the packet is first routed
to CH(i, j) by being repeatedly forwarded to a neighbor
having a smaller ripple coordinate, and subsequently routed to CH(i, j + 1) (or CH(i, j − 1)) via the link between CH(i, j) and CH(i, j +1) (or CH(i, j −1)). Therefore, a packet always can be routed to a virtual node in the cell region of the destination. Proactive routing can eventually route the packet to the destination because the virtual nodes in the cell region of the destination induce a connected subnetwork. ABVCap routing forwards the packet using the greedy method. The packet is first routed to a virtual node in the longitude region of the destination (longitude routing), then to a virtual node in the cell region of the destination (latitude routing), and finally to the destination using proactive routing. If a node, U , contains no virtual node in the longitude region of the destination, U routes a packet using longitude routing; otherwise, if U contains no virtual node in the cell region of the destination, U routes a packet using latitude routing. Otherwise, U routes a packet using proactive routing. In longitude routing, U forwards the packet to the virtual node with the minimum
Algorithm 5
1. For any node, U , that contains no virtual node in the
longitude region of the destination (longitude routing):
a) U forwards the packet to the virtual node, v, with the
smallest pair of numbers(|v.lo − d.lo|, v.rep) among all virtual nodes contained in the neighbors of U .
2. For any other node, U , that contains no virtual node in the cell region of the destination (latitude routing):
a) U forwards the packet to the virtual node, v, with
the smallest pair of numbers (|v.la − d.la|, v.rp) among all virtual nodes contained in the neighbors of U in the longitude region of the destination.
3. For any other node, U (proactive routing):
a) U forwards the packet to the next hop in the local
routing table.
longitude distance from the destination among all virtual nodes contained in the neighbors of U , or, in case of a tie, the virtual node, v, with the smallest number v.rep. In latitude routing, U forwards the packet to the virtual node with the same longitude coordinate as the destination and the minimum latitude distance from the destination among all virtual nodes contained in the neighbors of U , or, in case of a tie, the virtual node with the smallest ripple coordinate. In proactive routing, each node constructs a local routing table that contains routing information for virtual nodes in the same cell region. Algorithm 5 describes how a node routes a packet using ABVCap routing in a network.
B. An ABVCap Routing Example
Consider the packet routed by ABVCap routing from node 18 to node 15 in Fig. 3. Firstly, Node 18 proceeds with longitude routing because it contains no virtual node in the longitude region of the destination. The packet is forwarded to node 6 because node 6 contains the virtual node, v, that has the smallest pair of numbers(|v.lo − d.lo|, v.rep), equal to(0, 1), among all virtual nodes contained in the neighbors of node 18. Then, node 6 proceeds with latitude routing because it contains a virtual node in the longitude region of the destination. The packet is forwarded to node 3 because node 3 contains the virtual node, v, that has the smallest pair of numbers(|v.la−d.la|, v.rp), equal to (0, 0), among all virtual nodes contained in the neighbors of node 6 in the longitude region of the destination. Finally, node 3 routes the packet to node 15 using proactive routing because node 3 contains a virtual node in the cell region of the destination.
C. Guaranteed Delivery of ABVCap Routing
Theorem 2 shows that ABVCap routing guarantees packet delivery, where packet loss and other realistic failures are not considered.
Theorem 2: ABVCap routing always routes the packet from the source, s, to the destination, d.
Proof: We first show longitude routing can forward the
packet to a virtual node, v, with v.lo = d.lo. Let ui
be the i-th forwarding virtual node. It suffices to show claim 1: (|ui+1.lo − d.lo|, ui+1.rep) < (|ui
.lo − d.lo|, ui
.rep)
for all i. Because ui+1 has the smallest pair of numbers
(|v.lo − d.lo|, v.rep) among all neighbors, v, of ui
TABLE II. Comparison of Virtual-Coordinate-Based Routing Protocols Performance
Parameter GLIDER Hop ID GLDR VCap ABVCap
Delivery Guarantee ×a × × × √ Require a Global Topology Feature √ × × × × Robustness to Node Failure × × × × √ Coordinate Assign-ment Cost ⋆ b ⋆⋆ ⋆ ⋆ ⋆ ⋆⋆⋆⋆⋆ ⋆ ⋆ ⋆⋆ Coordinate Assign-ment Robustness ⋆⋆⋆⋆⋆ ⋆⋆⋆⋆⋆ ⋆⋆⋆⋆⋆ ⋆⋆⋆⋆⋆ ⋆⋆⋆⋆⋆ Routing Delivery ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆ ⋆⋆⋆⋆⋆ Routing Efficiency ⋆⋆ ⋆ ⋆ ⋆⋆ ⋆ ⋆ ⋆ ⋆⋆⋆⋆⋆ ⋆ Routing Flexibility ⋆ ⋆ ⋆⋆ ⋆ ⋆⋆⋆⋆⋆ ⋆⋆ ⋆ ⋆ ⋆ Load Balance ⋆ ⋆⋆⋆⋆⋆ ⋆ ⋆ ⋆⋆ ⋆ ⋆ ⋆ ⋆⋆ Routing Overhead ⋆ ⋆ ⋆ ⋆ ⋆⋆ ⋆ ⋆ ⋆⋆ ⋆⋆⋆⋆⋆ a√ ⇒ Yes; × ⇒ No b⋆ ⋆ ⋆ ⋆ ⋆ ⇒ Best; ⋆ ⇒ Worst
virtual coordinate system so that ABVCap routing guarantees packet delivery in a network with node failures.
Using simulations, we evaluate the performance of virtual-coordinate-based routing, GLIDER, Hop ID, GLDR, VCap, and ABVCap. None of GLIDER, Hop ID, GLDR, and VCap routing guarantees the packet delivery and tolerates node failures. Although ABVCap routing has the largest routing path length, it has the smallest routing overhead. Compared to ABVCap routing, only VCap routing has smaller coordinate assignment cost, only GLIDER routing has worse load bal-ance, and only GLIDER and GLDR routing has larger routing flexibility. Simulations also show the coordinate assignment robustness of each routing in practice.
REFERENCES
[1] J. Bachrach, R. Nagpal, M. Salib, and H. Shrobe. Experimental results for and theoretical analysis of a self-organizing global coordinate system for ad hoc sensor networks. Telecommunication Systems, 26:213–233, 2004.
[2] P. Bose, P. Morin, I. Stojmenovic, and J. Urrutia. Routing with guaranteed delivery in ad hoc wireless networks. Wireless networks, 7:609–616, 2001.
[3] J. Bruck, J. Gao, and A. Jiang. MAP: medial axis based geometric routing in sensor networks. In IEEE/ACM MOBICOM, pages 88–102, 2005.
[4] A. Caruso, S. Chessa, S. De, and A. Urpi. GPS free coordinate as-signment and routing in wireless sensor networks. In IEEE INFOCOM, pages 150–160, 2005.
[5] S. Datta, I. Stojmenovic, and J. Wu. Internal node and shortcut based routing with guaranteed delivery in wireless networks. Cluster
Computing, 5:169–178, 2002.
[6] Q. Fang, J. Gao, and L. J. Guibas. Locating and bypassing routing holes in sensor networks. In IEEE INFOCOM, pages 2458–2468, 2004. [7] Q. Fang, J. Gao, L. J. Guibas, V. D. Silva, and L. Zhang. GLIDER:
gradient landmark-based distributed routing for sensor networks. In
IEEE INFOCOM, pages 339–350, 2005.
[8] J. Gao, L. J. Guibas, J. Hershberger, L. Zhang, and A. Zhu. Geometric spanners for routing in mobile networks. IEEE Journal on Selected
Areas in Communications, 23:174–185, 2005.
[9] J. Hightower and G. Borriello. Location systems for ubiquitous com-puting. Computer, 34:57–66, 2001.
[10] Y. W. Hong and A. Scaglione. A scalable synchronization protocol for large scale sensor networks and its applications. IEEE Journal on
Selected Areas in Communications, 23:1085–1099, 2005.
[11] B. Karp and H. T. Kung. GPSR: greedy perimeter stateless routing for wireless networks. In IEEE/ACM MOBICOM, pages 243–254, 2000. [12] F. Kuhn, R. Wattenhofer, Y. Zhang, and A. Zollinger. Geometric ad-hoc
routing: of theory and practice. In ACM PODC, pages 63–72, 2003. [13] S. Lee, B. Bhattacharjee, and S. Banerjee. Efficient geographic routing
in multihop wireless networks. In IEEE/ACM MOBIHOC, pages 230– 241, 2005.
[14] J. Li, J. Jannotti, D. DeCouto, D. Karger, and R. Morris. A scalable lo-cation service for geographic ad-hoc routing. In IEEE/ACM MOBICOM, pages 120–130, 2000.
[15] Y. Liu, L. M. Ni, and M. Li. A geography-free routing protocol for wireless sensor networks. In IEEE HPSR, pages 351–355, 2005. [16] A. Nguyen, N. Milosavljevic, Q. Fang, J. Gao, and L. J. Guibas.
Landmark selection and greedy landmark-descent routing for sensor networks. In IEEE INFOCOM, pages 661–669, 2007.
[17] T. Park and K. G. Shin. Soft tamper-proofing via program integrity verification in wireless sensor networks. IEEE Transactions on Mobile
Computing, 4:297–309, 2005.
[18] P. N. Pathirana, N. Bulusu, A. V. Savkin, and S. Jha. Node localization using mobile robots in delay-tolerant sensor networks. IEEE
Transac-tions on Mobile Computing, 4:285–296, 2005.
[19] A. Rao, S. Ratnasamy, C. Papadimitriou, S. Shenker, and I. Stoica. Geo-graphic routing without location information. In IEEE/ACM MOBICOM, pages 96–108, 2003.
[20] S. Ratnasamy, B. Karp, L. Yin, F. Yu, D. Estrin, R. Govindan, and S. Shenker. GHT: a geographic hash table for data-centric storage. In
ACM WSNA, pages 78–87, 2002.
[21] H. Sabbineni and K. Chakrabarty. Location-aided flooding: an energy-efficient data dissemination protocol for wireless sensor networks. IEEE
Transactions on Computers, 54:36–46, 2005.
[22] K. Seada, A. Helmy, and R. Govindan. On the effect of localization errors on geographic face routing in sensor networks. In IEEE/ACM
IPSN, pages 71–80, 2004.
[23] Y. Shang, W. Ruml, Y. Zhang, and M. P. J. Fromherz. Localization from mere connectivity. In IEEE/ACM MOBIHOC, pages 201–212, 2003. [24] W. Su and I. F. Akyildiz. Time-diffusion synchronization protocol
for wireless sensor networks. IEEE/ACM Transactions on Networking, 13:384–397, 2005.
[25] Y. C. Tseng, S. Y. Ni, Y. S. Chen, and J. P. Sheu. The broadcast storm problem in a mobile ad hoc network. Wireless Networks, 8:153–167, 2002.
[26] Y. Zhao, Y. Chen, B. Li, and Q. Zhang. Hop ID: A virtual coordinate based routing for sparse mobile ad hoc networks. IEEE Transactions
on Mobile Computing, 6:1075–1089, 2007.
[27] Y. Zou and K. Chakrabarty. A distributed coverage-and connectivity-centric technique for selecting active nodes in wireless sensor networks.
IEEE Transactions on Computers, 54:978–991, 2005.
Ming-Jer Tsai received the Ph.D. degree in
elec-trical engineering from National Taiwan Univer-sity in 1997. Since then, he joins Computer and Communication Laboratory, Industrial Technology Research Institute. In 2003, he joins Department of Computer Science, National Tsing Hua University, where he is currently an associate professor. His research interests include distributed systems and mobile computing. Dr. Tsai is a member of IEEE.
Hong-Yen Yang received the B.S. degree in
com-puter science from National Tsing Hua University in 2004, where he is currently working toward the Ph.D. degree. His research interests include dis-tributed and mobile computing.
Bing-Hong Liu received the B.S. degree in
com-puter science from National Tsing Hua University, in 2001. He is working toward the Ph.D. degree in the Department of Computer Science, National Tsing Hua University. His research interests include mobile and distributed computing in mobile ad-hoc networks and wireless sensor networks.
Wen-Qian Huang received the B.S. and M.S.
degrees in computer science from National Tsing Hua University in 2005 and 2007, respectively. His research interests is in distributed computing in wireless sensor networks.