MENJALANKAN PROGRAM NS-3 1. Rancangan Simulasi 1.1 Perangkat Keras yang Digunakan Berikut spesifikasi perangkat keras (laptop) yang digunakan di dalam lingkungan percobaan: Manufacturer : Asus System Model : G74SX BBK7 BIOS : Default System BIOS Processor : Intel(R) CPU Core(TM) i7-2630QM @ 2.00 GHz (8 CPUs) Memory : 8192MB RAM DirectX : DirectX 11 Display : NVIDIA GeForce GTX 560M 2 GB 1.2 Perangkat Lunak yang Digunakan Perangkat lunak yang digunakan dalam melakukan penelitian antara lain: 1. Sistem operasi Linux Ubuntu 12.04 (Kernel 2.6.38); 2. Network Simulator NS-3-Dev (NS-3.11); 3. Wireshark; 1.3 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 open source 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 compiler 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++: $sudo apt-get install gcc g++ python 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 8. Dukungan database untuk framework statistik: $sudo apt-get install sqlite sqlite3 libsqlite3dev 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-latex-extra texlive texlive-pdf texlive-generic-extra texlive-generic-recommended 14. Manual NS-3 dan tutorial yang ditulis dalam Texinfo (doc/tutorial atau doc/manual): $sudo apt-get texlive-pdf install texinfo texlive-latex-extra dia texlive texlive-extra- utils texlive-generic-recommended texi2html 15. Dukungan untuk visualizer NS-3-pyviz Gustavo Carneiro: $sudo apt-get install python-pygraphviz kiwi python-pygoocanvas libgoocanvas-dev 1.3.2 Instalasi python- 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 NS-3 yang akan penulis gunakan adalah versi ke NS3-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), menampilkan log selama dilakukan ekstraksi (v), dan melakukan ekstraksi dari suatu file (f). Setelah ekstraksi selesai dilakukan, pada perintah baris ketiga, user akan pindah directory dan masuk ke dalam 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 sudah siap untuk digunakan. 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 memasukkan 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 dikompilasi 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 NS-3 dimana NS3 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 NS-3. 1. Masuk ke dalam directory ns-3-dev. $cd 2. ns-3-dev 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. Gam bar L.1 Para meter 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” Pada perintah diatas dapat digunakkan untuk compile beberapa jalur yang disediakan.