Network Simulators

Simulators are used to model the components of a system and reproduce results under previously defined conditions. Nowadays, there are many open source network simulators that people can download for personal, academic or commercial uses.

Screenshot of a simulation using OMNET++ and MiXiM in the graphical interface

Screenshot of a simulation using OMNET++ and MiXiM in the graphical interface

How to choose a good Network Simulator?

The best option always depends on the project requirements and goals. It is possible to use simulators to evaluate energy consumption levels, data delivery rate, the feasibility of an architecture or even to develop and improve an existing idea. Before starting the evaluation of the existing simulators, a good idea is to create a checklist with the required features and work on it.

Some interesting features that people may want in a network simulator are:

  • Use of a common programming language – Most of the simulators use traditional languages such as C, C++ and JAVA and other options could increase the complexity of the code and being an obstacle for future work. Other languages may have less adopters and it could be hard to find help, support from others and even new collaborators.
  • Scalability – It is expected that you will have to implement new models as well as changing the state-of-the-art implementations. With a scalable simulator, the overhead of these tasks would be considerably reduced.
  • Many users, publications and researches – Simulators that have been used and tested by others should provide more powerful and reliable results. Additionally, the support is expected to be better in active communities.
  • Maturity – New simulators may present more bugs and errors, which may either require an extra effort to fix the code later or end up on error propagation and unreliable results.
  • Many models already developed – This would increase the chances of reusing the code without having to implement every required module.
  • Possibility of modeling the an specific project goal – This should avoid extra-work and reduce chances of errors. A good example of model that you may require is the energy consumption.

Options of Network Simulators

There is an extensive list of good Network Simulators and the goal of this post is to show some of the existing options. All of them are free for personal use and the features and drawbacks are mostly based on Wireless Sensor Networks’ environments, which are the goal of my PhD work.

SENSE – Sensor Network Simulator and Emulator

Official websitehttp://www.ita.cs.rpi.edu/

Downloadhttp://www.ita.cs.rpi.edu/download

The main features are:

  • Uses C++ language
  • Modularized
  • It is possible to module the energy consumption from the nodes.

Possible negative aspects:

  • Few models already developed
  • Few users and research projects
  • Lack of documentation

Ns-2

Official website: http://www.isi.edu/nsnam/ns/

Download: http://sourceforge.net/projects/nsnam/

This is one of the most known network simulators. It is possible to list the following positive aspects:

  • Very complete tool
  • Many models already developed
  • Many users
  • Easy implementation
  • Uses Tool Command Language (TCL) scripts to configure the simulations

Possible negative aspects:

  • Continuous changes in the code base result on unreliable models
  • No graphic interface to model the simulation
  • It is not developed anymore and only partially maintained, because the current version is the ns-3.

Ns-3

Official website: https://www.nsnam.org/

Download: https://www.nsnam.org/releases/latest

The newest version that is meant to substitute of the ns-2. The positive aspects are:

  • Newer version of ns-2
  • Provides many modules.

Possible negative aspects:

  • Does not provide backward compatibility with ns-2
  • So far, there are no modules that simulate WSNs

Omnet++

Official website: http://www.omnetpp.org/

Download: http://www.omnetpp.org/omnetpp/cat_view/17-downloads/1-omnet-releases

This is a famous and massively used network simulator, which has some features:

  • An IDE based on Eclipse
  • The programming code has a component-based structure
  • Easy-configuration using text files
  • It is possible to develop/extend classes according to the wanted behavior
  • Inside the IDE, it is possible to generate different types of charts (bars, lines, etc) with the output files and create macros to plot charts later
  • Event-based

Possible drawbacks are:

  • Does not have an energy model in the core
  • Steep learning curve
  • Does not provide many MAC protocol options
  • There are no modules that simulate WSNs

Castalia

Official website: http://castalia.research.nicta.com.au/index.php/en/

Download: http://castalia.research.nicta.com.au/index.php/en/download

This is a framework for Omnet++. The main features are:

  • Provides modules that simulate WSNs
  • Many implementations of different MAC protocols
  • Configuration parameters for different radios

Possible drawbacks are:

  • Does not use the OMNET++ IDE, only text mode
  • By default, each simulation has only one WSN
  • It is possible to simulate events, but it is required to develop an application that activates which sensors are going to detect it
  • Provides a text output, which must be interpreted
  • The WSN supports only grid deployment by default

MiXiM

Official website: http://mixim.sourceforge.net/

Download: http://sourceforge.net/projects/mixim/

A framework for OMNET++ that has modules for simulating wireless networks (wireless sensor networks, body area networks, ad-hoc networks, vehicular networks, etc.). The main features are:

  • Provides modules that simulate WSNs
  • Detailed models of radio wave propagation
  • Interference estimation
  • Battery statistics
  • Radio transceiver power consumption
  • Wireless MAC protocols: BMAC and LMAC
  • Complex path loss models

Possible drawbacks are:

  • There are not many examples implementing WSNs
  • Focus on Link- and Phy-Layer, so there are few options for WSN applications

Other options

Other examples of simulators are the TOSSIM and OPNET, which are also used by researchers and companies. There are also outdated options that are not being developed nor maintained anymore, for example, J-Sim and ShoX.

Or you can even use Matlab to simulate a less complex behavior.

Which Network Simulator do I use?

The simulator chosen for my PhD work was the combination Omnet++ and Mixim, since it is the one that matches better to the project requirements. Even though some code development was needed (such as the energy consumed by the sensors), the provided documentation made this a simpler task, which reduced the error chances. It is important to remark that the ns-2 is widely used, but it will be–sooner or later–substituted by ns-3.

Cite this article as: gabriel, "Network Simulators," in Gabriel Martins Dias, February 17, 2014, http://gmdias.com/2014/02/17/network-simulators/.

6 Responses

  1. Arpita says:

    Hello Sir
    I want to know the process or steps by which i can create a wireless sensor network using omnet++. Actually am new to it , plz help me

    • Gabriel Martins Dias says:

      I will prepare a step-by-step for the next week and publish here. I let you know.
      Greets, Gabriel

  2. Diego Cruz says:

    Hello Gabriel, maybe you have developed the step-by-step in wsn example, because i’m working with omnet++ but i really don’t know if castalia is better than mixim. And another question is if someone knows if INET with INETMANET let us simulate some wsn? How compare which one is better in omnet?
    Thanks for your help

    • Gabriel Martins Dias says:

      No, i have not finished yet. Sorry. I am about to finish a post with some OMNET basics and then I will do the “step-by-step” one.
      I haven’t used Castalia too much. When I tried it, the big problem was that it didn’t work with the OMNET IDE, only in text mode. Maybe you should consider this as an issue, because the IDE has many nice features that may help you a lot.
      About Inet, as far as I know, it has some wireless protocols, but you will have to develop many things on the top of it to simulate a WSN.
      The comparison depends on what you want to simulate, what you want to track, which parameters you want to observe, etc, etc.
      Tell me what you want to simulate, if you want. Probably I can tell you if Mixim will help you or not.

  1. June 3, 2014

    […] described in the post about the Network Simulators, OMNET++ has an IDE based on Eclipse that makes it easier to create a project and run simulations. […]

Leave a Reply

Your email address will not be published. Required fields are marked *