HFSC (ang. Hierarchical Fair Service Curve) – algorytm kolejkowania ruchu powstały jako odpowiedź na pewne ograniczenia algorytmu HTB polegające głównie na braku specjalnej obsługi ruchu bardzo wrażliwego na opóźnienia, czyli jednakowym traktowaniem przez HTB wszystkich rodzajów pakietów w danej kolejce.

HFSC został zaimplementowany po raz pierwszy w systemach NetBSD i FreeBSD, a następnie przeniesiony także do OpenBSD (Packet Filter) i jądra systemu Linux od wersji 2.4.25.

HFSC umożliwia zarówno dzielenie pasma, priorytetowanie go, jak również zapewnienie pewnym aplikacjom gwarantowanego pasma z jak najmniejszymi opóźnieniami. Każda klasa HFSC może mieć parametry:

  • rt określający wielkość gwarantowanego pasma dla aplikacji real-time
  • ls określający wielkość dzielonego pasma (odpowiednik rate w HTB)
  • ul będący górnym limitem prędkości (odpowiednik ceil w HTB)

Każdej kolejce (rt, ls i ul) można przypisać prędkość na dwa sposoby:

  • m1 Xkbit d ts m2 Ykbit ustalający, że przez t sekund prędkość tej klasy może wynosić do X kbps, a po tym czasie ma wynosić Y kbps (X musi być większe od Y) – jest to odpowiednik burst w HTB.
  • rate Zkbit powoduje, że dana klasa ma prędkość Z kbps (jest to odpowiednik m1 0 d 0 m2 Zkbit).

Podstawowa różnica między HFSC a HTB polega na zupełnie odmiennym traktowaniu ruchu nieprzypisanego do żadnej kolejki (w tym pakietów ARP). HTB samo tworzyło ukrytą kolejkę dla takiego ruchu i go przepuszczało, natomiast HFSC bez kolejki domyślnej albo z kolejką domyślną o bardzo małej wielkości, może odrzucać pakiety niesklasyfikowane. Odrzucanie pakietów ARP może powodować niedziałanie sieci, więc stosując HFSC należy koniecznie zadbać o dokładne klasyfikowanie ruchu i stworzenie domyślnej kolejki.

Zobacz też

edytuj

Linki zewnętrzne

edytuj