Queue Burst vs Token Bucket
Pada jaman yang sudah modern ini, kebutuhan bandwidth setiap user akan semakin besar. Membuat kita para admin jaringan berfikir keras untuk mengatur bandwidth yang ada secara rasional. Di mikrotik, ada fitur bandwidth management yang bisa berfungsi untuk melimitasi bandwidth setiap usernya. Salah satunya adalah HTB atau Hierarchical Token Bucket yaitu suatu metode membuat antrian yang berfungsi untuk mengontrol traffic yang berbeda.
Dalam artikel kali ini, kita akan membahas fitur dalam queue yaitu Burst dan Token Bucket. Fitur Token Bucket baru bisa digunakan di versi 6.35 keatas. Dalam penerapannya, kedua fitur tersebut bisa digunakan untuk memberikan bandwidth bonus secara sementara ke client. Pada saat tertentu, client bisa mendapatkan bonus melebihi dari bandwitdh yang sudah dialokasikan (max-limit). Hal ini bisa digunakan untuk meningkatkan pelayanan ke client yang jarang melakukan download tetapi sering mengakses website atau email. Untuk membuat kecepatan bandwidth yang adil, bonus bandwidth hanya akan muncul jika rata-rata penggunaan user tidak lebih dari nilai yang ditentukan.
Burst
Dalam konfigurasi burst, ada 3 parameter yang harus disetting yaitu Burst Threshold, Burst Limit dan Burst Time. Ketiga parameter tersebut yang nanti akan menentukan berapa lama client mendapat bonus bandwidth tambahan dan maksimal bandwidth bonus yang diberikan. Cara kerja dari burst yaitu pada saat client download, router akan melakukan perhitungan rata-rata penggunaan user dalam 16 detik terakhir. Jika hasil rata-rata masih kurang dari Burst Threshold maka client mendapatkan bonus sampai Burst Limit. Jika rata-rata sama atau lebih besar dari Burst Threshold maka client tidak boleh burst dan bandwidth akan dilimit sesuai Max Limit.
Rumus perhitungan rata-rata penggunaan Client dari burst adalah (jumlah 16 detik terakhir / burst time) = "Hasil". "Hasil" tersebut yang menjadi acuan apakah lebih besar atau lebih kecil dari Burst Threshold.
Sebagai contoh, client mempunyai max limit 2Mbps dan ditambah dengan konfigurasi burst limit 4Mbps, burst threshold 1M, burst time 32.
Jika dihitung diatas kertas maka akan seperti berikut ini:
- #0 (Client idle) = (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0) / 32 = 0 kbps. Lebih kecil dari burst threshold maka perbolehkan burst sampai burst limit yaitu 4 Mbps.
- #1 (Detik pertama) = (0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4) / 32 = 125 kbps. Lebih kecil dari burst threshold maka user masih diperbolehkan burst.
- #2 (Detik kedua) = (0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4) / 32= 250 kbps. Masih lebih kecil dari burst threshold.
- #3 (Detik ketiga) = (0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4) / 32= 375 kbps. Masih lebih kecil dari burst threshold.
- #8 (Detik delapan) = (0+0+0+0+0+0+0+0+4+4+4+4+4+4+4+4) / 32= 1000 kbps.
Hasilnya sama dengan burst threshold, maka Client hanya akan mendapatkan sesuai max-limit yaitu 2 Mbps. Jika digambarkan menggunakan grafik, maka hasilnya akan seperti ini :
Hasil percobaan burst saat melakukan download client akan mendapatkan Burst limit (4M) selama sekitar 7 detik, lalu akan diturunkan ke Max limit (2M):
Token Bucket
Berbeda dengan Burst, token bucket bisa digambarkan seperti "kelereng" dan "ember". Token (kelereng) menandakan bytes paket dan Bucket (ember) merupakan wadah yang digunakan untuk menampung kelereng tersebut. Banyaknya token ditentukan dari kapasitas bucket dan hal ini menentukan seberapa besar total bandwidth bonus yang bisa diberikan ke Client. Besarnya kapasitas Bucket bisa kita konfigurasi pada setiap rule Queue.
Dalam sebuah rule Queue, perhitungan kapasitas bucket = Bucket-Size x Max-Limit.
Sebagai contoh dengan konfigurasi berikut ini : Max-limit=1M bucket-size=10, maka kapasitas bucket = 1M x 10 = 10M. Berarti total bandwidth bonus yang bisa diberikan ke Client sebesar 10M.
Pada sistem Token Bucket, pemberian bonus ke Client bisa dilakukan dengan beberapa cara. Bisa sekaligus diberikan atau diberikan sedikit demi sedikit, sesuai kebutuhan Client hingga token dalam bucket habis. Semakin besar mengambil token (bonus) semakin cepat pula token habis dan semakin pendek juga waktu Client mendapat bonus.
Misalnya, dengan konfigurasi seberlumnya, jika client membutuhkan bandwidth 2Mbps untuk download, maka perhitungan per detiknya :
- #1 1M + 1M (bonus), sisa token = 9M,
- #2 1M + 1M (bonus), sisa token = 8M,
- #3 1M + 1M (bonus), sisa token = 7M,
- #4 1M + 1M (bonus), sisa token = 6M,
- #5 1M + 1M (bonus), sisa token = 5M,
- #6 1M + 1M (bonus), sisa token = 4M,
- #7 1M + 1M (bonus), sisa token = 3M,
- #8 1M + 1M (bonus), sisa token = 2M,
- #9 1M + 1M (bonus), sisa token = 1M,
- #10 1M + 1M (bonus), sisa token = 0M, maka detik selanjutnya akan diturunkan ke 1M yaitu max limit.
Client bisa burst (bonus bandwidth) sampai 10 detik dengan penggunaan bandwidth 2M. Pada saat token pada bukcet habis, token akan diisi ulang pada saat client menggunakan bandwidth dibawah Max-Limit.
Dengan konfigurasi yang sama, jika client menggunakan bandwidth 6Mbps untuk download, maka perhitungannya:
- #1 = 1M + 5M (bonus), sisa token = 5M
- #2 = 1M + 5M (bonus), sisa token = 0M
Client hanya bisa burst maksimal 2 detik saja karena token sudah habis.
Dengan konfigurasi yang sama, di bawah ini contoh ketika Client mencoba menggunakan bandwidth sebesar mungkin. Terlihat dari grafik, Client menggunakan 8M di detik pertama, lalu 4M di detik kedua selanjutnya diturunkan ke Max-Limit (1M) karena token habis :
Tidak hanya di simple queue, Burst dan Token Bucket juga ada di Queue Tree. Yang bisa anda lihat di parameter berikut ini :
Kesimpulan
Pada dasarnya, Burst dan Token Bucket memiliki fungsi yang sama, digunakan untuk memberi bonus bandwidth sementara ke client. Tetapi pada Token Bucket, tidak ada limitasi maksimal bandwidth bonus yang diberikan. Semakin besar bandwidth bonus yang digunakan Client, maka semakin pendek waktu burst. Jika penggunaan wajar, maka client bisa mendapatkan burst yang lebih lama. Jika anda ingin memberi bonus dengan batas tertentu, bisa menggunakan Burst dengan menentukan Burst-Limit.
Secara proses, Token Bucket menggunakan proses yang lebih sederhana, sehingga tidak membutuhkan resource Router yang terlalu besar, cocok diterapkan pada Router dengan spec hardware yang tidak terlalu besar.
Sumber: www.mikrotik.co.id