One of the most important principles in software engineering is 'don't repeat yourself'. In the case of Imalse this principle applies more to it as 'don't repeat others'. So instead of implementing a new GUI tools from the ground-up, advantage is taken of existing GUI tools. From NS-3 PyViz and NetAnim are used to animate network traffic. PyViz is a live simulation visualizer and NetAnim is an offline visualizer. The network topology editor from CORE is used to let the user create their own topology.
Main features of the GUI:
- Clear overview of every possible setting.
- Easily specify the parameters of the selected operating mode.
- Easily configure the scenario. Changes are saved in their respective config files.
- Create your own topology using the integrated topology editor. You can draw the network topology, configure the network and export the results.
- Use the integrated version of NetAnim to easily visualize the network traffic of a previously simulated scenario.
- The GUI also provides a simple live visualizer that will visualize the topology and traffic dynamically. This is based on PyViz.
- The embedded terminal will be used to quickly see the execution of a command to start-up a simulation.
Starting the GUI
This is what you will see when you start the GUI of Imalse:
There are four tabs located in the top of the window: Common settings, Topology Editor, NetAnim and Terminal. There is also a hidden tab, which you can only see after selecting a scenario. We will discuss the contents of each tab in the following paragraphs.
This tab contains a toolbox with four items: Mode, Client, Server, Botmaster. The contents of mode is shown in the screenshot above. This is where you can select the scenario and mode. Upon selecting the mode, more options will appear which you can configure. When you select a scenario a new tab will appear. In the screenshot below, the DDOS Flooding scenario is selected. We will discuss the contents of this tab shortly.
The Client, Server and Botmaster items contain the common node settings specified in the core.cmd.description module. When editing a value with the GUI the corresponding field in the file will also be edited.
Three of the most cumbersome parts of configuring an experiment is to create a suitable network topology and to configure the ip-addresses and finally specify the role of each node. Steps have been taken to make this process easier. For example, in TopologyExperiment, the IP address of each sub-network can be automatically assigned. The inet topology generator tool has been integrated to generate reasonable topologies.
However, in many cases, you would prefer to configure the topology yourself instead of using automated tools. In this case, you will have a lot of tedious typing work if you use command line tools. To make this process easier, a topology editor is embedded into the GUI. This GUI editor is an adjusted version from the GUI editor of CORE. It looks like this:
A new demo showing you how to create a topology will come soon. In the meantime you can check out this demo made by Jing Conan Wang.
The first function is suitable for those who are accustomed to work under command lines but just need a very simple visualization to check everythings goes right. You have total control using this, you can implement new command line settings, and editing network topology and ip address.
Currenly only NS3 pure simulation can be visualized using PyViz. To visualize the simulation, you just need run the simulation in sim mode and add the –SimulatorImpl=Visual in the command. The screenshot of simple visualizer is as follows: