Bufferbloat adalah latensi tambahan yang disebabkan oleh kelebihan antrian pada router yang menahan lalu lintas dan tidak bisa segera di teruskan. Akibatnya, akan terjadi penambahan latensi.
Masalah bufferbloat ini seringnya terjadi di sisi konsumen karena biasanya terdapat beberapa macam koneksi seperti VoIP, Game, Video, dll. Dengan kebutuhan yang bervariasi tersebut, maka administrator jaringan perlu untuk melakukan konfigurasi manajemen bandwidth yang lebih spesifik lagi.
RouterOS versi 7 menawarkan beberapa fitur menarik baru yang dibutuhkan oleh praktisi jaringan. Salah satu fitur baru yang muncul adalah tipe Queue Cake, Codel dan FQ_Codel. Perlu diketahui, pada routerOS versi sebelumnya (v6) sudah terdapat beberapa tipe queue seperti RED, SFQ, PCQ, FIFO. Penjelasan type queue ini sudah bisa anda lihat pada video berikut ini: Queue.
Lalu, apa perbedaan ketiga tipe queue baru tersebut? Dan apa saja efeknya jika diterapkan di jaringan? Apakah bisa mengatasi permasalahan bufferbloat? Yuk kita bahas satu persatu penjelasannya pada artikel kali ini.
CoDel
Untuk mengurangi masalah bufferbloat pada jaringan, maka salah satu opsi yang bisa kita gunakan adalah menggunakan queue tipe CoDel. CoDel atau Controlled Delay menerapkan algoritma Active Queue Management (AQM). AQM berfungsi untuk melakukan drop paket yang berada di dalam buffer sebelum penuh, maka hasil yang didapat adalah nilai latensi akan menjadi lebih baik. Dengan begitu maka Codel akan menahan latensi antrian dengan tetap memaksimalkan throughput.
Berikut contoh konfigurasinya:
FQ-CoDel
FQ_CoDel (Fair Queuing Controlled Delay) merupakan queue yang menggabungkan Fair Queueing dengan skema CoDel AQM. FQ_CoDel menggunakan model yang ditentukan secara acak, untuk mengklasifikasikan paket yang masuk ke dalam aliran yang berbeda. Hal ini bertujuan untuk memberikan pembagian bandwidth yang adil ke semua flow yang menggunakan antrian. Setiap flow akan dikelola menggunakan CoDel Queueing Discipline (menggunakan algoritma FIFO). FQ_Codel memungkinkan untuk mengurangi bottleneck delay dengan beberapa urutan besarnya paket dan memberikan perkiraan RTT yang akurat untuk flow TCP berukuran besar, sementara memungkinkan flow yang lebih pendek (lebih jarang) seperti akses paket prioritas DNS, ARP, SYN, routing, dll.
Berikut contoh konfigurasinya:
CAKE
CAKE atau Common Applications Kept Enhanced merupakan sistem manajemen queue yang komprehensif, mengimplementasikan queue discipline (qdisc) pada kernel Linux. Cake dirancang untuk menggantikan dan meningkatkan hierarki kompleks qdisc sederhana yang saat ini diperlukan dan tentunya untuk mengatasi masalah bufferbloat secara efektif di jaringan. Cake menggunakan Cobalt (algoritma AQM digabungkan dengan Codel and BLUE) dan varian DRR++ untuk isolasi flow. Pada dasarnya, tujuan diciptakannya CAKE adalah kesederhanaan dan ramah pengguna. Ini bisa dicapai dengan mengintegrasikan banyak fungsi ke dalam satu qdisc, diantaranya :
Berbagi informasi antar komponen fungsional, meningkatkan kinerja latensi.
Menghilangkan overhead pengiriman pesan (meningkatkan kinerja throughput), dan antrian yang tidak terkelola di antara qdisc.
Konfigurasi yang sangat disederhanakan untuk kasus penggunaan umum, dibandingkan dengan membangun fungsionalitas yang setara menggunakan qdiscs yang ada
Pada Cake, terdapat beberapa fungsi layer yang digunakan seperti shaper, priority queue, Flow isolation, AQM dan juga Packet management.
Implementasi Cake pada mikrotik bisa mulai diterapkan pada routeros versi 7. Parameter pada Cake bersifat opsional. Bahkan anda bisa menggunakan pengaturan default agar praktis di lapangan. Dalam beberapa kasus, anda hanya perlu konfigurasi parameter "bandwidth" untuk mendapatkan hasil yang maksimal.
Berikut contoh konfigurasinya:
Saat menggunakan Cake, banyak parameter yang bisa diterapkan seperti besarnya RTT (Round trip time), Memory Limit, ATM, bahkan Flow mode. Dengan menggunakan Cake, maka limitasi bandwidth yang presisi berdasarkan rate-based bandwidth shaper. Bahkan terdapat skema prioritas Differentiated Services (DiffServ) dengan pembatasan flow traffic prioritas tinggi. CAKE menggunakan deficit-mode shaper, yang mengakibatkan burst yang muncul tidak sama seperti token-bucket shapers pada umumnya. Cake akan secara otomatis burst sebanyak yang diperlukan untuk mempertahankan throughput yang dikonfigurasi.
Sedangkan codel dan fq_codel tidak memiliki banyak konfigurasi yang bisa diterapkan. Karena pada dasarnya, akan memperlakukan antrian baik dan antrian buruk secara berbeda. Yang tujuan utamanya adalah menjaga agar delay tetap rendah. Karena hanya menjaga delay, maka tidak akan memperhatikan RTT (round trip time) dan juga beban traffic.
Pengujian
Untuk melakukan pengujian bufferbloat, langkah sederhana yang bisa di lakukan adalah melakukan ping ke internet, misal ping ke google.com, kemudian perhatikan waktu/time pada setiap ping, apakah lebih dari 100ms atau tidak.
kemudian lakukan percobaan melakukan speedtest ke internet, misal menggunakan aplikasi fast.com atau speedtest.net.
Perhatikan waktu ping ketika melakukan speedtest. Apakah ping akan meningkat seiring meningkatnya bandwidth yang di lewatkan atau tidak. Jika ping meningkat maka itu tandanya di router terdapat bloated.
Langkah pengujian lain yang bisa di lakukan adalah dengan menggunakan aplikasi penyedia layanan Bufferbloat Test, seperti Waveform. Contoh implementasinya nanti kita bisa buka website Waveform kemudian amati waktu setiap ping, dan bandwidth yang didapat.
Berikut hasil pengujian yang sudah kami lakukan menggunakan Waveform Bufferbloat Test.
Hasil Pengujian
Queue Type Default SmallQueue Type CodelQeueu Typle FQ-CodelQueue Type CAKE
Bagaimana? Tertarik mencoba ketiga queue baru ini dan efeknya seperti apa dijaringan?