| Carl Friedrich Gauß Faculty | Department of Computer Science

Implementation and evaluation of distributed and parallel WSN simulations

SupervisorSven Pullwitt
Robert Hartung
ProfessorProf. Dr.-Ing. Lars Wolf
IBR GroupCM (Prof. Wolf)
TypeBachelor Thesis, Project Thesis
Implementation and evaluation of distributed and parallel WSN simulations


Wireless Sensor Networks are used in a large collection of everyday applications, for instance to monitor animals, buildings and cities. Nodes in these networks are often faced with the challenge of meting a certain performance requirement while at the same time having a limited amount of energy. To increase network lifetime, robust, reliable and highly optimized software is needed.


Operating systems provide developers with a collection of optimized functions common to high number of applications, removing the need to reimplement these features for every new application. Also, the great number of different node platforms in exsistance, which are used throughout these applications requires an operating system to make software interoperable. Contiki is a wide-spread and traditional operating system in the area of Wireless Sensor Networks (WSNs).


Cooja is a java-based network simulator originally designed to simulate Contiki code on aplicaiton level. It can be used to create different scenarios and simulate applications and protocols in controlled environments. One of it's main benefits, apart from the portability achieved by using Java, are the extendibility through plugins, which led to the integration of a lot of useful features like interference and energy simulation. This modular design enables plugins like Avrora and MSPsim, which allow the simulation of arbitrary firmware not necessarily written in Contiki and therefore makes Cooja usable for a vastly greater number of applications.


Avrora is a simulator for the AVR architecture written in Java. Although it was designed as a standalone simulator, Avrora has been integrated in Cooja as a plugin to provide support for register level simulation of AVR nodes in Cooja.


Simulators can aid the development of WSNs by enabling the user to conduct of a large number of tests, which due to time, space and cost restrictions often cannot be performed in real experiments, in relatively small time. This advantage is highly dependent on many factors, one being the simulation speed of the simulator. The simulation of WSNs is a computationally heavy task and the speed of the system used for simulation is a critical factor the performance of the simulator. Cooja simulates WSNs based on a so called event queue in which atomic simulation steps are stored in order of execution. While providing a deterministic execution, this design has the problem of requiring a single core with a lot of computing power in order to maintain high simulation speeds. Cooja in combination with Avrora struggles to achieve simulation speeds that are comparable with the register level simulation of for instance MSP430 nodes. While for the achievable simulation speeds are high enough for smaller simulated WSNs, the scaling for lager nets is poor and affects the usability of the simulator in many cases.

As Cooja in combination with MSPSim achieves significantly higher simulation speeds, the cause for the discrepancy in speed shall be evaluated. To overcome these limitations, Cooja shall be extended to allow a distributed simulation, separating the computationally heavy tasks from the user interface. By using Java RMI, the simulation of the nodes shall be performed on a server connected via network, while the GUI runs on a client computer. Based on this distributed system, possibilities for the parallel simulation of nodes shall be analyzed and implemented.

  • Analyse the event queue architecture of Cooja with both Avrora and MSPSim, and document them accordingly
  • Implement a remote execution of the simulated Cooja nodes using Java RMI
  • Evaluate and implement a parallel remote execution of multiple simulated Cooja nodes


The following skills are helpful for the execution of this thesis (not all of them are required!):

  • Java
  • C
  • Java RMI
  • Cooja


last changed 2019-03-19, 11:30 by Sven Pullwitt