[ Pobierz całość w formacie PDF ]
.Przeładowane łącze ma ujemny średni czas bezczynności, a jeśli wartość ta jest duża, CBQ zamyka je na chwilę ioznacza to jako przekroczenie limitu (ang.overlimit).Odpowiednio, łącze puste ma duży średni czas bezczynności, który po paru godzinach ciszy umożliwiłby zajęcienieskończonej przepustowości.By temu zapobiec, wartość średniego czasu bezczynności ogranicza się odgórnieparametrem `maxidle'.Jeśli dojdzie do przekroczenia limitu, CBQ zdławi się na dokładnie tyle czasu ile zostało wyliczone pomiędzypakietami a następnie przepuści jeden pakiet i zdławi się znowu.Sprawdz znaczenie parametry `minburst'.Poniższe parametry można podać by skonfigurować kształtowanie ruchu:avpktZrednia wielkość pakietu, mierzona w bajtach.Potrzebna do wyliczania `maxidle', który jest wyliczany z`maxburst', który z kolei podawany jest w pakietach.bandwidth - pasmoFizyczne pasmo twojego urządzenia, potrzebne do wyliczania czasu bezczynności.cell - komórkaCzas który zajmuje pakietowi przesłanie przez urządzenie może rosnąć krokowo, na podstawie rozmiarupakietu.Pakiety o wielkościach 800 i 806 bajtów mogą być wysyłane dokładnie tyle samo czasu - parametrten kontroluje ziarnistość.Zwykle ustawiany na `8'.Musi być całkowitą potęgą dwójki.maxburstTa ilość pakietów służy do wyliczania `maxidle' tak, by gdy `avgidle' jest równe `maxidle', ta ilość pakietówmogła zostać wysłana dodatkowo zanim `avgidle' spadnie do 0.Ustaw tą wartość wyżej by być bardziejtolerancyjnym dla dodatkowych serii (bursts).Nie możesz ustawić bezpośrednio `maxidle', tylko przez tenparametr.minburstJak wspomniano wcześniej, CBQ musi dławić ruch w przypadku przekroczenia limitu.Idelnymrozwiązaniem byłoby robienie tego na dokładnie wyliczony czas a następnie wysłać 1 pakiet.Kernele uniksageneralnie mają problemy z planowaniem zadań krótszych niż 10ms, więc lepiej jest dławić ruch na dłuższyokres, następnie przepuszczać ilość pakietów określoną przez parametr `minburst' w jednym ruchu a potemzasypiać na `minburst'-razy dłużej.Czas czekania nazywa się czasem wolnym (ang.offtime).Wyższe wartości `minburst' prowadzą dodokładniejszego kształtowania ruchu na dłuższą metę, ale jednocześnie do większych serii pakietów w skalimilisekundowej.minidleJeśli `avgidle' ma wartość poniżej 0, oznacza to stan przekroczenia limitu i trzeba czekać dopóki `avgidle'będzie na tyle duże, by wysłać jeden pakiet.By zapobiec nagłemu wypuszczeniu serii przy zamykaniupołączenia na określony okres czasu, `avgidle' ustawiany jest na `minidle' jeśli wartość `avgidle' spadnie zanisko.Wartość `minidle' podaje się w ujemnych mikrosekundach, więc 10 oznacza że `avgidle' wynosi -10mikrosekund.mpuMinimalny rozmiar pakietu (ang.Minimum packet size) - wymagany, ponieważ nawet pakiety zawierającezero danych wyrównywane są do 64 bajtów w ethernecie i w związku z tym zajmują określony czas i pasmopodczas transmisji.CBQ musi wiedzieć ile wynosi rozmiar pakietu by poprawnie wyliczać wartość czasubezczynności.rateWymagana częstotliwość ruchu opuszczającego qdisc - to właśnie jest regulator szybkości!Wewnętrznie, CBQ ma masę parametrów konfigurujących.Na przykład, klasy o których wiadomo, że nie zbierajądanych do kolejkowania nie są o takie dane odpytywane.Klasy zajmujące się ruchem nadmiarowym (ponadustalonym limitem) ograniczane są dodatkowo przez zmniejszenie ich efektywnego priorytetu.Wszystko bardzomądre i skomplikowane.Zachowanie CBQ z klasamiPoza kształowaniem ruchu, za pomocą wspomnianych wyliczeń czasu bezczynności, CBQ zachowuje się równieżjak kolejka PRIO w tym sensie, że klasy mogą mieć różne priorytety i te o niższych priorytetach będą odpytywaneprzed tymi o wysokich priorytetach.Za każdym razem gdy warstwa sprzętowa zażąda pakietu do wysłania w sieć, zaczyna się ważony proces round-robin (ang.weighted round robin process, WRR) rozpoczynający się od klas z najniższymi priorytetami
[ Pobierz całość w formacie PDF ]