Saya mencoba memahami bagaimana sistem QoS bekerja dan saya tidak yakin bagaimana tepatnya WFQ dan WRED berinteraksi.
Pada awalnya, saya berpikir bahwa WFQ adalah mekanisme antrian dan bahwa WRED adalah mekanisme penghindaran kemacetan. WFQ harus menjadwalkan paket dalam antrian dan WRED ada di sana untuk menjatuhkannya ketika antrian penuh. Jika saya mengatur QoS misalnya sebagai saklar L3, saya akan mengatur mekanisme antrian dan mekanisme penghindaran kemacetan, sehingga secara teori saya dapat membuat WFQ dan WRD bekerja sama. Sebagai contoh, dokumen ini tampaknya menyiratkan bahwa saya akan diatur sedemikian rupa. Beberapa dokumen Cisco lainnya menyebutkan bahwa saya dapat menggunakannya secara mandiri.
Kemudian saya ingin belajar lebih banyak tentang bagaimana mereka bekerja dan mulai mencari di internet. Akibatnya, sekarang saya tidak tahu apa itu dan bagaimana cara kerjanya.
Beberapa situs (setidaknya untuk pemahaman saya tentang konten) mengklaim bahwa algoritma penjadwalan paket dan algoritma penghindaran kemacetan pada dasarnya sama. Misalnya dalam hal ini artikel Wikipedia, mereka semua ditempatkan dalam kelompok yang sama. Beberapa artikel acak menyebutkan bahwa saya bisa menggunakan WFQ XOR WRED.
Jadi yang ingin saya tanyakan adalah bagaimana kaitannya WFQ dan WRED? Kapan saya akan menggunakan satu atau yang lain dan kapan keduanya, jika itu mungkin?
sumber
Jawaban:
Weighted Fair Queuing (WFQ) adalah seperti namanya menyiratkan algoritma antrian. Antrian digunakan ketika ada kemacetan di antarmuka. Ini biasanya terdeteksi melalui Transmit Ring (TX-Ring) penuh. Ini berarti bahwa antarmuka sedang sibuk mengirim paket. Antrian tidak terjadi kecuali ada kemacetan di antarmuka. Dalam beberapa kasus, ukuran cincin-TX dapat dimanipulasi. TX-ring kecil memberikan antrian perangkat lunak lebih banyak kekuatan untuk paket yang dikirim pertama tetapi itu tidak terlalu efektif. TX-ring yang terlalu besar akan membuat antrian perangkat lunak hampir tidak berguna dan menyebabkan latensi dan jitter yang lebih tinggi untuk paket-paket penting.
Algoritma antrian default biasanya First In First Out (FIFO). Ini berarti bahwa paket-paket dikirimkan dengan tepat sesuai urutan ketika mereka tiba di input antarmuka. Ini biasanya tidak diinginkan karena beberapa paket harus diprioritaskan.
Sangat umum bahwa pelanggan membeli layanan dari Penyedia Layanan Internet (ISP) di subrate. Artinya, pelanggan membeli layanan 50 Mbit / s tetapi antarmuka fisik berjalan pada 100 Mbit / s. Dalam hal ini tidak akan ada kemacetan tetapi ISP akan membatasi jumlah lalu lintas dari pelanggan. Untuk memperkenalkan kemacetan buatan dalam kasus ini pembentuk dapat diterapkan.
Jadi sekarang ada kemacetan algoritma antrian dapat diterapkan. Perhatikan bahwa algoritma antrian tidak memberikan bandwidth tambahan, mereka hanya membiarkan kami memutuskan paket mana yang lebih penting bagi kami. WFQ adalah algoritma yang mengambil beberapa parameter dan membuat keputusan berdasarkan itu. Algoritma ini cukup kompleks dan menggunakan bobot (IP Precedence), ukuran paket dan waktu penjadwalan sebagai parameter. Ada penjelasan yang sangat rinci dari INE di sini. WFQ adalah pilihan yang baik jika seseorang tidak ingin mengutak-atik antrian karena menyediakan bandwidth yang memadai untuk aliran ukuran kecil seperti SSH, Telnet, suara dan itu berarti bahwa transfer file tidak akan mencuri semua bandwidth.
Weighted Random Early Detection (WRED) adalah mekanisme penghindaran kemacetan. WRED mengukur ukuran antrian tergantung pada nilai Precedence dan mulai menjatuhkan paket ketika antrian berada di antara ambang minimum dan ambang maksimum. Konfigurasi akan memutuskan bahwa 1 dalam setiap paket N dijatuhkan. WRED membantu mencegah sinkronisasi TCP dan kelaparan TCP. Ketika TCP kehilangan paket, itu akan menjadi awal yang lambat dan jika semua sesi TCP kehilangan paket pada saat yang sama mereka bisa disinkronkan yang menyediakan grafik seperti ini:
Seperti yang dapat dilihat jika WRED tidak dikonfigurasi, grafik menjadi full blast, kemudian silent, kemudian full blast dan sebagainya. WRED memberikan tingkat pengiriman yang lebih rata-rata. Penting untuk dicatat bahwa UDP tidak terpengaruh oleh menjatuhkan paket karena tidak memiliki mekanisme pengakuan dan jendela geser diimplementasikan seperti TCP. Oleh karena itu WRED tidak boleh diimplementasikan pada kelas berbasis UDP seperti kelas yang menangani SNMP, DNS atau protokol berbasis UDP lainnya.
Baik WFQ dan WRED dapat dan harus digunakan bersama.
sumber
Pertama-tama, jangan percaya semua yang Anda baca di Internet ;-)
Kadang-kadang algoritma (atau cara penerapannya secara fisik) tidak cocok dengan kategori teoretis. Apa yang Anda sebut itu kurang penting daripada memahami apa yang dilakukannya.
Inti dari WFQ (atau algoritma penjadwalan lainnya) adalah untuk berbagi bandwidth tautan terbatas di antara berbagai aliran. WFQ mencoba mengalokasikan bandwidth secara proporsional untuk setiap aliran. CBWFQ melakukan hal yang sama untuk setiap "kelas." Di dunia yang sempurna, dengan antrian tak terbatas dan memori tak terbatas, hanya itu yang Anda butuhkan - Anda berbagi bandwidth dan semua orang senang.
Tetapi karena perangkat tidak memiliki antrian dan memori tanpa batas, beberapa "pintasan" harus dibuat. Karena antrian memiliki ukuran terbatas, ada bahaya bahwa antrian akan terisi, menyebabkan penurunan ekor dan sinkronisasi lalu lintas. Intinya, jika antrian saya meluap, saya tidak lagi mengendalikan bandwidth.
Untuk menghindari antrian saya meluap, saya menggunakan Deteksi Dini Acak. Algoritma ini secara acak menjatuhkan paket-paket dari antrian sesuai dengan seberapa penuh antrian itu (kedalaman) - semakin penuh antrian, semakin banyak paket yang akan dijatuhkan. Tujuannya agar antrian tidak meluap, sehingga algoritma penjadwalan dapat bekerja.
Kemudian beberapa insinyur Cisco yang cerdas memperhatikan bahwa seseorang dapat menggunakan lebih sedikit antrian (perangkat keras yang lebih sederhana) dan secara acak menjatuhkan berbagai jenis lalu lintas pada kedalaman antrian yang berbeda. WRED menjatuhkan lalu lintas dari antrian pada kedalaman yang berbeda tergantung pada jenis lalu lintas. Meskipun Anda dapat menyebut WRED sebagai mekanisme penghindaran kemacetan, karena kedalaman di mana lalu lintas turun bervariasi dengan jenis lalu lintas, efeknya adalah bahwa berbagai jenis mendapatkan lebih sedikit ruang dalam antrian dan karenanya lebih sedikit dari bandwidth. Jadi itu juga bertindak sebagai algoritma penjadwalan. Anda mengatakan po-tay-to dan saya katakan po-tah-toe.
Satu lagi perbedaan: FQ dan WFQ bekerja pada semua jenis lalu lintas, karena mereka pada dasarnya menghitung byte. RED dan WRED hanya bekerja dengan TCP, karena mereka bergantung pada mekanisme kontrol aliran TCP untuk memperlambat lalu lintas dan menjaga antrian tidak meluap.
(Catatan: demi penjelasan, saya mengabaikan antrian prioritas dan LLQ. Itu jawaban lain).
Saya setuju dengan semua yang dikatakan Mike juga.
sumber
Berikut adalah contoh CBWFQ dan WRED:
peta kebijakan OUT
prioritas suara kelas persen 20
Bandwidth video kelas persen 30
bandwidth kelas P1 persen 10
deteksi acak dscp berbasis
deteksi acak dscp af31 26 40 10
bandwidth P2 kelas persen 15
deteksi acak dscp berbasis
deteksi acak dscp af21 24 40 10
kelas-standar
adil-antrian
acak-deteksi berbasis dscp
sumber