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/

Podobne dokumenty