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
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