FlowEmu is an open-source flow-based network emulator, which allows the user to model a communication system via freely connectable modules that implement different types of impairments, queues and departure processes. It comes with a Python toolchain that supports running experiments in a virtual Docker environment or on a hardware testbed. FlowEmu features a web-based Graphical User Interface (GUI) as well as a Message Queuing Telemetry Transport (MQTT) interface. Via these interfaces, the user can change the structure and parameters of the model at runtime and get real-time statistics.
The source code of FlowEmu is available under the GPLv3 license on GitHub.
Screenshot of the FlowEmu GUI
Features
Extendable set of freely connectable modules
Written in C++
Runs on Linux as a single user space process
Access to Ethernet frames via raw sockets
Python toolchain for running experiments
Supports virtual Docker environments as well as hardware testbeds
Web-based Graphical User Interface (GUI)
Message Queuing Telemetry Transport (MQTT) interface
The structure and parameters of the model can be changed at runtime
Real-time statistics
Separate seedable pseudo random number generator for each module