Protokol Babel Analisis Perbandingan Protokol Better Approach To Mobile Ad Hoc Network (BATMAN) Dengan Protokol Babel Untuk Layanan Voice Over Internet Protocol (VOIP) Pada Mobile Ad Hoc Network (MANET)

d. Terdapat mekanisme optimizing dari aliran data yang melalui MANET interface alternating, low overhead, forward error correction, dsb. e. Protokol berjalan dengan mengandalkan broadcastmulticast paket melalui node MANET dan non-MANET. B.A.T.M.A.N-adv menggunakan batctl tool untuk melakukan konfigurasi dan debugging terhadap kernel modul B.A.T.M.A.N-adv. Batctl juga dapat digunakan untuk melakukan aktifitas ping, traceroute, dan juga tcpdump pada lapisan dua [12].

2.10.8. Interface Virtual bat0

Masalah yang timbul selanjutnya adalah dimana kebanyakan aplikasi memanfaatkan pengalamatan logika di lapisan 3 network layer yaitu berupa IPv4 untuk melakukan komunikasi dengan aplikasi lain, sementara B.A.T.M.A.N-adv adalah protokol routing yang bekerja pada lapisan 2 data-link layer. Untuk mengatasi hal ini, B.A.T.M.A.N-adv akan membuat sebuah interface virtual yang diberi nama bat0 pada setiap node, dimana fungsi dari interface virtual ini adalah untuk membantu B.A.T.M.A.N-adv memenuhi kebutuhan pengalamatan logika pada lapisan 3, sehingga memungkinkan untuk aplikasi yang bekerja dengan memanfaatkan pengalamatan lapisan 3, misalnya VoIP dapat bekerja dengan baik.

2.11. Protokol Babel

Babel adalah sebuat protokol routing yang berbasis distance vector dan bersifat hybrid. Routing ini diciptakan berdasarkan dari ide protokol Destination-Sequenced Distance Vector DSDV, Ad hoc On Demand Distance Vector AODV, dan protokol routing milik Cisco System, Enhanced Interior Gateway Routing Protocol EIGRP yang bisa bekerja tidak hanya di jaringan berkabel, namun juga nirkabel. Babel pada awalnya dirancang untuk jaringan Ad Hoc nirkabel. Karena itu, Babel sangat tangguh jika dihadapkan dengan masalah mobilitas yang tinggi [5]. Universitas Sumatera Utara

2.11.1. Babel Pada Jaringan Dual-Stack

Tidak seperti protokol routing kebanyakan, yang tidak bisa menggunakan IPv4 dan IPv6 pada waktu yang sama, Babel adalah protokol routing hybrid, yang sebuah paket update tunggalnya dapat membawa rute-rute untuk beberapa protokol network-layer IPv6 IPv4 sekaligus. Ini menjadikan Babel secara khusus dan efisien cocok untuk me-manage jaringan dengan dua pengalamatan logika IPv4 IPv6 [5].

2.11.2. Kekurangan Babel

Babel punya dua keterbatasan yang membuatnya tidak cocok untuk digunakan pada beberapa situasi [3]: a. Babel bergantung pada update-update berkala routing table daripada menggunakan sebuah transport yang handal karena, dalam jaringan stabil yang besar, Babel akan menghasilkan traffic yang lebih banyak dibandingkan protokol-protokol yang hanya mengirim update ketika perubahan topologi jaringan terjadi. b. Babel bergantung pada hold time walaupun ketika sebuah rute dibatalkan. Karenanya, jika sebuah prefix yang sebelumnya terpisah menjadi tergabung, akan menjadi unreacheable untuk beberapa saat. Ini membuat Babel tidak cocok untuk digunakan pada jaringan mobile yang mengimplentasikan prefix aggregation otomatis.

2.11.3. Transmisi Informasi Routing Babel

Paket-paket protokol Babel dikirim di dalam body dari datagram UDP. Babel meletakkan informasi routing ke dalam sebuah Type Length Value TLV. Setiap paket Babel mengandung satu atau lebih TLV. Node Babel meminta sebuah acknowledgement untuk semua paket Babel yang dikirim dengan menambahkan sebuah Acknowledgement Request TLV. Sebuah node Universitas Sumatera Utara Babel secara periodik mem-broadcast pesan Hello ke semua tetangganya, Babel juga secara periodik mengirim sebuah pesan “I Heard You IHU ke seluruh tetangga yang baru diterima pesan Hello-nya. Dari informasi yang berasal dari pesan Hello dan IHU dari tetangganya, sebuah node Babel menghitung cost dari link node ke tetangga [5].

2.11.4. Pemilihan Rute Babel

Pemilihan rute adalah proses dimana sebuah rute tunggal yang terpilih digunakan untuk meneruskan paket-paket dan disebarkan kembali ke node lainnya. Babel didesain untuk melakukan pemilihan rute secara fleksibel. Kriteria pemilihan rute adalah metrik, router-id, tetangga-tetangga dan rute-rute yang stabil. Karena ketelitian protokol diperhatikan, kebijakan pemilihan rute harus, hanya memenuhi sifat-sifat berikut: a. Sebuah rute dengan metrik tidak terbatas rute yang dibatalkan tidak pernah akan dipilih. b. Sebuah rute yang tidak handal memungkinkan routing loop tidak pernah dipilih [5].

2.11.5. Kondisi Kehandalan Babel

Babel menggunakan sebuah kondisi kehandalan yang menjamin ketiadaan dari routing loop, dimana router akan mengabaikan update-update rute yang tidak memenuhi kondisi kehandalan. Rute handal adalah ketika metriknya di local node tidak lebih besar dari metrik dari rute yang saat ini terpilih dan rute tersebut tidak memungkinkan terjadinya routing loop. Kondisi kehandalan yang didefinisikan di atas akan menyebabkan starvation kelaparan ketika sebuah router kehabisan rute-rute yang handal. Babel menghadapi starvation dengan menggunakan rute-rute yang berurutan. Universitas Sumatera Utara Setiap rute mengandung sebuah nomer urut s dan sebuah metrik m untuk sebuah node n. Nomer urut s menentukan keterbaruan dari penyebaran rute dan disebarluaskan tidak berubah melalui jaringan dan hanya bertambah oleh n. Sebagai contoh, jika sebuah node menerima dua penyebaran rute untuk n dari dua tetangga yang berbeda, ia akan memilih rute yang terbaru s [5].

2.11.6. Konvergensi Babel

Untuk mempercepat konvergensi ketika topologi berubah, node Babel meminta sebuah nomor urut yang baru dengan sequence number request TLV ketika diperlukan dan tidak menunggu sampai sebuah nomor urut baru dikirimkan dalam interval periode berikutnya seperti di DSDV. Untuk mencapai konvergen dengan pemilihan rute-rute yang terbaik, Babel akan membutuhkan sedikit waktu sebelum mengoptimasi tabel routing. Adanya packet loss yang banyak, konvergensi pada sebuah kumpulan rute yang optimal mungkin memakan waktu sekitar satu menit dengan interval update default sebesar 20 detik [5].

2.11.7. Format Paket Babel

Paket babel memuat 4 oktet pada header dan diikuti dengan paket TLV yang berada pada body-nya. Jika ada datapaket yang ikut dalam paket header, maka datapaket selebihnya itu akan diabaikan. Secara sederhana paket pada Babel bisa digambarkan seperti pada gambar 2.16 berikut ini: Gambar 2.16 Format Paket Header Babel [3] Universitas Sumatera Utara Keterangan: a. Magic: adalah nilai sementara, yaitu 42 desimal, paket-paket dengan oktet pertama yang berbeda dari 42 akan diabaikan. b. Version: field ini menjelaskan versi dari protokol Babel. Oleh karena versi saat ini adalah 2, maka paket-paket dengan oktet kedua yang berbeda dari 2 akan diabaikan. c. Body length: adalah panjang oktet dari body. d. Packet body: adalah paket TLV.

2.11.8. Format TLV

Seperti yang sudah dijelaskan sebelumnya, bahwa TLV adalah paket yang ikut serta dalam paket header dari Babel. Paket TLV memiliki 10 sub-TLV lagi yang masing- masing memiliki fungsinya masing-masing. Sub-TLV ini ditandai dari field type pada paket TLV. Berikut ini adalah 10 sub-TLV tersebut [3]: a. Type 0 Paket sub TLV pad1. Paket ini akan diabaikan pada saat transmisi. b. Type 1 Paket sub TLV padN. Paket ini akan diabaikan pada saat transmisi. c. Type 2 Paket sub TLV Acknowledgement Request. TLV ini meminta penerima TLV mengirim sebuah TLV Acknowledgement. TLV ini memiliki besaran centisecond yang ditentukan oleh Interval field. d. Type 3 Paket sub TLV Acknowledgement. TLV ini dikirim oleh node yang menerima sebuah Acknowledment Request. e. Type 4 Paket sub TLV Hello. TLV ini digunakan untuk pencarian tetangga dan untuk menentukan cost penerimaan link. f. Type 5 Paket sub TLV IHU. TLV ini digunakan untuk mengkonfirmasi pencapaian dua arah dan membawa sebuah cost transmisi link. Universitas Sumatera Utara g. Type 6 Paket sub TLV Router-Id. Sebuah TLV Router-Id membuat sebuah router-Id yang diberikan oleh bagian TLV Update. h. Type 7 Paket sub TLV Next Hop. TLV ini digunakan untuk membangun sebuah alamat next-hop yang diberikan oleh bagian TLV Update. i. Type 8 Paket sub TLV Update. TLV ini digunakan untuk menyebarkan atau membatalkan sebuah rute. Sebagai optimisasi, ini dapat juga memiliki efek samping dalam membangun sebuah router-id dan sebuah next-hop yang baru. j. Type 9 Paket sub TLV Route Request. TLV ini digunakan untuk meminta penerima mengirimkan update dari prefix yang diberikan atau tabel routing yang ada pada penerima dengan lengkap. k. Type 10 Paket sub TLV Seqno Request. TLV ini digunakan untuk meminta penerima untuk mengirimkan pembaharuan untuk prefix tertentu dengan nomor urut tertentu, atau meminta melakukan forward request jika tidak memuaskan. Secara sederhana format paket TLV yang terdapat pada header paket Babel dapat digambarkan seperti pada gambar 2.17 berikut ini: Gambar 2.17 Format Paket TLV [3] Keterangan: a. Type: adalah field yang menjelaskan tipe dari paket TLV. b. Length: adalah panjang dari body. Jika body lebih panjang dari panjang tipe TLV yang seharusnya, semua sisa data yang lebih akan diabaikan. c. Body: adalah body dari TLV, isinya tergantung dari tipe TLV. Universitas Sumatera Utara BAB 3 ANALISIS DAN PERANCANGAN Pada bab ini penulis memaparkan analisis permasalahan yang diangkat yang disajikan dengan diagram dan flowchart serta dipaparkan juga perancangan sistem yang akan dibangun, baik yang berupa perangkat keras ataupun perangkat lunak, lokasi pengujian, cara melakukan pengujian dan bentuk topologi.

3.1. Analisis