LAMPIRAN A Cara instalasi Network Simulator 2 di linux Ns-2 dibuat untuk membantu menjalankan evenet – event yang dibuat pada penelitian di bidang jaringan (networking). Ns menyediakan pendukung substansial untuk melakukan simulasi tcp, routing dan multicast protocol baik pada jaringan kabel maupun wireless (secara lokal maupun denagn satelit). Ns-2 merupakan tool favorit mahasiswa IT Telkom yang biasanya mengerjakan TA yang berhubungan dengan jaringan komputer biasanya digunakan untuk menguji algoritma baru yang dipropose pada jurnal – jurnal ilmiah. Kompleksitas NS-2 biasanya terletak pada pembuatan file .tcl dimana seorang user harus menguasai tcl dan C ++ sebagai basicnya. Disini saya ingin berbagi bagaimana proses instalasi NS-2 pada linux (khususnya ubuntu feisty) dan contoh file .tcl. INSTALASI 1. Download NS-2 di sini saya memakai NS versi ns-allinone-2.31. 2. Extract dengan perintah $ tar -xzvf ns-allinone-2.31.tar.gz 3. Masuk ke direktori ns-allinone-2.31 $ cd ns-allinone-2.31 4. Install build – essential, automake, autoconf dan libxmu-dev $ sudo apt-get install build-essential autoconf automake libxmu-dev 5. Install !! Tunggu dan bersabarlah. $./install 6. Setting environment variabel dan execution file sesuai permintaan NS-2 $ gedit ~/.bashrc 7. Copy paste konfigurasi dibawah ini lalu letakkan pada baris yang paling bawah pada file bashrc Ganti “/home/networklab/ns/” dengan letak program NS-2 anda misal letak NS-2 saya ada di “/home/suryo/program/ns2” ——————————————————————————————– # LD_LIBRARY_PATH OTCL_LIB=/home/networklab/ns/ns-allinone-2.31/otcl-1.13 NS2_LIB=/home/networklab/ns/ns-allinone-2.31/lib X11_LIB=/usr/X11R6/lib USR_LOCAL_LIB=/usr/local/lib export
Universitas Sumatera Utara
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_L OCAL_LIB # TCL_LIBRARY TCL_LIB=/home/networklab/ns/ns-allinone-2.31/tcl8.4.14/library USR_LIB=/usr/lib export TCL_LIBRARY=$TCL_LIB:$USR_LIB # PATH XGRAPH=/home/networklab/ns/ns-allinone-2.31/bin:/home/networklab/ns/ns-allinone2.31/tcl8.4.14/unix:/home/networklab/ns/ns-allinone-2.31/tk8.4.14/unix NS=/home/networklab/ns/ns-allinone-2.31/ns-2.31/ NAM=/home/networklab/ns/ns-allinone-2.31/nam-1.13/ PATH=$PATH:$XGRAPH:$NS:$NAM ——————————————————————————————————————— – 8. update source bashrc $source ~/.bashrc 9. Test NS dengan perintah jika benar akan nampak seperti gambar dibawah ini: $ns
Gambar 1. NS-2 Setelah kita berhasil menginstall NS-2. Disini kita akan mencoba membuat skenario jaringan dengan bantuan network simulator. Adapun skenarionya seperti spesifikasi dibawah ini : (terlalu formal ya bahasanya ) 1. Terdapat 2 node
Universitas Sumatera Utara
2. Node 0 akan mengirimkan paket UDP ke node 1 3. Link yang menghubungkan antar node sebagai berikut : link adalah duplex link dengan bandwidth 10 MB delay 10 ms dan algoritma antrian adalah drop tail. 4. Dimana Traffik CBR (constant bit rate): besar paket 500 bytes serta interval 0.005 s (200 paket per detik) 5. Traffik dimulai 0.5 (waktu NS-2) dan berhenti pada 4.5 (waktu NS-2) Caranya: 1. Kita buat dan beri nama file ini skenario.tcl $gedit skenario.tcl ————————————–skenario.tcl——————————————– #Buat objek simulator terlebih dahulu set ns [new Simulator] #Buka terlebih dahulu nam trace file set nf [open out.nam w] $ns namtrace-all $nf #Definisikan prosedur ‘finish’ ns2 simulator proc finish {} { global ns nf $ns flush-trace #Tutup trace file close $nf #Eksekusi nam exec nam out.nam & exit 0 } #Buat dua node set n0 [$ns node] set n1 [$ns node] #Buat duplex link antar node $ns duplex-link $n0 $n1 1Mb 10ms DropTail #Buat agen UDP dan set ke node n0
Universitas Sumatera Utara
set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Buat sumber trafik CBR traffic dan sambungkan ke udp0 # set ukuran paket, interval set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 #Buat Null agent (traffic sink) dan sambungkan node n1 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 #Sambungkan sumber traffic dengan traffic sink $ns connect $udp0 $null0 #Jadwalkan event CBR agent $ns at 0.5 “$cbr0 start” $ns at 4.5 “$cbr0 stop” #Panggil prosedur finish setelah 5 detik (Waktu Simulasi) $ns at 5.0 “finish” #Jalankan simulasi $ns run ———————————————————————————————– 2. Jalankan skenario.tcl $ns skenario.tcl 3. Hasilnya seperti ini :
Universitas Sumatera Utara
Gambar 2. Program berhasil 4. Klik tanda play dan hasilnya seperti ini:
Gambar 3. Running NS
Universitas Sumatera Utara
LAMPIRAN B USER GUIDE Berikut ini adalah penjelasan dari script di atas. Secara umum, script NS dimulai dengan membuat sebuah instance objek Simulator: •
set ns [new Simulator] : menghasilkan sebuah contoh simulator NS objek, dan memberikan ke ns variabel (huruf miring digunakan untuk variabel dan nilai-nilai dalam bagian ini).
Simulator adalah objek memiliki fungsi anggota yang melakukan hal
berikut: 1. Membuat obyek seperti node dan link (dijelaskan kemudian) 2. Menghubungkan komponen jaringan objek yang dibuat (ex. lampirkan-agent) 3. Mengatur komponen parameter suatu jaringan yang dibuat 4. Membuat hubungan antara agent (ex. membuat sambungan antara tcp dan sink) 5. Menentukan tampilan pada NAM Sebagian besar fungsi untuk setup simulasi dan penjadwalan, namun beberapa untuk tampilan NAM. •
$ns color fid color: adalah untuk mengatur fungsi
warna dari paket untuk aliran
ditentukan oleh aliran id (fid). Fungsi Simulator adalah untuk tampilan NAM, dan tidak berpengaruh pada simulasi yang sebenarnya. •
$ns namtrace-all file-descriptor: Fungsi anggota ini meemberitahukan simulator untuk merekam jejak simulasi dalam format masukan NAM. Hal ini juga memberi nama file yang akan jejak ditulis untuk kemudian oleh perintah $ns flush-trace. Demikian pula, fungsi dari trace-all adalah untuk merekam simulasi jejak dalam format umum.
Universitas Sumatera Utara
•
proc finish {} : Akan dipanggil setelah simulasi ini berakhir dengan perintah $ns at 5.0 "finish".
•
set n0 [$ns node]: fungsi dari node menciptakan sebuah node. Sebuah node dalam NS adalah obyek terbuat dari alamat dan port pengklasifikasi . Pengguna dapat membuat node dengan secara terpisah dan membuat sebuah alamat dan port classifier objek dan menghubungkan mereka bersama-sama. Namun, fungsi Simulator membuat pekerjaan lebih mudah.
•
$ns duplex-link node1 node2 bandwidth delay queue-type: menciptakan dua link simpleks dari bandwidth dan delay tertentu, dan menghubungkan dua node tertentu. Dalam NS, antrian output node diimplementasikan sebagai bagian dari link, sehingga pengguna harus menentukan jenis antrian-link saat membuatnya. Dalam script simulasi di atas, DropTail antrian digunakan. Jika kita ingin menggunakan antrian RED, cukup mengganti kata DropTail dengan RED. Seperti sebuah node, sebuah link objek dan pengguna dapat membuat sub-objek dan menghubungkan mereka dan node-node. Satu hal yang perlu dicatat adalah bahwa Anda dapat memasukkan modul kesalahan dalam komponen link untuk mensimulasikan link lossy.
•
$ns queue-limit node1 node2 number: Baris ini menetapkan batas antrian dua link simpleks yang menghubungkan node1 dan node2 ke nomor tertentu. Pada titik ini, penulis tidak tahu berapa banyak jenis-jenis fungsi anggota objek Simulator yang tersedia.
•
$ns duplex-link-op node1 node2: Beberapa garis berikutnya untuk melihat tampilan NAM.
Universitas Sumatera Utara
Sekarang konfigurasi jaringan dasar dilakukan, hal berikutnya yang harus dilakukan adalah trafik agent seperti TCP dan UDP, sumber trafik seperti pada FTP dan CBR, dan melampirkannya ke masing-masing node dan agent. • set tcp [new Agent/TCP]: Baris ini menunjukkan bagaimana membuat agent TCP. Tapi secara umum, pengguna dapat membuat setiap agent atau sumber trafik dengan cara ini. Agent dan sumber trafik tersebut sebenarnya objek dasar , sebagian besar diterapkan di C + + dan terkait dengan OTcl. Oleh karena itu, tidak ada Simulator spesifik yang membuat objek kasus ini. Untuk membuat agent atau sumber trafik, pengguna harus mengetahui nama kelas objek (Agent / TCP, Agnet / TCPSink, Aplikasi / FTP dan sebagainya). Informasi ini dapat ditemukan dalam dokumentasi NS atau sebagian di dokumentasi ini.. File ini berisi pengaturan default nilai parameter dapat dikonfigurasi untuk objek jaringan yang tersedia. Oleh karena itu, bekerja sebagai indikator yang baik dari apa jenis objek jaringan yang tersedia di NS dan apa parameter yang terdapat dapat dikonfigurasi. • : Fungsi anggota melampirkan agent-agent
yang
diciptakan untuk objek node.
Sebenarnya, fungsi ini tidak akan memanggil fungsi anggota yang dilampirkan oleh node yang ditentukan, yang ada pada agent itu sendiri. Oleh karena itu, pengguna dapat melakukan hal yang sama dengan misalnya, $n0 attach $tcp. Demikian pula, setiap obyek agen memiliki fungsi anggota melampirkan-agen yang ada pada sumber trafik obyek itu sendiri. • $ns connect agent1 agent2: Setelah dua agent yang akan berkomunikasi satu sama lain diciptakan, hal berikutnya adalah membuat sambungan jaringan logis di antara mereka.
Universitas Sumatera Utara
Baris ini membentuk sambungan jaringan dengan menetapkan alamat tujuan ke jaringan satu sama lain dan pasangan alamat port. Dengan asumsi bahwa semua konfigurasi jaringan dilakukan, hal berikutnya yang harus dilakukan adalah menulis skenario simulasi. Simulator objek memiliki fungsi penjadwalan dari banyak anggota. Namun, satu yang paling sering digunakan adalah sebagai berikut: •
$ns at time "string": fungsi anggota objek Simulator adalah membuat scheduler (scheduler_ adalah variabel yang menunjukkan scheduler objek yang dibuat oleh [perintah baru] Scheduler pada awal script) untuk jadwal pelaksanaan string yang ditentukan pada waktu simulasi yang diberikan. Sebagai contoh $ns at 0.1 "$cbr start" akan membuat scheduler panggilan fungsi mulai anggota sumber trafik CBR, yang memulai CBR untuk mengirimkan data. Dalam NS, sumber trafik
biasanya tidak
mengirimkan data yang sebenarnya, tetapi memberitahu agent mendasar yang memiliki beberapa jumlah data yang mengirimkan, dan agent hanya tahu berapa banyak data untuk mentransfer, membuat paket dan mengirimkannya. Setelah semua konfigurasi jaringan, penjadwalan dan spesifikasi
simulasi prosedur
dilakukan, hanya satu-satunya adalah dengan menjalankan simulasi. Hal ini dilakukan dengan $ns run.
Universitas Sumatera Utara