DESERT Underwater v2.1.0
DESERT Underwater: an NS-Miracle extension to DEsign, Simulate, Emulate and Realize Test-beds for Underwater network protocols
DESERT Underwater v2.1.0 (short for DEsign, Simulate, Emulate and Realize Test-beds for Underwater network protocols) is a complete set of public C++ libraries that extend the NS-MIRACLE simulator to support the design and implementation of underwater network protocols.
The DESERT Underwater project originated mainly as the answer to two wishes:
- to timely disseminate the underwater network protocols that we study and develop at Consorzio Ferrara Ricerche (CFR) and at the University of Padova, Italy
- to push the studies on underwater networking beyond simulations: running research solutions on real devices, in fact, is of key importance to prove the validity of every protocol design
In addition, exposing our protocols and simulation systems to the community at large makes a valuable instrument available to all interested underwater network designers, and allows everyone to independently verify simulation as well as experimental results.
In these pages, you will find the links and introductory material that will guide you to the installation and use of DESERT Underwater v2.1.0
DESERT Underwater v2.1.0 includes, among others, the following modules:
- physical layer modules that
- compute bit error rates for several modulation schemes via textbook equations;
- can load external channel realizations in the form of SNR time series as well as in the form of modulation-specific look-up tables
- track energy consumption in different physical layer states
- track interference by dividing the packets in chunks where the interference is constant
- model multi-modal communication with optical modems and different types of acoustic modems
- our implementation of four MAC protocols (CSMA, DACAP, Tone-Lohi, UW-Polling) plus a plain version of the Aloha protocol;
- USR, an error-control protocol based on CSMA and employing a time-division duplexing technique to realize a selective repeat ARQ scheme for both static and mobile networks;
- U-Fetch, a cross-layer protocol involving MAC and hierarchical routing, designed to strike a balance between multihop routing and simple one-by-one node polling in data retrieval networks with a mobile sink
- four routing modules (static routing, flooding, source routing for underwater networks (SUN), and our implementation of the Information-Carrying Based Routing (ICRP) protocol);
- two transport-level modules
- two application-level modules (for constant and variable bit rate traffic generation);
- one additional uwApplication module for transmitting data from external data sources and for appending actual data payloads to simulated packets
- a Remotely Operated Vehicle (ROV) application module for simulating the mobility and wireless remote control of ROVs
- several mobility models for 3D underwater networks;
- a modular interface to allow the NS-MIRACLE simulator to interact with acoustic modems, and thereby experiment network protocols in the real world; this solution includes
- an interface to communicate with the modems
- packer modules to convert from NS-MIRACLE structure into actual bit streams and vice-versa
- an Adaptation Layer (AL) that automatically handles packet fragmentation and re-assembling in the presence of a limited maximum physical layer service data unit (PSDU).
The latter elements of the DESERT Underwater libraries play a key role when experimenting underwater network protocols and applications on real hardware.
DESERT Underwater comes with test simulation scripts that are meant to showcase the capabilities of the framework and to get the user started with his/her own simulations and experiments. We also provide PDF documents that explain the relevant sections of each script for better readability and understanding. The sample scripts cover basic simulations, as well as more complicated cases involving the use of WOSS or the connection to real acoustic modems.
Please note that DESERT Underwater has a user group mailing list, which is the only reference for technical questions regarding the framework.
Please follow this link to subscribe to firstname.lastname@example.org
DESERT Underwater is released only as a git repository on the GitHub platform. New modules, fixes, and additions to the DESERT libraries will also be delivered via GitHub: by keeping your repository up to date you will be sure to stay in touch with the latest changes.
You can clone the master git branch of DESERT Underwater via the following command:
git clone -b master https://github.com/uwsignet/DESERT_Underwater
Otherwise (e.g., if you do not wish to install git at this time) you may download the master branch of DESERT Underwater as a comprehensive zip file.
Note that cloning the DESERT Underwater v2.1.0 repository may require that you sign up for a free account on GitHub.
When you download DESERT Underwater, a modular installation script called install.sh will either guide you through the installation steps via a wizard mode or provide a fully customizable command-line version. First-time users may want to run the wizard, in order to get acquainted with the installation options. More experienced users may prefer to employ the command-line version of the installer. The latter also enables embedding the installation of DESERT Underwater into custom user scripts. Just run the install.sh script with no parameters to get usage instructions. For more details please see the software installation notes in the Doxygen documentation (see also the next section).
We made available the Doxygen documentation (in HTML format) for the DESERT Underwater v2 libraries.
For convenience, you can also download the PDF version of the Doxygen documentation.
RECORDS: a Remote Control Framework for Underwater Networks
Exploiting the same acoustic communications used to perform networking experiments is a very convenient way to run and control the experiments remotely while on the field.
Our first implementation of a remote control system was performed according to a Master/Slave approach as described in this demo abstract.
Along with DESERT Underwater v2, we are releasing a new software called RECORDS: a REmote COntrol framewoRk for unDerwater networkS, which substantially re-designs and extends the Master/Slave approach.
This new version of the framework is very modular and extensible, and currently supplies with the interfaces required to control EvoLogics modems of the S2C and WiSE series. It has been already tested and successfully employed for several purposes, including the control of experiments performed during a major sea trial (CommsNet'13) organized by the NATO STO CMRE in collaboration with several international partners.
A paper describing RECORDS, its performance, and its use in real-world experiments has been submitted to Med-Hoc-Net 2014.
You can download RECORDS from our git repository via the following command:
git clone -b master https://github.com/uwsignet/records.git
Alternatively, you main download the master branch of RECORDS as a comprehensive zip file.
Self-contained ready-to-deploy virtual machine
If you do not want to install yet another simulation library on your system, or if your host machine runs an operating system different than a Linux distro, we prepared an alternative solution: you just need to download a Virtual Box virtual machine, where everything is warm and ready for you to start experimenting.
To install the virtual machine, your system must satisfy these requirements:
- Oracle VM Virtual Box installed (see the Virtual Box web site)
- 64-bit host platform
- CPU that supports VT-x/AMD-V instructions (i.e., hardware virtualization)
You can download the DESERT Underwater virtual machine here:
Downloads between 6:00 pm and 8:00 am Italian time (CET/CEST) are preferred.
If your system satisfies the requirements above, you just need to double-click the
downloaded virtual machine to load it in Virtual Box.
(Virtual Box will prompt for settings: click "Import" to start working with the machine.)
Once the virtual machine is up and running, the following credentials are required to log into the system:
username: desert password: desert
If you open a terminal inside the virtual machine and type
some instructions will appear to get you started with simulation scripts. Please see the doxygen documentation on the virtual machine for more information.
We remark that the virtual machine contains a full DESERT Underwater installation, without the WOSS libraries. We remark that:
- We cannot redistribute oceanographic databases, which is the reason why WOSS is not installed on the virtual machine; if you want to test WOSS, you can always
- download oceanographic databases
- reinstall DESERT Underwater with WOSS using our installer.
NOTE: the version of DESERT Underwater currently installed on the virtual machine is v2.1.0.
Former version of DESERT Underwater
DESERT Underwater v1.0.1 is still available for download at the following link: DESERT_all-in-one (ver. 1.0.1)
Please note that DESERT (starting from the earlier version v2.0) applied major changes both to the libraries and to their organization, with respect to v1.0.1. For this reason, DESERT Underwater v1.0.1 is no longer supported.
For reference, the users of the older version 1.0.0 of DESERT Underwater can still find the the old web page at this link.
Two papers on DESERT Underwater
The following paper explains the potential of DESERT and WOSS, plus provides further hints into DESERT Underwater v2.0:
Open-source Suites for the Underwater Networking Community: WOSS and DESERT Underwater
DESERT Underwater v1.0 was released in May 2012, and presented at the MTS/IEEE OCEANS 2012 Conference in Yeosu, South Korea. You can find the paper at the following link:
DESERT Underwater: an NS-Miracle-based framework to DEsign, Simulate, Emulate and Realize Test-beds for Underwater network protocols
Field Experiment Galleries
Enjoy with us some of our field experiment campaigns! Take a look to our picture galleries:
- 2012-11 Horten, Norway
- 2012-10 La Spezia 2
- 2012-08 Berlino 2
- 2012-07 Padova 2
- 2012-04 La Spezia 1
- 2012-03 Padova 1
- 2012-02 Berlino 1
- 2011-12 Woods Hole, Massachusetts
If you are interested in more details on the components of the DESERT Underwater library, on the web pages of the supported modems, or on other efforts related to ours, please see the related work page.
The DESERT libraries have been assembled in the context of the NAUTILUS project. They include contributions that have been developed in the past thanks to the collaboration with many scientific partners, whom we gratefully thank.
Please see the acknowledgment page.