TUGAS AKHIR – KI141502
IMPLEMENTASI SOURCE ROUTE PADA PROTOKOL GPSR DENGAN BANTUAN INTERSECTION NODE UNTUK MENINGKATKAN RELIABILITAS PENGIRIMAN DATA DI VANET RANDY BASTIAN NRP 5112100035
,
Dosen Pembimbing I Dr.Eng. Radityo Anggoro, S.Kom., M.Sc. Dosen Pembimbing II Ir. Muchammad Husni, M.Kom.
Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya 2017
i
(Halaman ini sengaja dikosongkan)s
ii
TUGAS AKHIR – KI141502
IMPLEMENTASI SOURCE ROUTE PADA PROTOKOL GPSR DENGAN BANTUAN INTERSECTION NODE UNTUK MENINGKATKAN RELIABILITAS PENGIRIMAN DATA DI VANET RANDY BASTIAN NRP 5112100035
Dosen Pembimbing I Dr.Eng. Radityo Anggoro, S.Kom., M.Sc. Dosen Pembimbing II Ir. Muchammad Husni, M.Kom.
Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya 2017
iii
(Halaman ini sengaja dikosongkan)
iv
UNDERGRADUATE THESES – KI141502
IMPLEMENTATION OF SOURCE ROUTE ON PROTOCOL GPSR WITH INTERSECTION NODE TO IMPROVE RELIABILITY DATA TRANSMISSION IN VANET RANDY BASTIAN NRP 5112100035 First Advisor Dr.Eng. Radityo Anggoro, S.Kom, M.Sc. Second Advisor Ir. Muchammad Husni, M.Kom.
Department of Informatics Faculty of Information Technology Sepuluh Nopember Institute of Technology Surabaya 2017
v
(Halaman ini sengaja dikosongkan)
vi
vii
(Halaman ini sengaja dikosongkan)
viii
IMPLEMENTASI SOURCE ROUTE PADA PROTOKOL GPSR DENGAN BANTUAN INTERSECTION NODE UNTUK MENINGKATKAN RELIABILITAS PENGIRIMAN DATA DI VANET Nama Mahasiswa NRP Jurusan Dosen Pembimbing 1
: : : :
RANDY BASTIAN 5112100035 Teknik Informatika FTIF-ITS Dr.Eng. Radityo Anggoro, S.Kom., M.Sc. Dosen Pembimbing 2 : Ir. Muchammad Husni, M.Kom. Abstrak Vehicular Ad Hoc Network (VANET) merupakan salah satu teknologi yang banyak dikembangkan di berbagai Negara. Fokus utama penelitian VANET adalah efisiensi protokol routing. Protokol routing menjadi fokus utama karena kebutuhan mengenai penentuan rute dari lokasi asal menuju lokasi tujuan haruslah dalam jangka waktu yang sesingkat mungkin dengan akurasi rute seoptimal mungkin. Pada masing – masing topology based protocol maupun geographic based protocol memiliki kelebihan dan kelemahan. Oleh karena itu, dibutuhkan kombinasi antara kedua protokol routing untuk dapat mengatasi kelemahan masingmasing jenis protokol. Tugas akhir ini mengimplementasikan metode source route protokol DSR dengan bantuan intersection node pada protokol GPSR untuk meningkatkan reliabilitas pengiriman data di VANET. Intersection node ini merupakan node statis yang berada di setiap intersection atau persimpangan jalan. Hasil uji coba menunjukkan bahwa implementasi source route dan bantuan intersection node dapat meningkatkan reliabilitas pengiriman data pada VANET. Kata kunci: Vanet, GPSR, source route, intersection node. ix
(Halaman ini sengaja dikosongkan)
x
IMPLEMENTATION OF SOURCE ROUTE ON PROTOCOL GPSR WITH INTERSECTION NODE TO IMPROVE RELIABILITY DATA TRANSMISSION IN VANET Student’s Name Student’s ID Department First Advisor Second Advisor
: : : :
RANDY BASTIAN 5112100035 Teknik Informatika FTIF-ITS Dr.Eng. Radityo Anggoro, S.Kom., M.Sc. : Ir. Muchammad Husni, M.Kom. Abstract
Vehicular Ad Hoc Network (VANET) is one technology that has been developed in various countries. The main focus of research VANET is a routing protocol efficiency. Routing protocol is the main focus for determination of the location of origin to the destination location that has the shortest possible period of time with an accuracy of these optimal as possible. In each topology based protocol and geographic based protocol has its advantages and disadvantages. Therefore, it takes a combination of the two routing protocols to be able to overcome the weakness of each type of protocol. This final project implements method DSR source route protocol with the help of intersection nodes on GPSR protocol to improve the reliability of data transmission on VANET. Intersection node is a static node located in each intersection of crossroads. The trial results showed that the implementation of the source route and intersection nodes can help improve reliability of data transmission in VANET. Keywords : Vanet, GPSR, Source Route, intersection node.
xi
(Halaman ini sengaja dikosongkan)
xii
KATA PENGANTAR
Alhamdulillahirabbil’alamin, segala puji bagi Allah Swt yang telah melimpahkan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul: “IMPLEMENTASI SOURCE ROUTE PADA PROTOKOL GPSR DENGAN BANTUAN INTERSECION NODE UNTUK MENINGKATKAN RELIABILITAS PENGIRIMAN DATA DI VANET” yang merupakan salah satu syarat dalam menempuh ujian sidang guna memperoleh gelar Sarjana Komputer. Selesainya Tugas Akhir ini tidak terlepas dari bantuan dan dukungan beberapa pihak, sehingga pada kesempatan ini penulis mengucapkan terima kasih kepada: 1. Allah SWT atas semua berkah dan hidayah-Nya sehingga penulis dapat menyelesaikan Tugas Akhir ini. 2. Keluarga yang senantiasa memberikan do’a dan dukungan hingga saat ini. 3. Bapak Dr.Eng. Radityo Anggoro, S.Kom., M.Sc. dan Ir. Muchammad Husni, M.Kom. selaku dosen pembimbing yang telah membimbing, memberikan motivasi, nasehat dan bimbingan dalam menyelesaikan Tugas Akhir ini. 4. Ibu Anny Yuniarti, S.Kom., M.Comp.Sc. selaku dosen wali yang telah memberikan arahan dan nasehat dalam memilih dan menjalankan akademik di Teknik Informatika ITS. 5. Seluruh dosen dan karyawan Teknik Informatika ITS yang telah memberikan ilmu dan pengalaman kepada penulis selama menjalani masa studi di ITS. 6. Teman dan sahabat penulis yang tidak dapat disebutkan satu per satu yang selalu membantu, menghibur, menjadi tempat bertukar ilmu dan berjuang bersama-sama penulis.
xiii
Penulis menyadari bahwa Tugas Akhir ini masih memiliki banyak kekurangan sehingga dengan kerendahan hati penulis mengharapkan kritik dan saran dari pembaca untuk perbaikan ke depan.
Surabaya, Januari 2017
xiv
DAFTAR ISI
LEMBAR PENGESAHAN ........... Error! Bookmark not defined. Abstrak ........................................................................................ ix Abstract ....................................................................................... xi DAFTAR ISI .............................................................................. xv DAFTAR GAMBAR ................................................................ xix DAFTAR TABEL ...................................................................xxiii DAFTAR LAMPIRAN ........................................................... xxv BAB 1 BAB I PENDAHULUAN ............................................... 1 1.1 Latar Belakang ................................................................. 1 1.2 Rumusan Masalah ............................................................ 1 1.3 Batasan Permasalahan ...................................................... 2 1.4 Tujuan .............................................................................. 2 1.5 Manfaat............................................................................. 2 1.6 Metodologi ....................................................................... 2 1.6.1 Penyusunan Proposal ................................................ 3 1.6.2 Studi Literatur ........................................................... 3 1.6.3 Implementasi Protokol .............................................. 3 1.6.4 Pengujian dan Evaluasi ............................................. 3 1.6.5 Penyusunan Buku ..................................................... 3 1.7 Sistematika Penulisan Laporan ........................................ 3 BAB 2 BAB II TINJAUAN PUSTAKA ..................................... 5 2.1 Vehicular Ad hoc Network (VANET) ............................. 5 2.2 Dynamic Source Routing (DSR) ...................................... 6 2.3 Greedy Perimeter Stateless Routing (GPSR) ................... 8 2.3.1 Greedy Forwarding ................................................... 8 2.3.2 Perimeter Forwarding ............................................... 9 2.3.3 Planarized Graph..................................................... 10 2.4 Simulation of Urban Mobility (SUMO) ......................... 11 2.5 OpenStreetMap............................................................... 13 2.6 JOSM.............................................................................. 13 2.7 AWK .............................................................................. 14 2.8 Network Simulator 2 (NS-2) .......................................... 14 xv
2.8.1 Instalasi NS-2 .......................................................... 15 2.8.2 Patching Protokol GPSR ......................................... 16 BAB 3 BAB III PERANCANGAN ........................................... 19 3.1 Deskripsi Umum ............................................................ 19 3.2 Perancangan Skenario Mobilitas .................................... 20 3.2.1 Perancangan Skenario Grid .................................... 20 3.2.2 Perancangan Skenario Real .................................... 22 3.3 Perancangan Intersection Node ...................................... 23 3.4 Perancangan Simulasi pada NS-2................................... 23 3.5 Perancangan Metrik Analisis.......................................... 23 3.5.1 Packet Delivery Ratio (PDR) .................................. 23 3.5.2 End to End Delay .................................................... 24 3.5.3 Routing Overhead (RO) .......................................... 24 3.6 Perancangan Protokol GPSR-SR.................................... 24 BAB 4 BAB IV IMPLEMENTASI .......................................... 27 4.1 Implementasi Skenario Mobilitas ................................... 27 4.1.1 Skenario Grid .......................................................... 27 4.1.2 Skenario Real .......................................................... 34 4.2 Implementasi Protokol GPSR-SR .................................. 36 4.2.1 Implementasi Header protokol DSR pada Header GPSR ...................................................................... 36 4.2.2 Implementasi Request Table pada GPSR ............... 38 4.2.3 Modifikasi Class GPSR .......................................... 40 4.2.4 Implementasi Route Discovery pada GPSR ........... 42 4.2.5 Modifikasi forwarding node ................................... 43 4.3 Implementasi Simulasi pada NS-2 ................................. 45 4.4 Implementasi Metrik Analisis ........................................ 45 4.4.1 Implementasi Packet Delivery Ratio (PDR) ........... 45 4.4.2 Implementasi Routing Overhead ............................ 45 4.4.3 Implementasi End to End Delay ............................. 46 BAB 5 BAB V HASIL UJI COBA DAN EVALUASI ............ 47 5.1 Lingkungan Uji Coba ..................................................... 47 5.2 Hasil Uji Coba ................................................................ 48 5.2.1 Hasil Uji Coba Grid ................................................ 48 5.2.2 Hasil Uji Coba Real ................................................ 56 xvi
BAB VI KESIMPULAN DAN SARAN ................................... 63 5.3 Kesimpulan..................................................................... 63 5.4 Saran ............................................................................... 64 BAB 6 DAFTAR PUSTAKA .................................................... 65 BAB 7 LAMPIRAN ................................................................... 67 BIODATA PENULIS ................................................................ 89
xvii
(Halaman ini sengaja dikosongkan)
xviii
DAFTAR GAMBAR Gambar 2-1. Ilustrasi VANET ...................................................... 6 Gambar 2-2. Route Discovery pada DSR...................................... 7 Gambar 2-3 Mekanisme greedy forwarding.................................. 9 Gambar 2-4 Greedy forwarding tidak dapat dilakukan. x adalah node terdekat dengan D; w dan y lebih jauh ke D; v dan z diluar jangkauan transmisi. ...................................................................... 9 Gambar 2-5 area void x terhadap D ............................................ 10 Gambar 2-6 Relative Neighbor Graph (RNG) ............................ 11 Gambar 2-7 Gabriel Graph (GG) ................................................ 11 Gambar 2-8 Instalasi dependensi NS-2 ....................................... 15 Gambar 2-9 Perintah mengunduh NS-2.35 ................................. 15 Gambar 2-10 Perintah ekstrak source code NS-2........................ 15 Gambar 2-11 Modifikasi file ls.h ................................................ 16 Gambar 2-12 Link patch protokol GPSR untuk NS-2................. 16 Gambar 2-13 Perintah patch protokol GPSR di NS-2 ................. 16 Gambar 2-14 Modifikasi file Makefile........................................ 17 Gambar 2-15 Perintah instalasi NS-2. ......................................... 17 Gambar 2-16 Perintah untuk menjalankan ns pada terminal. ...... 18 Gambar 3-1 Diagram rancangan simulasi. .................................. 19 Gambar 3-2 Mekanisme pembuatan skenario berbentuk grid ..... 21 Gambar 3-3 Mekanisme pembuatan skenario berbentuk real menggunakan peta Surabaya. ...................................................... 22 Gambar 4-1 Peta grid 1000 m x 1000 m ..................................... 27 Gambar 4-2 Perintah netgenerate untuk membuat peta skenario grid .............................................................................................. 27 Gambar 4-3 Perintah randomTrips.py ......................................... 28 Gambar 4-4 Perintah duarouter ................................................... 28 Gambar 4-5 File sumo.sumocfg .................................................. 28 Gambar 4-6 Perintah untuk menampilkan skenario di SUMO.... 29 Gambar 4-7 Pergerakan node pada file sumo.sumocfg ............... 29 Gambar 4-8 Perintah konversi skenario SUMO ke bentuk XML30 Gambar 4-9 Perintah konversi skenario XML ke mobilitas NS2 30 Gambar 4-10 Cuplikan file scenario.tcl sebelum dimodifikasi ... 31 xix
Gambar 4-11 Cuplikan pemindahan lokasi pendifinisan node.... 32 Gambar 4-12 Cuplikan pembuatan intersection node ................. 33 Gambar 4-13 Peta Surabaya daerah Statiun Gubeng pada OpenStreetMap............................................................................ 34 Gambar 4-14 Hasil proses modifikasi peta mengunakan JOSM . 35 Gambar 4-15 Konversi file OpenStreetMap menjadi XML ........ 35 Gambar 4-16 Implementasi header protokol DSR pada file gpsr_packet.h............................................................................... 37 Gambar 4-17 Modifikasi union hdr_all_gpsr dengan menambahkan struct dsr_data ..................................................... 37 Gambar 4-18 Pendefinisian variabel pada gpsr_packet.h ........... 38 Gambar 4-19 Implementasi requesttable.h .................................. 39 Gambar 4-20 Variabel yang didefinisikan pada class GPSRAgent ..................................................................................................... 40 Gambar 4-21 Inisiasi variabel pada class GPSRAgent ............... 41 Gambar 4-22 Algoritma route discovery Bagian I ...................... 42 Gambar 4-23 Algoritma route discovery Bagian II ..................... 43 Gambar 4-24 Perintah untuk mendapatkan PDR ........................ 45 Gambar 4-25 Perintah mendapatkan routing overhead ............... 46 Gambar 4-26 Perintah untuk mendapatkan end to end delay ...... 46 Gambar 5-1 Grafik PDR terhadap node pada skenario grid dengan kecepatan 10 m/s ......................................................................... 49 Gambar 5-2 Grafik PDR terhadap node skenario grid pada kecepatan 15 m/s ......................................................................... 49 Gambar 5-3 Grafik PDR terhadap node pada skenario grid dengan kecepatan 20 m/s ......................................................................... 50 Gambar 5-4 Grafik routing overhead terhadap node skenario grid pada kecepatan 10 m/s ................................................................. 52 Gambar 5-5 Grafik routing overhead terhadap node pada skenario grid dengan kecepatan 15 m/s ..................................................... 52 Gambar 5-6 Grafik routing overhead terhadap node pada kecepatan 20 m/s .......................................................................................... 53 Gambar 5-7 Grafik End to End Delay terhadap node pada skenario grid dengan kecepatan 15 m/s ..................................................... 54
xx
Gambar 5-8 Grafik end to end delay terhadap node pada skenario grid dengan kecepatan 10 m/s .................................................... 54 Gambar 5-9 Grafik end to end delay terhadap node pada skenario grid dengan kecepatan 20 m/s ..................................................... 55 Gambar 5-10 Grafik PDR terhadap node pada skenario real dengan kecepatan 10 m/s ......................................................................... 56 Gambar 5-11 Grafik PDR terhadap node skenario real pada kecepatan 15 m/s ......................................................................... 57 Gambar 5-12 Grafik PDR terhadap node skenario real pada kecepatan 20 m/s ......................................................................... 57 Gambar 5-13 Grafik routing overhead terhadap node pada skenario real dengan kecepatan 10 m/s ...................................................... 58 Gambar 5-14 Grafik routing overhead terhadap node pada skenario real dengan kecepatan 15 m/s ...................................................... 59 Gambar 5-15 Grafik routing overhead pada skenario real dengan kecepatan 20 m/s ......................................................................... 59 Gambar 5-16 Grafik end to end delay terhadap node pada skenario real dengan kecepatan 10 m/s ...................................................... 60 Gambar 5-17 Grafik end to end delay terhadap node pada skenario real dengan kecepatan 15 m/s ...................................................... 61 Gambar 5-18 Grafik end to end delay pada skenario real dengan kecepatan 20 m/s ......................................................................... 61
xxi
(Halaman ini sengaja dikosongkan)
xxii
DAFTAR TABEL Tabel 5-1 Spesifikasi PC yang digunakan untuk uji coba. .......... 47 Tabel 5-2 Parameter-parameter dalam Uji Coba ......................... 47 Tabel 5-3 Data Uji Skenario Grid pada node sebanyak 90 dengan kecepatan 10 m/s. ........................................................................ 51
xxiii
(Halaman ini sengaja dikosongkan)
xxiv
DAFTAR LAMPIRAN Lampiran 1 File requesttable.cc .................................................. 67 Lampiran 2 Kode Implementasi fungsi Recv() ........................... 69 Lampiran 3 Kode Implementasi ignoreRREQ().......................... 74 Lampiran 4 Kode Implementasi newRREP() .............................. 75 Lampiran 5 Kode implementasi forwardData() .......................... 77 Lampiran 6 Kode implementasi wireless-gpsr.tcl ....................... 79 Lampiran 7 Kode implementasi gpsr.tcl ..................................... 83 Lampiran 8 Kode Implementasi traffic1.tcl ................................ 85 Lampiran 9 Kode implementasi pdr.awk .................................... 86 Lampiran 10 Kode implementasi overhead.awk ......................... 87 Lampiran 11 Kode implementasi end to end delay ..................... 88
xxv
(Halaman ini sengaja dikosongkan)
xxvi
BAB 1BAB I PENDAHULUAN 1.1
Latar Belakang
Greedy Perimeter Stateless Protocol (GPSR) merupakan protokol routing pada VANET yang menggunakan posisi node (geographic) sebagai titik acuan untuk menentukan node selanjutnya yang dilalui untuk menuju node tujuan. GPSR memilih node dengan jarak yang paling dekat dengan node tujuan dari node – node tetangga yang berada pada jangkauan node tersebut [1]. Performa dari protokol GPSR dipengaruhi oleh komunikasi antar node yang digunakan untuk melakukan pengiriman paket data. Komunikasi antar node ini disebut dengan availability link. Availability link ini memiliki pengaruh yang lebih besar dibandingkan dengan parameter-parameter yang dibangun dari node inisiator ke node tujuan [1]. Oleh karena itu, performa protokol GPSR perlu ditingkatkan dengan cara mengoptimasi availability link tersebut. Pada Tugas Akhir ini, penulis akan memodifikasi protokol GPSR dengan mengimplementasikan proses pencarian rute protokol DSR dengan menggunakan bantuan intersection node sebagai node RSU (road-side unit) yang diberi nama GPSR-SR. Penulis melakukan uji coba dan membandingkan performa protokol GPSR dan GPSR-SR dengan beberapa skenario berbentuk grid dan real. 1.2
Rumusan Masalah
Tugas akhir ini mengangkat beberapa rumusan masalah sebagai berikut: 1. Bagaimana cara mendapatkan source route di protokol GPSR (GPSR-SR) ?
1
2 2. 3. 1.3
Bagaimana pengaruh source route pada GPSR untuk meningkatkan reliabilitas pengiriman data? Bagaimana cara mengimplementasi protokol GPSR-SR pada linkungan NS-2 ? Batasan Permasalahan
Permasalahan yang dibahas pada tugas akhir ini memiliki batasan sebagai berikut: 1. Proses pengujian dan simulasi menggunakan network simulator NS-2. 2. Pembuatan skenario simulasi VANET menggunakan SUMO. 3. Node awal / asal dan tujuan menggunakan node statis. 1.4
Tujuan Tujuan dari tugas akhir ini adalah untuk meningkatkan reliabilitas pengiriman data pada VANET yang dapat dilihat pada availability link dengan menggunakan packet delivery ratio (PDR) sebagai parameter uji. 1.5
1. 2.
1.6
Manfaat Manfaat dari pengerjaan Tugas Akhir ini adalah: Menjadi acuan untuk optimasi lebih lanjut mengenai routing protocol pada VANET, khususnya protokol GPSR. Menjadi acuan untuk optimasi peran node RSU (road site unit) dalam mengoptimalkan pencarian rute pada VANET. Metodologi
Pembuatan tugas akhir ini dilakukan dengan menggunakan metodologi sebagai berikut:
3 1.6.1 Penyusunan Proposal Tahap awal tugas akhir ini adalah menyusun proposal tugas akhir. Proposal Tugas Akhir menjelaskan secara garis besar tentang alur pembuatan sistem. 1.6.2 Studi Literatur Pada tahap ini dilakukan untuk mencari informasi dan studi literatur apa saja yang dapat dijadikan referensi untuk membantu pengerjaan Tugas Akhir ini. Informasi didapatkan dari buku dan literatur yang berhubungan dengan metode yang digunakan. 1.6.3 Implementasi Protokol Tahap ini meliputi perancangan system berdasarkan studi literature dan pembelajaran konsep teknoogi dari perangkat lunak yang ada. Tahap ini merupakan tahap mendifinisikan aplikasi yang akan diimplementasi. 1.6.4 Pengujian dan Evaluasi Pada tahap ini melakukan pengujian dan evaluasi pada Packet Delivery Ratio (PDR), Routing Overhead, dan End to End Delay. 1.6.5 Penyusunan Buku Pada tahap ini disusun buku sebagai dokumentasi dari pelaksanaan tugas akhir yang mencangkup seluruh konsep, teori, implementasi, serta hasil yang telah dikerjakan. 1.7
Sistematika Penulisan Laporan
Sistematika penulisan laporan tugas akhir adalah sebagai berikut:
4 1. Bab I. Pendahuluan Bab ini berisikan penjelasan mengenai latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, dan sistematika penulisan dari pembuatan tugas akhir. 2. Bab II. Tinjauan Pustaka Bab ini berisi kajian teori dari sistem yang dibuat pada tugas akhir ini. 3. Bab III. Perancangan Bab ini berisi pembahasan mengenai sistem yang diimplementasikan dan dilakukan coba. 4. Bab IV. Implementasi Bab ini menjelaskan implementasi dari sistem yang telah dibuat pada baba perancangan. 5. Bab V. Hasil Uji Coba dan Evaluasi Bab ini berisikan hasil uji coba terhadap sistem yang telah diimplementasikan. 6. Bab VI. Kesimpulan dan Saran Bab ini merupakan bab yang menyampaikan kesimpulan dari hasil uji coba yang dilakukan, masalah-masalah yang dialami pada proses pengerjaan Tugas Akhir, dan saran untuk pengembangan solusi ke depannya. 7. Daftar Pustaka Bab ini berisi daftar pustaka yang dijadikan literatur dalam tugas akhir. 8. Lampiran Dalam lampiran terdapat tabel-tabel data hasil uji coba dan Pseudocode program secara keseluruhan.
BAB 2BAB II TINJAUAN PUSTAKA Bab ini berisi kajian teori dari sistem yang dibuat pada tugas akhir ini. 2.1
Vehicular Ad hoc Network (VANET)
Vehicular Ad Hoc Network (VANET) merupakan sekumpulan node yang bergerak secara dinamis (mobile) sebagai pengembangan dari Mobile Ad Hoc Network (MANET) yang mempertimbangkan semua kendaraan dalam jaringan sebagai node tersebut untuk berkomunikasi dengan kendaraan lainnya pada radius tertentu [2]. Pada VANET maupun MANET, node yang bergerak tergantung kepada ad hoc routing protocol untuk menentukan bagaimana proses pengiriman data dari node asal ke node tujuan. Ad hoc routing protocol di klasifikasi menjadi dua kategori, yaitu Topology-Based Routing dan Geographic PositionBased Routing [3]. Meskipun menggunakan routing protocol yang sama, namun VANET memiliki karakter yang berbeda dengan MANET karena VANET memiliki batasan pergerakan dan kecepatan yang tinggi yang menciptakan keunikan karakteristik dari VANET. Ada dua jenis node yang tergabung pada VANET, yaitu RSU (Road-side Unit) dan OBU (On-board Unit). RSU merupakan node yang terpasang pada beberapa bagian jalan yang terhubung dengan jaringan backbone untuk memberikan informasi-informasi penting kepada OBU. Kedua jenis node ini mengakibatkan ada dua tipe komunikasi yang memungkinkan terjadi, yaitu antara kendaraan (yang memiliki OBU) dengan kendaraan lain dan antara kendaraan dengan RSU. Contoh informasi yang dapat diberikan oleh RSU adalah batas kecepatan, status lampu lalu lintas, keberadaan infrastruktur penting dan lain-lain. Selain itu, RSU juga dapat memberikan jaringan internet kepada OBU yang terhubung. 5
6
1.
2.
3. 4.
2.2
Gambar 2-1. Ilustrasi VANET VANET memiliki banyak manfaat, diantara lain yaitu: Untuk menghindari tabrakan antara 2 kendaraan dengan memperhitungkan jarak dan kecepatan dengan menggunakan sistem pengereman mendadak. Mendeteksi keadaan yang berbahaya, misalnya kondisi jalan yang rusak, salju yang tebal, banjir, jalan yang diblokir dan kondisi yang licin. Digunakan sebagai sinyal pengiriman untuk meminta bantuan secara otomatis pada saat terjadi kecelakaan. Mendeteksi pengemudi yang tidak menaati peraturan lalu lintas, seperti menelepon dijalan, melewati batas kecepatan, mengemudi berlawanan arah, atau tidak menggunakan sabuk pengaman.[4]
Dynamic Source Routing (DSR) Dynamic Source Routing (DSR) merupakan sebuah protokol routing yang sederhana dan efisien dirancang khusus untuk digunakan dalam jaringan wireless multi-hop. DSR
7 memungkinkan sebuah jaringan bisa mengatur dan mengkonfigurasi sendiri, tanpa memerlukan infrastruktur jaringan yang ada. DSR dapat interoperate dengan Mobile IP, dan menggunakan Mobile IP dan DSR telah bisa bermigrasi antara WLAN, layanan data seluler dan DSR jaringan mobile ad hoc [5].
A
‘A’ id=2
B
‘A,B’ id=2
C
‘A,B,C’ id=2
D
‘A,B,C,D’ id=2
E
Gambar 2-2. Route Discovery pada DSR Protokol ini memiliki dua mekanisme utama, yaitu Route Discovery dan Route Maintanence yang bekerja sama untuk memungkinkan node untuk menemukan dan mempertahankan rute dari asal ke tujuan dalam jaringan ad hoc [6]. Jika node A memiliki Route cache rute ke node E, maka rute ini segera digunakan, jika tidak memiliki, maka mekanisme route discovery dimulai: - Node A mengirim paket route request (RREQ) dengan cara flooding pada jaringan. - Jika node B mendapatkan paket RouteRequest dari target yang sama (node A) atau jika alamat node B sudah terdaftar di Route Table, maka node B tidak akan meneruskan RREQ tersebut. - Jika node B adalah node tujuan dari RREQ, maka node B akan mengirimkan route reply RREP menuju ke node A dengan rute yang tersimpan pada source route node tersebut. Jika node A menerima route reply, maka route yang berada di source route akan disimpan ke dalam Route Cache. - Jika node B bukan node tujuan, maka node B akan mengirim route request ke jaringan untuk melanjutkan route discovery. Pada setiap node DSR bertanggung jawab untuk mengirimkan dan mengkonfirmasi bahwa hop berikutnya yang berada di source
8 route menerima paket. Jika sebuah paket tidak dapat diterima oleh sebuah node, maka paket ditransmisikan ulang beberapa kali sampai jumlah maksimal (time to live) dari sebuah node. Jika transmisi tidak dapat mengirimkan paket, maka node akan mengirimkan paket Route Error untuk menghapus rute di Route Cache. Jika di dalam Route Cache terdapat rute lain, maka rute tersebut akan digunakan. Jika tidak ada, maka RREQ akan dikirim lagi [7]. 2.3
Greedy Perimeter Stateless Routing (GPSR) Greedy Perimeter Stateless Routing (GPSR) merupakan Geograpichal Routing Protocol yang menggunakan positionbased routing dimana setiap node mengetahui posisi setiap node – node tetangga. Routing protocol GPSR menggunakan beaconing secara berkala untuk memperbarui informasi lokasi geografis node yang masih berada pada jangkauan transmisi. Ada dua metode pengiriman paket yang digunakan oleh GPSR, yaitu: - Greedy forwarding: digunakan untuk meneruskan data dari node asal kepada node tujuan. - Perimeter forwarding: digunakan pada area tertentu ketika tidak ada node yang lebih dekat dengan tujuan. Dengan kata lain, perimeter forwarding digunakan jika greedy forwarding tidak bisa mengirimkan paket. 2.3.1 Greedy Forwarding Pada greedy forwarding, GPSR mencari node tetangga yang memiliki jarak paling dekat dengan node tujuan. Jika ada node tetangga yang lebih dekat dengan node tujuan, maka paket akan diteruskan melalui node tersebut. Greedy forwarding dilakukan hingga paket sampai kepada node tujuan. Keuntungan dari greedy forwarding adalah greedy forwarding hanya bergantung kepada informasi node tetangga secara real time untuk meneruskan paket. Keuntungan ini akan membantu VANET karena memiliki mobilitas kendaraan yang tinggi. Karena setiap kendaraan hanya memberikan informasi secara lokal, maka metode
9 ini dapat digunakan pada jaringan dengan jumlah node yang banyak. Contoh pemilihan node pada GPSR dapat dilihat pada gambar 2-3. Node tetangga akan dihapus dari tabel neighbor node jika node tersebut tidak mendapatkan beacon melebihi waktu time out.
Gambar 2-3 Mekanisme greedy forwarding Perimeter Forwarding Perimeter forwarding dilakukan ketika greedy forwarding tidak menemukan node tetangga yang lebih dekat dengan node tujuan. Perimeter forwarding menggunakan node di sekitar area void untuk meneruskan paket ke tujuan. Perimeter forwarding menggunakan aturan tangan kanan (right-hand rule) untuk mengitari daerah perimeter area void berlawanan arah jarum jam untuk mencari node yang sesuai untuk meneruskan data. 2.3.2
Gambar 2-4 Greedy forwarding tidak dapat dilakukan. x adalah node terdekat dengan D; w dan y lebih jauh ke D; v dan z diluar jangkauan transmisi.
10
Gambar 2-5 area void x terhadap D Pada gambar 2-4 dan 2-5 merupakan kondisi dimana greedy forwarding tidak dapat dilakukan. Metode perimeter forwarding memerlukan no-crossing heuristic untuk memaksa aturan tangan kanan menemukan perimeter yang menutup void di daerah dimana node berada di tepi jangkauan transmisi bersilang dengan node yang berada di tepi lainnya. Secara keseluruhan, metode heuristis ini memperbaiki kemampuan algirtma GPSR, namun masih memiliki kekurangan, yaitu cara ini tidak selalu menemukan rute ketika mereka sebenarnya ada. No-crossing heuristic secara buta menghapus node tepi yang saling silang. Ketika node tepi dihapus, algoritma GPSR tidak akan menemukan rute. Untuk menghindari hal ini, digunakan metode lain, yaitu planarized graph. 2.3.3
Planarized Graph Planar graph adalah sebutan ketika terdapat dua atau lebih node yang berada di tepi jangkauan transmisi bertemu satu sama lain dalam satu grafik. Relative Neighborhood Graph (RNG) dan Gabriel Graph (GG) adalah dua tipe planar graph yang digunakan untuk menghapus tepi yang saling silang.
11
Gambar 2-6 Relative Neighbor Graph (RNG) Sebagai contohmya, pada gambar 2-6, dua sisi x dan y berbagi area dua vertices x dan y. Tepi x, y akan dihapus menggunakan RNG karena sudah ada sisi dari x ke v. Gabriel Graph (GG) digunakan hanya untuk menghapus sisi yang saling silang dimana shared area dua node mempunyai diameter yang sama.
Gambar 2-7 Gabriel Graph (GG) Pada gambar 2-7 menunjukkan bahwa titik tengah diameter kurang dari diameter node x atau node y. Maka dari itu, sisi x,y tidak bisa dihapus sehingga pemutusan jaringan pada GG lebih sedikit dibandingkan dengan RNG [8]. 2.4
Simulation of Urban Mobility (SUMO) Simulation of Urban Mobility (SUMO) merupakan sebuah aplikasi simulasi lalu lintas jalan yang bersifat open source, portabel, mikroskopik, dan kontinu yang di desain untuk menangani jaringan jalan yang besar [9]. SUMO memiliki lisensi dibawah GPL yang dikembangkan sejah tahun 2000 dengan tujuan untuk mengakomodasi penelitian yang melibatkan kendaraan di
12 jalan raya, terutama pada daerah yang memiliki jumlah penduduk yang padat (urban). SUMO terdiri dari beberapa tools yang dapat membantu simulasi lalu lintas. Tools yang digunakan dalam pembuatan Tugas Akhir ini adalah: - netgenerate merupakan tools yang berfungsi untuk membuat peta jalan yang seperti grid, spider atau bahkan bersifat abstrak [10]. Netgenerate juga berfungsi untuk menentukan kecepatan maksimum jalan dan membuat traffic light pada peta. Hasil dari netgenerate merupakan file yang berekstensi .net.xml. Pada tugas akhir ini, netgenerate digunakan untuk membuat peta skenario berbentuk grid. - Netconvert merupakan tools yang berfungsi untuk melakukan impor peta jalan dari sumber lain dan menghasilkan peta jalan yang dapat digunakan oleh tools lain [11]. Pada tugas akhir ini, netconvert digunakan untuk mengkonversi peta dari OpenStreetMap. - randomTrips.py merupakan tools yang berfungsi untuk membuat rute kendaraan secara acak di dalam peta simulasi [12]. - Duarouter merupakan tools yang berfungsi untuk membuat detail perjalanan setiap kendaraan berdasarkan keluaran dari randomTrips.py. - Sumo merupakan simulasi lalu lintas berdasarkan data yang didapatkan dari netconvert dan route2trips.py. Hasil simulasi dapat di ekspor ke sebuah file untuk digunakan atau dikonversi ke format lain. - Sumo-gui merupaka GUI yang digunakan untuk menampilkan simulasi. - traceExporter.py merupakan tools yang berfungsi untuk mengkonversi keluaran dari sumo menjadi format yang dapat digunakan oleh simulator lainnya. Pada Tugas Akhir ini, traceExporter.py digunakan untuk
13 mengkonversi data menjadi format .tcl yang dapat digunakan oleh NS-2. 2.5 OpenStreetMap OpenStreetMap (OSM) adalah sebuah proyek berbasis web untuk membuat peta dunia yang gratis dan terbuka, dibangun sepenuhnya oleh sukarelawan dengan melakukan survey menggunakan GPS, mendigitalisasi citra satelit dan mengumpulan serta membebaskan data geografis yang tersedia di publik. Melalui Open Data Commons Open Database License 1.0, kontributor OSM dapat memiliki, memodifikasi, dan membagikan data peta secara luas. Terdapat beragam jenis peta digital yang tersedia di internet, namun sebagian besar memiliki keterbatasan secara legal maupun teknis. Hal ini membuat masyarakat, pemerintah, peneliti dan akademisi, inovator, dan banyak pihak lainnya tidak dapat menggunakan data yang tersedia di dalam peta tersebut secara luas. Di sisi lain, baik peta dasar OSM maupun data yang tersedia di dalamnya dapat diunduh secara gratis dan terbuka, untuk kemudian digunakan untuk diredistribusikan kembali. Di banyak tempat di dunia ini, terutama di daerah terpencil dan terbelakang secara ekonomi, tidak terdapat insentif komersil sama sekali bagi perusahaan pemetaan untuk mengembangkan data di tempat ini. OSM dapat menjadi jawaban di banyak tempat seperti ini, baik itu pengembangan ekonomi, tata kota, kontinjensi bencana, maupun untuk berbagai tujuan lainnya [13]. Pada Tugas Akhir ini, penulis menggunakan data yang tersedia pada OSM untuk membuat skenario lalu lintas berdasarkan peta daerah di Surabaya. 2.6
JOSM Java OpenStreetMap Editor (JOSM) adalah aplikasi untuk menyunting data yang didapatkan dari OpenStreetMap. Aplikasi JOSM dapat diunduh pada halaman https://josm.openstreetmap.de . Penulis menggunakan aplikasi ini untuk menyunting dan merapikan peta yang diunduh dari OpenStreetMap.
14 2.7
AWK AWK adalah bahasa pemrograman yang digunakan untuk melakukan manipulasi data dan membuat laporan. AWK merupakan sebuah pemrograman filter untuk teks, seperti halnya perintah grep pada terminal linux. AWK dapat digunakan untuk mencari bentuk / model dalam sebuah berkas teks. Awk juga dapat mengganti bentuk satu teks ke dalam bentuk teks lain. Awk dapat juga digunakan untuk melakukan proses aritmatika seperti yang dilakukan oleh perintah expr. Awk sama halnya seperti bahasa shell atau C yang memiliki karakteristik yaitu sebagai tool yang cocok untuk jobs juga sebagai pelengkap untuk filter standar. Pada tugas akhir ini, AWK digunakan untuk membuat script menghitung PDR, delay dan routing overhead dari hasil trace NS2. 2.8
Network Simulator 2 (NS-2) NS-2 merupakan sebuah discrete event simulator yang didesain untuk membantu penelitian pada bidang jaringan komputer. Pengembangan NS dimulai pada tahun 1989 sebagai sebuah varian dari REAL network simulator. Pada tahun 1995, pengembangan NS didukung oleh DARPA melalui project di LBL, XeroX PARC, UCB dan USC/ISI. NS kemudian memasuki versi dua pada tanggal 31 Juli 1995. Saat ini, pengembangan NS didukung oleh DARPA melalui SAMAN dan NSF melalui CONSER beserta peneliti lainnya yang termasuk ACIRI. Saat ini, terdapat dua buah major version dari NS yang masih dikembangkan, yaitu NS-2 dan NS-3. NS-3 dikembangkan sejak tanggal 1 Juli 2006 secara aktif hingga saat ini menggantikan pendahulunya, yaitu NS-2. Pada Tugas Akhir ini, penulis menggunakan NS-2 dikarenakan modul protokol GPSR lebih stabil pada NS-2 dibandingkan dengan NS-3. NS-2 memiliki versi terbaru (ns-2.35) yang dirilis pada tanggal 14 November 2011. Dalam membuat sebuah simulasi jaringan komputer, NS-2 menggunakan dua buah bahasa
15 pemrograman, yaitu C++ dan TCL. NS-2 mendukung sistem operasi GNU/Linux, FreeBSD, OS X, Solaris dan Windows.
2.8.1
Instalasi NS-2 Instalasi NS-2 dilakukan pada sistem operasi Ubuntu 14.04. Yang diperlukan untuk menggunakan NS-2 ini adalah melakukan instalasi dependensi dan source code ns-2.35. Sebelum melakukan instalasi NS-2, ada beberapa dependensi yang diperlukan dalam menjalankan NS-2. Cara melakukan instalasi dependensi tersebut yaitu : sudo apt-get install build-essential autoconf automake libxmu-dev Gambar 2-8 Instalasi dependensi NS-2 Selanjutnya, unduh source code NS-2 versi ns-2.35 dengan perintah : wget http://jaist.dl.sourceforge.net/project/nsnam/allinone/nsal linone-2.35/ns-allinone-2.35.tar.gz libxmu-dev Gambar 2-9 Perintah mengunduh NS-2.35
Ekstrak source code NS-2 dengan perintah: tar -xvf ns-allinone-2.35.tar.gz Gambar 2-10 Perintah ekstrak source code NS-2
16 Modifikasi file ls.h yang berada pada ns-allinone-2.35/ns2.35/linkstate agar tidak terjadi error ketika instalasi. Pada baris ke-137, ubah kata erase menjadi this->erase .
Gambar 2-11 Modifikasi file ls.h Patching Protokol GPSR Protokol GPSR belum ada dalam source code NS-2 yang telah di unduh, oleh karena itu, perlu dilakukan patching sebelum instalasi NS-2. Pada Tugas Akhir ini, penulis menggunakan patch GPSR yang dibuat Ke Liu. Patch dapat diunduh dengan tautan: 2.8.2
https://drive.google.com/file/d/0B7S255p3kFXNV2ct NFctd3JsZGs/view Gambar 2-12 Link patch protokol GPSR untuk NS-2 File yang terunduh bernama gpsr-KeLiu_ns235.patch. Letakkan file ini pada direktori ns-allinone-2.35 . Kemudian lakukan patch dengan perintah: patch -p < gpsr-KeLiu_ns235.patch Gambar 2-13 Perintah patch protokol GPSR di NS-2
17 Patch ini memasukkan file – file protokol GPSR pada direktori ns-allinone-2.35/ns-2.35/gpsr dan menambahkan file ekstensi *.o pada file Makefile dan Makefile.in yang berada pada direktori ns-allinone-2.35/ns-2.35/ . Pada Tugas Akhir ini, penulis membuat file yang digunakan untuk mengimplementasikan request table dari protokol DSR pada protokol GPSR sehingga perlu memodifikasi file Makefile diatas. Tambahkan baris “gpsr/requesttable.o \” di bawah tulisan “gpsr/gpsr.o \” pada baris 338. Gambar 2-14 merupakan informasi lokasi nambahan baris. 336 337 338 339
gpsr/gpsr_neighbor.o \ gpsr/gpsr_sinklist.o \ gpsr/gpsr.o \ gpsr/requesttable.o \
Gambar 2-14 Modifikasi file Makefile Jika ada file baru yang ingin ditambahkan guna memodifikasi protokol GPSR, tambahkan file berekstensi .o seperti gambar 2-14 di atas. File berekstensi .o adalah file yang dihasilkan dari proses compile dari source code bahasa pemrograman C++. Tahap selanjutnya adalah melakukan proses instalasi NS-2. Pastikan lokasi direktori berada pada ns-allinone-2.35. Jika sudah berada pada direktori tersebut, lakukan proses instalasi dengan perintah: ./install Gambar 2-15 Perintah instalasi NS-2. Aplikasi NS-2 yang telah dilakukan instalasi di atas merupakan aplikasi stand alone, sehingga perlu dilakukan perintah dibawah ini agar dapat menjalankan perintah ns pada terminal.
18 Perintah tersebut adalah: cp ns-2.35/ns /usr/lokal/bin Gambar 2-16 Perintah untuk menjalankan ns pada terminal.
Untuk melakukan pengecekan berhasil tidaknya instalasi, ketikkan perintah “ns”pada terminal.
BAB 3BAB III PERANCANGAN Perancangan merupakan bagian penting dari pembuatan sistem secara teknis sehingga bab ini secara khusus menjelaskan perancangan sistem yang dibuat dalam Tugas Akhir. Berawal dari deskripsi umum sistem hingga perancangan skenario, alur dan implementasinya. 3.1
Deskripsi Umum
Tugas Akhir ini mengimplementasikan source route protokol GPSR (GPSR-SR) dengan bantuan intersection node yang dijalankan pada simulator NS-2. Diagram dari rancangan simulasi dapat dilihat pada gambar 3-1.
Gambar 3-1 Diagram rancangan simulasi. 19
20 Skenario yang digunakan dalam Tugas Akhir ini adalah peta berbentuk grid dan peta real lingkungan lalu lintas kota Surabaya. Peta grid dibuat menggunakan sumo-tools dan peta lalu lintas kota Surabaya diambil dari data yang terdapat pada OpenStreetMap yang dimodifikasi dengan menggunakan aplikasi JOSM sehingga lalu lintas terlihat rapi dan teratur. Pada Tugas akhir ini, setiap persimpangan jalan / traffic light dipasang intersection node sebagai node statis yang digunakan oleh protokol GPSR-SR untuk melakukan routing. Selanjutnya, peta-peta ini digunakan untuk melakukan simulasi lalu lintas menggunakan SUMO. Hasil simulasi tersebut digunakan bersama dengan protokol GPSR-SR pada NS-2 untuk melakukan simulasi VANET. Simulasi menghasilkan Trace file yang dianalisis menggunakan skrip AWK untuk mendapatkan packet delivery rate, routing overhead, dan end-to-end delay dari simulasi tersebut. Analisis ini digunakan untuk mengukur tingkat reliabilitas pengiriman data antara protokol GPSR dengan protokol GPSR-SR. 3.2
Perancangan Skenario Mobilitas Perancangan skenario simulasi pada Tugas Akhir ini mencakup pada perancangan peta, pergerakan node, pembuatan rule lalu lintas dan implementasi pergerakan. Pembuatan peta skenario terbagi menjadi dua, yaitu pembuatan peta berbentuk grid dan real. Peta dengan berbentuk grid dipilih sebagai tes awal simulasi karena bentuknya yang menggambarkan kondisi yang sebenarnya dan kondisi peta yang seimbang dan stabil. Pada peta real menggunakan peta dari Surabaya. Peta real didapatkan dengan mengimpor peta dari aplikasi OpenStreetMap. 3.2.1
Perancangan Skenario Grid Perancangan skenario mobilitas dengan peta grid diawali dengan menentukan panjang dan lebar peta grid yang digunakan.
21 Selanjutnya, menentukan jumlah grid yang digunakan. Sebagai contoh, peta grid menggunakan panjang 100 x 100 dengan jumlah grid sebanyak 6 buah sehingga peta grid yang dibuat adalah 500 x 500. Peta grid dibuat menggunakan tools dari SUMO, yaitu netgenerate. Selain pengaturan mengenai banyak grid dan panjang grid, pengaturan mengenai kecepatan maksimum juga dilakukan ketika pembuatan peta. Hasil keluaran dari netgenerate adalah file dengan ekstensi .net.xml . Peta ini digunakan untuk membuat file deskripsi pergerakan kendaraan menggunakan tools randomTrips dan duarouter. Alur mekanisme pembuatan skenario grid bisa dilihat pada gambar 3-2.
Gambar 3-2 Mekanisme pembuatan skenario berbentuk grid
22 Simulasi lalu lintas dilakukan dengan menggunakan file peta yang telah di generate dan file mobilitas yang telah dibuat. Keluaran dari simulasi SUMO adalah file berkestensi .xml . Pada Tugas Akhir ini, simulasi dijalankan pada NS2 sehingga file keluaran SUMO tersebut harus dikonversi menjadi file .tcl menggunakan tools dari SUMO yang bernama traceExporter. 3.2.2
Perancangan Skenario Real Perancangan skenario real kota Surabaya menggunakan peta yang diambil dari OpenStreetMap dengan melakukan menu
Gambar 3-3 Mekanisme pembuatan skenario berbentuk real menggunakan peta Surabaya.
23 ekspor yang ada di halaman situs. File hasil ekspor ini berekstensi .osm dimodifikasi menggunakan aplikasi JOSM. Pada aplikasi ini, dilakukan penghapusan objek – objek yang tidak diperlukan (seperti gedung, sungai, jalur kereta api, dan jalan-jalan kecil perumahan) dan penambahan traffic light pada peta. Kemudian, peta berekstensi .osm ini dikonversi menggunakan tools netconvert yang menghasilkan file berekstensi .net.xml. Mekanisme pembuatan skenario real dapat dilihat pada gambar 33. 3.3 Perancangan Intersection Node Pada file skenario mapun real, perlu ditambahkan node-node statis pada traffic light di dalam peta sebagai node – node bantuan untuk routing dari protokol GPSR-SR. Pada Tugas Akhir ini, intersection node dibuat dengan memberikan koordinat Z dengan nilai -5, sedangkan node-node dinamis yang bergerak sesuai dengan mekanisme yang dibuat pada SUMO, yaitu Z = 0. 3.4
Perancangan Simulasi pada NS-2. Simulasi VANET pada NS-2 dilakukan dengan menggunakan skenario mobilitas dan digabungkan dengan skrip TCL yang berisikan konfigurasi mengenai lingkungan simulasi. 3.5
Perancangan Metrik Analisis Parameter – parameter yang dianalisis pada Tugas Akhir ini adalah packet delivery ratio (PDR), routing overhead dan end-toend delay. 3.5.1
Packet Delivery Ratio (PDR)
Packet delivery ratio adalah prosentasi jumlah antara paket yang dikirimkan dan paket yang diterima. Rumus untuk menghitung PDR sebagai berikut: 𝑃𝐷𝑅 =
𝑟𝑒𝑐𝑒𝑖𝑣𝑒𝑑 𝑥 100 % 𝑠𝑒𝑛𝑡
24 Keterangan: PDR
= packet delivery ratio
received
= banyak paket data yang diterima
sent
= banyak paket data yang dikirimkan
3.5.2
End to End Delay End to End Delay dihitung berdasarkan rata-rata delay antara waktu paket data diterima dan waktu paket dikirimkan. End to end delay dihitung menggunakan rumus: 𝑖=0
𝐷𝑒𝑙𝑎𝑦 = ∑
𝑡𝑟𝑒𝑐𝑒𝑖𝑣𝑒𝑑[𝑖] − 𝑡𝑠𝑒𝑛𝑡[𝑖] 𝑠𝑒𝑛𝑡
𝑖≤𝑠𝑒𝑛𝑡
Keterangan: Delay
= End to End delay
t received[i]
= waktu pengiriman paket pada urutan / id ke-i
t sent[i]
= waktu pengiriman paket pada urutan / id ke-i
sent
= Banyaknya paket data yang dikirimkan
3.5.3
Routing Overhead (RO) Routing overhead adalah jumlah paket routing diperlukan untuk komunikasi jaringan. Routing overhead dihitung berdasarkan paket yang ditransmisikan. 3.6
Perancangan Protokol GPSR-SR Protokol GPSR-SR merupakan modifikasi dari protokol GPSR yang menambahkan mekanisme route discovery dari protokol DSR. Jika pada protokol GPSR, mekanisme pencarian node selanjutnya untuk menuju node tujuan secara langsung
25 dengan menentukan node tetangga yang paling dekat dengan node tujuan, maka GPSR-SR membutuhkan paket RREQ dan paket RREP untuk mendapatkan rute terlebih dahulu. Pada header paket, ditambahkan source route untuk mencatat node-node mana saja yang dilalui pada paket RREQ. Jika sudah sampai node tujuan, paket RREP akan dijalankan melewati node-node di dalam source route menuju node inisiator / node sumber. Jika paket sudah kembali pada node inisiator, maka dilakukan pengecekan pada source route. Node – node dinamis (koordinat Z = 0) yang berada pada source route dibuang hingga menyisakan node inisiator, intersection node (koordinat Z = -5) dan node tujuan. Node – node ini disimpan pada node inisiator untuk digunakan mengirimkan paket data menuju node tujuan.
26 (Halaman ini sengaja dikosongkan)
BAB 4BAB IV IMPLEMENTASI Bab ini membahas mengenai implementasi yang dilakukan berdasarkan perancangan yang telah dijabarkan pada bab sebelumnya. 4.1
Implementasi Skenario Mobilitas Implementasi skenario mobilitas dibagi menjadi dua bagian, yaitu skenario grid dan skenario real kota Surabaya. 4.1.1
Skenario Grid Skenario grid dibuat menggunakan tools dari SUMO, yaitu netgenerate. Untuk membuat peta dengan luas 1000 x 1000 meter, dengan panjang antar persimpangan 100 meter dibutuhkan 11 titik x 11 titik dan kecepatan 10 m/s. Proses pembuatan skenario ini bisa sebagai berikut: netgenerate --grid --grid.number=11 --grid.length=100 -default.speed=10 --tls.guess=1 --output-file=map.net.xml Gambar 4-2 Perintah netgenerate untuk membuat peta skenario grid
Gambar 4-1 Peta grid 1000 m x 1000 m 27
Pada peta diatas belum terdapat node, sehingga dibutuhkan tools randomTrips.py yang berada di direktori SUMO. Berikut ini perintah untuk membuat mobility node dengan randomTrips.py: randomTrips.py -n map.net.xml -e 100 -l --tripattributes="departLane=\"best\" departSpeed=\"max\" departPos=\random_free\"" --o trip.trips.xml Gambar 4-3 Perintah randomTrips.py File keluaran dari randomTrips.py adalah trip.trips.xml yang kemudian dibuatkan rute dengan tools SUMO yaitu duarouter. Perintah penggunaan duarouter sebagai berikut: duarouter -n map.net.xml -t trip.trips.xml -o route.rou.xml --ignore-errors --repair
Gambar 4-4 Perintah duarouter Pada tahap ini, file yang dibutuhkan untuk pembuatan file skenario yang dapat digunakan untuk SUMO sudah ada, yaitu file
Gambar 4-5 File sumo.sumocfg map.net.xml dan route.rou.xml. Selanjutnya, dari kedua file
29 tersebut dibuat sebuah file agar dapat dijalankan menggunakan SUMO. File yang dapat dijalankan oleh SUMO yaitu file dengan ekstensi .sumocfg . Pada skenario grid ini, dibuat file dengan nama sumo.sumocfg dengan isi seperti pada gambar 4-5. Lokasi penyimpanan file .sumocfg ini berada pada satu direktori dengan file map.net.xml dan route.rou.xml. Untuk melakukan pengecekan terhadap file sumo.sumocfg agar bisa dijalankan di aplikasi SUMO, maka dapat digunakan perintah: sumo-gui sumo.sumocfg Gambar 4-6 Perintah untuk menampilkan skenario di SUMO
Gambar 4-7 Pergerakan node pada file sumo.sumocfg
Gambar 4-7 merupakan tampilan dari pergerakan node pada file sumo.sumocfg. File sumo.sumocfg ini digunakan skenario grid yang dijalankan pada NS-2. Untuk itu, file ini perlu dikonversi menjadi file berbentuk .xml. Perintah untuk mengkonversi sebagai berikut: sumo -c sumo.sumocfg --fcd-output scenario.xml Gambar 4-8 Perintah konversi skenario SUMO ke bentuk XML File scenario.xml dikonversi menjadi file dengan ekstensi .tcl agar bisa digunakan oleh NS-2. Konversi dari file .xml menjadi file .tcl menggunakan tool traceExporter.py yang berada pada direktori SUMO. Perintah untuk menggunakan traceExporter.py sebagai berikut: traceExporter.py --fcd-input=scenario.xml --ns2mobilityoutput=scenario.tcl Gambar 4-9 Perintah konversi skenario XML ke mobilitas NS2 Pada protokol GPSR Ke Liu yang digunakan pada Tugas Akhir ini, semua node perlu didefinisikan pada detik ke-0 sebelum node melakukan pergerakan ( mobility ). Jika file scenario.tcl hanya digunakan pada uji coba tanpa dimodifikasi, maka node ke1 dan seterusnya akan di definisikan pada posisi (x = 0, y = 0, z = 0). Hal ini berpengaruh pada pencarian rute dan neighbor node protokol GPSR maupun GPSR-SR. Oleh karena itu, semua pendifinisian node perlu dipindahkan sebelum baris ke-5 dari gambar 4-10. Contoh pemindahan node bisa dilihat pada gambar 4-11. Semua node pada file scenario.tcl perlu dipindahkan seperti gambar 4-11.
31
$node_(0) set X_ 1.65 $node_(0) set Y_ 174.32 $node_(0) set Z_ 0 $ns_ at 0.0 "$node_(0) setdest 1.65 174.32 10.00" $ns_ at 0.0 "$node_(51) setdest 199.35 1.32 10.00" $ns_ at 1.0 "$node_(51) setdest 198.35 1.30 9.07" $ns_ at 1.0 "$node_(0) setdest 1.65 183.4 9.07" $node_(1) set X_ 398.35 $node_(1) set Y_ 388.02 $node_(1) set Z_ 0 $ns_ at 1.0 "$node_(1) setdest 398.35 388.02 10.00" $ns_ at 2.0 "$node_(0) setdest 1.65 192.76 9.36" $ns_ at 2.0 "$node_(1) setdest 398.35 378.78 9.23" $node_(2) set X_ 13.06 $node_(2) set Y_ 198.35 $node_(2) set Z_ 0
Gambar 4-10 Cuplikan file scenario.tcl sebelum dimodifikasi Jika dalam file skenario terdapat 90 node, maka pindahkan semua pendifinisian node sebelum mobility detik ke-0 berjalan.
$node_(0) set X_ 1.65 $node_(0) set Y_ 174.32 $node_(0) set Z_ 0 $node_(1) set X_ 398.35 $node_(1) set Y_ 388.02 $node_(1) set Z_ 0 $node_(2) set X_ 13.06 $node_(2) set Y_ 198.35 $node_(2) set Z_ 0 $node_(3) set X_ 401.65 $node_(3) set Y_ 347.81 $node_(3) set Z_ 0 $node_(4) set X_ 90.88 $node_(4) set Y_ 198.35 $node_(4) set Z_ 0 $ns_ at 0.0 "$node_(0) setdest 1.65 174.32 10.00" $ns_ at 0.0 "$node_(51) setdest 199.35 1.32 10.00" $ns_ at 1.0 "$node_(51) setdest 198.35 1.30 9.07" $ns_ at 1.0 "$node_(0) setdest 1.65 183.4 9.07" $ns_ at 1.0 "$node_(1) setdest 398.35 388.02 10.00" $ns_ at 2.0 "$node_(0) setdest 1.65 192.76 9.36" $ns_ at 2.0 "$node_(1) setdest 398.35 378.78 9.23" $ns_ at 2.0 "$node_(2) setdest 13.06 198.35 10.00" $ns_ at 3.0 "$node_(1) setdest 398.35 369.11 9.68" $ns_ at 3.0 "$node_(2) setdest 22.35 198.35 9.29" $ns_ at 3.0 "$node_(3) setdest 401.65 347.81 10.00"
Gambar 4-11 Cuplikan pemindahan lokasi pendifinisan node
33 Skenario yang telah dimodifikasi seperti gambar 4-11 sudah dapat digunakan pada protokol GPSR, namun protokol GPSR-SR membutuhkan intersection node untuk bantuan pencarian rute. Oleh karena itu, definisikan node – node bantuan sebelum detik ke0 mobility node dengan koordinat sumbu Z = -5 sebagai node yang statis (tidak bergerak). Pada Tugas Akhir ini, yang membedakan intersection node dengan node lainnya adalah sumbu Z dengan nilai -5, sedangkan node yang bergerak (dinamis node) memiliki nilai Z = 0. $node_(0) set X_ 1.65 $node_(0) set Y_ 174.32 $node_(0) set Z_ 0 ############ Static Node $node_(50) set X_ 1.65 $node_(50) set Y_ 1.65 $node_(50) set Z_ -5.0 $node_(51) set X_ 198.35 $node_(51) set Y_ 0 $node_(51) set Z_ -5.0 $node_(52) set X_ 398.35 $node_(52) set Y_ 0 $node_(52) set Z_ -5.0 $ns_ at 0.0 "$node_(0) setdest 1.65 174.32 10.00" $ns_ at 0.0 "$node_(51) setdest 199.35 1.32 10.00" $ns_ at 1.0 "$node_(51) setdest 198.35 1.30 9.07" $ns_ at 1.0 "$node_(0) setdest 1.65 183.4 9.07" $ns_ at 1.0 "$node_(1) setdest 398.35 388.02 10.00" $ns_ at 2.0 "$node_(0) setdest 1.65 192.76 9.36" $ns_ at 2.0 "$node_(1) setdest 398.35 378.78 9.23"
Gambar 4-12 Cuplikan pembuatan intersection node Intersection node merupakan node tambahan yang nomor nodenya diatas skenario node. Misal scenario.tcl memiliki 50 node yang bergerak dinamis dengan nomor 0 – 49, maka intersection node dibuat dengan nomor 50 dan seterusnya. Pada skenario grid Tugas Akhir ini terdapat 96 persimpangan / lalu lintas sehingga
dibutuhkan 96 intersection node yang perlu didefinisikan. Contoh penambahan intersection node seperti pada gambar 4-12. 4.1.2
Skenario Real Skenario real ini menggunakan peta Surabaya yang diambil menggunakan OpenStreetMap dengan cara menandai area pada peta yang ditampilkan pada halaman situs OpenStreetMap. Seleksi peta yang digunakan secara manual dengan cara memilih menu “Manually select a different area” yang ada pada di halaman OpenStreetMap setelah menu Export di menubar bagian atas situs dipilih. Area yang digunakan pada Tugas Akhir ini adalah lokasi
Gambar 4-13 Peta Surabaya daerah Statiun Gubeng pada OpenStreetMap sekitar Stasiun Gubeng karena memiliki tingkat lalu lintas yang padat. Proses penyeleksian area peta yang digunakan bisa dilihat pada gambar 4-13, kemudian pilih tombol Export untuk mendapatkan file .osm dari peta. Jika tombol Export tidak bekerja, maka proses export bisa digantikan dengan menekan tulisan Overpass API yang berada pada tombol Export.
35 Peta yang diambil dari OpenStreetMap masih memiliki banyak jalur yang terpotong atau terisolasi sehingga perlu dilakukan proses modifikasi. Proses modifikasi menggunakan JOSM untuk menghapus dan memperbaiki jalan di dalam peta.
Gambar 4-14 Hasil proses modifikasi peta mengunakan JOSM Hasil modifikasi peta surabaya dapat dilihat dari gambar 414. Hasil ini perlu dikonversi menjadi bentuk .net.xml agar dapat diproses pada SUMO. Tools yang digunakan untuk melakukan modifikasi ini adalah netconvert dari SUMO-tools. File ini dikonversi menjadi file .net.xml menggunakan perintah: netconvert --osm-files map.osm --output-file map.net.xml Gambar 4-15 Konversi file OpenStreetMap menjadi XML agar dapat diproses menggunakan SUMO. Langkah selanjutnya sama seperti saat pembuatan skenario grid sampai dikonversi ke dalam format pergerakan NS-2.
4.2
Implementasi Protokol GPSR-SR Protokol GPSR-SR merupakan modifikasi dari protokol GPSR yang menerapkan proses route discovery protokol DSR. Modifikasi yang dilakukan pada protokol GPSR-SR sebagai berikut: Implementasi Header protokol DSR pada Header GPSR Implementasi Request Table pada GPSR Modifikasi Class GPSR Implementasi Route Discovery pada GPSR Modifikasi forwarding node Kode implementasi terhadap protokol GPSR pada NS-2 berada pada direktori ns-2.35/gpsr. Didalam direktori tersebut, file-file yang dimodifikasi atau diimplementasi adalah gpsr.cc, gpsr.h, gpsr_packet.h, requesttable.h dan requesttable.cc. Filefile inilah yang digunakan untuk membangun protokol GPSR-SR. 4.2.1
Implementasi Header protokol DSR pada Header GPSR Implementasi header protokol DSR pada header GPSR dengan cara memodifiaksi file gpsr_packet.h. Pada file ini, penulis membuat sebuah struct dengan nama dsr_data yang berisi informasi RREQ, RREP, source route, dan identifier bernama valid_ sebagai informasi valid tidaknya dsr_data sebagaimana di protokol DSR. Struct dsr_data memiliki 8 variabel dengan tipe data integer, 1 variabel dengan tipe data u_int8_t dan satu 1 variabel bertipe data nsaddr_t. source route didefinisikan sebagai array of nsaddr_t yang berisi node-node yang dilalui dari node inisiator menuju node tujuan. Implementasi struct dsr_data dapat dilihat pada gambar 4-16. Setelah implementasi header protokol DSR pada header protokol DSR, perlu memodifikasi union hdr_all_gpsr dengan menambahkan struct dsr_data agar dsr_data dapat digunakan. Modifikasi union hdr_all_gpsr bisa dilihat pada gambar 4-17.
37
struct dsr_data { u_int8_t type_; int valid_; // Informasi RREQ int req_valid_; /* request header is valid? */ int req_id_; /* unique request identifier */ int req_ttl_; /* max propagation */ // informasi RREP int rep_valid_; /* reply header is valid? */ int rep_id_; /* unique request identifier */ // Informasi source route int len_; int cur_index_; nsaddr_t mypath_[MAX_SR_LEN]; inline int size() { int sz = 8*sizeof(int) + (MAX_SR_LEN + 1)*sizeof(u_int8_t); return sz; } }; Gambar 4-16 Implementasi header protokol DSR pada file gpsr_packet.h union hdr_all_gpsr { hdr_gpsr hdr_gpsr_hello hdr_gpsr_query hdr_gpsr_data dsr_data };
gh; ghh; gqh; gdh; gdsr;
Gambar 4-17 Modifikasi union hdr_all_gpsr dengan menambahkan struct dsr_data
Selanjutnya, penulis melakukan pendefinisian beberapa variabel pada gpsr_packet.h yang digunakan untuk mengakses dsr_data, variabel-variabel tersebut seperti pada gambar 4-18. #define DSR_DATA(p) ((struct dsr_data*)hdr_gpsr::access(p)) #define MAX_SR_LEN 16 // longest source route we can handle #define GPSRTYPE_ROUTE 0x03 // DSR data untuk mendapatkan route #define RREQ_JITTER 0.010 Gambar 4-18 Pendefinisian variabel pada gpsr_packet.h Keterangan: DSR_DATA(p) : digunakan untuk mengakses struct dsr_data MAX_SR_LEN : node maksimal yang berada pada soure route GPSRTYPE_ROUTE : Membuat jenis paket baru pada protokol GPSR, sebelumnya hanya ada GPSRTYPE_HELLO, GPSRTYPE_QUERY dan GPSRTYPE_DATA. GPSRTYPE_ROUTE digunakan sebagai identifier untuk proses route discovery. RREQ_JITTER : variabel waktu untuk melakukan penjadwalan pengiriman paket. 4.2.2
Implementasi Request Table pada GPSR Implementasi request table digunakan untuk mengurangi routing overhead sebagaimana yang digunakan pada protokol DSR. File-file yang diimplementasikan adalah gpsr.h, requesttable.h dan requesttable.cc. Request table digunakan untuk mengurangi RO pada proses pencarian rute dengan pengirman paket RREQ.
39 Request table ini bersifat lokal, maksudnya setiap node memiliki request table masing-masing sehingga setiap node satu dengan node tetangga bisa memiliki request table yang berbeda. #ifndef REQUESTTABLE_H_ #define REQUESTTABLE_H_ #include "config.h" struct request_entry { nsaddr_t id_; int req_num; }; class RequestTable { struct request_entry *requestlist_; int len; public: RequestTable(); int find(nsaddr_t); void insert(nsaddr_t, int); int get(nsaddr_t); }; #endif Gambar 4-19 Implementasi requesttable.h Request table berisi daftar node-node inisiator yang telah mengirimkan RREQ kepada node tersebut beserta id RREQ nya. Gambar 4-19 merupakan implementasi dari request table. Struct request_entry berisi node inisiator dan id RREQ. Pada class RequestTable, didefinisikan link list dari request_entry yang berisi node-node inisiator beserta id RREQ nya.
Fungsi pada class RequestTable hanya ada tiga, yaitu find() untuk mencari node inisiator di dalam list, insert() untuk memasukkan node inisiator di dalam tabel, dan get() untuk mendapatkan id RREQ di dalam list. Implementasi file requesttable.cc dapat dilihat pada Lampiran 1. Pada file gpsr.h, tambahkan baris #include “requesttable.h” agar file requesttable.h dan requesttable.cc dapat diakses dari file gpsr.cc. Selanjutnya, tambahkan requestable.o pada file Makefile yang telah dijabarkan pada BAB III. 4.2.3
Modifikasi Class GPSR File yang dimodifikasi pada tahap ini adalah file gpsr.h dan gpsr.cc. Pada file gpsr.h, penulis lakukan definisi dari beberapa variabel yang digunakan untuk route discovery. Variabel-variabel tersebut ditunjukkan pada gambar 4-20. RequestTable *request_; // ID route request int route_request_num; // data SR path bool valid_SR; nsaddr_t myroute[MAX_SR_LEN]; int route_len; Gambar 4-20 Variabel yang didefinisikan pada class GPSRAgent Keterangan: request_ : link list untuk mengimplementasikan request table. route_request_num : id untuk RREQ valid_SR : identifier jika node isinisiator sudah memiliki source route. Nilai 0 jika belum, nilai 1 jika sudah ada.
41 myroute : array dari source route. Setiap node hanya memiliki satu source route sehingga hanya bisa melakukan unicast. route_len : banyaknya source route pada node. Data source route diatas bersifat lokal yang nantinya hanya dimiliki oleh setiap node inisiator. Source route diatas merupakan source route yang nantinya digunakan untuk routing. Jadi, source route ini sudah bersifat final dan tidak ada lagi source route baru dengan tujuan yang sama. Pada file gpsr.cc, penulis hanya perlu melakukan inisiasi dari pendefinisian seperti pada gambar 4-21. GPSRAgent::GPSRAgent() : Agent(PT_GPSR), hello_timer_(this), query_timer_(this), my_id_(-1), my_x_(0.0), my_y_(0.0), recv_counter_(0), query_counter_(0), query_period_(INFINITE_DELAY) { bind("planar_type_", &planar_type_); bind("hello_period_", &hello_period_); sink_list_ = new Sinks(); nblist_ = new GPSRNeighbors(); request_ = new RequestTable(); route_request_num = 1; valid_SR = 0; myroute[0] = NULL; route_len = 0; for(int i=0; i<5; i++) randSend_.reset_next_substream(); } Gambar 4-21 Inisiasi variabel pada class GPSRAgent
4.2.4
Implementasi Route Discovery pada GPSR Implementasi route discovery pada GPSR merupakan implementasi proses pengiriman route request (RREQ) dan route reply (RREP). File yang digunakan untuk implementasi adalah gpsr.cc. Implementasi route discovery pada fungsi recv() dapat melihat algoritma pada gambar 4-22 dan 4-23.
Gambar 4-22 Algoritma route discovery Bagian I
43
Gambar 4-23 Algoritma route discovery Bagian II Kode implementasi route discovery dapat dilihat pada lampiran 2, lampiran 3 dan lampiran 4. 4.2.5 Modifikasi forwarding node Modifikasi forwarding node pada GPSR yaitu mengubah node destination pada header. Node destination diubah dari node tujuan menjadi node yang berada pada source route. Kode implementasi untuk melakukan mengubah node destination bisa dilihat pada lampiran 5. Hasil implementasi protokol GPSR-SR dapat dilihat pada cuplikan trace file gambar 4-24 dan 4-25. Gambar 4-24 merupakan cuplikan trace file protokol GSPR dan gambar 4-25 merupakan cuplikan tracefile protokol GPSR-SR. Pada simulasi Tugas Akhir ini, proses pencarian rute dari GPSR-SR dan forwarding data dari
protokol GPSR baru dijalankan pada detik ke-1. Pada detik ke-0 sampai detik ke-1, kedua protokol hanya menjalankan proses pencarian neighbor node. Mulai detik ke-1, protokol GPSR-SR melakukan pencarian rute dengan mengirimkan paket RREQ, sedangkan protokol GPSR melakukan forwarding data menuju node tujuan.
Gambar 4-24 Cuplikan trace file protokol GPSR
Gambar 4-25 Cuplikan trace file protokol GPSR-SR
45 4.3
Implementasi Simulasi pada NS-2 Implementasi simulasi pada NS-2 dilakukan dengan cara pendeskripsian lingkungan simulasi pada sebual file dengan ekstensi Tcl. File-file ini berisi konfigurasi setiap node dan proses yang dilakukan selama simulasi berjalan. Pada awal instalasi dan proses patching protokol GPSR, di dalam direktori ns-2.35/gpsr terdapat file wireless-gpsr.tcl, cbr100.tcl, gpsr.tcl dan grid-deploy10x10.tcl. Penulis menggunakan struktur dari file-file ini dengan membuat file baru dan memodifikasinya sesuai dengan lingkungan pada Tugas Akhir ini. File-file .tcl yang digunakan bisa dilihat pada lampiran 6, lampiran 7 dan lampiran 8. 4.4 Implementasi Metrik Analisis Simulasi yang dijalankan menggunakan NS-2 menghasilkan file keluaran tracefile yang berisikan data selama simulasi. Dari data tracefile, penulis melakukan analisa pada packet delivery ratio (PDR), routing overhead dan end to end delay. 4.4.1
Implementasi Packet Delivery Ratio (PDR) Packet delivery ratio didapatkan dengan membandingkan pengiriman dan penerimaan data yang dikirim oleh agen. Pada Tugas Akhir ini, penulis menggunakan agen CBR. Implementasi kode PDR bisa dilihat pada lampiran 9. Pada kode tersebut mengambil baris yang memiliki tulisan AGT. Cara menjalankan skrip AWK untuk menganalisa PDR yaitu: awk -f pdr.awk trace.tr Gambar 4-24 Perintah untuk mendapatkan PDR Implementasi Routing Overhead Routing Overhead (RO) didapatkan dengan cara menyaring setiap baris yang memiliki kata REQUEST, REPLY, dan ERROR. Kode implementasi routing overhead dapat dilihat pada lampiran 4.4.2
10. Cara menjalankan skrip AWK untuk menganalisa routing overhead yaitu: awk -f overhead.awk trace.tr Gambar 4-25 Perintah mendapatkan routing overhead 4.4.3
Implementasi End to End Delay Delay dari setiap paket dihitung dengan cara mengurangi waktu penerimaan dengan waktu pengiriman berdasarkan ID paket. Hasil pengurangan waktu dari masing-masing paket dijumlahkan dan dibagi dengan jumlah paket CBR yang ID-nya terlibat dalam perhitungan pengurangan waktu. Kode implementasi end to end delay bisa dilihat pada lampiran 11. Contoh perintah untuk menjalankan skrip AWK end to end delay sebagai berikut: awk -f e2e-delay.awk trace.tr Gambar 4-26 Perintah untuk mendapatkan end to end delay
BAB 5BAB V HASIL UJI COBA DAN EVALUASI Pada bab ini, dibahas uji coba dan evaluasi skenario yang telah disimulasikan di NS-2. 5.1
Lingkungan Uji Coba Uji coba dilakukan pada perangkat dengan spesifikasi sebagai berikut: Tabel 5-1 Spesifikasi PC yang digunakan untuk uji coba. Komponen Spesifikasi Intel® Core™ i3-3249 CPU @ 3.40 CPU GHz (4 CPUz), ~ 3.4 GHz Ubuntu 14.04 LTS 64-bit Sistem Operasi 4096MB RAM Memori 500 GB HDD Penyimpanan Uji coba dilakukan dengan menjalankan program yang sudah dibuat pada NS-2 tadi. Lalu, file trace file dengan ekstensi .tr dianalisis menggunakan skrip AWK. Parameter – parameter pengujian bisa dilihat pada tabel 5-2. Tabel 5-2 Parameter-parameter dalam Uji Coba No. Parameter Spesifikasi 1
Network Simulator
NS-2 dengan versi ns-2.35
2
Routing Protokol
GPSR, GPSR-SR
3
Area simulasi
Grid : 1000 m x 1000 m Real : 1500 m x 1500 m
4
Banyak kendaraan
30, 50, 70, 90
47
No. Parameter
Spesifikasi
5
Radius transmisi
250 m
6
Kecepatan maksimal 10 m/s, 15 m/s, 20 m/s
7
Agen pengirim
Constant Bit Rate (CBR)
8
Source / Destination
statis
9
Ukuran paket
32 byte
10
Protokol MAC
IEEE 802.11p
11
Propagasi sinyal
Two-ray ground
12
Tipe kanal
Wireless channel
13
Intersection Node
96 node untuk Grid 14 node untuk real
14 5.2
Waktu Simulasi
90 detik
Hasil Uji Coba Hasil uji coba dari skenario grid dan real dapat dilihat sebagai berikut : 5.2.1 Hasil Uji Coba Grid Hasil pengujian data PDR, end to end delay dan routing overhead pada skenario grid dilakukan pada area dengan luas 1000x1000 meter dan node sebanyak 30, 50, 70 dan 90 pada 3 kecepatan berbeda, yaitu pada kecepatan maksimal 10 m/s, 15 m/s, dan 20 m/s. Pada setiap banyak node, uji coba dilakukan pada 10 data, kemudian di rata-rata.
49 5.2.1.1
Hasil PDR pada Skenario Grid
PDR ( % ) 90 Node
98.67
82.47
98.58 97.99 98
70 Node 50 Node
94.58
30 Node
96.73
92.97 80
82
84
86
88
90
persen (%) GPSR-SR
92
94
96
98
100
GPSR
Gambar 5-1 Grafik PDR terhadap node pada skenario grid dengan kecepatan 10 m/s
PDR ( % ) 98.91 98.22 98.57 97.84 97.97
90 Node 70 Node 50 Node 30 Node
95.99 96.35
93.16 80
82
84
86
88
90
persen (%) GPSR-SR
92
94
96
98
100
GPSR
Gambar 5-2 Grafik PDR terhadap node skenario grid pada kecepatan 15 m/s
PDR ( % ) 90 Node 70 Node 50 Node 30 Node
93.73 80
82
84
86
88
90
persen (%) GPSR-SR
92
94
96
98.9 98.32 98.59 97.55 97.99 95.99 96.65 98
100
GPSR
Gambar 5-3 Grafik PDR terhadap node pada skenario grid dengan kecepatan 20 m/s Hasil packet delivery ratio pada skenario grid dengan kecepatan 10 m/s, 15 m/s, dan 20 m/s ditampilkan pada gambar 51, 5-2, dan 5-3. Berdasarkan ketiga gambar tersebut, GPSR-SR memiliki rata-rata PDR lebih tinggi daripada GPSR pada kecepatan 10 m/s, 15 m/s dan 20 m/s, baik itu pada node dengan banyak 30, 50, 70 maupun 90. Banyak node mempengaruhi rata-rata PDR pada kecepatan 10 m/s, 15 m/s dan 20 m/s. Semakin banyak node dalam uji coba, maka semakin tinggi PDR dari GPSR, maupun GPSR-SR. Pada kecepatan 15 m/s dan 20 m/s, protokol GPSR dan GPSR-SR memiliki rata-rata PDR di atas 90 %. Namun, pada kecepatan 10 m/s di node sebanyak 90, protokol GPSR mempunyai PDR 82.47 %. Hal ini dikarenakan ada 5 dari 10 data uji yang mendapatkan hasil PDR dibawah 90 %. Data uji pada node 90 bisa dilihat pada tabel dibawah ini.
51 Tabel 5-3 Data Uji Skenario Grid pada node sebanyak 90 dengan kecepatan 10 m/s. Data uji Ke- PDR GPSR PDR GPSR-SR (%)
(%)
1
65.56
97.78
2
81.61
97.73
3
47.13
98.91
4
61.96
98.9
5
97.73
98.88
6
97.78
98.86
7
78.49
98.84
8
97.8
98.84
9
98.88
98.91
10
97.8
98.9
Pada data uji ke-1, ke-2, ke-3, ke-4 dan ke-7 pada protokol GPSR selama waktu uji coba melakukan drop packet karena tidak mendapatkan rute, sedangkan protokol GPSR-SR memiliki PDR diatas 90 %. Hal ini dikarena fungsi intersection node yang membantu protokol GPSR-SR untuk melakukan routing. Rata-rata PDR berdasarkan gambar 5-1, 5-2, dan 5-3 untuk protokol GPSR adalah 94.9 %, sedangkan protokol GPSR-SR adalah 97.99 %.
5.2.1.2
Hasil Routing Overhead pada Skenario Grid
Routing Overhead (Paket) 108.88
90 Node
175.71
98.43
70 Node
131.26
90.39
50 Node
142.78
82.14
30 Node 80
163.67
90 100 110 120 130 140 150 160 170 180 190 200
( Paket )
GPSR-SR
GPSR
Gambar 5-4 Grafik routing overhead terhadap node skenario grid pada kecepatan 10 m/s
Routing Overhead (paket) 106.14
90 Node
95.58
70 Node
136.37
131.27
91.74
50 Node
143.1
84.24
30 Node 80
156.88
90 100 110 120 130 140 150 160 170 180 190 200
( Paket )
GPSR-SR
GPSR
Gambar 5-5 Grafik routing overhead terhadap node pada skenario grid dengan kecepatan 15 m/s
53
Routing Overhead (paket) 107.01
90 Node
97.76
70 Node
139.42
90.93
50 Node
143.43
84.22
30 Node 80
141.23
143.43
90 100 110 120 130 140 150 160 170 180 190 200
( Paket )
GPSR-SR
GPSR
Gambar 5-6 Grafik routing overhead terhadap node pada kecepatan 20 m/s Pada gambar 5-4, 5-5 dan 5-6 menjabarkan grafik routing overhead protokol GPSR dan GPSR-SR terhadap banyaknya node pada kecepatan 10 m/s, 15 m/s dan 20 m/s. Pada kecepatan 10 m/s dan 15 m/s, protokol GPSR mengalami penurunan routing overhead dari 30 node hingga 70 node, namun pada node sebanyak 90 terjadi kenaikan routing overhead. Pada kecepatan 10 m/s dengan node sebanyak 90 memiliki routing overhead melebihi node sebanyak 30. Sedangkan pada kecepatan 15 m/s, routing overhead 90 node tidak melebihi 50 node. Pada protokol GPSRSR terjadi grafik routing overhead yang semakin naik pada kecepatan 10 m/s, 15 m/s dan 20 m/s. Rata-rata routing overhead berdasarkan gambar 5-4, 5-5, dan 5-6 untuk protokol GPSR adalah 145.71 paket, sedangkan protokol GPSR-SR adalah 94.79 paket.
5.2.1.3
Hasil End to End Delay pada Skenario Grid
End to End Delay (ms) 9.96
90 Node
14.19
10.74
70 Node
13.32
7.59
50 Node
14.42 10.99
30 Node 0
4
8
( ms ) GPSR-SR
15.11
12
16
20
GPSR
Gambar 5-8 Grafik end to end delay terhadap node pada skenario grid dengan kecepatan 10 m/s
End to End Delay (ms) 10.41
90 Node
9.91
70 Node
13.04 13 12.22
50 Node
15.68
11.8
30 Node 0
4
8
( ms ) GPSR-SR
12
18.86 16
20
GPSR
Gambar 5-7 Grafik End to End Delay terhadap node pada skenario grid dengan kecepatan 15 m/s
55
End to End Delay (ms) 8.65
90 Node
15.67 10.35
70 Node
15.35
11.27
50 Node
16.52
12.50
30 Node 0
4
8
( ms )
GPSR-SR
12
16.34 16
20
GPSR
Gambar 5-9 Grafik end to end delay terhadap node pada skenario grid dengan kecepatan 20 m/s Pada gambar 5-7, 5-8, dan 5-9 menjelaskan grafik hubungan antara end to end delay dengan kecepatan 10 m/s, 15 m/s dan 20 m/s pada uji coba node sebanyak 30, 50, 70 dan 90 node. Pada hasil end to end delay dengan kecepatan 10 m/s, protokol GPSR mengalami penurunan end to end delay dari 30 node dengan nilai nilai 18.86 ms sampai 70 node dengan nilai 13, kemudian naik lagi pada 90 node dengan nilai14.19. Sedangkan pada protokol GPSR-SR, end to end delay mengalami penurunan dari 30 node ke 50 node, kemudian naik lagi pada 70 node dan terakhir turun lagi pada 90 node. Pada hasil end to end delay dengan kecepatan 15 m/s, protokol GPSR mengalami penurunan dan peningkatan seperti pada kecepatan 10 m/s. Sedangkan protokol GPSR-SR mengalami hal yang berkebalikan dengan kecepatan 10 m/s. Pada hasil end to end delay dengan kecepatan 20 m/s, protokol GPSR mengalami naik turun, sedangkan protokol GPSRSR mengamali penurunan terus-menerus dari 30 node hingga 90 node. Pada hasil dari ketiga kecepatan 10 m/s, 15 m/s dan 20 m/s, protokol GPSR-SR memberikan hasil yang lebih baik daripada
protokol GPSR. Hal ini dikarenakan pada peta grid, jarak antar intersection node yang berdekatan sama dan cenderung stabil sehingga semakin banyak intersection node yang digunakan oleh protokol GPSR-SR, maka semakin sedikit pula end to end delay dari protokol tersebut. Rata-rata end to end delay berdasarkan gambar 5-7, 5-8, dan 5-9 untuk protokol GPSR adalah 15.125 ms, dan GPSR-SR adalah 10.53 ms. 5.2.2
Hasil Uji Coba Real Hasil pengujian data PDR, end to end delay dan routing overhead pada skenario real dilakukan pada area dengan luas 1500x1500 meter dan node sebanyak 30, 50, 70 dan 90 pada 3 kecepatan berbeda, yaitu pada kecepatan maksimal 10 m/s, 15 m/s, dan 20 m/s. Pada setiap banyak node, uji coba dilakukan pada 10 data, kemudian di rata-rata. 5.2.2.1
Hasil PDR pada Skenario Real
PDR ( % ) 90 Node
89.70
66.02
70 Node
91.86
77.12
50 Node
97.96
84.33
96.51 93.30
30 Node
60
65
70
75
(%)
GPSR-SR
80
85
90
95
100
GPSR
Gambar 5-10 Grafik PDR terhadap node pada skenario real dengan kecepatan 10 m/s
57
PDR ( % ) 90 Node
83.13
62.48
70 Node
84.42
60.43
50 Node
95.09
64.34
30 Node
96.27
74.81 60
65
70
75
(%)
80
GPSR-SR
85
90
95
100
GPSR
Gambar 5-11 Grafik PDR terhadap node skenario real pada kecepatan 15 m/s
PDR ( % ) 90 Node
77.73
49.75
70 Node
93.15
61.15
50 Node
92.80
69.65
30 Node
96.56
75.67 40
50
60
70
(%)
GPSR-SR
80
90
100
GPSR
Gambar 5-12 Grafik PDR terhadap node skenario real pada kecepatan 20 m/s Hasil PDR pada skenario real protokol GPSR dan GPSRSR ditampilkan pada gambar 5-10, 5-11 dan 5-12. Pada gambar 510, protokol GPSR mengalami penurunan PDR dari 93.30 % menjadi 66.02 %. Rata – rata penurunan PDR yaitu 9.09 %.
Sedangkan pada protokol GPSR-SR tidak mengalami penurunan PDR yang signifikan. Pada gambar 5-11, protokol GPSR mengalami rata-rata penurunan PDR 5.48 %. Sedangkan protokol GPSR-SR mengalami rata-rata penurunan PDR sebesar 4.71 %. Rata-rata penurunan PDR protokol GPSR-SR lebih kecil daripada GPSR. Pada gambar 5-12, protokol GPSR mengalami rata-rata penurunan PDR sebesar 8.64 %. Sedangkan protokol GPSR-SR mengalami peningkatan PDR dari 50 node ke 70 node sebesar 0.35%. Pada ketiga gambar tersebut, hasil PDR dari protokol GPSR-SR masih jauh diatas protokol GPSR, baik itu pada 30 node, 50 node, 70 node maupun 90 node. Seiring semakin banyaknya node dalam uji coba, maka PDR semakin berkurang. Rata-rata PDR berdasarkan gambar 5-10, 5-11, dan 5-12 untuk protokol GPSR adalah 69.92 %, sedangkan protokol GPSRSR adalah 91.27 %. 5.2.2.2
Hasil Routing Overhead pada Skenario Real
Routing Overhead (paket) 64.41
90 Node 49.91
70 Node
107.84
70.37
34.98 44.68 25.92 27.05
50 Node 30 Node 10
30
50
70
( paket )
GPSR-SR
90
110
GPSR
Gambar 5-13 Grafik routing overhead terhadap node pada skenario real dengan kecepatan 10 m/s
59
Routing Overhead (paket) 87.26
90 Node
222.39
61.93
70 Node 50 Node
36.14
30 Node
26.04 36.40 10
30
50
129.75
73.77
70
90
110 130 150 170 190 210 230
( paket )
GPSR-SR
GPSR
Gambar 5-14 Grafik routing overhead terhadap node pada skenario real dengan kecepatan 15 m/s
Routing Overhead (paket) 193.30
90 Node 50.83
70 Node 50 Node
39.09
30 Node
25.74 58.27 10
50
90
350.67 239.26
113.55
130
170
210
( paket )
GPSR-SR
250
290
330
370
GPSR
Gambar 5-15 Grafik routing overhead pada skenario real dengan kecepatan 20 m/s Gambar 5-13, 5-14 dan gambar 5-15 menunjukkan hasil routing overhead pada protokol GPSR dan GPSR-SR. Ketiga gambar tersebut memberikan informasi yang sama, dimana semakin banyak node, maka semakin tinggi routing overhead, baik
itu pada kecepatan 10 m/s, 15 m/s dan 20 m/s. Ketiga gambar menunjukkan routing overhead protokol GPSR-SR lebih sedikit daripada protokol GPSR. Pada gambar 5-13, rata-rata kenaikan RO dari GPSR sebesar 26.93, sedangkan GPSR-SR sebesar 12.83. Pada gambar 5-12, rata-rata kenaikan RO pada GPSR yaitu 62, sedangkan GPSR-SR sebesar 20.4. Pada gambar 5-14, rata-rata kenaikan RO dari GPSR sebesar 97.45, sedangkan GPSR-SR yaitu 55.85. Rata-rata routing overhead berdasarkan gambar 5-13, 5-14, dan 5-15 untuk protokol GPSR adalah 122.83 paket, sedangkan protokol GPSR-SR adalah 57.96 paket. 5.2.2.3
Hasil End to End Delay pada Skenario Real
End to End Delay (ms) 90 Node
4.08
70 Node
4.25
50 Node
6.88 5.82
4.53
30 Node
4.96 0
4
6.82 6.76 8
( ms ) GPSR-SR
12
16
20
GPSR
Gambar 5-16 Grafik end to end delay terhadap node pada skenario real dengan kecepatan 10 m/s
61
End to End Delay (ms) 90 Node
4.22
70 Node
4.25
50 Node
4.16
30 Node
5.76 5.72 6.92
4.73 0
4
6.38 8
( ms )
GPSR-SR
12
16
20
GPSR
Gambar 5-17 Grafik end to end delay terhadap node pada skenario real dengan kecepatan 15 m/s
End to End Delay (ms) 90 Node
3.84
70 Node
3.99
50 Node
3.82
30 Node
4.22 0
4
5.92 6.69
6.81 6.75 8
( ms ) GPSR-SR
12
16
20
GPSR
Gambar 5-18 Grafik end to end delay pada skenario real dengan kecepatan 20 m/s
Pada gambar 5-16, 5-17 dan 5-18 menggambarkan end to end delay protokol GPSR dan GPSR-SR. Pada skenario grid, end to end delay protokol GPSR lebih besar daripada protokol GPSRSR. Namun, sebaliknya, pada skenario real,protokol GPSR-SR memiliki end to end delay lebih besar daripada protokol GPSR. Skenario grid merupakan skenario dengan bentuk yang stabil dan teratur, namun skenario real merupakan skenario daerah surabaya yang sesuai dengan keadaan lalu lintas. Oleh karena itu, GPSR-SR yang menggunakan intersection node sebagai bantuan routing tidak selamanya memberikan hasil end to end delay yang bagus karena bisa jadi jarak yang ditempuh lebih jauh daripada menggunakan protokol GPSR. Selain itu, proses route discovery dari GPSR-SR juga berpengaruh dalam meningkatkan end to end delay. Rata-rata end to end delay berdasarkan gambar 5-16, 5-17, dan 5-18 untuk protokol GPSR adalah 4.25 ms, sedangkan protokol GPSR-SR adalah 6.44 ms.
BAB VI KESIMPULAN DAN SARAN Bab ini berisikan kesimpulan yang dapat diambil dari hasil uji coba yang telah dilakukan. Selain kesimpulan, terdapat juga saran yang ditujukan untuk pengembangan perangkat lunak nantinya. 5.3
Kesimpulan 1. Hasil PDR protokol GPSR-SR pada skenario grid maupun skenario real lebih baik daripada protokol GPSR. Pada skenario grid, rata-rata PDR protokol GPSR adalah 94,90 %, sedangkan protokol GPSR-SR adalah 97.99 %. Pada skenario real, rata-rata PDR protokol GPSR adalah 69.92 %, sedangkan protokol GPSR-SR adalah 91.27 %. 2. Hasil routing overhead protokol GPSR-SR pada skenario grid maupun skenario real lebih kecil daripada protokol GPSR. Pada skenario grid, rata-rata routing overhead protokol GPSR adalah 145.71 paket, sedangkan protokol GPSR-SR adalah 94.79 paket. Pada skenario real, rata-rata routing overhead protokol GPSR adalah 122.83 paket, sedangkan protokol GPSR-SR adalah 57.96 paket. 3. Hasil berbeda terjadi pada end to end delay skenario grid dan skenario real. Pada skenario grid, end to end delay protokol GPSR-SR lebih kecil daripada protokol GPSR. Sebaliknya, pada skenario real, protokol GPSR lebih kecil daripada protokol GPSR-SR. Penyebabnya berada pada route discovery protokol GPSR-SR. Jika pada skenario grid memiliki bentuk yang beraturan dan stabil sehingga route discovery lebih cepat, sedangkan pada skenario real, bentuk yang tidak beraturan dan lokasi intersection node yang tidak merata jaraknya membuat end to end delay lebih besar. Pada skenario grid, rata63
rata end to end delay protokol GPSR adalah 15.13 ms, sedangkan protokol GPSR-SR adalah 10.53 ms. Pada skenario real, rata-rata end to end delay protokol GPSR adalah 4.25 ms, sedangkan protokol GPSR-SR adalah 6.43 ms. 4. Implementasi route discovery protokol DSR pada protokol GPSR-SR dapat meningkatkan reliabilitas pengiriman data pada VANET. 5. Intersection node sebagai implementasi node RSU (Road Site Unit) dapat membantu mengoptimalkan pencarian rute pada protokol GPSR-SR sehingga dapat meningkatkan realibitas pengiriman data pada VANET. 5.4 Saran Saran yang dapat diberikan dari hasil uji coba dan evaluasi adalah sebagai berikut: 1. Pengimplementasian GPSR-SR menggunakan node asal dan tujuan yang dinamis. 2. Pengimplementasian source route untuk multicast.
BAB 6DAFTAR PUSTAKA [1] S. Shelly and A. V. Babu, “Link Reliability Based Greedy Perimeter Stateless Routing for Vehicular Ad Hoc Networks,” Int. J. Veh. Technol., vol. 2015, p. 16. [2] S. Zeadally, R. Hunt, Y.-S. Chen, A. Irwin, and A. Hassan, “Vehicular ad hoc networks (VANETS): status, results, and challenges,” Spring Sci. Media LLC 2010. [3] “Media | MRSD Team Daedalus - 2015.” . [4] “#5 – VANET DAN MANET | ariqalabib’s blog.” . [5] S. R.A., “Performance Evaluation of Routing Protocols in Vehicular Ad Hoc Networks,” Int. J. Ad Hoc Ubiquitous Comput. 2005, vol. 1, pp. 80–91. [6] D. B. Johnson, D. A. Maltz, and J. Broch, “DSR: The Dynamic Source Routing Protocol for Multi-Hop Wireless Ad Hoc Networks.” [7] A. Arifin, “Analisis Performansi Routing AODV pada Jaringan VANet,” Emitter, vol. 2, pp. 65–75, 2011. [8] N. Tsurayya Silmi, “Implementasi Movement Vector dalam Pemilihan Forwarding Node Protokol GPSR pada VANET.” . [9] “Sumo.” [Online]. Available: http://sumo.dlr.de/wiki/Simulation_of_Urban_MObility__Wiki. [Accessed: 25-Dec-2016]. [10] “NETGENERATE - Sumo.” [Online]. Available: http://sumo.dlr.de/wiki/NETGENERATE. [Accessed: 25Dec-2016]. [11] “NETCONVERT - Sumo.” [Online]. Available: http://sumo.dlr.de/wiki/NETCONVERT. [Accessed: 25-Dec2016]. [12] “Tools/Trip - Sumo.” [Online]. Available: http://sumo.dlr.de/wiki/Tools/Trip. [Accessed: 25-Dec-2016]. [13] “Tentang OpenStreetMap (OSM) | OpenStreetMap Indonesia.” .
65
( Halaman ini sengaja dikosongkan )
BAB 7LAMPIRAN Lampiran 1 File requesttable.cc #include "gpsr_packet.h" #include "requesttable.h" RequestTable::RequestTable(){ requestlist_ = new request_entry[128]; len = 0; } int RequestTable::find(nsaddr_t id) { for(int i = 0; i < len; i++) { if(requestlist_[i].id_ == id) { return i; } } return len; } int RequestTable::get(nsaddr_t id) { int existing_entry = find(id); if(existing_entry >= len) { return 0; } return requestlist_[existing_entry].req_num; }
67
void RequestTable::insert(nsaddr_t id, int req_num) { int existing_entry = find(id); if(existing_entry < len) { requestlist_[existing_entry].req_num = req_num; return; } requestlist_[len].id_ = id; requestlist_[len].req_num = req_num; len++; }
69 Lampiran 2 Kode Implementasi fungsi Recv() void GPSRAgent::recv(Packet *p, Handler *h){ struct hdr_cmn *cmh = HDR_CMN(p); struct hdr_ip *iph = HDR_IP(p); struct dsr_data *gdsr = DSR_DATA(p); // Cek apakah valid atau tidak Gdsr data if( gdsr->valid_ != 1) { if(iph->saddr() == my_id_) { if(valid_SR == 1) { if(myroute[0] != iph->saddr() && myroute[route_len] != iph->daddr()) { valid_SR = 0; } } // Belum punya route, maka buat RREQ if(valid_SR == 0) { // DSR_DATA HEader valid gdsr->valid_ = 1; //RREQ gdsr->req_valid_ = 1; gdsr->req_id_ = route_request_num++; gdsr->req_ttl_ = MAX_SR_LEN; //Type gdsr->type_ = GPSRTYPE_ROUTE; // INFO Path gdsr->len_ = 0; gdsr->cur_index_ = 0; gdsr->mypath_[gdsr->len_] = my_id_; gdsr->len_++; // HEADER cmh->next_hop_ = IP_BROADCAST; cmh->last_hop_ = my_id_; cmh->addr_type_ = NS_AF_INET; cmh->ptype() = PT_GPSR; cmh->size() = IP_HDR_LEN + gdsr->size();
cmh->direction() = hdr_cmn::DOWN; iph->daddr() iph->saddr() iph->dport() iph->sport()
= iph->daddr(); = my_id_; = RT_PORT; = RT_PORT;
cmh->num_forwards() = 0; } // Forward data. else { if(iph->saddr() == my_id_){//a packet generated by myself if(cmh->num_forwards() == 0){ struct hdr_gpsr_data *gdh = HDR_GPSR_DATA(p); cmh->size() += IP_HDR_LEN + gdh->size() + gdsr->size(); // gdsr data gdsr->valid_ = 0; gdsr->len_ = route_len; gdsr->cur_index_ = 1; for(int i = 0; i <= route_len; i++) { gdsr->mypath_[i] = myroute[i]; } // gdh data gdh->type_ = GPSRTYPE_DATA; gdh->mode_ = GPSR_MODE_GF; gdh->sx_ = (float)my_x_; gdh->sy_ = (float)my_y_; gdh->ts_ = (float)GPSR_CURRENT; MobileNode *destination = (MobileNode *) (Node::get_node_by_address(gdsr->mypath_[gdsr->cur_index_])); gdh->dx_ = (float)destination->X(); gdh->dy_ = (float)destination->Y(); }
71
else if(cmh->num_forwards() > 0){ //routing loop if(cmh->ptype() != PT_GPSR) drop(p, DROP_RTR_ROUTE_LOOP); else Packet::free(p); return; } } } } } else if(gdsr->valid_ == 1) { // Jika destination if(iph->daddr() == my_id_) { // iF RREP dest if(gdsr->rep_valid_) { // Jika kita sudah mendapatkan SR yang pertama datang, // maka RREP selanjutnya diabaikan. if(valid_SR == 1) { goto done; } // Masukkan path yang pertama kali sampai ke myroute untuk digunakan selanjutnya. int count = 0; for(int i = gdsr->len_; i >= 0 ; i--) { MobileNode *mytemp = (MobileNode *) (Node::get_node_by_address(gdsr->mypath_[i])); if( i == 0 || i == gdsr->len_) { myroute[count++] = gdsr->mypath_[i]; }
// Static node else if(mytemp->Z() < 0) { myroute[count++] = gdsr->mypath_[i]; } } route_len = count - 1; valid_SR = 1; goto done; } // if RREQ dest else if(gdsr->req_valid_) { gdsr->mypath_[gdsr->len_] = my_id_; newRREP(p); goto done; } } // jika bukan destination else { // RREP if(gdsr->rep_valid_ == 1) { cmh->num_forwards() += 1; cmh->addr_type() = NS_AF_INET; cmh->last_hop_ = my_id_; cmh->next_hop_ = gdsr->mypath_[gdsr->cur_index_++]; cmh->direction() = hdr_cmn::DOWN; } // RREQ else if(gdsr->req_valid_ == 1) { gdsr->req_ttl_--; cmh->num_forwards()++; if( ignoreRREQ(p) ) { Packet::free(p); goto done; }
73
// Masukkan node ke SR gdsr->mypath_[gdsr->len_++] = my_id_; request_->insert(iph->saddr(), gdsr->req_id_ ); cmh->direction() = hdr_cmn::DOWN; cmh->addr_type() = NS_AF_INET; cmh->last_hop_ = my_id_; cmh->next_hop_ = IP_BROADCAST; } } } if(cmh->ptype() == PT_GPSR){ struct hdr_gpsr *gh = HDR_GPSR(p); switch(gh->type_){ case GPSRTYPE_HELLO: recvHello(p); break; case GPSRTYPE_QUERY: recvQuery(p); break; case GPSRTYPE_ROUTE: send(p,0); break; default: printf("Error with gf packet type.\n"); exit(1); } } else { iph->ttl_--; if(iph->ttl_ == 0){ drop(p, DROP_RTR_TTL); return; } forwardData(p); } done: p = 0; return; }
Lampiran 3 Kode Implementasi ignoreRREQ() bool GPSRAgent::ignoreRREQ(Packet *p) { struct hdr_ip *iph = HDR_IP(p); struct dsr_data *gdsr = DSR_DATA(p); if(request_->get(iph->saddr()) >= gdsr->req_id_) { return true; } if(gdsr->req_ttl_ == 0 ) { return true; } if(gdsr->len_ >= MAX_SR_LEN) { return true; } if(iph->saddr() == my_id_) { return true; } for(int i =0; i < gdsr->len_ ; i++) { if(gdsr->mypath_[i] == my_id_) { return true; } } return false; }
75 Lampiran 4 Kode Implementasi newRREP() void GPSRAgent::newRREP(Packet* p) { //struct hdr_cmn *cmh = HDR_CMN(p); struct hdr_ip *iph = HDR_IP(p); struct dsr_data *gdsr = DSR_DATA(p); // New Packet Packet *rrep = allocpkt(); struct hdr_cmn *cmhn = HDR_CMN(rrep); struct hdr_ip *iphn = HDR_IP(rrep); struct dsr_data *gdsrn = DSR_DATA(rrep); iphn->daddr() = iph->saddr(); iphn->dport() = RT_PORT; iphn->saddr() = my_id_; iphn->sport() = RT_PORT; iphn->ttl() = 255; // DSR_DATA HEader valid gdsrn->valid_ = 1; // RREP gdsrn->rep_valid_ = 1; gdsrn->rep_id_ = gdsr->req_id_; //Type gdsrn->type_ = GPSRTYPE_ROUTE; // INFO Path gdsrn->len_ = gdsr->len_; gdsr->cur_index_ = 0; int count = 0; for(int i = gdsrn->len_; i>= 0; i--) { // Copy Old to New (Reverse) gdsrn->mypath_[count++] = gdsr->mypath_[i]; }
// HEADER cmhn->next_hop_ = gdsrn->mypath_[++gdsrn->cur_index_]; cmhn->last_hop_ = my_id_; cmhn->addr_type_ = NS_AF_INET; cmhn->ptype() = PT_GPSR; cmhn->size() = IP_HDR_LEN + gdsrn->size(); cmhn->direction() = hdr_cmn::DOWN; Scheduler::instance().schedule(this, rrep, RREQ_JITTER); }
77 Lampiran 5 Kode implementasi forwardData() void GPSRAgent::forwardData(Packet *p){ struct hdr_cmn *cmh = HDR_CMN(p); struct hdr_ip *iph = HDR_IP(p); if(cmh->direction() == hdr_cmn::UP && ((nsaddr_t)iph->daddr() == IP_BROADCAST || iph->daddr() == my_id_)){ printf("receive\n"); port_dmux_->recv(p, 0); return; } else { struct hdr_gpsr_data *gdh = HDR_GPSR_DATA(p); struct dsr_data *gdsr = DSR_DATA(p); if(my_id_ == gdsr->mypath_[gdsr->cur_index_]) { gdsr->cur_index_++; MobileNode *thisnode = (MobileNode *) (Node::get_node_by_address(my_id_)); MobileNode *destination = (MobileNode *) (Node::get_node_by_address(gdsr->mypath_[gdsr->cur_index_])); gdh->sx_ = (float)thisnode->X(); gdh->sy_ = (float)thisnode->Y(); gdh->dx_ = (float)destination->X(); gdh->dy_ = (float)destination->Y(); } double dx = gdh->dx_; double dy = gdh->dy_; nsaddr_t nexthop;
// Greedy Forwarding if(gdh->mode_ == GPSR_MODE_GF){ nexthop = nblist_->gf_nexthop(dx, dy); if(nexthop == -1){ nexthop = nblist_->peri_nexthop(planar_type_, -1, gdh->sx_, gdh->sy_, gdh->dx_, gdh->dy_); gdh->sx_ = my_x_; gdh->sy_ = my_y_; gdh->mode_ = GPSR_MODE_PERI; } } // PERIMETER Forwarding else { double sddis = nblist_->getdis(gdh->sx_, gdh->sy_, gdh->dx_, gdh->dy_); double mydis = nblist_->getdis(my_x_, my_y_, gdh->dx_, gdh->dy_); if(mydis < sddis){ //switch back to greedy forwarding mode nexthop = nblist_->gf_nexthop(dx, dy); gdh->mode_ = GPSR_MODE_GF; if(nexthop == -1){ nexthop = nblist_->peri_nexthop(planar_type_, -1, gdh->sx_, gdh->sy_, gdh->dx_, gdh->dy_); gdh->sx_ = my_x_; gdh->sy_ = my_y_; gdh->mode_ = GPSR_MODE_PERI; } } else{ //still perimeter routing mode nexthop = nblist_->peri_nexthop(planar_type_, cmh->last_hop_, gdh>sx_, gdh->sy_, gdh->dx_, gdh->dy_); } } cmh->direction() = hdr_cmn::DOWN; cmh->addr_type() = NS_AF_INET; cmh->last_hop_ = my_id_; cmh->next_hop_ = nexthop; send(p, 0); } }
79 Lampiran 6 Kode implementasi wireless-gpsr.tcl set opt(chan) set opt(prop) set opt(netif) set opt(mac) set opt(ifq) set opt(ll) set opt(ant) set opt(x) set opt(y) set opt(cp) set opt(sc)
Channel/WirelessChannel Propagation/TwoRayGround Phy/WirelessPhy Mac/802_11 Queue/DropTail/PriQueue; LL Antenna/OmniAntenna 1000; 1000; "./traffic1.tcl"; "./TA/50/50node.tcl";
set opt(ifqlen) 512 ; set opt(nn) 102 ; set opt(seed) 0.0 ; set opt(stop) 70.0; set opt(tr) "./TA/50/hasil/60_to_81.tr" ; set opt(nam) "./TA/50/hasil/60_to_81.nam"; set opt(rp) GPSR; set opt(lm) "off"; # Agent/GPSR setting Agent/GPSR set planar_type_ 1 ;#1=GG planarize, 0=RNG planarize Agent/GPSR set hello_period_ 2.0 ;#Hello message period proc usage { argv0 } { puts "Usage: $argv0" puts "\tmandatory arguments:" puts "\t\t\[-x MAXX\] \[-y MAXY\]" puts "\toptional arguments:" puts "\t\t\[-cp conn pattern\] \[-sc scenario\] \[-nn nodes\]" puts "\t\t\[-seed seed\] \[-stop sec\] \[-tr tracefile\]\n" }
proc getopt {argc argv} { global opt lappend optlist cp nn seed sc stop tr x y for {set i 0} {$i < $argc} {incr i} { set arg [lindex $argv $i] if {[string range $arg 0 0] != "-"} continue set name [string range $arg 1 end] set opt($name) [lindex $argv [expr $i+1]] } } proc log-movement {} { global logtimer ns_ ns set ns $ns_ source ../tcl/mobility/timer.tcl Class LogTimer -superclass Timer LogTimer instproc timeout {} { global opt node_; for {set i 0} {$i < $opt(nn)} {incr i} { $node_($i) log-movement } $self sched 0.1 } set logtimer [new LogTimer] $logtimer sched 0.1 } source ../tcl/lib/ns-bsnode.tcl source ../tcl/mobility/com.tcl getopt $argc $argv if { $opt(x) == 0 || $opt(y) == 0 } { usage $argv0 exit 1 }
81
f {$opt(seed) > 0} { puts "Seeding Random number generator with $opt(seed)\n" ns-random $opt(seed) } set ns_ [new Simulator] set chan [new $opt(chan)] set prop [new $opt(prop)] set topo [new Topography] set tracefd [open $opt(tr) w] $ns_ trace-all $tracefd set namfile [open $opt(nam) w] $ns_ namtrace-all $namfile $topo load_flatgrid $opt(x) $opt(y) $prop topography $topo set god_ [create-god $opt(nn)] $ns_ node-config -adhocRouting gpsr \ -llType $opt(ll) \ -macType $opt(mac) \ -ifqType $opt(ifq) \ -ifqLen $opt(ifqlen) \ -antType $opt(ant) \ -propType $opt(prop) \ -phyType $opt(netif) \ -channelType $opt(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace ON source ./gpsr.tcl
for {set i 0} {$i < $opt(nn) } {incr i} { gpsr-create-mobile-node $i } if { $opt(cp) == "" } { puts "*** NOTE: no connection pattern specified." set opt(cp) "none" } else { puts "Loading connection pattern..." source $opt(cp) } for {set i 0} {$i < $opt(nn) } {incr i} { $ns_ at $opt(stop).000000001 "$node_($i) reset"; } $ns_ at $opt(stop).00000001 "puts \"NS EXITING...\" ; $ns_ halt"
if { $opt(sc) == "" } { puts "*** NOTE: no scenario file specified." set opt(sc) "none" } else { puts "Loading scenario file..." source $opt(sc) puts "Load complete..." }
83 Lampiran 7 Kode implementasi gpsr.tcl puts "GPSR configuration file" proc create-gpsr-routing-agent { node id } { global ns_ ragent_ tracefd opt set ragent_($id) [new Agent/GPSR] set ragent $ragent_($id) set addr [$node node-addr] $ragent addr $addr $ragent node $node if [Simulator set mobile_ip_] { $ragent port-dmux [$node set dmux_] } $node addr $addr $node set ragent_ $ragent set T [new Trace/Generic] $T target [$ns_ set nullAgent_] $T attach $tracefd $T set src_ $id $ragent tracetarget $T $node attach $ragent [Node set rtagent_port_] } proc gpsr-create-mobile-node { id args } { global ns ns_ chan prop topo tracefd opt node_ set ns_ [Simulator instance] set node_($id) [new Node/MobileNode] set node $node_($id) $node random-motion 0 motion $node topography $topo
;# disable random
if [info exists opt(energy)] { $node addenergymodel [new $opt(energy) $node 1000 0.5 0.2] } set T [new Trace/Generic] $T target [$ns_ set nullAgent_] $T attach $tracefd $T set src_ $id $node log-target $T if ![info exist inerrProc_] { set inerrProc_ "" } if ![info exist outerrProc_] { set outerrProc_ "" } if ![info exist FECProc_] { set FECProc_ "" } $node add-interface $chan $prop $opt(ll) $opt(mac) \ $opt(ifq) $opt(ifqlen) $opt(netif) $opt(ant) \ $topo $inerrProc_ $outerrProc_ $FECProc_ create-gpsr-routing-agent $node $id $ns_ at 0.0 "$node_($id) start" return $node }
85 Lampiran 8 Kode Implementasi traffic1.tcl for {set i 0} {$i < $opt(nn)} {incr i} { $ns_ at 0.00002 "$ragent_($i) turnon" $ns_ at 3.0 "$ragent_($i) neighborlist" # $ns_ at 30.0 "$ragent_($i) turnoff" } #$ns_ at 3.0 "$ragent_(1) startSink 10.0" #$ns_ at 3.5 "$ragent_(61) startSink 10.0" set udp_(0) [new Agent/UDP] $ns_ attach-agent $node_(60) $udp_(0) set null_(0) [new Agent/Null] $ns_ attach-agent $node_(81) $null_(0) set cbr_(0) [new Application/Traffic/CBR] $cbr_(0) set packetSize_ 32 $cbr_(0) set interval_ 1 $cbr_(0) set random_ 1 #$cbr_(0) set maxpkts_ 10000 $cbr_(0) attach-agent $udp_(0) $ns_ connect $udp_(0) $null_(0) $ns_ at 1 "$cbr_(0) start" $ns_ at $opt(stop) "$cbr_(0) stop" # #Total sources/connections: 1/1 #
Lampiran 9 Kode implementasi pdr.awk BEGIN { sendLine = 0; recvLine = 0; fowardLine = 0; } $0 ~/^s.* AGT/ { sendLine ++ ; } $0 ~/^r.* AGT/ { recvLine ++ ; } $0 ~/^f.* RTR/ { fowardLine ++ ; } END { printf "Ratio:%.4f\n", (recvLine/sendLine)*100; }
87 Lampiran 10 Kode implementasi overhead.awk BEGIN{ recvs = 0; routing_packets = 0; } { if (( $1 == "r") && ( $7 == "cbr" ) && ( $19=="4" )) recvs++; if (($1 == "s" || $1 == "r") && $4 == "RTR" && $7 =="GPSR") routing_packets++; } END{ #printf("\nrouting packets %d", routing_packets); #printf("\ndata = %d", recvs); printf("%.3f\n", routing_packets/recvs); }
Lampiran 11 Kode implementasi end to end delay BEGIN { seqno = -1; # droppedPackets = 0; # receivedPackets = 0; count = 0; } { if($4 == "AGT" && $1 == "s" && seqno < $6) { seqno = $6; } if($4 == "AGT" && $1 == "s") { start_time[$6] = $2; } else if(($7 == "cbr") && ($1 == "r")) { end_time[$6] = $2; } else if($1 == "D" && $7 == "cbr") { end_time[$6] = -1; } } END { for(i=0; i<=seqno; i++) { if(end_time[i] > 0) { delay[i] = end_time[i] - start_time[i]; count++; } else { delay[i] = -1; } } for(i=0; i<=seqno; i++) { if(delay[i] > 0) { n_to_n_delay = n_to_n_delay + delay[i]; } } n_to_n_delay = n_to_n_delay/count; print n_to_n_delay * 1000 ; }
BIODATA PENULIS Randy Bastian lahir di Blora, 17 Agustus 1995 yang merupakan anak ke-2 dari 3 bersaudara dari pasangan Slamet Syamsudiman dan Rakhmawati Agustina. Pendidikan akademik penulis mulai dari SDN Ngelo 2 Cepu (2000 2005), SDN Balun 1 Cepu (2005 - 2006), SMPN 3 Cepu (2006 - 2009), SMAN 1 Cepu (2009 - 2012). Penulis memiliki hobi bermain game online, sepak bola, futsal, volly, dan membaca, baik itu membaca buku maupun membaca komik / manga. Penulis dapat dihubungi melalui e-mail
[email protected].
89