Взвешенная справедливая очередь (WFQ), как следует из названия, подразумевает алгоритм очередей. Организация очередей используется при перегруженности интерфейса. Обычно это определяется тем, что кольцо передачи (TX-Ring) заполнено. Это означает, что интерфейс занят отправкой пакетов. Организация очереди не происходит, если на интерфейсе нет перегрузки. В некоторых случаях размером TX-кольца можно манипулировать. Небольшое TX-кольцо дает программной очереди больше возможностей относительно того, какие пакеты отправляются первыми, но это не очень эффективно. Слишком большое TX-кольцо сделает программную очередь практически бесполезной и приведет к более высокой задержке и дрожанию важных пакетов.
Алгоритм организации очереди по умолчанию обычно - «первым пришел - первым обслужен» (FIFO). Это означает, что пакеты доставляются в том порядке, в котором они поступают на вход интерфейса. Это обычно не желательно, потому что некоторые пакеты должны иметь приоритет.
Весьма распространено, что клиент покупает услугу у интернет-провайдера (ISP) по субрейту. То есть клиент покупает услугу 50 Мбит / с, но физический интерфейс работает на скорости 100 Мбит / с. В этом случае не будет заторов, но интернет-провайдер будет ограничивать объем трафика от клиента. Для введения искусственного скопления в этих случаях можно использовать формирователь.
Так что теперь, когда есть перегрузка, алгоритм очередей может быть применен. Обратите внимание, что алгоритмы очередей не предоставляют никакой дополнительной полосы пропускания, они просто позволяют нам решать, какие пакеты более важны для нас. WFQ - это алгоритм, который принимает несколько параметров и на основании этого принимает решение. Алгоритм довольно сложен и использует вес (IP Precedence), размер пакета и время планирования в качестве параметров. Здесь есть очень подробное объяснение от INE . WFQ - хороший выбор, если вы не хотите слишком много возиться с очередями, поскольку он обеспечивает достаточную пропускную способность для потоков малого размера, таких как SSH, Telnet, голос, и это означает, что передача файлов не будет красть всю пропускную способность.
Взвешенное случайное раннее обнаружение (WRED) - это механизм предотвращения перегрузки. WRED измеряет размер очередей в зависимости от значения приоритета и начинает отбрасывать пакеты, когда очередь находится между минимальным порогом и максимальным порогом. Конфигурация решит, что 1 из каждых N пакетов отброшен. WRED помогает предотвратить синхронизацию TCP и голодание TCP. Когда TCP теряет пакеты, он медленно запускается, и если все сеансы TCP теряют пакеты одновременно, они могут стать синхронизированными, что дает график, подобный следующему:
Как можно видеть, если WRED не настроен, график становится полным, затем тихим, затем полным и так далее. WRED обеспечивает более среднюю скорость передачи. Важно отметить, что на UDP не влияет сбрасывание пакетов, потому что у него нет механизма подтверждения и скользящего окна, реализованного как TCP. Поэтому WRED не должен быть реализован на основе класса UDP, такого как класс, обрабатывающий протоколы SNMP, DNS или другие протоколы на основе UDP.
И WFQ, и WRED могут и должны быть развернуты вместе.