## 2 State of the Art
### Routing Protocols
#### 2.2.1 Topology-Based Routing Protocols  
Topology-based routing protocols base their operation on using the links information for data forwarding. Within this category, four types of protocols can be distinguished: (i) static, (ii) proactive, (iii) reactive, and (iv) hybrid. The nodes in this network have static routing tables which are configured at the beginning of a task and do not change. Networks that implement these protocols must \begin{table}
\begin{tabular}{c c c} \hline \hline
**Work** & **Routing Protocols** & **Number of UAVs** \\ \hline Rosati et al. [4] & OLSR, P-OLSR & 2 \\ Rosati et al. [5] & Babel, OLSR, P-OLSR & 3 \\ Guillen et al. [6] & BATMAN-ADV & 2 \\ Lee et al. [7] & GCS-R, DSDV, OLSR & 6 \\ Kaysina et al. [8] & BATMAN & 1 \\ Maxa et al. [9] & SUAP & 2 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Related works that included a real FANET deployment. Also detailed are the routing protocols employed and the number of UAVs. have a constant topology, and therefore, being unable to adapt dynamically to changes, are susceptible to failures. The static routing protocols include Load Carry and Deliver Routing (LCAD) [11], Multi-Level Hierarchical Routing (MLHR) [12], and Data-Centric Routing (DCR) [13]. LCAD is based on the Store-Carry-Forward (SCF) paradigm [14]. The nodes capture the data and transport it, physically moving the message to a relay or destination node. It is usually used in DTN networks. MLHR solves the problem of scalability by clustering the nodes of the network and allowing a head node to communicate with the other head nodes of other clusters. Thus, the size and area of operation increase, but this head node can be a bottleneck and is a single point of failure [15]. DCR bases the routing on the information contained in the message. Thus, this protocol sends the information to several nodes that want specific data. Each node has its routing table which is periodically updated and shared with the other nodes. The routing tables contain the routes to send a message from a source node to any destination node in the network. The main advantage of these types of protocols is their low delay in sending messages because the path is known beforehand. However, if there are many nodes in the network, the periodic updating of the routing tables severely consumes bandwidth and energy. In addition, proactive protocols react slowly to changes in topology, having to update the routing tables of all nodes in the network. Due to these disadvantages, these protocols are not usually used in applications with FANETs with a large number of UAVs with high mobility or when energy consumption must be low. The most important protocols proposed or adapted for FANETs are Optimized Link-State Routing (OLSR) [16], Destination Sequence Distance Vector (DSDV) [17], Better Approach to Mobile Ad Hoc Network (BATMAN) [18], and Directional OLSR (DOLSR) [19]. The OLSR protocol is currently the most widely used routing protocol in ad hoc networks. The approach of this protocol is to put a _cost_ to each link (link-state) in the network. Each node evaluates the _cost_ of sending a message through a link that is directly connected and shares it with its neighboring nodes using a flooding strategy. This _cost_ can be the distance, delay, losses, bandwidth, etc. Once the view of the network has been updated, the route is searched applying the shortest path algorithm (_Dijkstra_). DSDV is a protocol based on the Bellman-Ford algorithm. It adds two parameters to vector-distance routing, which are a sequence number, to avoid loops and determine the freshness of the routes and the _Dampling_ parameter. In addition, it uses two types of packages for route updates: full-dump and incremental. The full-dump packages contain all the information in the routing table, and due to its size, it is not usually transmitted. The incremental packet is used to update the routes in the last full-dump packet. DSDV has been used extensively in the field of FANETs, as can be seen in [20; 21; 22].