Ważone uczciwe kolejkowanie (WFQ) jest, jak sama nazwa wskazuje, algorytm kolejkowania. Kolejkowanie jest używane, gdy interfejs jest przeciążony. Jest to zwykle wykrywane przez to, że pierścień nadawczy (pierścień TX) jest pełny. Oznacza to, że interfejs jest zajęty wysyłaniem pakietów. Kolejkowanie nie odbywa się, chyba że interfejs jest przeciążony. W niektórych przypadkach można zmieniać rozmiar pierścienia TX. Mały pierścień TX zapewnia kolejce programowej więcej mocy w zakresie tego, które pakiety są wysyłane jako pierwsze, ale nie jest to bardzo skuteczne. Zbyt duży pierścień TX sprawi, że kolejka oprogramowania będzie prawie bezużyteczna i doprowadzi do wyższych opóźnień i fluktuacji ważnych pakietów.
Domyślnym algorytmem kolejkowania jest zazwyczaj pierwszy na pierwszym wyjściu (FIFO). Oznacza to, że pakiety są dostarczane dokładnie w takiej kolejności, w jakiej przybywają na wejście interfejsu. Zwykle nie jest to pożądane, ponieważ niektóre pakiety powinny mieć priorytet.
Dość często klient kupuje usługę od dostawcy usług internetowych (ISP) na subrate. Oznacza to, że klient kupuje usługę 50 Mbit / s, ale fizyczny interfejs działa z prędkością 100 Mbit / s. W takim przypadku nie będzie zatorów, ale dostawca usług internetowych ograniczy ruch z klienta. Aby wprowadzić sztuczne zatory w tych przypadkach, można zastosować kształtownik.
Dlatego teraz, gdy występuje przeciążenie, można zastosować algorytm kolejkowania. Zauważ, że algorytmy kolejkowania nie zapewniają żadnej dodatkowej przepustowości, po prostu pozwalają nam zdecydować, które pakiety są dla nas ważniejsze. WFQ to algorytm, który przyjmuje kilka parametrów i na tej podstawie podejmuje decyzję. Algorytm jest dość złożony i wykorzystuje parametry (priorytet IP), rozmiar pakietu i czas planowania jako parametry. Tutaj znajduje się bardzo szczegółowe wyjaśnienie od INE . WFQ to dobry wybór, jeśli nie chce się zbytnio kręcić w kolejce, ponieważ zapewnia odpowiednią przepustowość małym przepływom, takim jak SSH, Telnet, głos, a to oznacza, że transfer plików nie kradnie całej przepustowości.
Ważone losowe wczesne wykrywanie (WRED) jest mechanizmem unikania zatorów. WRED mierzy rozmiar kolejek w zależności od wartości Pierwszeństwa i rozpoczyna usuwanie pakietów, gdy kolejka znajduje się między progiem minimalnym a maksymalnym. Konfiguracja zdecyduje, że 1 na każde N pakietów zostanie odrzuconych. WRED pomaga zapobiegać synchronizacji TCP i głodowaniu TCP. Gdy TCP traci pakiety, zacznie się powoli uruchamiać, a jeśli wszystkie sesje TCP utracą pakiety w tym samym czasie, mogą zostać zsynchronizowane, co zapewnia następujący wykres:
Jak można zauważyć, jeśli WRED nie jest skonfigurowany, wykres przechodzi w pełny wybuch, następnie cicho, a następnie w pełni i tak dalej. WRED zapewnia bardziej średnią szybkość transmisji. Należy zauważyć, że upuszczanie pakietów nie wpływa na UDP, ponieważ nie ma mechanizmu potwierdzania i okna przesuwnego zaimplementowanego jak TCP. Dlatego WRED nie powinien być implementowany na klasie opartej na UDP, takiej jak klasa obsługująca SNMP, DNS lub inne protokoły oparte na UDP.
Zarówno WFQ, jak i WRED mogą i powinny być wdrażane razem.