1. Prasyarat Instalasi dan Instalasi NS-3
NS-3 adalah sebuah discrete-event network simulator dari sebuah jaringan, yang
ditujukan untuk penggunaan percobaan, pengembangan, dan keperluan pendidikan. NS-3
berlisensi GNU GPLv2 sehingga software ini opensource dan bebas untuk didistribusikan.
NS-3 ditulis dengan menggunakan bahasa C++ dan python dan souce codenya tersedia
untuk sistem operasi linux, seluruh varian unix, OS X, dan windows dengan cygwin. File
simulasi yang akan dieksekusi ditulis menggunakan bahasa C++.
1.3.1 Persyaratan Instalasi
Untuk dapat menjalankan aplikasi network simulator ns-3, minimal
sistem operasi yang digunakan diantaranya :
1. Linux x86 gcc 4.2, 4.1, and, 3.4.6.;
2. Linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6;
3. MacOS X ppc and x86 (gcc 4.0.x and 4.2.x);
4. Cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized).
Untuk bisa menjalankan NS-3 dibutuhkan compailer gcc/g++ versi 3.4
atau lebih dan python versi 2.4 atau lebih. Dalam sistem operasi linux
ubuntu/debian, minimal package berikut harus tersedia sebelum proses instalasi
dimulai.
1. Paket minimal untuk C++:
2. Paket minimal untuk python:
$sudo apt-get install gcc g++ python python-dev
Namun untuk bisa menjalankan semua fungsi dari NS-3, paket berikut
juga harus tersedia sebelum proses instalasi dimulai:
1. Diperlukan mercurial untuk dapat bekerja dengan repositori pengembangan
NS-3:
$sudo apt-get install mercurial
2. Diperlukan paket bazzar untuk menjalankan python bindings di NS-3-dev:
$sudo apt-get install bzr
3. Debugging:
$sudo apt-get install gdb valgrind
4. Dukungan GNU Scientific Library (GSL) untuk keakuratan pada model
kesalahan WiFi:
$sudo apt-get install gsl-bin libgsl0-dev
libgsl0ldbl
5. The Network Simulation Cradle (NSC) membutuhkan penganalisa flex lexical
and bison parser generator:
$sudo apt-get install flex bison
6. Untuk menginstalasi gcc-3.4 untuk beberapa tumpukan (stacks) Network
Simulation Cradle (NSC):
$sudo apt-get install g++-3.4 gcc-3.4
7. Untuk membaca pcap packet traces:
$sudo apt-get install tcpdump
$sudo apt-get install sqlite sqlite3
libsqlite3-dev
9. Versi XML dari penyimpanan config (membutuhkan libxml2 >= version 2.7):
$sudo apt-get install libxml2 libxml2-dev
10. Konfigurasi sistem berbasis GTK:
$sudo apt-get install libgtk2.0-0 libgtk2.0-dev
11. Untuk bereksperimen dengan mesin virtual dan NS-3:
$sudo apt-get install vtun lxc
12. Dukungan untuk program pemeriksa gaya kode utils/check-style.py:
$sudo apt-get install uncrustify
13. Doxygen dan dokumentasi yang berhubungan:
$sudo apt-get install doxygen graphviz
imagemagick
$sudo apt-get install texlive texlive-pdf
texlive-latex-extra texlive-generic-extra
texlive-generic-recommended
14. Manual NS-3 dan tutorial yang ditulis dalam Texinfo (doc/tutorial atau
doc/manual):
$sudo apt-get install texinfo dia texlive
texlive-pdf texlive-latex-extra
texlive-extra-utils texlive-generic-recommended texi2html
15. Dukungan untuk visualizer NS-3-pyviz Gustavo Carneiro:
$sudo apt-get install pygraphviz
1.3.2 Instalasi
Untuk bisa mendapatkan source code NS-3, pengguna bisa mengunduh
langsung dari web NS-3 di www.nsnam.org. Dalam halaman download, akan ada 3
pilihan yang tersedia : unduh versi terbaru yang sudah stable dari NS-3, unduh versi
yang sedang dalam tahap pengembangan dan belum dalam keadaan stable, atau
unduh versi terdahulu. Versi 3 yang akan penulis gunakan adalah versi ke
NS-3-Dev (3.11) karena pada saat memulai penelitian, versi ini adalah versi yang
terbaru. Semua file yang dapat diunduh dibuat dalam format tarball, sehingga nama
file yang akan penulis unduh adalah “ns-allinone-3.11.tar.bz2”.
Pada bagian berikut akan dijelaskan mengenai langkah-langkah apa saja
yang harus dilakukan dalam meng-instalasi network simulator NS-3.11 ke dalam
sistem ubuntu setelah file berhasil diunduh. Setelah user mengunduh file source
code yang dibutuhkan, selanjutnya user memindahkan file kedalam directory yang
diinginkan. Lalu user masuk ke dalam terminal dan memasukan perintah sebagai
berikut:
$bunzip2 ns-allinone-3.11.tar.bz2
$tar xvf ns-allinone-3.11.tar
$cd ns-allinone-3.11
$./build.py
Pada perintah pertama, user akan meng-extract file yang sebelumnya
telah di compress untuk memperkecil file unduhan. Pada baris berikutnya, user
akan membuka file tar dengan flag “xvf” yang berarti mengekstrak (x),
suatu file (f). Setelah ekstraksi selesai dilakukan, pada perintah baris ketiga, user
akan pindah directory dan masuk kedalam directory “ns-allinone-3.11”. Setelah
memasuki directoy “ns-allinone-3.11”, user akan mengeksekusi file shell
programming bernama “build.py”dengan perintah pada baris ke empat. Setelahnya user akan melihat pesan compiler yang sangat banyak hingga proses instalasi
berhenti saat muncul pesan :
$Build finished successfully (00:02:37)
$Leaving directory `./ns-3-allinone'
Jika pesan tersebut sudah muncul, maka selanjutnya adalah user akan
memasuki directory “ns-3.11” dengan memasukan perintah:
$cd ns-3.11
Untuk selanjutnya, aplikasi NS-3 harus dijalankan dari directory tersebut.
Selanjutnya, dilakukan proses testing dengan mengeksekusi file shell programming
bernama “test.py” dengan memasukan perintah:
$./test.py
Sehingga akan menghasilkan output seperti:
PASS: TestSuite histogram
PASS: TestSuite ns3-wifi-interference
PASS: TestSuite ns3-tcp-cwnd
PASS: TestSuite ns3-tcp-interoperability
PASS: TestSuite sample
...
Proses instalasi selesai setelah proses testing berakhir dan aplikasi NS-3
Untuk dapat mengeksekusi file simulasi yang sudah user buat atau
mengeksekusi contoh-contoh file yang disediakan oleh NS-3, user harus
memasukan perintah-perintah berikut ke dalam terminal :
$cd ns-allinone-3.11
$cd ns-3.11
$./waf --run hello-simulator
Pada baris perintah pertama dan kedua, user akan memasukin directory
“ns-3.10” sebelum dapat mengeksekusi file. Pada baris ketiga, user akan mulai
mengeksekusi file yang ada dalam contoh, eksekusi file menggunakan waf, yang
merupakan file konfigurasi untuk menjalankan program simulasi dan file yang akan
dieksekusi bernama “hello-simulator.cc”.
Setelah menulis file simulasi dari jaringan, maka file tersebut harus di
kompilasi untuk menjadi program yang dapat dipergunakan. Salah satu tools yang
bisa digunakan untuk melakukan kompilasi antara lain adalah waf. Waf adalah
salah satu kompilator terbaru yang dibangun dengan basis bahasa python. Karena
itu waf menjadi salah satu pilihan terbaik untuk menjalan kan file 3 dimana
NS-3 juga dibangun menggunakan bahasa python. Waf dapat mengkompilasi data
python dari sistem NS-3 tanpa mengharuskan user menguasai bahasa pemrograman
python.
2. Proses Menjalankan Program
Pada bagian ini akan dijelaskan tahap-tahap menjalankan program pada network simulator
1. Masuk ke dalam directory ns-3-dev.
$cd ns-3-dev
2. Eksekusi program dengan menggunakan waf.
$./waf --run final
3. Jika ingin merubah parameter-parameter dari program pada saat compile-time, eksekusi
program dengan flag “--PrintHelp”.
$./waf --run “final --PrintHelp”
Dengan mengeksekusi file dengan flag tersebut, akan muncul parameter-parameter yang
dapat diubah dari program.
Gambar L.1 Parameter Yang Terdapat Dalam Program
Nilai awal dari tiap parameter adalah:
- jalur = 1;
Untuk menjalankan program dengan parameter yang akan kita ubah.
$./waf --run “final --jalur=2”
2.1 Menjalankan Simulasi Untuk PDR
1. Saat kita ingin melakukan simulasi PDR, maka mulai simulasi dengan mengeksekusi
program dengan perintah pada terminal.
$./waf --run “final --jalur=1”
$./waf --run “final --jalur=2”
Eksekusi program diatas dapat diartikan “jalankan program untuk menghitung PDR
dengan jalur Tunnel1 dan RedundantTunnel1. simpan hasil output kedalam file
bernama temp.dat”. Setelah itu semua hasil output dari terminal akan dipindahkan
kedalam file temp.dat. Jalannya simulasi berlangsung 1.2 , 1.5 , 1.8 , 2.1 , 2.4 , 2.7 ,
3.0 , 3.3 , 3.6 , 3.9 seconds dengan mengubah Simulator::Stop (Seconds (....)). Ulangi
simulasi sampai 3.9 seconds, maka akan didapat :
Jalur=2 [Redundant Tunnel1 ke server1 dan server2]:
Gambar L.2 Output Program Untuk PDR
2.2 Menjalankan Simulasi Untuk Throughput
Pada perhitungan throughput, lakukan sesuai dengan langkah-langkah pada
perhitungan PDR dan eksekusi program dengan mengubah Simulator::Stop (Seconds (....)).
Ulangi simulasi sampai 3.9 seconds, maka akan didapat :
Jalur=2 [Redundant Tunnel1 ke server1 dan server2] :
Gambar L.3 Output Program Untuk Throughput
2.3 Menjalankan Simulasi Untuk Delay
Pada perhitungan Delay lakukan sesuai dengan langkah-langkah pada perhitungan
PDR dan eksekusi program dengan mengubah Simulator::Stop (Seconds (....)). Ulangi
simulasi sampai 3.9 seconds, maka akan didapat :
Jalur=2 [Redundant Tunnel1 ke server1 dan server2] :
Gambar L.4 Output Program Untuk Delay
2.4 Menjalankan Simulasi Untuk Packet Loss Ratio
Pada perhitungan Packet Loss Ratio lakukan sesuai dengan langkah-langkah pada
perhitungan PDR dan eksekusi program dengan mengubah Simulator::Stop (Seconds (....)).
Ulangi simulasi sampai 3.9 seconds, maka akan didapat :
Jalur=2 [Redundant Tunnel1 ke server1 dan server2] :
Gambar L.5 Output Program Untuk Packet Loss Ratio
Ploting gambar dengan menggunakan program gnuplot seperti pada perintah Menjalankan
Simulasi Untuk PDR pada no.2 dan 3.
2.5 Menjalankan QoE Monitoring
• Download dan copy file 1.cc and qoe-monitor-example-2.cc dari folder qoe-monitor/example ke dalam folder ns-allinone-3.13/ns-3.13/scratch
• Lalu building dan compile module qoe-monitor di dalam folder ns-allinone-3.13/ns-3.13 dengan command:
• export CFLAGS="-Wall -ggdb -g3 -O0 -DSTDC_CONSTANT_MACROS“ • export CXXFLAGS="Wall ggdb g3 O0
-DSTDC_CONSTANT_MACROS“
• export LINKFLAGS="L/usr/local/include/libavcodec L/usr/local/include/libavformat/
L/usr/local/include/libavutil lavcodec lavformat -lavutil“
• ./waf configure • ./waf
• Tahap akhir adalah menjalankan example file module QoE Monitor dengan sample video:
./waf run scratch/qoemonitorexample commandtemplate="gdb --args %s scratch/figure-test.mp4“
Setelah dijalankan muncul pesan sebagai berikut:
Waf: Entering directory `/home/putut/tarballs/ns-allinone-3.13/ns-3.13/build' Waf: Leaving directory `/home/putut/tarballs/ns-allinone-3.13/ns-3.13/build' 'build' finished successfully (0.840s)
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details.
This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: <http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/putut/tarballs/ns-allinone-3.13/ns-3.13/build/scratch/qoe-monitor-example-1...done. ( g d b ) r u n