## 5 Computing and Networking Integration
### Networking Supporting Computing  
Intuitively, networking contributes to the computational system by setting up a network topology able to support the required data exchange between all drones in the swarm. The data required by the computational system is transported using the networking system, while the outcome of the computational system of each drone is usually shared with others through the networking system, in order to allow the overall system to reach consensus. Hence, the performance of the networking system may have a significant impact on the computational capability of the drone swarm, especially for tasks that require real-time data. Based on a pure IP networking solution (e.g., typologies created and maintained by mobile ad hoc routing protocols), all drones need to know with which other drone they need to communicate in the process of a computational function (e.g., collision avoidance). This approach process leads to a scalability and performance problem, due to the amount of state that each drone needs to store, and the time needed to update that state. Hence, one potential solution passes by using a networking system based on named data objects [97], allowing each drone to fetch the required data needed for their computational function without having to know where that data is stored in the swarm system. Although a networking system able to name data objects, and not drones, may bring benefits in terms of system performance (e.g., low delays since needed data can be fetched from a cache deployed in a closer drone) it still requires a two-level operation: first all data needed for the computational function needs to be fetched; second the needed computational function (e.g., estimate an updated list of potential obstacles) needs to be discovered in the swarm \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Ref.** & **Consensus** & **Performed Function** & **Technique Deployed** \\ \hline
[93] & Paxos & \
\begin{tabular}{c} Implemented to provides guaranteed consensus \\ solution in distributed systems \\ \end{tabular} &
\begin{tabular}{c} Applies technique of flexible Paxos to \\ reach consensus \\ \end{tabular} \\ \hline
[94] & Paxos & \
\begin{tabular}{c} Provides a resolution to operational bottlenecks \\ in consensus algorithms \\ \end{tabular} &
\begin{tabular}{c} Executes programmable network hardware to \\ attain consensus service for requests \\ \end{tabular} \\ \hline
[95] & Raft & \
\begin{tabular}{c} Solves inefficiencies and leader load balance \\ issues, to enhance the stability of the algorithm \\ \end{tabular} &
\begin{tabular}{c} Uses Rbucket formed in the Kademlia protocol \\ to influence the leader election process in the \\ Raft algorithm, an approach seeking to improve \\ the algorithm \\ \end{tabular} \\ \hline
[96] & Raft & \
\begin{tabular}{c} Resolves message replication inconsistencies in \\ blockchain networks \\ \end{tabular} &
\begin{tabular}{c} The Raft algorithm is enhanced through use of \\ the Blockchain Hyperledger Fabric framework \\ \end{tabular} \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Consensus-based. system. In this case it is assumed that due to energy constraints, not all drones will be responsible to run all computational functions needed to control the overall swarm. Although such network would be focused on providing a resolution system from service names to required data, a better solution may pass by a networking system able to resolve computational functions instead of names. To that end, Named Function Network (NFN) proposed [98], would be able to resolve computational functions while allowing the requester to be agnostic about the status of the drone swarm. This property contributes to the self-organization properties of a swarm, since drones will only need to store local information. However, the usage of a networking system based on NFN would treat the drone swarm as a fully trusted entity, which may not be the case.