# Network Diffusion Algorithms and Simulators in IoT and Space IoT: A Systematic Review
## 4 Analysis
#### 4.1.2 Cooja (With Contiki OS)  
Overview  
Cooja is a network simulator tailored for wireless sensor networks (WSNs) and IoT applications. It operates alongside the Contiki operating system, offering a versatile and scalable platform for simulating low-power and lossy networks [112]. Features
* Hardware Emulation: Allows for the emulation of real hardware platforms, enabling accurate and realistic simulations. * Multi-level Simulation: Supports simulation at different abstraction levels, ranging from high-level network simulations, where entire communication stacks and protocol behaviors are modeled without detailed hardware interactions, to low-level hardware interactions, where individual sensor nodes, CPU instructions, and radio transceivers are emulated for precise performance analysis. * Energy Consumption Analysis: Provides tools to monitor and analyze energy consumption, which are crucial for IoT applications focused on energy efficiency. * Support for Various Radio Models: Includes multiple radio propagation models to simulate diverse environmental conditions. * Easy Integration of New Protocols: Facilitates the addition and testing of new network protocols within the simulation environment. * Graphical User Interface: Offers a user-friendly GUI for setting up and monitoring simulations, making it accessible to users with varying levels of expertise. * Wireless Communication and Fault Tolerance: Cooja is primarily designed for wireless sensor networks (WSNs) and low-power IoT applications. While it does not natively support LTE and 5G, extensions can be added. It includes configurable noise models, routing algorithms, and fault tolerance mechanisms for evaluating network reliability. Requirements Addressed  
NS-3 is equipped to handle diverse network simulation requirements, making it suitable for IoT and Space IoT applications. It supports wireless communication models, including Wi-Fi, LTE, and 5G, and ongoing research explores 6G integration. NS-3 also provides modules for evaluating routing algorithms, noise models, fault tolerance mechanisms, and packet drop rates. Its detailed physical (PHY) and medium access control (MAC) layer models allow for precise performance evaluation under various network conditions. Limitations
* Scalability Issues: May struggle with simulating very large-scale networks due to performance constraints. * Limited Support for High-Level Network Protocols: Focuses primarily on low-power networks and may require extensions to support heterogeneous IoT environments with diverse communication protocols (e.g., 5G, LPWAN, and edge computing), large scale deployments exceeding 10,000 nodes, and highly dynamic network conditions such as mobile and space IoT scenarios. * Dependency on Contiki OS: Tight integration with Contiki OS may limit flexibility when experimenting with other operating systems or platforms. * Performance Overheads: Cooja's performance degrades significantly when simulating large-scale networks, particularly as the number of nodes increases beyond several thousand, due to memory constraints and CPU-intensive real-time debugging. While small-scale simulations (under 500 nodes) generally run efficiently, studies indicate that execution time and memory consumption grow exponentially with network size [113]. Simulations exceeding several thousand nodes often require optimized memory management techniques, such as reducing log verbosity and adjusting simulation granularity, to mitigate excessive delays [114]. The execution time is further impacted by complex radio propagation models, as Cooja's event-driven simulation approach tracks each node's state changes at high granularity. Additionally, being Java-based, Cooja may introduce performance overheads related to Java Virtual Machine (JVM) memory management and garbage collection, potentially leading to unpredictable execution slowdowns. Researchers have reported that simulations with 10,000+ nodes experience severe slowdowns and may require modifications or high-performance computing environments for stability [115].