Ad Hoc Routing¶
Overview¶
In ad hoc networks, nodes are not familiar with the topology of their networks. Instead, they have to discover it: typically, a new node announces its presence and listens for announcements broadcast by its neighbors. Each node learns about others nearby and how to reach them, and may announce that it too can reach them. The difficulty of routing may be compounded by the fact that nodes may be mobile, which results in a changing topology.
Ad hoc routing protocols fall in two broad categories: proactive and reactive. Proactive or table-driven protocols maintain fresh lists of destinations and their routes by periodically distributing routing tables throughout the network. Reactive or on-demand protocols find a route on demand by flooding the network with Route Request packets.
The INET Framework contains the implementation of several ad hoc routing protocols including AODV, DSDV, DYMO and GPSR.
The easiest way to add routing to an ad hoc network is to use the
ManetRouter NED type for nodes. ManetRouter contains a
submodule named routing
whose type is a parameter, so it can be
configured to be an AODV router, a DYMO router, or a router of any other
supported routing protocol. For example, you can configure
ManetRouter nodes in the network to use AODV with the following
ini file line:
**.routingApp.typename = "Aodv" # as an application
**.routing.typename = "Gpsr" # as a routing protocol module
There are also NED types called AodvRouter, DymoRouter, DsdvRouter, GpsrRouter, which are all ManetRouter’s with the routing protocol submodule type set appropriately.
AODV¶
AODV (Ad hoc On-Demand Distance Vector Routing) is a routing protocol for mobile ad hoc networks and other wireless ad hoc networks. It offers quick adaptation to dynamic link conditions, low processing and memory overhead, low network utilization, and determines unicast routes to destinations within the ad hoc network.
The Aodv module type implements AODV, based on RFC 3561.
AodvRouter is a ManetRouter with the routing module type set to Aodv.
DSDV¶
DSDV (Destination-Sequenced Distance-Vector Routing) is a table-driven routing scheme for ad hoc mobile networks based on the Bellman-Ford algorithm.
The Dsdv module type implements DSDV. It is currently a partial implementation.
DsdvRouter is a ManetRouter with the routing module type set to Dsdv.
DYMO¶
The DYMO (Dynamic MANET On-demand) routing protocol is successor to the AODV routing protocol. DYMO can work as both a pro-active and as a reactive routing protocol, i.e. routes can be discovered just when they are needed.
The Dymo module type implements DYMO, based on the IETF draft draft-ietf-manet-dymo-24.
DymoRouter is a ManetRouter with the routing module type set to Dymo.
GPSR¶
GPSR (Greedy Perimeter Stateless Routing) is a routing protocol for mobile wireless networks that uses the geographic positions of nodes to make packet forwarding decisions.
The Gpsr module type implements GPSR, based on the paper “GPSR: Greedy Perimeter Stateless Routing for Wireless Networks” by Brad Karp and H. T. Kung, 2000. The implementation supports both GG and RNG planarization algorithms.
GpsrRouter is a ManetRouter with the routing module type set to Gpsr.