BAB II LANDASAN TEORI 2.1. Protokol Jaringan Menurut Mulyanta (2005, p. 5), “Apabila dua buah sistem saling berkomunikasi, hal yang pertama dibutuhkan adalah kesamaan bahasa yang digunakan, sehingga dapat memahami alur proses komunikasi”. Untuk itu, dibutuhkan sebuah mekanisme pengaturan bahasa yang dapat dipahami oleh dua buah sistem tersebut sehingga pertukaran informasi antarsistem akan terjadi dengan benar. Sekumpulan aturan untuk mengatur proses komunikasi ini disebut sebagai protokol komunikasi data. Protokol ini diimplementasikan dalam bentuk program komputer (software) yang terdapat pada komputer dan peralatan komunikasi data lainnya. Untuk itu, badan dunia yang menangani masalah standarisasi IOS (International Organization for Standarization) membuat aturan baku yang dikenal dengan nama model referensi OSI (Open System Inerconnection). 2.1.1. OSI Reference Model Badan dunia yang menangani masalah standarisasi IOS (International Organization for Standardization) membuat aturan baku yang dikenal dengan nama model referensi OSI (Open System Interconnection). Model OSI terdiri dari tujuh layer, yaitu physical layer, data link layer, network layer, transport layer, session layer, presentation layer, dan application layer. Dalam model OSI, peranan layering serta proses pertukaran data dalam sistem yang berlainan akan melalui sebuah hierarki atau tingkat protokol komunikasi. Ketujuh layer dari model referensi OSI dapat dibagai dua kategori utama, yaitu layer atas dan layer bawah (Mulyanta, 2005). Layer atas pada model OSI berkaitan dengan aplikasi dan implementasi secara umum sebuah software dengan layer tertinggi, yaitu layer application merupakan layer yang paling dekat dengan pengguna. Layer di bawahnya berhubungan dengan penanganan transpotasi data. Physical layer dan data link layer diimplementasikan dalam hardware dan II-1 II-2 software sedangkan layer yang lain secara umum diimplementasikan hanya dalam lingkungan software. Layer yang paling dekat dengan media jaringan adalah physical layer. Pembagian kategori pada model refersi OSI ditunjukkan pada gambar 2.1. Application Application Presentation Session Transport Transport Network Data Link Physical Gambar 2.1. Pembagian Kategori OSI Reference Model Begitu rumitnya pertukaran data antarjaringan, sehingga desain jaringan komputer harus disederhanakan dalam bentuk bagian-bagian tersendiri dalam lapisan-lapisan layer yang mempunyai fungsi dan desain yang berbeda-beda. Setiap layer akan memberikan informasi untuk dapat diterapkan dan dipahami oleh layer di atasnya. Pertukaran paket antarsistem jaringan akan diperantarai oleh sebuh bahasa komunikasi atau disebut protokol. Protokol tersebut berfungsi antara lain untuk, menentukan jenis konektor, pengalamatan titik-titik komunikasi, identifikasi interface, aturan-aturannya, pengaturan aliran data, menjaga ketersediaan data, laporan kesalahan, sinkronisasi, dan lain-lain. Pada praktiknya terdapat beberapa fungsi yang terangkum dalam kumpulan fungsi prokocol, dimana setiap protokol menangani satu aspek saja dalam proses komunikasi. II-3 Gambar 2.2. Diagram Fungsional Protokol Pada OSI reference model, layer bawah didesain untuk berurusan dengan ketersediaan atau memfasilitasi komunikasi dengan user. Layer ini menyembunyikan detail kerumitan fungsi pertukaran data secara fisik. Layer di atasnya (middleware) bertanggung jawab terhadap konversi data pada apa yang disebut program aplikasi atau software. Secara fungsional terdapat layer yang bertugas mengatur transportasi data. Layer ini bertanggung jawab terhadap koneksi antar layer di atas (application oriented) dan layer bawah (network oriented). Diagram fungsional protokol dapat dilihat pada gambar 2.2. II-4 Berikut penjelasan dari ketujuh layer pada OSI reference model : Tabel 2.1. OSI Reference Model Layer Application Presentation Session Transport Network Data Link Physical Keterangan Membuka komunikasi dengan user lain dan memberikan layanan seperti file transfer ataupun e-mail ke user lain dalam jaringan. Layer ini berfungsi menentukan format data yang akan dipindahkan antar aplikasi dan menyediakan layanan berupa transformasi format data, enkripsi, dan kompresi. Menentukan format data yang dipindahkan di antara aplikasi dan mengelola informasi yang disediakan oleh Application layer supaya informasi yang dikirim dapat dibaca oleh Application layer pada system lain. Layer ini juga menentukan syntax yang digunakan antar aplikasi Lapisan ini bertanggung jawab atas sesi komunikasi antara berbagai tingkat yang lebih tinggi dalam komunikasi program, proses, dan user. Berfungsi sebagai pemecah informasi menjadi paket-paket data yang akan dikirim dan menyusun kembali paket-paket data menjadi sebuah informasi yang dapat diterima. Dua protokol umum pada lapisan ini adalah TCP yang berorientasi koneksi dan UDP yang tidak berorientasi koneksi. Layer ini bertanggung jawab dalam routing paket data dari node sumber ke node tujuan. Selain itu, layer ini juga bertanggung jawab dalam pengalamatan node, sehingga AODV dan DYMO berada pada layer ini. Mengubah paket-paket data dalam bentuk frame, menghasilkan alamat fisik, pesan-pesan kesalahan, pemesanan pengiriman data. Layer ini juga mengupayakan agar physical layer dapat bekerja dengan baik dengan menyediakan layanan untuk mengaktifkan, mempertahankan, dan menonaktifkan hubungan. Mentransmisikan data dalam bentuk bit antar devices melalui jalur komunikasi dengan cara mengatur karakteristik tinggi tegangan, periode perubahan tegangan, lebar jalur tegangan, jarak maksimuk komunikasi dan koneksi. II-5 2.1.2. TCP/IP (Transmission Control Protocol / Internet Protocol) Menurut Purbo (1999, p. 22), TCP/IP adalah sekumpulan protokol yang didesain untuk melakukan fungsi-fungsi komunikasi data pada Wide Area Network (WAN). Pada TCP/IP protokol yang satu tidak perlu mengetahui cara kerja protokol yang lain, sepanjang ia masih bisa saling mengirim dan menerima data, sehingga TCP/IP menjadi protokol komunikasi data yang fleksibel. TCP/IP Stack Gambar 2.3. Layer TCP/IP Pada gambar 2.3. dijelaskan bahwa TCP/IP terdiri dari empat lapisan kumpulan beritingkat. Keempat lapisan tersebut adalah : 1. Network Interface Layer 2. Internet Layer 3. Transport Layer 4. Application Layer Pada TCP/IP setiap protokol membutuhkan informasi dari protokol lain. Jika suatu protokol menerima data dari protokol lain di layer atasnya, ia akan menambahkan informasi tambahan miliknya ke data tersebut setelah itu data diteruskan ke layer di bawahnya dan sebaliknya, jika suatu protokol menerima data dari protokol lain yang di bawahnya, jika dianggap valid protokol tersebut II-6 akan melepas informasi tambahan tersebut untuk kemudian meneruskan data itu ke protokol lain yang berada di atasnya (Purbo, 1999). Gambar 2.4. Pergerakan Data Dalam Layer TCP/IP Berikut ini tabel penjelasan tentang fungsi dan tugas-tugas keempat layer protokol pada TCP/IP : Tabel 2.2. Layer pada TCP/IP Layer Application Layer Keterangan Layer ini menangani representasi, encoding, serta control dialog. Pada layer ini terletak semua aplikasi yang menggunakan protokol TCP/IP. Transport Layer Berisi protokol yang bertanggung jawab untuk mengadakan komunikasi antara dua host/komputer. Kedua protokol tersebut adalah TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). Internet Protokol Layer ini bertanggung jawab dalam proses pengiriman paket ke alamat yang tetap. Pada layer ini terdapat tiga macam protokol, yaitu IP, ARP, dan ICMP. Network Interface Bertanggung jawab mengirim dan menerima data ke dan Layer dari media fisik berupa kabel, serat optik, atau gelombang radio, sehingga protokol pada layer ini harus mampu menerjemahkan sinyal listrik menjadi data digital yang dimengerti komputer yang berasal dari peralatan lain yang sejenis. II-7 2.1.3. Perbadingan Umum Model OSI dengan TCP/IP Secara umum perbedaan antara model OSI dan model TCP/IP sebagai berikut: 1. Pada model OSI pengimplementasiannya menekankan pada penyediaan layanan transfer data yang reliable, sementara TCP/IP memperlakukan reliability sebagai masalah end-to-end. 2. Setiap layer pada model OSI mendeteksi dan menangani kesalahan pada semua data yang dikirim. Pada model OSI layer transport memeriksa reliability di source-to-destination. 3. Pada TCP/IP, kontrol reliability dikonsentrasikan pada Layer Transport. Layer Transport menangani semua kesalahan yang terdeteksi dan memulihkannya. Layer ini juga menggunakan checksum, acknowledgement, dan timeout untuk mengontrol transmisi dan menyediakan verifikasi end-toend. 2.2. Ad Hoc Network Secara umum pengertian dari jaringan ad hoc adalah kumpulan dari beberapa sistem dimana sistem yang satu dapat berkomunikasi dengan yang lain tanpa penghubung (wireless). Pada jaringan ini tidak dibutuhkan alat tambahan seperti router dan access point untuk menghubungkan host dalam jaringan. Host sendiri bertindak sebagai router, sehingga jaringan ad hoc membutuhkan protokol routing karena pengiriman paket untuk mencapai tujuan kemungkinan akan melewati beberapa node. Pada jaringan ad hoc, routing protocol bekerja di layer network pada model OSI yang bekerja untuk menginformasikan topologi dan jalur yang akan dilalui. Pada jaringan ad hoc terdapat tiga jenis routing protocol, yaitu proactive routing protocol, reactive routing protocol, dan hybrid routing protocol yang merupakan gabungan dari proacktive dan reactive routing protocol. Menurut Mohapatra (2005, p. 4), ad hoc networks memiliki delapan karakter, yaitu : 1. Mobility Pada jaringan ad hoc, node ataupun user dapat berpindah sewaktu-waktu selama masih dalam jangkauan area. II-8 2. Multihopping Jaringan multihopping adalah jaringan dimana jalur dari node asal ke node tujuan melewati beberapa node. Jaringan ad hoc sering menunjukkan multihop untuk negosiasi kendala, penggunaan kembali spektrum, dan konservasi energi. 3. Self-organization Jaringan ad hoc harus menentukan sendiri konfigurasi parameternya sendiri yang terdiri dari pengalamatan, pemilihan jalur, pengelompokan, pengidentifikasian posisi, mengotrol energi, dan lain-lain. 4. Energy conservation Hampir semua node ad hoc memiliki power supply yang terbatas dan biasanya node tidak memiliki kemempuan untuk menciptakan energinnya sendiri, sehingga desain energy efficient protocol adalah masalah penting untuk menjadikan node dapat bertahan lama. 5. Scalability Pada beberapa aplikasi jaringan ad hoc dapat berkembang menjadi beribu node. Untuk jaringan infrastruktur wireless skalabilitas dapat ditangani dengan konstruksi hierarki. Jaringan infrastruktur mobilitas yang terbatas juga dapat ditangani dengan mudah dengan menggunakan mobile IP atau dengan teknik local hadoff. Sebaliknya, karena mobilitas yang luas dan kurangnya referensi tetap, jaringan murni ad hoc tidak mentolerir IP mobile atau struktur hierarki yang tetap. Dengan demikian, mobilitas yang berskala besar adalah salah satu masalah dalam desain jaringan ad hoc. 6. Security Tantangan dari keamanan wireless adalah kemampuan penyusup untuk menguping dan melakukan spoof terhadap saluran. Banyak pekerjaan dilakukan dalam jaringan infrastruktur wireless. Bagaimanapun, jaringan ad hoc relatif rentan terhadap serangan infrastruktur. Pada jaringan ad hoc terdapat dua jenis serangan, yaitu serangan aktif dan serangan pasif. Pada serangan aktif, penyerang cenderung mengganggu operasi seperti melakukan penyadapan simpul kontrol dan paket data. jenis serangan ini sangat sulit dideteksi karena kompleksnya infrastruktur jaringan ad hoc. Pada jaringan pasif, penyerang pasif tidak ditemukan oleh jaringan karena bersifat seperti bug. II-9 7. Unmanned, autonomous vehicles Beberapa aplikasi jaringan ad hoc membutuhkan unmanned, sebuah komponen robotik. Semua node dalam jaringan generik mampu membuat jaringan sendiri walaupun ketika bergerak. 8. Connection to internet. Kebanyakan implementasi dari jaringan adhoc dilakukan pada Wireless Sensor Networks (WSN) yang bekerja sebagai pendeteksi terhadap sebuah keadaan, seperti suhu, getaran, suara, dan lain-lain. Sistem tersebut bekerja dengan mengirimkan setiap hasil yang dideteksi oleh sensor kepada sebuah node yang dijadikan sebagai server yang kemudian dikelola oleh user. Azwar & Harpawi (2012) melakukan implementasi jaringan adhoc pada WSN yang bekerja sebagai pendeteksi suhu dengan memanfaatkan router wireless yang ditanamkan pada sensor tersebut. Kemudian dilakukan konfigurasi routing protocol jenis OLSR pada router wireless tersebut sebagai sistem untuk berkomunikasi dengan sensor yang lain. 2.2.1. Flood Flooding (network-wide broadcast) adalah cara yang paling mudah untuk menyampaikan data dari sebuah node ke node yang lain di dalam jaringan. Pada flooding, node sumber hanya mengirimkan paket data ke node tetangganya melalui mekanisme broadcast lapisan MAC. Setiap node menerima broadcast dan kemudian melakukan broadcast kembali hingga setiap node menerima data broadcast dengan persyaratan setiap node menerima broadcast hanya sekali. Teknik flooding ini sangat diperlukan pada jaringan ad hoc. Dengan adanya teknik flooding, informasi tentang topologi tidak diperlukan lagi untuk dipertahankan karena sifat topologi yang berubah-ubah. Pada skenario jaringan dimana mobilitas node sangat tinggi diberi unicast routing protocol dapat gagal untuk bersaing dengan laju perubahan topologi dan flooding adalah satu-satunya alternatif untuk routing data yang layak. 2.2.2. Proactive Routing Protocol II-10 Routing protocol jenis ini berkerja dengan mempertahankan rute unicast diantara sepasang node terlepas dari apakah semua rute digunakan. Oleh karena itu, ketika sebuah node ingin mengirim paket data ke node lain sumber lalu lintas sudah menyediakan rute tanpa harus mencari jalur yang akan dilalui terlebih dahulu. Pada routing protocol jenis ini setiap node pada jaringan memiliki satu atau lebih tabel routing yang berisi informasi rute terbaru untuk menuju node lain. Pada jaringan yang sangat dinamis, proactive routing protocol memerlukan sumber daya yang besar untuk mendapat informasi terbaru yang dapat diandalkan. Contoh proactive routing protocol adalah OLSR (Optimized Link State Routing Protocol) dan DSDV (Destination Sequence Distance Vector). 2.2.3. Reactive Routing Protocol Berbada dengan proactive routing protocol, reactive routing protocol bekerja ketika dibutuhkan. Ketika node ingin mengirimkan paket data ke node lain, reactive routing protocol bekerja mencari dan menetapkan jalur yang tepat dengan koneksi stabil dengan cara awalnya node asal melakukan broadcast request sampai request tersebut sampai ke node tujuan, kemudian node tujuan membalas dengan mengirimkan reply. Dari proses inilah ditentukan mana jalur yang akan digunakan untuk mengirimkan data. Keuntungan dari menggunakan routing protocol ini adalah penggunaan sumber daya yang hemat karena sumber daya tidak dibutuhkan untuk menyimpan informasi tentang rute ke node yang lain. Disamping memiliki kelebihan, recative routing protocol juga memiliki kekurangan, yaitu paket data yang akan dikirim memiliki delay yang cukup lama dalam antrian node asal menunggu protokol menemukan jalur yang akan dilewati. Beberapa jenis reactive routing protocol adalah AODV (Ad-Hoc On-Demand Distance Routing), DSR (Dynamic Source Routing), DYMO (Dynamic Manet On-demand), dan lain-lain. 2.2.4. Faktor-Faktor yang Mempengaruhi Performa Routing Protocol Berikut ini beberapa faktor-faktor secar umum yang mempengaruhi performa routing protocol : II-11 1. Throughput Throughput merupakan nilai rata-rata pada pengiriman data yang sukses melalui sebuah komunikasi antarsistem. Data ini dapat dikirim melalui sebuah link physical maupun logical, atau melalui sebuah node tertentu. Biasanya throughput diukur dalam satuan bit/detik (bit/s). semakin tinggi nilai throughput maka semakin baik performa jaringan tersebut. 2. Packet Loss Packet loss terjadi ketika satu paket data atau lebih yang melintas pada sebuah jaringan gagal mencapai tujuan. Menurut Faishal (2013, p. II-9), “packet loss dibedakan sebagai salah satu dari tiga tipe error yang dihadapi dalam komunikasi digital, dua yang lain adalah bit error dan paket yang bersifat seperti tiruan oleh karena noise”. 3. End to end Delay End to end delay merupakan waktu rata-rata yang ditempuh paket data untuk mencapai tujuan termasuk didalamnya semua kemungkinan delay yang dikarenakan buffering selama penemuan rute latency, dan antrian di interface queue (Rohal, 2013). 2.3. AODV (Ad-hoc On-Demand Distance Vector) AODV merupakan salah satu jenis reactive routing yang dirancang khusus untuk jaringan mobile ad hoc. AODV routing protocol menawarkan adaptasi cepat untuk kondisi dinamyc link, pemrosesan yang rendah dan overhead memori, pemanfaatan jaringan rendah, dan menentukan unicast rute ke tujuan dalam jaringan ad hoc (Perkins, Belding-Royer, & Das, 2013). Selama koneksi rute pengirim ke penerima telah valid, AODV tidak melakukan pencarian lagi dan akan memelihara rute ini selama mereka dibutuhkan. Dalam proses penentuan jalur, AODV membutuhkan pesan-pesan RREQ (Route Request), RREP (Route Reply), dan RERR (Route Error). 2.3.1. Path Discovery Path discovery adalah proses yang diawali ketika sebuah sumber node perlu berkomunikasi dengan node yang lain dimana tidak terdapat informasi routing di dalam tabel. Setiap node menjaga dua counter terpisah yaitu, nomor urut node dan II-12 broadcast_id. Sumber node mengawali penentuan rute dengan cara melakukan broadcast request route (RREQ) ke node tetangganya. RREQ berisi informasi <source_addr, source_sequence_#, broadcast_id, dest_addr, dest_sequence_#, hop_cnt> Pasangan <source_addr, broadcast_id> secara khusus mengidentifikasi suatu RREQ. Broadcast_id ditambahkan ketika sumber mengeluarkan RREQ yang baru. Setiap tetangga yang mendapat RREQ membalas dengan mengirim RREP ke node sumber atau melakukan broadcast RREQ kepada tetangganya sendiri setelah meningkatkan hop_cnt. Jika suatu node sudah menerima suatu RREQ dengan broadcast_id dan source_addr yang sama, maka RREQ yang berlebihan akan dibuang dan tidak akan di-broadcast ulang. Jika node tidak dapat membalas RREQ, node akan menyimpan track informasi untuk mengimplementasikan setup path yang sebaliknya maupun setup path seterusnya yang akan menemani transmisi dari RREP akhir, yaitu: - IP address tujuan - IP address sumber - Broadcast_id - Waktu berakhirnya entri rute path sebaliknya - Nomor urut source node b a Gambar 2.5. (a) Reverse Path Formation dan (b) Forward Path Formation II-13 2.3.2. Reverse Path Setup Ada dua jumlah sekuens yang terdapat dalam sebuah RREQ : nomor urut node sumber dan nomor urut tujuan akhir yang diketahui sumber. Nomor urut sumber digunakan untuk menjaga kesegaran informasi tentang reverse route ke sumber dan nomor urut destinasi menspesifikasi seberapa segar seharusnya sebuah rute ke tujuan sebelum diterima oleh sumber. Karena RREQ berjalan melewati sebuah sumber ke beberapa tujuan secata otomatis men-setup reverse path dari semua node kembali ke sumber seperti yang diilustrasikan pada gambar 2.5.(a). Untuk setup reverse path sebuah node merekam alamat node tetangga yang pertama kali menerima salinan RREQ. Entri route reverse path ini dijaga selama waktu yang dibutuhkan oleh RREQ untuk melintasi jaringan dan menghasilkan suatu jawaban kepada pengirim (Perkins & Royer). 2.3.3. Forward Path Setup Pada akhirnya sebuah RREQ akan sampai pada sebuah node yang memproses rute ke tujuan. Node yang diterima pertama kali memeriksa apakah RREQ diterima melewati sebuah link bi-directional. Jika sebuah node memiliki entri rute untuk tujuan yang diharapkan, node akan menentukan apakah rute tersebut aktif dengan membandingkan nomor urut destinasi pada entri rutenya sendiri dengan nomor urut destinasi pada RREQ. Jika nomor urut RREQ untuk tujuan lebih besar dari yang direkam oleh intermediate node, maka intermediate node tidak bisa menggunakan rute yang direkamnya untuk merespon RREQ tetapi intermediate node mem-broadcast ulang RREQ. Intermediate node dapat membalas hanya ketika dia memiliki rute dengan nomor urut yang lebih besar dari atau sama dengan yang terdapat pada RREQ. Jika terdapat rute yang masih aktif ke tujuan dan jika RREQ belum pernah diproses sebelumnya, node kemudian melakukan unicast rute RREP kembali kepada tetangga yang menerima RREQ. RREP terdiri dari informasi berikut : <source_addr, dest_addr, dest_sequence_#, hop_cnt, lifetime> Seiring dengan waktu paket broadcast tiba di node yang dapat menyediakan rute ke tujuan, sebuah reverse path telah ditetapkan pada sumber RREQ. Selama RREP berjalan ke sumber, setiap node di sepanjang path mengatur pointer II-14 forward ke node dari tempat RREP datang, memperbaharui informasi timeout untuk entri rute ke sumber dan tujuan, dan merekam destinasi sequnce number yang terakhir untuk tujuan yang diminta. Gambar 2.5.(b) menunjukkan setup forward path dimana RREP berjalan dari destinasi D ke sumber node S. Node yang tidak berada disepanjang path yang ditentukan oleh RREP akan mengalami timeout setelah ACTIVE_ROUTE_TIMEOUT (3000ms) dan akan menghapus reverse pointer. Sebuah node yang menerima RREP menyebarkan RREP pertama ke sumber node yang diberikan terhadap sumber tersebut. Jika node menerima RREP yang lain lagi, node memperbaharui informasi rutenya dan menyebarkan RREP hanya jika RREP berisi nomor urut destinasi yang lebih besar dari RREP sebelumnya, atau nomor urut destinasi yang sama dengan hopcount yang lebih kecil. Ini menekan semua RREP lain yang diterima. Hal ini menurunkan jumlah RREP yang menyebar ke sumber dan memastikan informasi rute yang paling up to date dan yang paling cepat. Sumber node dapat memulai transmisi data segera setelah RREP pertama diterima, dan nantinya dapat memperbaharui informasi routing jika node mempelajari rute yang lebih baik. 2.3.4. Route Table Management Selain sequnce number sumber dan tujuan, informasi lain yang berguna juga disimpan di entri tabel routing dan disebut dengan soft-state yang terkait dengan antri. Bagian yang terkait dengan entri routing reverse path adalah timer, yang disebut route request expiration timer. Tujuan dari timer ini adalah untuk membersihkan entri routing reverse path dari node-node yang tidak terletak pada jalur dari sumber ke tujuan. Expiration timer bergantung pada ukuran jaringan ad hoc. Parameter penting lain yang berkaitan dengan entri routing adalah route caching timeout, atau waktu setelah rute diangga valid. Di dalam entri tabel routing, alamat node tetangga yang aktif dimana paket untuk tujuan diterima juga akan dipertahankan. Sebuah node tetangga dianggap aktif jika node tersebut menyambungkan setidaknya sebuah paket untuk tujuan dalam periode waktu aktif terbaru. Informasi ini dipertahankan sehingga semua node sumber dapat diberi tahu ketika link disepanjang jalur ke tujuan mengalami II-15 break. Sebuah entri rute dianggap aktif jika entri dalam penggunaan node tetangga. Jalur antara node sumber ke node tujuan yang disertai dengan paket di sepanjang entri rute yang aktif disebut jalur yang aktif (active path). Sebuah node mempertahankan entri tabel rute untuk setiap tujuan yang penting. Setiap entri tebel rute berisi informasi sebagai berikut : - Tujuan (destination) - Next hop - Jumlah hop - Nomor urut destinasi - Active neighbour untuk rute ini. - Batas waktu entri tabel rute Setiap kali entri rute digunakan untuk mengirimkan data dari sumber menuju node tujuan, timeout entri diatur ulang menjadi waktu saat proses tersebut ditambah dengan active_route_timeout. Jika sebuah rute baru ditawarkan kepada sebuah node, node tersebut akan membandingkan nomor urut destinasi yang baru dengan yang lama. Rute dengan nomor urut yang lebih besar akan digunakan. Jika nomor urut bernilai sama, rute yang baru akan dipilih hanya jika memiliki hop yang lebih sedikit. Berikut ini algoritma routing protocol AODV. STRUCT : RREQ (source_add, source_seq, broadcast_id, dest_id, dest_seq, hop_cnt) STRUCT : RREP (source_add, dest_add, dest_seq, hop_cnt, lifetime) STRUCT : RRER (dest_add, dest_seq, hop_cnt) INT : broadcast_idRecv ← 0 INT : source_add INT : source_seq ← 0 INT : broadcast_id ← 0 INT : hop_cnt ← 0 INT : node DOUBLE : lifetime IF node = sent source_add ← node set (dest_add) broadcast_id ← broadcast_id + 1 forward (RREQ) END IF II-16 WHILE broadcast_idRecv ˂ ˃ broadcast_id IF node ˂ ˃ dest_add set (source_seq ← source_seq + 1 hop_cnt ← hop_cnt + 1 ) forward (RREQ) ELSE IF broadcast_idRecv ← broadcast_id END WHILE IF node = dest_add set (lifetime) forward (RREP) → source_seq ENDIF IF !recv (RREP) forward (RERR) → source_seq END IF 2.4. DYMO (Dynamic Manet On-demand) DYMO (Dynamic Manet On-demand) routing protocol juga merupakan sebuah routing protocol yang bersifat reactive yang bekerja ketika dibutuhkan. DYMO dibangun berdasarkan pengalaman dan pendekatan dari reactive routing protocol sebelumnya, terutama dengan routing protocol AODV. Ini ditujukan untuk desain yang sederhana, membantu mengurangi kebutuhan sistem untuk node yang berpartisipasi, dan menyederhanakan implementasi protokol. DYMO tidak menambahkan fitur tambahan atau memperpanjang protokol AODV, melainkan menyederhanakannya tetapi tetap mempertahankan mode dasar operasi. Seperti hal dengan reactive routing protocol yang lain, DYMO terdiri dari dua operasi protokol, yaitu penemuan rute dan pemeliharaan rute. Rute ditemukan ketika sebuah node ingin mengirimkan data ke tujuan yang tidak terdapat pada tabel routing. Sebuah pesan request akan dibanjiri di dalam jaringan dengan menggunakan broadcast. Jika paket mencapai tujuan, maka pesan balasan akan dikirim kembali berisi pesan discovered, dan akumulasi jalur. Setiap entri tabel rute berisi informasi sebagai berikut : - Destination address II-17 - Nomor urut - Hop count - Next hop address - Next hop interface - Gateway - Prefix - Valid timeout - Delete timeout 2.4.1. Route Discovery Ketika sebuah node ingin mengirimkan data ke node tujuan, maka node tersebut akan menginisiasikan sebuah pesan RREQ. Gambar 2.6. Proses Penemuan Jalur pada Routing DYMO II-18 Proses penemuan jalur pada DYMO routing protocol diilustrasikan pada gambar 2.6. pada gambar diinisialisasikan node 2 sebagai pengirim dan node 9 sebagai target tujuan. Hal yang pertama yang dilakukan pengirim adalah menginisiasikan pesan request (RREQ). Di dalam pesan RREQ node 2 mengikut sertakan alamat dan nomor urut dirinya sendiri sebelum ditambahkan pesan request. Jumlah hop juga ditambahkan dengan menginisiasikan hop bernilai 1 kemudian menambahkan informasi tentang node target yaitu node 9. Hal yang paling penting adalah informasi tentang target. Jika sipengirim sudah mengetahui nomor urut target dan jumlah hop maka akan ditambahkan ke dalam pesan. Pesan RREQ kemudian dibanjirkan ke dalam jaringan dengan menggunakan broadcast. Setiap node yang meneruskan pesan RREQ akan menambahkan informasi tentang dirinya, baik alamat, nomor urut, prefix, dan informasi gateway ke dalam pesan RREQ. Selama terjadi pengiriman pesan RREQ, node sumber menunggu pesan balasan (RREP). Jika selama dalam waktu RREQ WAIT TIME tidak ada pesan RREP yang diterima, maka node sumber akan mencoba melakukan broadcast pesan RREQ lagi. Pada gambar 2.6 node 4 dan 6 menambahkan informasi tentang diri mereka sendiri ke dalam pesan RREQ sebelum meneruskannya kembali. Ketika sebuah node menerima pesan RREQ, node tersebut memproses pesan RREQ kemudian membalas pesan tersebut dengan RREP yang berisi informasi tentang target tujuan, yang pada gambar 2.6. node 9 adalah target. Informasi RREP tersebut berisi tentang alamat tujuan, nomor urut, prefix, dan gateway. Kemudian RREP dikirim kembali melalui jalur sebaliknya dengan menggunakan unicast. Karena balasan dikrim melalui jalur sebaliknya, DYMO tidak mendukung link asimetris. 2.4.2. Route Maintenance Pemeliharaan jalur (route maintenance) adalah proses respon terhadap perubahan topologi yang terjadi setelah inisialisasi rute telah dibuat. Untuk menjada jalur, node-node terus-menerus memonitor dan memperbaharui timeout yang valid pada entri tabel routing ketika menerima dan mengirimkan paket data. Jika node menerima paket data untuk tujuan, dan node tersebut tidak memilki rute II-19 untuk tujuan maka node tersebut akan merespon dengan pesan Router Error (RERR). Ketika membuat pesan RERR, node membuat list yang berisi alamat dan nomor urut node yang unreachable. Selain itu, node menambahkan semua entri di tabel routing yang tergantung pada tujuan unreachable sebagai entri hop berikutnya. Tujuannya adalah untuk memberi tahu tentang tambahan jalur yang tidak tersedia. Ketika node menerima pesan RERR, node tersebut membandingkan list node yang ada dalam pesan RERR untuk menyesuaikan entri dalam tabel routing-nya. Jika entri tabe rute untuk node dari RERR ada, dikatakan batal jika hop node berikutnya sama dengan node RERR yang diterima dari dan nomor urut masuk lebih besar dari atau sama dengan nomor urut yang ditemukan pada pesan RERR. Jika entri tabel tidak valid, entri yang sesui dalam daftar node unreachable dari RERR harus dihilangkan. Jika tidak ada entri yang tinggal, node tidak menyebarkan RERR ini lebih lanjut (Bisoyi & Sahu, 2010). Berikut ini algoritma routing protocol DYMO STRUCT : RREQ (source_add, target_node, hop_cnt, forward_src) STRUCT : RREP (source_add, target_node, hop_cnt, forward_src, forward_target) STRUCT : RRER (forward_src, source_add, hop_cnt) INT : source_add INT : forward_src INT : hop_cnt ← 1 INT : target_node INT : forward_target INT : node DOUBLE : sent_time DOUBLE : WAIT_TIME ← sent_time + 3 DOUBLE : current_time IF node = sent sent_time ← current_time DO source_add ← node set (target_node) forward (RREQ) WHILE (WAIT_TIME – current_time) <= 0 END IF IF receive(RREQ) IF node ˂ ˃ target_node II-20 set ( source_add forward_src ← node hop_cnt ← hop_cnt + 1 target_node ) forward (RREQ) END IF END IF IF receive(RREP) END IF IF node = target_node TEMP_src ← source_add TEMP_forward ← forward_src source_add ← target_node forward_src ← source_add target_node ← TEMP_src forward_target ← TEMP_forward hop_cnt ← 1 set RREP (source_add, target_node,hop_cnt, forwad_src) forward (RREP) → forward_target ENDIF IF !recv (RREP) forward (RERR) → forward_src END IF 2.5. NS2 (Network Simulator) Network simulator merupakan alat simulasi jaringan yang bersifat open source yang banyak digunakan untuk mempelajari struktur dinamik dari jaringan komunikasi. NS2 pertama kali dibangun sebagai varian dan real network simulator pada tahun 1989 di University of California Barkeley. Sejak tahun 1995 Defense Advanced Research Project Agency (DARPA) mendukung pembangunan NS untuk proyek Virtual InterNetwork Testbed (VINT) dan sekarang National Science Foundation (NSF) bergabung untuk pengembangannya (Issariyakul & Hossain, 2009, p. 34). 2.5.1. Arsitektur Dasar NS2 NS2 terdiri dari dua bahasa pemrograman, yaitu C++ dan Object-oriented Tool Command Language (OTcl). Ketika C++ mendefenisikan mekanisme internal dari objek simulasi, OTcl menyiapkan simulasi dengan merakit dan II-21 mengkonfigurasi objek serta penjadwalan event. C++ dan OTcl dihubungkan satu dengan yang lain dengan menggunakan TclTL. Di dalam NS2 C++ menyimpan semua fungsi untuk pengelolaan sedangkan OTcl bertindak sebagai bagian depan yang berinteraksi langsung dengan user dan objek OTcl yang lain. Gambar 2.7. Arsitektur Dasar NS2 Beberapa tool yang mendukung kinerja dari NS2 adalah dilengkapi denga NAM yang menciptakan animasi dalam simulasi dan Xgraph untuk menampilkan grafik dari hasil pengolahan data yang dilakukan. Berikut ini beberapa keuntungan penggunaan NS2 sebagai simulator jaringan: 1. Mudah digunakan 2. Didukung bahasa pemrograman C++ yang mudah untuk dipahami oleh pengguna 3. Didukung protokol TCP/IP pada lapisan OSI yang berbeda. 4. Representasi dukungan grafis. Didukung representasi grafis berupa Nam visual yang menunjukkan desain topologi jaringan simulasi sebagai output dan juga menampilkan komunikasi antar node mewakili pertukaran paket antar node dan juga didukung xgraph yang digunakan untuk menampilkan hasil simulasi dalam bentuk grafik. NS2 secara luas digunakan untuk penelitian tetapi memiliki beberapa keterbatasan. Menggunakan jejak dan monitor untuk pengumpulan data. Memantau hanya memberikan tampilan informasi perilaku antrian di jaringan II-22 sedangkan Trace memberikan informasi log dari antrian paket, forwarding, dan lain-lain. NS2 tidak mendukung keterlambatan pemrosesan namun dukungan yang berbeda seperti penundaan, propagasi, dan antrian. Tetapi traNSmisi ini memiliki fungsi terbatas bila skenario jaringan besar (Faishal, 2013). Berikut ini struktur flow diagram pada NS2 : Gambar 2.8. Flow Diagram NS2