What is OMNET++ ?
What is Omnet++?
According to Omnet++ Wikipedia page:
OMNeT++ (Objective Modular Network Testbed in C++) is a modular, component-based C++ simulation library and framework, primarily for building network simulators. OMNeT++ can be used for free and non-commercial simulations like academic institutions and for teaching purposes. OMNEST is an extended version of OMNeT++ for commercial use cases.
OMNeT++ itself is a simulation framework without models for network protocols like IP or HTTP. The main computer network simulation models are available in several external frameworks. The most commonly used one is INET which offers a variety of models for all kinds of network protocols and technologies like for IPv6, BGP, etc.
INET also offers a set of mobility models to simulate the node movement in simulations. The INET models are licensed under the LGPL or GPL.
Since I’m planning to explain OMNETPP therefore I just copy and paste most of the materials which you need from this link. The idea is only to present this information in another way.
Overview of the OMNeT++ IDE
The OMNeT++ Integrated Development Environment is based on the Eclipse platform and extends it with new editors, views, wizards, and additional functionality. OMNeT++ adds functionality for creating and configuring models (NED and ini files), performing batch executions, and analyzing simulation results, while Eclipse provides C++ editing, GIT integration, and other optional features (UML modeling, bugtracker integration, database access, etc.) via various open-source and commercial plug-ins.
The main ingredients of OMNeT++ are:
- Simulation kernel library (C++)
- The NED topology description language
- Simulation IDE based on the Eclipse platform
- Interactive simulation runtime GUI (Qtenv)
- Command-line interface for simulation execution (Cmdenv)
- Utilities (makefile creation tool, etc.)
- Documentation, sample simulations, etc.
During the years OMNeT++ has been available, countless simulation models and model frameworks have been written for it by researchers in diverse areas: queuing, resource modeling, internet protocols, wireless networks, switched LANs, peer-to-peer networks, media streaming, mobile ad-hoc networks, mesh networks, wireless sensor networks, vehicular networks, NoCs, optical networks, HPC systems, cloud computing, SANs, and more. Most of these model frameworks are open source, developed as independent projects, and follow their own release cycles.
The INET Framework can be considered the standard protocol model library of OMNeT++. INET contains models for the Internet stack and many other protocols and components. The INET Framework is maintained by the OMNeT++ team for the community, utilizing patches and new models contributed by members of the community. Several other simulation frameworks take INET as a base and extend it into specific directions, such as vehicular networks (Veins, CoRE), overlay/peer-to-peer networks (OverSim), or LTE (SimuLTE).
You can find a list of selected OMNeT++ models and model frameworks here.
The OMNeT++ simulation kernel is standard C++ and runs basically on all platforms where a modern C++ compiler is available. The Simulation IDE requires Windows, Linux, or macOS.
You can find the documentation of OMNETPP here and get started here. In the next post, I’m going to explain how to install OMNETPP on Ubuntu 18.04 LTS step by step.
If you are looking for the list of other simulators that they are good enough for Edge/ Fog/ Cloud Computing and IoT you can find it in the link.