|
DESERT 4.0.0
|
Project supervisor:
Filippo Campagnaro - filippo.campagnaro@unipd.it
Maintainers:
Federico Favaro - federico.favaro@dei.unipd.it,
Federico Guerra - federico@guerra-tlc.com,
Roberto Francescon - francescon.roberto@gmail.com,
Antonio Montanari - montanar@dei.unipd.it,
Vincenzo Cimino - vincenzo.cimino@unipd.it,
Filippo Donegà - filippo.donega@unipd.it
Contributors:
Sara Falleni - falleni.s@northeastern.edu,
Riccardo Tumiati - riccardo.tumiati@studenti.unipd.it
Former contributors and members:
Giovanni Toso
DESERT Underwater (or briefly DESERT) [1] is a framework to DEsign, SimulatE and Realize Testbeds for Underwater network protocols.
The support DESERT offers to these activities comes in two flavors: support to simulations and support to real-life experimentation.
With DESERT, we distribute several network protocols for underwater networking, some of which are the result of our own development, whereas some represent our own understanding of protocols found in the literature.
Among the components of DESERT, some libraries and tools help speed up the transition from simulations to sea trials. The latter is achieved by integrating the commands required to communicate with real modems into specific interface modules. In turn, this allows the user to run protocols in real life by re-using the same protocol code already written for simulations.
DESERT is based on ns2 [2] and NS-MIRACLE [3]. In particular, DESERT follows the modular approach of the latter. Other than network protocols, DESERT provides additional libraries and tools to help simulate underwater networks realistically. These tools include mobility models that reproduce realistic mobility patterns, energy consumption models, and channel models.
The most advanced model available is provided via a close interaction between DESERT and WOSS [4].
DESERT can be cross-compiled for Raspberry Pi (e.g., Zero 2 W, 4, 5) and the latest EvoLogics modem's sandbox. DESERT supports real data transmission via EvoLogics [5], ahoi modems [6], SuM modems [7], and all devices that provide an Ethernet transparent interface (such as Ethernet switches and many commercial optical modems).
Altogether, the many proof-of-concept implementations and complex tests carried out with DESERT so far make DESERT an effective solution for realizing underwater networking experiments by reusing the same protocol code already written for simulations.
DESERT Underwater has been adopted in several real-life sea trials.
You can find more on the official website of the project.
A considerable amount of work has been done to make the installation of the software automatic via a modular installation script that includes a fully-guided wizard mode.
At the same time, the installation is organized into separate modules. Experienced users can easily extend the process to accommodate specific requirements, new functionalities, or even make DESERT part of larger projects.
To help users wishing to experiment with real hardware using DESERT, we also provide different installer modules, suitable for compact/embedded hardware platforms, starting from Raspberry Pi and the EvoLogics modem sandbox.
This set will be extended in the future.
To use DESERT more effectively in real environments, uwApplication is provided. This module permits transmission of real payloads among nodes with tunable dimensions. Moreover, real data can be transmitted to uwApplication through a TCP or UDP socket at a given port.
Using this feature, you can implement a simple "underwater chat" or connect a sensor/device that transmits data to uwApplication through a socket.
uwApplication encapsulates the payload with control headers and delivers packets to the lower layers.
Finally, the functionalities offered by DESERT have been extended with a control framework that provides a set of primitives to remotely control hardware modems and network operations.
All these features are released constantly on our GitHub repository.