Rozdział - Katedra Informatyki i Ekonometrii
Transkrypt
Rozdział - Katedra Informatyki i Ekonometrii
Rozdział Metody poprawy efektywności algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza metody sieciach LAN/WAN. Jarosław KARCEWICZ Politechnika Śląska, Katedra Informatyki i Ekonometrii [email protected] Arkadiusz BANASIK Politechnika Śląska, Katedra Informatyki i Ekonometrii [email protected] Streszczenie W niniejszym artykule został przedstawiony problem podziału łącza internetowego między uŜytkowników sieci lokalnej, oraz problem nieefektywności algorytmów hierarchicznego podziału łącza, najczęściej wykorzystywanych w sieciach o takiej architekturze do podziału tegoŜ łącza internetowego, w warunkach zmiennej przepustowości przez niego udostępnianej. Następnie dla podniesienia efektywności tych algorytmów, została zaproponowana metodologia mechanizmu, który pozwala na badanie występowanie fluktuacji przepustowości przy minimalnym wykorzystaniu zasobów sprzętowych i sieciowych. 1. Wstęp Zdecydowanie dominującym w sieci Internet protokołem warstwy sieciowej modelu komunikacji ISO/OSI jest IP. Udostępnia on wygodny mechanizm adresowania komputerów oraz ustalania trasy pakietów pomiędzy sieciami. Jednak brakuje mu metod kontroli integralności przesyłanych informacji. Problem zawodnej transmisji danych rozwiązano projektując protokół wyŜszej warstwy transportowej TCP, który gwarantuje przy pomocy szeregu odpowiednio następujących po sobie potwierdzeń, Ŝe dane dotrą do wyznaczonego celu. 2 J. Karcewicz, A. Banasik Projektując protokół TCP/IP najwaŜniejszym wyznaczonym celem było zagwarantowanie dostarczenia informacji z jednego punktu do drugiego, był to główny wymóg poprawnego działania ówcześnie istniejących usług sieciowych. Sieć Internet jednak rozwija się bardzo szybko, sama gwarancja dostarczenia informacji stała się juŜ niewystarczająca, i oprócz niej zaczęto wymagać takŜe innych kryteriów jakości. W odpowiedzi na te wymagania wprowadzony został w Ŝycie QoS (Quality of Service). 2. Quality of Service w sieciach LAN/WAN Klasycznym dziś rozwiązaniem wielu sieci jest połączenie sieci lokalnych z siecią Internet, wykorzystujące do komunikacji protokół IP za pośrednictwem urządzeń zwanych ruterami. W sieci o takiej architekturze znajduje się określona ilość uŜytkowników, którzy współdzielą łącze z siecią rozległą, czyli więc rywalizują o dostęp do niej między sobą. Podstawową zasadą dostępu do sieci w standardach, z których najczęściej korzystają sieci IP jest zasada „kto pierwszy, ten lepszy”, czyli obsługa metodą FIFO (First In First Out). Zasada ta oznacza, Ŝe pierwszeństwo do zasobów sieci ma uŜytkownik, który pierwszy wyśle swoje Ŝądanie. W okresie powstawania sieci Internet i jej początkowych rozwojów, dane przesyłane przez tą sieć były nieznacznych rozmiarów. ZałoŜenie takiej metody dostępu do sieci, pozwalało na maksymalizację czasu dostarczenia informacji. Z czasem ta sytuacja zaczęła się jednak zmieniać. UŜytkownicy coraz częściej korzystają ze zdalnie uruchamianych aplikacji, Ŝądają szybkiego dostępu do olbrzymich archiwów danych, przesyłają dźwięk i obraz w czasie rzeczywistym, co oznacza, Ŝe przesyłane dane są duŜych rozmiarów. Łącze z siecią rozległą stało się więc „wąskim gardłem”, które ma znacznie mniejsze moŜliwości przesyłu informacji niŜ zapotrzebowanie uŜytkowników współdzielących to łącze. Pobranie takich danych o duŜych rozmiarach przez uŜytkownika poprzez łącze z siecią Internet wymaga pewnej ilości czasu, a co się z tym wiąŜe oraz zgodnie z metodą FIFO dostępu do tego łącza, powoduje to całkowite zajęcie tego łącza aŜ do momentu zakończenia pobrania tych danych. Przykładowo pobranie filmu o objętości 700 MB za pośrednictwem łącza o pojemności 1 [Mbit/s] zajmuje około 90 minut. Przy zastosowaniu metody FIFO pobranie takiego filmu przez jednego z uŜytkowników w sieci z pełną prędkością łącza, oznacza więc blokadę dostępu do tego łącza przez około 90 minut, aŜ do ukończenia jego ściągnięcia. W czasie tym Ŝaden inny uŜytkownik nie moŜe korzystać z zasobów sieci Internet. NaleŜy przy tym zaznaczyć, Ŝe prędkość ściągania danych zaleŜy jednak nie tylko od posiadanego łącza z siecią rozległą, ale od aktualnej pojemności kaŜdego z poszczególnych łącz pośredniczących przy poborze danych. Oznacza to, Ŝe prędkość ściągania danych jest taka, jaką umoŜliwia jedno z łącz pośredniczących o najniŜszej aktualnie przepustowości. W sieciach, w których znajduje się dość duŜa ilość uŜytkowników, przy pobieraniu przez nich danych o nieduŜej wielkości, ale za to przy duŜej intensywności pobierania tych danych, moŜe takŜe wystąpić sytuacja wypełnienia moŜliwości dostępnej przepustowości łącza z siecią Internet. Zasada FIFO powoduje więc, co zostało uwidocznione na rys. 1, Ŝe im większa ilość danych będzie przepływać przez łącze z siecią rozległą (linia a), tym moŜliwość ilości Metody poprawy efektywności algorytmów hierarchicznego podziału łącza ... 3 pobrania nowych danych będzie proporcjonalnie mniejsza (linia b), aŜ do stanu, w którym przy 100% zajętości łącza, moŜliwości pobrania nowych danych nie ma. Rys. 1. Wpływ metody FIFO na Ŝądania poboru danych z sieci Internet do uŜytkowników w sieci lokalnej. Charakterystyczne dla sieci o omawianej architekturze jest to, Ŝe ruch między siecią lokalną a siecią rozległą, jest w przewaŜającej części ruchem unicastowym, przy czym w tej wymianie informacji występuje dość duŜa ilość tych strumieni unicastowych. Transmisja danych między tymi sieciami jest więc bardzo niejednorodna, występuje bardzo duŜa ilość róŜnorodnych strumieni danych od róŜnorodnych nadawców do róŜnorodnych odbiorców, dotyczącej duŜej ilości róŜnorodnych usług przesyłanych między tymi sieciami. Usługi te moŜna najczęściej w pewien sposób schierarchizować w randze waŜności. WaŜniejsze z reguły dla uŜytkowników na przykład jest szybsze ściągnięcie strony WWW niŜ szybsze pobieranie danego pliku danych, których transmisja odbywa się w tym samym czasie. Istnieje więc takŜe poza podziałem łącza między uŜytkowników, problem zapewnienia jakości transmisji dla danych usług, które są priorytetyzowane względem innych. Przy czym ta priorytetyzacja usług, polega na fakcie, Ŝe uŜytkownik jest skłonny mieć zapewnione lepsze parametry transmisji dla danej usługi, kosztem innych usług. Zdecydowanie najczęściej stosowanym mechanizmem zapewnienia jakości w sieciach o omawianej architekturze do celów podziału przepustowości łącza Internetowego między uŜytkowników sieci lokalnej, jest kształtowanie ruchu z wykorzystaniem algorytmów hierarchicznego podziału łącza, które zapewnia rozwiązanie wcześniej przedstawionych problemów. Algorytmy hierarchicznego podziału łącza zostały zaproponowane w [1] i miały na celu pozwolić na dokładnie określony podział parametrów jakości, przede wszystkim przepustowości łącza, pomiędzy zdefiniowane klasy ruchu. Klasa ruchu wg. [2] jest „pewnym agregatem ruchu grupowanym razem dla celów jakichś sposobów zarządzania 4 J. Karcewicz, A. Banasik nim”. Klasy te mogą być wyodrębniane na podstawie róŜnych parametrów znajdujących się w nagłówkach protokołów, np. adres IP nadawcy lub odbiorcy, port nadawcy lub odbiorcy, itd. W badaniach zawartych w [3] udowodniono na przykładzie algorytmu „Hierarchical Token Bucket” (HTB) [4] duŜą efektywność tych algorytmów do celów podziału przepustowości łącza Internetowego między uŜytkowników sieci lokalnej. JednakŜe w pracy tej udowodniono takŜe, Ŝe efektywność ta jest bardzo silnie uzaleŜniona od stabilności nominalnej przepustowości tego łącza. Jeśli przepustowość ta nie jest stała i staje się zmienna w czasie, efektywność tych algorytmów znacznie spada. Istotne staje się więc opracowanie mechanizmu, który pozwoliłby na poprawę tej efektywności w warunkach fluktuacji przepustowości łącza Internetowego. 3. Poprawa efektywności algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza 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 takie 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 proponuje się metodologię mechanizmu według następującego algorytmu, przedstawionego na przykładzie systemu operacyjnego LINUX: 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” [5] (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-3 są powtarzane co sekundę przez ustalony okres czasu. 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. Metody poprawy efektywności algorytmów hierarchicznego podziału łącza ... 5 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, 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 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ć wpływu na badanie. 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) [6]. 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 6 J. Karcewicz, A. Banasik 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 mediany oraz kwartyla dolnego i górnego z uzyskanego ciągu liczb. UŜycie takiego aparatu matematycznego 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 kwartyla dolnego i górnego powinny się pokrywać, bądź odchyłki te powinny być bardzo nieznaczne. Jeśli zaś stan fluktuacji występuje, odchylenia tych wartości są znaczne. 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. 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 rozdzielenie przepustowości tego łącza między uŜytkowników sieci lokalnej. Mechanizm ten zakłada teŜ 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 tym artykule 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. 4. Podsumowanie Niniejszy artykuł przedstawił problem podziału łącza internetowego między uŜytkowników sieci lokalnej, i wskazał następnie problem nieefektywności algorytmów hierarchicznego podziału łącza, najczęściej wykorzystywanych w sieciach o takiej architekturze do podziału tegoŜ łącza internetowego w warunkach zmiennej przepustowości przez niego udostępnianej. Dla podniesienia efektywności tych algorytmów, została zaproponowana metodologia mechanizmu, uzyskana na podstawie badań eksperymentalnych, która pozwala na badanie występowanie fluktuacji przepustowości, przy czym naleŜy zauwaŜyć, Ŝe metodologia ta pozwala na wykonywanie takiego badania, przy minimalnym wykorzystaniu zasobów sprzętowych i sieciowych. Metodologia ta zakłada okresowe generowanie dodatkowego ruchu o bardzo niskiej prędkości i na jego podstawie sprawdzanie występowanie stanu fluktuacji zgodnie z przedstawionym algorytmem. Kolejnym etapem badań opracowanej metodologii mechanizmu, będzie jego implementacja dla ruterów opartych o system operacyjny LINUX, oraz badań Metody poprawy efektywności algorytmów hierarchicznego podziału łącza ... 7 efektywności zaimplementowanego rozwiązania. W dalszej kolejności takŜe opracowanie skuteczniejszego mechanizmu generowania ruchu TCP dla celów badania. LITERATURA 1. 2. 3. 4. 5. 6. Floyd S., Jacobson V.: Link-sharing and resource management models for packet networks. IEEE/ACM Transactions on Networking. Vol.3, No. 4 (Aug. 1995) T., Bergman E., Dolev D., Gelbourt I.: Hierarchical Bandwidth Sharing Made Simple. Technical Report. The Hebrew University of Jerusalem. February 2002 Karcewicz J., Kapczyński A., Psurek K.: Sterowanie przepływem ruchu sieciowego. Wyd. WNT: Współczesne problemy sieci komputerowych, Warszawa 2004 Devera M.: HTB. http://luxik.cdi.cz/~devik/qos/htb/. Kuzniecow A.: Iproute2. ftp://ftp.icm.edu.pl/pub/Linux/iproute IMQ. http://www.linuximq.net/