Dari halaman manual, satu-satunya kendala burst
adalah bahwa itu harus cukup tinggi untuk memungkinkan tingkat Anda dikonfigurasi: itu harus setidaknya tingkat / HZ. HZ adalah parameter konfigurasi kernel; Anda dapat mencari tahu apa itu pada sistem Anda dengan memeriksa konfigurasi kernel Anda. Misalnya, di Debian, Anda dapat:
$ egrep '^CONFIG_HZ_[0-9]+' /boot/config-`uname -r`
CONFIG_HZ_250=y
jadi HZ pada sistem saya adalah 250. Untuk mencapai kecepatan 10mbps, saya membutuhkan burst
setidaknya 10.000.000 bit / detik ÷ 250 Hz = 40.000 bit = 5000 byte. (Perhatikan bahwa nilai yang lebih tinggi di halaman manual berasal dari saat HZ = 100 adalah default).
Namun di luar ini, burst
juga merupakan alat kebijakan. Ini mengkonfigurasi sejauh mana Anda dapat menggunakan lebih sedikit bandwidth sekarang untuk "menyimpan" itu untuk digunakan di masa depan. Satu hal yang umum di sini adalah Anda mungkin ingin mengizinkan unduhan kecil (katakanlah, halaman web) berjalan sangat cepat, sambil membatasi unduhan besar. Anda melakukan ini dengan menambah burst
ukuran yang Anda anggap unduhan kecil. (Padahal, Anda sering beralih ke qdisc classfull seperti htb, sehingga Anda dapat membagi jenis lalu lintas yang berbeda.)
Jadi: Anda mengkonfigurasi burst paling tidak cukup besar untuk mencapai yang diinginkan rate
. Selain itu, Anda dapat meningkatkannya lebih lanjut, tergantung pada apa yang ingin Anda capai.
Model Konseptual dari Token Bucket Filter
"Ember" adalah objek metaforis. Properti utamanya adalah dapat menahan token, dan jumlah token yang dapat ditahan terbatas — jika Anda mencoba untuk menambah lebih banyak, itu "meluap" dan token tambahan hilang (seperti halnya mencoba memasukkan terlalu banyak air ke dalam ember yang sebenarnya). Ukuran ember disebut burst
.
Untuk benar-benar mengirimkan paket ke jaringan, paket itu harus memperoleh token yang sama dengan ukurannya dalam byte atau mpu
(mana yang lebih besar).
Ada (atau bisa) satu baris (antrian) paket yang menunggu token. Ini terjadi ketika ember kosong, atau secara alternatif memiliki token yang lebih sedikit daripada ukuran paket. Hanya ada begitu banyak ruang di trotoar di depan ember, dan jumlah ruang (dalam byte) diatur langsung oleh limit
. Atau, dapat diatur secara tidak langsung dengan latency
(di dunia yang ideal, perhitungannya adalah rate
× latency
).
Ketika kernel ingin mengirim paket keluar dari antarmuka yang difilter, ia mencoba untuk menempatkan paket di akhir baris. Jika tidak ada ruang di trotoar, itu sangat disayangkan untuk paket tersebut, karena di ujung trotoar ada lubang tanpa dasar, dan kernel menjatuhkan paket.
Bagian terakhir adalah mesin pembuat token yang menambahkan rate
/ HZ
token ke ember setiap centang. (Inilah sebabnya ember Anda harus setidaknya sebesar ini, jika tidak, beberapa token yang baru dicetak akan segera dibuang).
tbf
adalah bagian dari kerangka kontrol lalu lintas Linux.man tbf
atauman tc-tbf
harus memunculkan dokumentasi.