Klasowe / Dyscypliny, klasy, filtry
Dyscypliny, klasy, filtry
Klasowość algorytmów kolejkowania polega na tym, że ruch jest klasyfikowany niekoniecznie wg. połączeń, adresów źródłowych lub docelowych, lecz według ustalonych w konfiguracji zasad.
Po ustaleniu które pakiety powinny trafić do której klasy, oraz po dokonaniu manipulacji właściwych danemu algorytmowi, pakiety mogą być poddawane kolejnym algorytmom, klasowym, bądź nie.
Klasy mogą być układane w strukture hierarchiczną.
|
Przykładowa hierarchia klas
Aby opis algorytmów był przejrzysty, należy najpierw określić terminologię dotyczącą klasowego kolejkowania
[1] [2]:
- Dyscyplina – Implementacja algorytmu, która dla systemu operacyjnego jest czarną skrzynką posiadającą wejście (zakolejkowanie pakietu) oraz wyjście (zdjęcie pakietu z kolejki).
- Jeśli dyscyplina implementuje algorytm bezklasowy, to nie jest możliwe zajrzenie w jej wewnętrzną strukturę, można jednak ustalać jej parametry składające się na konfigurację algorytmu tworzącego ta dyscyplinę.
- Jeśli dyscyplina jest klasowa, to składa się z drzewa (hierarchii) klas.
- Korzeń – Jest to dyscyplina przypisana bezpośrednio do urządzenia lub klasa będąca korzeniem dla drzewa klas, w zależności od kontekstu.
- Drzewo klas – Klasowa dyscyplina posiada skojarzone ze soba drzewo klas reprezentujące podział pasma obsługiwanego przez tą dyscyplinę.
Klasy będące liściami mają z kolei przyporządkowane do siebie po jednej dyscyplinie (które mogą zawierać kolejne drzewa klas).
- Termin klasa odnosi się tu do klasyfikowania ruchu w sieci, czyli reprezentuje ona ogół pakietów o pewnych wspólnych cechach.
- Większość algorytmów pozwala każdej klasie zdefiniować sposób w jaki ruch należący do tej klasy będzie traktowany, najczęściej jest to minimalna lub maksymalna prędkość przesyłu.
- Klasyfikator – Jest to algorytm któremu poddawany jest każdy pakiet wchodzący do dyscypliny; decyduje on do której klasy należy przyporządkować pakiet.
Klasyfikator może być umieszczony także w klasie, powodując, że pakiet przechodzi kolejno przez kilka klasyfikatorów.
- Filtr – Proces klasyfikacji działa na zasadzie przepuszczania pakietu przez uporządkowaną listę filtrów.
- Każdy filtr wyłapuje pakiety o odpowiednich cechach oraz ma przypisaną klasę docelową, do której pakiet trafia jeśli został przez dany filtr wyłapany.
- Filtr może wskazywać tylko klasę będącą w poddrzewie klasy lub dyscypliny z którą skojarzony jest klasyfikator korzystający z tego filtra
(tzn. w kolejnych klasyfikacjach pakiet może ,,poruszać'' się jedynie w głąb drzewa).
Kiedy system zarząda pakietu do wysłania z danego interfejsu, odpytywana jest dyscyplina będąca korzeniem dla tego urządzenia. Wybiera ona na podstawie własnego algorytmu klasę z której mają zostać wysłane dane.
Odpytuje zatem dyscyplinę przypisaną do tej klasy o pakiet. Kiedy łańcuchowe odpytywanie skończy się na dyscyplinie bezklasowej, informacja o wybranym pakiecie powraca do sytemu który wysyała go przez urządzenie
(Jest to opis na podstawie działania systemu Linux, jednak jest on także prawdziwy dla przeważającej części systemów operacyjnych).
Przypisy
- [^] Por. Y. Bernet, S. Blake, D. Grossman, A. Smith, ,,An Informal Management Model for Diffserv Routers'', RFC3290, ss. 4-6
- [^] Por. także Linux Advanced Routing & Traffic Control HOWTO, rozdział 9.4