Autoreferat rozprawy doktorskiej Algorytmy obsługi uŜytkowników w
Transkrypt
Autoreferat rozprawy doktorskiej Algorytmy obsługi uŜytkowników w
Politechnika Śląska Wydział Automatyki, Elektroniki i Informatyki Instytut Informatyki Mgr inŜ. Jarosław Karcewicz Autoreferat rozprawy doktorskiej Algorytmy obsługi uŜytkowników w rozwiniętych sieciach lokalnych i rozległych Promotor: Prof. dr hab. inŜ. Andrzej Grzywak Gliwice 2007 1. Wprowadzenie We współczesnych czasach coraz waŜniejszy staje się łatwy i szybki dostęp do informacji. W celu umoŜliwienia takiego przepływu informacji powstały sieci komputerowe. Klasycznym obecnie rozwiązaniem wielu sieci komputerowych jest połączenie sieci lokalnych (LAN, ang. Local Area Network) z siecią rozległą Internet (WAN, ang. Wide Area Network), wykorzystujące do komunikacji protokół IP za pośrednictwem urządzeń zwanych ruterami [3]. Praca doktorska dotyczy właśnie sieci o takiej architekturze. Sieć Internet od swojego powstania rozwija się w bardzo szybkim tempie, jej uŜytkownicy coraz częściej juŜ korzystają ze zdalnie uruchamianych aplikacji, wymagają szybkiego dostępu do olbrzymich archiwów danych, przesyłają dźwięk i obraz w czasie rzeczywistym, co wiąŜe się z przesyłaniem coraz większej ilości danych w relatywnie krótkiej jednostce czasu między siecią lokalną a rozległą. W analizowanym przypadku, zidentyfikowano aktualny i waŜny problem udostępnienia usług internetowych wszystkim uŜytkownikom sieci lokalnej. Rozwiązanie takie wiąŜe się z odpowiednim przydzielaniem pasma sieci Internet kaŜdemu uŜytkownikowi w taki sposób, aby z jednej strony uwzględniać ich zapotrzebowanie, z drugiej natomiast przepustowość współdzielonego łącza z siecią Internet. Charakterystyczne dla omawianej architektury sieci jest fakt, Ŝe moŜliwość wpływania na przepływ danych przez łącze Internetowe, a co za tym idzie, moŜliwość kształtowania tego ruchu, ogranicza się z reguły do jej rutera brzegowego, bez moŜliwości wpływu na dalszą trasę przesyłu danych. Przydział pasma uŜytkownikom w sieci lokalnej moŜe być rozwiązany w sposób statyczny, w którym kaŜdemu uŜytkownikowi przydziela się stałe pasmo (stałą prędkość transmisji) wynikające z równego podziału posiadanego łącza z siecią rozległą między tych uŜytkowników. Taki przydział pasma powoduje, Ŝe mimo zapotrzebowania danego uŜytkownika, przy niewykorzystywaniu swoich pasm przez innych uŜytkowników, nie istnieje moŜliwość osiągnięcia większej prędkości niŜ przydzielona. Bardziej skutecznym rozwiązaniem jest dynamiczny przydział pasma, uwzględniający moŜliwość poŜyczania niewykorzystywanego pasma od innych uŜytkowników. Oprócz podziału pasma pomiędzy uŜytkowników istnieje problem podziału otrzymanego przez danego uŜytkownika pasma pomiędzy usługi internetowe z których korzysta w danej chwili, gdzie uŜytkownik wymaga aby jedne z nich działały zawsze z określoną jakością (priorytetyzuje te usługi), przy akceptacji na pogorszenie jakości innych 2 usług. W pracy przedstawiona została autorska metodyka realizacji dynamicznego przydziału pasma uŜytkownikom uwzględniający moŜliwość priorytetyzacji usług. Problem podziału łącza z siecią rozległą komplikuje się, jeŜeli przyjąć, Ŝe rzeczywista dostępna przepustowość w łączu z siecią Internet moŜe się zmieniać w czasie (fluktuować). Dotychczas nieznane są algorytmy obsługi uŜytkowników sieci lokalnej korzystających z zasobów sieci rozległej, które przydzielają pasmo pozwalające na dowolny dynamiczny przydział pasma według wymagania klienta z moŜliwością priorytetyzacji wyszczególnionych usług internetowych, jak równieŜ uwzględniające fluktuacje rzeczywistej dostępnej przepustowości. Przedstawiana praca ma charakter teoretyczno-eksperymentalny i dotyczy badania efektywności algorytmów przydziału pasma uŜytkownikom w sieci lokalnej korzystających z zasobów sieci rozległych. Celem pracy jest poprawa efektywności działania obecnie stosowanych rozwiązań przydziału pasma w sieci lokalnej uŜytkownikom korzystających z zasobów sieci rozległych, szczególnie w warunkach fluktuacji przepustowości w łączu internetowym. W świetle powyŜszego została sformułowana teza główna pracy, oraz tezy uzupełniające: Teza główna: Rozwinięcie klasycznego algorytmu hierarchicznego podziału łącza na drodze odpowiedniej integracji istniejących algorytmów kolejkowania danych oraz wykorzystania metod ilościowych, umoŜliwia poprawę efektywności podziału łącza ze szczególnym uwzględnieniem wpływu fluktuacji przepustowości łącza z siecią Internet. Tezy uzupełniające: • Zastosowanie algorytmów kolejkowania danych pozwala na eliminowanie zatorów łącza internetowego. • Odpowiednia integracja algorytmów kolejkowania danych pozwala poprawić efektywność działania tych metod w stosunku do zastosowania kaŜdego algorytmu z osobna. • Efektywność działania algorytmów hierarchicznego podziału łącza, jest zaleŜna od wielkości wahań pomiędzy nominalną i realną wielkością transferu danych z siecią rozległą. 3 Badania eksperymentalne przeprowadzono w laboratorium Katedry Informatyki i Ekonometrii Wydziału Organizacji i Zarządzania Politechniki Śląskiej w Zabrzu. Dodatkowo niektóre badania przeprowadzono w wybranych rzeczywistych sieciach lokalnych. Praca jest równieŜ oparta o doświadczenia autora związane z zapewnianiem jakości usług internetowych w opisanych w pracy organizacjach. Zawartość pracy Pracę ujęto w 8 rozdziałach. Rozdział 1 obejmuje wprowadzenie do problematyki rozprawy, wraz z wyszczególnieniem celu oraz tez pracy. W rozdziale 2 przedstawiono genezę pracy oraz opis dwóch badanych, w warunkach pozalaboratoryjnych, sieci komputerowych, w których zidentyfikowane zostały problemy z jakością działania łącza internetowego. W rozdziale 3 omówiono dostępne metody zapewnienia jakości usług w sieciach IP (Quality of Service), wraz z analizą moŜliwości zastosowania tych metod dla sieci o jakich architekturze mowa w pracy oraz ich problemów, które zostały zaprezentowane w pracy. Scharakteryzowano równieŜ istniejące problemy z zapewnieniem jakości dostępu do sieci Internet w sieciach LAN/WAN. W rozdziale 4 przedstawiono zaproponowaną metodę dla zapewnienia jakości jaką są algorytmy kolejkowania danych. Przeprowadzono równieŜ analizę zaprezentowanych algorytmów, pod kątem moŜliwości rozwiązania problemów, które w pracy poruszono. W rozdziale 5 opisano wybrany algorytm hierarchicznego podziału łącza, które to algorytmy zostały wykazane we wcześniejszym rozdziale jako najbardziej efektywne wobec problemów, które w pracy poruszono, oraz przeprowadzono badania pod kątem moŜliwości rozwiązania przez ten algorytm wskazanych problemów. W rozdziale 6 sformułowano model zakładający integrację wielu róŜnych algorytmów kolejkowania danych, opartego przede wszystkim o algorytm hierarchicznego podziału łącza. Wykazano duŜą efektywność tego modelu w zagwarantowaniu jakości usług, W rozdziale 7 wykazano niską efektywność zaproponowanego w rozdziale 6 modelu w warunkach fluktuacji przepustowości łącza internetowego, wraz z badaniami dowodzącymi występowanie takich warunków w rzeczywistych sieciach komputerowych. Następnie zaproponowano mechanizm pozwalający na poprawienie efektywności zaproponowanego wcześniej modelu w warunkach fluktuacji przepustowości łącza z siecią Internet oraz 4 mechanizm ten poddany został weryfikacji działania w warunkach laboratoryjnych jak równieŜ w rzeczywistej sieci komputerowej. W rozdziale 8 zawarto wnioski wynikające z przeprowadzonych prac teoretycznych oraz eksperymentalnych. 2. Geneza rozprawy Genezę rozprawy doktorskiej stanowią prace autora związane ze stworzeniem oraz rozwojem infrastruktury dostępowej do sieci Internet dla sieci lokalnej Wydziału Organizacji i Zarządzania Politechniki Śląskiej w Zabrzu oraz dla sieci lokalnej jednego z oddziałów firmy „Spółdzielnia Inwalidów Naprzód” Z. P. Chr. Na potrzeby rozprawy sieć lokalna Wydziału Organizacji i Zarządzania Politechniki Śląskiej będzie nazywana badaną siecią lokalną pierwszą natomiast sieć lokalna jednego z oddziałów „Spółdzielni Inwalidów Naprzód” Z. P. Chr. badaną siecią lokalną drugą. Badania eksperymentalne na rzeczywistych sieciach komputerowych zawarte w rozprawie przeprowadzone zostały w w/w organizacjach. Taki dobór obiektu badań pozwolił dzięki moŜliwości porównania wyników z dwóch róŜnych sieci komputerowych, na bardziej precyzyjne opracowanie wniosków z uzyskanych rezultatów badań. Wstępne badania problematyki poruszanej w pracy zostały przeprowadzone głównie na podstawie badanej sieci lokalnej pierwszej. Na podstawie tych badań stwierdzono istnienie problemu powstawania zatorów łącza internetowego i konieczność opracowania mechanizmów eliminujących takie sytuacje, jak równieŜ umoŜliwiającego nadanie priorytetu jakości działania dla pewnych określonych usług sieciowych przed innymi usługami. W sieci tej zostały wdroŜone opracowane i przedstawione w początkowej części pracy przez autora rozwiązania omawianych problemów powstawania zatorów łącza. Opracowane mechanizmy zostały następnie takŜe wdroŜone w badanej sieci lokalnej drugiej, w której stwierdzono występowanie toŜsamych problemów jak w sieci badanej pierwszej. W sieci tej z kolei zidentyfikowany został problem, który nie występował w sieci badanej pierwszej, wiąŜący się z faktem, Ŝe efektywna przepustowość łącza internetowego tej sieci jest róŜna od nominalnej podawanej przez dzierŜawcę tego łącza, a na dodatek nie jest stała, lecz zmienia się w czasie. Sytuacja taka jak wykazano w rozprawie bardzo silnie wpływa na efektywność istniejących metod podziału łącza internetowego, wdroŜonych w obu badanych sieciach. Istotne okazało się więc opracowanie metody, która pozwalałaby na ograniczenie wpływu tego typu sytuacji na przedstawione w pracy istniejące mechanizmy podziału łącza internetowego. 5 3. Metody zapewnienia Quality of Service W obecnych sieciach komputerowych zdecydowanie najczęściej uŜywanym protokołem warstwy III modelu ISO/OSI jest protokół IP. Protokół ten został utworzony w ramach projektu DARPA w 1981 roku [21]. Celem jego opracowania, była chęć utworzenia sieci, która miałaby działać w oparciu o przełączanie pakietów. Jego zadaniem jest dostarczenie informacji od nadawcy do odbiorcy. Protokół ten jest protokołem bezpołączeniowym, informacje są formatowane do pakietów IP, a następnie wysyłane w sieć bez uŜycia mechanizmów gwarantujących skuteczne jej dotarcie do celu. KaŜdy pakiet jest przesyłany przez sieć samodzielnie, niezaleŜnie od pozostałych, tak więc kaŜdy moŜe być przesłany inną trasą. Rozprawa podjęta w tej pracy, dotyczy sieci wykorzystujących ten właśnie protokół. W trakcie przetwarzania pakietu IP przez urządzenie pośredniczące w ich przekazywaniu, jakim jest router, pakiet ten jest umieszczany najpierw w buforze interfejsu wejściowego a następnie interfejsu wyjściowego. Kształtowanie jakości usług moŜe odbyć się więc poprzez manipulację tymi pakietami w buforze przy pomocy odpowiednich algorytmów. Pozostaje jeszcze teŜ dodatkowo kwestia klasyfikacji tychŜe pakietów, ruchu jaki tworzą, oraz takŜe kwestia informowania innych węzłów sieci o konieczności rezerwacji danych parametrów jakości. PoniewaŜ sam protokół IP nie dawał moŜliwości klasyfikacji ruchu oraz rezerwacji zasobów dla tegoŜ ruchu, zaczęto poszukiwać rozwiązań, które miały być z załoŜenia modelami klasy „End-To-End”, czyli mechanizmów mających zapewnić jakość danych parametrów na całej drodze od nadawcy do odbiorcy, poprzez odpowiedni system rezerwacji zasobów. Zaprezentowane w rozprawie metody klasy „End-To-End”, na które kładzie się obecnie w nauce nad omawianym problemem bardzo silny nacisk, mimo Ŝe są słuszne i potrafią jak przedstawiono gwarantować najlepszą jakość usług w sieciach o jakich architekturze mowa w pracy, ze względu na załoŜenia związane z koniecznością wpływu na wszystkie, a przynajmniej większość węzłów pośredniczących w wymianie danych pomiędzy stacjami w sieci, najdalsze zastosowanie jakie mają jest sama sieć lokalna, a najdalszym punktem jej ruter brzegowy. Metody te są równieŜ niewystarczające w realizacji potrzeb jakie stawiają uŜytkownicy sieci lokalnej, które zostały przedstawione w pracy. Wykazano w rozprawie takŜe duŜą nieefektywność, najprostszego mechanizmu sterowania ruchem dla sieci o jakich architekturze mowa w pracy, jakim jest filtrowanie ruchu sieciowego. 6 W związku z powyŜszym, w sieciach o budowie jakiej dotyczy rozprawa, zdecydowanie lepszym wydaje się zaproponowane stosowanie niskopoziomowych mechanizmów, jakimi są algorytmy kolejkowania danych. Algorytmy kolejkowania danych zajmują się sposobem obsługi danych przechodzących przez bufor w urządzeniach sieciowych. Dzielą one bufor na pewną ilość kolejek, które są następnie obsługiwane według określonego algorytmu postępowania. W swoim działaniu wykorzystują mechanizm okien przesuwnych zaimplementowany w protokole TCP, pozwalający na dostosowanie prędkości przesyłu do warunków w sieci. W związku z powyŜszym algorytmy kolejkowania danych wpływają jedynie na ruch transmitowany przy uŜyciu protokołu TCP. W rozprawie przedstawione zostały dostępne opracowane algorytmy oraz charakterystyka ich działania. Z przeprowadzonej analizy wynika, Ŝe najbardziej rozbudowane, ale i dające najlepsze efekty dla sieci lokalnych korzystających z zasobów sieci rozległych, są algorytmy hierarchicznego podziału łącza, z tego teŜ względu na nich głównie skupiono uwagę w pracy, jako mechanizmu pozwalającego na dynamiczną obsługę uŜytkowników, i uwzględniającego moŜliwość przydzielania określonych priorytetów usługom. 4. Wykorzystanie algorytmu hierarchicznego podziału łącza na przykładzie algorytmu Hierarchicznego Wiadra śetonów W dysertacji zaprezentowano i przeanalizowano przykładowy algorytm hierarchicznego podziału łącza, jakim jest algorytm Hierarchicznego Wiadra śetonów oraz przeprowadzono laboratoryjne badania efektywności jego działania na transmisję danych w sieciach LAN/WAN w sytuacjach zatorów łącza. Dla celów laboratoryjnych badań eksperymentalnych w rozprawie, utworzone zostało laboratoryjne stanowisko badawcze oraz opracowana metodologia ich przeprowadzania. Uzyskane wyniki w badaniach, z których wielu pokrywających się przedstawiono w pracy reprezentatywne, pokrywają się z wynikami podobnych eksperymentów zawartych w [78]. Pozwalają one wykazać bardzo duŜą precyzję algorytmów hierarchicznego podziału łącza w realizacji dynamicznego podziału przepustowości łącza internetowego, uwzględniającego moŜliwość priorytetyzacji usług, a takŜe zwiększyć bezpieczeństwo sieci lokalnej poprzez eliminację sytuacji powstawania zatorów łącza internetowego, a przede wszystkim wynikającego z niego problemu 7 zawłaszczenia sieci przez uŜytkownika (usługę), lub grupę uŜytkowników (grupę usług). Przedstawiona została takŜe analiza aspektów tworzenia algorytmu podziału łącza dla sieci o omawianej architekturze, w oparciu o algorytmy hierarchicznego podziału łącza wynikająca z doświadczeń autora, pozwalająca na zwiększenie efektywności ich działania. 5. Rozwinięcie algorytmu hierarchicznego podziału łącza Algorytmy hierarchicznego podziału łącza mimo wykazanej bardzo duŜej efektywności w realizacji dynamicznego podziału pasma, nie eliminuje całkowicie moŜliwość powstawania zatorów i wynikającego z niego problemu zawłaszczenia sieci. Wyodrębnione klasy podziału w tym algorytmie są nadal kolejkami „First In First Out” (FIFO), co moŜe powodować powstawanie zatorów w obrębie danej klasy. W celu wyeliminowania powyŜszych problemów zaproponowano autorską metodykę tworzenia zintegrowanego algorytmu podziału łącza, skupiającego wiele róŜnych odpowiednio połączonych algorytmów kolejkowania, realizujących róŜne cele i opierające się w głównym stopniu na algorytmie hierarchicznego podziału łącza. Efektywność tak utworzonego mechanizmu jak wykazano na przykładzie badanych sieci lokalnych, w których przeprowadzono badania empiryczne, poprzez własne obserwacje autora, jest bardzo duŜa. Dowód efektywności działania opracowanego modelu we wskazanych badanych sieciach rzeczywistych, przy zastosowaniu innych metod badawczych byłby zdaniem autora trudny do uzyskania. 6. Badania algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza z siecią WAN Sieci lokalne korzystające z zasobów sieci rozległej realizują transfer danych za pośrednictwem dzierŜawionego od operatora ISP (ang. Internet Service Provider) łącza internetowego o określonej przepustowości. Łącza te w praktyce bardzo często charakteryzowane są przez dwa parametry: nominalną (EIR) oraz gwarantowaną (CIR) wartość przepustowości łącza. Efektem powyŜszego jest fakt, Ŝe dostępna przepustowość takiego łącza często nie jest stała, lecz zmienna w czasie i oscyluje pomiędzy wartościami tych parametrów, co zostało wykazane poprzez przeprowadzone badania ankietowe wśród 8 administratorów sieci w Polsce, oraz poprzez badania eksperymentalne w badanej sieci lokalnej drugiej. Tak dobrane metody badawcze miały na celu wykazać istnienie postawionego problemu w rzeczywistych warunkach, nie zwracając specjalnie uwagi na dokładność jego zakresu występowania, gdyŜ uznano, Ŝe istotne jest samo udowodnienie jego występowania. Wykazano w rozprawie na podstawie badań eksperymentalnych, z których wielu pokrywających się wyników przedstawiono w pracy reprezentatywne, Ŝe występowanie takich sytuacji na zaproponowany algorytm, a w głównej mierze na algorytmy hierarchicznego podziału łącza, na którym ten zintegrowany algorytm się opiera, wpływa bardzo niekorzystnie, znacznie pogarszając jego efektywność. Istotne staje się więc opracowanie mechanizmu, który byłby w stanie poprawić efektywność działania algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości pasma internetowego. Dla poprawy efektywności algorytmów hierarchicznego podziału łącza w warunkach fluktuacji niezbędne jest zbadanie stanu aktualnej dostępnej wielkości przepustowości łącza internetowego i porównanie go z nominalną wartością podaną przez dzierŜawcę łącza. Takie badanie moŜe odbyć się poprzez chwilowe całkowite wypełnienie wygenerowanym ruchem tegoŜ łącza i sprawdzenie prędkości transferu, jaki był w tym czasie osiągany. Taki sposób badania jest jednak nieefektywny, powoduje na czas jego trwania, całkowite zablokowanie tego łącza dla uŜytkowników sieci lokalnej. Niezbędne jest więc opracowanie takiego mechanizmu, który pozwoliłby na stwierdzenie występowania stanu fluktuacji przepustowości łącza internetowego, przy minimalnym wykorzystaniu zasobów sieciowych i sprzętowych. Zgodnie z przedstawionymi załoŜeniami zaproponowano w rozprawie metodologię mechanizmu według następującego algorytmu, przedstawionego na przykładzie systemu operacyjnego LINUX (Rys. 1-3): 1. W ruterze obsługującym sieć lokalną zostaje wygenerowany ruch TCP w kierunku tego rutera z jednym, bądź wieloma stacjami znajdujących się w sieci rozległej. 2. Ten wygenerowany ruch „wpada” do klasy utworzonej specjalnie dla tych pakietów, wypełniając tą klasę maksymalnie. 3. Za pomocą programu „iproute” [63] (wykorzystanie komendy tc –s dev ethx class show) odnotowana zostaje ilość bajtów danych przesłana przez tą klasę, z czego uzyskuje się prędkość transferu. 4. Punkty 1-5 są powtarzane co sekundę przez ustalony okres czasu. 9 5. Po zakończeniu wykonania pętli punktów 1-5, z odnotowanego co sekundę transferu zostaje za pomocą aparatu matematycznego określone, czy stan fluktuacji wystąpił, czy nie wystąpił. 6. Jeśli stan fluktuacji nie został stwierdzony, działanie algorytmu się kończy, nie zmieniając nic w działaniu algorytmu hierarchicznego podziału łącza do czasu następnego badania. 7. Jeśli został stwierdzony stan fluktuacji, podawana wielkość nominalnej przepustowości łącza dla algorytmu hierarchicznego podziału łącza zostaje pomniejszona o pewną określoną wartość, do czasu przeprowadzenia następnego badania. 8. Jeśli w kolejnym badaniu znowu zostanie stwierdzony stan fluktuacji, znów podawana wielkość nominalnej przepustowości łącza dla algorytmu hierarchicznego podziału łącza zostaje pomniejszona o pewną określoną wartość, do czasu przeprowadzenia następnego badania stwierdzającego występowanie fluktuacji, przy czym wartość ta po kolejnych pomniejszeniach nie moŜe spaść niŜej niŜ 50% nominalnej wartości łącza. 9. Jeśli w kolejnym badaniu zostanie stwierdzony stan poprawny, wielkość nominalnej przepustowości łącza dla algorytmu hierarchicznego podziału łącza zostaje powiększona o pewną określoną wartość, do czasu przeprowadzenia następnego badania stwierdzającego występowanie fluktuacji, przy czym wartość ta nie moŜe wynieść więcej niŜ nominalna wartość łącza. 10. Jeśli w kolejnym badaniu po kolejnych powiększeniach wartości nominalnej przepustowości łącza dla algorytmu hierarchicznego podziału łącza, zostanie stwierdzony stan fluktuacji, następuję pomniejszenie tej wartości do czasu przeprowadzenia następnego badania stwierdzającego występowanie fluktuacji. Przedstawiony mechanizm zakłada pewien sposób generowania ruchu (Rys. 1), przy czym istotne jest, aby był to ruch przesyłany za pomocą protokołu TCP, który jest regulowany przez algorytmy kolejkowania. Najprostszym sposobem moŜe być na przykład zainicjowanie połączeń ściągania danych z serwerów FTP. Dla tegoŜ wygenerowanego ruchu naleŜy wyodrębnić osobną klasę o najniŜszym priorytecie, tak aby klasa ta była obsługiwana jako ostatnia. Limit prędkości dla tej klasy musi zostać ustanowiony statycznie, tj. bez moŜliwości poŜyczenia przepustowości od innej klasy, i musi on być wyznaczony na niskiej wartości, proponuje się wartości 30 – 40 [kbit]. Przychodzące do rutera pakiety 10 wygenerowanego ruchu wypełniają przeznaczoną dla niej klasę, co jest badane przy pomocy aplikacji „iproute”. Jeśli osiągany transfer dokładnie wypełnia klasę, oznacza to, Ŝe stan fluktuacji nie występuje, jeśli natomiast osiągany transfer będzie bardzo niejednorodny, oznacza to, Ŝe stan fluktuacji występuje. Aby zminimalizować wpływ opóźnień, strat pakietów wynikających z przesyłu pakietu w sieciach pośredniczących, proponuje się, aby w badaniu brały udział stacje znajdujące się jak najbliŜej rutera badanej sieci, lub aby ten ruch odbywał się z kilku serwerów jednocześnie, gdzie przy klasie o tak małej wyznaczonej dla niej prędkości wszelkie wpływy zewnętrzne w sieciach pośredniczących nie powinny mieć odniesienia na badanie. Rys. 1. Schemat blokowy algorytmu generowania ruchu dla celów zbadania stanu wystąpienia fluktuacji w łączu internetowym Źródło: Opracowanie własne 11 PoniewaŜ kolejkowanie ruchu sieciowego odbywa się na wyjściu interfejsu sieciowego, tak więc w tej sytuacji ruch przychodzący jest kształtowany na wyjściu interfejsu sieciowego sieci lokalnej, natomiast ruch przychodzący do samego rutera nie podlega kształtowaniu ruchu, naleŜy do kształtowania ruchu zastosować interfejs pośredni. W systemie LINUX do utworzenia interfejsu pośredniego stosuje się dodatek do pakietu iptables: „IMQ” (ang. Intermediate Queueing Device) [84]. Do tego interfejsu pośredniego skierować naleŜy ruch przychodzący do interfejsu sieciowego rutera od strony sieci WAN i ruch kształtować na wyjściu tego interfejsu pośredniego. Takie rozwiązanie pozwala kształtować ruch generowany nie tylko przez sieć lokalną, ale równieŜ przez ruter obsługujący tą sieć. Istotna staje się teŜ kwestia, w jaki sposób naleŜy badać z uzyskanego ciągu liczbowo wyraŜonych prędkości transferu w odstępach sekundowych, stan występowania fluktuacji, czyli kwestia, jakiego aparatu matematycznego uŜyć do tego celu. Z przeprowadzonych badań eksperymentalnych wynika, Ŝe bardzo dobrze do tego celu nadaje się wyznaczanie stosunku mediany (6.1) oraz kwartyla dolnego (6.2) z uzyskanego ciągu liczb (6.3). Me = x0 + h0 ( N Me − nsk −1 ) n0 (6.1) gdzie: N Me n + 1 dla n nieparzystego = 2 n dla n parzystego 2 x0 – dolna granica przedziału mediany, h0 – rozpiętość przedziału mediany, n0 – liczebność przedziału mediany, nsk-1 – liczebność skumulowanego szeregu liczebności z przedziału poprzedzającego przedział mediany Q1 = x0 + h0 ( N Q1 − n sk −1 ) n0 (6.2) gdzie N Q1 n + 1 dla n nieparzystego = 4 n dla n parzystego 4 12 Q1 / Me ≥ β (6.3) β - graniczna wartość stosunku Q1 /Me UŜycie takiego aparatu matematycznego (Rys. 2) pozwala na wyeliminowanie chwilowych odchyleń, tak iŜ do oceny jest brane pod uwagę 50% najbardziej reprezentatywnych próbek. W stanie, kiedy fluktuacja nie występuje, wartości mediany oraz Rys. 2. Schemat blokowy algorytmu uŜytego aparatu matematycznego dla celów zbadania stanu wystąpienia fluktuacji w łączu internetowym Źródło: Opracowanie własne 13 kwartyla dolnego powinny się pokrywać, bądź odchyłki te powinny być bardzo nieznaczne. JeŜeli zaś stan fluktuacji występuje, odchylenia tych wartości są znaczne. Dodatkowo naleŜy porównać równieŜ wartość mediany z wartością nominalną ustanowionej kolejki, które to wartości powinny się pokrywać jeśli stan fluktuacji nie występuje (6.4). Me / K ≥ α (6.4) K - wartość ustanowion ej kolejki [B/s] α - graniczna wartość stosunku Me/K Z przeprowadzonych badań eksperymentalnych wynika, Ŝe do uzyskania Ŝądanego efektu badania, wystarczy juŜ zbadanie 20 próbek, czyli badanie przez 20 sekund, natomiast odstęp czasu między kolejnymi badaniami nie powinien być mniejszy niŜ 5 minut. Rys. 3. Schemat blokowy algorytmu wyznaczenia stanu wystąpienia fluktuacji w łączu internetowym na podstawie wyników uzyskanych za pomocą aparatu matematycznego Źródło: Opracowanie własne 14 Przedstawiony mechanizm przy kaŜdorazowym badaniu zakłada odpowiednie regulowanie wartości nominalnej prędkości łącza podawanej w skryptach wykorzystujących algorytmy hierarchicznego podziału łącza, do rozdzielenia przepustowości tego łącza między uŜytkowników sieci lokalnej (Rys 3.). Mechanizm ten zakłada takŜe więc odpowiednie tworzenie tych skryptów pod kątem jego wykorzystania. Wszystkie podawane wartości prędkości w skrypcie podziału łącza muszą być zmiennymi wyznaczanymi w oparciu o podstawową zmienną, jaką jest nominalna prędkość łącza, regulowana za pomocą przedstawionego w tej pracy mechanizmu. Jeśli istnieją klasy, które muszą mieć stałą wartość prędkości, jak na przykład klasa przeznaczona do celów badania, to podstawowa zmienna wyznaczająca nominalną prędkość łącza, do samego celu podziału na kolejne zmienne podawane klasom musi być pomniejszona o sumę wartości występujących stałych. Zgodnie z zaproponowanym rozwiązaniem, dokonana została jego implementacja dla systemu Linux w języku BASH, następnie poddano go pozytywnej weryfikacji w warunkach laboratoryjnych za pomocą metod eksperymentalnych, z których wielu pokrywających się wyników przedstawiono w pracy reprezentatywne. WdroŜono opracowany model równieŜ w rzeczywistej sieci komputerowej – badanej sieci lokalnej drugiej, i przeprowadzono badania empiryczne, poprzez własne obserwacje autora. Dowód efektywności działania opracowanego modelu we wskazanej badanej sieci rzeczywistej, przy zastosowaniu innych metod badawczych byłby zdaniem autora trudny do uzyskania. 7. Wnioski końcowe W rozprawie podjęty został problem podziału łącza internetowego pomiędzy uŜytkowników sieci lokalnej, w taki sposób, aby z jednej strony uwzględniać ich zapotrzebowanie, z drugiej natomiast przepustowość współdzielonego łącza z siecią Internet. Przedstawiona została analiza istniejących rozwiązań, z których ze względu na przyjęte załoŜenia, wybrane zostało rozwiązanie oparte na algorytmach kolejkowania danych, i na podstawie badań eksperymentalnych wykazano ich duŜą efektywność w realizacji podziału łącza zgodnie z przyjętymi załoŜeniami. Pierwsze z tych załoŜeń zakładało moŜliwość ingerencji na przepływający ruch sieciowy najdalej na ruterze brzegowym tej sieci lokalnej. Drugie z załoŜeń obejmowało konieczność podziału przepustowości łącza między uŜytkowników w sposób dynamiczny, tak aby została ona rozdzielana w całości między 15 uŜytkowników aktualnie korzystających z sieci. Trzecie z załoŜeń zawierało moŜliwość priorytetyzacji pewnych usług sieciowych lub uŜytkowników względem innych. Jak wynikło z analizy teoretycznej moŜliwość spełnienia tych załoŜeń posiadają algorytmy hierarchicznego podziału łącza. W pracy zaproponowano stosowanie tych algorytmów w odpowiednim połączeniu z innymi algorytmami kolejkowania danych, które odpowiednio dobrane pozwalają znacznie poprawić efektywność działania całego algorytmu podziału łącza. Dokonana została implementacja opracowanego zintegrowanego algorytmu podziału łącza, jak równieŜ pozytywny pomiar skuteczności jego działania w badanej sieci lokalnej pierwszej (sieć Wydziału Organizacji i Zarządzania Politechniki Śląskiej) oraz badanej sieci lokalnej drugiej (sieć jednego z oddziałów „Spółdzielni Inwalidów Naprzód” Z. P. Chr.) uzyskany na podstawie badania empirycznego, poprzez własne obserwacje autora. Dowód efektywności działania przy zastosowaniu innych metod badawczych byłby zdaniem autora trudny do uzyskania. Podjęto w pracy następnie rozwaŜania dotyczące wpływu zmiennej w czasie wartości przepustowości łącza z siecią rozległą na efektywność działania algorytmów hierarchicznego podziału łącza, na którym oparty został zaproponowany algorytm zintegrowanego podziału łącza. Udowodniono na podstawie badań eksperymentalnych w rzeczywistej sieci komputerowej – badanej sieci lokalnej drugiej, jak równieŜ na podstawie badań ankietowych wśród grupy administratorów sieci, Ŝe istnieje problem fluktuacji przepustowości łącz internetowych w Polsce, przy czym problem ten dotyczy pewnej części tychŜe łącz. Wykazany został równieŜ na podstawie badań eksperymentalnych silny negatywny wpływ zmiennej w czasie przepustowości łącza z siecią rozległą na skuteczność działania algorytmu hierarchicznego podziału łącza. Zaproponowany został w pracy model, który pozwoliłby ograniczyć negatywny wpływ fluktuacji przepustowości łącza internetowego na algorytmy hierarchicznego podziału łącza. Model ten zakłada działanie, przy minimalnym wykorzystaniu zasobów sprzętowych oraz sieciowych. ZałoŜenie to zostało spełnione dzięki wykorzystaniu okresowego generowania niewielkiego ruchu sieciowego, dla którego została utworzona odrębna klasa z niewielkim statycznym limitem prędkości transferu danych i najniŜszym priorytetem wśród wszystkich klas. Rozwiązanie to bazuje na wykrytej właściwości, polegającej na tym, Ŝe w sytuacji kiedy przepustowość nominalna i rzeczywista są sobie równe, to ruch ten powinien „wpadać” do tej klasy wypełniając ją całkowicie, natomiast jeśli występuje fluktuacja przepustowości, to klasa ta będzie wypełniana nierównomiernie. Dla celów określenia stanu fluktuacji przyjęto aparat matematyczny badający odchylenia pomiędzy 16 wartością ustaloną dla tej kolejki a medianą uzyskaną z próbek osiągniętych prędkości transferu danych okresowo generowanego ruchu, oraz medianą i kwartylem dolnym, gdzie wartości te powinny się pokrywać, ewentualnie róŜniąc nieznacznie. Zaimplementowano opracowany model dla systemu Linux wykorzystując język BASH i poddano go weryfikacji w warunkach laboratoryjnych za pomocą badań eksperymentalnych. Następnie implementację zaproponowanego rozwiązania wdroŜono w rzeczywistej sieci komputerowej – sieci lokalnej drugiej i przeprowadzono badania empiryczne, poprzez własne obserwacje autora. Weryfikacja zaproponowanego modelu wykazała ograniczenie negatywnego wpływu fluktuacji przepustowości łącza internetowego na działanie algorytmów hierarchicznego podziału łącza. Zaproponowany model nie rozwiązuje zadanego problemu całkowicie. Jest on prawidłowy, przy załoŜeniu warunków, w których zmiana wartości aktualnie dostępnej przepustowości jest w czasie trwalsza. Model ten nie został stworzony z myślą o poprawie efektywności rozpatrywanych algorytmów podziału łącza dla chwilowych wahań, gdyŜ nie wywierają one tak negatywnego wpływu na rozpatrywaną z perspektywy dłuŜszego okresu czasu efektywność w/w algorytmów, przynajmniej z punktu widzenia podziału parametru jakim jest przepustowość, o ile częstotliwość ich występowania nie jest nadmiernie duŜa. Biorąc pod uwagę powyŜsze, uznano, Ŝe znacznie istotniejszy negatywny wpływ wywierają dłuŜej trwające w czasie wahania realnej udostępnianej wielkości transferu danych przez łącze internetowe. W pracy skupiono się równieŜ tylko na jednym parametrze zapewnienia jakości usług, tj. podziale przepustowości, gdyŜ parametr ten uznaje się za najbardziej istotny w sieciach o rozpatrywanej architekturze. W kierunku dalszych prac rozpatrywane jest zastąpienie lub wsparcie zaproponowanego w modelu aparatu matematycznego, innymi narzędziami. Głównym zagadnieniem do analizy w/w propozycji jest dokładniejsze określenie, czy wynik badania, rozpatrywany w określonych granicach zamkniętych (od danej wartości do danej wartości fluktuacja wystąpiła, bądź nie), zwraca prawidłowy wniosek stwierdzający stan wystąpienia fluktuacji, jeśli wartość wyniku tego badania znajduje się blisko załoŜonej granicy. Jednym z rozpatrywanych kierunków dalszych prac jest równieŜ wyznaczenie efektywniejszego sposobu generowania ruchu między siecią rozległą a ruterem brzegowym sieci lokalnej na którym wdroŜono zaproponowany w pracy mechanizm, tak aby zminimalizować wpływ czynników zewnętrznych na przesyłane wygenerowane dane. Analizując wyniki przeprowadzonych prac teoretycznych i doświadczalnych trudne wydaje się stworzenie mechanizmów bardziej niskopoziomowych, tj. modernizując sam 17 zadany algorytm hierarchicznego podziału łącza, co pozwoliłoby na ograniczenie wpływu chwilowych wahań nominalnej przepustowości łącza. Algorytmy te zakładają ograniczanie tego parametru zapewnienia jakości usług, i rozdzielenie go między odbiorców danych, według konkretnie zadanych wartości wyraŜonych w jednostkach informacji, których suma równa jest nominalnej przepustowości łącza z siecią WAN. Najwłaściwszym rozwiązaniem wydaje się tu być dzielenie tego łącza, nie poprzez rozdzielenie go na zadane określone wartości, lecz w stosunku procentowym. W ten sposób jednak utracić moŜna jedną z największych zalet tych algorytmów, jaką jest moŜliwość zagwarantowania ściśle określonej, zawsze stałej przepustowości dla danego istotnego odbiorcy czy usługi. Zaproponowany w pracy model, wydaje się być tu zdecydowanie bardziej elastycznym mechanizmem, jakkolwiek nie będącym w stanie ograniczyć wpływu chwilowych wahań. Jak zauwaŜono jednak wcześniej, negatywny wpływ tych chwilowych wahań, o ile ich częstotliwość nie jest zbyt duŜa, jest nieznaczny. Wyniki przeprowadzonych w rozprawie prac teoretycznych i doświadczalnych pokazują, Ŝe tezy sformułowane w pracy są właściwe. Tym samym osiągnięto załoŜony cel główny rozprawy. W trakcie realizacji rozprawy doktorskiej powstał szereg publikacji własnych. Autor pragnie złoŜyć serdeczne podziękowania Panu profesorowi Andrzejowi Grzywakowi za przekazaną wiedzę, poświęcony czas i zaangaŜowanie w powstanie niniejszej rozprawy doktorskiej. 18 BIBLIOGRAFIA [1] Breyer R., Riley S.: Switched, Fast i Gigabit Ethernet. Wyd. Helion, Gliwice 2000 [2] Sportack M: Sieci komputerowe – Księga eksperta. Wyd. Helion, Gliwice 1999 [3] Scrimger R., LaSalle P., Leitzke C., Parihar M., Gupta M.: TCP/IP – Biblia, Wyd. Helion, Gliwice 2002 [4] Debian. http://www.debian.org [5] Iptables. http://www.netfilter.org [6] Czarnowski A.: Nie tylko zdrowy rozsądek. PC Kurier 4/2000 [7] Stankiewicz R., Jajszczyk A.: Sposoby zapewnienia gwarantowanej jakości usług w sieciach IP. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, Nr 2/2002 [8] Hardy W. C.: „Quality of Service” Measurement and Evaluation of Telecomunications Quality of Sernice. John Willey & Sons Ltd., England 2001 [9] IP Quality of Service FAQ. Quality of Serviceforum.com, Wrzesień 1999 [10] E. Brent Kelly: Quality of Service In Internet Protocol (IP) Networks. Infocomm 2002 [11] Gautam R.: Quality of Service in Data Networks: Products. http://www.cse.ohiostate.edu/~jain/cis788-99/ [12] Quality of Service (Quality of Service). http://www.objs.com/survey/Quality of Service.htm [13] Johnson V.: Quality of Service – Glossary of Terms. Quality of Serviceforum.com, Maj 1999 [14] Ferguson P., Huston G.: Quality of Service: Delivering Quality of Service on the Internet and in corporate networks. John Willey & Sons Ltd., England 2001. [15] Szarecki R.: Quality of Service – jakość transmisji w Internecie. Nowoczesne Technologie w Sieciach Teleinformatycznych, Numer Specjalny 01/2001 [16] Ferguson P., Huston G.: Quality of Service in the Internet: Fact, fiction, or Compromise? INET’98 [17] Peukhuri M.: IP Quality of Service. http://keskus.hut.fi/u/puhuri/htyo/Tik-110.551/iwork/ [18] Turski J.: Gwarantowana jakość usług (Quality of Service) w sieciach IP. Praca mgr, Politechnika Łódzka, Łódź 2003 [19] Comer E. D.: Sieci komputerowe i Intersieci. Wyd. WNT, Warszawa 2003 [20] Miś B.: Historia Internetu. http://www.wssmia.kei.pl/pomoce/Historiapl.pdf [21] Information Sciences Institute University of Southern Kalifornia: Internet protocol, DARPA internet program, protocol specification. RFC 791. [22] Almquist P.: Type of Service in the Internet Protocol Suite. RFC 1349. 19 [23] Braden R., Clark D., Shenker S.: Integrated Services In the Internet Architecture: An Overview. RFC 1633, Czerwiec 1994. [24] Braden R., Zhang L., Berson S., Herzog S., Jamin S.: Resource Reservation Protocol (RSVP) – Version 1 Functional Specification. RFC 2205, Wrzesień 1997. [25] Sikorski I.: Sieci szkieletowe: Jakość usług gwarantowana. Telenet Forum. Wrzesień 2002. [26] Nichols K., Blade S., Baker F., Black D.: Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers. RFC 2474. [27] Jacobson V., Nichols K., Poduri K.: An Expedited Forwarding PHB. RFC 2598. [28] Heinanen J., Baker F., Weiss W., Wroclawski J.: Assured Forwarding PHB Group. RFC 2597. [29] Zawadzki M: DiffServ w sieciach pakietowych - Równi i równiejsi. Telenet Forum. Sierpień 2002. [30] FreeBSD. http://www.freebsd.org [31] Shenker S., Patridge C., Guerin R.: Specification of Guaranteed Quality of Sernice. RFC 2212. [32] Wroclawski J.: Specification of the Controlled-Load Network Element Service. RFC 2211. [33] Stankiewicz R., Jajszczyk A.: Wieloprotokołowa komutacja etykietowa (MPLS) i jej rola w zapewnianiu jakości usług w sieciach IP. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, Nr 4/2002 [34] Le Faucheur F., Wu L., Davie B., Davari S., Vaanen P., Krishnan R., Cheval P., Heinan J.: Multi-Protocol Label Switching (MPLS) Support of Differentiated Services. RFC 3270. [35] Błedowski H.: Sterowanie ruchem współczesnych sieci pakietowych. Telenet Forum. Październik 2002. [36] Turski J.: Gwarantowana jakość usług (QoS) w sieciach IP. Praca dyplomowa magisterska. Politechnika Łódzka. Czerwiec 2003 [37] Cisco: Internetworking technology handbook. http://www.cisco.com [38] Semeria C.: Supporting differentiated service classes: queue scheduling disciplines. Juniper Networks [39] Nagle J.: On Packet Switches With Infinite Storage. RFC970 [40] Almesberger W.: Linux network traffic control – Implementation overview. EPFL ICA. April 1999 20 [41] P. Mckenney. Stochastic Fair Queuing. In Internetworking: Reserach and Experience, Vol. 2, January 1991 [42] Demers A., Keshav S., Shenker S.: Analisys and Simulation of a Fair Queuing Alghorithm. Internetworking Research and Experience. October 1990. [43] Guerin R., Peris. V.: Quality-of-service in packet networks: basic mechanisms and directions. Computer Networks Volume: 31, Issue: 3, February 1999 [44] Floyd S., Jacobson V.: Link-sharing and resource management models for packet networks. IEEE/ACM Transactions on Networking. Vol.3, No. 4 (Aug. 1995) [45] Clark D. D., Jacobson V.: Flexible and Efficient Resource Management for Datagram Network. Unpublished manuscript. April 1991 [46] Katevenis M., Sidiropoulos S., Courcoubetis C.: Weighted Round-Robin Cell Multiplexing in a General-Purpose ATM Switch Chip. IEEE Journal on Selected Areas in Communications, Vol. SAC-9, No. 8, October 1991 [47] Shredhar M., Varghese G.: Efficient fair queueing using deficit round robin. IEEE/ACM Trans. Networking (4) 3. November 1994 [48] Partridge C.: Token bucket with leaky bucket rate control. Gigabit Networking, AddisonWesley, Reading, MA. 1994. [49] Astuti D.: Packet handling. Technical report. Department of Computer Science, University of Helsinki, 2003. [50] Zhao W., Olshefski D., Schulzrinne H.: Internet Quality of Service – An overview. Columbia University Technical Report, Feb. 2000. [51] Maceluch R., Kasprzyk P., Domański A.: Dynamiczny przydział pasma uŜytkownika sieci z wykorzystaniem usługi QoS w systemie LINUX. ZN Pol. Śl. Studia Informatica Vol. 24, No 2A (53), Gliwice 2003. [52] Czachórski T.: Modele kolejkowe w ocenie efektywności sieci i systemów komputerowych. Wyd. Politechniki Śląskiej 1999. [53] Tuner J. S.: New Directions in Communications. IEEE Communications Magazine, 24(10), October 1986. [54] Liu E. Y.: On End-to-End Performance of Multi-service Concatenation. Proceedings of IBM Center for Advanced Study Conference (CASCON'98). November 1998. [55] Wagner K.: Short Evaluation of Linux’s Token Bucket Filter (TBF) Queuing Discipline. May 2001. [56] Anker T., Bergman E., Dolev D., Gelbourt I.: Hierarchical Bandwidth Sharing Made Simple. Technical Report. The Hebrew University of Jerusalem. February 2002 21 [57] Devera M.: Hierarchical Token Bucket. http://luxik.cdi.cz/~devik/qos/htb/ [58] Stoica I., Zhang H., Eugene Ng T. S.: A Hierarchical Fair Service Curve Algorithm for link-sharing, real-time and priority services. Proceedings of SIGCOMM'97. Carnegie Mellon University. [59] Benett J. C. R., Zhang H.: Hierarchical packet fair queuing algorithms. Proc. SIGCOMM, August 1996 [60] Floyd S., Jacobson, V.: Random Early Detection gateways for Congestion Avoidance. IEEE/ACM Transactions on Networking, vol. 1, no. 4, August 1993. [61] Weighted Random Early Detection. http://www.cisco.com/univercd/cc/td/ /doc/product/software/ios112/ios112p/gsr/wred_gs.htm [62] Rusu V., Subredu M., Sparela I., Vraciu V.: Implementing real time Packet Forwarding Policies using HTB. http://linux.dej.ro/Docs/HTB-DiabloPresentation.pdf [63] Kuzniecow A.: Iproute2. ftp://ftp.icm.edu.pl/pub/Linux/iproute [64] Iptables, Patch-O-Matic. http://www.netfilter.org/ [65] Brown M.: Traffic Control HOWTO. http://www.tldp.org/HOWTO/Traffic-ControlHOWTO/ [66] Linux Advanced Routing & Traffic Control. http://www.lartc.org [67] Maxwell G., van Mook R., van Oosterhout M.,Schroeder P., Spaans J.: Linux Advanced Routing & Traffic Control HOWTO, http://en.tldp.org/HOWTO/Adv-Routing-HOWTO/ [68] Layer7-Filter. http://l7-filter.sourceforge.net/ [69] CISCO Network-Based Application-Recognition (NBAR). http://www.cisco.com/ [70] Linux Kernel - http://www.kernel.org [71] Mortensen C.: WRR. http://wipl-wrr.sourceforge.net [72] Eugene Ng T. S.: HFSC. http://trash.net/~kaber/hfsc/ [73] Atanasov A.: ESFQ. http://www.ssi.bg/~alex/esfq/ [74] Scholz H.: Wormulon. http://www.wormulon.net/ [75] IPP2P. http://rnvs.informatik.uni-leipzig.de/ipp2p/ [76] Iperf. http://dast.nlanr.net/Projects/Iperf/ [77] Tannenbaum A. S.: Computer Networks. Prentice-Hall, Inc. New Jersey, 1996. [78] Coene S.: HTB tests. http://www.docum.org/docum.org/ [79] Needham R.: Denial of Service: An Example. Communications of the ACM, 37(11):42– 47, November 1994. [80] Gasidło P.: Ipt_account. http://www.barbara.eu.org/~quaker/ipt_account/ 22 [81] Hertmeier D.: Prioritizing empty TCP ACKs with pf and ALTQ. http://www.benzedrine.cx/ [82] Szczerba W.: Sterowanie ruchem w sieciach Linux. Praca magisterska. Poznań 2004 [83] T. Oetiker, D. Rand: MRTG: http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ [84] IMQ. http://www.linuximq.net/ [85] Obretanov A., Dimitrow B.: Teoria masowej obsługi. Poradnik. PWN. Warszawa 1989. 23