Rozdział Algorytmy obsługi uŜytkowników w warunkach fluktuacji
Transkrypt
Rozdział Algorytmy obsługi uŜytkowników w warunkach fluktuacji
Rozdział Algorytmy obsługi uŜytkowników w warunkach fluktuacji przepustowości łącza internetowego w sieciach LAN/WAN Jarosław Karcewicz Politechnika Śląska, Wydział Organizacji i Zarządzania, Katedra Informatyki i Ekonometrii Jarosł[email protected] Streszczenie We współczesnych czasach notuje się bardzo dynamiczny rozwój rozległej sieci komputerowej Internet. W artykule omówiono zagadnienia związane z zapewnieniem jakości usług dla uŜytkowników sieci lokalnej korzystających z zasobów sieci rozległej Internet w szczególnych warunkach, jaką jest zmienna w czasie dostępna przepustowość łącza internetowego. 1. Wstęp Klasycznym dziś rozwiązaniem wielu sieci jest połączenie sieci lokalnych z siecią rozległą 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łą, rywalizują więc o dostęp do niej między sobą. Standardową metodą zarządzania dostępem do buforów interfejsów sieciowych ruterów jest „pasywne zarządzanie kolejką”, z zastosowaniem mechanizmu „Pierwszy Wszedł, Pierwszy Wyjdzie” (ang. First In First Out, FIFO), co oznacza, Ŝe Ŝaden pakiet nadchodzący nie będzie specjalnie traktowany. Efektem stosowania mechanizmu FIFO pasywnego zarządzania kolejką, jest powstawanie zatorów łącza, oraz powstawanie problemów zawłaszczenia sieci, tj. blokady łącza poprzez zdominowanie go przez uŜytkownika, usługę, bądź ich grupę, dla pozostałych uŜytkowników w sieci lokalnej. Najlepszym mechanizmem zapewnienia jakości w sieciach o omawianej architekturze jest na obecny czas, kształtowanie ruchu z wykorzystaniem algorytmów kolejkowania danych. Najczęściej zaś stosuje się do tego celu algorytmy hierarchicznego podziału 2 J. Karcewicz łącza. W [1] przeprowadzone zostały badania mają na celu sprawdzenie efektywności działania tegoŜ algorytmu w warunkach zmieniającej się w czasie przepustowości łącza internetowego. Badania te potwierdziły, Ŝe fluktuacja ta wywiera bardzo duŜy wpływ na efektywność tych algorytmów. W niniejszym artykule przedstawione zostały kolejne badania mające na celu weryfikację zaproponowanego w [2] modelu pozwalającego na poprawę efektywności algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości w łączu internetowym. 2. Efektywność 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 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 w [3] poprzez badania ankietowe wśród administratorów sieci, oraz poprzez badania eksperymentalne w rzeczywistej sieci komputerowej. W [1] wykazano, Ŝe występowanie takich sytuacji na algorytm hierarchicznego podziału łącza, które to algorytmy są jednymi z najczęściej stosowanych do podziału łącza, wpływa bardzo niekorzystnie, znacznie pogarszając jego efektywność. Istotne staje się więc opracowanie mechanizmu, który byłby w tanie poprawić efektywność działania algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości pasma internetowego. W [2] zaproponowana została metodologia poprawy efektywności w/w algorytmów 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” [4] (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. 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. Algorytmy obsługi uŜytkowników w warunkach fluktuacji ... 3 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ń transferu 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ć odniesienia 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) [5]. Do tego interfejsu pośredniego skierować naleŜy ruch przychodzący do interfejsu sieciowego 4 J. Karcewicz 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ć. Rys. 1. Schemat blokowy algorytmu generowania ruchu dla celów zbadania stanu wystąpienia fluktuacji w łączu internetowym. 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 oraz kwartyla dolnego z uzyskanego ciągu liczb (1). Q1 / Me ≥ β (1) β - graniczna wartość stosunku Q1 /Me Algorytmy obsługi uŜytkowników w warunkach fluktuacji ... 5 START Wczytanie uzyskanego z wygenerowanego ruchu ciągu liczb (prędkości transferu) Wyznaczenie kwartyla dolnego i mediany z uzyskanego ciągu liczb (prędkości transferu) Wyznaczenie stosunku kwartyl/mediana A=(kwartyl_dolny/mediana)*100 Wczytanie wartości wielkości specjalnie utworzonej klasy dla wygenerowanego ruchu: kolejka Wczytanie wartości procentowej dozwolonego stosunku mediana/kolejka: stosmedkol Wczytanie wartości procentowej dozwolonego stosunku mediana/ kwartyl_dolny: stosmedkwartyl Wyznaczenie stosunku wartość_kolejki/mediana B=(kolejka/mediana)*100 KONIEC Rys. 2. Schemat blokowy algorytmu uŜytego aparatu matematycznego dla celów zbadania stanu wystąpienia fluktuacji w łączu internetowym 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 kwartyla dolnego 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. 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 (2). 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. 6 J. Karcewicz Me / K ≥ α (2) K - wartość ustanowion ej kolejki [B/s] α - graniczna wartość stosunku Me/K 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 (Rys. 3). 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. Rys. 3. Schemat blokowy algorytmu wyznaczenia stanu wystąpienia fluktuacji w łączu internetowym na podstawie wyników uzyskanych za pomocą aparatu matematycznego Algorytmy obsługi uŜytkowników w warunkach fluktuacji ... 7 3. Pomiary skuteczności modelu zwiększającego efektywność algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza z siecią WAN Pomiar skuteczności zaproponowanego modelu został poddany dwuetapowej weryfikacji: poprzez badania laboratoryjne, oraz badania w wybranej rzeczywistej sieci komputerowej. Badania laboratoryjne przeprowadzone zostały przy pomocy dwóch ruterów, oraz 5 komputerów stacjonarnych (Rys. 4). W pierwszym ruterze poprzez zmianę wartości transferu w czasie przekazywanego do rutera drugiego, zasymulowano łącze internetowe, w którym występuje problem fluktuacji przepustowości. Na ruterze drugim została zainstalowana implementacja zaproponowanego modelu, który ma pozwolić na zwiększenie efektywności algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza z siecią WAN. W badaniu zasymulowany został ruch do komputerów w sieci lokalnej imitujący rzeczywisty ruch w sieci, w której kaŜdy z komputerów otrzymał prawo do równej części łącza, tj. 1/5 jej wartości, gdzie nominalną wartość łącza ustalono na poziomie 1000 kb/s. Przy czym ustanowiona została równieŜ dodatkowa klasa zgodnie z załoŜeniami dla zaimplementowanego modelu. Rys. 4. Charakterystyka stanowiska badawczego dla badania dot. modelu zwiększającego efektywność wpływu róŜnych wartości EIR i CIR działania algorytmu Hierarchicznego Wiadra śetonów w warunkach fluktuacji przepustowości łącza z siecią WAN przy równym podziale danych między pięć komputerów. Przewidywanym efektem w badaniu była odpowiednia zmiana wartości przepustowości podawanego dla skryptu podziału łącza, zgodnie z jego rzeczywistą wartością, który to efekt przeprowadzonego badania moŜna zaobserwować na Rys. 5. Jak moŜna zaobserwować na wykresie, linia niebieska (czyli przepustowość wyznaczona przez zaimplementowany model) podąŜa za linią fioletową (czyli 8 J. Karcewicz zasymulowana przepustowość rzeczywista łącza internetowego), nie przekraczając linii Ŝółtej (poziomu granicznego 50% wartości nominalnej przepustowości łącza internetowego). Spełniony więc został zakładany efekt działania zaproponowanego modelu, w którym przepustowość podawana skryptowi podziału łącza zmienia się zgodnie z rzeczywistą przepustowością łącza internetowego, dzięki czemu efektywność działania algorytmu hierarchicznego podziału łącza ulega znacznej poprawie. 1200 1000 Predkosc wyznaczona Predkosc rzeczywista Wartość graniczna [kb/s] 800 600 400 200 0 1 15 29 43 57 71 85 99 113 127 141 155 [sekundy] Rys. 5. Wykres skuteczności modelu zwiększającego efektywność algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza z siecią WAN. W następnym etapie implementacja zaproponowanego modelu została wdroŜona w rzeczywistej sieci komputerowej. WdroŜenie tegoŜ modelu pozwoliło wykorzystać większą osiągalną dla łącza internetowego tej sieci prędkość transmisji danych, przy ograniczeniu wpływu fluktuacji rzeczywistej przepustowości na algorytm hierarchicznego podziału łącza. ZauwaŜalny efekt działania modelu był adekwatny do efektów wynikłych podczas badań laboratoryjnych. W efekcie wdroŜenia modelu w sieci lokalnej drugiej, wniesiona została do zaproponowanego modelu zmiana, polegająca na tym, Ŝe zostaje przed załoŜonym w modelu badaniem zbadana ogólna aktualna przepustowość wykorzystywana przez sieć lokalną, w momencie gdy średnia prędkość transmisji danych od ostatniego badania nie przekracza 25% nominalnej wartości łącza, badanie to nie zostaje wykonane. Dzięki takiej zmianie, ominięto niepotrzebne przeprowadzanie badania w okresach gdy łącze internetowe jest praktycznie nie wykorzystywane przez sieć lokalną, poniewaŜ omawiany problem dotyczy tylko sytuacji pełnego zapełnienia łącza z siecią rozległą. 4. Podsumowanie W artykule dokonana została weryfikacja zaproponowanego w [2] modelu pozwalającego na ograniczenie opisanego w [1, 3] problemu efektywności działania Algorytmy obsługi uŜytkowników w warunkach fluktuacji ... 9 algorytmów hierarchicznego podziału łącza, które są obecnie głównymi wykorzystywanymi do ustanowienia w sieci lokalnej podziału łącza internetowego pomiędzy uŜytkowników sieci Weryfikacja zaproponowanego w [2] modelu wykazała ograniczenie negatywnego wpływu fluktuacji przepustowości łącza internetowego na działanie algorytmów hierarchicznego podziału łącza. WdroŜenie więc zaproponowanego modelu pozwoli na usprawnienie przesyłania informacji w sieciach lokalnych posiadających problemy ze zmienną w czasie nominalną przepustowością łącza internetowego. 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 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 10 J. Karcewicz 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. LITERATURA 1. 2. 3. 4. 5. Karcewicz J., Kapczyński A., Psurek K.: Sterowanie przepływem ruchu sieciowego. Wyd. WNT: Współczesne problemy sieci komputerowych, Warszawa 2004 Karcewicz J., Banasik A.: Metody poprawy efektywności algorytmów hierarchicznego podziału łącza w warunkach fluktuacji przepustowości łącza metody sieciach LAN/WAN. Wysokowydajne Sieci Komputerowe. WKiŁ, Warszawa 2005. Karcewicz J.: Występowanie fluktuacji przepustowości łączy internetowych w Polsce. Wysokowydajne Sieci Komputerowe. WKiŁ, Warszawa 2005. Kuzniecow A.: Iproute2. ftp://ftp.icm.edu.pl/pub/Linux/iproute IMQ. http://www.linuximq.net/