Jumat, 19 Februari 2010

simulasi unicast routing protocol Link State

script ini tuh script dasar banget dalam NS. Kita akan mencoba melakukan capture pada sebuah skenario dengan protokol routing :) . Ntar sy bandingin juga script yang ga pake metode routing dengan yang make.

#(membuka script TCL baru. Script ini tanpa peroutingan . Out.nam adalah file animasi yang akan memperlihatkan proses pengiriman paket sedangkan file our.tr adalah file trace yang berisi tabel keterangan event apa saja yang terjadi selama proses simulasi)
set ns [new Simulator]
set nf [open out.nam w]
$ns namtrace-all $nf
Set tf [open out.tr w]
$ns trace-all $tf

#set node (user atau router yang dibutuhkan)
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]
set n8 [$ns node]
set n9 [$ns node]
set n10 [$ns node]
set n11 [$ns node]

#set link antar-node (duplex-link berarti dapat berkomunikasi 2 arah antarnode, 1Mb adalah besar bandwidth, 10ms adalah delay propagasi.Biasanya didefault bahwa 6 microsecond mewakili 1 km , droptail adalah jenis antrian pada buffer.Droptail berarti FIFO, ada juga jenis antrian lain seperti DRR, CBQ, RED, FQ, ama SFQ )
$ns duplex-link $n1 $n2 1Mb 10ms DropTail
$ns duplex-link $n2 $n3 1Mb 10ms DropTail
$ns duplex-link $n3 $n4 1Mb 10ms DropTail
$ns duplex-link $n4 $n5 1Mb 10ms DropTail
$ns duplex-link $n5 $n6 1Mb 10ms DropTail
$ns duplex-link $n5 $n7 1Mb 10ms DropTail
$ns duplex-link $n7 $n8 1Mb 10ms DropTail
$ns duplex-link $n8 $n9 1Mb 10ms DropTail
$ns duplex-link $n8 $n10 1Mb 10ms DropTail
$ns duplex-link $n2 $n10 1Mb 10ms DropTail
$ns duplex-link $n10 $n11 1Mb 10ms DropTail
$ns duplex-link $n10 $n4 1Mb 10ms DropTail
 
#set label,bentuk, dan warna node
$n1 shape hexagon
$n1 color red
$n1 label "source"
$n6 shape hexagon
$n6 color white
$n6 label "destination"
$n2 color blue
$n3 color blue
$n4 color blue
$n5 color blue
$n7 color blue
$n8 color blue
$n10 color blue

#set harga/cost tiap link. pada skenario ini, sy ingin menggunakan routing Link state yang memegang konsep algoritma djikstra, yaitu memilih cost terkecil ke tujuan.
$ns cost $n1 $n2 5
$ns cost $n2 $n3 50
$ns cost $n3 $n4 30
$ns cost $n4 $n5 25
$ns cost $n5 $n6 8
$ns cost $n5 $n7 10
$ns cost $n7 $n8 15
$ns cost $n8 $n9 22
$ns cost $n8 $n10 10
$ns cost $n2 $n10 10
$ns cost $n10 $n11 16
$ns cost $n10 $n4 15



#set jenis paket. Jenis paket trgantung dari komunikasi apa yg kita lakukan. Misalnya nih, mau komdat, berarti make paket TCP. Kalo mau voip, berarti make RTP , dan kalau mau video make UDP. Sebenernya voice bisa make UDP juga sih.Pertama bikin variabel agent dulu (sourcenya).
set udp0 [new Agent/UDP]
$ns attach-agent $n1 $udp0


#Setelah bikin agent, kita buat generator traffiknya. kalo buat UDP, dia make CBR , eksponensial, pareto, atau make traffic trace.
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0

# Setelah itu definisikan null/penangkap paket tadi alias si penerima.
set null0 [new Agent/Null]
$ns attach-agent $n6 $null0

$ns connect $udp0 $null0

#set waktu pengiriman
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"

proc finish {} {
        global ns nf tf
        $ns flush-trace
        close $nf
        close $tf
        exec nam out.nam &
        exit 0
}

$ns at 5.0 "finish"

$ns run


nah udah, ntar tinggal disave dalam bentuk .tcl dan dirun di termina.Setelah namnya muncul, kayak gini nih hasilnya :

Sedangkan kalo mau nambahin metode routing, tinggal nambahin script aja.kebetulan sy make Link state (OSPF), tambahin aja :
$ns rtproto LS
Secara garis besar ada 2 jenis routing protocol, unicast ama multicast. Bedanya terdapat pada node yg diroutingkan.Multicast ini digunakan untuk peroutingan paket ke sebuah group . Jadi kita harus mendefinisikan node yg diinginkan dengan alamat group tertentu :) . caranya :
Set ns [new Simulator]
$ns multicast


Nah, sedangkan perbedaan antara skenario non-routing dengan yg make routing protocol terlihat jelas di waktu awal simulasi. Pada script dengan routing, di waktu awal terjadi inisialisasi seperti pembentukan tabel cost dan perhitungan cost terkecil dari source ke destination.
 

Baru setelah inisialisasi dan menemukan rute terbaik, si Source akan memulai sesi komunikasi .
Gimana kalo dalam suatu selang waktu, jaringan dengan cost terkecil tiba2 down? Nah pertanyaan bagus kan? Makanya sy juga nyobain di simulasi. Ngaturnya gampang, tinggal tambahin :
#set jaringan down
$ns rtmodel-at 1.0 down $n8 $n10

#set jaringan up
$ns rtmodel-at 2.0 up $n8 $n10

Nah kelihatan kan? Pada gambar di atas, tiba2 link komunikasi terputus sehingga paket yang dalam perjalanan akan di drop. Semua node akan secara spontan melakukan inisialisasi ulang untuk mencari rute alternatif, dan destination mengirim paket NACK ke source untuk paket yang loss di tengah jalan. Tuh, si paket akhirnya dilewatkan ke jalur sebelahnya, tepat di percabangan link putus.


Sedangkan gambar di atas menunjukkan waktu dimana jaringan yang putus telah kembali normal. Sekali lagi seluruh node melakukan inisialisasi agar paket yang dikirim kembali ke jalur awal.


Yap, begitulah model perjalanan suatu paket dengan routing protocol LS. Jangan lupa komen yah kalo ada yg salah , biar bisa diperbaiki. Soalnya sy juga masih belajar. Makasiii :)
Categories:

1 komentar:

  1. apa perintah untuk run script yg disave dlm format .tcl???????????????/

    BalasHapus