Table 5.
Summary of SDN simulators and emulators.
| Studies | Language | Description | Strengths | Weaknesses |
|---|---|---|---|---|
| Mininet [164] | Python | Offers a rapid prototyping workflow and virtualization functionalities to assist network developers | The emulation tool, which merges several best features of emulators, hardware testbeds, and simulators | Emulated topology can grow only with residing machine resources |
| Distributed OF Testbed (DOT) [171] | Java | Supports a cluster of computers that guarantee computation and network resources to switches, hosts, and links | Facilitates large SDN deployments by distributing the workload over a cluster of nodes | Limited number of physical machines to emulate, lacking dynamic scalability and multi-user support |
| OFNET [172] | Python | Provides built-in functionalities to test and debug, as well as traffic generation and monitoring tools | Helpful in generating network traffic, monitoring of OpenFlow messages and analyzing performance of SDN controller | Needs to be extended for large L2 network and cloud emulation platform |
| ViNO [173] | Java | Helps to create arbitrary network topologies via Open vSwitches | Domain-specific language for topologies and VM migration in least time | Scalability is not specified |
| EstiNet [175] | C | Any real application program can run on a simulated host without any modification | Provides accuracy, quickness, repetition, and scalability and supports kernel-reentering simulation methodology | Not scalable to a single process, and results cannot be repeated |
| FS-SDN [176] | Python | Supports realistic test and validation of standard networks | Scalable and accurate simulation tool | Limited debugging and tracing capabilities |
| OMNeT++ [178,179] | C++ | Used in network modeling, multiprocessors, and different distributed or parallel systems | Popular extensible, modular, component-based scalable simulation tool | Its kernel is in C++ and can only run with modern C++ compiler |
| NS-3 [181] | C++ | Offers help for OpenFlow to program network devices | Can add new protocols, supports the lowering of distance between real network and simulated network | Limited visibility of visual interface for creating topology |