Components

DES-Exp

DES-Exp provides an experiment manager which handles the tasks to create, schedule, and execute experiments. The actual execution of an experiment is carried out automatically: The researcher specifies the preferred starting time and is notified via email after the execution when the results are available. Therefore, the execution of the experiment can not be influenced by the researchers interactions. This ensures a high degree of reproducibility in case the same experiment is repeated multiple times.

The functionality of DES-Exp is provided by two main applications: A web application realized as a Java Servlet allows the user to create new experiments from the scratch or modify previously defined experiments. These experiments are scheduled considering the users preferred time. This enables to automatically execute experiments at night time, when fewer interferences caused by possible in-parallel operated networks are to be expected.
 

Additionally, an execution unit queries the database at regular intervals to check for any pending experiments. In case such an experiment exists, DES-Exp gathers the associated experiment description file and starts the execution. The execution unit uses an SSH-API for node communication. At the beginning of an experiment, SSH connections are established to all participating nodes, which are used throughout the experiment to configure the nodes and send commands. After the experiment run, all output files generated by action commands are gathered for further processing by DES-Eval. After the post-configuration of the testbed, it is released and further experiments can be carried out.

DES-Mon

The task of DES-Mon is to monitor the state of the testbed during the execution of an experiment. The state of the participating nodes in an experiment is collected by scanning these nodes in a fixed interval as specified in the experiment description file using SNMP. The gathered data of each scan consists of the mesh router state, the state of its WLAN interfaces and the Linux kernel routing table. The latter is used to visualize the connectivity during the experiment with DES-Vis. Using the SNMP-Set functionality, custom settings can be applied to the mesh routers in the configuration phase. DES-Mon is implemented as a multi-threaded Java application and uses the SNMP4J framework.

DES-Eval

The evaluation component DES-Eval parses the output generated by the actions of an experiment and inserts the formatted results into the Performance Metrics data base. Therefore, DES-Eval automates the tedious task of manually gathering all log files and extracting the important information for further analysis. It provides a suite of Python scripts for automatic evaluation of commonly used tools in networking experiments such as ping, ttcp, and iperf. In the experiment description, a particular evaluation script may be assigned to each action to process the generated output. DES-Eval runs the corresponding evaluation script, which processes the output file and provides the formatted results. Based on the total number of replications of an experiment statistical data like average, standard error, variance, and confidence intervals are calculated for the specified performance metrics. In a second step, further scripts can be used to generate standard graphs of the data.

DES-Vis

DES-Vis is a 3D-visualization software based on the JavaView framework. Its main purpose is to display the connectivity of the network during experiment runs. The graphic below shows a screenshot of the connectivity of the wireless mesh network at a particular time. It relies on the kernel routing table information gathered during the network scans by DES-Mon. The changes in connectivity can be animated throughout an entire experiment run.  For this, the corresponding network state snapshots are sorted according to their timestamp and progressed through them. This feature enables researchers to quickly discover explanations for obtained results and simplifies insight into observed phenomena.