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
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
Separate seedable pseudo random number generator for each module