modul 4

8
Modul 4 PENGENALAN NETWORK SIMULATOR-2 TUJUAN Peserta praktikum : 1) Dapat memahami prinsip dasar dari NS-2 2) Dapat membangun simulasi dengan NS-2 SEJARAH NS 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. KONSEP DASAR Dasar Bahasa TCL dan OTCL 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.

Upload: agung-echelon

Post on 08-Dec-2014

17 views

Category:

Documents


4 download

DESCRIPTION

a

TRANSCRIPT

Page 1: Modul 4

Modul 4

PENGENALAN NETWORK SIMULATOR-2

TUJUAN

Peserta praktikum :

1) Dapat memahami prinsip dasar dari NS-2

2) Dapat membangun simulasi dengan NS-2

SEJARAH NS

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.

KONSEP DASAR

Dasar Bahasa TCL dan OTCL

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.

Page 2: Modul 4

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

Page 3: Modul 4

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

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

Page 4: Modul 4

#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

PROSEDUR PERCOBAAN

A. Simple Trace

Cygwin – ganti directory ke file tcl yang ingin disimulasi, kemudian eksekusi

langsung dengan perintah :

start x

ns <file tcl-nya>.tcl

Pada percobaan ini file tcl-nya adalah : set ns [new Simulator]

$ns color 1 Blue

$ns color 2 Red

set tracefile1 [open out.tr w]

set winfile [open WinFile w]

$ns trace-all $tracefile1

set namfile [open out.nam w]

$ns namtrace-all $namfile

proc finish {} {

global ns tracefile1 file2 namfile

$ns flush-trace

close $tracefile1

#close $namfile

#exec nam out.nam &

exit 0

}

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

set n5 [$ns node]

$ns duplex-link $n0 $n2 2Mb 10ms DropTail

$ns duplex-link $n1 $n2 2Mb 10ms DropTail

$ns simplex-link $n2 $n3 0.3Mb 100ms DropTail

$ns simplex-link $n3 $n2 0.3Mb 100ms DropTail

$ns duplex-link $n3 $n4 0.5Mb 40ms DropTail

$ns duplex-link $n3 $n5 0.5Mb 30ms DropTail

Page 5: Modul 4

$ns queue-limit $n2 $n3 20

set file2 [open out.queue w]

$ns trace-queue $n2 $n3 $file2

set tcp [new Agent/TCP/Newreno]

$ns attach-agent $n0 $tcp

set sink [new Agent/TCPSink]

$ns attach-agent $n4 $sink

$ns connect $tcp $sink

$tcp set fid_ 1

$tcp set window_ 80

$tcp set packetSize_ 552

set ftp [new Application/FTP]

$ftp attach-agent $tcp

set udp [new Agent/UDP]

$ns attach-agent $n1 $udp

set null [new Agent/Null]

$ns attach-agent $n5 $null

$ns connect $udp $null

$udp set fid_ 2

set cbr [new Application/Traffic/CBR]

$cbr attach-agent $udp

$cbr set packetSize_ 1000

$cbr set rate_ 0.01Mb

$cbr set random_ false

$ns at 0.1 "$cbr start"

$ns at 1.0 "$ftp start"

$ns at 124.0 "$ftp stop"

$ns at 124.5 "$cbr stop"

proc plotWindow {tcpSource file} {

global ns

set time 0.1

set now [$ns now]

set cwnd [$tcpSource set cwnd_]

puts $file "$now $cwnd"

$ns at [expr $now+$time] "plotWindow $tcpSource $file"

}

$ns at 0.1 "plotWindow $tcp $winfile"

$ns at 125.0 "finish"

$ns run

Perhatikan baris yang mengandung statemen out.tr dan out.nam . Kedua file inilah

yang akan dihasilkan oleh NS setelah kita menjalankan script di atas (Jelaskan

mengapa?). Dari file .tr, kita bisa mendapatkan gambaran tentang apa yang terjadi

dalam simulasi kita, sementara dari file out.nam, kita bisa memvisualisasikan

proses yang terjadi dengan menggunakan software yang bernama NAM.

Page 6: Modul 4

a. Analisa Packet Drop

Perhatikanlah file out.tr . Format dan arti dari baris-baris di file tersebut

seharusnya telah anda kerjakan dalam Tugas Pendahuluan. Carilah baris-baris

yang menjelaskan tentang paket yang di-drop. Dan jelaskan mengapa ini bisa

terjadi?

Hint : Ini berhubungan dengan kapasitas maksimal queue dalam link yang

bersangkutan.

b. Analisa 3-way-handshake

Anda telah belajar tentang 3way handshake pada praktikum sebelumnya.

Pada simulasi kali ini, anda bisa melihat bagaimana proses 3-way handshake

itu terjadi. Tolong tampilkan baris-baris mana yang menunjukkan hal tersebut,

dan jelaskan mengapa.

c. Analisa throughput

Jalankan script throughput.pl dengan cara sebagai berikut :

perl throughput.pl out.tr 4 1 > hasil

Lalu plotlah file output tersebut dengan menggunakan software xgraph

dengan cara :

xgraph hasil

Analisalah hasil ini dan sesuaikan dengan teori tentang TCP. Lakukan plot

pula terhadap file WinFile yang dihasilkan dari script TCL di atas.

Bandingkan titik-titik terendah yang menandakan terjadinya packet drop pada

grafik WinFile dan hasil dengan waktu dimana terjadi paket drop yang

sebenarnya (ada hubungannya). Jelaskan hubungan ini. Grafik WinFile

merupakan grafik Window Size terhadap waktu.

Selanjutnya, lakukan perubahan parameter pada sintaks yang ditebali di atas.

Pertama, lakukan perubahan dari simplex-link menjadi duplex-link. Kemudian,

ubah juga nilai queue size untuk link 2-3. Lakukan perubahan juga pada

bandwidth link (variasi terserah praktikan). Analisalah perbedaannya dengan

percobaan default.

B. Simulasi LAN

Dasar Simulasi LAN

Pada simulasi ini, kita akan mencoba mengubah topologi pada percobaan

sebelumnya menjadi topologi LAN. Berikut adalah teori singkat tentang

implementasi LAN pada ns2.

LAN pada NS diimplementasikan dalam bentuk sebuah virtual node dengan

default routing cost link =1/2, sehingga hubungan antar-node pada LAN dianggap

sebagai satu hop.

LAN pada NS terdiri atas LAN node dan LAN link. LAN node memiliki

karakteristik yang sama dengan node pada point to point link. LAN link meliputi

3 layer terbawah pembangun LAN, yakni :

1. Link Layer

2. Medium Access Layer

Page 7: Modul 4

3. Physical (PHY) Layer

Perintah dasar yang digunakan adalah sebagai berikut.

set lan [$ns newLan <arguments>]

Argumen itu sendiri terdiri dari 7 buah, yaitu :

a) Kumpulan dari node, contoh : $n2 $n3 $n4

b) Delay

c) Bandwidth

d) Tipe dari Link Layer

e) Tipe antrian

f) Tipe protocol MAC (Mac/Csma/Cd atau Mac/802.3)

g) Tipe Channel , e.g. Channel

Lakukan perubahan pada kedua baris ini : $ns duplex-link $n3 $n4 0.5Mb 40ms DropTail

$ns duplex-link $n3 $n5 0.5Mb 30ms DropTail

menjadi : set lan [$ns make-lan trace on "$n3 $n4 $n5" 0.5Mb 40ms LL

Queue/DropTail MAC/802_3 Channel Phy/WiredPhy]

Gambar di atas menunjukkan topologi yang digunakan pada percobaan ini.

Setelah itu, seperti pada percobaan sebelumnya, jalankan script TCL anda.

Perhatikan file out.tr dan out.nam. Untuk mereproduksi simulasi dengan NAM,

anda cukup memanggil program NAM dengan argumen file out.nam .

Lakukanlah analisis pada file out.tr .

a. Analisa menggunakan NAM

Perhatikanlah simulasi dengan software NAM (seharusnya NAM akan

langsung keluar begitu anda mengeksekusi sintaks di atas). Jelaskan

Page 8: Modul 4

selengkapnya apa yang terjadi, dan apakah perbedaan yang muncul

dibandingkan dengan percobaan tanpa menggunakan LAN!

b. Analisa collision

Perhatikanlah file out.tr anda. Sekarang ada event baru yaitu collision.

Collision akan terjadi pada jaringan Ethernet. Jelaskan mengapa collision bisa

terjadi! Hint : Baris collision muncul secara berpasangan berurutan.

c. Pengubahan parameter

Ubahlah parameter queue dan bandwidth. Perhatikan collision yang terjadi

pada file out.tr . Apakah collision akan bertambah atau berkurang? Jelaskan

menurut sepengetahuan anda mengapa itu bisa terjadi.