Dokumentasi ini membahas 8 queue-types di MikroTik RouterOS v7: BFIFO, CAKE, CoDel, FQ-CoDel, MQ-PFIFO, PCQ, PFIFO & SFQ. Bufferbloat, latency, dan fairness adalah tiga kata kunci yang sering muncul ketika membahas Quality of Service (QoS) pada jaringan mikrotik. Pada RouterOS v7, MikroTik menghadirkan deretan queue types yang jauh lebih powerful dibandingkan versi sebelumnya, terutama dengan hadirnya algoritma modern seperti CAKE, CoDel, dan FQ-CoDel yang sebelumnya lebih umum ditemukan di platform Linux/OpenWrt.
Kita akan membahas secara mendalam delapan queue types utama di RouterOS v7 terbaru — mulai dari yang paling sederhana hingga yang paling canggih — lengkap dengan cara kerja, parameter konfigurasi, serta kelebihan dan kekurangan masing-masing.
- PFIFO (Packet First-In-First-Out)
- BFIFO (Byte First-In-First-Out)
- MQ-PFIFO (Multi-Queue Packet FIFO)
- SFQ (Stochastic Fairness Queueing)
- PCQ (Per Connection Queue)
- CoDel (Controlled Delay)
- FQ-CoDel (Fair Queuing Controlled Delay)
- CAKE (Common Applications Kept Enhanced)
- Best Practices
- Cheat Sheet Pemilihan Queue Type
- Troubleshooting
- FAQ (Frequently Asked Questions)
- Kesimpulan
Sebelum membahas detail teknis, ada beberapa konsep dasar yang perlu dipahami.
| Istilah | Penjelasan Singkat |
|---|---|
| Queue (Antrian) | Mekanisme penyimpanan sementara paket sebelum dikirim ke interface |
| Bufferbloat | Kondisi latensi tinggi akibat buffer yang terlalu besar dan penuh |
| AQM (Active Queue Management) | Teknik pengelolaan antrian aktif seperti CoDel/CAKE untuk mencegah congestion |
| Flow | Aliran traffic yang diidentifikasi berdasarkan 5-tuple (src IP, dst IP, protocol, src port, dst port) |
| Shaping | Pembatasan bandwidth secara aktif untuk mengontrol rate transmisi |
| HTB (Hierarchical Token Bucket) | Mekanisme scheduling di RouterOS untuk membagi bandwidth secara hierarkis |
Queue types di RouterOS v7 berfungsi sebagai algoritma manajemen antrian (queueing), sedangkan Simple Queue dan Queue Tree berfungsi sebagai wadah/container yang menerapkan algoritma tersebut pada traffic tertentu.
PFIFO (Packet First-In-First-Out)
Fungsi & Cara Kerja
PFIFO adalah queue type paling dasar yang tersedia di RouterOS. Prinsip kerjanya sederhana banget: paket yang masuk pertama, akan dikirim pertama (First-In-First-Out), dengan antrian diukur berdasarkan jumlah paket (packet-oriented).
/queue type
add name=pfifo-custom kind=pfifo pfifo-limit=50
Parameter utama:
pfifo-limit: Jumlah maksimal paket yang dapat mengantri (default: 50)
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Overhead CPU paling rendah — hampir tidak membebani router | ❌ Tidak memiliki mekanisme congestion control |
| ✅ Konfigurasi sangat sederhana, tidak perlu tuning | ❌ Mengalami Head-of-Line (HOL) Blocking — paket besar bisa menahan paket kecil di belakangnya |
| ✅ Cocok untuk traffic yang sudah terkontrol atau low-latency link | ❌ Tidak ada fairness antar flow; satu koneksi bisa memonopoli bandwidth |
❌ Rentan terhadap bufferbloat jika pfifo-limit di-set terlalu tinggi |
Gunakanpfifo-limityang kecil (10-50) untuk mengurangi bufferbloat, atau gunakanonly-hardware-queuejika interface mendukung hardware offloading.
BFIFO (Byte First-In-First-Out)
Fungsi & Cara Kerja
BFIFO memiliki prinsip yang identik dengan PFIFO, namun antriannya diukur berdasarkan ukuran byte, bukan jumlah paket. Ini membuat BFIFO lebih “adil” dari perspektif ukuran data dibandingkan PFIFO yang hanya menghitung jumlah paket.
/queue type
add name=bfifo-custom kind=bfifo bfifo-limit=15000
Parameter utama:
bfifo-limit: Jumlah maksimal byte yang dapat mengantri
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Lebih adil untuk paket dengan ukuran bervariasi | ❌ Sama seperti PFIFO — tidak ada congestion management |
| ✅ Overhead CPU tetap rendah | ❌ HOL blocking masih terjadi |
| ✅ Predictable untuk link dengan MTU konsisten | ❌ Tidak ada fairness antar flow |
MQ-PFIFO (Multi-Queue Packet FIFO)
Fungsi & Cara Kerja
MQ-PFIFO adalah perluasan dari PFIFO yang mendukung multiple transmit queues. Queue ini sangat bermanfaat pada sistem SMP (Symmetric Multi-Processing) dengan interface ethernet yang mendukung multiple hardware queues.
/queue type
add name=mq-pfifo-custom kind=mq-pfifo mq-pfifo-limit=50
Parameter utama:
mq-pfifo-limit: Jumlah maksimal paket per queue
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Memanfaatkan multiple CPU cores secara efisien | ❌ Masih tidak memiliki congestion management |
| ✅ Mengurangi lock contention antar core pada interface queue | ❌ Hanya bermanfaat jika driver ethernet mendukung multi-queue |
| ✅ Meningkatkan throughput pada router multi-core (x86, CCR series) | ❌ Tidak ada fairness antar flow |
SFQ (Stochastic Fairness Queueing)
Fungsi & Cara Kerja
SFQ adalah algoritma fairness yang membagi traffic ke dalam banyak sub-queue secara dinamis berdasarkan hash dari flow. Setiap flow mendapatkan giliran transmisi secara bergantian (round-robin), sehingga tidak ada single flow yang mendominasi bandwidth.
/queue type
add name=sfq-custom kind=sfq sfq-perturb=5 sfq-allot=1514
Parameter utama:
sfq-perturb: Interval waktu (dalam detik) untuk mengacak ulang hash flowsfq-allot: Jumlah byte yang dikirim per giliran setiap flow
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Fairness antar flow tanpa perlu konfigurasi manual | ❌ Tidak mengelola latency — tidak memiliki mekanisme AQM |
| ✅ Mencegah satu user/aplikasi menghabiskan seluruh bandwidth | ❌ Tidak efektif melawan bufferbloat |
| ✅ Overhead CPU relatif rendah dibanding CAKE/FQ-CoDel | ❌ Hash collision bisa terjadi (dua flow berbeda masuk ke queue yang sama) |
| ❌ Memory usage meningkat seiring bertambahnya jumlah flow |
Default MikroTik:wireless-defaultdanhotspot-defaultmenggunakan SFQ dengansfq-perturb=5dansfq-allot=1514.
PCQ (Per Connection Queue)
Fungsi & Cara Kerja
PCQ adalah algoritma andalan MikroTik untuk distribusi bandwidth otomatis ke banyak client. PCQ membagi traffic ke dalam sub-queue berdasarkan classifier yang ditentukan (src-address, dst-address, dst-port, dll), lalu mendistribusikan bandwidth secara merata atau sesuai rate limit per sub-queue.
/queue type
add name=pcq-down kind=pcq \
pcq-rate=0 \
pcq-limit=50KiB \
pcq-classifier=dst-address \
pcq-total-limit=2000KiB \
pcq-burst-rate=0 \
pcq-burst-threshold=0 \
pcq-burst-time=10s
Parameter utama:
pcq-rate: Bandwidth per sub-queue (0 = unlimited/equal share)pcq-limit: Ukuran buffer per sub-queuepcq-classifier: Kriteria pembagian sub-queue (src-address, dst-address, src-port, dst-port, dll)pcq-total-limit: Total buffer untuk seluruh sub-queuepcq-burst-rate,pcq-burst-threshold,pcq-burst-time: Parameter burst
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Sangat efisien untuk mengelola ratusan hingga ribuan client | ❌ Tidak memiliki AQM bawaan — tidak melawan bufferbloat secara aktif |
| ✅ Burst support — client bisa mendapatkan kecepatan ekstra untuk waktu singkat | ❌ Memerlukan HTB/Simple Queue untuk rate limiting |
| ✅ Flexible classifier — bisa dibagi per IP, per subnet, per port, atau kombinasi | ❌ Konfigurasi classifier yang salah bisa menghasilkan fairness yang tidak diinginkan |
| ✅ Menggantikan ratusan simple queues dengan satu konfigurasi |
Gunakanpcq-classifier=src-addressuntuk upload dandst-addressuntuk download. Di RouterOS v7, PCQ sudah mendukung IPv6 dengan mask yang bisa dikonfigurasi (pcq-src-address6-mask,pcq-dst-address6-mask).
CoDel (Controlled Delay)
Fungsi & Cara Kerja
CoDel adalah algoritma Active Queue Management (AQM) modern yang hadir di RouterOS v7.1beta3+. Berbeda dengan queue tradisional yang berbasis ukuran antrian, CoDel berbasis waktu tunggu (sojourn time) paket dalam queue.
Prinsip kerjanya:
- CoDel memantau berapa lama paket berada dalam antrian
- Jika waktu tunggu melebihi target (default 5ms) secara konsisten, paket mulai didrop
- Drop rate meningkat secara eksponensial hingga latency kembali normal
- Ketika latency normal, drop berhenti
/queue type
add name=codel-custom kind=codel \
codel-limit=1000 \
codel-target=5ms \
codel-interval=100ms
Parameter utama:
codel-target: Target latency maksimum (default: 5ms)codel-interval: Window waktu untuk mengukur minimum latency (default: 100ms)codel-limit: Ukuran maksimal antrian dalam jumlah paket
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Sangat efektif mengatasi bufferbloat | ❌ Tidak menyediakan fairness antar flow — semua traffic diperlakukan sama |
| ✅ Tidak memerlukan tuning bandwidth — bekerja berdasarkan latency | ❌ Packet drop bisa mengurangi throughput pada kondisi tertentu |
| ✅ Menggunakan sedikit resource dibanding FQ-CoDel dan CAKE | ❌ Kurang optimal pada link dengan bandwidth yang sangat fluktuatif (naik-turun) |
| ✅ Responsif terhadap perubahan kondisi jaringan |
CoDel bekerja paling baik ketika diaplikasikan pada interface queue atau queue tree dengan bandwidth limit yang sesuai kapasitas link.
FQ-CoDel (Fair Queuing Controlled Delay)
Fungsi & Cara Kerja
FQ-CoDel menggabungkan dua teknologi: Fair Queuing (FQ) dari SFQ dan Controlled Delay (CoDel). Setiap flow mendapatkan sub-queue sendiri, dan CoDel diterapkan pada masing-masing sub-queue secara independen.
Hasilnya: fairness antar flow + manajemen latency yang otomatis.
/queue type
add name=fq-codel-custom kind=fq-codel \
fq-codel-limit=10240 \
fq-codel-target=5ms \
fq-codel-interval=100ms \
fq-codel-quantum=300
Parameter utama:
fq-codel-limit: Total ukuran antrian (default: 10240 paket)fq-codel-target: Target latency per flow (default: 5ms)fq-codel-interval: Window pengukuran (default: 100ms)fq-codel-quantum: Jumlah byte yang dikirim per giliran flow (default: 300)
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ Kombinasi sempurna: fairness + anti-bufferbloat | ❌ Lebih kompleks dibanding FIFO atau SFQ murni |
| ✅ Default yang sangat baik untuk kebanyakan jaringan | ❌ Memerlukan pemahaman parameter untuk tuning optimal |
| ✅ Setiap flow terisolasi — satu flow yang “nakal” tidak mempengaruhi flow lain | ❌ Tidak se-“cerdas” CAKE dalam mengenali tipe traffic |
| ✅ Lebih efisien CPU dibanding CAKE |
Rekomendasi Forum: Banyak user RouterOS v7 melaporkan FQ-CoDel memberikan hasil lebih konsisten dengan CPU usage lebih rendah dibanding CAKE pada pengujian dengan Flent dan Waveform.
⚠️ Monitor CPU usage ketika menggunakan FQ-CoDel untuk mencegah resource exhaustion attack
CAKE (Common Applications Kept Enhanced)
Fungsi & Cara Kerja
CAKE adalah queue type paling canggih yang tersedia di RouterOS v7. Dikembangkan oleh bufferbloat.net, CAKE mengintegrasikan bandwidth shaper, AQM (CoDel derivative), fairness, flow isolation, DiffServ handling, dan overhead compensation dalam satu algoritma.
CAKE menggunakan Cobalt (turunan CoDel) yang lebih akurat dan memiliki perlindungan terhadap traffic yang tidak responsif terhadap congestion signal.
/queue type
add name=cake-down kind=cake \
cake-bandwidth=100M \
cake-flowmode=dual-dsthost \
cake-diffserv=diffserv3 \
cake-overhead=22 \
cake-mpu=64 \
cake-nat=yes \
cake-ack-filter=filter
Parameter utama:
cake-bandwidth: Set bandwidth shaper (contoh:100M,1G,0untuk unlimited)cake-flowmode: Mode isolasi flow:flows,srchost,dsthost,hosts,dual-srchost,dual-dsthost,triple-isolatecake-diffserv: Pengelompokan traffic:besteffort,diffserv3,diffserv4,diffserv8cake-overhead: Kompensasi overhead layer-2 (ATM, VLAN, PPPoE, dll)cake-mpu: Minimum packet size (default: 0, rekomendasi: 64)cake-nat: NAT lookup untuk flow isolation (yes/no)cake-ack-filter: Filtering ACK packet:none,filter,aggressivecake-autorate-ingress: Estimasi bandwidth otomatis (berguna untuk link bandwidth yang naik turun)cake-memlimit: Batas memori yang digunakan CAKE
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
|---|---|
| ✅ All-in-one solution: Shaping + AQM + Fairness + Diffserv | ❌ Paling berat secara CPU — 2.5x-3x lebih boros dari FQ-CoDel |
| ✅ Bufferbloat killer: Hasil A+ pada test waveform | ❌ Konfigurasi lebih kompleks — perlu memahami overhead dan flowmode |
| ✅ Flow isolation yang sangat baik dengan berbagai mode | ❌ Di RouterOS harus digunakan dengan HTB — tidak bisa standalone seperti di OpenWrt |
| ✅ Overhead compensation untuk link ADSL/VDSL/PPPoE | ❌ cake-bandwidth wajib di-set agar shaper berfungsi optimal |
| ✅ ACK filter menghemat bandwidth upload pada link asimetris |
⚠️ Monitor CPU usage ketika menggunakan CAKE untuk mencegah resource exhaustion attack
Best Practices
Pilih Queue Type Sesuai Kebutuhan
| Kebutuhan | Rekomendasi Queue Type |
|---|---|
| Ratusan client, fairness otomatis | PCQ |
| Anti-bufferbloat, low CPU | FQ-CoDel |
| All-in-one, broadband rumahan | CAKE |
| High throughput, multi-core | MQ-PFIFO |
| Simple, no QoS | PFIFO/BFIFO |
FastTrack vs Queue
Perlu Diingat: FastTrack bypass queue processing. Jika menggunakan Queue Tree untuk QoS, FastTrack harus dinonaktifkan atau traffic yang perlu di-queue harus di-exclude dari FastTrack.
Interface Queue vs Queue Tree
- Interface Queue: Diterapkan langsung pada interface. Cocok untuk CAKE/FQ-CoDel.
- Queue Tree: Lebih fleksibel dengan packet mark, tapi memerlukan HTB.
Overhead Compensation (CAKE)
Selalu set cake-overhead sesuai teknologi link:
- Ethernet: 0
- VLAN: 4
- PPPoE: 8
- DOCSIS: 18-22
- ATM: sesuaikan dengan
cake-atm
Cheat Sheet Pemilihan Queue Type
| Queue Type | CPU Usage | Fairness | Anti-Bufferbloat | Best For |
|---|---|---|---|---|
| PFIFO | ⭐ Sangat Rendah | ❌ Tidak | ❌ Tidak | Default, no QoS |
| BFIFO | ⭐ Sangat Rendah | ❌ Tidak | ❌ Tidak | Dedicated link |
| MQ-PFIFO | ⭐ Rendah | ❌ Tidak | ❌ Tidak | Multi-core throughput |
| SFQ | ⭐⭐ Rendah | ✅ Ya | ❌ Tidak | Wireless fairness |
| PCQ | ⭐⭐ Rendah-Medium | ✅ Ya | ❌ Tidak | ISP/WISP multi-client |
| CoDel | ⭐⭐⭐ Medium | ❌ Tidak | ✅ Ya | Latency-sensitive |
| FQ-CoDel | ⭐⭐⭐⭐ Medium-Tinggi | ✅ Ya | ✅ Ya | Mixed traffic modern |
| CAKE | ⭐⭐⭐⭐⭐ Tinggi | ✅ Ya | ✅ Ya | Broadband all-in-one |
Troubleshooting
| Masalah | Kemungkinan Penyebab | Solusi |
|---|---|---|
| Latency tetap tinggi meski sudah pakai CAKE | Queueing tidak terjadi pada antrian router | Set bandwidth 90-95% dari kapasitas aktual ISP |
| CPU usage 100% | CAKE/FQ-CoDel pada link >100Mbps dengan router low-end | Gunakan FQ-CoDel atau turunkan bandwidth |
| Tidak ada fairness | Queue type tidak support fairness | Ganti ke SFQ, PCQ, atau FQ-CoDel |
| Packet loss berlebihan | codel-target atau fq-codel-target terlalu rendah | Naikkan target ke 20-50ms |
| Queue tidak berfungsi | FastTrack aktif | Disable FastTrack atau exclude traffic dari FastTrack |
FAQ (Frequently Asked Questions)
Apakah CAKE selalu lebih baik dari FQ-CoDel?
Tidak selalu. CAKE lebih “cerdas” tapi lebih boros CPU. Banyak pengguna RouterOS v7 melaporkan FQ-CoDel memberikan hasil yang sama baiknya dengan overhead lebih rendah. Pilihlah berdasarkan kapasitas CPU router dan kompleksitas kebutuhan.
Bisakah CAKE digunakan tanpa bandwidth limit?
Di RouterOS v7, CAKE memerlukan HTB dengan bandwidth limit agar shaper berfungsi. Ini berbeda dengan implementasi di OpenWrt/Linux.
Berapa bandwidth maksimal untuk CAKE di RB4011?
Tergantung traffic pattern, tetapi umumnya RB4011 bisa menangani CAKE hingga ~400-500Mbps. Untuk link 1Gbps+, gunakan CCR2004 atau x86.
Apakah PCQ masih relevan di era CAKE/FQ-CoDel?
Sangat relevan! PCQ unggul dalam skenario dengan ratusan client yang memerlukan rate limit per user. CAKE/FQ-CoDel tidak menggantikan fungsi rate limiting yang presisi seperti PCQ.
Bagaimana cara mengukur bufferbloat?
Gunakan online test seperti Waveform Bufferbloat Test. Latency under load yang naik signifikan (>100ms) menunjukkan bufferbloat.
Apakah queue types mempengaruhi throughput?
Ya, terutama CAKE dan FQ-CoDel yang memerlukan processing tambahan. Namun penurunan throughput sebanding dengan peningkatan kualitas latency dan fairness.
Kesimpulan
RouterOS v7 membawa evolusi signifikan dalam manajemen antrian dengan memperkenalkan CAKE, CoDel, dan FQ-CoDel yang sebelumnya hanya tersedia di platform open-source. Pemilihan queue type yang tepat bergantung pada tiga faktor utama:
- Kapasitas CPU router — CAKE/FQ-CoDel memerlukan resource lebih besar
- Jumlah client dan pola traffic — PCQ untuk banyak client, FQ-CoDel/CAKE untuk mixed traffic
- Prioritas QoS — Latency (CoDel/FQ-CoDel/CAKE) vs Rate Limiting (PCQ) vs Simplicity (FIFO)