Зважена чесна черга (WFQ), як назва означає алгоритм встановлення черги. Черга використовується, коли на інтерфейсі є затори. Зазвичай це виявляється через повне передавальне кільце (TX-Ring). Це означає, що інтерфейс зайнятий пересиланням пакетів. Черга не відбувається, якщо на інтерфейсі не виникає заторів. У деяких випадках розміром TX-кільця можна керувати. Невелике кільце TX дає черзі програмного забезпечення більше енергії щодо того, які пакети надсилаються першими, але це не дуже ефективно. Занадто велике TX-кільце зробило б програму чергу майже марною та призвело до збільшення затримки та тремтіння важливих пакетів.
Алгоритм черги за замовчуванням, як правило, First In First Out (FIFO). Це означає, що пакети доставляються саме в тому порядку, коли вони надходять на вхід інтерфейсу. Зазвичай це не бажано, оскільки деяким пакетам слід надавати пріоритет.
Досить часто клієнт купує послугу у постачальника послуг Інтернету (ISP) за субтратом. Тобто, клієнт купує послугу 50 Мбіт / с, але фізичний інтерфейс працює зі швидкістю 100 Мбіт / с. У цьому випадку не буде заторів, але Інтернет-провайдер обмежить кількість трафіку від клієнта. Для введення штучних заторів у цих випадках можна застосувати формувач.
Тому тепер, коли є перевантаженість, можна застосувати алгоритм встановлення черги. Зауважте, що алгоритми встановлення черги не забезпечують додаткової пропускної здатності, вони просто дозволяють нам вирішити, які пакети для нас важливіші. WFQ - це алгоритм, який приймає декілька параметрів і приймає рішення на основі цього. Алгоритм досить складний і в якості параметрів використовує вагу (IP Precedence), розмір пакету та час планування. Тут є дуже детальне пояснення від INE . WFQ - хороший вибір, якщо не хочеться занадто сильно пружитися з чергою, оскільки це забезпечує адекватну пропускну здатність для потоків невеликих розмірів, таких як SSH, Telnet, голос, і це означає, що передача файлів не вкраде всю пропускну здатність.
Зважене випадкове раннє виявлення (WRED) - це механізм уникнення перевантажень. WRED вимірює розмір черг залежно від значення Precedence і починає скидати пакети, коли чергу знаходиться між мінімальним порогом і максимальним порогом. Конфігурація вирішить, що 1 у кожному N пакетів буде відмінено. WRED допомагає запобігти синхронізації TCP та голодуванню TCP. Коли TCP втратить пакети, він перейде в повільний старт, і якщо всі сесії TCP одночасно втратять пакети, вони можуть синхронізуватися, що забезпечує такий графік:
Як видно, якщо WRED не налаштований, графік проходить повний вибух, потім беззвучний, потім повний вибух і так далі. WRED забезпечує більш середню швидкість передачі. Важливо зазначити, що UDP не впливає на падіння пакетів, оскільки він не має механізму підтвердження та розсувного вікна, реалізованого як TCP. Тому WRED не слід реалізовувати на базі UDP класу, як клас, що обробляє SNMP, DNS або інші протоколи на основі UDP.
І WFQ, і WRED можуть і повинні бути розгорнуті разом.