# List of ad hoc routing protocols

An ad hoc routing protocol is a convention, or standard, that controls how nodes decide which way to route packets between computing devices in a mobile ad hoc network.
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.
Note that in a wider sense, ad hoc protocol can also be used literally, to mean an improvised and often impromptu protocol established for a specific purpose.
The following is a list of some ad hoc network routing protocols.

## Table-driven (proactive) routing

This type of protocols maintains fresh lists of destinations and their routes by periodically distributing routing tables throughout the network. The main disadvantages of such algorithms are:
* Respective amount of data for maintenance.
* Slow reaction on restructuring and failures.
Examples of proactive algorithms are:
* Optimized Link State Routing Protocol (OLSR) RFC 3626, RFC 7181.
* Babel RFC 6126
* Destination Sequence Distance Vector (DSDV)
* DREAM
* B.A.T.M.A.N.

## On-demand (reactive) routing

This type of protocol finds a route on demand by flooding the network with Route Request packets. The main disadvantages of such algorithms are:
* High latency time in route finding.
* Excessive flooding can lead to network clogging.
Examples of on-demand algorithms are:
* ABR - Associativity-Based Routing
* Ad hoc On-demand Distance Vector(AODV) (RFC 3561)
* Dynamic Source Routing (RFC 4728)
* Power-Aware DSR-based
* Link-life base routing protocols

## Hybrid (both proactive and reactive) routing

This type of protocol combines the advantages of proactive and reactive routing. The routing is initially established with some proactively prospected routes and then serves the demand from additionally activated nodes through reactive flooding. The choice of one or the other method requires predetermination for typical cases. The main disadvantages of such algorithms are:
* Advantage depends on number of other nodes activated.
* Reaction to traffic demand depends on gradient of traffic volume.
Examples of hybrid algorithms are:
* ZRP (Zone Routing Protocol) ZRP uses IARP as pro-active and IERP as reactive component.
* ZHLS (Zone-based Hierarchical Link State Routing Protocol)

## Hierarchical routing protocols

With this type of protocol the choice of proactive and of reactive routing depends on the hierarchic level in which a node resides. The routing is initially established with some proactively prospected routes and then serves the demand from additionally activated nodes through reactive flooding on the lower levels. The choice for one or the other method requires proper attributation for respective levels. The main disadvantages of such algorithms are:
* Advantage depends on depth of nesting and addressing scheme.
* Reaction to traffic demand depends on meshing parameters.
Examples of hierarchical routing algorithms are:
* CBRP (Cluster Based Routing Protocol)
* FSR (Fisheye State Routing protocol)
* Order One Network Protocol; Fast logarithm-of-2 maximum times to contact nodes. Supports large groups.
* ZHLS (Zone-based Hierarchical Link State Routing Protocol)