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 .