Dynamic, Ad-hoc Source Routing with Connection-Aware Link-State Exchange and Differentiation Wei-Peng Chen and Jennifer C. Hou Department of Computer Science, University of Illinois at Urbana-Champaign wchen3,jhou @cs.uiuc.edu Abstract— In this paper, we propose an enhancement to DSR, called DSR with Connection-Aware Link-state Exchange aNd DiffERentiation (DSRCALENDER). Specifically, to effectively collect and disseminate neighbor link states to nodes which may potentially use them, we devise a neighbor link-state information exchange mechanism: once a connection has been established, the neighbor link-state information is exchanged among nodes along the route from the source to the destination. As the information of the neighbor lists is piggybacked in data packets, the nodes on the source route are able to learn the partial topology around the neighborhood of the connection. In this manner, DSR-CALENDER balances the gain obtained from additional neighbor link states and the overhead incurred to distribute them. In the case that link failure occurs, an alternate route can be more effectively located in the route cache of the source or the intermediate nodes, and the number of times the route discovery phase is invoked can be reduced. To improve the quality of route caches, we investigate all possible sources from which a node may learn of its link states, and associate each of the sources with a different level of fidelity. In the case that a new/alternate route has to be computed, the level of fidelity is figured into the link cost so as to locate a route that likely exists. The simulation results show that with limited overhead incurred in neighbor list dissemination, DSR-CALENDER outperforms DSR with either path or link caches in terms of packet delivery ratio and route discovery overhead. I. I NTRODUCTION With the proliferation of mobile computing devices, the demand for continuous network connectivity regardless of physical locations has spurred interest in the use of tether-free, mobile ad hoc networks. We envision such a network consisting of a massive number of small, lightweighted and low-powered mobile computing devices (called mobile hosts, MHs) communicating with one another using wireless radios. Two MHs are said to be neighbors if they are within the transmission range of each other; otherwise, all message communication between them must pass through one or more intermediate hosts. Here we assume that each device has the capability of packet forwarding (relying an incoming packet to one of its neighboring nodes) and the transmitted energy level can be adjusted to a level appropriate for the receiver to be able to receive the data correctly if the receiver is within the transmission range. MHs are free to move randomly in any direction, resulting in establishment of new wireless links or disconnection of existing links. The rate of topology change depends on the mobility extent, and the transmission range, of MHs. Due to the different characteristics between static wireline networks (such as the Internet) and mobile ad hoc networks, many protocols originally designed for wireline networks have to be adapted for ad hoc networks. For example, routing protocols must be adaptive and be able to maintain routes in spite of the dynamic changing network topology. In an interest to run internetworking protocols on ad hoc networks, a working group for Mobile, Ad hoc Networking (MANET) has been formed within the Internet Engineering Task Force (IETF). Several unicast routing protocols [1], [2], [5], [6], [9], [10], [16], [17], [20]have been proposed in conjunction with the MANET working group efforts, and can be categorized into two classes: table driven and on-demand driven routing protocols [18]. The main difference between these two classes is that each node in table driven routing protocols proactively broadcasts the route information it knows to other nodes, while in on-demand driven routing protocols the route information is propagated only when a source requests. There exists a trade-off between control overhead and route optimization: in table driven routing protocols the latency to discover a route is usually shorter and the route is adjusted according to topology changes. On the other hand, the control overhead incurred in on-demand driven routing protocols is much less than that in table-driven protocols. Due to the limited resource and power of mobile nodes, on-demand rather than proactive routing protocols are desirable in ad hoc networks. Among existing unicast on-demand routing protocols, the dynamic source routing (DSR) protocol [9] and the ad hoc on-demand distance vector (AODV) [17] attract perhaps the most attention. The major differences between DSR and AODV are (i) in AODV the routing decision is made hop by hop while the sources in DSR need to determine the whole path to destinations; and (ii) unlike DSR, which can keep multiple paths in the routing cache, AODV only record the information of single route in the route table. For clarity of presentation, we focus on DSR, but claim that with modest modification, the proposed approaches can be incorporated into AODV as well. There are two major problems associated with DSR/AODV: a) The routing information kept at each node may become outdated as the topology changes. When a source receives a route error message, if there does not exist a route to the destination in its routing cache, it invokes the route discovery phase to locate a new route. The number of route requests/replies may be excessive in the case of frequent topology changes, and connections suffer from service disruption during the route discovery phase. b) stale entry in the route cache may block the propagation of route requests, and pollute other route caches. In DSR, the route cache is used in the route discovery process in the following two ways: (i) before broadcasting a route request, a sender refers to its route cache to see if any route to a destination is available; and (ii) a node responds to a route request and sends back a gratuitous route reply to the sender if it knows a route to the destination, both of which significantly prevent the route request storm problem. In the route maintenance phase, the route cache is referred when a node attempts to salvage a transit packet so as to increase the packet delivery ratio.) However, the incorrect gratuitous route reply sent from intermediate nodes may block the propagation of route requests. Not only does a sender use the stale route, but also it cannot receive a fresh reply from the destination. Once a stale route is used by other nodes, it pollutes their route cache. Several previous studies [4], [7], [8], [12], [13] have indicated the negative effects of the stale route cache. With respect to the first problem, AODV-BR[11], AOMDV[14], and multipath DSR[15] have been proposed to reduce route requests, while the Location-Aided Routing (LAR)[10] intends to reduce both route requests and route replies. With respect to the second problem, route cache strategies proposed in [8], [13] attempt to purge stale caches as early as possible so as to prevent propagation of stale route information, avoid link failures, and reduce route error packets. We will summarize and categorize existing approaches and motivate our work in Section II. In this paper, we jointly address the above two problems and propose an enhancement to DSR, called DSR with Connection-Aware Link-state Exchange aNd DiffERentiation (DSR-CALENDER). Specifically, to ef- fectively collect and disseminate neighbor link states to nodes which may potentially use them, we devise a neighbor link-state information exchange mechanism: once a connection has been established, the neighbor link-state information is exchanged among nodes along the route from the source to the destination. As the information of the neighbor lists is piggybacked in data packets, the nodes on the source route are able to learn the partial topology around the neighborhood of the connection. In this manner, DSR-CALENDER balances the gain obtained from additional neighbor link states and the overhead incurred to distributing them. In the case that link failure occurs, an alternate route can be more effectively located in the route cache of the source or the intermediate nodes, and the number of times the route discovery phase is invoked can be reduced. To improve the quality of route caches, we propose to differentiate the sources from which a node collects the link state. We investigate all possible sources from which a node may learn of its link state, and associate each of the sources with a different level of fidelity. In the case that a new/alternate route has to be computed, the level of fidelity is figured into the link cost so as to locate a route that likely exists. With the clever modification, DSR-CALENDER can achieve higher delivery ratio and incur less route discovery overhead, as compared to DSR with either path or link caches. The rest of the paper is organized as follows. Section II summarizes related work. Sections III–IV gives, respectively, an overview and a detailed description of our proposed approach. Section V presents a performance study of the proposed approach. This paper concludes with Section VI. II. R ELATED W ORK In this section, we first give a succinct overview of DSR that pertains to the proposed work. Then, we categorize existing proposals to enhance the performance of on-demand ad hoc routing protocols with respect to the two problems discussed in Section I. We also discuss the merits and drawbacks of each approach and motivate our proposed work. A. An overview of DSR DSR is an on-demand, source routing protocol, with each packet carrying in its header the complete, ordered list of nodes through which the packet will be routed. DSR consists of two mechanisms: route discovery and route maintenance. When a node has a packet to send for which it does not have a route, it initiates route discovery by broadcasting a route request (RREQ). The request is propagated in a controlled manner through the network until it reaches either the destination node or some intermediate node, , that knows of a route to node . Node (or node ) then sends a route reply (RREP) to node with the new route In the case that multiple routes are located (i.e., multiple route replies are received), node selects the one with the best metric (e.g., hop count). To reduce the cost of route discovery, each node maintains a cache of source routes it has learned through route discovery or other means such as snooping routes in route replies and data packets. Each node also operates its network interfaces in promiscuous mode, disabling the address filtering function on each interface and causing the interface to receive all packets that it overhears. These packets are scanned for source routes and then discarded. All the source routes learned or overheard are aggressively used to limit the frequency and propagation of route requests. Route maintenance is the mechanism by which a node detects whether or not a route kept in its cache has become stale as a result of host mobility and topology change. When an (intermediate) node detects that the next link in a packet’s route is broken, it first sends a route error (RRER) message to the source node that generated the packet’s route. Node then attempts to salvage the packet by checking its cache to see if it knows of an alternate route to the destination node. If so, node inserts the new source route into the packet header and forwards it on that route; otherwise, the packet is simply dropped. As mentioned in Section I, the main drawback of DSR is that it can not immediately adjust routes to topology changes since a source node keeps using a route until it receives a RERR packet from intermediate nodes. Then, if no other route in the cache of the source can reach the destination, the source needs to send a RREQ to find a new route. The overhead of RREQ and RREP appears in both bandwidth consumption and transmission latency. B. Existing Work to Enhance On-Demand Ad Hoc Routing Protocols In order to mitigate the first problem discussed in Section I, several approaches have been proposed besides the standard route discovery/reply mechanism: a) Multipath DSR [15]: The multipath information is carried in route reply packets sent by the destination. When a destination receives a route request that origins from the same source and destined for the same destination, it sends back a route reply only if the route recorded in the route request is disjoint from that in the route request that arrived first. In this manner, a source has multiple, disjoint paths to a destination. When a link failure occurs on the primary route, the source uses the shortest alternate route to send packets. This process repeats until all the routes kept by the source fail, and the route discovery/reply mechanism is invoked to locate a new set of multipaths. The major drawback of this approach is that all the multiple disjoint routes are identified in the same route discovery phase, and may become outdated by the time they are used. b) Ad Hoc On-demand Multipath Distance Vector (AOMDV) [14]: Similar to Multipath DSR, the multipath information is computed during the route discovery phase. When an intermediate node receives a route request that origins from the same source and destined for the same destination, if a route to the destination is available, it sends back a route reply with node-disjoint route(s) to the source; otherwise, it forwards the request in the same manner as AODV does. On the other hand, the criteria taken by a destination to send link-disjoint replies is looser. This approach suffers from the same drawback as Multipath DSR has. c) AODV Backup Routing (AODV-BR) [11]: AODV-BR attempts to create backup paths in intermediate nodes. The backup paths are built by neighbor nodes of a forwarding node during the route reply phase. When these nodes overhear the route reply, they record the node which sends the reply as the next hop to the destination in their alternate route table. Upon receipt of a salvaged packet sent by the node that detects a link failure, a node can refer to its alternate route table to see if it can rescue this packet. AODV-BR improves the packet deliver ratio, as more routing information is kept and hence local recovery becomes more effective. Nevertheless, the improvement is not significant due to the following two reasons: first, similar to AOMDV, the alternate routes are located during the same route discovery phase. Second, AODV-BR does not reduce the number of route requests because when a route error occurs, the route error packet is sent back all the way to the source, which in turn triggers another route request. d) Location-Aided Routing (LAR) [10]: As an extension of DSR, LAR utilizes the location information obtained from the Global Positioning System (GPS) to restrict the route discovery area. For a (source, destination) pair, a request zone is defined for the route request. A node forwards route requests only if it is in the request zone. LAR significantly reduces the control overhead, but does not reduce the number of times the route discovery/reply mechanism is invoked. Its dependence on GPS also prevents LAR to be widely deployed. e) Neighborhood Aware Source Routing (NSR) [19]: NSR enhances DSR with the notion of neighborhood awareness. With periodic unknown neighbor links j h i known neighbor links data connections e ej e s fj ej e a fgh fj ej e hi fgh fj ej b hi fgh fj c hi fgh e d f hi g Fig. 1. An example of the dissemination of neighbor information exchanges of hello messages, each node maintains the neighborhood information within two hop away. The information includes the neighbor link states of the transmitter node, and can be used in two ways: (i) As NSR uses link state cache (rather than path cache), a node learns from hello packets more link states in its neighborhood which can be used in the routing decision; and (ii) NSR can salvage packets more effectively by searching an alternative link to one of the downstream nodes. To deal with the second problem discussed in Section I, Hu et al. [8] investigate the effects of updating and using route cache from three aspects, cache structure, cache capacity, and cache timeout. Two types of cache structures, path cache and link cache, have been used in the study. The link cache utilizes the collected information more effectively than the path cache. Many potential paths can be found in the link cache but not in the path cache. On the other hand, the link cache incurs higher computation complexity and is more susceptible to the effect of stale cache (the latter due to the fact that more stale caches exist in the link cache structure). Marina et al. conducted another study on the route cache [13] and proposed three mechanisms, wider error notification, timer-based route expire, and negatives caches, all of which attempt to relieve the effect of stale cache. Our proposed approach complements their mechanisms and can be readily incorporated into the latter. IV. D ETAILED D ESCRIPTION III. OVERVIEW OF DSR-CALENDER There are two objectives in the proposed approach — we attempt to accommodate DSR with more routing information (in the form of neighbor link states) and use more effectively the routing information kept in the cache. As mentioned in Section II, each node operating in the promiscuous mode can discover its neighbors by snooping packets at no extra cost. Instead of proactively broadcast link states through the entire network, the proposed approach only maintains link states around the neighborhood of established connections. Specifically, a connection is established by the standard route discovery phase of DSR. Once a connection is established, the nodes along the path exchange either their neighbor information (in the first data packet) or incremental changes in their neighbor information (in subsequent data packets). Take Fig. 1 as an example: the source node has located a route to the destination node via nodes , , and . The dashed line represents the neighbor relationship between two nodes. Each node piggybacks its neighbor list in data/acknowledgment packets, e.g., node includes in the first transit data packet the information of its neighbors and . Neighbor relationship between , , and have been indicated in the source route in the packet, and hence can be excluded from the neighbor list. When receipt of a data packet, a node can learn the neighbor link states of its upstream nodes. In TCP or other bidirectional connections, a node can also learn the neighbor link states of its downstream nodes. With the aid of the neighbor information, it is more likely for the source or intermediate nodes to perform local repair and locate an alternate route in the case that link failure occurs. As a result, the on-demand protocol will be more robust to topology changes. To reduce the overhead incurred in exchanging neighbor link states, a node attaches the entire neighbor list only in the first transit data packet, and incremental changes in its neighbor list in subsequent data packets. In fact, it is difficult to maintain an exact and synchronized link states of each node in ad hoc networks. Thus, our approach only intends to maintain loose neighbor link states. The work that comes closest to ours in the aspect of exchanging neighbor link states is NSR [19]. Both approaches enhance DSR with neighbor link states and keep link state information in the routing cache. The main differences, however, lie in that NSR intends to maintain an exact neighbor link states by having each node periodically send a Hello packet including its entire neighbor link states. These Hello packets of larger sizes contend for bandwidth with other packets. In contrast, our approach does not require additional control packets but piggybacks the (incremental) link states in data packets. By properly controlling the size of control overhead and restricting the link state update area to the vicinity of the data path (rather than the entire network), we ensure that the benefits resulted from obtaining more neighbor link states outweighs the control overhead. To more effectively use routing cache and prevent stale route cache entries from polluting other route caches, we devise a simple mechanism that differentiates the sources from which a node learns of the link state. For example, the link state learned from a node’s own neighbor (by snooping packets) is more creditable than the link state learned from a RREP sent by an intermediate node. Similarly, the link state included in the upstream part of a data packet’s source route is more reliable than that in the downstream part, as the fact that the packet arrives at the node indicates the upstream part of the source route does exist. We will provide an exclusive list of link state sources and associate them with different levels of fidelity in Section IV. Then, with minor modification to Dijkstra’s algorithm, the proposed approach can more effectively identify and purge stale route information, and select a route that is likely to exist. OF DSR-CALENDER DSR-CALENDER consists of two component mechanisms — disseminating neighbor link state and selecting a more reliable path with differentiation of link state sources. We describe each of the mechanism in details in the following two subsections. A. Dissemination of Neighbor Link States a) Maintenance of Neighbor List: In DSR-CALENDER, each node maintains its own neighbor list. Whenever a node receives or overhears a packet from other nodes, it learns the existence of a neighbor. Then it adds this neighbor to its neighbor list. The neighbor list is maintained in the form of a linked list in the chronological order from the most to the least updated neighbors. Each entry in the neighbor list contains two timestamps: (i) the construction time: the time when the neighbor was first learned of; and (ii) the update time: the latest time when the node received/overheard a packet from this neighbor. If a node receives/overhears a packet from one of its neighbors in its neighbor list, it updates the corresponding update time and moves the entry to the head of the neighbor list. Meanwhile, neighbor(s) from which the node has not received/overheard any packet for NBR LINK EXPIRE TIME units of time are purged from the list. As compared to NSR [19], DSR-CALENDER does not require the use of Hello packets to keep track of neighbors, but instead use a more passive method to collect link states. b) Dissemination Method of Neighbor Link States: With the list of neighbors collected, the next step is to disseminate the list to nodes which may potentially use it. Our objective is to disseminate the information inexpensively by limiting the extent to which the information will be broadcast and the amount of link states that will be broadcast. Specifically, DSR-CALENDER has the following characteristics: 1) Piggybacking neighbor link states in data packets: Each node on the source route piggybacks (incremental changes of) its neighbor link states in data packets. There are several advantages associated with this approach: first, the neighbor link states can be propagated in an on-demand fashion to nodes that are most likely to use them, without introducing excessive control overheads. Second, as the nodes along the source route have more link states available to them, they can locate alternative routes in the case of link failures. Unlike the other proposals with multi-paths identified during the route discovery phase, the link information kept by each node in DSR-CALENDER is kept continuously updated as data packets arrive. 2) Distributing incremental updates of neighbor link states: Another salient feature of our dissemination mechanism is that only the changes in the neighbor list (rather than the entire neighbor list) is included and propagated in data packets. This is done by having each node keeps track of, for each destination (but not for each connection) what has been piggybacked in data packets. The latest time when a node sends a packet destined for a destination is recorded. By comparing this value to the construction time of the corresponding entry in the neighbor list, a node can determine the incremental change in the neighbor link states for the destination. 3) Periodically updating all neighbor link states: In a highly mobile environment, link states may become extremely unstable. To deal with this problem, we employ the soft state approach, i.e., a link state in the cache is purged if it has not been updated for a pre-determined period of time. Also, a node periodically sends the entire neighbor list to refresh link states in other nodes’ caches. In DSR-CALENDER, the latest time when a node sends its whole neighbor list to a destination is recorded. When a node sends a data packet destined to a destination, it checks whether the difference between this value and the current time exceeds NBR ALL BROADCAST PERIOD. If so, the node appends its entire neighbor lists in the data packet; otherwise, only the incremental updates are included. Note that the updates usually include only newly added neighbors, but not deleted neighbors, unless the node detects the link failure to the neighbor(s). This is because link entries that are not updated will be purged in other nodes’ caches due to timer expiry. 4) Limiting the overhead incurred in neighbor link states: It is important to limit the size of neighbor link states to be included in data packets, because the probability of successful transmission decreases as the packet size increases. Another reason for setting such a bound is to de-synchronize the action of attaching the entire neighbor list to the same packet. We impose a limit on the size of neighbor link states that can be piggybacked in a data packet. Once the quota is depleted by nodes upstream of a node, the node has to wait for the next data packet to include its entire neighbor list (if need be). Furthermore, to prevent the quota from being depleted by upstream nodes, each node adjusts the amount of quota it is entitled to according to the length of the source route. In DSR-CALENDER, a node can not send its neighbor link states more than twice of its share. Moreover, a node only distributes neighbor link states updated within NBR SPREAD TIME seconds. This prevents potentially outdated neighbor link states from spreading to other nodes. B. Selection of Reliable Shortest Paths In order to fully utilize the neighbor list information, each node keeps a link cache instead of a path cache to record the received information. The next step is then to compute an appropriate route to a destination. As discussed in Section I, the performance of routing protocols degrades when stale routes are selected from the cache. Worse of all, the stale route may pollutes the other nodes’ cache. To deal with this problem, a node has to distinguish the fidelity of the sources from which it learns of the route, where the possible sources are forwarded packets, route reply packets, or overheard packets. For example, a route reply prepared by an intermediate node might contain a stale route. We classify different sources into different fidelity classes. The exclusive list of possible sources and their assigned fidelity classes and timeout values are given in Table I. Specifically, the sources can be classified into the following categories (the number inside the parentheses is the code number of sources in the first column of Table I): 1) Neighbor Link States (1,9,13): The most reliable source of link state is the node’s own neighbor. The neighbor link states spread to other nodes might lose their fidelity because of the time latency incurred in synchronizing link states. The update of neighbor link states is more reliable than the complete neighbor link states of a node. 2) Source Route in Data Packets (2, 3, 4, 10, 14, 15): The source route included in data packets is determined by the source. The upstream links of the route, which the packet has just traversed, are more reliable. On the other hand, the downstream links might not be reliable because the route may be determined based on stale information. The route contained in a route request can be viewed as a special case of the upstream links in a source route. It is, however, slightly less reliable than the upstream links of a source route because it has not been verified in both directions. 3) Reply Path in Route Replies (5, 6, 7, 8, 11, 12, 16, 17): A node can distinguish whether a route reply origins from the destination or an intermediate node, by checking the source ID of the IP packet. If it is different from the first ID in the source route, the route reply is from an intermediate node. The cases in which route replies are received by the requester (case 5, 6, 16) are similar to those of source routes in data packets. The upstream links are more reliable than the downstream links because the downstream links are retrieved from the cache of some other node and may be stale. On the other hand, in cases of forwarding or snooping route replies from the destination (case 7, 11), the situation is simply opposite. The downstream links indicated in the route reply from a destination are more reliable than the upstream links because these links have been verified in both directions, while only one direction is verified for the upstream links. In the case of snooping a route reply from an intermediate node (case 8, 12, 17) , the reply path can be divided into three parts and treated differently. Fig. 2 illustrates an example of a forwarding node processing the reply route. A RREQ from source is replied by an intermediate node . A RREP with the reply route, - - - , is forwarded by an intermediate node . From the perspective of node , the reply route can be divided into upstream, middle, and downstream parts. The middle part, from the replying node ( ) to itself ( ), is the most reliable information in the reply route, and can be processed in the same manner in which the downstream links of a source route in the request reply from a destination. The upstream part from itself to the source ( ) is less reliable than the middle part, while the downstream part from the replying node to the destination ( ) is the least reliable. Now an entry in the routing cache consists of three fields: the fidelity, the time of expiry, and the cost, where the fidelity and the time of expiry are in the third and fourth columns of Table I. The notion of fidelity classes among sources is used in the following two ways: First, we use the hop count as as the main metric and fidelity as the auxiliary metric in computing the shortest path. The well known Dijkstra algorithm [3] upperstream middle−stream downstream RREP from B S S A B D A B D Fig. 2. An example that illustrates how the route obtained from snooping a route reply from an intermediate node should be treated. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Source to its own neighbor source route of in the received data packets upstream source route in the forwarded data packets upstream source route in the snooped data packets reply route from destinations upstream reply route from an intermediate node snooping downstream reply route from a destination snooping middle-stream reply route from an intermediate node updates of neighbor link states source route in the route request packets snooping upstream reply route from a destination snooping upstream reply route from an intermediate node complete set of neighbor link states downstream source route in the snooped data packets downstream source route in the forwarded data packets downstream reply route from an intermediate node snooping downstream reply route from an intermediate node Fidelity 1 2 2 Timeout 3s 5s 5s 2 5s 3 3 5s 5s 3 5s 3 5s 4 4 4 5s 5s 5s 4 5s 5 5 3s 3s 6 2s 6 2s 6 2s TABLE I T HE INCLUSIVE LIST OF LINK RELIABILITY FOR ALL ORIGINS OF LINKS is used to compute the shortest path to a destination.1 In the case of a tie, the path with a higher fidelity value is selected. Second, fidelity is used to prevent a stale route from being included in the route reply to a source. A threshold is defined to restrict the routes that can be included in gratuitous replies. If the route computed has a fidelity value that is less than the threshold, this route is not included in the route reply and the intermediate node will keep forwarding the route request. V. P ERFORMANCE E VALUATION A. Simulation Environment We use ns-2 with the CMU Monarch extension [1], [21] to carry out the simulation study. The simulation environment is summarized in Table II. A detailed description of the simulation environment and the model can found in [1], [21]. In addition, important parameters used in DSR and DSR-CALENDER are listed in Table III. The send buffer maintained in each source can accommodate at most 64 packets. When the 65th packet arrives, the source drops the oldest packet. Besides, packets which have existed in the send buffer for more than send buffer timeout will be purged. To prevent stale Note that the Dijkstra algorithm is executed only if any change has occurred in its link cache since the last retrieval; otherwise, the whole source route can be obtained by backtracking the parent list of the destination to the source in the shortest path tree (SPT). Item Propagation Model MAC Node number Connection number Simulation Time CBR rate Mobility Model Range Pause max speed Value two-ray ground reflection IEEE 802.11 50 20 and 30 300 sec. 4 packets/s Waypoint 1500m * 500m 0 sec. 30 m/s TABLE II T HE SIMULATION ENVIRONMENT Item Send buffer size Send buffer timeout LINK TIMEOUT NBR LINK EXPIRE TIME NBR ALL BROADCAST PERIOD NBR SPREAD TIME MAX NBR LEN SETTINGS Value 64 packets 30 sec. 5 sec. 3 sec. 5 sec. 0.05 sec. 50 byte TABLE III T HE PARAMETER SETTINGS IN DSR-CALENDER. links from occupying the cache, links which are not updated within LINK TIMEOUT are purged. Similarly, a neighbor which has not been heard of for NBR LINK EXPIRE TIME is removed from neighbor lists. In every NBR ALL BROADCAST PERIOD a node piggybacks its entire neighbor list in a data packet, but only links updated within NBR SPREAD TIME are appended in packets. Finally, the maximum size for neighbor link states is restricted to MAX NBR LEN. Traffic sources of constant bit rate (CBR) are used in the experiments. We have considered different traffic loads and mobility in our simulation study. In particular, in what follows we report results for the cases of 20 and 30 connections with a maximum speed ranging from 0 to 30 m/s. In each scenario, four schemes are tested: two are DSR with the path cache and the link cache, respectively. They represent the baseline in the simulation. DSR-CALENDER is evaluated in the following sequence: first, the neighbor link state exchange mechanism is incorporated into the link state cache. Second, the notion of fidelity is figured into the calculation and selection of a path. The performance is evaluated with respect to the following metrics [1]: packet delivery ratio, end to end delay, routing overhead, and overhead bytes carried in the data packets. The packet delivery ratio is the ratio of the number of data packets received to that sent out. The end to end delay is the average delay incurred by all the data packets (with dropped packets excluded) from sources to destinations. The routing overhead is the average control packets generated by sources, and includes route requests, route replies, and route error packets. The average control bytes carried in a data packet includes the source route information and the piggybacked neighbor list information. This metric is used to quantify the impact of control overhead incurred in exchanging neighbor link states. B. Simulation Results Fig. 3 (a) and (b) gives the delivery ratio under the case of 20 and 30 connections, respectively. In the case of 20 connections, DSRCALENDER outperforms DSR with either link or path caches. In the case of 30 connections, the link cache is inferior to the path cache because the network is overloaded with control packets of link cache. Max. Speed DSR Path DSR Link Link+Nbr Nbr+Reliable 0 265 1178 685 692 RERQ 10 20 340 536 1206 1251 654 728 666 783 30 632 1320 833 750 0 1571 5647 3755 2475 RERP 10 20 2497 4295 7430 6548 3781 3912 2574 2993 30 5180 8065 4706 3249 0 329 319 353 312 RERR 10 20 884 1730 840 1078 617 903 699 1177 30 2344 1695 1606 1689 TABLE IV RREQ, RREQ, RERR CONTROL PACKET COUNT UNDER THE DSR-CALENDER performs slightly worse than DSR with the path cache in the case of low mobility, but outperforms in the case of high mobility. Our two mechanisms provide more choices on alternative routes to the source and intermediates. On the other hand, as shown in Fig. 3 (c) and (d), the approach with the use of neighbor link states performs best, while the approach with the use of fidelity performs worst with respect to the end-to-end delay. This is mainly caused by the longer latency incurred in responses of route requests. With the use of fidelity threshold, a node sends a reply from its cache only when a potentially high-fidelity route is found. As shown in Fig. 3 (e) and (f), as compared to DSR with the link cache (which incurs the most control overhead), DSR-CALENDER significantly reduces the normalized control overhead sent from sources. DSR-CALENDER is also quite competitive with DSR with the path cache. The detailed routing overhead results in the case of the 30 connections are given in Table IV. In DSR, the number of route requests and route replies in the case of link cache is much higher than those in the case of path cache, because the link cache approach uses the soft state but the path cache approach uses the hard state. When a link in the source route to a destination is purged and no other route is available in the cache, a new route request is sent no matter whether the link is alive. DSR-CALENDER compensates this drawback. Although the number of RREQs in our approach is higher than that in DSR with the path cache, the number of RREPs and RERRs are less than those in DSR with the path cache. Fig. 3 (g) and (h) gives the overhead of neighbor link states carried in data packets. The proportion of the overhead is about 10 % in the overall overhead of data packets. Since we set NBR SPREAD TIME to be only 0.05 second, only fresh link states are propagated to the other nodes. VI. C ONCLUSION This paper has two contributions. First, we enhance DSR with exchange of neighbor link states in a connection-aware manner. Every node piggybacks its neighbor link states (or the incremental changes of them) in data packets so that the other nodes on the source route can learn the partial network topology in the vicinity of the connection. Second, we classify the sources from which link states can be learned of into different levels of fidelity and figure them into the calculation of the most reliable shortest path. By properly controlling the overhead of the neighbor link states, we have shown through simulations that DSRCALENDER achieves higher delivery ratio. Also, the number of control packets incurred in route discovery is significantly reduced because the neighbor link states provides more alternatives to sources when link failure occurs. The overhead of neighbor link state is small as compared to the overhead of source route. The proposed approaches can be applied to not only DSR but also other link-state routing protocols. In particular, the neighbor link state dissemination mechanism can be readily incorporated into AODV. Our future work thus includes applying the proposed approaches to the other on-demand link-state routing protocols. We will also look into the issue of adjusting tunable parameters in fast-changing wireless environments. 30 CONNECTIONS CASE . R EFERENCES [1] J. Broch, D. A. Maltz, D. Johnson, Y.-C. Hu, and J. Jetcheva, “A performance comparison of multi-hop wireless ad hoc network routing protocols,” in Proc. of ACM/IEEE Int’l Conf. on Mobile Computing and Networking (MobiCom’98), October 1998. [2] T. Clausen et. al., “Optimized Link State Routing Protocol,” Internet draft, IETF MANET working group, October 2001. [3] T. H. Cormen, C. E. Leiserson, R. L. Rivest, “Introduction to Algorithms,” , MIT Electrical Engineering and Computer Science, 1990. [4] S. Das, C. Perkins, E. Royer, “Performance comparison of two on-demand routing protocols for ad hoc networks,”in Proc. of INFOCOM’00, March 2000. [5] M. Gerla et. al., “Fisheye State Routing Protocol (FSR) for Ad Hoc Networks,” Internet draft, IETF MANET working group, November 2000. [6] M.R. Pearlman and Z.J. Haas, “Determining the Optimal Configuration for the Zone Routing Protocol,” IEEE Journal on Selected Areas in Communications, Vol. 17, No. 8, August 1999. [7] G. Holland and N. Vaidya, “Analysis of TCP performance over mobile ad hoc networks,” in Proc. of ACM/IEEE 5th Int’l Conf. on Mobile Computing and Networking (MobiCom’99), August 1999. [8] Y.-C. Hu and D. Johnson, “Caching strategies in on-demand routing protocols for wireless ad hoc networks,” in Proc. of ACM/IEEE 6th Int’l Conf. on Mobile Computing and Networking (MobiCom’00), August 2000. [9] D. Johnson, D. A. Maltz, Y.-C. Hu, and J. G. Jetcheva, “The dynamic source routing protocol for mobile ad hoc networks,” Internet draft, IETF MANET working group, November 2001. [10] Y.-B. Ko and N. H. Vaidya, “Location-aided routing (LAR) in mobile ad hoc networks,” in Proc. of ACM/IEEE 4th Int’l Conf. on Mobile Computing and Networking (MobiCom’98), October 1998. [11] S.-J. Lee and M. Gerla, “AODV-BR: backup routing in ad hoc networks,” in Proc. of IEEE Int’l Conf. on Computer Communications and Networks (IC N 2000), October 2000. [12] D. A. Maltz, J. Broch, J. Jetcheva, and D. Johnson, “The effects of ondemand behavior in routing protocols for multi-hop wireless ad hoc networks,” Special issue on mobile and wireless networks, IEEE Journal on Selected Area in Communications, 1999. [13] M. K. Marina and S. R. Das, “Performance of route caching strategies in dynamic source routing,” in the Proceedings of the 2nd Wireless Networking and Mobile Computing (WNMC), Phoenix, April 2001. [14] M. K. Marina and S. R. Das, “On-demand Multipath Distance Vector Routing for Ad Hoc Networks,” in the Proceedings of the International Conference for Network Protocols (ICNP) , Riverside, November 2001. [15] A. Nasipuri and S. R. Das, “On-demand multipath routing for mobile ad hoc networks,” in Proc. of IEEE Int’l Conf. on Computer Communications and Networks (IC N 2000), October 2000. [16] V. D. Park and M. S. Corson, “Temporally-ordered routing algorithm (TORA) version 1: Functional specification,” Internet draft, IEEE MANET working group, November 1997. [17] C. E. Perkins ,E. M. Royer, and S. R. Das, “Ad hoc on demand distance vector (AODV) routing,” Internet draft, IETF MANET working group, November 2001. [18] E. M. Royer and C.-K. Toh, “A Review of Current Routing Protocols for Ad-Hoc Mobile Wireless Networks,” IEEE Personal Communications Magazine, April 1999. [19] M. Spohn and J.J. Garcia-Luna-Aceves, “Neighborhood Aware Source Routing,” Proc. ACM MobiHoc October 2001, Long Beach, California. [20] C.-K. Toh, “A novel distributed routing protocol to support ad hoc mobile computing,” Wireless Personal Communication, 1997. [21] UCB, LBNL, “VINT network simulator,” http://wwwmash.cs.berkeley.edu/ns/. 1 0.95 0.9 0.98 Delivery Ratio (%) Delivery Ratio (%) 0.85 0.96 0.94 0.8 0.75 0.92 0.7 path DSR link DSR link DSR+Neighbor Neighbor+Fidelity path DSR link DSR link DSR+Neighbor Neighbor+Fidelity 0.9 0.65 0 5 10 15 20 25 30 0 5 10 Max. Speed (m/s) 15 20 25 30 25 30 25 30 Max. Speed (m/s) (a) packet delivery ratio (20) (b) packet delivery ratio (30) 40 90 85 35 80 75 25 Delay (msec) Delay (msec) 30 70 65 60 20 55 50 15 path DSR link DSR link DSR+Neighbor Neighbor+Fidelity path DSR link DSR link DSR+Neighbor Neighbor+Fidelity 45 10 40 0 5 10 15 Max. Speed (m/s) 20 25 30 0 5 (c) end to end delay (20) path DSR link DSR link DSR+Neighbor Neighbor+Fidelity Number of normalized control packets Number of normalized control packets path DSR link DSR link DSR+Neighbor Neighbor+Fidelity 0.6 0.3 0.25 0.2 0.5 0.4 0.15 0.1 0.3 0.2 0.1 0.05 0 0 0 5 10 15 Max. Speed (m/s) 20 25 30 0 (e) normalized control packets per data packet (20) 5 10 15 Max. Speed (m/s) 20 (f) normalized control packets per data packet (30) 25 25 20 20 Normalized overhead in data packets (byte) Normalized overhead in data packets (byte) 20 0.7 0.35 15 path DSR: data link DSR: data link DSR+Neighbor: data link DSR+Neighbor: nbr Neighbor+Fidelity: data Neighbor+Fidelity: nbr 10 15 Max. Speed (m/s) (d) end to end delay (30) 0.4 10 5 0 15 path DSR: data link DSR: data link DSR+Neighbor: data link DSR+Neighbor: nbr Neighbor+Fidelity: data Neighbor+Fidelity: nbr 10 5 0 0 5 10 15 20 25 30 0 5 10 Max. Speed (m/s) (g) normalized overhead bytes carried in a data packet (20) 15 20 25 30 Max. Speed (m/s) (h) normalized overhead bytes carried in a data packet (30) Fig. 3. Performance comparison of DSR-CALENDER against DSR under the cases of 20 and 30 connections.