Routing in Mobile Ad Hoc Networks CS 598HL, 2006
Internet Routing • Inter-domain routing protocol • Intra-domain routing protocol • What are the concerns? • Typical routing algorithms and protocols? • Fundamental difference between MANET and Internt? • Can we apply Internet routing in MANET?
Shortest-path Routing • Intradomain routing seeks shortest paths • Properties for shortest path: • subpaths of shortest paths are shortest paths • the weight of a shortest path is the sum of the weights of its subpaths • Algorithms: • Dijkstra’s algorithm: builds up a shortest path tree by computing the weighted breadth first tree from the source • Bellman Ford algorithm: builds a shortest-path tree by incrementally expanding the permissible set of nodes that are allowed to be intermediate hops • Distributed Algorithm • distance vector: exchange vectors of distance estimates to destinations (e.g. RIP) • link state: maintain the entire network topology at all routers (OSPF)
Mobile Ad Hoc Networking (MANET) • No backbone infrastructure, typically operate over a single wireless channel • dynamic topologies: nodes are free to move arbitrarily • bandwidth-constrained, variable capacity links • energy-constrained operation • limited physical security • may have both unicast and multicast/broadcast traffic • typically assume reliable broadcast at the MAC/link layer • in the near term, MANET functions • as stub networks (RFC2501): all traffic carried by MANET nodes will either be sourced or sinked within the MANET • NOT as transit networks carrying traffic that enters and then leaves MANET
Architectural Considerations • Link level operation • ability to detect link appearances & failures in the presence of changing topology: • periodic probing using overhead packets (faster link status sensing) • lack of link-level ACKs of transmitted message packets (slower sensing, no overhead) • Shortest path routing: is it worth the cost ? • changing topology: slow versus fast • congested network: light versus heavy • how to handle the gray area ? adaptive
Design Options in Ad Hoc Routing • Who serve as routers: • every mobile host is a router • a subset of the nodes are routers (e.g., due to energy concerns) • every host is a router but only a subset of routers are used to generate routes (virtual backbone concept) • What info to propagate, where to propagate • link state, distance vectors, known routes, locations • Metrics for route computation • weighted shortest path, interference metrics, congestion metrics, power/energy metrics, throughput metrics • How many routes are maintained • single route for a source-destination pair • multiple routes for a src-dest pair • When to generate routes • proactive versus on demand
Destination-Sequenced Distance-Vector Routing (DSDV) • Based on the Bellman Ford routing algorithm with improvements such as freedom from loops in routing table • each node maintains a routing table • recording all of the possible destinations and the distance to each destination • each entry is marked with a sequence number assigned by the destination node • routing tables are periodically transmitted throughout the network • route updates via two types of packets: • full dump packets carrying all available routing info • incremental packets carrying the change only since last full dump
Destination-Sequenced Distance-Vector Routing (DSDV) • Associate monotonically increasing sequence number with the neighborhood update information • Enables source nodes to distinguish fresh info from stale info • Use sequence numbers to make routing loop-free • Stability heuristics: damping route update propagation by an amount of time
AODV Example • Routing request (RREQ)
Establishing reverse path • Node C receives RREQ from G and H, but does not forward it again
RREQ reaches the destination • D does not forward RREQ
Forwarding packets • Route is not in each packet
Ad Hoc On-Demand Distance Vector (AODV) • Key features • builds upon DSDV, thus a distance vector algorithm using destination sequencing for route updates • improves DSDV by generating routes on demand (instead of maintaining a complete list of routes), thus reducing the number of required broadcasts • authors classify it as a pure on-demand route acquisition system, since nodes that are not on a selected path do not maintain routing info or participate in routing table exchanges
AODV Overview • Discovers routes on an “on-demand” basis via a similar route discovery process, but uses a different mechanism to maintain routing info. • AODV uses routing table, one entry per destination. It relies on routing table entries to propagate a RREP back to the source, and route data packets to the destination. • AODV uses sequence # maintained at each destination to determine freshness of routing info. And to prevent routing loops. These sequence # are carried by all routing packets.
AODV Overview (II) • Maintain timer-based states in each node • A routing table entry is expired if not used recently. A set of predecessor nodes is maintained for each routing table entry, indicating neighbors that use the entry to route packets. These nodes are notified with RERR when the next-hop link breaks. Each predecessor node forwards RERR to its predecessors, erasing all routes using the broken link. • Optimization: • Expanding ring search: control the RREQ flood in the route discovery process. The search is controlled by the TTL field, increasingly larger neighborhoods are searched to find the destination. • Does it really buy you much?
DSR Overview • Source routing: routes are stored in a route cache, data packets carry the source route in the packet header • Route discovery • Condition: a node sends data to a destination for which it does not know the route • Actions: source floods the network with RREQ. Each node receiving RREQ rebroadcasts it unless it is destination or it has the route to the destination in its cache. • Route reply • A destination node or a node knowing the route to the destination in its cache replies with RREP. RREQ and RREP are also source routed. • Route carried back by RREP is cached at the source
DSR Overview (II) • Error handling: • If any link on a source route is broken, the source is notified by a RERR packet • Source removes any route using this link from its cache • A new “Route Discovery” process must be initiated by the source, if the route is needed. • Optimizations: • Salvaging: an intermediate node uses an alternative route from its cache, when a data packet meets a failed link on its source route • Gratuitous route repair: A source node receiving RERR piggybacks the RERR in the following RREQ, to clean the caches of other nodes that may use the failed link • Promiscuous listening: when a node overhears a packet not addressed to itself, it checks whether the packet could be routed via itself to gain a shorter route. If so, sends a gratuitous RREP to the source with the new better route.
Common features • Both discover routes only in the presence of data packets in the need for a route to the destination • Route discovery is based on query and rely cycles and route information is stored in all intermediate nodes on the route • Route table entires (AODV), route caches (DSR)
High level difference • DSR uses source routing, but AODV uses a table-driven routing framework and destination sequence # to prevent loops and determine route freshness. • DSR does not rely on any timer-based activities, but AODV does. • DSR uses routing cache aggressively, and maintains multiple routes per dest. AODV uses one route per destination. • Is this difference fundamental?
Differences between DSR and AODV (I) • DSR has access to greater amount of routing information than AODV by the virtual of SR. AODV can gather limited information. • DSR: in a single query-reply cycle, source learns route to each intermediate node in the route in addition to the dest. Each intermediate node also learns route to other nodes on the route. Promiscuous listening also helps to learn the route to every node on the route • AODV: no source routing or promiscuous listening. It causes AODV to rely on a route discovery flood more often, generating more network overhead
Difference (II) • DSR uses route caching aggressively and replies to all requests reaching a destination from a single request cycle. • Source learns many alternative routes to the destination, useful when the primary route fails. This saves overhead due to discovery flood. • AODV maintains at most one entry per dest in the routing table. The destination replies only once to the request arriving first and ignores the rest.
Difference III • DSR does not have explicit mechanism to expire stale routes in the cache (except that some are deleted by RERR) or prefer fresher routes. • RERR backtracks the data packet that meets a failed link. Nodes not on the upstream route of this data packet but using the failed link are not notified promptly. • AODV is more conservative, the fresher route is always chosen. The route deletion using RERR is also conservative. • Using the predecessor list, RERR packets reach all nodes using a failed link on its route to any destination. • Route age matters
Consequences • Application-oriented metrics --- delay and throughput • DSR outperforms AODV in less stressful situations (smaller # of nodes and lower load and/or mobility). • AODV outperforms DSR in more stress situations (more load, higher mobility) • DSR: Aggressive use of caching, lack of mechanism to expire stale cache • DSR consistently generates less routing load than AODV • Again: is this difference fundamental?
Further Discussions • Goals revisited • Route optimality, responsiveness, scalability • topological changes: slow fast • single shortest path multi-path forwarding flooding • Other approaches • Virtual backbone • Hierarchical forwarding • Landmarks, virtual coordinate • Time-domain consideration: route freshness • Geographic routing • Is there a “link” and “node”? • Connectivity graph is good for establishing connectivity • Reconsidering the graph network model