An Efficient Path Selection Algorithm for On-Demand Link-State Hop

0 downloads 0 Views 142KB Size Report
rect hop-by-hop routing, every node that receives a data packet for forwarding ... on-demand link-state routing protocol has a link-state database, where each link will .... п т ℄╣ i.e. there should be a path т , which has been reported by to (п ...
1

An Efficient Path Selection Algorithm for On-Demand Link-State Hop-by-Hop Routing Soumya Roy and J.J.Garcia-Luna-Aceves Computer Engineering Department University of California Santa Cruz, CA 95064 soumya, [email protected] Abstract— Traditional routing protocols based on link-state information (e.g., OSPF, OLSR, FSR, LVA and STAR) form a network topology through the exchange of link-state information by flooding or by reporting partial topology information and compute shortest routes to each reachable destination using a path-selection algorithm like Dijkstra’s algorithm or the BellmanFord algorithm. However, in an on-demand link-state routing protocol, no one node needs to know the paths to every other node in the network. Accordingly, when a node chooses a next hop for a given destination, it must be true that the next hop has reported a path to the same destination; otherwise, packets sent through that node would be dropped. Traditional path selection algorithms do not consider this constraint and cannot be used for computing shortest paths in emerging on-demand link-state routing protocols based on hop-by-hop packet forwarding rather than source routing. In this paper, we present a new path-selection algorithm that computes shortest paths with the above on-demand routing constraint. This algorithm has ( 2 ) complexity, which can be less complex than Dijkstra’s algorithm ( ( 2 )) when 2 (d: density of the graph and n: number of nodes).

O nd On

d

n

I. I NTRODUCTION In the wired networks of the Internet, proactive routing protocols are used to compute routes to all destinations in the network. However, proactive routing protocols are not suitable for highly dynamic mobile ad hoc networks, because continuous route maintenance for all possible destinations is expensive and may not be necessary. Because routes may break and be established frequently in ad-hoc networks, pro-active maintenance of paths does not scale well. To minimize control overhead, ondemand routing protocols maintain paths to only those destinations to which data must be sent and the paths to such destinations need not be optimum. Several on-demand routing protocols have been proposed to maintain routing tables efficiently in ad-hoc networks (e.g., dynamic source routing (DSR) [1], ad-hoc on-demand distance vector (AODV) [2] routing, temporally ordered routing algorithm (TORA) [3], routing on-demand acyclic multipath (ROAM) [4], source-tree on-demand adaptive routing(SOAR) [5]). In link-state routing protocols, meant for mobile ad-hoc networks, partial link-state information, instead of complete linkstate information can be used for computation of paths to destinations, because all nodes need not have to compute paths to every other destination. Moreover, complete flooding of all the links in the network is expensive and hence that method cannot be applied for mobile ad-hoc networks which have highly dynamic topologies and limited bandwidth. This work was supported in part by the Defense Research Projects Agency (DARPA) under grant F30602-97-2-0338 and by US Air Force/OSR under grant F49620-00-1-0330.

Limiting link-state updates can be achieved in link-state routing protocols in various ways. Proactive protocols like OLSR [6], FSR [7] and STAR [8] use selective flooding of links by selecting designated routers for flooding or changing the periodicity of reporting link-status information or by reporting links that belong to source trees. For reactive or on-demand routing protocols, link-state updates can be generated or forwarded based on only the active usage of links for data forwarding. Hence, each node may not know how to reach every other node in the network, even when all nodes remain connected. For correct hop-by-hop routing, every node that receives a data packet for forwarding should have a correct route for the destination. Therefore, while computing routes, a node should be allowed to choose a neighbor as the next hop for certain destinations only if that neighbor has advertised routes for those destinations; otherwise, packet forwarding would be incorrect. Unfortunately, the Bellman-Ford algorithm or Dijkstra’s algorithm do not place any constraint for the computation of routes, and new path selection algorithms are needed to account for the on-demand routing constraint. Section II describes the methods by which the routing protocols can use link-state information on-demand and illustrates the use of new path selection algorithm. Every node running an on-demand link-state routing protocol has a link-state database, where each link will contain information about (a) link cost, (b) sequence number (this information can be optional depending on how the routing protocol validates link status) and (c) list of neighbors who have reported usage of this link. The last set of information will be used to determine whether a particular link can be added to the path to a destination through a neighbor, based on whether the neighbor has reported the link. The path selection algorithm presented here consists mainly of selecting the possible valid paths for a destination under the on-demand routing constraint, and then determining a valid path of shortest length. Section III describes how to find the possible paths for a destination. Section IV illustrates the method for finding the best path among the possible valid paths. Based on a given topology, the path selection algorithm also projects the potential best path to reach a destination (which is unreachable due to the link-state on-demand routing constraint), such that the nodes in the estimated best path can then be forced to adopt that path for correct and efficient data packet forwarding. Section V proves that the given path selection algorithm is correct, i.e. that it correctly computes the best path to reach any destination under the on-demand routing constraint. Section VI concludes the

2

paper.

c

(c)

(c)

e

f (c)

II. PATH S ELECTION FOR O N -D EMAND L INK -S TATE ROUTING Considerable effort has been devoted for using distance vector information on-demand(e.g., AODV [2], DST [9], ROAM [4]) or path vector information on-demand (e.g., DSR [1]), but not much work has been done for exploring the use of link-sate information on-demand in routing. Most of the link-state routing protocols that have been devised for mobile ad-hoc networks are pro-active, like OLSR [6], STAR [8], FSR [7], TBRPF [10] while the source tree on-demand adaptive routing (SOAR) [5] is the only protocol reported to date that uses link-state information on-demand. The key idea in SOAR is for wireless routers to exchange minimal source trees, consisting of the state of the links that are in the paths used by the routers to reach only important destinations. Important destinations are active receivers of data packets, relays, or possible relays. Minimal source trees can be reported incrementally or atomically, and updates to individual links in source trees are validated using sequence numbers. A wireless router uses its outgoing links and the minimal source trees received by its neighbors to get a partial view of the network topology and computes its source tree using a local path selection algorithm. A key difference in the local path-selection algorithm needed in on-demand link-state routing protocols compared to traditional shortest-path algorithms used in proactive routing protocols is that each router advertises only those links necessary for data forwarding, rather than all links in the network. Accordingly, simply running a traditional shortest-path algorithm like Dijkstra’s algorithm at router i on the graph resulting from the aggregate of all links reported by its neighbors can lead to a solution in which the shortest path obtained by router i for destination j involves a neighbor k that has actually no path to that destination. Therefore, packets meant for destination j cannot be forwarded to node k , because neighbor k would then drop all the data packets meant for node j . Fig. 1 illustrates this situation. The figure shows the partial topology at node a, which has been built based on its outgoing links and the inputs from its two neighbors, b and . Each link in the partial topology lists the neighbors of node a that have reported the links. For example, node b has only reported the link b d, while link g h has been advertised by only. A traditional path-selection algorithm like Dijkstra’s shortest path first algorithm or the Bellman-Ford algorithm finds the shortest path from a source to any destination. However, when any of these algorithms is run on the partial topology at node a, node b will be selected as the next hop to reach node g or node h. Node b has not advertised any path to node h and therefore, node b may not know about node h0 s existence. In such a case, packets for node h forwarded to node b will be dropped. The invalid path along which packets for node h can get forwarded is [a ef gh] and the path selection algorithm should find that valid path, rather than the shortest path. Correct hop-by-hop routing would then be possible. Of course, if source routing is enabled as in DSR, then the packets can always be forced on the shortest path [abdgh℄, without the intermediate routers setting up any route for destination

(c)

(c)

g

a (b)

b

(c)

h

(b) (b)

d

Fig. 1. Example explaining the requirements of a new path selection algorithm for routing protocols using link-state information on-demand

h. However, our focus is on correct route establishment at each node for hop-by-hop packet forwarding, rather than source routing because source routing requires modification of current IP forwarding mechanism and incurs extra overhead in each data packet. Therefore, to prevent incorrect packet forwarding for hop-by-hop routing, the local path-selection algorithm should ensure that the links in the anticipated path from any node i to any node j through neighbor k have been advertised by neighbor k itself. This leads to the following important property that a path-selection algorithm for on-demand link-state routing should satisfy for choosing a route for a destination. Property A : all links in the computed path to a destination through a neighbor should be advertised by the neighbor itself. Because our objective is to choose the shortest among the possible valid paths, the path selection algorithm should satisfy the following rules : Rule 1: If pji be the path computed to reach j at i through neighbor k , then pji = [lik pjk ℄) i.e. there should be a path pjk , which has been reported by k to i (lik : link from i to k ), which becomes a subpath of pji . This rule follows from Property A. Rule 2: There can be several potential paths that satisfy Rule 1. However, for final route computation paths with the smallest length should be chosen. Rule 3: If a particular node has to be reached via multiple paths due to Rule 1 and Rule 2, only a single path has to be chosen to reach that node. In that case, nodes that are in the unselected paths may become unreachable. For example, in Fig. 1 there are two valid paths for node g namely abdg to reach node d and a ef g while reaching node h. Path abdg through neighbor b has to be selected because that is the shortest path to node d. In that case, node h will become unreachable because the only valid path to reach h has been advertised by neighbor and neighbor b is the next hop for the predecessor of node h. The ideal path selection algorithm should choose the appropriate predecessor and successor with the objective to minimize the number of nodes becoming unreachable, i.e. to maximize the number of nodes for which routes can be obtained. Dijkstra’s algorithm or the Bellman-Ford algorithm do not satisfy Rule1 and hence, cannot be used directly as the path selection algorithm for on-demand link-state routing. The proposed shortest path selection algorithm for selecting shortest paths in on-demand link-state routing protocols consists of selecting the valid paths for a destination, and then choosing the shortest among the valid paths with the objective of having finite cost paths for maximum number of destinations. The following two sections describe each phase of the path selection

3

For example, corresponding to node n8 the valid paths are: (1) through neighbor a, with predecessor n5 and distance four and (2) through neighbor b, with predecessor n5 and distance four. By including paths belonging to source trees of neighbors only, Rule 1 is automatically taken care of.

process. III. F INDING VALID PATHS n1 a

n5

(a,b) (c)

n

(a)

b

n2

Node a b c n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11

6

(b) (c)

c

n8 (a,b)

(a) (b)

i

D ESTINATION

FOR A

n9

n3 (c) (b)

(b)

n4

(c)

n7 (c)

n 10 (c)

n 11 (c)

Fig. 2. Partial Topology

In source-tree-based link-state routing protocols, each node gathers link-state information from its neighbors in the form of source trees and forms the partial topology of the network. However for space reduction, the individual source trees of each neighbor are not stored. Corresponding to each edge in the network, the list of neighbors who have reported that link is maintained. Using this list, the source tree of each neighbor can be rebuilt. To rebuild each of the neighbor’s source graphs requires scanning through each link in the topology with finite cost and list each link under each neighbor who has advertised that link. Such a list automatically becomes the source tree of each of the neighbors. The complexity of re-building source trees is O(nd2 ), because scanning takes O(nd) operations and inserting each link to the source trees of d neighbors takes O(d) operations (n : number of nodes in the graph and d : density). Fig. 2 shows the partial topology at node i, where corresponding to each link the neighbors who have advertised that link have been listed. Fig. 3 shows the source trees of neighbors a, b and

rebuilt from the partial topology of node i.

n1

n2

n2

n5 n8

c

b

a

n1

n1

n3 n7

n5

n6

n8

n4 n3 n7 n 10

n9

n 11

ab

Fig. 3. Source Graphs of neighbors , , at i

Next, the valid paths for each destination in the form of tuples are determined by doing depth first traversal on the source graph of each neighbor. For each destination atmost d valid paths are theoretically possible, depending on whether a neighbor has advertised a path or not. The complexity of a depth-first traversal is O(n) for a tree with n nodes; therefore, for d neighbors the total complexity is O(nd). Table I shows the valid paths for each node in the network of Fig. 2 in the form of fnexthop; prede essor; distan eg information. These paths have been computed after doing the depth first traversal on the source trees of each neighbor of node i.

fdistan e; nexthop; prede essorg

num options 1 1 1 3 2 2 1 2 2 2 2 1 1 1

fnext hop, predecessor, distanceg fa, i, 1g fb, i, 1g fc, i, 1g fa, a, 2g, fb, b, 2g, fc, c, 2g fa, a, 2g, fb, b, 2g fb, b, 2g, fc, c, 2g fc, c, 2g fa, n1 , 3g, fb, n1 , 3g fc, n1 , 3g fb, n3 , 4g, fc, n4 , 3g fa, n5 , 4g, fb, n5 , 4g fb, n7 , 5g fc, n7 , 4g fc, n1 0, 5g

TABLE I N EXT HOP, PREDECESSOR AND DISTANCE INFORMATION AFTER DEPTH FIRST TRAVERSAL THROUGH EACH SOURCE GRAPH

IV. C HOOSING T HE B EST ROUTES After computing all valid paths for a particular destination, the next step consists of finding the shortest among them. Shortest routes for each destination are then aggregated to find the source tree that includes paths to maximum number of nodes without any multipath for any destination. When this algorithm terminates, it also finds the feasible routes for nodes that are not reachable due to the constraint of Rule 1. For example, corresponding to the example of Fig. 1, the path selection algorithm would find the feasible path [abdgh℄ for the unreachable node h. The routing protocol can then taken appropriate steps to ensure route set-up along the path [abdgh]. Among the different valid paths, the least-cost paths to any destination are only considered for the final route selection, thereby satisfying Rule 2. Because the aggregation of least-cost paths may form a graph, a single node can be reached via multiple paths. When a particular next hop nx is chosen for the route to a node x, it can automatically exclude from the final source tree several other nodes, that are descendents of x and further away from the source, because in the given topology, links that comprise the paths to those nodes might not have been advertised by neighbor nx . The optimal path selection algorithm should minimize the number of nodes being excluded from the final source tree. Finding the least-cost paths among the possible valid paths to reach any destination requires two operations : (a) finding the minimum cost among the possible options (O(nd)) and (b) selecting the paths which are of least cost (O(nd)). Table II shows the least-cost paths possible based on the source trees represented in Table I. The column min dist shows the minimum length of the best paths to a destination x, best options shows the total number of neighbors who have advertised paths of smallest length. x refers to the nodes which are directly reachable along the least-cost paths through node x, while bnh ( best next hop) shows the neighbors that have advertised the least-cost paths to node x, px refers to the predecessors through which node x can

4

be reached. Looking at the row corresponding to node n1 in Table II, we have the entry [n1 ; 2; 3; fn5; n6 g; fa; b; gfa; b; g]. The entry implies that : 1. Least-cost paths to n1 are of cost two. 2. There are three possible least-cost paths to n1 , each of which is of cost two 3. Node n1 is the predecessor for the computed paths to nodes n5 and n6 . 4. The two sets, next-hop set fa; b; g and predecessor set fa; b; g have a one-to-one mapping and the set fa (first entry in the first set), a(first entry in the second set) g refers to the leastcost path to n1 through neighbor a with the predecessor being also node a. As shown in Table II, the least cost path to reach node n7 among the two valid paths through nodes b and (as shown in Table I) is through node . The next step of the operation is to Node a b c n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11

min dist 1 1 1 2 2 2 2 3 3 3 4 5 4 5

best options 1 1 1 3 2 1 1 2 1 1 2 1 1 1

x n 1 ; n1 n 1 ; n2 n 1 ; n3 ; n4 n 5 ; n6 X X n7 n8 X n9 ; n10 X X n11 X

bnh

px

a b c a, b, c a, b c c a, b c c a, b b c c

i i i a, b, c a, b c c n 1 ; n1 n1 n4 n 5 ; n5 n7 n7 n10

TABLE II E NTRIES SHOWING THE BEST OPTIONS AMONG THE VALID PATHS

choose among the valid least-cost paths only those paths aggregation of which will form the source tree with maximum number of nodes in it. This can be formally described as follows. Problem statement: Given a set of least-cost paths by which the nodes in a network can be reached, the successor in the route for each destination in the network topology has to be determined such that finite-cost paths for the maximum number of nodes can be obtained. If the links are extracted from any least-cost path to each node in the network and a graph is formed, then the graph may not be a tree, which implies that a particular node can be reachable from a source through multiple paths which violates Rule 3. Therefore, an algorithm that just picks a least-cost path for any destination is not sufficient to satisfy Rule 3. Procedure makeRtSelections (Fig. 6) does the final path selections while ensuring Rule 3 is never violated. Procedure makeRtSelections can be divided into two distinct operations: (a) The first operation chooses among all least-cost paths to a node the paths which can accommodate the maximum number of nodes. The process starts from the leaf nodes and ends at the source. (b) The second operation is about making decisions of the next hops for each destination among the possible options evaluated in the first operation. These decisions are made along the reverse direction from the source towards the leaf nodes. Final selections are made for ultimate installation of routing entries in the routing table. Table III shows the results of the Procedure makeRtSelections.

Node a b c n1 n2 n3 n4 n5 n6 n7 n8 n9 n10 n11

fnh, distg]

[selec best options, count, X X X [2, 3, a, 3 , b, 3 [2, 1, a, 1 , b, 1 [1, 1, c, 1 ] [1, 4, c, 4 ] [2, 2, a, 2 b, 2 [1, 1, c, 1 ] [1, 3, c, 3 ] [2, 1, a, 1 b, 1 [1, 1, b, 1 ] [1, 2, c, 2 ] [1, 1, c, 1 ]

f gf f gf f g f g f gf f g f g f gf f g f g f g

g] g]

g] g]

[nh, pred, dist] [a, a, 1] [b, b, 1] [c, c, 1] [b, b, 2] [b, b, 2] [c, c, 1] [c, c, 1] [b, n4 , 3] [NULL, NULL, ] [c, n4 , 3] [b, n5 , 4] [NULL, NULL, ] [c, n7 , 4] [c, n10 , 5]

1

1

TABLE III F INAL C OMPUTATION

The first column shows the results of the first operation while the second column shows the tuple fnext hop, successor, predecessorg for each destination after the completion of the second operation. Fig. 4 depicts the steps taken during the two operations of procedure makeRtSelections. In the figure, STEP x denotes the xth iteration during the first operation and REVERSE y denotes the y th iteration in the reverse operation. The nodes are arranged in different layers based on their minimum distance from the source i and links have been drawn between nodes based on parent-child relationship along the least cost paths, that have been shown in Table II. For example, node n1 has three possible parents (a; b; ) and two children (n5 ; n6 ) and they are connected by solid links. During the first operation, solid links are traversed from leaf nodes (with minimum distance five) towards the source and choices are made while maximizing the count of children at each node. The count of children at each node refers to the total number of nodes including itself that can be possibly included in the final source tree if a particular next hop is chosen. To illustrate, if node n1 is reached via , then the total number of nodes (referred to as count in the pseudo code) which can be reached from n1 onwards is two, while if either a or b is chosen the count becomes three. Hence, is excluded as a choice of next hop for n1 and the total number of paths (sele best options) possible becomes two, count is three, while fa, 3g and fb, 3g show the possible tuples of fnext hop, distanceg. During the second operation, traversals are made along the dashed links, when the final route selection among sele best options is done. If node n2 can be reached via node a as well as via node b, node b can be chosen randomly because choice of any one of the nodes a or b as next hop will give the maximum count at node n2 . (According to the routing table, if node b is the current successor to reach node n2 , then node b becomes an automatic choice). Similarly, next hop to reach node n1 becomes node b. Node b also becomes next hop for node n1 ’s successors n5 and n8 . (n5 chooses b, since its only possible predecessor n1 has chosen that also). Node n6 ’s path is only through node with predecessor n1 , but n1 is only reachable through b. So that gives a [NULL (next hop), NULL (predecessor), 1 (distance)] entry corresponding to n6 which implies n6 will be left out from the finally computed source tree. If node b would have advertised link n1 -n6 , then n6 could have been

5

included in the final source tree. Therefore, corresponding to n6 [ibn1 n6 ] would be chosen as the feasible path to reach n6 . Through message exchange in the routing protocol, intermediate nodes b and n1 can be forced to advertise path to n6 and after that the path to node n6 can be added in the source tree. Fig. 5 shows the minimal source tree computed based on the final results from the second column of Table III. i

STEP 5

c

min dist = 1

STEP 4 min dist = 2

(c,6)

n3

n4

(c,3)

n

REVERSE 1

REVERSE 3

5

(a,2; b,2)

n10

n 8 (a,1; b,1)

(c,2)

REVERSE 4

these paths are ruled out STEP 1 min dist = 5

n

n9 (b,1)

11

(c,1)

:

=

0

=

= 0; [

=1

REVERSE 2 n2 (a,1; b,1)

(a,3; b,3)

n 6 (c,1)

n7

STEP 2 min dist = 4

a (c,4)

n1

(c,4)

(c,1)

STEP 3 min dist = 3

b (b,5)

Procedure makeRtSelections () 1;TRT refers to the temporary routing table 2;among the entries in TRT only those which are active 3;are kept in the routing table 4 ;snhu list of selected next hops of u 5 ;sele best optionsv : possible least-cost options while maximizing count 6 ;d to node v from source i v : minimum distance 7 scan through d v foreach v and 8 find max dist (the maximum distance of any node from i) 9 for (i max dist; i > ; i ) sele best optionsv 10 11 if (i max dist) ; leaf nodes 12 foreach vertex v sort list i 13 for (k k < num optionsv ; k ) sele best options 14 15 snhv sele best optionsv bnhv k 16 v: ount snhv sele best options 17 continue 18 if (i ) ; node is next hop 19 foreach vertex v sort list i 20 T RTi :v:next hop v 21 v i 22 continue 23 foreach vertex v sort list i 24 max ount 25 if v is leafnode 26 execute steps same as for nodes farthest from i 27 continue Choosing the possible routes that give maximum count 28 foreach child v 29 for (l ; l < sele best options ; l )

ount: snh l 30 31 if (max ount < ount: snh l ) 32 max ount ount snh l 33 foreach child v 34 for (l ; l < sele best options ; l ) 35 if (max ount

ount snh l 36 AND snh l = snhv ) sele best optionsv 37 38 snhv sele best optionsv snh l 39 spv sele best optionsv vsnh [l℄ Reverse operation for final route selection ; i < max dest; i ) 40 for (i 41 foreach vertex v sort list i 42 for (m ; m < sele best optionsv m ) 43; if (snhv m T RTi :v:next hop) m ; break 44; 45 if (among the sele options if among the predecessors none 46 of them are reachable through same next hop) dist 47 48 next hop NULL 49 else 50 ;x can be the index chosen using the two conditions 51 ;specified in the text or otherwise it can be any one of them T RTi :v:next hop snhv x 52 53 v vsnhv [x℄

REVERSE 5

Fig. 4. Pictorial Depiction of the process of Route Selection (according to procedure makeRtSelections)

2

[℄

++

[

[

2

2

=

2

[

=

[

[

a

c

b

n1

n2 n5

n3

[℄ 1

[ ℄= ++

; ++

1

[℄

Fig. 6. Procedure makeRtSelections

n4 n7 n 10

n8 n 11

Fig. 5. Source Tree Built after the execution of path selection algorithm on the partial topology of Fig. 2

The complexity of Procedure makeRtSelections is O(nd + Accordingly, by considering each step taken for the path selection the complexity of the entire path selection algorithm becomes O(nd2 + 2nd + nd + nd + 2nd2) = O(4nd + 3nd2 ) = O(nd2 ). If the degree d is kept constant and the number of nodes

2nd2 ).



++ [ [ ℄℄ [ [ ℄℄ ++ [ [ ℄℄ ++ ℄ [℄ ℄

++ [℄

=

i



[℄

[ ℄℄ + +

2 =0 [℄2

= 2 =0

++

[℄

0

=0

=2

movement from source to leaf nodes movement from leaf nodes to source (x,n) => x: neighbor, n: number of nodes in the subtree through x

0

increases, then the complexity of this path selection algorithm is O(n), which is less complex than Dijkstra’s algorithm, with complexity O(n2 ). Our route selection method is a greedy algorithm and it chooses the plausible next hops at a particular node by maximizing its number of children, irrespective of the choices made by other nodes equidistant from the source (during forward operation of Procedure makeRtSele tions). The choices thus made, do not guarantee an optimal solution i.e. maximum number of nodes may not be included in the final source tree. Fig.7 shows when that can happen. Fig.7(b) shows the source tree computed from the partial topology of Fig.7(a) based on this algorithm. Each link in the partial topology graph shows the neighbors which have advertised that link. Let us assume that nodes n1 and n2 have to choose the plausible successors during the forward operation of makeRtSele tions. Nodes n1 and n2

6 i

i

a

x (x)

b

(a)

y

(b)

m1

m2

(x) (x)

c1

1

b

y

m1

m2

n

n

(b, y)

(x, a) n

a

x

(y)

(b)

(a) c2

n

2

(a,b)

(y) c3 (y)

1

2

c2

(y)

(b)

(a)

Fig. 7. (a) Partial Topology at node i (b) Source Tree Computed based on the new path selection algorithm

choose nodes a and b respectively as the successors in the routes to reach those nodes, because at node n1 the maximum number of children can be included if a is chosen as the next hop. Similarly, choosing b as the next hop will give the maximum number of children at n2 . It should be noted that when n1 or n2 chooses a or b as potential successor respectively, the subtrees headed by

1 or 3 get automatically excluded from the final source tree. During the reverse operation of makeRtSele tions, when the final successor selections are made, 2 can choose either n1 or n2 as the predecessor. Since 2 chooses n2 as the predecessor, the number of children reachable through node n1 in the final source tree becomes zero. The solution would have been optimal if n1 chooses a as successor while n2 chooses y as the successor. In that case only the subtree headed by 1 gets excluded. V. C ORRECTNESS

OF

PATH S ELECTION

0

0

2

v

Theorem 1: If STi (= (V ; E )) is the final computed 0 source tree, the distance to each v 2 V , according to STi is the shortest path based on the given topology (G = (V; E )) and considering Rule 1. 0 Proof: Let dv be the distance to vertex v 2 V according to STi and Æ  (i; v ) be the shortest distance from i to v under the constraint of Rule 1, given a topology at node i. Using depth-first traversals through each neighbor’s source graph, we compute Æ n (i; v ), i.e. the shortest distance from i to v through neighbor n. n dn 8n 2 Ni (Ni is the neighbor Let v = Æ (i; v ) set). According to the algorithm, the best next hops (bnh 2 Ni ) for any destination v are chosen such that the following is satisfied, n dbnh v = min[Æ (i; v )℄8n 2 Ni . bnh Because of Rule 1, dv = Æ  (i; v ) for each bnh. In STi , snh is the selected next hop for reaching v and snh is selected from  the set of bnhs, which implies that dv = dsnh v = Æ (i; v ). Theorem 2: Using a given topology if one run of path selection algorithm does not yield optimal solution, the optimal solution can be obtained by message passing with certain relevant nodes. Proof: Let v be any node that is included in STi i.e.

0

V . Let nhv be the next hop to reach v according to STi . This implies that ountv :nhv = max( ountv :ni ) ni Ni , where ountv :n is the total number of nodes in the subtree rooted at v and advertised by neighbor n. Let us assume that a node u has been left out of STi (i.e. 0 u (V V )). Without loss of generality, let an upstream node of u according to one possible least cost path from i to u be v .

8 2

2

An on-demand routing protocol based on link-state information can be defined such that, a node could ask its neighbor(s) to enact a form of “forced routing” along the path [ nhv , ...., v ] for any node that belongs to SU BT v and has been excluded from the final source tree. Due to ”forced routing” nhv would be forced to advertise the subtree ( SU BT v ) rooted at v . Let be the total nodes in SU BT v excluding v . Then the new 0 count value, ount :nhv = ountv :nhv + > max[ ountv :ni ] 0 = max[ ountv :ni ], because forced routing has been done only through v and not through any node ni (ni 2 Ni where ni 6= 0 nhv , ountv :ni = ountv :ni ). This implies that nhv would be selected as the next hop for v , and any node u left out in STi before would be included, hence giving the optimal solution. VI. C ONCLUSIONS Traditional shortest-path algorithms work correctly only when all nodes maintain routes to all destinations. However, in on-demand routing protocols a node need not maintain routes to all destinations. Accordingly, such algorithms as Dijkstra’s shortest path first or the Bellman-Ford algorithm cannot be applied for computing paths when there is an on-demand routing constraint dictating that a neighbor can be chosen as the next hop to a destination only if that neighbor has advertised a path to the destination. In this paper, we have presented a new path selection algorithm that enables correct path computation in routing protocols based on hop-by-hop packet forwarding and on the exchange of link-state information on-demand. R EFERENCES [1]

D. B. Johnson and D. A. Maltz, “Dynamic Source Routing in Ad-Hoc Wireless Networks,” Mobile Computing, 1994. [2] C. E. Perkins and E. M. Royer, “Ad Hoc On-Demand Distance Vector Routing,” in Proc. of IEEE WMCSA’99, New Orleans, LA, 1999. [3] V. D. Park and M. S. Corson, “ A Highly Adaptive Distributed Routing Algorithm for Mobile Wireless Networks,” in Proc. IEEE Infocom’97, Kobe, Japan, April 1997. [4] J. Raju and J.J. Garcia-Luna-Aceves, “ROAM: A New Approach to On-Demand Loop-Free Multipath Routing,” in Proc. IEEE IC3N, Boston,Massachusetts, October 1999. [5] S. Roy and J.J. Garcia Luna Aceves, “Using Minimal Source Trees for On-Demand Routing in Ad Hoc Networks ,” in IEEE Infocom, Anchorage, Alaska, 2001. [6] P. Jacquet, P. Muhlethaler, and A. Qayyum, “Optimized Link State Routing Protocol,” in draft-ietf-manet-olsr-04.txt, http://www.ietf.org/internetdrafts/draft-ietf-manet-olsr-04.txt, March, 2001. [7] M. Gerla, X. Hong, and G. Pei, “Fisheye State Routing Protocol (FSR) for Ad Hoc Networks,” in draft-ietf-manet-fsr-02.txt, December 17, 2001. [8] J.J.Garcia-Luna-Aceves and M.Spohn, “Transmission-Efficient Routing in Wireless Networks using Link-State Information,” ACM Mobile Networks and Applications Journal, accepted for publication in Special Issue on Energy Conserving Protocols in Wireless Networks, vol. 6, pp. 223–238, 2001. [9] J. Raju and J. J. Garcia-Luna-Aceves, “Efficient On-Demand Routing Using Source-Tracing in Wireless Networks,” in IEEE Globecom, 2000. [10] R. G. Ogier, F. L. Templin, B. Bellur, and M. G. Lewis, “Topology Broadcast Based on Reverse-Path Forwarding (TBRPF),” in draft-ietf-manettbrpf-05.txt, 1 March 2002.

Suggest Documents