# A Review of Flying Ad Hoc Networks: Key Characteristics, Applications, and Wireless Technologies
## 9 Simulation Tools  
Evaluating the performance of UAV-based communication networks in the real world is a difficult task that requires a remarkable amount of time and resources. Frequent topology changes and the high degree of mobility of the UAVs in FANETs make the practical evaluation of UAV performance a challenging, costly, and time-consuming task. In addition, due to regulations around using UAVs in most countries, certain types of cyber-attack resistance evaluation tests for UAV networks are not allowed [2]. Therefore, many flexible simulation tools, frameworks, emulators, and testbeds have been developed to make it possible to create, implement, test, and evaluate schemes virtually without requiring real-world implementation. The available FANET performances analysis tools include _AVENS_, _CUCSUS_, _Simpleeotic_, _UAVSim_, _UITSim_, _FANETsim_, _Netsim_, _OMNeT++_, _NS2_,_NS3_, _OPNET_, _ROS-NetSim_, _MATLAB_, _TOSSIM_, _QualNet_, _GloMoSim_, _YANS_, _ONE_, _SSFNet_, _FlynetSim_, _J-Sim_, _BonnMotion_, _GAZEBO_, _AirSim_, _RoboNetSim_, _Mininet-Wifi_, and _SUMO_, each of which supports different mobility models, operating system, and programming languages [119, 120, 121, 122]. Table 2 shows additional details about each simulator. Figure 8: Cloud-based UAV managing system including the three main layers: UAV, cloud, and control. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Name** & **Type** & **Mobility Model** & **Operating System** & **Programming Language** & **More Description** \\ \hline AVENS ([[http://hdl.handle.net/](http://hdl.handle.net/)]([http://hdl.handle.net/](http://hdl.handle.net/))\(10125/41924\) accessed on 21 July 2022) & Simulator & Linear Mobility & Linux, Windows, MacOS & N/A & A flight control simulator that implements co-simulation between the X/ITE Flight Simulator and an OMNET++/NET simulation for modeling UAV communication. \\ \hline CUSCUS [123] & Simulator & micro-mobility & \(>\) Ubuntu 14.04 & N/A & A simulation architecture for networked control systems which is based on two well-known solutions in the fields of networking simulation (the NS-3 tool) and UAV control simulation (the FL-AIR tool). \\ \hline Simbeeotic [124] & Simulator and Testbed & N/A & Linux & Java & Used to evaluate Micro-aerial vehicle (MAV) swarms. \\ \hline UAVSim [125] & Testbed & well-defined mobility & Windows, Linux and MacOS & C++ & An OMNET++ based UAV simulator; useful for cyber security analysis in UAV/based networks. \\ \hline UTSim [126] & Simulator and a framework & N/A Linux & Windows & Cr, JavaScript, Unity script, or BOO coding languages. & Useful for tar traffic simulation, and capable of simulating UAV physical specification, control, navigation,sensing, communication, and avoidance in environments with stationary and mobile objects. \\ \hline FANETSim [127] & Simulator & Grid & Linux Distribution & Java & Java software able to consider a set of flying UAVs in the sky, providing connectivity to the users inside the considered map. \\ \hline NestSim [128] & Simulator & RW, RWP & Windows, MacOS or Debian-based Linux. & C & Provides three different versions: NestSim, Two, Standard, and Academic, with a very intuitive GUI interface \\ \hline OMNET++ [129] & Simulator & FP, RWP, RW & Linux, MacOS, and Windows & C++, high-level language (NED) & A modular and extensible component-based network simulator used for research and commercial purposes. \\ \hline NS2 [130] & Simulator & RW, RWP, CM, MG, RFCM & Linux, Windows, MacOS & C++, with an OTGl interpreter as a front-end & A discrete event simulator used for networking research which simulates TCP routing, and multicast protocols over visited and wireless (Local and satellite) networks. \\ \hline NS3 [57] & Simulator & RW, RWP, RD, CM, MG, RFCM & Linux, Windows, and MacOS & C++, Python & Allows simulation of both IP and non-IP-based networks. It is suitable for performance evaluation of mobile ad hoc and TCP networks \\ \hline \hline \end{tabular}
\end{table}