Flow-Based Network Emulator
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
Project Members
Publications