AQUA SIM FOR UNDER WATER SENSOR NETWORKS
AQUA SIM FOR UNDER WATER SENSOR NETWORKS
Recently underwater sensor network has emerged as a powerful technique for aquatic applications, and it has attracted more and more attention from the networking research community. To facilitate the research in underwater sensor networks, it is desirable to have a standard simulation platform to compare and evaluate different network designs, algorithms and protocols.
Although there are a couple of efforts on incorporating acoustic propagation models into the simulation of underwater acoustic networks, to the best of our knowledge, there is no complete packet level underwater network simulator published yet. There are several widely used packet level network simulators such as NS-2 and OPNET. However, they were developed for terrestrial radio wireless and/or wired networks, not for underwater sensor networks. They cannot be used for the simulation of underwater sensor networks without significant modifications for the following reasons: Firstly, acoustic communication is the commonly accepted method for underwater environments, while the propagation speed of acoustic signal in water is very slow (about 1500 m/s), significantly different from that of radio signal; secondly, the acoustic signal attenuation model is drastically different from that of radio signal, and thus acoustic channel models have to be incorporated; thirdly, underwater sensor networks are usually deployed in a three dimensional space, while these simulators usually only support two-dimensional deployment. Thus, the unique characteristics of underwater sensor networks make the existing network simulators unsuitable.
Developed simulator, called Aqua-Sim, for underwater sensor networks are developed on the basis of NS-2, Aqua-Sim can effectively simulate acoustic signal attenuation and packet collisions in underwater sensor networks. Moreover, Aqua-Sim supports three-dimensional deployment. Further, Aqua-Sim can easily be integrated with the existing codes in NS-2. Aqua-Sim is in parallel with the CMU wireless simulation package. As shown in the figure below, Aqua-Sim is independent of the wireless simulation package and is not affected by any change in the wireless package. On the other hand, any change to Aqua-Sim is also confined to itself and does not have any impact on other packages in NS-2. In this way, Aqua-Sim can evolve independently.
Advantages of Aqua-Sim
- Discrete-event driven network simulator
- Support 3D networks and mobile networks
- Simulate underwater acoustic channels with high fidelity
- Implement a complete protocol stack from physical layer to application layer
AQUA-SIM INSTALLATION
1. First download aqua-sim by clicking here
2. Before installing Aqua-Sim, you should make sure that your linux system contains the essential libs for the installation of ns-allinone-2.30. Usually, it requires gcc/g++ complier, automake, X11 lib. To make Aqua3D works, some other packages, such as freeglut, GTK+ 2.0 and wxGTK-2.8.11, are also required .
3. All these packages can be installed from synaptic package manager.
4. Installing the dependencies: sudo apt-get install xorg-dev g++ xgraph
5. Copy and paste aqua-sim file wherever you want. Suppose you have pasted it in your home directory.
6. Double click on tar file to extract or use command: tar -xvf aqua-sim.tgz
7. Move into extracted folder:
cd Desktop/Aqua-Sim-1.0/
./install
8. After running the installation process for a while, suddenly it turned out with an error saying "ld: libotcl.so: hidden symbol `__stack_chk_fail_local isnt defined".
9. After that edit a configuration file, so I opened the file Aqua-Sim-1.0/otcl-1.12/configure and searched for the line SHLIB_LD="ld -shared" inside it. Then I commented and added a different line as shown below.
#SHLIB_LD="ld -shared"
SHLIB_LD="gcc -shared"
10. Then run the command ./install again
11. At the end of the installation process, as usual in NS2 installation, it asked for setting some environmental variables in system. So open the "/etc/profile" file and added the following lines at the end of the existing content and saved.
export PATH=$PATH:/home/asanka/Desktop/Aqua-Sim-1.0/bin:/home/asanka/Desktop/Aqua Sim-1.0/tcl8.4.13/unix:/home/asanka/Desktop/Aqua-Sim-1.0/tk8.4.13/unix
export LD_LIBRARY_PATH=/home/asanka/Desktop/Aqua Sim1.0/otcl-.12:/home/asanka/Desktop/Aqua-Sim-1.0/lib
export TCL_LIBRARY=/home/asanka/Desktop/Aqua-Sim-1.0/tcl8.4.13/library
12. Type; cd Aqua-Sim-1.0/ns-2.30
./validate
13. After the validation script finished the execution,run a sample TCL simulation script as shown below.
cd /ns-2.30/underwatersensor/uw_tcl
ns tmac-example.tcl
>> link for other possible errors:
link 1
link 2
>> User manual
alternative link download