Analisis waktu konvergensi protokol routing OLSR pada jaringan manet dengan NS-3.

(1)

ABSTRAK

MANET adalah jaringan ad-hoc yang setiap node nya dapat bergerak

dengan bebas. Jenis jaringan ini tidak tergantung pada infrastruktur jaringan yang

ada. Hal ini disebabkan karena MANET memiliki sifat yang dinamis dan spontan.

Masing-masing node dalam jaringan ini dapat meneruskan aliran paket data atau

dapat bertindak sebagai router.

OLSR merupakan salah satu protokol routing yang digunakan pada

jaringan ad-hoc. Protokol ini tergolong dalam proactive routing protocol, dimana

setiap node nya akan mengirimkan informasi routing setiap satuan waktu dengan

metode broadcast. Informasi routing pada OLSR terdapat pada pesan TC (

Topology Control ).

Waktu konvergensi adalah waktu dimana semua node atau router

menerima informasi routing. Pada OLSR, waktu konvergensi terjadi ketika semua

node menerima pesan TC yang sama dalam satu jaringan. Hasil dari penelitian ini

adalah cepat atau lambatnya waktu konvergensi protokol OLSR bergantung pada

kepadatan jaringan dan beban aliran data yang digunakan.


(2)

ABSTRACT

MANET is an ad-hoc network which has free node. MANET is not

depend on the existing network infrastructure. It is because MANET has

dynamic and spontaneous character. Each node on this network can forward the

data stream or can act as a router.

OLSR is one of routing protocol that used by the ad-hoc network. This

protocol include in proactive routing protocol, that every node of it will send

routing information in every single time with the broadcast methods. Every

routing information of OLSR is inside TC (Topology Control) messages.

Convergence time is the time where every nodes or routers received

routing information. On OLSR, convergence time happen when all nodes receive

same TC message in a network. Results of this thesis is about the speed of the

OLSR protocol convergence time depends on the network density and data

stream load which used.


(3)

i

ANALISIS WAKTU KONVERGENSI PROTOKOL ROUTING OLSR

PADA JARINGAN MANETDENGAN NS-3

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh:

Mikael Yudhi Priamuda

085314022

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA


(4)

ii

CONVERGENCE TIME ANALYSIS OF OLSR ROUTING PROTOCOL

ON MANET WITH NS-3

A THESIS

Presented as Partial Fulfillment of The Requirements

To Obtain Sarjana Komputer Degree

In Informatics Engineering Study Program

Created by:

Mikael Yudhi Priamuda

085314022

INFORMATICS ENGINEERING STUDY PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA


(5)

(6)

(7)

v

HALAMAN MOTTO

Bukan PINTAR atau BODOH

Bukan BISA atau TIDAK BISA

Tapi


(8)

(9)

vii

ABSTRAK

MANET adalah jaringan ad-hoc yang setiap node nya dapat bergerak dengan bebas. Jenis jaringan ini tidak tergantung pada infrastruktur jaringan yang ada. Hal ini disebabkan karena MANET memiliki sifat yang dinamis dan spontan. Masing-masing node dalam jaringan ini dapat meneruskan aliran paket data atau dapat bertindak sebagai router.

OLSR merupakan salah satu protokol routing yang digunakan pada jaringan ad-hoc. Protokol ini tergolong dalam proactive routing protocol, dimana setiap node nya akan mengirimkan informasi routing setiap satuan waktu dengan metode broadcast. Informasi routing pada OLSR terdapat pada pesan TC ( Topology Control ).

Waktu konvergensi adalah waktu dimana semua node atau router menerima informasi routing. Pada OLSR, waktu konvergensi terjadi ketika semua node menerima pesan TC yang sama dalam satu jaringan. Hasil dari penelitian ini adalah cepat atau lambatnya waktu konvergensi protokol OLSR bergantung pada kepadatan jaringan dan beban aliran data yang digunakan.


(10)

viii

ABSTRACT

MANET is aN ad-hoc network which has free node. MANET is not depend on the existing network infrastructure. It is because MANET has dynamic and spontaneous character. Each node on this network can forward the data stream or can act as a router.

OLSR is one of routing protocol that used by the ad-hoc network. This protocol include in proactive routing protocol, that every node of it will send routing information in every single time with the broadcast methods. Every routing information of OLSR is inside TC (Topology Control) messages.

Convergence time is the time where every nodes or routers received routing information. On OLSR, convergence time happen when all nodes receive same TC message in a network. Results of this thesis is about the speed of the OLSR protocol convergence time depends on the network density and data stream load which used.


(11)

(12)

x

KATA PENGANTAR

Syukur dan terimakasih penulis ucapkan kepada Tuhan, karena atas penyertaannya penulis dapat menyelesaikan tugas akhir yang berjudul “Analisis Waktu Konvergensi Protokol Routing OLSR Pada Jaringan MANET

Dengan NS-3”. Tugas akhir ini ditulis sebagai salah satu syarat memperoleh gelar Sarjana Komputer program studi Teknik Informatika Fakultas Sains Dan Teknologi Universitas Sanata Dharma.

Penulis juga mengucapkan terimakasih kepada semua pihak yang telah membantu dalam menyelesaikan tugas akhir ini, yaitu:

1. Tuhan.

2. Bapak Paulus Sukardi, Ibu Anastsya Supriyati, Bernadeta Yogi Adiwijayanti dan Maria Kurnia.

3. Bapak Bambang Soelistijanto, Ph.D.

4. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. 5. Ibu Ridowati Gunawan, S.Kom., M.T.

6. Bapak Henricus Agung Hernawan, S.T., M.Kom. dan Bapak Puspaningtyas S. Adi., S.T., M.T.

7. Seluruh dosen program studi Teknik Informatika. 8. Staff sekretariat dan laboratorium komputer. 9. Teman-teman angkatan 2008 dan 2009.

10.Antonius Purwanto dan Rektifaya Swesti Putri. 11.Sahabat-sahabat berbagi cerita.


(13)

xi

Akhir kata, semoga tugas akhir ini dapat memberi manfaat bagi semua pihak dan perkembangan ilmu pengetahuan.

Yogyakarta, Juni 2015

Penulis,


(14)

xii

DAFTAR ISI

Halaman

Halaman Judul ... i

Halaman Judul (Inggris) ... ii

Halaman Persetujuan ... iii

Halaman Pengesahan ... iv

Halaman Motto ... v

Pernyataan Keaslian Karya ... vi

Abstrak ... vii

Abstract ... viii

Persetujuan Publikasi Karya Ilmiah ... ix

Kata Pengantar ... x

Daftar Isi ... xii

Daftar Gambar ... xiv

Daftar Tabel ... xv

BAB I. Pendahuluan 1.1.Latar Belakang ... 1


(15)

xiii

1.3.Tujuan Penelitian ... 2

1.4.Luaran Yang Diharapkan ... 3

1.5.Batasan Masalah ... 3

1.6.Metodologi Penelitian ... 3

1.7.Sistematika Penulisan ... 4

BAB II. Landasan Teori 2.1 Mobile Ad-hoc Network (MANET) ... 5

2.2 Optimized Link State Routing (OLSR) ... 9

2.2.1 HELLO Messages ... 13

2.2.2 TC (Topology Control) Messages ... 15

2.2.3 Cara Kerja OLSR ... 16

2.3 Konvergensi Routing (Routing Convergence) ... 22

2.3.1 Konvergensi OLSR ... 23

2.4 NETWORK SIMULATOR 3 (NS3) ... 23

BAB III. Perencanaan Simulasi Jaringan 3.1.Topologi Jaringan ... 27

3.2.Analisis Masalah ... 28

3.3.Analisis Kebutuhan ... 29

3.4.Parameter Simulasi ... 30


(16)

xiv

3.6.Parameter Unjuk Kerja ... 33

3.7.Tabel Analisis ... 33

BAB IV. Implementasi dan Analisis 4.1Implementasi Simulasi ... 34

4.2Pengambilan Data ... 35

4.2.1 Network density meningkat ... 35

4.2.2 Network density tetap ... 38

4.2.3 Network density meningkat dan ditambah dengan beban ... 40

4.2.4 Network density tetap dan ditambah dengan beban ... 43

4.2.5 Grafik Perbandingan ... 45

4.3Analisis ... 47

BAB V. Kesimpulan dan Saran 5.1Kesimpulan ... 49

5.2Saran ... 49

DAFTAR PUSTAKA ... 50

LAMPIRAN ... 51

DAFTAR GAMBAR Gambar 2.1. Kategori Ad Hoc Routing Protocol ... 7

Gambar 2.2. Format Paket OLSR ... 10


(17)

xv

Gambar 2.4. Format TC Message ... 15

Gambar 2.5. Flooding MPR ... 20

Gambar 3.1. Proses Pengiriman pesan TC ... 28

Gambar 4.1. Grafik rata-rata waktu konvergensi untuk network density meningkat ... 38

Gambar 4.2. Grafik rata-rata waktu konvergensi untuk network density tetap 40 Gambar 4.3. Grafik rata-rata waktu konvergensi untuk network density meningkat ditambah beban ... 43

Gambar 4.4. Grafik rata-rata waktu konvergensi untuk network density tetap ditambah beban ... 45

Gambar 4.5. Perbandingan rata-rata waktu konvergensi ... 46

DAFTAR TABEL Tabel 3.1. Parameter Simulasi dengan NS-3 ... 31

Tabel 3.2. Contoh Tabel Analisis ... 33

Tabel 4.1. Pengujian network density meningkat ... 37

Tabel 4.2. Pengujian network density tetap ... 40

Tabel 4.3. Pengujian network density meningkat ditambah beban ... 42


(18)

xvi


(19)

BAB I

Pendahuluan

1.1 Latar Belakang

Salah satu faktor yang menjadi perkembangan teknologi Internet adalah adanya komunikasi perangkat bergerak (Mobile Communication). Saat ini pengguna Internet menginginkan dapat mengakses data dimanapun dan kapanpun. Berbagai penelitian dilakukan untuk memenuhi kebutuhan tersebut. Komunikasi perangkat bergerak saat ini dibagi menjadi dua, yaitu Infrastructure Based dan Ad-hoc. Contoh dari Infrastructure Based adalah jaringan seluler. Sedangkan contoh dari Ad-hoc adalah MANET (Mobile Ad-hoc Network).

Pada MANET, terdapat berbagai protokol routing yang dapat digunakan. Protokol tersebut dibagi menjadi tiga kategori, yaitu proaktif, reaktif, dan gabungan antara keduannya yang disebut dengan hybrid. Protokol routing yang termasuk dalam kategori proaktif adalah Destination Sequenced Distance Vector (DSDV), Cluster Switch Gateway Routing (CSGR), Wireless Routing Protocol (WRP), Optimized Link State Routing (OLSR), dan protokol yang termasuk dalam kategori reaktif adalah Dynamic Source Routing (DSR), Ad hoc On-demand Distance Vector (AODV), Temporally Ordered Routing Algorithm (TORA), Associativy Based Routing (ABR), Signal Stability Routing (SSR). Sedangkan protokol yang termasuk hybrid adalah Zone Routing Protocol (ZRP), Hybrid Wireless Mesh Protocol (HWMP), dan Hybrid Routing Protocol for Large Scale MANET (HRPLS).


(20)

Masing-masing dari protokol tersebut memiliki kelebihan dan kekurangan dari segi unjuk kerja pengiriman antara lain delivery ratio, delivery delay dan convergence time (waktu konvergensi). Pada penelitian ini akan diuji waktu konvergensi pada protokol Optimized Link State Routing (OLSR). Waktu konvergensi adalah keadaan dimana semua node di jaringan mendapatkan informasi tentang topologi jaringan.

1.2 Rumusan Masalah

Dari latar belakang masalah yang telah dijelaskan, rumusan masalah untuk tugas akhir ini adalah:

1. Seberapa cepat routing konvergensi dapat dicapai pada protokol Optimized Link State Routing (OLSR).

1.3Tujuan Penelitian

Penelitian ini dilakukan dengan tujuan untuk mengetahui kinerja protokol routing Optimized Link State Routing (OLSR), khususnya untuk mengetahui waktu konvergensi.

1.4 Luaran Yang diharapkan

Pada penelitian ini, keluaran yang diharapkan adalah:

1. Dapat mengetahui kualitas protokol Optimized Link State Routing (OLSR) untuk diterapkan pada Ad-hoc.


(21)

2. Dapat mengetahui waktu konvergensi pada protokol Optimized Link State Routing (OLSR).

1.5 Batasan Masalah

Batasan masalah yang dihadapi pada penilitian ini adalah:

1. Penelitian hanya dilakukan pada protokol Optimized Link State Routing (OLSR).

2. Penelitian dilakukan diranah simulasi menggunakan Network Simulator 3 (NS3).

3. Parameter yang di uji adalah waktu konvergensi.

4. Jumlah node dan area simulasi dibatasi.

1.6 Metodologi Penelitian

Metodologi yang digunakan dalam penelitian ini adalah:

1. Studi literature mengenai protokol Optimized Link State Routing (OLSR).

2. Studi literature mengenai NS3 dan bahasa pemrogramannya.

3. Perancangan topologi jaringan di dalam simulasi.

4. Perancangan protokol pada topologi jaringan yang akan digunakan.


(22)

5. Pengukuran data rekayasa simulasi.

6. Analisis data hasil rekayasa simulasi.

1.7 Sistematika Penulisan

Sistematika penulisan penelitiian ini adalah: BAB I : Pendahuluan

BAB II : Landasan Teori

BAB III : Perancangan Simulasi Jaringan BAB IV : Implementasi dan Analisis BAB V : Kesimpulan dan Saran DAFTAR PUSTAKA


(23)

BAB II

Landasan Teori

2.1Mobile Ad-hoc Network (MANET)

MANET adalah sebuah jaringan wireless yang memiliki sifat dinamis dan juga spontan. Setiap mobile host dalam MANET bebas untuk bergerak ke segala arah. Di dalam jaringan MANET terdapat dua node (mobile host) atau lebih yang dapat berkomunikasi dengan node lainnya namun masih berada dalam jangkauan node tersebut. Selain itu, node juga dapat berfungsi sebagai penghubung antara node yang satu dengan node yang lainnya. [1]

Jaringan MANET melakukan komunikasi secara peer to peer menggunakan routing dengan cara multihop. Informasi yang akan dikirimkan disimpan terlebih dahulu dan diteruskan ke node tujuan melalui perantara. 2 karakteristik dari jaringan ini adalah:

1. Topologi yang dinamis

Artinya setiap node dapat bergerak bebas dan tidak dapat diprediksi,

2. Scalability

MANET bersifat tidak tetap atau jumlah node berbeda di tiap daerah dan juga memiliki tingkat keamanan fisik yang terbatas jika dibandingkan dengan jaringan kabel.

Jaringan Mobile ad hoc adalah kumpulan dua atau lebih perangkat yang didalamnya terdapat kemampuan untuk berkomunikasi secara wireless


(24)

dan juga dapat mengakses jaringan. Perangkat tersebut dapat berkomunikasi dengan node yang lain selama masih berada dalam jangkauan perangkat tersebut. Node yang bersifat sebagai penghubung (relay node) digunakan untuk meneruskan paket dari sumber ke tujuan.

Sebuah jaringan MANET akan mengorganisir dirinya sendiri dan beradaptasi dengan sekitarnya. Ini berarti jaringan tersebut dapat terbentuk tanpa sistem administrasi (self-configured). Perangkat pada jaringan ini harus mampu mendeteksi keberadaan perangkat lain untuk melakukan komunikasi dan berbagi informasi.

Protokol Routing pada jaringan ad hoc setidaknya harus memiliki kemampuan yang sifatnya dasar pada jaringan tersebut yaitu protokol tersebut harus mampu beradaptasi secara dinamis terhadap perubahan topologi jaringan. Hal ini diimplementasikan dengan teknik perencanaan untuk menelusuri perubahan topologi jaringan dan menemukan rute yang baru ketika rute yang lama telah expired atau hilang.

Berdasarkan konsep routing dan beberapa pertimbangan untuk kondisi jaringan ad hoc maka protokol routing pada jaringan ad hoc dibagi menjadi tiga kategori yaitu :[3]

1. Table Driven Routing Protocol (Proactive Routing Protocol)

2. On Demand Routing Protocol (Reactive Routing Protocol)


(25)

Gambar 2.1 Kategori Ad Hoc Routing Protocol

Pada table driven routing protocol (proactive Routing protocol), masing-masing node akan memiliki routing table yang lengkap dalam artian sebuah node akan mengetahui semua rute ke node lain yang berada dalam jaringan tersebut. Setiap node akan meng-update routing table yang dimilikinya secara periodik sehingga perubahan topologi jaringan dapat diketahui setiap interval waktu tersebut.

Pada on demand routing protocol (reactive routing protocol), proses pencarian rute hanya akan dilakukan ketika dibutuhkan komunikasi antara node sumber dengan node tujuan. Jadi Routing table yang dimiliki oleh sebuah node berisi informasi rute ke node tujuan saja.

Dalam proactive routing protocol, node terus menerus mencari informasi routing dalam jaringan, sehingga ketika dibutuhkan route tersebut sudah tersedia. Sementara di reactive routing protocol jalur routing di cari


(26)

ketika dibutuhkan. Dalam proactive routing protocol diperlukan setiap mobile node untuk mempertahankan route untuk setiap target yang mungkin dalam MANET, yang kemungkinan besar melampaui kebutuhan setiap node dan dengan demikian routing overhead yang digunakan untuk membentuk jaringan seperti unrequired route akan terbuang percuma. Karena bandwidth adalah sumber daya yang langka dalam MANET, maka keterbatasan yang disebabkan oleh proactive routing protocol ini menyebabkan protokol kategori ini kurang menarik jika dibandingkan dengan reactive routing protocol jika melihat keterbatasan bandwidth di lingkungan MANET.[4]

Pada on demand routing protocol seperti DSR, AODV, TORA, ABR, dll, pada dasarnya protokol tersebut memanfaatkan metode broadcast untuk route discovery. Protokol tersebut berbeda dalam format paket routing, struktur data yang dipelihara oleh setiap node, berbagai optimasi yang diterapkan dalam route discovery dan juga pendekatan dalam maintaining route.

Dalam metode berbasis broadcast, ketika sebuah node pengirim ingin mengirim paket data ke node tujuan, dan tidak memiliki route yang valid ke node tujuan maka node tersebut akan melakukan broadcast paket route request ke tetangganya. Kemudian akan diteruskan ke tetangga yang lain sampai menemukan node tujuan. Setiap node menerima broadcast paket route request hanya sekali dan membuang route request yang sama untuk meminimalkan routing overhead. Metode ini akan membanjiri route discovery di dalam jaringan dengan paket route request yang biasa disebut Flooding Method.


(27)

2.2Optimized Link State Routing (OLSR)

OLSR (Opmitized Link State Routing) merupakan proactive routing dalam MANET. Protokol ini memiliki stabilitas dan algoritma Link State dan memiliki keuntungan dengan rute yang tersedia dengan cepat ketika diperlukan. OLSR merupakan optimasi dari protocol link state klasik yang dikhususkan bagi pengguna wireless network. Setiap node memilih satu set node tetangga yang akan dijadikan sebagai multipoint Relay (MPR). Pada optimized Link State Routing Protocol (OLSR) hanya node yang dipilih sebagai Multipoint Relay (MPR) saja yang bertanggungjawab untuk mengontrol lalu lintas ketika harus meneruskan aliran paket ke seluruh jaringan [5].

Node yang terpilih sebagai Multipoint Relay (MPR) juga memiliki tanggungjawab khusus ketika harus menyampaikan informasi link state dalam jaringan. Optimized Link State Routing (OLSR) memang harus menyediakan jalur terpendek ke setiap tujuan dalam jaringan dan node yang terpilih sebagai

Multipoint Relay (MPR) mengumumkan informasi link state kepada

Multipoint Relay (MPR) lainnya. Tambahan informasi link state yang ada juga dapat dimanfaatkan misalnya untuk redudansi.

Node yang terpilih sebagai Multipoint Relay (MPR) oleh node tetangga mengumumkan informasi ini secara berkala dalam pesan kontrol. Dengan demikian node mengumumkan ke jaringan bahwa ia memiliki informasi baru ke node lain yang telah dipilih sebagai Multipoin Relay (MPR). Dalam perhitungan rute, Multipoint Relay (MPR) digunakan untuk membentuk rute dari node yang diberikan ke semua tujuan dalam jaringan.


(28)

Selain itu, protokol OLSR menggunakan Multipoint Relay (MPR) untuk memfasilitasi flooding of control message secara efisien.

Format paket OLSR dapat dilihat seperti gambar berikut ini.

Gambar 2.2 Format Paket OLSR

Format paket OLSR terbagi dalam dua bagian besar yaitu packet header dan message header.

1. Packet header

a. Packet length : panjangnya paket (dalam satuan bytes).

b. Packet sequenced number : nomor urut paket harus bertambah

satu setiap kali paket OLSR baru ditransmisikan. Sejumlah paket yang terpisah akan dikelola untuk setiap antarmuka


(29)

sehingga paket ditransmisikan melalui sebuah antarmuka secara berurutan.

Alamat ip dari interface dimana paket yang ditansmisikan dapat di peroleh dari header IP dari paket. Jika paket tidak mengandung pesan (yaitu panjang paket kurang dari atau sama dengan ukuran header paket), paket harus dibuang. Untuk alamat IPv4, ini berarti bahwa paket-paket yang panjang paketnya kurang dari 16 maka paket tersebut harus dibuang.

2. Message header

a. Message type : field ini menunjukkan jenis pesan dapat ditemukan di bagian “MESSAGE”. Jenis pesan dalam kisaran 0-127 dicadangkan untuk pesan dalam dokumen ini dan memungkinkan untuk perpanjangan.

b. Vtime :field ini menunjukkan berapa lama waktu setelah penerimaan node harus mempertimbangkan informasi yang terkandung dalam pesan yang benar, kecuali update yang lebih baru untuk informasi yang diterima. Waktu validitas diwakili oleh mantissa nya (empat bit tertinggi field Vtime) dan oleh eksponen (empat bit terendah field Vtime), dengan kata lain : Waktu validitas = C * (1 + a / 6) * 2b (dalam detik)

Dimana a adalah bilangan bulat yang diwakili oleh empat bit tertinggi dari field Vtime dan b adalah bilangan bulat yang diwakili oleh empat bit terendah dari field Vtime.


(30)

c. Message size : memberikan ukuran untuk pesan, dihitung dalam bytes dan diukur dari awal kolom field “message type” sampai awal field “message type” yang selanjutnya (atau jika tidak ada pesan berikutnya maka dihitung sampai akhir paket). d. Originator address : field ini berisi alamat utama dari node,

yang pertama kali dihasilkan pesan. Field ini tidak boleh tertukar dengan alamat sumber dari header IP, yang berubah setiap waktu ke alamat dari antarmuka perantara yang melakukan transmisi ulang terhadap pesan ini. Originator address harus tidak pernah dirubah saat transmisi ulang.

e. Time to live : field ini berisi jumlah maksimum hop pesan yang akan di tansmisikan. Sebelum pesan di transmisikan, time to live harus dikurangi oleh 1. Ketika sebuah node menerima pesan dengan time to live sama dengan 0 atau 1 maka pesan tidak harus di tansmisikan ulang dalam keadaan apapun. Biasanya, sebuah node tidak akan menerima pesan dengan time to live 0. Dengan demikian, originator dari sebuah pesan dapat membatasi flooding radius.

f. Hop count : field ini berisi jumlah hop sebuah pesan yang telah dicapai. Sebelum pesan di transmisikan, hop count harus ditambahkan dengan 1. Awalnya dideklarasikan dengan 0 oleh originator sebuah pesan.

g. Message sequence number : selama menghasilkan pesan,


(31)

setiap pesan. Nomor ini dimasukkan ke dalam field sequence number dari pesan tersebut. Nomor urut akan bertambah 1 untuk setiap pesan yang berasal dari node. Message sequence

number digunakan untuk memastikan bahwa pesan yang

diberikan tidak ditransmisikan kembali lebih dari sekali oleh setiap node.

2.2.1 HELLOMessages

Paket HELLO berfungsi untuk melakukan Link Sensing, Neightborhood Detection, pemilihan MPR dan juga mengakomodasi perubahan yang akan terjadi [7]. Untuk mendukung tujuan tersebut, format paket HELLO dapat digambarkan seperti berikut:

Gambar 2.3 Format Paket HELLO

Keterangan field – field pada format paket HELLO di atas dapat dijelaskan sebagai berikut:


(32)

1. Reserved

Field ini harus berisi “0000000000000” agar dapat bekerja pada spesifikasi format paket ini.

2. Htime

Field ini bersisi informasi tentang interval waktu yang digunakan antara pengiriman paket HELLO satu dengan paket HELLO yang lain.

3. Willingness

Field ini berisi tentang kesedian suatu node untuk meneruskan paket yang diterimanya atau tidak.

4. Linkcode

Field ini menyatakan informasi tentang link antara interface dari node pengirim dengan interface node - node tetangganya serta berisi pula informasi tentang status dari node tetangga tersebut.

5. Link Message Size

Field ini menyatakan ukuran dari pesan HELLO ( dalam byte ) yang diukur dari awal Field Link Code hingga bertemu dengan awal Field Link Code pada pesan berikutnya.

6. Neighbor Interface Address

Field ini berisi tentang informasi alamat interdace dari node – node tetangga.


(33)

2.2.2 TC (Topology Control) Messages

Node yang terpilih sebagai MPR akan mengirimkan pesan TC

yang berisi informasi tentang node node tetangga yang memilih node tersebut sebagai MPR.

Format dari paket pesan TC adalah sebagai berikut:

Gambar 2.4 Format TC Message

Keterangan:

1. Advertised Neighbour Sequence Number (ANSN)

Field ini berisi nomor urut yang berhubungan dengan

Advertised Neighbour set. Ketika sebuah node

mendeteksi adanya perubahan pada advertised

neightbour set-nya, maka node tersebut akan

meningkatkan nomor urut ini. Nomor urut ini berfungsi untuk menginformasikan baru atau tidaknya sebuah pesan TC.

2. Advertised Neightbour Main Address

Field ini berisi alamat utama dari node tetangga. Semua alamat dari tetangga node utama akan dimasukkan ke dalam TC message.


(34)

3. Reserved

Field ini harus berisi “0000000000000” agar dapat bekerja pada spesifikasi format paket ini.

2. 2.3 Cara Kerja OLSR

Secara umum cara kerja OLSR dapat diurutkan sebagai berikut:

a. Link Sensing

Link Sensing merupakan proses pengumpulan status suatu node dengan node-node tetangganya. Link

sensing dikerjakan dengan pengiriman pesan HELLO

secara periodic.

Hasil pemrosesan data yang didapat dari HELLO

message yang diterima oleh setiap node akan

menghasilkan “local link set” yang berisi informasi tentang hubungan antara local interface (interface pada node tersebut) dengan remote interface (interface pada node tetangga). Informasi yang terdapat pada link set tersebut antara lain adalah :

- L_local_iface_addr, - L_neighbor_iface, - L_SYM_time, - L_ASYM_time, - L_time.


(35)

L_local_iface_addr merupakan alamat interface pada node tersebut, L_neighbor_iface adalah alamat interface pada node tetangga, L_SYM_time adalah waktu yang dibutuhkan hingga sebuah hubungan dianggap simetris, L_ASYM_time merupakan waktu yang dibutuhkan hingga interface tetangga dianggap terdeteksi, dan L_time merupakan waktu yang dibutuhkan hingga informasi ini dianggap kadaluarsa. L_SYM_time digunakan untuk menentukan Link Type yang merupakan status hubungan dengan node-node tetangga. Jika L_SYM_time tidak kadaluarsa, maka hubungan akan bersifat simetris. Sedangkan bila L_SYM_time telah kadaluarsa maka hubungan dengan node tetangga akan bersifat asimetris. Dan apabila L_SYM_time dan L_ASYM_time keduanya telah kadaluarsa maka hubungan dengan tetangga dinyatakan hilang.

b. Neighbour Detection

Setiap node pada jaringan juga harus mendeteksi node-node tetangga yang ada pada daerah jangkauannya. Untuk melakukan hal tersebut, setiap node akan mengirimkan paket pesan HELLO secara broadcast dalam periode waktu tertentu. Paket HELLO berisi informasi tentang node-node tetangga serta link status.


(36)

Dalam setiap node akan menyimpan informasi tentang node-node tetangga tersebut dalam “neighbor set” . Neighbor set tersebut berisi informasi sebagai berikut :

- N_neighbor_main_addr, - N_status,

- N_willingness.

N_neighbor_main_addr merupakan alamat dari node tetangga, N_status adalah informasi yang menunjukkan apakah hubungan dengan node tetangga tersebut bersifat SYM atau NOT_SYM. N_willingness merupakan tingkat kesediaan node tersebut untuk meneruskan paket untuk kepentingan node lain yang ditunjukkan dalam bentuk integer 0-7.

Selain neighbor set yang digunakan untuk menyimpan informasi tentang tetangga 1-hop, setiap node juga akan menyimpan informasi node-node tetangga 2-hop nya. Informasi tersebut disimpan dalam 2-hop neighbor set yang berisi informasi antara lain :

- N_neighbor_main_addr, - N_2hop_addr,

- N_time.

N_neighbor_main_addr merupakan informasi alamat dari node tetangga 1-hop, N_2hop_addr merupakan


(37)

alamat dari node tetangga 2-hop yang bersifat simetris dengan tetangga 1-hop nya. N_time menunjukkan waktu yang dibutuhkan hingga informasi yang ada pada set tersebut akan kadaluarsa dan harus dihilangkan.

c. MPR Selection

Tujuan dari penggunaan Multipoint Relay (MPR) adalah meminimalisir penggunaan overhead pesan broadcast pada jaringan dengan cara mengurangi retransmisi (pentransmisian ulang) pada daerah yang sama. Setiap node pada jaringan akan memilih sejumlah node tetangga 1-hop nya yang bersifat simetris yang akan melakukan transmisi ulang pesan-pesannya. Sejumlah node tetangga tersebutlah yang disebut dengan MPR. Setiap node tetangga yang tidak terpilih menjadi MPR tetap akan menerima dan memproses pesan broadcast namun tidak akan meneruskan atau mengirimkan kembali pesan-pesan tersebut.

Pemilihan node-node untuk dijadikan MPR selain harus bersifat simetris juga harus sedemikian rupa dapat menjangkau sejumlah node tetangga 2-hop. Makin sedikit jumlah MPR maka makin sedikit penggunaan control traffic overhead yang digunakan dalam routing protocol. Kinerja pengiriman paket untuk OLSR digambarkan pada


(38)

Gambar 2.5 Flooding MPR

Setiap node akan menyimpan informasi tentang node-node tetangga yang telah dipilihnya sebagi MPR dalam sebuah “MPR set” yang berisi alamat-alamat node MPR tersebut. Selain itu setiap node juga akan menyimpan informasi tentang siapa-siapa saja yang telah memilihnya sebagai MPR. Informasi tersebut disimpan dalam “MPR Selector Set” yang berisi informasi antara lain :

- MS_main_addr, - MS_time.

Ms_main_addr merupakan alamat-alamat node tetangga yang telah memilihnya sebagai MPR. MS_time berisi informasi waktu yang dibutuhkan hingga informasi tersebut kadaluarsa dan harus dihilangkan.

d. Pengiriman TC

Pendeteksian hubungan serta pendeteksian


(39)

menyediakan informasi daftar tetangga yang dapat berkomunikasi secara langsung, dan dikombinasikan dengan mekanisme broadcast dengan menggunakan MPR informasi topologi dapat dikirimkan ke seluruh jaringan.

Rute dibentuk dari advertised link dan hubungan dengan node-node tetangga. Setiap node setidaknya harus mempunyai informasi tentang hubungan antara dirinya sendiri dengan node-node yang ada pada MPR-selector set nya dalam rangka mendapatkan mendapatkan informasi routing yang baik.

Pesan TC dikirimkan untuk menyediakan informasi link-state bagi setiap node pada jaringan yang dapat digunakan untuk penentuan jalur yang dapat digunakan. Setiap node akan menyimpan informasi yang didapat dari pesan TC ini dalam “Topology Set” yang berisi informasi antara lain:

- T_dest_addr, - T_last_addr, - T_seq, - T_time.

T_dest_addr merupakan alamat dari sebuah node yang dapat dicapai dalam 1 hop dari node dengan alamat yang pada T_last_addr. Sehingga T_last_addr merupakan MPR dari node yang ada pada T_dest_addr. T_seq adalah


(40)

nomor urut dan T_time menunjukkan batas waktu kadaluarsa dari informasi tersebut.

e. Route Calculation

Dengan menggunakan informasi link state yang didapatkan dari pertukaran pesan secara periodik dan juga disertai dengan konfigurasi interface dari setiap node maka routing table dari setiap node dapat dikalkulasi. Setiap node memiliki routing table yang dapat dipakai untuk jalur data menuju node-node lain dalam jaringan. Routing tersebut dibuat berdasarkan informasi dalam local link information base (local link set, neighbour set, 2-hop neighbour set, MPR set), serta informasi pada topology set. Oleh karena itu, apabila terjadi perubahan pada set-set tersebut maka routing table akan dikalkulasi ulang untuk meng-update informasi tentang setiap tujuan dalam jaringan.

2.3Konvergensi Routing (Routing Convergence)

Konvergensi adalah proses router – router menyetujui rute yang paling optimal untuk meneruskan paket dan untuk melengkapi table routing dari masing – masing router tersebut [6].

Konvergensi terjadi sebagai hasil dari perubahan topologi jaringan. Ketika konvergensi terjadi, masing – msing router menjalankan algoritma routing untuk menghitung ulang metric dan membangun tabel routing yang


(41)

baru berdasarkan informasi tersebut. Konvergensi selesai ketika semua router mendapatkan tabel routing yang baru. Sedangkan waktu konvergensi merupakan waktu yang dibutuhkan sebelum semua router mencapai kesepakatan mengenai informasi topologi yang baru.

2.3.1 Konvergensi OLSR

Pada OLSR, informasi routing disebarkan melalui pesan Topology Control (TC) setiap periode tertentu. Sehingga waktu konvergensi pada OLSR adalah ketika pesan TC diterima disemua node dalam satu jaringan. Waktu konvergensi OLSR dapat dihitung sebagai berikut:

, untuk dan

adalah waktu TC diterima oleh node j – waktu TC dikirim

oleh node i. Sedangkan n adalah jumlah node yang menerima pesan TC.

2.4NETWORK SIMULATOR 3 (NS3)

NS3 adalah simulator jaringan yang ditargetkan untuk penelitian dan keperluan evaluasi. NS3 merupakan perangkat lunak bebas dibawah lisensi GNU GPLv2 dan tersedia untuk umum yang dapat digunakan untuk penelitian, pengembangan dan penggunaan [7].

NS3 bukan extension dari NS2, melainkan sebuah simulator baru. Kedua simulator dibangun menggunakan bahasa pemrograman C++, tetapi NS-3 tidak menyokong API milik ns-2. NS-3 menyediakan model tentang


(42)

bagaimana kinerja sebuah jaringan dan menyediakan mesin simulasi bagi pengguna untuk melakukan eksperimen simulasi. Beberapa alasan penggunaan NS-3 sebagai tool untuk melakukan penelitian diantaranya:

1. Untuk melakukan penelitian yang lebih sulit dan tidak mungkin melakukannya dengan menggunakan sistem nyata.

2. Untuk mempelajari perilaku sistem dengan tingkat kontrol yang tinggi dan juga mempelajari bagaimana kinerja dari sebuah jaringan.

Ada beberapa istilah yang sering digunakan dalam ilmu jaringan namun memiliki pengertian yang lebih khusus pada NS-3 seperti dibawah ini:

1. Node

Pada jargon internet , perangkat komputasi yang terhubung ke dalam suatu jaringan disebut node atau terkadang juga disebut end system. Dalam NS-3 perangkat komputasi abstraksi dasar disebut node. Abstraksi ini diwakili dalam bahasa C++ oleh kelas

Node. Kelas Node menyediakan metode untuk mengelola

representasi perangkat komputasi dalam simulasi. 2. Application

Dalam NS-3 abstraksi dasar untuk program pengguna yang menghasilkan beberapa aktivitas yang akan disimulasikan adalah aplikasi. Abstraksi ini diwakili dalam bahasa C++ oleh kelas Application. Kelas Application menyediakan metode untuk mengelola representasi versi NS-3 pada aplikasi-aplikasi level user dalam simulasi. Pengembang diharapkan untuk mengkhususkan


(43)

kelas Application dalam pengertian pemrograman berorientasi objek untuk membuat aplikasi baru.

3. Channel

Dalam simulasi NS-3, node yang terhubung ke suatu objek telah mewakili saluran komunikasi. Abstraksi komunikasi subnetwork disebut saluran dan direpresentasikan dalam bahasa C++ oleh kelas Channel. Kelas Channel memiliki versi khusus seperti CsmaChannel, pointToPointChannel, dan WifiChannel.

4. Net Device

Network Interface Card (NIC) tidak akan bekerja tanpa driver untuk mengontrol perangkat keras. Dalam NS-3 abstraksi net device mencakup driver dan juga hardware yang disimulasikan. Sebuah net device diinstal pada sebuah node sehingga dapat berkomunikasi dengan node lainnya pada simulasi melalui Channel. Seperti pada komputer yang sesungguhnya sebuah node dapat ke lebih dari satu Channel melalui beberapa Net Device. Abstraksi net device direpresentasikan dalam bahasa

C++ oleh kelas NetDevice. Kelas NetDevice menyediakan

metode-metode untuk mengatur koneksi ke objek Node dan Channel.

5. Topology Helpers

Pada jaringan komputer yang sesungguhnya kita akan menemukan host yang telah ditambahkan Network Interface Controller (NIC). Jika kita masuk ke ranah NS-3 maka kita akan


(44)

mengatakan bahwa kita akan menemukan sebuah node yang telah terpasang NetDevice. Dalam simulasi jaringan yang besar kita perlu mengatur banyaknya koneksi antar Node, NetDevice, dan Channel. NS-3 menyediakan apa yang disebut topology helpers untuk memudahkan pengaturan koneksi dalam simulasi.


(45)

BAB III

Perencanaan Simulasi Jaringan

3.1Topologi Jaringan

Topologi jaringan yang digunakan pada tugas akhir ini adalah jaringan ad-hoc bergerak (Mobile Ad-hoc Network). Jaringan ad-hoc bergerak adalah jaringan yang memiliki sifat masing-masing node dapat bergerak dengan bebas atau random. Sehingga bentuk topologi jaringan untuk simulasi ini akan selalu berubah dan tidak dapat diprediksi. Pergerakan node yang tidak dapat ditentukan dapat merubah bentuk topologi jaringan sewaktu-waktu.

Protokol yang akan diterapkan pada jaringan ad-hoc dalam tugas akhir ini adalah protokol proaktif OLSR. Sifat dari protokol OLSR adalah mem-broadcast paket-paketnya setiap satuan waktu. Ada dua jenis paket yang disebarkan oleh OLSR, yaitu pesan HELLO dan TC. Pesan HELLO disebarkan untuk melakukan Link Sensing, Neighbour Sensing dan pemilihan MPR. Sedangkan pesan TC digunakan untuk melakukan routing calculation. Interval waktu yang digunakan pada pesan HELLO dan pesan TC sangatlah penting untuk perhitungan waktu konvergensi. Namun pada simulasi ini, interval waktu untuk masing-masing paket yang akan digunakan adalah 2 detik untuk pesan HELLO dan 5 detik untuk pesan TC. Interval waktu tersebut sesuai dengan waktu default dari NS-3. Pada simulasi ini akan dibagi menjadi dua skenario, yaitu skenario tanpa traffic data dan dengan traffic data. Untuk skenario dengan traffic data, digunakan traffic yang dibangkitkan dari UDP-application.


(46)

3.2Analisis Masalah

Fokus dari tugas akhir ini adalah untuk menghitung waktu konvergensi dari protokol OLSR di dalam jaringan MANET. Waktu konvergensi adalah waktu dimana semua router atau node menerima update informasi routing dari suatu node [6]. Pada protokol OLSR, waktu konvergensi terjadi ketika semua node dalam satu jaringan menerima pesan TC yang sama [9].

Proses pengiriman pesan TC dapat digambarkan sebagai berikut:

Gambar 3.1 Proses Pengiriman pesan TC

Penjelasan dari Gambar 3.1 adalah sebagai berikut: Gambar 1.


(47)

Gambar 1 ini menunjukkan letak node-node dari jaringan ad-hoc bergerak (MANET).

Gambar 2.

Pada gambar ini dapat dilihat bahwa node 3 mengirimkan pesan dalam waktu . Pesan ini kemudian diterima oleh node 2, node 4 dan node 5 yang berada dalam jarak jangkauan dari node 3.

Gambar 3.

Node 4 yang menerima pesan dari node 3, akan

meneruskan pesan TC tersebut dengan waktu dengan . Pesan ini akan diterima oleh node 1, node 3 dan node 6 yang berada dalam jarak jangkauan dari node 4. Node 3 yang sudah memiliki pesan akan membuang pesan yang diperoleh dari node 4.

Gambar 4.

Gambar ini menjelaskan bahwa node 6 akan melakukan hal yang sama seperti node 4, yaitu meneruskan pesan yang diperoleh dari node 4 dengan waktu . Kemudian node 4, node 5 dan node 7 akan menerima pesan yang diperoleh dari node 6. Node 4 yang sebelumnya sudah memiliki pesan dan menyebarkannya, akan membuang pesan yang dikirim dari node 6. Demikian proses terjadinya satu kali konvergensi pada protokol OLSR.


(48)

3.3Analisis Kebutuhan

Untuk melakukan tugas akhir ini, dibutuhkan tools pendukung yaitu: 1. Ubuntu 10.04 sebagai Sistem Operasi

2. NS-3

3. Program AWK

3.4Parameter Simulasi

Pada tugas akhir ini metode yang digunakan adalah simulasi. Simulator yang digunakan adalah NS-3. Protokol OLSR yang akan digunakan sudah tersedia di dalam NS-3. Adapun parameter yang akan digunakan adalah sebagai berikut:

Parameter Value

Tipe Kanal Wireless Channel

Tipe Network Interface WirelessPhy

Tipe Mac IEEE 802.11

Protokol Routing OLSR

Jumlah Node 5/10/20/40

Area Simulasi 6000 m x 6000 m (Maksimum)

Waktu Simulasi 2000 detik

Radio Range Node 250 m


(49)

Mobility Model Random WayPoint Mobility Model

Tabel 3.1 Parameter Simulasi dengan NS-3

3.5Skenario Simulasi

Pada tugas akhir ini, simulasi akan dibagi menjadi 4 skenario. Skenario tersebut adalah :

1. Network density meningkat

Pada skenario ini, area yang digunakan adalah 1000 m x 1000 m. Jumlah node yang digunakan adalah 5 node, 10 node, 20 node dan 40 node yang bertambah setiap simulasi berikutnya. Penambahan jumlah node merupakan dua kali lipat dari node pada simulasi sebelumnya.

2. Network density tetap

Pada skenario ini jumlah node dan luas area simulasi bertambah untuk simulasi berikutnya. Hal ini diperlukan agar network density dianggap tetap. Jumlah node yang akan digunakan pada skenario ini adalah 5 node dengan luas area 750 m x 750 m, 10 node dengan luas area 1500 m x 1500 m, 20 node dengan luas area 3000 m x 3000 m dan 40 node dengan luas area 6000 m x 6000 m. Penambahan node tersebut merupakan dua kali lipat dari node sebelumnya. Penambahan panjang dan lebar area adalah dua kali lipat dari panjang dan lebar area sebelumnya.


(50)

3. Network density meningkat dan ditambah dengan beban

Skenario yang ketiga ini hampir sama dengan skenario pertama. Area yang digunakan adalah 1000 m x 1000 m. Jumlah node yang digunakan adalah 5 node, 10 node, 20 node dan 40 node yang bertambah setiap simulasi berikutnya. Namun untuk skenario ini akan ditambahakan aplikasi yang akan membebani satu jaringan. Aplikasi yang digunakan adalah aplikasi UDP . 4. Network density tetap dan ditambah dengan beban

Untuk skenario yang terakhir, jumlah node dan luas area yang akan digunakan adalah 5 node dengan luas area 750 m x 750 m, 10 node dengan luas area 1500 m x 1500 m, 20 node dengan luas area 3000 m x 3000 m dan 40 node dengan luas area 6000 m x 6000 m. Panjang dan lebar area juga akan ditambahkan dua kali lipat dari panjang dan lebar area sebelumnya. Pada skenario ini juga akan ditambahkan aplikasi UDP yang akan membanjiri seluruh jaringan.

3.6Parameter Unjuk Kerja

Parameter unjuk kerja pada tugas akhir ini adalah: 1. Waktu Konvergensi

Waktu konvergensi protokol OLSR pada jaringan MANET dihitung setiap kali pesan TC dikirimkan dalam satu simulasi.


(51)

3.7Tabel Analisis

Keluaran yang ditampilkan adalah rata-rata waktu konvergensi OLSR pada satu simulasi. Berdasarkan skenario simulasi, maka format tabel yang akan digunakan adalah sebagai berikut:

No. Jumlah Node Area Waktu Konvergensi


(52)

BAB IV

Implementasi dan Analisis

4.1Implementasi Simulasi

Untuk mendapatkan waktu konvergensi pada protokol OLSR, akan dilakukan seperti pada tahap skenario perencanaan simulasi jaringan dengan parameter yang telah ditetapkan. Protokol OLSR sudah tersedia di dalam program simulator NS-3. Protokol OLSR tersebut kemudian diterapkan pada model jaringan MANET dengan tidak merubah nilai attribute- attribute yang ada. Berikut ini adalah perintah yang harus dituliskan pada terminal Ubuntu untuk menjalankan program simulasi yang telah dibuat.

#./waf --run nama_file (tanpa mencantumkan tipe file)

Ketika simulasi dijalankan akan menghasilkan file-file output dengan ekstensi seperti .tr, .pcap dan .csv. Selain output tersebut yang dihasilkan, simulasi juga akan menampilkan aliran data yang berjalan. Namun untuk kepentingan tugas akhir ini yaitu untuk menghitung waktu konvergensi protokol OLSR, maka aliran data yang akan ditampilkan adalah aliran data pesan TC. Agar dapat digunakan untuk menghitung waktu konvergensi, maka aliran data tersebut harus dikonversikan ke dalam file dengan ekstensi .csv. Perintah untuk mengkonversikan aliran data ke dalam ekstensi .csv adalah sebagai berikut.


(53)

Untuk menghitung waktu konvergensi akan dilakukan dengan menggunakan program awk yang mengacu pada file konversi aliran data pesan TC dari simulasi. Program ini akan mencari waktu pengiriman TC dan waktu penerimaan TC berdasarkan nomor ANSN yang sama dari pesan TC tersebut. Selanjutnya program awk akan menghitung waktu penerimaan dikurangi dengan waktu pengiriman pesan TC dan dibagi dengan jumlah node yang menerima pesan TC. Hasil yang ditampilkan adalah rata-rata dari semua proses kalkulasi yang terjadi dalam satu simulasi. Berikut ini adalah perintah yang dituliskan di terminal Ubuntu untuk menjalankan program awk.

#awk –f nama_file_awk.awk nama_file_konversi.csv

4.2Pengambilan Data

Pada tugas akhir ini, perhitungan waktu konvergensi akan dilakukan sesuai dengan skenario perencanaan simulasi yang sudah ditentukan. Berikut ini adalah proses pengambilan data yang berupa perintah dari terminal Ubuntu, tabel dan grafik rata-rata waktu konvergensi.

4.2.1 Network density meningkat a. 5 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > output5n0sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output5n0sink1000m2000s.csv


(54)

#Rata-rata konvergensi = 0.47991221 s b. 10 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu10n0sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output10n0sink1000m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi = 0.07071108 s c. 20 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu20n0sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output20n0sink1000m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi =0.02079619 s d. 40 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu40n0sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output40n0sink1000m2000s.csv Hasil yang didapat adalah:


(55)

e. Tabel

Hasil dari simulasi yang dimasukkan ke dalam tabel adalah sebagai berikut: No. Jumlah Node Area Waktu Konvergensi

1. 5 1000m x 1000m 0.47991221

2. 10 1000m x 1000m 0.07071108

3. 20 1000m x 1000m 0.02079619

4. 40 1000m x 1000m 0.00455731

Tabel 4.1 Pengujian network density meningkat f. Grafik 0.47991221 0.07071108 0.02079619 0.00455731 0 0.1 0.2 0.3 0.4 0.5 0.6 5 node (1000mx1000m) 10 node (1000mx1000m) 20 node (1000mx1000m) 40 node (1000mx1000m) wak tu ko n v e rg e n si ( s eco n ds ) jumlah node

Network Density Meningkat

rata-rata konvergensi

HELLO Interval = 2s TC Interval = 5s


(56)

Gambar 4.1 Grafik rata-rata waktu konvergensi untuk network density meningkat

4.2.2 Network density tetap a. 5 node (750m x 750m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu5n0sink750m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output5n0sink750m2000s.csv

Hasil yang didapat adalah:

#Rata-rata konvergensi =0.12398535 s b. 10 node (1500m 1500m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu10n0sink1500m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output10n0sink1500m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi =0.19420832 s c. 20 node (3000m x 3000m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu20n0sink3000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output20n0sink3000m2000s.csv


(57)

Hasil yang didapat adalah:

#Rata-rata konvergensi =0.39746003 s d. 40 node (6000m x 6000m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu40n0sink6000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output40n0sink6000m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi =0.69166582 s e. Tabel

Hasil dari simulasi yang dimasukkan ke dalam tabel adalah sebagai berikut:

No.

Jumlah

Node Area

Waktu

Konvergensi

1. 5 750m x 750m 0.12398535

2. 10 1500m x 1500m 0.19420832

3. 20 3000m x 3000m 0.39746003

4. 40 6000m x 6000m 0.69166582


(58)

f. Grafik

Gambar 4.2 Grafik rata-rata waktu konvergensi untuk network density tetap 4.2.3 Network density meningkat dan ditambah dengan beban

a. 5 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu5n4sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output5n4sink1000m2000s.csv

Hasil yang didapat adalah:

#Rata-rata konvergensi =5.83319920 s 0.12398535 0.19420832 0.39746003 0.69166582 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 5 node (750mx750m) 10 node (1500mx1500m) 20 node (3000mx3000m) 40 node (6000mx6000m) wak tu ko n v e rg e n si ( s eco n ds ) jumlah node

Network Density Tetap

rata-rata konvergensi

HELLO Interval = 2s TC Interval = 5s


(59)

b. 10 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu10n9sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output10n9sink1000m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi = 1.58517543 s c. 20 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu20n19sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output20n19sink1000m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi =0.32982276 s d. 40 node

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu40n39sink1000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output40n39sink1000m2000s.csv Hasil yang didapat adalah:


(60)

e. Tabel

Hasil dari simulasi yang dimasukkan ke dalam tabel adalah sebagai berikut:

Tabel 4.3 Pengujian network density meningkat ditambah beban f. Grafik 5.8331992 1.58517543 0.32982276 0.11460368 0 1 2 3 4 5 6 7 5 node (1000mx1000m) 10 node (1000mx1000m) 20 node (1000mx1000m) 40 node (1000mx1000m) wak tu ko n v e rg e n si ( s eco n ds ) jumlah node

Network Density Meningkat + UDP

rata-rata konvergensi

HELLO Interval = 2s TC Interval = 5s

No.

Jumlah

Node Area

Waktu

Konvergensi

1. 5 1000m x 1000m 5.83319920

2. 10 1000m x 1000m 1.58517543

3. 20 1000m x 1000m 0.32982276


(61)

Gambar 4.3 Grafik rata-rata waktu konvergensi untuk network density meningkat ditambah beban

4.2.4 Network density tetap dan ditambah dengan beban a. 5 node (750m x 750m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu5n4sink750m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output5n4sink750m2000s.csv

Hasil yang didapat adalah:

#Rata-rata konvergensi = 1.91536689 s b. 10 node (1500m x 1500m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu10n9sink1500m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output10n9sink1500m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi = 2.19009899 s c. 20 node (3000m x 3000m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu20n19sink3000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output20n19sink3000m2000s.csv


(62)

Hasil yang didapat adalah:

#Rata-rata konvergensi = 4.80889332 s d. 40 node (6000m x 6000m)

Perintah untuk menjalankan simulasi pada terminal Ubuntu adalah:

#./waf --run scratch/olsr-exam > outpu40n39sink6000m2000s.csv 2>&1 Perintah untuk menghitung rata-rata waktu konvergensi adalah: #awk -f waktukonvergesi.awk output40n39sink6000m2000s.csv Hasil yang didapat adalah:

#Rata-rata konvergensi = 11.80480425 s e. Tabel

Hasil dari simulasi yang dimasukkan ke dalam tabel adalah sebagai berikut:

No.

Jumlah

Node Area

Waktu

Konvergensi

1. 5 750m x 750m 1.91536689

2. 10 1500m x 1500m 2.19009899

3. 20 3000m x 3000m 4.80889332

4. 40 6000m x 6000m 11.80480425


(63)

f. Grafik

Gambar 4.4 Grafik rata-rata waktu konvergensi untuk network density tetap ditambah beban

4.2.5 Grafik Dan Tabel Perbandingan

Berikut ini adalah grafik perbandingan rata-rata waktu konvergensi dari semua skenario:

1.91536689 2.19009899

4.80889332 11.80480425 0 2 4 6 8 10 12 14 5 node (750mx750m) 10 node (1500mx1500m) 20 node (3000mx3000m) 40 node (6000mx6000m) wak tu ko n v e rg e n si ( s eco n ds ) jumlah node

Network Density Tetap + UDP

rata-rata konvergensi

HELLO Interval = 2s TC Interval = 5s


(64)

Gambar 4.5 Perbandingan rata-rata waktu konvergensi Data tabel dari grafik di atas adalah sebagai berikut:

Skenario 5 node 10 node 20 node 40 node

Density Meningkat 0.47991221 0.07071108 0.02079619 0.00455731 Density Tetap 0.12398535 0.19420832 0.39746003 0.69166582 Density Meningkat

+ UDP

5.8331992 1.58517543 0.32982276 0.11460368 Density Tetap +

UDP

1.91536689 2.19009899 4.80889332 11.80480425

Tabel 4.5 Data Perbandingan Semua Skenario 0 2 4 6 8 10 12 14

5 node 10 node 20 node 40 node

ko n v e rg e n si ( s eco n ds ) jumlah node

Perbandingan Konvergensi

Density Meningkat Density Tetap


(65)

4.3Analisis

Pada Gambar 4.1 dari skenario pertama, dapat kita lihat bahwa penambahan node pada area yang sama mempercepat waktu konvergensi yang terjadi. Hal ini dikarenakan network density ( kepadatan jaringan) yang semakin tinggi. Jaringan yang semakin padat akan memperpendek jarak antar node. Sehingga dapat mempercepat proses pengiriman pesan TC ke semua node.

Pada Gambar 4.2 dari skenario kedua dapat dilihat bahwa ketika node dan luas area ditambah, maka waktu konvergensi semakin lambat. Kepadatan jaringan yang renggang akan membuat jarak antar node semakin jauh. Pengiriman pesan TC pun akan melewati lebih banyak hop dibanding skenario yang pertama. Hal ini mengakibatkan proses pengiriman pesan TC ke semua node semakin lama.

Pada skenario ketiga yang terlihat dari Gambar 4.3, waktu konvergensi yang terjadi jauh lebih lama dibanding skenario pertama. Hal ini disebabkan karena sifat dari wireless link yang memiliki bandwidth terbatas. Sehingga dengan penambahan traffic data, akan mempengaruhi kecepatan penyebaran pesan TC. Namun rata-rata waktu konvergensi untuk skenario ini tetap semakin cepat ketika jumlah node ditambahkan yang mengakibatkan jaringan semakin padat. Penambahan alur data pada skenario ini memang mempengaruhi rata-rata waktu konvergensi pada OLSR. Namun jika jumlah node semakin banyak, maka rata-rata waktu konvergensi akan semakin cepat.

Dari Gambar 4.4 pada skenario keempat, dapat dilihat bahwa rata-rata waktu konvergensi semakin lambat seiring bertambahnya jumlah node dan


(66)

luas area yang digunakan. Hasil rata-rata waktu konvergensi yang terjadi berbeda jauh dari skenario kedua. Hal ini disebabkan oleh aliran data UDP yang padat sehingga memperlambat proses penyebaran pesan TC. Bandwidth dari wireless link yang terbatas menyebabkan proses penyebaran pesan TC terhambat.


(67)

BAB V

Kesimpulan dan Saran

5.1Kesimpulan

Dari hasil simulasi dan pengujian yang dilakukan, kesimpulan yang didapatkan adalah sebagai berikut:

1. Waktu konvergensi pada protokol OLSR akan semakin cepat jika jumlah node bertambah pada luas area yang sama (network density tinggi).

2. Waktu konvergensi pada protokol OLSR akan semakin lambat jika luas area yang digunakan lebih luas.

3. Waktu konvergensi pada protokol OLSR akan semakin lambat jika dalam jaringan dipenuhi oleh aliran data.

5.2Saran

Untuk pengembangan lebih lanjut, beberapa hal yang dapat digunakan sebagai bahan penelitian adalah:

1. Membandingkan waktu konvergensi protokol OLSR dengan waktu konvergensi protokol MANET yang lain.

2. Melakukan pengujian dengan parameter kebutuhan yang lain seperti bandwith, delay dan routing overhead.

3. Melakukan pengujian terhadap attribute-attribute yang ada di dalam protokol OLSR ( HELLO Interval dan TC Interval ) yang dapat mempengaruhi parameter kebutuhan unjuk kerja pengiriman.


(68)

Daftar Pustaka

[1]. Aprillando, A. 2007. Cara Kerja dan Kinerja Protokol Optimized Link State

Routing (OLSR) pada Mobile Ad hoc network (MANET), Tugas Akhir.

Jakarta: Fakultas Teknik Unika AtmaJaya.

[2]. Rendy. 2007. Cara Kerja dan Kinerja Protokol TORA (Temporally-Orderd Routing Algorithm) pada MANET (Mobile Ad-Hoc Network), Tugas Akhir. Jakarta: Fakultas Teknik Unika AtmaJaya.

[3]. C. K. Toh. 2001. Ad hoc Mobile Wireless Networks Protocol and Systems. Prentice Hall.

[4]. Mukhija, Arun. 2001. Reactive Routing Protocol for Mobile Ad-Hoc Networks. Delhi : Department of Mathematics Indian Institute of Technology. [5]. Prasetya, Arif Bagus. 2012. Analisis Ad-hoc Network Dengan Menggunakan OLSR Dalam Implementasi Jaringan Di Desa Babakan Majalengka, Bandung : Universitas Komputer Indonesia.

[6]. Convergence of Routing Tables

http://www.linfo.org/convergence.html ( 13 Mei 2015)

[7]. T.Clausan, Ed. 2003. Optimized Link State Routing Protocol (OLSR). Project Hypercom. INRIA (RFC3626).

[8]. Multipoint Relaying

http://www.olsr.org/docs/report_html/node28.html (10 November 2014)

[9]. Harri, Jerome . Bonnet, Christian . Filali, Fethi . OLSR and MPR: Mutual Dependences and Performances. Research Report. Perancis. Institut Eur´ecom Department of Mobile Communications.


(69)

LAMPIRAN

1. Listing program olsr-exam.cc

#include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/applications-module.h" #include "ns3/mobility-module.h" #include "ns3/config-store-module.h" #include "ns3/wifi-module.h"

#include "ns3/internet-module.h" #include "ns3/olsr-helper.h" #include "ns3/olsr-header.h"

#include "ns3/olsr-routing-protocol.h" #include "ns3/object.h"

#include "ns3/uinteger.h" #include "ns3/traced-value.h"

#include "ns3/trace-source-accessor.h" #include <iostream>

#include <cmath> #include <vector> #include <string>

/// Maximum allowed jitter.

#define OLSR_MAXJITTER (m_helloInterval.GetSeconds () / 4) /// Maximum allowed sequence number.


(70)

#define OLSR_MAX_SEQ_NUM 65535

/// Random number between [0-OLSR_MAXJITTER] used to jitter OLSR packet transmission.

#define JITTER (Seconds (m_uniformRandomVariable->GetValue (0, OLSR_MAXJITTER)))

/********** Holding times **********/

/// Neighbor holding time.

#define OLSR_NEIGHB_HOLD_TIME Time (3 *

OLSR_REFRESH_INTERVAL) /// Top holding time.

#define OLSR_TOP_HOLD_TIME Time (3 * m_tcInterval) /// Dup holding time.

#define OLSR_DUP_HOLD_TIME Seconds (30) /// MID holding time.

#define OLSR_MID_HOLD_TIME Time (3 * m_midInterval) /// HNA holding time.

#define OLSR_HNA_HOLD_TIME Time (3 * m_hnaInterval)

using namespace ns3; uint16_t port = 9;

NS_LOG_COMPONENT_DEFINE ("OlsrManetExample"); class OlsrManetExample


(71)

{ public:

OlsrManetExample ();

void CaseRun (uint32_t nWifis, uint32_t nSinks, double totalTime, std::string rate, std::string phyMode, uint32_t nodeSpeed, uint32_t tcInterval, uint32_t helloInterval, double dataStart, bool printRoutes,

std::string CSVfileName); private:

uint32_t m_nWifis; uint32_t m_nSinks; double m_totalTime; std::string m_rate; std::string m_phyMode; uint32_t m_nodeSpeed; uint32_t m_tcInterval;


(72)

double m_dataStart; uint32_t bytesTotal; uint32_t packetsReceived; bool m_printRoutes;

std::string m_CSVfileName; NodeContainer nodes; NetDeviceContainer devices; Ipv4InterfaceContainer interfaces; private:

void CreateNodes ();

void CreateDevices (std::string tr_name); void InstallInternetStack (std::string tr_name); void InstallApplications ();

void SetupMobility ();

void ReceivePacket (Ptr <Socket> );

Ptr <Socket> SetupPacketReceive (Ipv4Address, Ptr <Node> ); void CheckThroughput ();

};

int main (int argc, char **argv) {

OlsrManetExample test; uint32_t nWifis = 5; uint32_t nSinks = 39; double totalTime = 2000.0;


(73)

std::string rate ("1Mbps");

std::string phyMode ("DsssRate1Mbps"); uint32_t nodeSpeed = 2; // in m/s

std::string appl = "all"; uint32_t tcInterval = 5; uint32_t helloInterval = 2; double dataStart = 1;

bool printRoutingTable = true;

std::string CSVfileName = "OlsrManetExample.csv";

CommandLine cmd;

cmd.AddValue ("nWifis", "Number of wifi nodes[Default:30]", nWifis); cmd.AddValue ("nSinks", "Number of wifi sink nodes[Default:10]", nSinks);

cmd.AddValue ("totalTime", "Total Simulation time[Default:100]", totalTime);

cmd.AddValue ("phyMode", "Wifi Phy mode[Default:DsssRate11Mbps]", phyMode);

cmd.AddValue ("rate", "CBR traffic rate[Default:8kbps]", rate);

cmd.AddValue ("nodeSpeed", "Node speed in RandomWayPoint model[Default:10]", nodeSpeed);

cmd.AddValue ("tcInterval", "TC Time before sending out an update for changed metric[Default=15]", tcInterval);


(74)

cmd.AddValue ("HelloInterval", "Hello Interval Time[Default=10]", helloInterval);

cmd.AddValue ("dataStart", "Time at which nodes start to transmit data[Default=50.0]", dataStart);

cmd.AddValue ("printRoutingTable", "print routing table for nodes[Default:1]", printRoutingTable);

cmd.AddValue ("CSVfileName", "The name of the CSV output file name[Default:OlsrManetExample.csv]", CSVfileName);

cmd.Parse (argc, argv);

std::ofstream out (CSVfileName.c_str ()); out << "SimulationSecond," <<

"ReceiveRate," << "PacketsReceived," << "NumberOfSinks," << std::endl;

out.close ();

SeedManager::SetSeed (12345);

Config::SetDefault ("ns3::OnOffApplication::PacketSize", StringValue ("1000"));

Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue (rate));

Config::SetDefault

("ns3::WifiRemoteStationManager::NonUnicastMode", StringValue (phyMode));


(75)

Config::SetDefault

("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2000"));

test = OlsrManetExample (); test.CaseRun (nWifis,

nSinks,

totalTime, rate, phyMode, nodeSpeed, tcInterval, helloInterval,

dataStart, printRoutingTable, CSVfileName); return 0;

}

OlsrManetExample::OlsrManetExample () : bytesTotal (0),

packetsReceived (0) {

}

void

OlsrManetExample::ReceivePacket (Ptr <Socket> socket) {

//NS_LOG_UNCOND (Simulator::Now ().GetSeconds () << " Received one packet!");

Ptr <Packet> packet;


(76)

{

bytesTotal += packet->GetSize (); packetsReceived += 1;

} }

void

OlsrManetExample::CheckThroughput () {

double kbs = (bytesTotal * 8.0) / 1000; bytesTotal = 0;

std::ofstream out (m_CSVfileName.c_str (), std::ios::app);

out << (Simulator::Now ()).GetSeconds () << "," << kbs << "," << packetsReceived << "," <<

m_nSinks << std::endl; out.close ();

packetsReceived = 0;

Simulator::Schedule (Seconds (1.0),

&OlsrManetExample::CheckThroughput, this); }


(77)

OlsrManetExample::SetupPacketReceive (Ipv4Address addr, Ptr <Node> node)

{

TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory"); Ptr <Socket> sink = Socket::CreateSocket (node, tid);

InetSocketAddress local = InetSocketAddress (addr, port); sink->Bind (local);

sink->SetRecvCallback (MakeCallback (

&OlsrManetExample::ReceivePacket, this)); return sink;

}

void

OlsrManetExample::CaseRun (uint32_t nWifis, uint32_t nSinks, double totalTime, std::string rate,

std::string phyMode, uint32_t nodeSpeed, uint32_t tcInterval, uint32_t helloInterval,

double dataStart, bool printRoutes, std::string CSVfileName)

{

m_nWifis = nWifis; m_nSinks = nSinks; m_totalTime = totalTime; m_rate = rate;


(78)

m_phyMode = phyMode; m_nodeSpeed = nodeSpeed; m_tcInterval = tcInterval; m_helloInterval = helloInterval; m_dataStart = dataStart;

m_printRoutes = printRoutes; m_CSVfileName = CSVfileName; std::stringstream ss;

ss << m_nWifis;

std::string t_nodes = ss.str (); std::stringstream ss3;

ss3 << m_totalTime;

std::string sTotalTime = ss3.str (); //convert node speed

std::stringstream nspeed; nspeed << nodeSpeed;

std::string sSpeed = nspeed.str (); //convert hello to string

std::stringstream ssH; ssH << m_helloInterval;

std::string hellotime = ssH.str (); std::stringstream ssTC;

ssTC << m_tcInterval;


(79)

std::string tr_name = "Olsr_Manet_" + t_nodes + "Nodes_" + sSpeed + "Speed_" + sTotalTime + "SimTime";

std::cout << "Trace file generated is " << tr_name << ".tr\n";

CreateNodes ();

CreateDevices (tr_name); SetupMobility ();

InstallInternetStack (tr_name); InstallApplications ();

CheckThroughput ();

Simulator::Stop (Seconds (m_totalTime)); Simulator::Run ();

Simulator::Destroy (); }

void

OlsrManetExample::CreateNodes () {

std::cout << "Creating " << (unsigned) m_nWifis << " nodes.\n"; nodes.Create (m_nWifis);

NS_ASSERT_MSG (m_nWifis > m_nSinks, "Sinks must be less or equal to the number of nodes in network");


(80)

void OlsrManetExample::SetupMobility () {

MobilityHelper mobility; ObjectFactory pos;

pos.SetTypeId ("ns3::RandomRectanglePositionAllocator");

pos.Set ("X", StringValue

("ns3::UniformRandomVariable[Min=0.0|Max=750.0]"));

pos.Set ("Y", StringValue

("ns3::UniformRandomVariable[Min=0.0|Max=750.0]")); std::stringstream speedConstantRandomVariableStream;

speedConstantRandomVariableStream <<

"ns3::ConstantRandomVariable[Constant=" << m_nodeSpeed << "]";

Ptr <PositionAllocator> taPositionAlloc = pos.Create ()->GetObject <PositionAllocator> ();

mobility.SetMobilityModel ("ns3::RandomWaypointMobilityModel",

"Speed", StringValue

(speedConstantRandomVariableStream.str ()),

"Pause", StringValue ("ns3::ConstantRandomVariable[Constant=5.0]"),

"PositionAllocator", PointerValue (taPositionAlloc));


(81)

mobility.SetPositionAllocator (taPositionAlloc); mobility.Install (nodes);

//Simulator::Schedule (Seconds (1.0),

&OlsrManetExample::SetupMobility, this); }

void

OlsrManetExample::CreateDevices (std::string tr_name) {

NqosWifiMacHelper wifiMac = NqosWifiMacHelper::Default (); wifiMac.SetType ("ns3::AdhocWifiMac");

YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default (); YansWifiChannelHelper wifiChannel;

wifiChannel.SetPropagationDelay

("ns3::ConstantSpeedPropagationDelayModel");

wifiChannel.AddPropagationLoss ("ns3::FriisPropagationLossModel"); wifiPhy.SetChannel (wifiChannel.Create ());

WifiHelper wifi;

wifi.SetStandard (WIFI_PHY_STANDARD_80211b); // // area 250

wifiPhy.Set ("TxPowerStart", DoubleValue(33)); wifiPhy.Set ("TxPowerEnd", DoubleValue(33)); wifiPhy.Set ("TxPowerLevels", UintegerValue(1)); wifiPhy.Set ("TxGain", DoubleValue(0));


(82)

wifiPhy.Set ("RxGain", DoubleValue(0));

wifiPhy.Set ("EnergyDetectionThreshold", DoubleValue(-61.8)); wifiPhy.Set ("CcaMode1Threshold", DoubleValue(-64.8));

wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", "DataMode", StringValue (m_phyMode), "ControlMode",

StringValue (m_phyMode)); devices = wifi.Install (wifiPhy, wifiMac, nodes); AsciiTraceHelper ascii;

wifiPhy.EnableAsciiAll (ascii.CreateFileStream (tr_name + ".tr")); wifiPhy.EnablePcapAll (tr_name);

}

void

OlsrManetExample::InstallInternetStack (std::string tr_name) {

OlsrHelper olsr;

olsr.Set ("TcInterval", TimeValue (Seconds (m_tcInterval))); olsr.Set ("HelloInterval", TimeValue (Seconds (m_helloInterval))); InternetStackHelper stack;

stack.SetRoutingHelper (olsr); // has effect on the next Install () stack.Install (nodes);

Ipv4AddressHelper address;

address.SetBase ("10.1.1.0", "255.255.255.0"); interfaces = address.Assign (devices);


(83)

if (m_printRoutes) {

Ptr<OutputStreamWrapper> routingStream = Create<OutputStreamWrapper> ((tr_name + ".routes"), std::ios::out); olsr.PrintRoutingTableAllAt (Seconds (m_tcInterval), routingStream); }

}

void

OlsrManetExample::InstallApplications () {

for (uint32_t i = 0; i <= m_nSinks - 1; i++ ) {

Ptr<Node> node = NodeList::GetNode (i);

Ipv4Address nodeAddress = node->GetObject<Ipv4> ()->GetAddress (1, 0).GetLocal ();

Ptr<Socket> sink = SetupPacketReceive (nodeAddress, node); }

for (uint32_t clientNode = 0; clientNode <= m_nWifis - 1; clientNode++ )

{

for (uint32_t j = 0; j <= m_nSinks - 1; j++ ) {


(84)

OnOffHelper onoff1 ("ns3::UdpSocketFactory", Address (InetSocketAddress (interfaces.GetAddress (j), port)));

onoff1.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1.0]"));

onoff1.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]"));

if (j != clientNode) {

ApplicationContainer apps1 = onoff1.Install (nodes.Get (clientNode));

Ptr<UniformRandomVariable> var = CreateObject<UniformRandomVariable> ();

apps1.Start (Seconds (var->GetValue (m_dataStart, m_dataStart + 1)));

apps1.Stop (Seconds (m_totalTime)); }

} } }

//get ANSN void

RoutingProtocol::ProcessTc(const olsr::MessageHeader &msg,const Ipv4Address &senderIface)


(85)

const olsr::MessageHeader::Tc &tc = msg.GetTc (); Time now = Simulator::Now ();

Address sourceAddress; MessageHeader msgHeader;

std::cout << "r\t" << Simulator::Now ().GetSeconds () << "\t" << senderIface << "\tsend ansn\t" << tc.ansn << "\tto\t" << m_mainAddress << "\n";

} void

RoutingProtocol::SendTc () {

NS_LOG_FUNCTION (this); olsr::MessageHeader msg;

msg.SetOriginatorAddress (m_mainAddress); msg.SetTimeToLive (255);

msg.SetHopCount (0);

olsr::MessageHeader::Tc &tc = msg.GetTc (); QueueMessage (msg, JITTER);

std::cout << "t\t" << Simulator::Now ().GetSeconds () << "\t" << m_mainAddress << "\tSEND ANSN\t" << tc.ansn <<"\n";


(86)

2. Listing program waktukonvergensi.awk

BEGIN {

highest_packet_id = 0; total_duration = 0; num_received = 0; num = 0;

konvergensi = 0; }

{

action = $1; time = $2; ipsource = $3;

ansn = $6;

noansn[i++]==ansn; if ( noansn[i-1]==noansn[i-2]){ highest_packet_id = ansn; if ( action == "t"){ start_time[ansn] = time; }

if ( action == "r") { num = num + 1;

end_time[ansn] = time; } else {


(87)

} }

}END {

for ( ansn = 0; ansn <= highest_packet_id; ansn++ ) { #num = num + 1;

if ( start_time[ansn] < end_time[ansn]) {

packet_duration = (end_time[ansn] -start_time[ansn]);

total_duration = total_duration + packet_duration; num_received = num_received + 1;

}

konvergensi = konvergensi+ (total_duration/num); }

printf("Rata-rata Konvergensi = %.8f s \n", konvergensi/num_received);

}

3. Screen capture pengambilan data

1. Network density meningkat

a. 5 node

b. 10 node


(88)

d. 40 node

2. Network density tetap a. 5 node

b. 10 node

c. 20 node

d. 40 node

3. Network density meningkat dan ditambah dengan beban

a. 5 node

b. 10 node

c. 20 node

d. 40 node


(89)

a. 5 node

b. 10 node

c. 20 node


(1)

OnOffHelper onoff1 ("ns3::UdpSocketFactory", Address (InetSocketAddress (interfaces.GetAddress (j), port)));

onoff1.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1.0]"));

onoff1.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]"));

if (j != clientNode) {

ApplicationContainer apps1 = onoff1.Install (nodes.Get (clientNode));

Ptr<UniformRandomVariable> var = CreateObject<UniformRandomVariable> ();

apps1.Start (Seconds (var->GetValue (m_dataStart, m_dataStart + 1)));

apps1.Stop (Seconds (m_totalTime)); }

} } }

//get ANSN void

RoutingProtocol::ProcessTc(const olsr::MessageHeader &msg,const Ipv4Address &senderIface)


(2)

const olsr::MessageHeader::Tc &tc = msg.GetTc (); Time now = Simulator::Now ();

Address sourceAddress; MessageHeader msgHeader;

std::cout << "r\t" << Simulator::Now ().GetSeconds () << "\t" << senderIface << "\tsend ansn\t" << tc.ansn << "\tto\t" << m_mainAddress << "\n";

} void

RoutingProtocol::SendTc () {

NS_LOG_FUNCTION (this); olsr::MessageHeader msg;

msg.SetOriginatorAddress (m_mainAddress); msg.SetTimeToLive (255);

msg.SetHopCount (0);

olsr::MessageHeader::Tc &tc = msg.GetTc (); QueueMessage (msg, JITTER);

std::cout << "t\t" << Simulator::Now ().GetSeconds () << "\t" << m_mainAddress << "\tSEND ANSN\t" << tc.ansn <<"\n";


(3)

2. Listing program waktukonvergensi.awk

BEGIN {

highest_packet_id = 0; total_duration = 0; num_received = 0; num = 0;

konvergensi = 0; }

{

action = $1; time = $2; ipsource = $3;

ansn = $6;

noansn[i++]==ansn; if ( noansn[i-1]==noansn[i-2]){ highest_packet_id = ansn; if ( action == "t"){ start_time[ansn] = time; }

if ( action == "r") { num = num + 1;

end_time[ansn] = time; } else {


(4)

} }

}END {

for ( ansn = 0; ansn <= highest_packet_id; ansn++ ) { #num = num + 1;

if ( start_time[ansn] < end_time[ansn]) {

packet_duration = (end_time[ansn] -start_time[ansn]);

total_duration = total_duration + packet_duration; num_received = num_received + 1;

}

konvergensi = konvergensi+ (total_duration/num); }

printf("Rata-rata Konvergensi = %.8f s \n", konvergensi/num_received);

}

3. Screen capture pengambilan data

1. Networkdensity meningkat a. 5 node

b. 10 node


(5)

d. 40 node

2. Networkdensity tetap a. 5 node

b. 10 node

c. 20 node

d. 40 node

3. Networkdensity meningkat dan ditambah dengan beban a. 5 node

b. 10 node

c. 20 node

d. 40 node


(6)

a. 5 node

b. 10 node

c. 20 node