Anda di halaman 1dari 20

A.

JUDUL PERCOBAAN Pengenalan Network Simulator 2

B. TUJUAN a. Agar mahasiswa dapat mengetahui Network Simulator b. Agar mahasiswa dapat melakukan instalasi Network Simulator c. Agar mahasiswa dapat membuat simulasi sederhana dengan menggunakan Network Simulator.

C. ALAT DAN BAHAN a. 1 unit PC b. Koneksi Internet c. Kopi dan playlist lagu.

D. LANDASAN TEORI 1. Network Simulator Sebuah Pendahuluan. Network Simulator adalah suatu software berbasis linux yang dikembangkan oleh Univercity of California Berkeley, namun dengan bantuan software Cygwin NS ini bisa dijalankan di OS yang berbasis windows dan cygwin terbaru support windows 7. NS pertama kali dibangun sebagai varian dari REAL Networ Simulator pada tahun 1989 di University of California Berkeley. Pada tahun 1995 pembangunan Network Simulator didukung oleh DARPA (Defense Advanced Research Project Agency) melalui proyek VINT (Virtual Internet Testbed), yaitu sebuah tim riset gabungan yang beranggotakan tenaga ahli dari LBNL (Lawrence Berkeley of National Laboratory), Xerox PARC, UCB dan USC/ISI (University of Southern California School of Engineering/ Information Science Institute). Tim gabungan ini membangun sebuah perangkat lunak simulasi jaringan Internet untuk kepentingan riset interaksi antar protokol dalam konteks pengembangan protokol Internet pada saat ini dan masa yang akan datang. Dalam praktiknya penggunaan NS yaitu berbasis text, dalam artian kita membangun suatu simulasi dari serangkain script yang kita buat dan kemudian dilakukan running terhadap script tersebut. Bahasa pemrograman yang digunakan dalam script untuk membuat sebuah simulasi dalam NS ialah C++ dan OTcl (MIT Object Tcl, sebuah ekstensi untuk Tcl/Tk untuk pemrograman berorientasi objek). OTcl ini digunakan untuk membangun struktur jaringan dan topologi yang menekankan pada tampilan permukaan dari simulasi. Selain itu OTcl mudah untuk mengkonfigurasi dari parameter-parameter jaringan. Sedangkan C++ merupakan yang paling penting dan menjadi bagian karnel dari NS tersebut. C++ digunakan untuk mengimplementasikan karnel dari arsitektur dari desain protokol, dan rincian dari skema penelitan. 1

Ada suatu pertanyaan yang timbul, mengapa NS harus menggunakan 2 bahasa pemrograman? Jawabannya adalah: dua hal yang dibutuhkan oleh simulator adalah detail simulasi dari protokol : kecepatan Run-time dan verifikasi parameter atau konfigurasi : kemudahan untuk digunakan. C++ itu cepat dalam proses run-time tapi lebih lambat atau sulit untuk coding atau perubahan, sedangkan Tcl mudah dalam melakukan coding tetapi proses run-timenya lambat. 2. Protokol atau model yang didukung oleh NS: Wired Networking Routing: Unicast, Multicast, and Hierarchical Routing, etc. Transportation: TCP, UDP, others; Traffic sources: web, ftp, telnet, cbr, etc. Queuing disciplines: drop-tail, RED, etc. QoS: IntServ and Diffserv Wireless Networking Ad hoc routing and mobile IP Sensor Networks(hmmm) SensorSim: built up on NS2, additional features, for TinyOS Traffic models and applications: Web, FTP, telnet, constant-bit rate(CBR) Transport protocols: Unicast: TCP (Reno,Vegas), UDP Multicast Routing and queuing: Wired routing, Ad Hoc routing. Queuing protocols: RED(Random Early Drop), drop-tail Physical media: Wired (point-to-point, LANs), wireless, satellite Intserv/Diffserv (QoS) Multicast: Routing, Reliable multicast Transport: TCP Congestion control Application: Web caching Multimedia Sensor Networks: LEACH, Directed Diffusion, etc. Most are routing protocols. Dan lain-lain 3. Komponen-komponen NS: 1. NS2: simulator itu sendiri, versi terbaru: ns-2.35 Kita akan bekerja lebih sering dengan bagian ini.. 2. NAM: Network animator. Memvisualisasikan dari hasil trace (tidak begitu akurat). Nam editor: antarmuka GUI untuk menghasilkan ns skript, hanya untuk sekedar pengenalan dan tidak tidak begitu berguna untuk meneliti tracing 2

3. Pre-processing: Lalu-lintas dan generator topologi 4. Post-processing: Analisis trace sederhana, kadang dalam Awk, Perl(sering), atau Tcl. 4. Struktur Folder dalam NS2: ns-allinone-2.35

Tcl8.5.10

Tk8.5.10

tclcl-1.20

otcl-1.14

ns-2.35

nam-1.15

tcl

...

ex

test

lib

mcast

...

5. Dasar Bahasa TCL dan OTCL 1. TCL Berikut adalah dasar-dasar bahasa tcl yang berguna dalam membangun simulasi : Syntax Dasar Syntax dasar perintah tcl yaitu: Command arg1 arg2 arg3 Command tersebut bisa berupa nama dari built in command, atau sebuah prosedur tcl. Contoh :
expr 2*3 puts nama saya heru

Variable dan Array Untuk membuat variabel pada tcl, digunakan perintah set. Contoh :
set x ini contoh variable set y 149

Pemanggilan variabel dilakukan dengan menggunakan tanda $ seperti contoh dibawah ini :
puts $x , semuanya berjumlah $y

NS juga mensupport penggunaan array. Array ditandai dengan menggunakan tanda kurung setelah nama array tersebut. Contoh :
set opts(bottlenecklinkrate) 1Mb set opts(ECN) on set n(0) [$ns node] set n(1) [$ns node]

Repetisi (loop) Ada 2 perintah repetisi, yaitu: 1. While Format perintahnya :


while {condition}{command}

Command pada while dilakukan berulang selama condition bernilai benar. Perintah untuk mengakhiri repetisi dinyatakan pada bagian command. Contoh :
set i 0 while {$i<10}{set n($i)[new Node] incr i}

2. For Format perintahnya :


for {command1}{condition}{command2}{ command }

Command dilakukan terus menerus selama kondisi bernilai benar. Inisialisasi dilakukan pada command1, terminating condition berada pada condition, dan perubahan nilai inisialisasi pada command2. Contoh : for {set i 0}{$i<100}{incr i}{ set n($i) [$ns node] } Perintah Kondisional Format perintah :
if {condition}{ command }

Command dilakukan jika condition bernilai benar. Contoh :


if {$i<10}{ puts i is less than 10 }

Comment Jika tcl menemukan sebuah tanda #, maka mulai dari tanda tersebut sampai ke akhir batas, tcl tidak akan mengeksekusinya dan menganggapnya sebagai komentar. Prosedur Ada 2 metoda pembuatan prosedur, yaitu : 1. Prosedur tanpa parameter Format perintah :
proc name {}{ command }

Contoh :
proc tampil {}{ puts ini tampilannya }

Prosedur digunakan dengan mengetikkan nama prosedur, contoh :


tampil

2. Prosedur dengan menyatakan parameter Format perintah :


proc name {parameter}{ command }

Contoh :
proc proc2 {parameter1}{ puts nilai parameter1 adalah $parameter1 } #dipanggil dengan proc2 10

Nama prosedur, built in command, variabel dan array bersifat case sensitive. Nama prosedur dan variable tidak akan konflik satu sama lain. Agar variable yang dideklarasikan pada program utama dapat digunakan dalam prosedur atau sebaliknya, kita tinggal menambahkan perintah : global <variable1> <variable2> pada command body prosedur

2. OTCL Berikutnya adalah pengenalan otcl (Object Oriented TCL). Otcl adalah ekstensi tambahan pada tcl yang memungkinkan fungsi object oriented (OO) pada tcl. Hal ini memungkinkan pendefinisian dan penggunaan class otcl. Ini adalah contoh fungsi sederhana otcl. Perhatikan perbedaan antara tcl dan otcl :
#fungsi panggilan class seniro #create object class seniro seniro instproc panggilan{}{ #mendefinisikan object class yang sudah didefinisikan $self instvar NIM_ #cek variabel referensi puts : $NIM_seniro berkata : Kerjakan laporan dengan baik ya..! } #membuat child class dari seniro class juniro superclass seniro #inheritance class dari class seniro juniro instproc panggilan {}{ $self instvar NIM_ puts $NIM_juniro berkata : Siap seniro..! } #buat object seniro dan juniro set a [new seniro] $a set NIM_13205149 set b [new juniro] $b set NIM_13206xxx #panggil fungsi panggilan $a panggilan

E. HASIL PRAKTIKUM 1. Installasi Network Simulator di Windows XP. Untuk melakukan proses installasi NS 2.35 di dalam lingkungan Windows XP, pertama yang harus kita miliki adalah Cygwin (versi terbaru sejak dokumen ini di release adalah Cygwin 2.761). Berikut langkah-langkah installasi Cygwin: Jalankan Setup program untuk memulai installasi Cygwin.

Setelah itu maka akan muncul jendela Cygwin Setup seperti di bawah ini:

Tekan tombol next, selanjutnya muncul jendela seperti gambar dibawah ini:

Pada gambar di diatas terdapat tiga pilihan dalam installasi Cygwin, 1) Install from Internet, install langsung dari internet, 2) Download Without Installing, mendownload file-file yang dibutuhkan untuk installasi cygwin tanpa harus menginstall, dan 3) Install from Local Directory, install cygwin dari folder di local komputer, ini dapat dilakukan jika sebelumnya kita telah melakukan pilihan ke-1 atau ke-2. Klik pilih Install from Local Directory kemudian tekan tombol Next maka akan tampil jendela berikut:

Pada gambar di atas terdapat pilihan dimana kita akan melakukan installasi Cygwin, secara default akan terisi C:\cygwin, jika kita akan mengubahnya klik Tombol Browse kemudian pilih direktorinya. Pada bagian Install For, pilih All Users (RECOMMENDED). Kemudian tekan Tombol Next, selanjutnya akan muncul windows berikut:

Pada gambar diatas berisi dimana kita menyimpan file-file instalasi dari cygwin, klik tombol Browse kemudian pilih direktorinya. Setelah itu klik Tombol Next, maka akan muncul windows seperti gambar dibawah ini:

Tunggu proses diatas sampai selesai hingga muncul windows seperti dibawah ini (jika ada windows konfirmasi klik yes):

Seperti terlihat pada gambar diatas, cari komponen yang diperlukan untuk installasi NS 2.35, kemudian beri tanda [x] pada keterangan file tersebut, komponen-komponen yang diperlukan tersebut yaitu : gcc4, gcc4-g++, gawk, tar, gzip, make, patch, perl, w32api, xorg-server, xinit, libX11devel, libXmu-devel. Setelah semua komponen telah terpilih selanjutnya Klik tombol Next, maka akan muncul windows konfirmasi klik tombol Next saja. Tunggu sampai installasi selesai. Installasi memerlukan waktu kurang dari 30 menit tergantung dari spesifikasi hardware komputer. Setelah installasi selesai maka akan muncul jendela seperti gambar dibawah ini:

Beri ceklist pada pilihan Create icon on Desktop, kemudian klik Tombol Finish. Setelah Installasi Cygwin selesai selanjutnya kita masuk ke tahap II yaitu installasi NS 2.35. pastikan terlebih dahulu kita telah mendowload file ns-allinone-2.35.tar.gz, jalankan cygwin kemudian copy-kan file tersebut ke directory C:\cygwin\home\[username komputer]* *[username komputer] adalah nama user yang sedang digunakan pada komputer anda. Pada cygwin terminal ketikan seperti gambar dibawah ini:

$ tar xvf ns-allinone-2.35.tar.gz

Perintah diatas akan melakukan ektraksi file ns-allinone-2.35.tar.gz, tunggu hingga proses selesai, selanjutnya ketikan script dibawah ini:
$ cd ns-allinone-2.35 [enter] $ ./install [enter]

10

Tunggu hingga proses intallasi selesai ini akan memakan waktu 50 menit sampai 1 jam atau lebih tergantung dari spesifiksi komputer yang digunakan. Setelah installasi selesai ikuti petunjuk yang di tampilkan pada jendela cygwin terminal, isi dari petunjuk tersebut kurang lebih seperti berikut ini:
Please put /home/User/ns-allinone-2.35/bin:/home/User/ns-allinone2.35/tcl8.5.10/unix:/home/User/ns-allinone-2.35/tk8.5.10/unix into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph. IMPORTANT NOTICES: (1) You MUST put /home/User/ns-allinone-2.35/otcl-1.14, /home/User/nsallinone-2.35/lib, into your LD_LIBRARY_PATH environment variable. If it complains about X libraries, add path to your X libraries into LD_LIBRARY_PATH. If you are using csh, you can set it like: setenv LD_LIBRARY_PATH <paths> If you are using sh, you can set it like: export LD_LIBRARY_PATH=<paths> (2) You MUST put /home/User/ns-allinone-2.35/tcl8.5.10/library into your TCL_LIBRARY environmental variable. Otherwise ns/nam will complain during startup.

After these steps, you can now run the ns validation suite with cd ns-2.35; ./validate For trouble shooting, please first read ns problems page

11

http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive for related posts.

Please put /home/User/ns-allinone-2.35/bin:/home/User/ns-allinone2.35/tcl8.5.10/unix:/home/User/ns-allinone-2.35/tk8.5.10/unix into your PATH environment;

tambahkan path yang bercetak tebal di atas pada PATH envirenment, caranya (ikuti langkah pada gambar dibawah ini): klik kanan My Computer kemudian klik Properties atau tekan windows button + pause break atau pada command prompt ketikan sysdm.cpl, maka akan muncul windows seperti gambar dibawah ini:

Kemudian:

12

Selanjutnya:

Setelah path dimasukan kemudian tekan Tombol OK!


You MUST put /home/User/ns-allinone-2.35/otcl-1.14, /home/User/nsallinone-2.35/lib, into your LD_LIBRARY_PATH environment variable. If it complains about X libraries, add path to your X libraries into LD_LIBRARY_PATH. If you are using csh, you can set it like: setenv LD_LIBRARY_PATH <paths> If you are using sh, you can set it like: export LD_LIBRARY_PATH=<paths> (2) You MUST put /home/User/ns-allinone-2.35/tcl8.5.10/library into your TCL_LIBRARY environmental variable. Otherwise ns/nam will complain during startup.

Untuk memasukan path pada cygwin terminal ketikan script seperti gambar dibawah ini:
$ export LD_LIBRARY_PATH=/home/User/ns-allinone-2.35/otcl-1.14 $ export LD_LIBRARY_PATH=/home/User/ns-allinone-2.35/lib $ export TCL_LIBRARY_PATH=/home/User/ns-allinone-2.35/tcl8.5.10/library

13

Setelah itu selesai lakukan validitas pada installasi NS anda (Cuma pilihan), caranya seperti dibawah ini:

$ cd ns-allinone-2.35 $ cd ns-2.35 $ ./validate

Proses diatas memakan waktu 2 atau 3 jam atau lebih tergantung dari spesifikasi komputer. Setelah semuanya selesai, pada cygwin terminal ketikan startxwin tanpa tanda kutip. Maka akan muncul x window seperti gambar dibawah ini:

14

Pada windows diatas ketikan seperti pada gambar dibawah ini:

$ cd ns-allinone-2.35 $ cd ns-2.35 $ cd tcl/ex $ ns simple.tcl

Perintah yang diketikan pada gambar diatas adalah untuk menjalankan contoh simulasi sederhana yang telah disediakan oleh NS, maka akan muncul dua buah window yaitu:

15

Gambar diatas adalah tampilan dari Nam (network animator). Untuk membuat sebuah simulasi dengan menggunakan NS 2, kita harus mengetik script berbahasa tcl dengan menggunakan aplikasi notepad++. 2. Praktikum Pembuatan Simulasi sederhana. a. Latihan 1 Script yang akan kita buat/ketikan dalam aplikasi notepad++, setting bahasa yang digunakan dalam notepad++ tersebut menjadi TCL, caranya klik menu Language T TCL. Selanjutnya ketikan kode (script tcl) dibawah ini:
#Membuat sebuah objek simulator set ns [new Simulator] #Mendefinisikan warna berbeda untuk aliran data (untuk NAM) $ns color 1 Blue $ns color 2 Red #Buka file trace NAM set nf [open out.nam w] $ns namtrace-all $nf #Mendefinisikan Prosedur finish proc finish {} { global ns nf $ns flush-trace #Close the NAM trace file close $nf #Execute NAM on the trace file exec nam out.nam & exit 0 } #Membuat empat buah node set n0 [$ns node] set n1 [$ns node]

16

set n2 [$ns node] set n3 [$ns node] #Membuat penghubung $ns duplex-link $n0 $ns duplex-link $n1 $ns duplex-link $n2 (link) antara node-node $n2 2Mb 10ms DropTail $n2 2Mb 10ms DropTail $n3 1.7Mb 20ms DropTail

#Mengeset ukuran antrian dari link (n2-n3) menjadi 10 $ns queue-limit $n2 $n3 10 #Memberikan posisi $ns duplex-link-op $ns duplex-link-op $ns duplex-link-op node (untuk NAM) $n0 $n2 orient right-down $n1 $n2 orient right-up $n2 $n3 orient right

#Monitor antrian untk link (n2-n3). (untuk NAM) $ns duplex-link-op $n2 $n3 queuePos 0.5 #Mengatur sebuah koneksi TCP set tcp [new Agent/TCP] $tcp set class_ 2 $ns attach-agent $n0 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 #Mengatur FTP melalui koneksi TCP set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP # Mengatur sebuah koneksi UDP set udp [new Agent/UDP] $ns attach-agent $n1 $udp set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $udp $null $udp set fid_ 2 #mengatur CBR melalui koneksi UDP set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set type_ CBR $cbr set packet_size_ 1000 $cbr set rate_ 1mb $cbr set random_ false #Jadwal event untuk CBR dan FTP agents $ns at 0.1 "$cbr start" $ns at 1.0 "$ftp start" $ns at 4.0 "$ftp stop" $ns at 4.5 "$cbr stop" #Menugaskan tcp dan sink agents (tidak begitu perlu) $ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink" #Memanggil prosedur finish setelah 5 detik dari waktu simulasi $ns at 5.0 "finish" #Mencetak Ukuran paket dan interval CBR puts "CBR packet size = [$cbr set packet_size_]" puts "CBR interval = [$cbr set interval_]"

17

#Menjalankan simulasi $ns run

Kemudian setelah itu simpan file diatas dengan nama latihan1.tcl, simpan di direktori C:\cygwin\home\[nama user]. Untuk melihat hasil dari simulasi script diatas caranya yaitu: Buka cygwin terminal, kemudian ketikan startxwin dalam cygwin terminal tersebut. Maka akan muncul cygwin/x server. Pada windows tersebut ketikan secara berturut-turut skrip berikut:
ns latihan1.tcl

maka pada pada beberapa baris kebawahnya akan muncul tulisan seperti berikut;
CBR packet size = 1000 CBR interval = 0.0080000000000000002 Aborted

Dan muncul 2 buah windows yaitu Nam Console v1.15 dan nam: out.nam, seperti gambar dibawah ini:

Pada window nam: out.nam klik tombol untuk menjalankan simulasi, tampilan dari simulasi tersebut seperti gambar dibawah ini:

18

b. Latihan 2 Seperti latihan 1, ketikan kode program dibawah ini:


#Membuat sebuah objek simulator set ns [new Simulator] #Buka file trace NAM set nf [open out.nam w] $ns namtrace-all $nf #Mendefinisikan Prosedur finish proc finish {} { global ns nf $ns flush-trace #Close the trace file close $nf #Execute nam on the trace file exec nam out.nam & exit 0 } #Membuat dua buah node set n0 [$ns node] set n1 [$ns node] #Membuat sebuah duplex link antara node-node $ns duplex-link $n0 $n1 1Mb 10ms DropTail #Membuat sebuah UDP agent dan menunpangkannya ke node n0 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 #Membuah sebuah Sumber lalu lintas CBR dan menumpangkan ke udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 #Membuah Null agent (a traffic sink) dan menumpangkan ke node n1 set null0 [new Agent/Null] $ns attach-agent $n1 $null0

19

#Menghubungkan traffic source dengan traffic sink $ns connect $udp0 $null0 #Menjadwal even untuk CBR agent $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" #Call the finish procedure after 5 seconds of simulation time $ns at 5.0 "finish" #Menjalankan Simulasi $ns run

Jalankan program diatas, maka hasilnya adalah sebagai berikut ini:

F. REFERENSI Kevin Fall dan Kannan Varadhan. 2011. The ns Manual (formerly ns Notes and Documentation). UC Berkeley: The VINT Project. http://www.isi.edu/nsnam/ns/ns-documentation.html Liu, Ke. 2004. Network Simulator 2: Introduction. Dept. Of Computer Science, SUNY Binghamton. Jae Chung and Mark Claypool. 2000. NS by Example. [online]. Tersedia http://nile.wpi.edu/NS/index.html. Cara install Network Simulator 2 di windows XP. [online]. Tersedia http://djsandroecorp.blogspot.com/2010/12/cara-install-network-simulator-2-di.html.

20

Anda mungkin juga menyukai