Logiciels
Institute for Information and Communication Technologie
Home Enseignement Recherche Publications
Untitled document

Nessi

Nessi is a network simulator for computer network. It is designed to simplify and speed-up the development of simulation models. As such it is mainly oriented toward educational purposes, where students can implement the most important mechanisms of current protocols with a minimum of overhead. A second application of Nessi is rapid prototyping of new protocols in order to verify the correct functioning of the protocol. 

To make the development of a new protocol as simple as possible, Nessi is implemented in Python, a high-level scripting language. This allows the developer to concentrate on the protocol mechanisms and avoid the hassle with memory management, pointers, or data type definitions. 

In some way, Nessi is complementary to other network simulators like NS-2. Implementation of new protocols in Nessi is much faster than in NS-2, and often can be done in several hours or days, depending on the complexity of the protocol. Execution times of simulation models, however, are much slower in Nessi, by a factor of 10-20.

Interactive simulation sessions

Nessi can be used for batch simulations, but its strength is to perform interactive simulations. Simulation results can be plotted during the simulation run and simulation parameters can be changed during the simulation, using an interactive terminal.

You can create multiple plots in a single window, zoom or pan plots, and save the plots in various image formats.

The following figure shows an interactive simulation session with a plot window with multiple plots. 

Implemented protocols

While Nessi is fully functional, the development of complete set of protocols is still at the beginning. Currently, the following protocols and mechanisms are implemented:

  • CSMA-type protocols:
    • Aloha and slotted Aloha
    • CSMA/CD (Ethernet)
    • CSMA/CA (Wireless LAN)
  • ARQ (Link layer retransmission protocols):
    • Stop-and-Go
    • Go-back-n (Sliding windows)
  • Error control:
    • Simple parity and horizontal/vertical parities
    • IP checksum
    • Polynomial codes (CRC, e.g. CRC-32 for Ethernet)
  • Link layer technologies:
    • Ethernet (bus or point-to-point link, not switching)
    • Wireless LAN (IEEE 802.11)

Installation

Nessi is licensed under GPL. It is multi-platform and runs on Linux, Windows and Mac OS X. It requires the following runtime environment:

Running simulations

To use Nessi as a batch simulator, use have to create a Python script that imports the required modules from Nessi, creates the nodes and links of the model, creates result traces and starts the simulation.

This script can then be executed as a normal Python program.

Example script: ARQ protocols.

To use Nessi as an interactive simulator with a graphical user interface, run

> python simcon.py

and load a normal batch simulation script. Create and configure a plot window. Then start the simulation.

Documentation

This short article gives an introduction to Nessi: 

Unfortunately, documentation for Nessi is currently mainly available in French (see below). The following simulation scripts may provide a starting point for other simulations:

Laboratories (in French)

The laboratories

  • Liaison - contrôle d’erreurs
  • Liaison - ARQ
  • LAN - CSMA

of the course TLI provide examples of how to use Nessi.

Program documentation

No documentation is currently available to describe how to develop simulation models and simulation scripts. The Epydoc may help you to work it out yourself: Epydoc-nessi

Untitled document

Download

Latest version: nessi-1.0.zip

 

Copyright © 2006 Juergen Ehrensberger|Powered by KEO