WiSSim: Wireless Sensor Network Simulator
Try it now
Try web edition or Request .NET edition

Introduction

The WiSSim project was created for building a software tool that could help researchers and algorithm designers to test their newly proposed algorithms for wireless sensor networks.

The WiSSim software is constructed as an integrated environment for experimenting, or simply, playing with algorithms for WSN. We support graphic tools for defining/setting a network topology and node configuration, selecting algorithms for testing, i.e. either visualizing or simulating or both.

Initially, we aimed at creating software to help us experimenting with sophisticated geographic routing algorithms, a certain hot area of research in WSN for the last 10-15 years. However later, we found out that we can extend this project to a larger landscape: to help researchers experimenting with the geometric algorithms in WSN that are somehow exploit certain aspects of the geometry of the WSN, where the geographic routing algorithms could be seen as typical examples.

Our WiSSim follows the Client-Server architecture where at the client side we provide the front- end components for the user to define the test networks, algorithms and execution scripts, and possibly ask for simulation then run the visualization and analysis tools to enjoy seeing the test analysis results provided with care towards the user convenience and deep understanding. At the back-end, we exploit some popular existing network simulator software, that is ns-2 for now and possibly others. The WiSSim server acts as a connector to work with ns-2: preparing the Tcl scripts to be executed in ns-2 and retrieving and interpreting the trace files outputted from ns-2. Besides we also embed into the ns-2 core with our low-level implementation of certain selected algorithms (mostly about routing).

WiSSim Editor is the Client component for creating and editing network topologies and test scripts. It provides graphic tools for creating a network of large size (up to thousands sensor nodes) in a certain given mode (such as using a random node distribution) in a landscape of certain conditions (such as a ground with a pool that nodes cannot be placed). The configuration of the network components can then also be defined by using mostly mouse clicks and numeric keys. The users then select the algorithm to be tested and define the execution scripts. In the next step, for certain basic algorithms (such as Voronoid) the user will obtain a graphic rendering of the result while for some sophisticated distributed algorithms (e.g. geographic routing) the user will go through the next phases of working with simulation, visualization and analysis tools. Once the WiSSim Server has accomplished a given simulation task, it will notify the Client and the simulation result (e.g. trace file in ns-2) can be processed and sent back to the Client. The Visualizer and Analyser components at the client side will help to interpret and analyze this data results. The Analyzer helps to extract and present important factors in pre-designed forms. You the user can use the control panel to customize the forms and tune the viewing options for better analyzing and understanding. Moreover, the Visualizer can be used in combination with the Analyzer for rendering a graphic interpretation of certain part of the experiment: the rendering could be taken over all the experiment or focused on a specific part of. For example, one may want to observe the creation of a specific packet and the path it travels (being forwarded by the routers) during the execution of an experiment on a routing algorithm.

The built-in library of algorithms consists of two parts – one resides inside the Client and one inside the server side. The hardest part of this project is perhaps our treatment of embedding our C++ code into the ns-2 core so that we can simulate many sophisticated geographic routing strategies and algorithms.