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/

Podobne dokumenty