Robert Dekowski. Zastosowanie zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Robert Dekowski. Zastosowanie zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowych"

Transkrypt

1 Instytut Badań Systemowych Polskiej Akademii Nauk Robert Dekowski Zastosowanie zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowych Rozprawa doktorska napisana pod kierunkiem prof. nadzw. dr hab. inż. Jacka Malinowskiego. Warszawa 200

2

3 Spis treści Wstęp... 7 Rozdział... 4 Protokół OSPF zastosowanie i własności Skrócony opis protokołu OSPF Historia protokołu OSPF Podstawowe własności protokołu OSPF Wsparcie protokołu OSPF dla różnych typów sieci Obsługa masek IP o zmiennej długości Podział systemów autonomicznych na obszary Budowa i wykorzystanie bazy stanów łączy Budowa i wykorzystanie drzewa najkrótszych ścieżek Typy komunikatów używanych przez OSPF Rodzaje routerów Dodatkowe własności protokołu OSPF Bezpieczeństwo w protokole OSPF Równoważenie obciążenia w protokole OSPF Inne rozwiązania równoważenia obciążenia Podsumowanie Rozdział Równoważenie obciążenia z wykorzystaniem tras o równym i nierównym koszcie Ogólny opis proponowanego rozwiązania Szczegółowy opis proponowanego rozwiązania Warunki niezbędne do włączenia (wyłączenia) równoważenia obciążenia typu NK Utworzenie tablicy routingu zawierającej odpowiednie wpisy Rozdzielenie ruchu sieciowego na różne trasy według przyjętego algorytmu Przykłady działania protokołu OSPF Dodatkowe aspekty proponowanego rozwiązania Sposób generowania i dystrybucji parametrów beta Spodziewane wyniki Rozdział Teoretyczne aspekty głównego zagadnienia badawczego

4 3.. Graf dwudzielny jako model środowiska sieciowego Sformułowanie zadań optymalizacji Sformułowanie zagadnienia optymalizacji jako zadania programowania liniowego Sformułowanie zagadnienia optymalizacji jako zadania programowania NCSP Zasada działania metody dokładnej - Simplex Budowa algorytmu wyznaczania przepustowości środowiska sieciowego Ograniczenia algorytmu wyznaczania przepustowości środowiska sieciowego Zmienne decyzyjne w metodzie SW wykorzystującej algorytm Zbiór rozwiązań dopuszczalnych dla metody SW wykorzystującej algorytmu wyznaczania przepustowości środowiska sieciowego Analiza funkcji celu dla metody SW Obliczenia i symulacja dla środowiska z rys Opis przyjętych warunków początkowych Obliczenia Symulacja Inne przykłady Rozdział Optymalizacja przepustowości środowiska sieciowego z zastosowaniem metody symulowanego wyżarzania Szczegółowy opis metody badawczej Propozycja udoskonalenia algorytmu symulowanego wyżarzania Zastosowanie symulowanego wyżarzania do optymalizacji przepustowości środowiska sieciowego Scenariusze przeprowadzonych badań Złożoność obliczeniowa zastosowanej metody Podsumowanie Rozdział Wyniki przeprowadzonych badań Wyniki otrzymane metodą symulowanego wyżarzania Wyniki badań przeprowadzonych z wykorzystaniem metody dokładnej Podsumowanie... 5 Rozdział Analiza uzyskanych wyników

5 6. Analiza uzyskanych wyników przy braku równoważenia obciążenia, oraz z równoważeniem typu RK i NK Czasy pracy algorytmu SW oraz metody dokładnej Złożoność metody Simplex Porównanie złożoności innych wybranych metod heurystycznych i metody SW Porównanie złożoności algorytmu symulowanego wyżarzania oraz metody Simplex Ocena zasadności stosowania algorytmów heurystycznych do badanego zagadnienia w kontekście metod dokładnych Niezawodność proponowanego rozwiązania Omówienie algorytmu 3 tj. wyznaczania Ψ(b) oraz jego wad i zalet Podsumowanie Zakończenie Bibliografia i odnośniki Spis ilustracji... 9 Spis tabel Spis wykresów Załącznik I Kod oprogramowania użytego do przeprowadzenia optymalizacji przepustowości środowiska sieciowego Załącznik II Przykładowe zastosowanie równoważenia obciążenia typu NK informacja wstępna Załącznik III Notacja, słowniczek oraz wykaz użytych terminów i oznaczeń Załącznik IV Analiza funkcji celu dla metody SW

6 - 6 -

7 Wstęp Dynamiczny rozwój technologii informatycznych, jaki daje się zaobserwować w ciągu ostatnich kilkudziesięciu lat doprowadził do sytuacji, w której komputery przestały być dobrem ekskluzywnym, a stały się przedmiotem codziennego użytku. Wraz ze wzrostem dostępności oraz popularności komputerów zwiększa się potrzeba wymiany informacji pomiędzy ich użytkownikami. Z upływem czasu i rozwojem technologii informacja nabierała i ciągle nabiera coraz większej wartości, a od jej atrybutów takich jak dostępność, integralność czy poufność jest obecnie uzależniony byt niejednej organizacji. W związku z powyższym wyłania się coraz silniejsza potrzeba odpowiedniej wymiany wiarygodnych informacji pomiędzy zainteresowanymi stronami. Przesyłanie papierowych dokumentów czy transportowanie informacji za pomocą innych nośników takich jak np. płyty CD czy dyski przenośne jest w wielu sytuacjach nie do zaakceptowania i to z różnych powodów, np. opóźnień czasowych. Dlatego też coraz większego znaczenia nabiera szybka i niezawodna wymiana informacji z wykorzystaniem sieci komputerowych. Odkąd pojawiły się pierwsze próby łączenia ze sobą pojedynczych komputerów w celu współdzielenia zasobów takich jak drukarki czy pliki, pojawiła się możliwość znacznego przyspieszenia obiegu informacji. W konsekwencji doprowadziło to do poprawienia tego, co częstokroć jest nazywane krwioobiegiem organizacji, a w rzeczywistości stanowi wydajny system wymiany informacji. Tak jak komputery zmieniły wzorce społecznego zachowania, tak sieci komputerowe zrewolucjonizowały i zwielokrotniły sposoby zastosowania komputerów tworząc coś, co pod koniec lat sześćdziesiątych ubiegłego wieku w swojej książce pt. Galaktyka Gutenberga Marshall McLuhan nazwał globalną wioską [0]. W wiosce tej media elektroniczne obalają dotychczasowe bariery i to zarówno przestrzenne jak i czasowe, umożliwiając swobodną komunikację wszystkich zainteresowanych stron. W tym momencie należy zadać sobie pytanie, co leży u podstaw, a zarazem daje odpowiednie możliwości do wydajnej wymiany informacji, a w rezultacie powstania wspomnianej już wcześniej globalnej wioski. Na pierwszy rzut oka odpowiedź wydaje się banalna i brzmi: Internet. Najprawdopodobniej mało kto zaprzeczy takiemu stwierdzeniu, lecz spoglądając na problem w sposób bardziej techniczny, pod pojęciem Internet można dostrzec bardzo wiele różnych możliwości, a także i problemów. Możliwości, jakie niesie ze sobą globalna sieć są olbrzymie i ciągle rosną, zaliczyć do nich można takie usługi jak np.: bankowość elektroniczna, zamawianie filmów na żądanie czy rezerwacja biletów lotniczych lub do teatru. Z drugiej strony, istnienie Internetu stwarza problemy, jakie należy rozwiązać w celu - 7 -

8 wykorzystania tychże możliwości. Jeśli przyjrzymy się tylko problemom technicznym, to można dokonać ich podziału na pewne grupy, a mianowicie: wydajność; skalowalność; bezpieczeństwo; koszt; funkcjonalność. Moja praca skupia się na wydajności, a głównym jej zagadnieniem jest zadanie optymalizacji przepustowości sieci komputerowych. Przedstawione w niej rozwiązanie polega na zwiększaniu efektywnej przepustowości sieci w tych przypadkach, w których jest to możliwe. To, czy możliwość taka istnieje, okazuje się w wyniku porównania przepustowości osiąganych przy zastosowaniu dwóch typów równoważenia obciążenia tj.: z udziałem tras tylko o koszcie równym optymalnemu (równoważenie typu RK) i dodatkowo, pewnych tras o koszcie większym od optymalnego (równoważenie typu NK). Porównanie to jest dokonywane w czasie rzeczywistym, co umożliwiają odpowiednie (autorskie) algorytmy. Ponieważ z góry nie wiadomo czy należy włączyć równoważenie obciążenia typu NK, więc przeprowadza się symulację spodziewanych warunków pracy sieci. Na podstawie otrzymywanych wyników podejmowana jest decyzja o włączeniu tego typu równoważenia. Warto także dodać, że główną korzyścią z zastosowania przedstawionego w tej pracy rozwiązania jest uzyskanie w czasie rzeczywistym poprawy przepustowości sieci (w miarę możliwości), a w konsekwencji bardziej efektywne wykorzystanie posiadanych zasobów sieciowych i zwiększenie satysfakcji użytkowników. Poruszając tematykę wydajności sieci komputerowych, nie sposób pominąć problemów związanych z trasowaniem pakietów w sieciach komputerowych. Trasowanie, czyli kierowanie pakietów na odpowiednie trasy, opiera się na wykorzystaniu określonych protokołów takich jak np.: RIP, IGRP, IS-IS, EIGRP, OSPF, BGP [3][32]. Bez względu na to, czy dany protokół jest zaprojektowany do pracy wewnątrz systemu autonomicznego czy pomiędzy takimi systemami, albo wręcz w ogóle nie uwzględnia koncepcji hierarchicznej budowy sieci komputerowej, głównym jego zadaniem jest wyznaczanie tras pomiędzy różnymi sieciami (podsieciami). Znajomość tych tras jest niezbędna do uzyskania przepływu pakietów, a w konsekwencji do nawiązania wymiany informacji. Z każdą trasą nieodzownie związany jest jej koszt, częstokroć powiązany z szybkością przesyłania informacji po danej Przez pojęcie system autonomiczny należy rozumieć sieć lub grupę sieci będących pod wspólną i spójną administracyjna kontrolą

9 trasie (jak w protokole OSPF), dlatego wyznaczanie tras o jak najniższym koszcie jest bardzo istotne dla sprawnego, a przede wszystkim wydajnego funkcjonowania sieci komputerowej. Uzasadniając wybór protokołu OSPF jako obiektu podlegającego udoskonaleniom warto stwierdzić, że protokoły takie jak: IGRP czy EIGRP to własne protokoły producentów sprzętu, a ich implementacja oraz modyfikacja bez zgody właściciela 2 jest prawnie zabroniona [3] [4] [3] [35]. Warto zauważyć, że protokół OSPF (ang. Open Shortest Path First) szeroko wykorzystywany w średnich i dużych sieciach komputerowych, opierający się na tzw. stanie łącza umożliwia tworzenie różnego rodzaju konfiguracji [] [2] [3]. Przykładami takich konfiguracji mogą być np. jednoobszarowy OSPF, wieloobszarowy OSPF czy połączenie wirtualne (virtual link), co daje w konsekwencji możliwość budowy płaskiej lub zhierarchizowanej struktury sieci komputerowej. OSPF jest protokołem otwartym o dostępnym kodzie źródłowym, co wiąże się z możliwością przeprowadzania jego udoskonaleń, ale przede wszystkim oznacza możliwość tworzenia własnych implementacji, spełniających założenia standardu. OSPF w swojej oryginalnej wersji wspiera równoważenie obciążenia jedynie z udziałem tras o koszcie równym optymalnemu. Równoważenie to polega na wysyłaniu pakietów adresowanych do tej samej sieci różnymi trasami, o optymalnym koszcie, prowadzącymi przez jeden lub wiele interfejsów wyjściowych [43] [44] [45] [46] [47]. W dalszej części pracy równoważenie to będzie określane jako RK. Warunkiem koniecznym do przeprowadzenia tego typu równoważenia obciążenia jest, aby istniały przynajmniej dwie trasy prowadzące do danej sieci posiadające równy i optymalny koszt. W pewnych warunkach jest to rozwiązanie mało wydajne i dlatego dodanie dodatkowej funkcjonalności polegającej na równoważeniu obciążenia z udziałem tras o nierównym koszcie i wyższym od optymalnego (podobnie jak w protokole EIGRP) może w znaczny sposób zwiększyć wydajność sieci komputerowej wykorzystującej OSPF. W dalszej części pracy równoważenie takie będzie określane jako NK Sposobów, w jaki można równoważyć obciążenie jest wiele, w niniejszej pracy zostało przedstawione rozwiązanie hybrydowe (scentralizowano-rozproszone). W przedstawionym w tej pracy rozwiązaniu występuje centralna stacja zarządzająca oraz zarządzane przez nią routery. Na podstawie spodziewanej charakterystyki ruchu sieciowego, wspomniana stacja zarządzająca, wyznacza wartości pewnych współczynników (beta) i w określonych przedziałach czasowych dystrybuuje je do zarządzanych routerów. Istotnym jest, że całe rozwiązanie musi działać w czasie rzeczywistym, a wyznaczone wartości współczynników beta obowiązują tylko w krótkim 2 W tym przypadku firmy Cisco Systems

10 przedziale czasu. Na podstawie wzmiankowanych współczynników routery budują swoje tablice routingu z uwzględnieniem tras o nierównych kosztach. Do wyznaczenia wartości wspomnianych współczynników stacja zarządzająca wykorzystuje algorytm heurystyczny symulowanego wyżarzania. W tym miejscu warto dodać, że do optymalizacji przepustowości sieci komputerowych można także stosować metody dokładne np. Simplex, lecz jak zostało pokazane w rozdziale szóstym, jej złożoność jest znacznie większa od metody SW. W konsekwencji, zastosowanie metod dokładnych mogłoby skutkować tym, że rozwiązanie przestanie działać w czasie rzeczywistym. Natomiast odpowiednio zastosowana metoda SW takiego ryzyka jest pozbawiona. Przechodząc do idei działania routerów, trasowanie następuje według ścieżki optymalnej wyznaczonej przez protokół OSPF [] [3], a w sytuacji, kiedy jeden z interfejsów routera zostaje przeciążony następuje włączenie równoważenia obciążenia z udziałem tras o kosztach wyższych od optymalnego. Decyzja o tym, jakie trasy alternatywne należy dodać do tablicy routingu jest zależna od wartości współczynnika beta otrzymanego od stacji zarządzającej. Decyzja o włączeniu równoważenia obciążenia typu NK jest podejmowana przez każdy router indywidualnie w zależności od tego, czy posiada on przeciążone interfejsy czy nie. Rozwiązanie to jest wydajną alternatywą dla stosowanego w protokole OSPF równoważenia obciążenia typu RK. Wychodząc naprzeciw ciągle rosnącym zapotrzebowaniom, jakie niesie ze sobą rozwój technologii informatycznych, sieci komputerowe stają się coraz bardziej złożone i zróżnicowane. W związku z tym prawdopodobieństwo wystąpienia dwóch lub więcej tras o identycznym koszcie 3 z punktu A do punktu B jest niewielkie, z tego powodu równoważenie obciążenia typu RK stosunkowo rzadko występuje [47] [77]. W tym miejscu należy nadmienić, że niniejsza praca ma za zadanie przedstawienie nowatorskiego podejścia do problemów zastosowania zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowej. Teza mojej pracy składa się z dwóch części. Pierwsza część brzmi, odpowiednie zastosowanie równoważenia obciążenia typu NK może prowadzić do wzrostu przepustowości sieci komputerowej. Druga natomiast jest następująca, zasadnym jest stosowanie algorytmów heurystycznych do optymalizacji tejże przepustowości. Głównym zagadnieniem pracy jest zdanie optymalizacji przepustowości sieci komputerowych, sformułowane jako zadanie programowania liniowego (ang. Linear 3 Koszt w protokole OSPF liczony jest jako suma kosztów poszczególnych łączy (krawędzi grafu) na drodze od routera źródłowego do miejsca przeznaczenia. Koszt pojedynczego łącza obliczany jest ze wzoru koszt = (0E8 / szerokość pasma) tego łącza

11 programming) i programowania niewypukłego rozdzielnego (ang. Non-convex Separable Programming). Pierwszoplanowym celem pracy jest wykazanie zasadności stosowania algorytmów heurystycznych (na przykładzie symulowanego wyżarzania) do optymalizacji przepustowości sieci komputerowej. Dalszym celem jest wykazanie słuszności stosowania równoważenia obciążenia typu NK w protokole OSPF w sytuacji, kiedy przeciążeniu ulega jeden z interfejsów routera, na którym działa ten protokół. Proponowane rozwiązanie zostało zaimplementowane w wirtualnej 4 sieci komputerowej wykorzystującej przystosowany specjalnie do jej potrzeb protokół OSPF. Dla osiągnięcia wyżej wymienionych celów wykonano następujące zadania opisane w kolejnych rozdziałach pracy: scharakteryzowano zastosowania oraz możliwości protokołu OSPF; zaproponowano autorski sposób wyznaczania tras o nierównych kosztach oraz równoważenia obciążenia z udziałem tych tras; przeprowadzono przegląd możliwości badania wpływu zastosowanego rozwiązania na wydajność sieci komputerowej; zdefiniowano w sposób formalny problem optymalizacji przepustowości sieci komputerowej jako zadanie programowania liniowego i niewypukłego rozdzielnego; wybrano zbiór parametrów, statystyk oraz narzędzi mający służyć wykazaniu słuszności postawionej tezy; przeprowadzono odpowiednie badania; przeanalizowano zebrane informacje oraz wyciągnięto odpowiednie wnioski; dokonano porównania wydajności badanej metody z wydajnością metody dokładnej oraz z innymi wybranymi metodami heurystycznymi; zaproponowano przykładowe zastosowanie badanego rozwiązania. Dalszą część wstępu można potraktować jako przewodnik po pracy, zawierający skrótowe opisy zawartości poszczególnych jej rozdziałów. Wspomniane opisy mają na celu ułatwienie lektury pracy oraz wyszukiwania konkretnych informacji w niej zawartych. Praca składa się z następujących części: Rozdział pierwszy opisuje możliwości protokołu OSPF wraz z jego funkcjami oraz zastosowaniem. Dodatkowo informacje przedstawione w tym rozdziale skupiają się na 4 Poprzez określenie wirtualna sieć komputerowa należy rozumieć hipotetyczną sieć komputerową zaproponowaną przez autora na potrzeby niniejszej pracy. - -

12 obecnie stosowanych rozwiązaniach równoważenia obciążenia typu RK. Ze względu na zawartość, rozdział ten należy traktować jako zwięzły opis obecnego stanu wiedzy w badanej dziedzinie. Rozdział drugi szczegółowo opisuje proponowane rozwiązanie problemu wyznaczania tras alternatywnych jako komplementarnych do tras optymalnych oraz równoważenia obciążenia w protokole OSPF z udziałem tych tras. Zostały tu także przedstawione spodziewane efekty zastosowania tego rozwiązania. Rozdział trzeci zawiera opisy teoretycznych aspektów związanych z optymalizacją ruchu sieciowego tj.: model środowiska sieciowego; formalnie zdefiniowane zadania optymalizacji jako zadania programowania liniowego i programowania niewypukłego rozdzielnego; opis zasady działania metody dokładnej (Simplex); opis autorskiego algorytmu wyznaczania przepustowości środowiska sieciowego (Ψ(b)) wraz z jego zapisem w pseudokodzie; informacje o ograniczeniach, zmiennych decyzyjnych oraz zbiorze rozwiązań dopuszczalnych dla wspomnianego algorytmu; teoretyczne obliczenia obrazujące działanie algorytmu wyznaczania przepustowości środowiska sieciowego oraz wyniki jego symulacji; rozważania na temat wybranych przykładów. Rozdział czwarty zawiera informacje na temat optymalizacji przepustowości środowiska sieciowego z zastosowaniem metody SW, a także: szczegółowy opis zastosowanej metody badawczej; propozycje udoskonalenia zastosowanego algorytmu; opis warunków pracy algorytmu SW; logiczny schemat przepływu informacji pomiędzy algorytmami: SW, wyznaczania przepustowości sieci (Ψ(b)) i algorytmem tworzenia tablicy routingu, obrazujący zasadę działania proponowanego rozwiązania; możliwości zastosowania przyjętej metody badawczej; scenariusze przeprowadzonych badań; wyznaczenie złożoności obliczeniowej algorytmu SW

13 Rozdział piąty zawiera wyniki badań przeprowadzonych według scenariuszy przyjętych w rozdziale 4. Ponadto rozdział ten stanowi materiał źródłowy dla wniosków stanowiących treść rozdziału 6. Rozdział szósty w rozdziale przeprowadzony został proces wnioskowania na temat uzyskanych wyników, a także została przeprowadzona szczegółowa analiza badań nad optymalizacją przepustowości środowiska sieciowego z wykorzystaniem metody SW. Analiza ta obejmuje następujące aspekty: Porównanie wyników uzyskanych za pomocą metody SW oraz programowania liniowego; Porównanie czasów działania badanego algorytmu SW oraz metody dokładnej, czyli Simplex; Oszacowanie oraz porównanie złożoności obliczeniowej algorytmu SW ze złożonością metody dokładnej (Simplex), oraz z innymi wybranymi metodami heurystycznymi; Ocena zasadności stosowania algorytmów heurystycznych (na przykładzie algorytmu SW) w odniesieniu do badanego zagadnienia; Krótkie omówienie niezawodności proponowanego rozwiązania. W rozdziale znajdują się także zwięzłe opisy wad i zalet autorskiego algorytmu służącego do wyliczania przepustowości sieci, wraz z prostym przykładem jego działania oraz krótką analizą matematyczną porównującą złożoność tego algorytmu oraz algorytmu dokładnego. Rozdział kończy krótkie podsumowanie zawierające najważniejsze wnioski oraz obserwacje powstałe po przeprowadzonych badaniach, w szczególności znajdują się tam odpowiedzi na pytania postawione w tezie pracy, poparte odpowiednimi wynikami badań. Zakończenie zawiera następujące zagadnienia: wykazanie słuszności przyjętej tezy badawczej; opis trudności napotkanych przy realizacji postawionych w pracy zadań; ocenę praktycznej przydatności przedstawionego rozwiązania; propozycję kierunku kontynuacji tematyki pracy

14 Rozdział. Protokół OSPF zastosowanie i własności W celu nawiązania łączności pomiędzy komputerami znajdującymi się w różnych sieciach 5 niezbędne jest właściwe wyznaczenie trasy przepływu pakietów ze źródła do miejsca przeznaczenia. Trasę tę można wyznaczać za pomocą dwóch metod: routingu statycznego; routingu dynamicznego. Routing statyczny polega na tym, że administrator routera manualnie dokonuje asocjacji adresu IP 6 sieci docelowej z odpowiednim interfejsem wyjściowym konfigurowanego routera, ewentualnie też adresem IP następnego routera. O ile routing statyczny można uznać za dobrą metodę wyznaczania tras dla małych sieci 7, o tyle skonfigurowanie routingu, a następnie administrowanie nim w dużych sieciach, jeśli w ogóle jest możliwe, to na pewno zdecydowanie nieopłacalne. Dlatego też powstały dynamiczne protokoły routingu mające za zadanie w sposób niemalże bezobsługowy wyznaczać optymalne (w sensie swojej metryki) trasy przepływu pakietów, a następnie kierować pakiety na właściwe dla nich trasy. Dynamiczne protokoły routingu można podzielić na trzy grupy: wektora odległości; stanów łączy; hybrydowe. Protokoły działające w oparciu o wektor odległości jako metryki używają liczby routerów znajdujących się na trasie przepływu danego pakietu (tzw. hop counts) 8. Ze względu na swoje ograniczenia, (sposób przesyłania aktualizacji tras, jak i metrykę pozostawiającą wiele do życzenia), protokoły te nie nadają się do zastosowania w dużych sieciach komputerowych. Natomiast do ich zalet można zaliczyć małe wymagania co do zasobów systemowych takich jak moc procesora czy rozmiar pamięci operacyjnej urządzenia, na którym pracują. Przykładami protokołów wykorzystujących wektor odległości są: RIP wersja, RIP wersja 2, IGRP. 5 Sieć komputerowa - grupa komputerów lub innych urządzeń sieciowych połączonych ze sobą w celu wymiany danych lub współdzielenia zasobów oraz komunikujących się z wykorzystaniem adresów sprzętowych [5]. 6 Adres IP (Internet Protocol address) - to unikatowy adres numeryczny przyporządkowany urządzeniom sieci komputerowych, funkcjonujących z wykorzystaniem protokół IP [5]. 7 W małych sieciach o stałej topologii preferowaną metodą jest routing statyczny ze względu na większą szybkość działania oraz brak wewnętrznego ruchu sieciowego. 8 RIP jako metryki używa liczba routerów występujących na trasie danego pakietu, IGRP używa bardziej złożonej metryki domyślnie uwzględniając szerokość pasma oraz opóźnienie

15 Protokoły działające w oparciu o stan łącza są zaprojektowane w taki sposób, że każde urządzenie używające takiego protokołu i znajdujące się w odpowiednim obszarze posiada wiedzę o pełnej topologii sieciowej własnego obszaru. W tym miejscu należy dokładniej wyjaśnić dwa pojęcia: systemu autonomicznego i obszaru. System autonomiczny jest to grupa sieci komputerowych zarządzanych w spójny sposób wedle określonych reguł. Systemy te są następnie dzielone na obszary, działanie takie ma na celu agregację ruchu sieciowego, a także ułatwienie diagnozowania różnego rodzaju problemów oraz podniesienie poziomu bezpieczeństwa. Dokładniejszy opis idei systemów autonomicznych oraz obszarów znajduje się w podrozdziale.. Routery wykorzystujące protokół OSPF na podstawie posiadanych informacji o danej sieci budują odwzorowanie jej topologii. Następnie z wykorzystaniem właściwych algorytmów (np. Dijkstry) wyznaczana jest optymalna trasa do sieci docelowej. Ze względu na przechowywanie dużej, w stosunku do protokołów opartych o wektor odległości, ilości informacji protokoły te wymagają znacznie większych zasobów systemowych niż RIP czy IGRP. W tym miejscu warto zaznaczyć, że protokół RIP przesyła całe tablice routingu, w konsekwencji bardziej obciąża sieć. Do wspomnianych wcześniej informacji można zaliczyć np. wiedzę o pełnej topologii sieci czy routerach sąsiednich. Używanie nietrywialnych metod wyszukiwania tras w grafie (np. wspomniany algorytm Dijkstry) także wymaga zapewnienia odpowiedniej ilości zasobów systemowych. Między innymi z tego powodu routery obsługujące protokoły wykorzystujące stan łącza są drogie. Rekompensatą za poniesione koszty jest to, że routery te z powodzeniem można stosować w rozbudowanych sieciach o skomplikowanej topologii. Przedstawicielami tej grupy protokołów są: OSPF oraz IS-IS. Protokoły hybrydowe wykorzystują własności zarówno protokołów opartych o wektor odległości jak i o stan łącza. Podejście takie umożliwia stworzenie elastycznego i łatwo skalowanego rozwiązania za cenę wysokiego kosztu urządzenia. Przedstawicielem tej grupy protokołów jest opracowany przez firmę Cisco protokół EIGRP. Ze względu na tematykę niniejszej pracy ograniczona do protokołu OSPF, dokładniejszy opis protokołów hybrydowych został pominięty. Szczegółowe informacje o protokole EIGRP są zawarte np. w [28][3][36][40][4].. Skrócony opis protokołu OSPF Tak jak już zostało wcześniej powiedziane, OSPF jest protokołem działającym w oparciu o stan łącza. W swoim działaniu wykorzystuje ideę systemów autonomicznych, a w konsekwencji zhierarchizowane podejście do zagadnień routingu. Hierarchia w OSPF jest - 5 -

16 dwupoziomowa, obszar centralny stanowi poziom pierwszy, a obszary położone wokół centralnego - poziom drugi. Wszystkie routery znajdujące się w jednym obszarze tworzą identyczne kopie bazy topologii danego obszaru. Tak jak sama nazwa sugeruje, baza ta zawiera informacje o topologii sieciowej danego obszaru OSPF, dodatkowo, jeśli router należy jednocześnie do dwóch obszarów to tworzy on dwie kopie baz topologii po jednej dla każdego obszaru. Wykorzystując algorytm Dijkstry 9 (o złożoności O(n*log(n)), na podstawie informacji zawartych we wspomnianej bazie topologii sieci każdy router indywidualnie buduje drzewo (z sobą jako korzeniem) najkrótszych ścieżek do poszczególnych sieci z danego obszaru w którym się znajduje. Informacje o trasach routingu dostarczone spoza systemu autonomicznego są liśćmi tego drzewa. Należy w tym miejscu zaznaczyć, że informacje o zewnętrznych trasach routingu dostarczone przez protokoły z typu EGP (takie jak np. BGP) są odseparowane od informacji dystrybuowanych wewnątrz systemu autonomicznego. W celu redukcji niepożądanego ruchu sieciowego, a także w innych celach jak np.: ukrywanie wewnętrznej topologii czy uproszczenie administrowania i zarządzania, protokół OSPF wykorzystuje wcześniej wzmiankowane, obszary. Obszar to grupa sieci zarządzana w sposób spójny, tj. zgodny z określonym zestawem przyjętych reguł. Każdy obszar bezpośrednio lub pośrednio (np. wykorzystując połączenie wirtualne) musi być podłączony do obszaru zero, obecność obszaru zerowego jest niezbędna do poprawnego funkcjonowania protokołu. Graficzne przedstawienie podziału systemu autonomicznego na obszary znajduje się na rys..4 i.5 w dalszej części tego rozdziału. Należy zaznaczyć, że protokół OSPF wspiera maski sieciowe o zmiennej długości (VLSM), a także routing bezklasowy 0. Dodatkową funkcjonalnością jest uwierzytelnianie routerów wymieniających między sobą aktualizacje tras routingu i tworzących jeden system autonomiczny. Uwierzytelnianie routerów, a także inne aspekty bezpieczeństwa związane z protokołem OSPF zostały dokładniej opisane w podrozdziale.5. Kolejnym aspektem zasługującym na uwagę jest fakt, że OSPF nie wysyła aktualizacji tras w sposób periodyczny z określonym interwałem czasowym, jak czyni to np. RIP (nawet w przypadku, kiedy zawartość tablicy routingu nie uległa zmianie). W związku z powyższym OSPF generuje mniejszy ruch sieciowy, co jest zawsze pożądane. Aktualizacje tras w OSPF są dokonywane za pomocą pakietów LSA (link state advertisement) [4] i pojawiają się tylko wtedy, gdy wystąpi zmiana w topologii sieci. Zmiany w topologii takie jak na przykład uszkodzenie routera, łącza czy 9 Algorytm Dijkstry służy do wyznaczania najkrótszych tras w grafach o nieujemnych wartościach (kosztach) ścieżek łączących poszczególne węzły. 0 Routing bezklasowy typ routingu wykorzystujący agregację adresów sieciowych, mającą na celu zmniejszenie rozmiaru tablicy routingu

17 interfejsu są wykrywane bardzo szybko, a służą temu pakiety Hello periodycznie wymieniane miedzy sąsiednimi routerami. W sytuacji, gdy następuje zmiana topologii sieci natychmiastowa wymiana pakietów LSA powoduje aktualizację baz topologii poszczególnych routerów należących do danego obszaru. Następnie każdy router indywidualnie wyznacza nowe trasy do poszczególnych sieci. Sieć jest w stanie konwergencji, jeśli wszystkie routery w danym obszarze posiadają spójną, czyli jednakową wiedzę o trasach routingu (jest to stan docelowy). Dobrze skonfigurowany protokół OSPF osiąga zbieżność w czasie około 0 sekund. Kolejną istotną cechą tego protokołu jest równoważenie obciążenia typu RK. Koszt końcowy jest wyznaczany jako suma kosztów poszczególnych łączy na trasie do danej sieci. Natomiast koszt łącza wyznaczany jest ze wzoru: koszt = 0 8 / przepustowość w bitach na sekundę. Należy zaznaczyć, że konfigurując konkretny router najczęściej jest możliwe dokonanie ręcznej modyfikacji kosztu danej trasy. Stosując odpowiednią manipulację kosztami poszczególnych tras można ukierunkować przepływ pakietów w danej sieci lub całym systemie autonomicznym. Działanie takie może być podyktowane wieloma względami, jednym z nich jest np. sposób rozliczania się z dostawcą usług internetowych za dzierżawione łącze. Więcej informacji na temat protokołu OSPF znajduje się np. w [5][7]..2 Historia protokołu OSPF Dynamiczny wzrost liczby użytkowników Internetu, a w konsekwencji liczby sieci wchodzących w jego skład doprowadził do sytuacji, w której protokół taki jak RIP nie był w stanie w wydajny sposób sprostać ciągle rosnącym wymaganiom. W związku z pojawieniem się konieczności opracowania nowego, lepiej dopasowanego do istniejącej sytuacji protokołu routingu, IETF (Internet Engineering Task Force) w 987 roku utworzyła grupę badawczą mającą za zadanie rozwiązać zaistniały problem. Po stosunkowo długim okresie prac w październiku 989 roku w RFC 3 opublikowana została pierwsza wersja protokołu nazwanego OSPF (Open Shortest Path First). Ze względu na wiele wad i niedociągnięć, jakie się ujawniły w trakcie przemysłowego stosowania tego protokołu pierwsza jego wersja została szybko zastąpiona drugą, opublikowaną w lipcu 99 roku w RFC 247. Ciągła ewolucja protokołu mająca na celu dostrajanie go do dynamicznie zmieniającego się otoczenia i warunków pracy zaowocowała wprowadzeniem licznych poprawek opisanych m.in. w dokumentach: RFC 583, RFC 278, RFC Dodatkowo OSPF wspiera wersję szóstą protokołu IP (Internet Protocol) przedstawioną w RFC 883, 884. Ponadto sama nazwa protokołu nie jest przypadkowa i łączy w sobie dwie jego podstawowe cechy. Pierwszą - 7 -

18 z nich jest otwartość (Open) wskazująca, że nie jest to produkt własnościowy i nie jest wymagana żadna licencja do używania go. Druga cecha, czyli SPF (Shortest Path First) odnosi się do algorytmu użytego w tym protokole i stosowanego do wyznaczania najkrótszej trasy pomiędzy dwoma sieciami. Obecnie OSPF jest prawdopodobnie najczęściej stosowanym protokołem w średnich i dużych sieciach budowanych z wykorzystaniem urządzeń pochodzących od różnych producentów..3 Podstawowe własności protokołu OSPF Tak jak już zostało wcześniej powiedziane, OSPF zalicza się do dynamicznych protokołów routingu, jest wydajny i posiada łatwość w przenoszeniu z niewielkich do rozbudowanych środowisk (skalowalność), a także posiada inne liczne własności, którym zawdzięcza swoje duże możliwości i popularność. W podrozdziale tym zostały opisane następujące cechy protokołu OSPF: wsparcie dla różnych typów sieci; obsługa masek IP o zmiennej długości; podział systemów autonomicznych na obszary; typy używanych pakietów. Ponadto opisano pojęcia: baza stanów łączy; drzewo najkrótszych ścieżek. Dodatkowo, niniejszy podrozdział zawiera skrótowe informacje o terminologii stosowanej w odniesieniu do protokołu OSPF. Pozostałe własności, które nie zostały tu przedstawione są opisane w podrozdziale.4. Kwestie związane z bezpieczeństwem, a także równoważeniem obciążenia w omawianym protokole zostały przedstawione w osobnych podrozdziałach tj..5 oraz Wsparcie protokołu OSPF dla różnych typów sieci Na wszechstronność i elastyczność protokołu OSPF składa się miedzy innymi możliwość zastosowania go w sieciach następujących typów: Point-to-Point; Broadcast; Non-broadcast multi-access (Point-to-Point oraz Point-to-Multipoint)

19 Każda inna sieć komputerowa (rozumiana jako niepodzielny komponent środowiska złożonego z wielu sieci) należy do jednego z wyżej wymienionych typów. Dla uściślenia terminologii, na potrzeby niniejszej pracy przez pojęcie Point-to-Point należy rozumieć sieć łączącą parę routerów. Reprezentantem tego typu sieci jest połączenie bezpośrednie zestawione pomiędzy dwoma routerami. Przykładowe połączenie typu Point-to-Point zostało przedstawione na rys. nr.. Rys... Przykład połączenia Point-to-Point. Połączenia typu Point-to-Point posiadają prostą topologię, a w związku z tym małą złożoność, natomiast inaczej wygląda sytuacja w sieciach broadcastowych (rozgłoszeniowych). Na potrzeby niniejszej pracy poprzez termin sieć broadcastowa należy rozumieć sieć komputerową posiadającą funkcjonalność polegającą na możliwości przesłania jednej jednostki informacji (pakietu) do wszystkich węzłów naraz. Przykładem takiej sieci jest Ethernet. Dodatkowo w Ethernecie zakłada się, że każda para węzłów jest w stanie komunikować się w sposób bezpośredni. Komunikacja ta jest niezbędna i służy wielu celom, do których zaliczyć można: wysyłanie informacji o zmianie topologii sieci (pakiety LSA) czy wykrywanie sąsiednich routerów (za pomocą protokołu Hello ). W celu minimalizacji generowanego ruchu sieciowego, a także skrócenia czasu zbieżności sieci 2, protokół OSPF przeprowadza elekcję routera desygnowanego (DR designated router). Zadaniem tego routera jest odbieranie wspomnianych wcześniej pakietów, a następnie rozpropagowanie ich do pozostałych routerów wchodzących w skład danego segmentu sieci. Innymi słowy rolą routera desygnowanego jest zmniejszenie ruchu w sieci przy wymianie informacji między routerami sąsiednimi (mającymi interfejsy podłączone do jednej sieci), wówczas wymiana pakietów protokołu OSPF nie odbywa się w sposób każdy z każdym tylko router desygnowany - każdy z pozostałych. Na wypadek awarii routera desygnowanego wybierany jest także zapasowy router desygnowany (BDR backup designated router). Funkcje routera desygnowanego zostały dokładniej opisane w dalszej części rozdziału. Elekcja routera desygnowanego odbywa się z uwzględnieniem takich czynników jak: priorytet OSPF oraz Przez pojęcie węzeł należy rozumieć urządzenie podłączone do sieci komputerowej takie jak np. router, komputer klasy PC, serwer, drukarka sieciowa itd. 2 Czas zbieżności sieci należy rozumieć jako czas potrzebny na uzyskanie przez wszystkie routery, pełnej informacji o bieżącej topologii sieci w której (których) routery te pracują

20 router ID. Routerem desygnowanym zostaje router posiadający najwyższy priorytet. W sieciach rozgłoszeniowych domyślna wartość priorytetu wynosi jeden. Parametr ten jest konfigurowalny i przypisany do danego interfejsu nie zaś globalnie dla całego routera. Przypisanie priorytetowi wartości zero spowoduje, że dany router nigdy nie zostanie wybrany jako DR czy BDR (w sieci, do której należy dany interfejs). Jeśli występują przynajmniej dwa routery o najwyższym priorytecie w danej sieci, wówczas decyzja o wyborze routera desygnowanego podejmowana jest (wśród routerów o najwyższym priorytecie) na podstawie parametru router ID. Podobnie jak w przypadku priorytetu OSPF routerem desygnowanym zostaje ten o największym parametrze ID. Parametr ten także jest manualnie konfigurowalny. W przypadku braku konfiguracji domyślnie przyjmowana jest wartość adresu IP interfejsu zwrotnego (ang. loopback). W sytuacji, kiedy interfejs zwrotny nie jest aktywny, jako router ID przyjmowany jest największy adres IP przypisany do interfejsów routera. W przypadkach pozostałych router ID jest ustawiane na zero. Wybór zapasowego routera desygnowanego (BDR) odbywa się analogicznie jak podstawowego, lecz już z jego pominięciem. Raz wybrany DR lub BDR pełni swoją funkcję dopóki jest podłączony do sieci komputerowej, pojawienie się nowego routera o wyższym priorytecie nie powoduje zmiany ani podstawowego routera desygnowanego ani zapasowego. Zarówno DR jak i BDR nawiązują relacje sąsiedztwa (ang. adjacency) z wszystkimi pozostałymi routerami w danej sieci. Warto wspomnieć, że w protokole OSPF nawiązanie pomiędzy routerami relacji sąsiedztwa (przylegania) jest niezbędne do wymiany informacji pomiędzy tymi routerami (w tym informacji o trasach routingu). Ponadto do podstawowych funkcji routera desygnowanego należy odbieranie pakietów o aktualizacji topologii sieci (pakiety LSA) i rozesłanie ich do wszystkich routerów, z którymi nawiązane zostało sąsiedztwo. Idea tego podejścia polega na tym, że w momencie wykrycia zmiany w topologii router, który tę zmianę zauważył wysyła aktualizację tylko i wyłącznie do routera desygnowanego (nie zaś do wszystkich jak czyni to np. RIP) oraz do zapasowego routera desygnowanego. Następnie router desygnowany ma za zadanie rozpropagować otrzymaną informację, standardowo przy użyciu adresu typu multicast, co jest rozwiązaniem zalecanym. Zapasowy router desygnowany wybierany jest (także za pomocą protokołu Hello) w celu podwyższenia niezawodności tego rozwiązania. Należy zaznaczyć, że elekcje takie mają miejsce tylko w sieciach broadcastowych oraz NBMA przy oczywistym warunku występowania dwóch lub więcej routerów w danej sieci. Przykładowy schemat sieci broadcastowej budowanej z wykorzystaniem technologii Ethernet został przedstawiony na rys

21 Rys..2. Schemat sieci broadcastowej na przykładzie Ethernetu. Trzecim typem sieci, w jakich protokół OSPF jest w stanie wydajnie funkcjonować jest typ nierozgłoszeniowy (non-broadcast). Na potrzeby niniejszej pracy przez pojęcie sieć nonbroadcast należy rozumieć sieć umożliwiającą podłączenie wielu routerów (przynajmniej trzech) i nie posiadającą możliwości rozsyłania informacji (pakietów) do wszystkich swoich węzłów na raz. Przykładem tego typu jest sieć wykonana w technologii Frame Relay (następca protokołu X.25). W sieci takiej OSPF utrzymuje relacje sąsiedztwa przy zastosowaniu protokołu Hello, lecz ze względu na brak możliwości wysyłania pakietów rozgłoszeniowych samo ustalenie sąsiedztwa może wymagać od administratora przeprowadzenia manualnej konfiguracji routera. Przeprowadzając taką konfigurację administrator podaje, które routery (a dokładniej adresy IP) dany router ma uznawać za sąsiednie. Należy zaznaczyć, że niektóre sieci typu non-broadcast jak na przykład Frame Relay mogą pracować w trybie Point-to-Multipoint i wykorzystywać protokół warstwy łącza danych w celu nawiązania relacji sąsiedztwa. Przykładem takiego protokołu jest Inverse ARP umożliwiający protokołowi OSPF automatyczne wykrywanie sąsiednich routerów pomimo braku możliwości rozsyłania pakietów rozgłoszeniowych. Wspomniana wcześniej konfiguracja routera jest zależna od trybu, w jakim działa sieć, do której router ten posiada podłączone interfejsy. Sieci non-broadcast dzielą się na: Non-broadcast Multi Access (NBMA) oraz Point-to-MultiPoint. W pierwszym z trybów komputer znajdujący się w takiej sieci ma bezpośredni dostęp do wielu innych komputerów z tej samej sieci. W trybie tym OSPF symuluje zachowanie podobne jak w sieci broadcastowej (rozgłoszeniowej) to znaczy, że przeprowadzana jest elekcja routera desygnowanego (a także zapasowego routera desygnowanego) pełniącego takie same funkcje jak w sieci broadcastowej, omówionej wcześniej w niniejszym - 2 -

22 podrozdziale, schemat sieci NBMA jest identyczny jak sieci broadcastowej i jako przykładowy można potraktować przedstawiony na rys. nr.2. W drugim z trybów omawiany protokół traktuje sieć jako zbiór pojedynczych połączeń Pointto-Point. W trybie tym nie jest przeprowadzana elekcja routera desygnowanego, tzn. każdy router komunikuje każdemu informacje o stanach łączy. Brak routera desygnowanego determinuje brak zapasowego routera desygnowanego, zaś schematyczne przedstawienie takiej sieci (analogicznie jak w NBMA) jest identyczne jak dla sieci broadcastowej. Wybór typu sieci determinuje sposób, w jaki będzie działał protokół Hello oraz to jak sieć będzie reprezentowana w bazie stanów łączy. Dokładniejsze informacje o tej bazie zostały przedstawione w podrozdziale.3.4. Mając na uwadze rozmiar bazy stanów łączy jak i ilość generowanego ruchu sieciowego, większą efektywność protokół OSPF osiąga działając w sieci pracującej w trybie NBMA niż w Point-to-Point. Jednakże w trybie NBMA występuje pewne znaczące ograniczenie polegające na tym, że wszystkie routery danego obszaru muszą mieć możliwość bezpośredniej komunikacji ze sobą. Ograniczenie to dotyka niektórych sieci typu non-broadcast, a przykładem może być, ATM (Asynchronous Transfer Mode) wykorzystująca SVC (Switched Virtual Circuit). Należy wspomnieć, że ograniczenie to nie występuje w dość popularnych rozwiązaniach, do których należy na przykład Frame Relay PVC (Permanent Virtual Circuit). Główna różnica między obwodami rzeczywistymi, a wirtualnymi polega na tym, że obwód wirtualny tworzony jest na wirtualnych interfejsach. Jeden lub więcej interfejsów wirtualnych może być przypisanych do tego samego interfejsu fizycznego. W konsekwencji, jeden interfejs fizyczny może być przypisany do wielu logicznych obwodów, a nie tylko do jednego, co ma miejsce w przypadku obwodów rzeczywistych. Rozwiązaniem problemu związanego ze wspomnianym ograniczeniem komunikacji pomiędzy routerami jest podział sieci typu non-broadcast na logiczne podsieci (typu NBMA) tak, by w każdej z nich wszystkie routery mogły komunikować się ze sobą w sposób bezpośredni. Przykład podziału łącza rzeczywistego na obwody logiczne został przedstawiony na rys..3. Choć działanie takie może wymagać znacznego nakładu pracy administratora i jest bardzo podatne na błędy w konfiguracji, to w pewnych przypadkach jest jedynym akceptowalnym rozwiązaniem

23 Rys..3. Schemat obwodów logicznych (podsieci wirtualnych). Pomimo pewnych (lecz zwykle dających się obejść) ograniczeń wszechstronność protokołu OSPF, w szczególności w zakresie typów obsługiwanych sieci jest imponująca, co czyni go rozwiązaniem bardzo popularnym i to bez względu na to czy wszystkie urządzenia sieciowe w danej organizacji pochodzą od jednego producenta czy też od wielu..3.2 Obsługa masek IP o zmiennej długości Kolejną szeroko wykorzystywaną funkcjonalnością protokołu OSPF jest obsługa masek sieciowych o zmiennej długości (VLSM variable-lenght subnet mask). Ze względu na kurczącą się liczbę publicznych adresów IP w wersji czwartej, obsługa VLSM staje się nie tylko użyteczna, ale w wielu przypadkach wręcz konieczna. Obecnie każdy szeroko stosowany protokół routingu posiada obsługę VLSM, a przykładami mogą być: OSPF, EIGRP, RIPv2 wśród protokołów działających wewnątrz systemów autonomicznych, czyli tzw. wewnętrznych protokołów routingu (Interior Gateway Protocol). Innym przykładem są BGPv4, IS-IS jako protokoły działające pomiędzy systemami autonomicznymi czyli tzw. protokoły zewnętrzne (Exterior Gateway Protocol). Idea VLSM polega na wprowadzeniu możliwości podziału sieci klasy A, B lub C na wiele podsieci o różnych rozmiarach. Ponieważ każda podsieć może, (choć nie musi) mieć inny rozmiar, dlatego pojawia się konieczność przesyłania wraz z rozgłaszanym adresem sieciowym odpowiedniej maski tejże podsieci, co także czyni OSPF. Maska ta wskazuje zakres adresów IP należących do rozgłaszanej sieci. Przykładowo sieć można podzielić na trzy podsieci. Podsieć pierwsza z maską , podsieć druga z maską , a także podsieć trzecia z maską Dzięki zastosowaniu metody VLSM powstaje bardzo elastyczny mechanizm umożliwiający dopasowanie adresacji sieci do potrzeb poszczególnych organizacji, np. poprzez przypisanie

24 poszczególnych sieci do różnych działów takich jak: księgowość, administracja, IT itp. Rozmiary tych sieci mogą być dopasowane do wielkości odpowiednich działów (z uwzględnieniem koniecznego zapasu podyktowanego rozwojem organizacji). Bardzo dobrym przykładem korzyści płynących z VLSM są połączenia Point-to-Point z przypisanymi adresami poszczególnych routerów. W tej sytuacji, jeśli nie stosuje się VLSM, przypisanie dwóch adresów blokuje całą sieć klasy C, czyli 252 adresy pozostają niewykorzystane. Zastosowanie VLSM umożliwia podział jednej sieci na wiele podsieci o różnych rozmiarach, w wyniku czego uzyskuje się zdecydowanie wydajniejsze gospodarowanie adresami IP. Dodatkowo stosując VLSM można także uzyskać różnych rozmiarów bloki adresów sieciowych i wykorzystać je wedle potrzeb, co pozwala na znaczną ich oszczędność. Ponadto wsparcie dla CIDR (Classless Inter-Domain Routing) uzyskiwane poprzez dołączanie maski do rozgłaszanego adresu sieciowego, pozwalana na sumaryzację (supernetting), czyli rozgłaszanie kilku podsieci (powstałych na skutek podziału jednej większej) pod jednym zagregowanym adresem sieciowym. Przykładem może być rozgłaszanie czterech sieci o adresach: , , i każda z maską 26 bitową wchodzących w skład jednego obszaru OSPF jako jednej sieci z maską 24 bitową sumacyjny adres całego obszaru. W takim przypadku koszt trasy sumacyjnej jest obliczany jako maksimum z kosztów tras do podsieci wchodzących w skład tego obszaru. Ponieważ router rozgłasza tylko jedną sieć zamiast czterech, to zmniejsza się rozmiar tablicy routingu i ilość generowanego ruchu sieciowego, co jest zjawiskiem ze wszech miar pożądanym. Należy zauważyć, że VLSM, a także NAT 3 (network address translation) zostały zaproponowanej jako rozwiązania mające spowolnić tempo wyczerpywania się publicznych adresów IP..3.3 Podział systemów autonomicznych na obszary Ponieważ w dużych, rozbudowanych sieciach komputerowych obszary autonomiczne zawierają znaczną liczbę routerów, pojawia się potrzeba podziału takich systemów na mniejsze obszary (ang. area). Podział taki ma na celu: zmniejszenie generowanego ruchu sieciowego; zmniejszenie czasu zbieżności sieci; podniesienie poziomu bezpieczeństwa; 3 NAT jest to technika translacji adresów sieciowych. Kiedy komputery z sieci lokalnej komunikują się z siecią zewnętrzną np. Internetem wówczas router z włączoną usługą NAT dynamicznie tłumaczy adresy prywatne na adresy zewnętrzne (publiczne), umożliwiając użytkowanie Internetu przez większą liczbę komputerów niż posiadana liczba adresów publicznych. Stosowanie NAT prowadzi do oszczędności publicznych adresów IP, a także dzięki ukrywaniu adresów wewnętrznych wpływa na poziom bezpieczeństwa sieci komputerowej

25 odseparowanie potencjalnych problemów, a także ułatwienie ich rozwiązania. Obszar jest zbiorem sieci o spójnej adresacji wraz z routerami posiadającymi interfejsy do tychże sieci każda sieć (podsieć) w obszarze musi posiadać przypisany sobie przynajmniej jeden interfejs routera. Natomiast spójna adresacja jest to adresacja ciągła blokami (adresów IP) w rezultacie umożliwia ona sumaryzację adresów przy routingu międzyobszarowym. Standard protokołu OSPF nie narzuca, w jaki sposób poszczególne obszary powinny być adresowane. Dowolny obszar może stanowić jedną logiczną sieć (jak często jest z obszarem zero) lub być podzielony na podsieci, lecz w taki sposób żeby można było na routerach brzegowych danego obszaru (ang. Area Border Router), przeprowadzić wspomnianą sumaryzację. Routery tworzące dany obszar posiadają swoje własne bazy stanu łączy (w pamięci operacyjnej routera) odzwierciedlające topologię tego obszaru. Bazy te powinny być identyczne dla wszystkich routerów z danego obszaru. Wykorzystując informacje zawarte w bazie, algorytm Dijkstry tworzy drzewo najkrótszych ścieżek indywidualnie dla każdego obszaru na każdym z routerów. Topologia danego obszaru jest ukryta przed routerami zewnętrznymi, tzn. należącymi do innych obszarów. Izolacja taka pozwala znacząco ograniczyć ilość ruchu sieciowego generowanego przez protokół routingu, a także istotnie zmniejszyć rozmiar tablic routingu, w porównaniu do rozwiązania traktującego cały system autonomiczny jako jeden obszar. Kolejną zaletą wprowadzenia obszarów jest zwiększenie bezpieczeństwa. W przypadku, kiedy napastnik opanuje dany router, uzyskuje wiedzę tylko o danym obszarze, a nie o całym systemie autonomicznym. Wnioskiem z tego jest fakt, że wszystkie routery należące do danego obszaru posiadają identyczna bazę stanów łączy, lecz co ważniejsze, router należący do więcej niż jednego obszaru tzw. router graniczny (ABR area border router) posiada oddzielne bazy stanów łączy dla każdego z obszarów. W związku z wprowadzeniem obszarów w OSPF występują dwa typy routingu. Pierwszy typ to tzw. routing wewnątrzobszarowy (intra-area routing) występujący w sytuacji, kiedy zarówno nadawca jak i odbiorca danego pakietu znajdują się w tym samym obszarze. W tym przypadku nie są potrzebne żadne informacje pochodzące z spoza danego obszaru, co nie jest bez znaczenia dla bezpieczeństwa. Analizując dokładniej to zagadnienie należy stwierdzić, że generując fałszywe, celowo spreparowane aktualizacje tras routingu wewnątrz obszarowego i wstrzykując je z zewnątrz obszaru napastnik nie osiągnie oczekiwanego rezultatu, ponieważ będą one ignorowane. Do typu drugiego, czyli routingu międzyobszarowego, (inter-area routing) zalicza się sytuację, w której nadawca i odbiorca danego pakietu znajdują się w różnych obszarach tego samego systemu autonomicznego. W sytuacji, kiedy nadawca i odbiorca znajdują się w

26 różnych systemach autonomicznych pojawia się tzw. routing międzysystemowy, a protokoły, które go obsługują, takie jak BGP czy IS-IS zaliczamy do tzw. protokołów zewnętrznych (Exterior Gateway Protocol). Ze względu na tematykę niniejszej pracy jak i naturę protokołu OSPF należącego do wewnątrzsystemowych protokołów routingu (Interior Gateway Protocol) zagadnienia związane z routingiem miedzysystemowym zostały pominięte. Routing międzyobszarowy w protokole OSPF jest realizowany zawsze poprzez obszar zero (backbone). Routing pomiędzy dwoma obszarami niezerowymi składa się z następujących etapów:. routing wewnątrz obszaru, do którego należy nadawca pakietu; 2. routing poprzez obszar zero; 3. routing poprzez obszar, do którego należy odbiorca pakietu. W przypadku, kiedy nadawca lub odbiorca pakietu należą do obszaru zero wówczas nie występują etapy i 3. Przykładowe połączenie obszarów w protokole OSPF zostało przedstawione na rys..4. Rys..4. Połączenia obszarów w protokole OSPF. Topologia obszaru zero wymusza określone ścieżki routingu pomiędzy poszczególnymi obszarami. W przypadku braku możliwości bezpośredniego podłączenia kolejnego obszaru do obszaru zero protokół OSPF umożliwia dodanie nowego obszaru za pomocą łącza wirtualnego. Łącze takie podnosi poziom kontroli administratorskiej w zakresie routingu międzyobszarowego, a także posiada następujące własności: może zostać skonfigurowane pomiędzy dowolnymi dwoma routerami posiadającymi interfejsy w obszarach innych niż zero; łącze wirtualne należy do obszaru zero;

27 OSPF traktuje oba routery tworzące łącze wirtualne tak jakby były połączone do nienumerowanej sieci szkieletowej typu Point-to-Point; koszt łącza wirtualnego jest liczony tak jak pomiędzy routerami brzegowymi dwóch różnych obszarów; przez łącze wirtualne przenoszony jest tylko ruch sieciowy przeznaczony poza obszar, który łącze to łączy z obszarem zero (inter-area routing). adresacja łącza wirtualnego (dokładniej routerów brzegowych tworzących takie łącze) powinna być skonfigurowana w taki sposób żeby adresy źródłowy i docelowy były przypisane do interfejsu pętli zwrotnej (ang. loopback). Działanie takie ma na celu uniezależnienie stanu łącza wirtualnego od stanu interfejsów fizycznych routerów łącze to tworzących. Technika tworzenia łącza wirtualnego polega na odpowiednim skonfigurowaniu dwóch routerów brzegowych (ang. Area Border Router) znajdujących się na końcach łącza wirtualnego. Jeden router znajduje się pomiędzy obszarem zero, a obszarem, przez który łącze takie przechodzi ( tranzytowym ). Drugi zaś pomiędzy obszarem dołączanym za pomocą łącza wirtualnego, a obszarem tranzytowym. Natomiast sama konfiguracja wspomnianych routerów sprowadza się do poinformowania każdego z routerów, do jakiego obszaru łącze prowadzi i jaka jest wartość parametru router id dla routera znajdującego się na drugim końcu łącza wirtualnego. Przykładowe zastosowanie łącza wirtualnego zostało zilustrowane na rys..5. W przedstawionej topologii obszar czwarty (area 4) podłączony jest do obszaru zero (area 0) z wykorzystaniem łączą wirtualnego prowadzącego przez obszar pierwszy (area ). Wszystkie przedstawione na rys..5. routery są routerami brzegowymi (ABR) dla obszarów, do których posiadają podłączone interfejsy. Warto wspomnieć, że adresacja routerów brzegowych powinna być wykonana tak żeby każdy interfejs posiadał przypisany adres IP zgodny z adresacją obszaru, do którego należy. Dodatkowo identyfikator routera (ang. router id) powinien mieć przypisaną wartość odpowiadającą adresowi pętli zwrotnej (ang. loopback). Tak jak poprzednio, działanie takie ma na celu uniezależnienie wartości parametru router id od stanu interfejsów tego routera. Tak jak zostało to przedstawione na rys..5, routery tworzące łącze wirtualne posiadają odpowiednio po jednym interfejsie podłączonym do obszaru czwartego (area 4) lub obszaru zero (area 0) oraz po jednym interfejsie podłączonym do obszaru pierwszego (area )

28 Rys..5. Połączenie linku wirtualnego w protokole OSPF. Warto wspomnieć, że adresacja obszarów wykorzystujących łącze wirtualne powinna być taka, żeby w sytuacji awarii (np. łącza wirtualnego) nie spowodować nieciągłości w adresacji całej sieci. Jest to o tyle ważne, że spowodowanie wspomnianej nieciągłości może prowadzić do utraty komunikacji z innymi obszarami, a tym samym z innymi systemami autonomicznymi, co doprowadzi do izolacji takiego obszaru. Za wyjątkiem powyżej opisanego wymogu, adresacja obszarów wykorzystujących łącze wirtualne nie różni się od adresacji obszarów nie wykorzystujących takiego łącza. Przechodząc do kolejnego zagadnienia warto zauważyć, że pojawia się ono wraz z podziałem sieci komputerowej na systemy autonomiczne, a następnie na obszary. Mowa oczywiście o zagadnieniu obsługi tras routingu rozgłaszanych przez inne systemy autonomiczne. Trasy te mogą być rozgłaszane poprzez protokół taki jak BGP lub zostać skonfigurowane manualnie przez administratora (routing statyczny), dodatkowo rozgłaszana może także być trasa domyślna (ang. default route). W protokole OSPF trasy prowadzące na zewnątrz systemu autonomicznego są w niezmienionej formie propagowane po całym systemie. Koleją istotną cechą jest to, że OSPF wspiera dwa rodzaje metryk dla tras prowadzących na zewnątrz systemu autonomicznego. Metryki pierwszego rodzaju są wyrażane w takich samych wartościach jak metryki dla tras wewnętrznych, czyli jako sumacyjny koszt tras, z których jedna prowadzi do granicy systemu autonomicznego, a druga od granicy do miejsca docelowego. Translacja metryki używanej przez BGP na metrykę OSPF odbywa się w sposób predefiniowany przez administratora, co w konsekwencji prowadzi do spłaszczenia złożonej metryki BGP. Jeśli dwa lub więcej routerów rozgłasza znajomość określonej trasy (do konkretnej sieci) prowadzącej na zewnątrz systemu autonomicznego wybierany jest ten o mniejszym koszcie sumacyjnym, a

29 następnie wszystkie pakiety adresowane do tej sieci są trasowane do routera następnego skoku (ang. next hop) znajdującego się na najlepszej trasie do wybranego routera. W rodzaju drugim przyjmuje się założenie, że koszt trasy na zewnątrz systemu autonomicznego jest znacząco większy niż w jego wnętrzu, a w konsekwencji nie jest przeprowadzana konwersja kosztu trasy zewnętrznej na metrykę używaną wewnątrz systemu. Jeśli dwa lub więcej routerów rozgłasza znajomość określonej trasy (do konkretnej sieci) prowadzącej na zewnątrz systemu autonomicznego, wybierana jest trasa o mniejszej metryce zewnętrznej, bez względu na metryki wewnętrzne związane z osiągnięciem tegoż routera wewnątrz systemu autonomicznego. W sytuacji, kiedy więcej niż jeden router rozgłasza trasę do danej sieci o tej samej metryce zewnętrznej, wówczas mniejsza metryka wewnętrzna (osiągnięcia danego routera wewnątrz systemu autonomicznego) decyduje o wyborze najlepszej trasy. Protokół OSPF zezwala na jednoczesne używanie obydwu metryk, w takiej sytuacji metryka pierwszego rodzaju zawsze stosowana jest w pierwszej kolejności. Dodatkową funkcjonalnością OSPF jest tzw. adres przesyłania (forwarding address). Routery znajdujące się na granicach systemu autonomicznego (ASBR Autonomous System Boundary Routers) można tak skonfigurować żeby rozgłaszały do wewnątrz tego systemu informację do sieci o adresie X należy trasować na adres Y. Działanie takie ma na celu eliminację wysyłania pakietów przez niewłaściwe routery (trasy nieoptymalne) i generowanie nadmiarowego ruchu w sieci. Routery rozsyłające informacje o adresach przesyłania określane są mianem serwerów tras (route servers)..3.4 Budowa i wykorzystanie bazy stanów łączy Tak jak sama nazwa wskazuje, protokoły wykorzystujące stan łącza (link state) budują bazę informacji o topologii sieci, w której pracują. Baza ta nosi nazwę baza stanów łączy, a jej zawartość zmienia się dynamicznie wraz ze zmianami w topologii sieci. Protokół OSPF do budowy bazy stanów łączy wykorzystuje pakiety LSA (Link State Advertisement) domyślnie kierowane na adres typu multicast routera desygnowanego, który następnie rozsyła otrzymany pakiet na adres typu multicast Jeśli system autonomiczny składa się z jednego obszaru, wówczas każdy z routerów w tym systemie posiada (powinien posiadać) taką samą bazę stanów łączy. W sytuacji, kiedy system autonomiczny zostaje podzielony na obszary, każdy z wewnętrznych routerów danego obszaru posiada taką samą bazę stanów łączy, a router graniczny danego obszaru (Area Border Router) z racji swojej funkcji posiada informacje ze wszystkich obszarów, do których jest podłączony (dla każdego

30 obszaru ma oddzielną bazę). W tym miejscu należy zaznaczyć, że router graniczny dla całego systemu autonomicznego (Autonomous System Boundary Router) posiada także informacje (nie umieszczane w bazie stanów łączy) otrzymane z spoza danego systemu np. za pośrednictwem protokołu BGP. Informacje te tylko w ograniczony sposób odnoszą się do topologii sieci znajdującej się poza systemem autonomicznym i składają się z trzech elementów: adresu sieci zewnętrznej, wartości metryki do tejże sieci oraz adresu następnego routera na trasie. Ponieważ protokół OSPF jest protokołem wyzwalanym zdarzeniami (ang. event trigged), dlatego aktualizacje przedmiotowej bazy nie są generowane periodycznie, a jedynie w sytuacji, kiedy któryś z routerów danego obszaru albo systemu autonomicznego (w zależności od konfiguracji) wykryje zmianę w topologii sieci. W poprawnie funkcjonującym środowisku zmiany takie powinny należeć do rzadkości, a do podstawowych czynników generujących je zaliczyć należy: reorganizację sieci; dołączenie nowego routera do sieci (obszaru); odłączenie routera od sieci (obszaru); uszkodzenia takie jak np. uszkodzenie interfejsu, uszkodzenie całego routera, uszkodzenie medium transmisyjnego łączącego routery itp. Dzięki zastosowaniu mechanizmu aktualizacji wyzwalanej zdarzeniami, w poprawnie działającym środowisku protokół OSPF generuje znacznie mniej ruchu sieciowego niż np. RIP przesyłający całą swoją tablicę routingu do wszystkich routerów sąsiednich domyślnie, co 30 sekund. W silnie obciążonych sieciach (a współczesne potrzeby użytkowników korzystających np. z przesyłania plików wideo obciążenie takie częstokroć generują) nie jest bez znaczenia ilość ruchu sieciowego generowanego przez sam protokół routingu. Pomimo wielu zalet metoda wyzwalania zdarzeniami posiada też swoje wady, lecz należy zaznaczyć, że wady te uwypuklają się albo przez krótki okres czasu albo w sytuacjach patologicznych. Pierwszą z wad jest generowanie dużego ruchu sieciowego w przypadku włączenia wszystkich (albo dużej liczby) routerów na raz. Routery zaczynają wykrywać swoich sąsiadów, nawiązywać relacje sąsiedztwa oraz budować bazę stanów łączy, która w początkowej fazie jest często uaktualniana, a w związku z tym powstaje duży ruch sieciowy, który w ekstremalnych przypadkach może sparaliżować działania użytkowników końcowych. Na szczęście sytuacja taka nie trwa długo (dobrze skonfigurowany OSPF posiada czas

31 zbieżności około 0 sekund), a w normalnych środowiskach powinna się zdarzać niezwykle rzadko. Druga z wad dotyczy problemu zwanego łopoczący interfejs (ang. flapping interface), a polegającego na tym, że wskutek niewłaściwego działania routera jeden lub wiele jego interfejsów ciągle jest uruchamianych i zamykanych. W takiej sytuacji sąsiedni router połączony z takim interfejsem generuje znaczną liczbę pakietów LSA (aktualizacji topologii), co nie jest bez znaczenia dla wydajności sieci. Baza stanów łączy jest krytycznym elementem (zasobem) dla protokołu OSPF, ponieważ na podstawie informacji z niej pochodzących algorytm najkrótszych ścieżek (w omawianym protokole jest to algorytm Dijkstry) wyszukuje optymalne trasy. Trasy te są następnie umieszczane w tablicy routingu, bez której poprawne działanie routera jest niemożliwe. Z procesem tym związane jest tzw. drzewo najkrótszych ścieżek, którego budowa i wykorzystanie zostało opisane w podrozdziale.3.5. Podobnie jak tablica trasowania tak i baza stanów łączy jest przechowywana w pamięci RAM routera, a jej zawartość (tak samo jak zawartość tablicy trasowania) jest kasowana przy restarcie bądź wyłączeniu routera. W miejscu tym należy zauważyć, że trasy statyczne są zapamiętywane w pliku konfiguracyjnym routera w konsekwencji są one przepisywane do pamięci operacyjnej po jego restarcie..3.5 Budowa i wykorzystanie drzewa najkrótszych ścieżek Kolejnym etapem będącym bezpośrednim następstwem budowy lub przebudowy bazy stanów łączy jest tworzenie drzewa najkrótszych ścieżek. Drzewo to jest budowane z wykorzystaniem informacji z bazy stanów łączy przy użyciu algorytmu Dijkstry 4. Następnie każdy router buduje własne drzewo najkrótszych ścieżek z sobą samym jako korzeniem. W związku z tym, w odróżnieniu do bazy stanów łączy, drzewo to jest inne dla każdego z routerów, nawet w tym samym obszarze. Głównym celem budowy drzewa ścieżek jest wyznaczenie najkrótszych tras do wszystkich znanych sieci i routerów, a następnie na podstawie obliczonych wartości zbudowanie lub aktualizacja tablicy routingu. Wartym uwagi jest fakt, że drzewo to zawiera pełną ścieżkę do danej sieci bądź routera, zaś w tablicy routingu umieszczany jest tylko adres następnego routera na wyznaczonej ścieżce do konkretnej sieci, a także koszt osiągnięcia tejże sieci, nie zaś cała trasa. Konsekwencją z tej własności jest fakt, że każdy obszar OSPF jest siecią bezpołączeniową (amg. connectionless 4 Należy zaznaczyć, że istnieje uogólnienie tego algorytmu tzw. algorytm Bellmana-Forda służący do wyznaczania najkrótszych tras w grafach zawierających ścieżki także o ujemnych wartościach. Z racji nieujemnych wartości kosztów (koszty te są wyliczane na podstawie przepustowości, czyli wartości dodatniej) algorytm Bellmana-Forda nie jest szeroko stosowany w implementacjach protokołu OSPF

32 network), czyli taką, w której routing nie jest predefiniowany na całej trasie, a każdy z routerów wyznacza indywidualnie kierunek trasowania danego pakietu. Jeśli router jest podłączony do kilku obszarów (Area Border Router), a w związku z tym posiada kilka baz stanów łączy, wówczas drzewo najkrótszych ścieżek jest budowane dla każdej z baz osobno. Następnie trasy do wyznaczonych sieci są umieszczane w jednej tablicy routingu..3.6 Typy komunikatów używanych przez OSPF OSPF działa bezpośrednio w czwartej warstwie modelu OSI, czyli pakiety OSPF są przenoszone przez pakiety IP, a te z kolei są enkapsulowane w ramki. Typy ramek zależą bezpośrednio od stosowanej technologii np.: Ethernet, FDDI czy Token Ring. W OSPF-ie występuje pięć różnych typów komunikatów, każdy z nich rozpoczyna się standardowym 24 bitowym nagłówkiem. Nagłówek ten zawiera wszystkie niezbędne informacje potrzebne do podjęcia decyzji, czy dany komunikat powinien zostać przyjęty czy odrzucony przez dany router. Typy komunikatów używanych przez OSPF to: Hello; Database Description; Link State Request; Link State Update; Link State Advertisement. Hello komunikaty te są wysyłane periodycznie przez wszystkie interfejsy, na których działa OSPF i służą nawiązaniu oraz utrzymywaniu relacji sąsiedztwa między routerami. W sieciach rozgłoszeniowych są one kierowane na adresy multicast ( wszystkie routery, router desygnowany), co umożliwia dynamiczne wykrywanie nowych sąsiadów. Zawartość komunikatu stanowią między innymi takie pola jak: maska sieciowa, interwał hello i interwał router dead, parametry te muszą posiadać takie same wartości dla wszystkich routerów nawiązujących relacje sąsiedztwa. Dalsze elementy składowe komunikatu Hello to pola takie jak: opcje, priorytet routera, adres desygnowanego routera, adres zapasowego desygnowanego routera, adresy sąsiednich routerów

33 Version # Packet length Router ID Area ID Checksum AuType Authentication Authentication Network Mask HelloInterval Options Rtr Pri RouterDeadInterval Designated Router Backup Designated Router Neighbor Rys..6. Schemat budowy pakietu Hello. Database Description komunikaty te są wymieniane pomiędzy routerami pozostającymi w relacji sąsiedztwa i zawierają opis zawartości bazy stanów łączy. Wymiana informacji odbywa się na zasadzie master-slave gdzie router master wysyła pakiety Database Description, a router slave potwierdza ich otrzymanie. W sytuacji, kiedy wymagana jest odwrotna wymiana informacji routery zamieniają się rolami. Format budowy komunikatów typu Database Description jest bardzo podobny do formatu komunikatów: Link State Request oraz Link State Acknowledgement i zawiera pola takie jak: MTU interfejsu, opcje, I-bit, M- bit, MS-bit, numer sekwencyjny

34 Version # 2 Packet length Router ID Area ID Checksum AuType Authentication Authentication Interface MTU Options I M MS DD sequence number An LSA Header Rys..7. Schemat budowy pakietu Database Description. Link State Request w sytuacji, kiedy całość lub część bazy stanów łączy staje się nieaktualna np. na skutek zmian w topologii sieci, router wysyła komunikat Link State Request do routerów sąsiednich żądając w ten sposób przesłania aktualnych wersji bazy stanów łączy Version # 3 Packet length Router ID Area ID Checksum AuType Authentication Authentication LS type Link State ID Advertising Router Rys..8. Schemat budowy pakietu Link State Request

35 Link State Update komunikaty te są wysyłane w odpowiedzi na Link State Request i zawierają informacje uaktualniające (lub budujące) bazę stanów łączy. W sieciach rozgłoszeniowych są one wysyłane na adresy multicast oraz W sytuacji, kiedy wymagana jest retransmisja, wówczas adresem docelowym jest (wcześniej już poznany) konkretny adres typu unicast. Komunikaty Link State Update są przesyłane tylko pomiędzy routerami sąsiednimi. Powiadomienia te są wysyłane w sytuacji, kiedy pojawi się zmiana topologii sieci lub kosztów łączy, oraz także, co 30 minut bez względu na zaistnienie zmian bądź ich brak Version # 4 Packet length Router ID Area ID Checksum AuType Authentication Authentication # LSAs LSAs Rys..9. Schemat budowy pakietu Link State Update. Link State Advertisement komunikaty te są wysyłane jako potwierdzenia odebrania innych wymagających takiego potwierdzenia pakietów. Mechanizm ten działa w sposób podobny do potwierdzeń stosowanych w protokole TCP, gdzie także jest możliwym potwierdzanie jednym komunikatem otrzymania pewnej grupy innych komunikatów (mechanizm kumulacyjnych potwierdzeń). W zależności od przeznaczenia komunikaty te mogą być kierowane na adresy zarówno multicast (do desygnowanego routera i zapasowego routera desygnowanego), jak i adresy unicast (w przypadku, kiedy wymagana jest retransmisja). Specyfikacja protokołu OSPF definiuje pięć typów pakietów LSA, do których należą: Router LSA; Network-LSA; Summary-LSA (sieć IP ); Summary-LSA (ASBR);

36 AS-external-LSA. Komunikaty te zawierają informacje opisujące obszar działania protokołu OSPF i są przesyłane do każdego routera tego obszaru. Dzięki zastosowaniu niezawodnej komunikacji każdy router w obszarze posiada taki sam zbiór informacji pochodzących z pakietów LSA. Zbiór ten nosi nazwę bazy stanów łączy (Link-state database). Wszelkie informacje niezbędne do zidentyfikowania komunikatu znajdują się w jego standardowym dwudziestobitowym nagłówku. Ponieważ wiele pakietów LSA może jednocześnie znajdować się we wspomnianej domenie niezbędnym jest ustalenie następstwa czasowego komunikaty najmłodsze zawierają informacje najbardziej aktualne. Do tego celu służy pole LS age. Pozostałe pola nagłówka to: opcje, typ LS, identyfikator LS, adres rozgłaszającego routera, numer sekwencyjny, suma kontrolna oraz długość pakietu. Router-LSA komunikaty te są wysyłane przez każdy router pracujący w domenie OSPF i opisują stan oraz koszt połączeń (interfejsów) do danego obszaru. Wszystkie połączenia danego routera muszą być zawarte w jednym pakiecie Router-LSA LS age Options Link State ID Advertising Router LS sequence number LS checksum length V E B 0 # links Link ID Link Data Type # TOS metric TOS 0 TOS metric Link ID Link Data Rys..0. Schemat budowy pakietu Router LSA. Network-LSA są generowane w sieciach rozgłoszeniowych oraz w sieciach typu NBMA posiadających przynajmniej dwa routery. Pakiety te są generowane przez router desygnowany

37 i opisują wszystkie routery podłączone do danej sieci (także router desygnowany oraz zapasowy router desygnowany) LS age Options Link State ID Advertising Router LS sequence number LS checksum length Network Mask Attached Router Rys... Schemat budowy pakietu Network LSA. Summary-LSA są generowane przez routery graniczne poszczególnych obszarów (ABR) i zawierają informacje o wszystkich osiągalnych sieciach w danym obszarze. Oba rodzaje pakietów Summary-LSA (sieć IP, ASBR) są identyczne z jednym wyjątkiem. Summary-LSA (sieci IP) opisują poszczególne sieci danego obszaru, więc pole Link-State ID zawiera adres sieciowy, natomiast Summary-LSA (ASBR) we wspomnianym polu zawiera adres IP routera granicznego systemu autonomicznego LS age Options 3 or Link State ID Advertising Router LS sequence number LS checksum length Network Mask metric TOS TOS metric Rys..2. Schemat budowy pakietu Summary LSA

38 Warto dodać, że w przypadku występowania obszarów posiadających tylko jeden router graniczny (ang. stub area 5 ), możliwe jest użycie w pakietach Summary-LSA sumacyjnej trasy domyślnej dla danego obszaru, zamiast propagowania pakietów zawierających cały zbiór tras zewnętrznych. Zapobiega to generowaniu niepotrzebnego ruchu. Więcej informacji na temat pakietów LSA znajduje się np. w [4]. AS-external-LSA komunikaty te są generowane przez router graniczny dla danego systemu autonomicznego i opisują poszczególne sieci znajdujące się zewnątrz tego systemu. W takiej sytuacji pole Link-State ID zawiera konkretne adresy IP. AS-external-LSA są używane także do opisu tras domyślnych prowadzących poza system autonomiczny i wówczas pola Link- State ID oraz maska sieciowa zawierają adres LS age Options Link State ID Advertising Router LS sequence number LS checksum length Network Mask E 0 metric Forwarding address External Route Tag E TOS TOS metric Forwarding address External Route Tag Rys..3. Schemat budowy pakietu AS external LSA. Dla przybliżenia sposobu działania protokołu OSPF, a w szczególności sposobu wykorzystania przedstawionych w tym podrozdziale komunikatów, warto przedstawić pewien przykład ich zastosowania. Przyjmijmy następującą sytuację, wszystkie routery danego obszaru są jednocześnie uruchamiane (np. po usunięciu awarii zasilania), a obszar ten jest 5 Sieć (obszar) typu stub jest to sieć posiadająca tylko jedną trasę do komunikacji z innymi sieciami

39 zbudowany w technologii Ethernet. Wówczas komunikaty OSPF są wykorzystywane w sposób następujący.. Routery parami nawiązują relację sąsiedztwa (z zastosowaniem powiadomień Hello); 2. Dla każdej pary routerów sąsiadujących wybierany jest router master i slave (z zastosowaniem powiadomień Hello); 3. Dla każdej pary routerów sąsiadujących następuje uzgodnienie numerów sekwencyjnych (z zastosowaniem powiadomień Hello). Numery te są używane do wykrywania nieaktualnych lub zdublowanych powiadomień LSA. 4. Dla każdej z pary routerów sąsiednich router master inicjuję wymianę powiadomień Database Description, a router slave potwierdza otrzymanie powiadomienia wysyłając swoje powiadomienie Database Description do routera master. 5. Jeśli router wykryje zmiany w topologii sieci, o których jeszcze nie został powiadomiony, wówczas wysyła on do routerów sąsiednich powiadomienie Link State Request. 6. Po otrzymaniu powiadomienia Link State Request, routery sąsiednie odpowiadają powiadomieniem Link State Update, które jest traktowane jako potwierdzenie otrzymania powiadomienia Link State Request. Powiadomienia Link State Update są przesyłane pomiędzy wszystkimi routerami w danym obszarze (za pośrednictwem routera desygnowanego). Innym przykładem może być sytuacja, kiedy w działającej sieci pojawi się zmiana topologii (router lub interfejs przestaje funkcjonować), wówczas:. Routery rozwiązują relację sąsiedztwa z niedostępnym routerem (z zastosowaniem powiadomień Hello); 2. Router, który wykrył zmianę topologii (rozwiązał relację sąsiedztwa) wysyła do swoich sąsiadów powiadomienia Link State Update, które to powiadomienia są dalej dystrybuowane do wszystkich routerów z obszaru..3.7 Rodzaje routerów Zostanie tu przedstawiona klasyfikacja routerów z perspektywy protokołu OSPF. Zgodnie z nią wyróżnia się następujące typy routerów: router wewnętrzny; router graniczny obszaru; router szkieletowy;

40 router graniczny systemu autonomicznego. Przejdę teraz do opisu każdego z wyżej wymienionych typów routerów. Router wewnętrzny (IR - Internal Router) taki, którego wszystkie interfejsy są podłączone do sieci wchodzących w skład jednego obszaru. Posiada on jedną bazę stanów łączy oraz uruchamia tylko jeden algorytm SPF właściwy dla tej bazy. Router graniczny obszaru (ABR - Area Border Router) jest podłączony do więcej niż jednego obszaru. Posiada on kilka baz stanów łączy (po jednej dla każdego z podłączonych obszarów) i dla każdej z baz uruchamia osobny algorytm SPF. Uzyskane w ten sposób informacje o trasach routingu są kondensowane poprzez zastosowanie agregowania adresów sieci do jednego bloku adresów (CIDR), a następnie propagowane do sieci szkieletowej (obszar zero). Przykładem może być agregowanie czterech sieci o adresach: , , i każda z maską 26 bitową wchodzących w skład jednego obszaru OSPF do jednej sieci z maską 24 bitową Router szkieletowy (BR Backbone Router) taki, który posiada interfejs podłączony do obszaru zero. W szczególności jest to router należący do więcej niż jednego obszaru (router graniczny obszaru zero albo router wewnętrzny obszaru zero. Router graniczny systemu autonomicznego (ASBR Autonomous System Boundary Router) taki, który bezpośrednio wymienia informacje z routerami należącymi do innych systemów autonomicznych. Rozgłasza on wewnątrz swojego systemu trasy prowadzące poza system. W związku z powyższym, trasy do wszystkich routerów granicznych systemu autonomicznego znane są każdemu routerowi znajdującemu się w tym systemie. ASBR jest całkowicie niezależny od poprzednich klasyfikacji, więc może być także: routerem wewnętrznym lub routerem granicznym obszaru, ponadto może pełnić funkcję, (lecz nie jest to konieczne) routera szkieletowego..4 Dodatkowe własności protokołu OSPF Protokół OSPF posiada kilka dodatkowych własności. Należy przez to rozumieć możliwość konfiguracji pewnych parametrów, która nie jest konieczna dla poprawnej pracy protokołu, a ma służyć dostrojeniu go do konkretnych warunków pracy. Każdy router indywidualnie wskazuje, jakie dodatkowe parametry jest w stanie obsługiwać, wskazania te są zawarte w pakietach: Hello, Database Description i LSA. Rozwiązanie takie pozwala na wspólną egzystencję i współpracę w obrębie jednego systemu autonomicznego routerów o rożnie skonfigurowanych parametrach dodatkowych. Należy zaznaczyć, że niektóre z tych parametrów muszą być obsługiwane i właściwie skonfigurowane dla wszystkich routerów w

41 danym obszarze, w przeciwnym przypadku nie nastąpi nawiązanie relacji sąsiedztwa. Przykładem takiego parametru jest opisany poniżej N/P-bit. Zarazem wartości innych parametrów mogą być dynamicznie negocjowane podczas procesu aktualizacji baz danych stanów łączy. W przypadku niepowodzenia negocjacji (brak uzgodnienia wspólnych wartości) routery sąsiednie najczęściej wymieniają się tylko pewnym podzbiorem informacji zawartych w bazie stanów łączy. W następstwie skutkuje to nieoptymalnymi wpisami w tablicy routingu. Do dodatkowych parametrów konfiguracyjnych zalicza się pola takie jak: E- bit, MC-bit, N/P-bit, EA-bit, DC-bit. Oto ich krótka charakteryzacja. E-bit bit ten odnosi się do sposobu obsługi AS-External-LSA. Cały obszar OSPF może zostać skonfigurowany jako sieć typu stub. W sytuacji takiej AS-External-LSA nie będą kierowane do tejże sieci (obszaru), ponieważ z racji występowania tylko jednej trasy prowadzącej poza sieć (obszar) potrzeba taka nie występuje. W celu zapewnienia spójnej konfiguracji takiej sieci, wszystkie routery do niej podłączone muszą posiadać wyzerowany E-bit zawarty w pakietach Hello. MC-bit informuje czy pakiety IP multicast są w danej sieci przesyłane zgodnie ze specyfikacją zawartą w dokumencie [8]. N/P-bit informuje czy wspierana jest obsługa pakietów LSA typu siódmego zgodnie ze specyfikacja zawartą w dokumencie [9]. EA-bit informuje czy dany router wspiera obsługę i przesyłanie pakietów External- Attributes-LSA zgodnie ze specyfikacją zawartą w dokumencie [20]. DC-bit informuje czy router obsługuje tzw. (ang. demand circuits) zgodnie ze specyfikacją zawartą w dokumencie [2]. Kolejną dodatkową funkcjonalnością protokołu OSPF w sytuacji, kiedy występują dwa systemy autonomiczne, przy czym w jednym działa OSPF, a w drugim np. RIP, jest możliwość redystrybucji 6 tras protokołu RIP. Ponieważ dla małych i niezbyt silnie obciążonych sieci komputerowych protokół RIP w zadowalający sposób spełnia swoje funkcje, a w dodatku jest implementowany na niedrogich routerach, więc jest w takich sieciach często stosowany. Dlatego funkcjonalność protokołu OSPF polegająca na możliwości połączenia dwóch różnych sieci, gdzie w jednej pracuje OSPF a w drugiej RIP jest ze wszech miar pożądana i pożyteczna. Sporo interesujących informacji na temat rozszerzeń oraz dodatkowych własności protokołu OSPF znajduje się w [6]. 6 Redystrybucja tras polega na wymianie informacji o trasach pomiędzy różnymi protokołami (np. RIP i OSPF)

42 .5 Bezpieczeństwo w protokole OSPF Na początku tego podrozdziału warto zaznaczyć, że tematyka bezpieczeństwa nie ma ścisłego związku z głównym zagadnieniem mojej pracy. Podrozdział ten został w niej zawarty dla jak najpełniejszego przedstawienia własności protokołu OSPF. Współczesne realia niejako wymuszają wprowadzenie mechanizmów zapewniających wysoki poziom bezpieczeństwa. Protokół OSPF posiada wbudowane rozwiązania zapewniające uwierzytelnianie źródła pochodzenia pakietów przezeń używanych, a także integralność ich zawartości. Za pewnego rodzaju wadę można uznać brak możliwości zapewnienia poufności dystrybuowanej informacji, co czyni ten protokół podatnym na pasywne ataki polegające na monitoringu ruchu sieciowego. Dzięki takiemu atakowi napastnik podłączony do danego obszaru jest w stanie, po przeprowadzeniu odpowiedniej analizy, wywnioskować, jaka jest topologia tego obszaru. W pewnych sytuacjach informacje takie mogą być bardzo przydatne np. do rozpoznania sieci poprzedzającego atak aktywny. Do zabezpieczenia integralności przesyłanych informacji protokół OSPF używa nadmiarowych sum kontrolnych. Sumy te stanowią tzw. kontrolę detekcyjną (detective control) pakietów na okoliczność ich modyfikacji. Należy zaznaczyć, że zabezpieczenie to nie działa ani zapobiegawczo (preventive control) ani korekcyjnie (corrective control) wobec modyfikacji (zamierzonej bądź wynikającej z różnego rodzaju zakłóceń) treści pakietu. Kontrola autentyczności źródła pochodzenia pakietów używanych przez protokół OSPF ma bardzo duże znaczenie dla bezpieczeństwa i stabilności sieci komputerowej (przede wszystkim dla danych poprzez nią przesyłanych). Nietrudno jest wymyślić scenariusz, w którym napastnik posiadając fizyczny dostęp do sieci danej organizacji i znając jej topologię (np. dzięki informacjom uzyskanym na drodze ataku pasywnego) wprowadza do niej dodatkowy router. Router ten może służyć dwóm celom. Po pierwsze, może generować niewłaściwe aktualizacje tras (np. poprzez rozgłaszanie celowo i niewłaściwie skonfigurowanej bramy domyślnej), w konsekwencji inne routery nie będą w stanie w sposób wydajny trasować ruchu sieciowego w przypadku tym mamy do czynienia z formą ataku typu DoS (ang. Denial of Service). Drugim celem wprowadzenia nieautoryzowanego routera może być chęć przekierowania całego lub części ruchu sieciowego do sieci kontrolowanej przez napastnika, a następnie dalsze jego przekierowanie już do właściwego miejsca przeznaczenia. Ponieważ klienci nadal będą w stanie oglądać strony internetowe, korzystać z poczty elektronicznej czy innych usług internetowych, to pojawienie się takiego routera może nie zostać wykryte natychmiastowo. Zaś przez cały ten czas napastnik w kontrolowanej przez

43 siebie sieci może zbierać różnego rodzaju potrzebne mu informacje. Atak taki jest rodzajem szpiegostwa np. gospodarczego. W celu zapobieżenia tego typu atakom, protokół OSPF stosuje wspomniane już uwierzytelnianie źródła pochodzenia pakietów w sposób przedstawiony w dalszej części rozdziału. W protokole OSPF informacje niezbędne do przeprowadzenia procesu uwierzytelniania nadawcy pakietu są zawarte w jego nagłówku, a dokładniej w 64 bitowym polu o nazwie authentication type. Rodzaj uwierzytelniania jest konfigurowalny oddzielnie dla każdego interfejsu danego routera. Obecnie w protokole OSPF wyróżnia się trzy typy uwierzytelniania: typ 0 jego brak; typ za pomocą jawnego hasła; typ 2 pomocą zaszyfrowanego hasła. Brak uwierzytelniania jak sama nazwa wskazuje, wybór tego typu powoduje, że informacje wymieniane między routerami w żaden sposób nie są uwierzytelniane router adresat nie sprawdza pola AuType w nagłówkach pakietów przychodzących. Z punktu widzenia bezpieczeństwa rozwiązanie to nie jest zalecane. Wybierając je należy mieć na uwadze wszystkie zagrożenia z tym związane. O ile w warunkach produkcyjnych brak uwierzytelniania jest znacznym wyłomem w systemie bezpieczeństwa danej organizacji, o tyle w warunkach np. laboratoryjnych rozwiązanie takie może być całkowicie akceptowalne. Uwierzytelnianie za pomocą jawnego hasła przy jego zastosowaniu routery wymieniające między sobą informację muszą mieć administracyjnie skonfigurowane takie samo hasło. Hasło to jest w postaci jawnej przesyłane w nagłówku (dokładnie w polu AuthenticationData) każdego pakietu. Po odebraniu pakietu router adresat sprawdza zgodność hasła ze wzorcem przypisanym do interfejsu, na którym odebrał dany pakiet. Należy zaznaczyć, że ten rodzaj uwierzytelniania, połączony z fizyczną ochroną danego obszaru, zabezpiecza przed dołączeniem nieautoryzowanego routera (router bez odpowiednio skonfigurowanego hasła będzie ignorowany przez pozostałe routery danego obszaru). Natomiast posiadając dostęp fizyczny napastnik może za pomocą ataków pasywnych przechwycić odpowiednie hasła, ponieważ są one przesyłane w postaci jawnej. Uwierzytelnianie za pomocą zaszyfrowanego hasła w tym przypadku, podobnie jak dla typu, wszystkie routery wymieniające między sobą informacje muszą mieć administracyjnie skonfigurowane to samo hasło. Jednak sam sposób przeprowadzania uwierzytelniania jest zgoła odmienny i składa się z następujących etapów:

44 . router nadawca wypełnia pole AuType zerami, a w polu AuthenticationData umieszcza identyfikator hasła; 2. do tak powstałego pakietu (na jego końcu) dodawane jest hasło - przypisane do danego interfejsu, którym pakiet ma zostać wysłany; 3. z ciągu utworzonego w punkcie 2 obliczany jest skrót (hash) za pomocą funkcji MD5; 4. wartość skrótu dodawana jest na końcu pakietu. Utworzony w powyższy sposób pakiet jest wysyłany do routera adresata, który przeprowadza proces jego uwierzytelnienia w następujący sposób.. wartość skrótu jest odcinana od pakietu i zapamiętywana; 2. tak zmodyfikowany pakiet jest kojarzony z hasłem właściwym dla interfejsu odbierającego, przy wykorzystaniu do jego rozpoznania identyfikatora hasła z pola AuthenticationData; 3. z ciągu utworzonego w punkcie 2 obliczany jest skrót (hash) za pomocą funkcji MD5; 4. obliczony skrót jest porównywany z wartością zapamiętaną pakiet jest akceptowany, gdy obie wartości są identyczne. Dodatkowo w celu eliminacji ataków przez powtórzenie 7 (reply attack) każdy pakiet zawiera numer sekwencyjny umieszczany w polu cryptographic sequence number. Numery te są zwiększane począwszy od zera aż do wartości maksymalnej, po osiągnięciu której następuje ponowne generowanie numerów sekwencyjnych od zera. Ponieważ w takiej sytuacji routery sąsiednie widzą niezgodność numerów sekwencyjnych, zaczynają odrzucać otrzymywane pakiety. Odrzucanie to trwa przez okres definiowany jako Router Dead Interval, po czym następuje ponowne ustanowienie wszystkich relacji sąsiedztwa. W celu uniknięcia (a dokładniej zmniejszenia częstotliwości występowania) tego typu problemów niektóre implementacje protokołu OSPF jako 32 bitowy numer sekwencyjny obliczają liczbę sekund od początku 960 roku. Warto wspomnieć, że rozwiązania zastosowane w protokole OSPF i mające na celu zapewnienie integralności oraz autentyczności pochodzenia pakietów są sprawdzone i szeroko stosowane także w innych protokołach routingu, jak np. RIPv2..6 Równoważenie obciążenia w protokole OSPF Współczesny protokół routingu stosowany w średnich i dużych sieciach informatycznych powinien posiadać możliwość równoważenia obciążenia tras. Równoważenie to polega na kierowaniu ruchu sieciowego adresowanego do konkretnego hosta różnymi trasami 7 Atak przez powtórzenie (ang. reply attack) polega na przejęciu przez napastnika pewnej liczby pakietów, a następnie ponownym ich użyciu ( wstrzyknięciu do sieci komputerowej) w odpowiednim i zaplanowanym momencie

45 jednocześnie. Jeśli trasy te posiadają równe koszty wówczas występuje tzw. równoważenie obciążenia typu RK, w przeciwnym przypadku mamy do czynienia z równoważeniem obciążenia z udziałem tras o różnym koszcie typu NK. W swej oryginalnej postaci protokół OSPF nie wspiera równoważenia obciążenia typu NK. W niniejszej pracy został opisany autorski sposób równoważenia obciążenia typu NK w protokole OSPF. Ponadto zastosowanie takiego równoważenia ma za zadanie zwiększenie przepustowości, a w konsekwencji wydajności całej sieci. Najbardziej optymalnym rozwiązaniem jest włączenie obsługi równoważenia obciążenia na wszystkich routerach należących do danego obszaru, wymóg ten nie jest jednak konieczny i możliwe jest zastosowanie opcji kombinowanej, w której część mocniejszych routerów obsługuje równoważenie, a pozostałe (słabsze) nie robią tego. Zastosowanie takiej konfiguracji może być podyktowane także innymi czynnikami jak np.: przepustowość łącza, obciążenie interfejsu oraz jego stabilność. Przykładowo w sytuacji, kiedy dana sieć posiada tylko jedno silnie obciążone łącze prowadzące na zewnątrz niej, włączenie równoważenia obciążenia nie podniesie wydajności przesyłu informacji ze względu na ograniczenia pasma tego łącza. W odróżnieniu, od np. haseł autentykujących routery, które są przypisywane do poszczególnych interfejsów, równoważenie obciążenia (dla danego routera) jest włączane dla całego procesu OSPF. W konsekwencji nie występuje możliwość włączenia tego równoważenia wyłącznie na wybranych interfejsach danego routera. OSPF posiada wsparcie dla równoważenia obciążenia z udziałem tras o równym koszcie prowadzących do każdej ze znanych sieci. Należy zaznaczyć, że specyfikacja protokołu OSPF nie definiuje liczby tras wykorzystywanych do równoważenia obciążenia i pozostawia jej określenie producentowi sprzętu sieciowego. Twórcy protokołu nie określili też sposobu równoważenia obciążenia. Sposobów takich jest kilka, a do najpopularniejszych należą: równomierne rozdzielenie pakietów adresowanych do danej sieci na poszczególne trasy; kierowanie pakietów adresowanych do tej samej sieci różnymi trasami, w zależności od sieci źródłowej. Przy wyznaczaniu tras o równym koszcie w protokole OSPF nie jest brane pod uwagę to, czy początkiem różnych tras prowadzących do tej samej sieci docelowej jest ten sam interfejs wyjściowy danego routera czy też nie. Brak tego typu rozróżniania można uznać za pewnego rodzaju wadę. Jeśli trasa optymalna prowadzi przez silnie obciążony interfejs, to dodanie trasy alternatywnej prowadzącej przez ten sam interfejs nie przyniesie zamierzonych rezultatów

46 .6. Inne rozwiązania równoważenia obciążenia Zgoła odmienne podejście do omawianego zagadnienia zostało przedstawione w [43], gdzie poruszany jest temat optymalizacji wydajności routingu, poprzez wprowadzenie wag dla poszczególnych łączy. Proponowane rozwiązanie odnosi się do równoważenia obciążenia jedynie z udziałem tras o równym koszcie i polega na wykorzystaniu współczynnika rozdzielania pakietów. Współczynnik ten wykorzystuje wspomniane wagi i na podstawie jego wartości pakiety adresowane do tej samej sieci, są rozdzielane pomiędzy różne trasy (w tym także prowadzące przez ten sam interfejs wyjściowy). Natomiast przedstawiony w omawianym opracowaniu sposób rozdzielania pakietów jest następujący. Wartość współczynnika przypisanego do danej trasy jest proporcjonalna do ilorazu liczby pakietów kierowanych na tę trasę i liczby wszystkich pakietów kierowanych do sieci, do której trasa ta prowadzi. Jeszcze inne podejście zostało przedstawione w [44], gdzie autorzy proponują inny (niż w protokole OSPF) sposób wyznaczania tras optymalnych. Innowacja polega na modyfikacji wyliczania metryki trasy. Podczas jej wyliczania oprócz kosztu trasy brana jest także pod uwagę jej bieżąca dostępna przepustowość. Warto zaznaczyć, że taki sposób wyliczania metryki wymaga wprowadzenia mechanizmu wymiany dodatkowych informacji pomiędzy routerami. Informacje te są wymieniane pomiędzy wszystkimi routerami występującymi na danej trasie i odnoszą się do jej bieżącej przepustowości (tj. niewykorzystywanego pasma łączy wchodzących w skład danej trasy). Mając na uwadze, że protokół OSPF najczęściej działa w średnich i dużych sieciach, a w konsekwencji tablice trasowania routerów zawierają znaczną liczbę tras, to wprowadzenie powyżej takiego mechanizmu wymiany informacji może mieć spory wpływ na wydajność tych routerów. Innymi słowy, routery zajęte przeglądaniem dużych tablic mogą nie mieć czasu na analizę informacji o bieżącej przepustowości. Jeszcze inna metoda wyznaczania metryki trasy została zaprezentowana w [45]. Autor proponuje wyliczanie jej nie tylko na podstawie kosztu, ale także i bieżącego obciążenia, przy czym informacje o obciążeniach są propagowane przez routery i to zarówno wewnątrz obszaru OSPF jak i całego systemu autonomicznego. Podobnie jak w poprzedniej metodzie, działanie takie może mieć spory wpływ na wydajność pracy routerów, tym bardziej, że informacje o obciążeniach rozchodzą się po całym systemie autonomicznym. Zgoła odmienne podejście do tematyki równoważenia obciążenia zostało przedstawione w [46]. W opracowaniu tym autorzy skoncentrowali się na agregacji ruchu sieciowego na podstawie jego miejsca przeznaczenia. Do przeprowadzania takiej agregacji wykorzystywana

47 jest minimalizacja obciążenia poszczególnych łączy sieciowych. Minimalizacja ta polega na odpowiednim wyborze podzbioru routerów następnego skoku spośród wszystkich dostępnych. Wybór ten jest podejmowany w oparciu o ilość danych przesyłanych do danej sieci oraz obciążenia łączy do niej prowadzących. Ponadto, zaproponowana w [46] metoda wykorzystuje algorytm Dijkstry ze zmodyfikowanymi wagami poszczególnych łączy. Podejście takie prowadzi do nierównomiernego rozdzielania pakietów adresowanych do danej sieci, pomiędzy odpowiednio wybrany podzbiór routerów następnego skoku co też było zamysłem autorów. Warto zauważyć, że powyższe rozwiązanie wykorzystuje jedynie trasy o koszcie optymalnym, a także wymaga zbierania informacji o ilości ruchu sieciowego przesyłanego do każdej z sieci. Dodatkowo, jak zauważają sami autorzy, wymagana jest komunikacja pomiędzy routerami mająca na celu wymianę informacji o wyznaczonym podzbiorze routerów następnego skoku dla każdej z dostępnych sieci. Analogicznie jak w przypadkach poprzednich, nie jest to bez znaczenia dla wydajności routerów. Więcej informacji na temat samej implementacji rozwiązania przedstawionego w omawianym opracowaniu znajduje się w [47]. Autorzy opisują w nim, jak z wykorzystaniem ogólnie dostępnego oprogramowania do symulacji routingu można utworzyć sieć komputerową wspierającą modyfikacje przedstawione w [46]. Jeszcze inne podejście do problemu routingu zostało zaprezentowane w [48]. W opracowaniu tym autorzy proponują wykorzystanie algorytmu genetycznego wzbogaconego o procedurę lokalnego wyszukiwania wartości wag dla poszczególnych łączy. Odpowiedni dobór tych wag ma prowadzić do optymalizacji funkcji kosztu pokonania danej trasy, a w rezultacie do wydajniejszej komunikacji i efektywniejszego wykorzystania istniejących łączy. Warto zauważyć, iż autorzy przyjmują, że funkcja kosztu danego łącza zależy od jego prognozowanego obciążenia, nie zaś nominalnej przepustowości, jak jest to przyjmowane w protokole OSPF. Funkcja ta została już wcześniej zdefiniowana przez B. Fortz i M. Thorup [50]. Jednocześnie przyjmują założenie, że ruch sieciowy jest równomiernie rozdzielany pomiędzy wszystkie optymalne trasy prowadzące do danej sieci. W świetle tego opracowania, trasy optymalne należy rozumieć jako trasy o najniższej wartości optymalizowanej funkcji celu (powyżej wspomnianej funkcji kosztu), której argumentami są wyliczona waga danego łącza oraz przewidywany współczynnik jego obciążenia. Do minimalizowania funkcji celu autorzy proponują zastosowanie algorytmu genetycznego, co można potraktować jako podejście interesujące i dość oryginalne, jednak nie pozbawione pewnych wad. Po pierwsze, routery nie posiadają wiedzy o tym ile informacji będzie przesyłane i do którego odbiorcy (wiedza o charakterystyce ruchu sieciowego), co zakładają autorzy przy przeprowadzaniu

48 badań. Po drugie, uruchomienie algorytmu genetycznego na routerze może prowadzić do znacznego spadku jego wydajności, a w przypadku routerów o małej mocy obliczeniowej do ich czasowej dysfunkcji. Na podstawie przeprowadzonych badań oraz teoretycznych obliczeń, autorzy dochodzą do wniosku, że zaproponowane przez nich rozwiązanie daje wyniki suboptymalne, lecz jak najbardziej zadowalające. Z kolei w pracy [49] autor koncentruje się na problemie optymalizacji lokalnego rozdziału ruchu sieciowego w protokołach wykorzystujących routing z udziałem najkrótszych ścieżek. Dokładniej mówiąc, stara się tak wyznaczyć wagi każdego z łączy wchodzących w skład rozważanych topologii sieciowych, żeby minimalizować maksymalne obciążenie łączy konsekwencją tego ma być zmniejszenie zatorów w sieciach. Ponieważ zadanie optymalizowania wzmiankowanych wag jest problemem NP-trudnym, (co zostało wykazane w [5]), dlatego do jego (przybliżonego) rozwiązania autor proponuje zastosowanie heurystyk lokalnego wyszukiwania. Warto zauważyć, że już we wstępie pracy pojawia się cenne spostrzeżenie, a mianowicie, że w celu lepszego (bardziej efektywnego) wykorzystania zasobów sieciowych protokoły routingu powinny być czułe na to, jaka jest charakterystyka ruchu sieciowego. Dodatkowo mając na uwadze to, że rozdział ruchu sieciowego pomiędzy dwie trasy jest rozwiązaniem efektywniejszym niż kierowanie go przez tylko jedną trasę, (co zostało analitycznie wykazane w [54]), efektywne protokoły routingu powinny wykorzystywać wiele tras o równym koszcie prowadzących do tej samej sieci. Przy czym autor zakłada równomierny rozkład pakietów pomiędzy wszystkie używane trasy. W celu realizacji postawionego sobie zadania w opracowaniu tym zastosowane zostały dwie heurystyki. Pierwsza to metoda zaproponowana przez B. Fortz i M. Thorup przedstawiona w [52], a druga to metoda K. G. Ramakrishnan i M. A. Rodrigues przedstawiona w [53]. Dodatkowo w celu zmniejszenia złożoności obliczeniowej drugiej metody autor proponuje wprowadzenie do niej pewnego udoskonalenia. Udoskonalenie to polega na dokonaniu trzech modyfikacji. Pierwsza z nich polega na rozszerzeniu funkcjonalności zastosowanej metody o wyznaczanie wielu tras o najmniejszym koszcie (zamiast tylko jednej). Druga wprowadza rozkład (balansowanie) ruchu sieciowego pomiędzy wyznaczone trasy. Trzecia zaś dodaje możliwość zmiany (w jednej iteracji) więcej niż jednej spośród wag przypisanych do poszczególnych łączy wchodzących w skład optymalizowanych tras, co ma prowadzić do efektywniejszego rozkładu obciążenia. W pracy tej jest także poruszone zagadnienie wyznaczania wag poszczególnych łączy w sytuacji, kiedy nie jest znana charakterystyka ruchu sieciowego. Niestety próby rozwiązania tego zagadnienia nie przynoszą zadowalających rezultatów. Należy jednak stwierdzić, że badania przeprowadzone w tej pracy

49 wykazują, iż zastosowanie udoskonalonej drugiej metody daje o 20% lepsze rezultaty w minimalizowaniu maksymalnego obciążenia łączy sieciowych niż metoda zwiększania wag silnie obciążonych łączy (stosowana częstokroć przez operatorów sieciowych). Dodatkowo zastosowana metoda daje aż o 40% lepsze rezultaty od tych, które można uzyskać stosując wagi odpowiadające nominalnym przepustowościom łączy, zgodnie z obecną specyfikacją protokołu OSPF. Ciekawe podejście do omawianego zagadnienia można znaleźć w [62]. W opracowaniu tym autor przedstawia adaptacyjne rozwiązanie z obszaru inżynierii ruchu sieciowego zwane MATE. Rozwiązanie to wykorzystuje równoważenie obciążenia przeprowadzane w krótkich przedziałach czasowych, a także aproksymację spodziewanego obciążenia łączy sieciowych. W MATE funkcja kosztów poszczególnych tras zależy od sumy średnich opóźnień występujących na łączach wchodzących w skład danej trasy. Proponowany algorytm działa w sposób rozproszony (nie występuje centralne zarządzanie), a ruch sieciowy jest dystrybuowany na różne trasy w oparciu o dobrze znaną funkcję skrótu CRC. W [63] został zaprezentowany stosunkowo podobny sposób równoważenia obciążenia polegający na tym, że pakiety adresowane do danej sieci są losowo dystrybuowane na n tras. W rozwiązaniu tym, każde łącze posiada dynamicznie przypisany i periodycznie aktualizowany koszt, który jest funkcją bieżącego obciążenia tego łącza. Koszt całej trasy liczony jest jako suma kosztów poszczególnych łączy wchodzących w jej skład. Natomiast ruch sieciowy rozdzielany jest pomiędzy poszczególne trasy w taki sposób żeby koszty wykorzystywanych tras (zależne od obciążenia łączy je stanowiących) były względem siebie zbliżone. W [68] autorzy przedstawiają nowatorski algorytm wyznaczania kosztów tras. Algorytm ten nosi nazwę najkrótsza-najszersza (ang. shortest-widest) i wyznacza trasy o minimalnej liczbie przeskoków (ang. hops) cechujące się największą przepustowością na najwolniejszych łączach (max-min) wchodzących w ich skład. Następnie odpowiednie zasoby są rezerwowane i modyfikowane w sposób odzwierciedlający bieżący stan sieci. W celu zapobieżenia nadmiernej generacji ruchu sieciowego, informacje o zaistniałych zmianach w stanie sieci (np. obciążenia i dostępność interfejsów oraz łączy itp.) są propagowane jedynie w sytuacjach, gdy zostają przekroczone odpowiednio ustawione wartości progowe. Inna ciekawa koncepcja została zaprezentowana w [7], gdzie autorzy proponują zastosowanie rozwiązania o nazwie PSR (ang. Proportional Sticky Routing) do celów wyznaczania optymalnego rozkładu ruchu sieciowego pomiędzy różne trasy. PSR wykorzystuje lokalne informacje o stanach łączy i nie wymaga centralizacji układu zarządzania trasami routingu. Mówiąc precyzyjniej, wykorzystując PSR każdy router

50 wyznacza n podstawowych i m alternatywnych tras do danej sieci. Metryką przy wyznaczaniu tras jest liczba routerów wchodzących w jej skład. Istota działania algorytmu polega na takim rozkładaniu ruchu sieciowego, aby wyrównywać na wszystkich używanych trasach współczynniki przepływu, czyli rozkładać ruch w sposób równomierny względem czasu. W celu realizacji takiego działania, algorytm śledzi i zapamiętuje historię blokad każdego łącza. Tylko trasy z najmniejszym prawdopodobieństwem wystąpienia blokad (na łączach wchodzących w ich skład) oraz najmniejszą liczbą routerów są brane pod uwagę przy tworzeniu tablic routingu. Innymi słowy, autorzy w swoim rozwiązaniu przedstawiają nowatorską, opartą na danych statystycznych, metrykę służącą do wyznaczania preferowanych tras routingu. W [72] ci sami autorzy sugerują, że rozważane trasy powinny być jak najkrótsze, co pozytywnie wpływa na ich złożoność oraz najwolniejsze łącze na trasie powinno być różne dla każdej z tras. W opracowaniu tym zaproponowano też sposób wyznaczania tras o powyżej opisanych własnościach. Dość odmienne rozwiązanie zostało przedstawione w [73]. Autorzy rozważają w sposób wysoce teoretyczny zastosowanie równoważenia obciążenia w celu optymalizacji funkcji użyteczności w odniesieniu do ograniczeń takich jak przepustowość łączy oraz natężenie ruchu sieciowego. Wspomniana funkcja użyteczności jest wyrażona jako suma funkcji wypukłych np. związanych z opóźnieniami poszczególnych łączy. W opracowaniu tym do rozdziału ruchu sieciowego zastosowano tzw. zdecentralizowane reguły adaptacyjne wywodzące się z metody zwanej sliding mode control metoda nieliniowej kontroli przekształcania nieliniowych systemów dynamicznych przy użyciu kontroli przełączania o wysokiej częstotliwości [22]. Ponadto autorzy wykazują, że zastosowanie takiego podejścia oddzielnie dla każdej z pary komunikujących się węzłów prowadzi funkcję użyteczności zbieżnie do maksimum. W [76] przedstawione jest jeszcze inne podejście do badanego zagadnienia, a mianowicie każda trasa rozumiana jest jako zbiór niezależnych kolejek (po jednej dla każdego z łączy). Opóźnienie całej trasy wyznaczane jest jako suma średnich opóźnień po wszystkich kolejkach wchodzących w skład trasy. Omawiany algorytm wyznacza także rozkład ruchu sieciowego, który minimalizuje średnie opóźnienie każdej trasy, a także na bieżąco aktualizuje proporcje rozkładu ruchu sieciowego w sytuacji zmiany obciążenia sieci. Bardziej ogólne spojrzenie na omawianą kwestię wykorzystujące idee zastosowania scentralizowanego modelu zarządzania trasami routingu zostało przedstawione w [69]. Autorzy proponują zastosowanie scentralizowanego menadżera zasobów (ang. Centralized Resouce Manager) do wyznaczania tras i zbierania informacji o aktualizacjach stanów łączy

51 Zarządca taki działa dla całego systemu autonomicznego i wyznacza trasy pomiędzy wszystkimi komunikującymi się węzłami. Innymi słowy, poszczególne routery zgłaszają zapotrzebowanie na ustalenie trasy routingu do danej sieci, zaś stacja zarządzająca wyznacza trasę spełniającą wymogi QoS, aktualizuje obciążenie poszczególnych łączy, a następnie zwraca informacje o ustalonej trasie do konkretnych routerów. Oczywistą wadą takiego rozwiązania jest wprowadzenie tzw. pojedynczego punktu awarii oraz możliwość zaistnienia znacznych opóźnień ze względu na przeciążenie stacji zarządzającej. Osobiście uważam, że pomysł z zastosowaniem scentralizowanego zarządzania trasami routingu jest jak najbardziej godny uwagi lecz należy dobrze się zastanowić nad tym jak szeroki zakres kompetencji należy przyznać takiemu menadżerowi, tzn. jaką liczbą routerów powinien on zarządzać. Odmienne podejście do zagadnień rozkładu ruchu sieciowego zostało przedstawione [83]. W opracowaniu tym autor koncentruje się na wykorzystaniu algorytmów sztucznej inteligencji takich jak algorytmy genetyczne oraz symulowane wyżarzanie, a także rozważa rozwiązania kombinowane i wprowadza pewne modyfikacje. Warto zauważyć, że w tym opracowaniu przy zastosowaniu algorytmu symulowanego wyżarzania kolejne rozwiązanie jest otrzymywane w wyniku losowych zamian (podmiany) łączy wchodzących w skład poszczególnych tras. Osobiście uważam, że jest to rozwiązanie, które należałoby udoskonalić np. poprzez wprowadzenie pewnej metody selekcji łączy spośród których następuje losowanie. Mając świadomość niedoskonałości istniejących rozwiązań autor proponuje wprowadzenie pewnych udoskonaleń. Modyfikacje polegają na połączeniu algorytmu genetycznego wraz z symulowanym wyżarzaniem, w efekcie czego powstaje algorytm hybrydowy nazwany przez autora HGSA (ang. Hybrid Genetic Simulated Annealing Algorithm). Dokładniej mówiąc, modyfikacji podlega część algorytmu genetycznego odpowiedzialna za proces selekcji. Symulowane wyżarzanie jest zastosowane do wyboru potomka spośród pary rodziców, oraz do wyboru najlepszego rozwiązania spośród całej populacji. Na podstawie przeprowadzonych symulacji, na dwóch przykładach środowisk sieciowych, autor wnioskuje, że algorytm hybrydowy działa wolniej, lecz generuje lepsze rozwiązania w porównaniu do zarówno algorytmu genetycznego jak i symulowanego wyżarzania. W [82] autorzy dokonują prezentacji oraz porównania różnych interaktywnych technik optymalizacji takich aspektów jak: niezawodność, tolerancja błędów, czy koszt w odniesieniu do zagadnienia projektowania sieci komputerowych. Pomimo przytoczenia różnych rozwiązań, popartych wieloma przykładami, autorzy niestety pozostawili czytelnikowi wyciągnięcie wniosków na temat efektywności działania poszczególnych rozwiązań. Natomiast w omawianym artykule zostały opisane dwa zastosowania - 5 -

52 symulowanego wyżarzania do rozwiązania problemu optymalizacji topologii sieciowej. Pierwszy sposób odnosi się do opracowania [84], drugi zaś do [85]. Ze względu na poruszaną tematykę, a także zastosowaną metodę do rozwiązania badanego zagadnienia obydwa te opracowania zostały opisane poniżej w sposób nieco szerszy. Tak jak zostało już wcześniej powiedziane w [84] autorzy stosują algorytm symulowanego wyżarzania w którym rozwiązanie początkowe jest generowane losowo. Następnie łącza są losowo dodawane lub usuwane z danej trasy w rezultacie powstaje rozwiązanie wtórne. W przypadku usuwania łącza sprawdzane jest, czy dana sieć nadal jest osiągalna, co jest warunkiem koniecznym do wstępnej akceptacji wygenerowanej trasy. W rozwiązaniu tym zastosowano następujące wartości parametrów algorytmu: całkowity czas działania 4000 (autorzy nie określili jednostek) jest jednocześnie warunkiem zatrzymania algorytmu. Parametr alfa odnoszący się do szybkości, z jaką zmniejszana jest temperatura przyjęto równy Natomiast czas, w jakim algorytm działa w danej temperaturze jest wydłużany wraz z jej spadkiem o wartość parametru beta =.005. Pomimo, że w [85] zastosowano to samo rozwiązanie do tego samego zagadnienia, to jednak przyjęto nieco inne podejście do warunków i parametrów pracy algorytmu. A mianowicie, warunkiem zatrzymania jest osiągnięcie przez algorytm określonej temperatury minimalnej. Temperatura początkowa jest wyznaczana w sposób bardziej złożony. Przyjmijmy, że X jest pewnym współczynnikiem akceptacji, np. stosunkiem liczby zaakceptowanych rozwiązań do liczby rozwiązań wygenerowanych. Wartość temperatury początkowej jest podwajana (w każdym kolejnym uruchomieniu algorytmu) poczynając od pewnej wartości wyjściowej, aż wspomniany współczynnik akceptacji osiągnie wartość większą od założonej. Uważam, że jest to bardzo interesujące podejście tym bardziej, że umożliwia osiągnięcie z góry założonej dokładności działania algorytmu. Szkoda tylko, że autorzy nie wspomnieli o tym jak wydłuża się czas pracy algorytmu oraz jakość wygenerowanych rozwiązań wraz ze wzrostem temperatury początkowej, co mogłoby stanowić bardzo interesującą informację. Inna próba porównania efektywności działania algorytmów genetycznych i symulowanego wyżarzania do planowania sieci telekomunikacyjnych została przedstawiona w [80]. Autor stawia pytanie, który z algorytmów może dać lepsze rozwiązania dla danego problemu i w jaki sposób powinny być dobierane parametry pracy algorytmu. Po przeprowadzeniu pewnego zestawu niezbyt skomplikowanych symulacji, autor wnioskuje, że lepsze rezultaty otrzymuje się przy zastosowaniu algorytmów genetycznych. Jednakże nie jest to zupełnie prawdziwe stwierdzenie. Główny wniosek przeprowadzonych porównań można sformułować w sposób następujący. Efektywność pracy omawianych algorytmów zależy od typu problemu, do

53 rozwiązania, którego zostały użyte oraz od przyjętych wartości początkowych parametrów. Przy wyszukiwaniu optymalnych lokalizacji dla koncentratorów sieciowych lepszy okazał się algorytm genetyczny, ale tylko wtedy, gdy rozpoczynał działanie z dobrze dobranymi parametrami startowymi. Niestety omawiane opracowanie nie odpowiada (nawet w przybliżeniu) na pytanie, w jaki sposób parametry takie dobierać. Osobiście uważam, że opracowanie metody ustalania parametrów startowych danego algorytmu w zastosowaniu do konkretnego zagadnienia nie jest zadaniem trywialnym, choć na pewno interesującym i bardzo praktycznym. Kolejny przykład zastosowania algorytmu symulowanego wyżarzania do optymalizacji sieci ATM został opisany w [79]. W opracowaniu tym autorzy porównują efektywność działania algorytmu Metropolisa [93][98][99] z algorytmem deterministycznym opracowanym przez Bereznera i Krzesińskiego [90]. Wspomniany algorytm, którego (jak można się domyślać) współautorem jest Polak z pochodzenia, nosi nazwę XFG i służy do rozwiązywania problemów optymalizacyjnych w sposób deterministyczny. Dokładniejsze informacje na temat tego algorytmu zostały przedstawione w [90]. Wracając do omawianego opracowania, do porównania efektywności działania algorytmów została wykorzystana 49-cio węzłowa topologia sieciowa typu grid (krata z routerami w miejscach węzłów) z równymi kosztami tras. Autorzy zauważają, że sieć o takich rozmiarach i złożoności jest zbyt duża żeby mogła być wydajnie analizowana przez standardowe nieliniowe oprogramowanie typu solver. W przeprowadzonych pomiarach zastosowano następujące ustawienia algorytmu symulowanego wyżarzania. Schemat chłodzenia jest oparty na wykorzystaniu funkcji o wzorze c k K α = c0 ( ), gdzie K jest maksymalną z góry założoną liczbą połączeń w analizowanej sieci, k - liczbą połączeń przeanalizowanych przez algorytm w danej iteracji, zaś c 0 jest parametrem inicjalizującym o wartości początkowej równej jeden. Tak jak zauważają autorzy prawidłowy dobór wartości parametru α wymaga przeprowadzenia wielu eksperymentów. Podczas porównań parametr ten przyjmował wartości,2,4. Podsumowując, należy wspomnieć, że rezultaty otrzymane podczas przeprowadzonych symulacji są niemalże takie same, lecz algorytm XFG działał w czasie około pięciu minut, podczas gdy symulowane wyżarzanie zajęło około pięciu godzin. Można stwierdzić, że otrzymane wyniki, głównie odnoszące się do różnicy czasów pracy algorytmów są dość niespodziewane, a nawet zaskakujące. Tym bardziej, że w [8] stosując algorytm symulowanego wyżarzania do zaprojektowania topologii sieci ATM, autorzy otrzymali odmienne czasy niż w [90]. W opracowaniu tym projektowanie topologii podzielono na dwie fazy. W pierwszej

54 projektowany jest szkielet sieci (główny pierścień) w drugiej zaś sposób podłączenia użytkowników końcowych do głównej części sieci. Należy tu wspomnieć, że celem optymalizacji było zminimalizowanie kosztu budowy sieci. Mówiąc dokładniej, w fazie pierwszej dla 50 routerów otrzymano czas pięciu minut, zaś w fazie drugiej niewiele ponad dziewięć minut, co znacznie różni się od czasów z [90]. Pozostając przy liczbach, warto wspomnieć, że w optymalizacji tej zastosowano sto sześćdziesiąt generacji algorytmu symulowanego wyżarzania, a koszt końcowy został obniżony o około 20% w stosunku do początkowego. Warto zauważyć, że znaczna większość powyższych rozwiązań odnosi się albo do optymalizacji rozdziału pakietów między trasy o najlepszym koszcie albo do modyfikacji sposobów wyznaczania metryk tychże tras. Należy także dodać, że niektóre z opracowań poruszają zagadnienie projektowania sieci komputerowych. W konsekwencji żadne z nich nie odnosi się do tematyki scentralizowano-rozproszonego modelu optymalizacji routingu w protokole OSPF z wykorzystaniem tras o nierównym koszcie. Więcej informacji na temat szeroko rozumianej tematyki routingu w sieciach komputerowych znajduje się np. w [8][9][30][34][37][42][55][60][67][70][74]..7 Podsumowanie W niniejszym rozdziale został w skrócie przedstawiony obecny stan rozwoju protokołu OSPF. Należy zaznaczyć, że ze względu na dużą liczbę różnych rozwiązań oraz parametrów konfiguracyjnych, tak zawartych w specyfikacji protokołu, jak implementowanych samodzielnie przez poszczególnych producentów urządzeń sieciowych, dokonanie pełnego opisu tej tematyki na pewno jest bardzo pracochłonne (o ile w ogóle możliwe). W zaistniałej sytuacji ograniczyłem się do przedstawienia najważniejszych usprawnień protokołu wraz z ich przykładowymi zastosowaniami w różnego typu rozwiązaniach praktycznych. Szczegółowy opis budowy i konfiguracji przykładowej sieci informatycznej wykorzystującej protokół OSPF wraz z wyjaśnieniami zastosowanych rozwiązań znajduje się w załączniku II

55 Rozdział 2. Równoważenie obciążenia z wykorzystaniem tras o równym i nierównym koszcie Nowoczesny protokół routingu przeznaczony do pracy w średnich i dużych sieciach komputerowych powinien obsługiwać równoważenie obciążenia zarówno z udziałem tras o równym jak i nierównym koszcie. Daje to administratorowi sieci komputerowej możliwość dokładniejszego dostrojenia go do potrzeb danej organizacji oraz innych istniejących uwarunkowań, takich jak np. topologia sieci czy istniejąca infrastruktura. W dalszej części tego rozdziału zostało w ogólny sposób przedstawione proponowane udoskonalenie, a następnie szczegółowe, poparte ilustrowanymi przykładami, wyjaśnienie istoty proponowanego rozwiązania wraz z przykładem działania. Zakończenie rozdziału stanowi opis spodziewanych wyników wdrożenia opracowanego rozwiązania. 2. Ogólny opis proponowanego rozwiązania W odpowiedzi na stale rosnące zapotrzebowanie użytkowników na szybkość przesyłania informacji powstają coraz nowsze technologie, wzrasta stopień złożoności sieci komputerowych, a także wydajność działających w nich protokołów. Równoważenie obciążenia typu RK zwiększa przepustowość sieci komputerowej, lecz w warunkach współczesnych rozwiązanie takie w wielu sytuacjach staje się niewystarczające. Dlatego należy rozważyć wprowadzenie udoskonalenia do powszechnie stosowanego protokołu, jakim jest OSPF. Warto tu zaznaczyć, że udoskonalenie takie można zastosować także w innych protokołach. Polega ono na możliwości równoważenia obciążenia z wykorzystaniem tras o nierównym koszcie (zwane dalej NK), co jest opisane w niniejszej pracy. Równoważenie to można przeprowadzać na wiele sposobów. Przykładem może być protokół EIGRP (Extended Interior Gateway Routing Protocol) stanowiący własność firmy Cisco Systems. W protokole tym wybór tras jest dokonywany na podstawie metryki, a dokładniej na podstawie ilorazu metryki danej trasy do metryki trasy najlepszej. Wartość tego ilorazu jest parametrem lokalnym, definiowanym przez administratora danego routera. Tak jak zostanie później wykazane, metoda taka nie jest optymalna. Innym sposobem równoważenia może być równoważenie na podstawie obciążenia interfejsu, przez który prowadzi wyznaczona trasa optymalna. Sposób ten stanowi przedmiot dalszych badań opisanych w niniejszej pracy. Warto przypomnieć, że przedstawione w pracy rozwiązanie polega na zwiększaniu efektywnej przepustowości sieci w tych przypadkach, w których jest to możliwe. Czy

56 możliwość taka istnieje, okazuje się w wyniku porównania przepustowości osiąganych przy zastosowaniu opisanych wcześniej dwóch typów równoważenia obciążenia tj. RK i NK. Porównanie to jest wykonywane w czasie rzeczywistym, co umożliwiają odpowiednie (autorskie) algorytmy. Ponieważ z góry nie wiadomo czy należy włączyć równoważenie obciążenia typu NK, dlatego przeprowadza się symulację spodziewanych warunków pracy sieci. Na podstawie otrzymywanych wyników podejmowana jest decyzja o włączeniu równoważenia typu NK. Warto także dodać, że główną korzyścią z zastosowania przedstawionego w tej pracy rozwiązania jest uzyskanie w czasie rzeczywistym poprawy przepustowości sieci (o ile to jest możliwe), a w konsekwencji bardziej efektywne wykorzystanie posiadanych zasobów sieciowych i zwiększenie satysfakcji użytkowników. 2.2 Szczegółowy opis proponowanego rozwiązania Opracowane rozwiązanie polega na dynamicznym włączaniu i wyłączaniu rozkładu obciążenia typu NK przy założeniu, że trasy po których odbywa się równoważenie obciążenia prowadzą przez różne interfejsy wyjściowe danego routera. Do przeprowadzenia takiego działania niezbędnym jest: zdefiniowanie warunków koniecznych do włączenia (wyłączenia) równoważenia obciążenia typu NK; utworzenie tablicy routingu zawierającej odpowiednie wpisy; rozdzielenie ruchu sieciowego na różne trasy według przyjętego algorytmu. Każda z powyższych czynności została dokładnie opisana w dalszych częściach tego podrozdziału Warunki niezbędne do włączenia (wyłączenia) równoważenia obciążenia typu NK W zaproponowanym rozwiązaniu wprowadza się dwa parametry konfiguracyjne ustawiane przez administratora danego routera. Pierwszy z nich o nazwie lbstart (load balancing start) jest wartością z przedziału domkniętego <0,> odpowiadającą obciążeniu interfejsu, przy przekroczeniu, którego następuje włączenie równoważenia obciążenia. Przykładowo dla lbstart=0.9 równoważenie obciążenia jest włączane po przekroczeniu obciążenia (któregokolwiek z interfejsów) równego 90%. Analogicznie, drugi parametr o nazwie lbstop służy do dynamicznego wyłączania równoważenia obciążenia w sytuacji, kiedy obciążenie interfejsu (interfejsów) osiągnie wartość niższą od przyjętej. Pomimo, że obydwa parametry mogą mieć tę samą wartość to w przedstawionym w tej pracy rozwiązaniu nie jest to konfiguracja zalecana. Duża zmienność ruchu sieciowego może skutkować zbyt częstymi

57 włączeniami i wyłączeniami równoważenia obciążenia, co nie jest zjawiskiem pożądanym. Dlatego właściwy dobór wspomnianych parametrów jest istotnym czynnikiem wpływającym na przepustowość danego routera, a także sieci komputerowej. Wartości wspomnianych parametrów powinny być ustalane indywidualnie dla danej sieci na podstawie odpowiedniej analizy ruchu sieciowego. W tym miejscu warto zaznaczyć, że im większa liczba interfejsów zostaje przeciążona tym router jest bardziej skłonny do akceptowania tras alternatywnych (o gorszych metrykach), lecz co istotne, prowadzących przez inne interfejsy wyjściowe niż prowadzą trasy optymalne. Skłonność do akceptowania tras o gorszych metrykach wraz ze wzrostem liczby przeciążonych interfejsów, wynika bezpośrednio z wzoru (2.2) Utworzenie tablicy routingu zawierającej odpowiednie wpisy W opracowanym rozwiązaniu tablice routingu poszczególnych routerów powinny na stałe zawierać wpisy określające wszystkie trasy optymalne do każdej znanej sieci składowej środowiska obszaru OSPF. Dodatkowo w sytuacji, kiedy pojawiają się przeciążone interfejsy, do tablicy tej powinny zostać dodane inne (o gorszej metryce) trasy prowadzące do tych sieci. W takiej sytuacji dla każdej ze znanych sieci w tablicy routingu występuje trasa optymalna i trasy pozostałe (o ile istnieją), gdzie każda z tras prowadzi przez inny interfejs wyjściowy. W tym miejscu warto zaznaczyć, że istnieje i jest praktycznie wykorzystywany inny lecz podobny sposób wyboru tras alternatywnych. Mowa tu o protokole EIGRP firmy Cisco. Protokół ten posiada możliwość równoważenia obciążenia z udziałem tras o nierównym koszcie. Trasa alternatywna zostaje dodana do tablicy routingu, jeśli jej koszt jest nie większy niż n razy koszt trasy optymalnej prowadzącej do danej sieci, czyli spełnia poniższą nierówność. c c opt * γ (2.) gdzie: c koszt analizowanej trasy; c opt koszt trasy optymalnej; γ - współczynnik o nazwie variance, jest on statycznie konfigurowany przez administratora routera. Współczynnik ten jest liczbą całkowitą z przedziału <,28>. W zaproponowanej przeze mnie metodzie trasa alternatywna prowadząca do danej sieci zostaje dodana do tablicy routingu, gdy spełnia warunek konieczny tj. przedstawiony poniższym wzorem. c c opt * α i * β i (2.2) gdzie:

58 β i - współczynnik wyznaczany osobno dla każdego routera przez metodę symulowanego wyżarzania, dokładniej omówiony w dalszej części tego podrozdziału; α i liczba przeciążonych interfejsów routera R i przez które prowadzą trasy do sieci docelowej - pojęcie przeciążenia interfejsu zostało zdefiniowane w poprzednim podrozdziale. Zakładając, że sieć jest opisana grafem z routerami jako wierzchołkami, to α i dla routerów R i przyjmują wartości całkowite z przedziału α i deg(r i )-, gdzie deg(r i ) jest stopniem wierzchołka R i, czyli liczbą interfejsów tego routera. Teraz podane zostanie uzasadnienie przyjętej postaci warunku. Zwarzywszy, że jeśli iloczyn α i * β i potraktować jako jeden parametr to powstaje rozwiązanie bliźniacze do wykorzystywanego w protokole EIGRP. Na tym jednak podobieństwa się kończą. Pragnąc utworzyć rozwiązanie bardziej elastyczne, należy zdynamizować współczynnik odpowiadający za to, jakie trasy będą dodawane do tablicy routingu, tak żeby jego wartość była na bieżąco dostosowywana do panujących (lub przewidywanych) warunków w sieci. Wspomniane uelastycznienie zostało osiągnięte dzięki podzieleniu 8 tego współczynnika na dwie części, czyli α i i β i. Pierwsza część jest dynamicznie i okresowo wyznaczana przez dany router, tak żeby optymalizować jego przepustowość. Mamy tu do czynienia z czymś, co można nazwać optymalizacją rozproszoną, każdy router samodzielnie dostraja się do panujących warunków poprzez wyznaczanie liczby swoich przeciążonych interfejsów. Drugi zaś parametr, czyli β i (a dokładniej wektor parametrów β i - po jednym dla każdego routera R i ), jest wyznaczany centralnie przez stację zarządzającą danym obszarem OSPF i dystrybuowany do poszczególnych routerów. Należy podkreślić, że sytuacja taka dotyczy zarządzania wyłącznie w aspekcie metody NK, zaś sam OSPF jest protokołem rozproszonym bez centralnego zarządzania. Warto także zaznaczyć, że stacja zarządzająca na podstawie posiadanych informacji i przy zastosowaniu metody SW, wylicza wartości poszczególnych parametrów β i w taki sposób żeby maksymalizować przepustowość całego obszaru OSPF, przy czym wyznaczone rozwiązanie obowiązuje tylko w pewnym przedziale czasu. W tym przypadku mamy do czynienia z optymalizacją scentralizowaną. Ponadto, jeśli współczynnik β i zostanie wyznaczony w taki sposób, że wartość iloczynu α i * β i będzie mniejsza od, to żadna trasa alternatywna (o koszcie wyższym od optymalnego) nie zostanie dodana do tablicy routingu danego routera. Jednocześnie przyjmujemy, że α i, czyli równoważenie obciążenia typu NK działa tylko 8 W gwoli ścisłości należy zaznaczyć, że sposób podziału współczynnika variance na α i * β i został przyjęty arbitralnie, zaś inne sposoby podziału jak np. α i + β i czy α i βi mogą stanowić interesujący kierunek dalszego rozwoju poruszanej tematyki

59 wówczas, gdy przynajmniej jeden interfejs jest przeciążony. Z punktu widzenia analizowanego zagadnienia sytuacja, w której żaden interfejs nie jest przeciążony, nie stanowi przedmiotu badań. Reasumując, chcąc tworzyć tablice routingu w sposób elastyczny, adaptacyjny oraz wykorzystujący istniejące i sprawdzone rozwiązanie, wzór do tworzenia tych tablic może być zapisany w postaci nierówności (2.2). Podczas wyznaczania wartości współczynników beta za pomocą metody SW współczynniki α i powinny zostać ustawione na swoje wartości maksymalne. Działanie takie ma na celu symulację maksymalnego obciążenia sieci przed rozpoczęciem optymalizacji jej przepustowości. W tym miejscu warto dodać, że praca niniejsza koncentruje się głównie na optymalizacji przepustowości sieci maksymalnie obciążonych. Powód przyjęcia powyższego założenia jest następujący: wyznaczając współczynnik beta przy innej wartości współczynnika α i niż maksymalna może dojść do sytuacji, w której na skutek zmiany warunków panujących w sieci ulegnie zmianie (wzrostowi) wartość parametru α i. Wzrost taki może prowadzić do kierowania ruchu sieciowego na zbyt wiele tras, a to z kolei do spadku przepustowości sieci sytuacja taka została przedstawiona w rozdziale 3. Natomiast β i jest parametrem służącym do dostrojenia wyznaczonego rozwiązania do istniejącej topologii oraz charakterystyki ruchu sieciowego. Każdy router z danego obszaru posiada jeden przypisany do niego parametr beta. Wartości tych parametrów generowane są centralnie przez stację zarządzającą i co pewien czas dystrybuowane do wszystkich zarządzanych routerów. Sposób generowania wspomnianych parametrów jest tak dobrany żeby globalnie maksymalizować przepustowość całego obszaru (z uwzględnieniem spodziewanej charakterystyki ruchu sieciowego w danym interwale czasu) i stanowi główny przedmiot badań pracy. Wyznaczanie wartości parametrów beta jest realizowane z zastosowaniem metody symulowanego wyżarzania. Dodatkowo, β i zależy od maksymalnego kosztu trasy (c max ) z danego routera do dowolnej sieci docelowej znajdującej się w obrębie obszaru OSPF i przyjmuje wartości z przedziału 0 < β i β max i, gdzie β max i także zależy od maksymalnego kosztu osiągnięcia sieci docelowej i jest wyrażone poniższym wzorem. β max i = ( n c max max ) c opt przy czym n max jest maksymalną liczbą interfejsów, przez które prowadzą trasy (optymalna i alternatywne) do sieci docelowej. Warto zauważyć, że n max jest zawsze większe od jedności. Dla n max = występuje tylko jedna trasa do sieci docelowej, czyli równoważenie obciążenia (2.3)

60 typu NK jest wyłączone, a tym samym stosowanie w takiej sytuacji wzoru (2.3) staje się bezzasadne. Schemat blokowy algorytmu, służącego do budowy tablicy routingu został przedstawiony na rys. 2.. W tym miejscu warto bardziej szczegółowo wyjaśnić, jaka jest jego rola oraz powiązanie z algorytmem SW. Mianowicie, algorytm działa indywidualnie na każdym z routerów i jak zostało wspomniane służy on do budowy tablicy routingu routera, na którym jest wykorzystywany. Jednym z parametrów wejściowych omawianego algorytmu jest wartość współczynnika beta. Na podstawie tej wartości i z wykorzystaniem nierówności (2.2), algorytm podejmuje decyzję, które trasy powinny zostać dodane do tablicy routingu, a które nie. Natomiast wartość wspomnianego współczynnika beta, (który także występuje w nierówności (2.2)) jest wyznaczana i dostarczana przez centralną stację zarządzającą. Stacja ta wykorzystując algorytm SW wyznacza wartości współczynników beta (po jednym dla każdego z routerów) w taki sposób żeby maksymalizować przepustowość całego obszaru OSPF, przy czym wyznaczone rozwiązanie obowiązuje tylko w pewnym przedziale czasu. Przechodząc do omówienia algorytmu warto zaznaczyć, że występuje w nim funkcja o nazwie Dijkstra, której argumentami są baza topologii sieci (a dokładniej jej kopia) dla danego obszaru OSPF oraz adres IP sieci, do której poszukiwana jest najkrótsza trasa. Funkcja ta zwraca koszt osiągnięcia danej sieci oraz adres IP routera następnego skoku. Zwracane wartości są zapisywane w tablicy [koszt, trasa], przy czym jej rozmiar jest zmienny. Ponieważ funkcja Dijkstra zawsze wyznacza trasę o najmniejszym koszcie, dlatego tablica [koszt, trasa] zawiera wpisy posortowane pod względem kosztów tras w kolejności rosnącej. Natomiast zmienność jej rozmiaru jest spowodowana faktem, że funkcja Dijkstra wyznacza wszystkie ścieżki o najniższym koszcie do danej sieci liczba tych ścieżek może być inna dla każdej z sieci. Danymi wejściowymi dla algorytmu są: wartość zmiennej α i - liczba przeciążonych interfejsów; wartość parametru X maksymalna liczba tras, z uwzględnieniem których przeprowadzane jest równoważenie obciążenia. Parametr ten jest definiowany przez administratora routera i należy do przedziału od jeden do liczba interfejsów routera minus jeden (pakiety nie powinny być trasowane przez interfejs niż ten, którym przybyły) Dodatkowo w algorytmie tym definiowana jest zmienna it używana do oznaczania liczby tras (prowadzących do rozpatrywanej sieci) dodawanych do tablicy routingu. W chwili rozpoczęcia działania algorytmu jej wartość jest ustalana jako zero

61 Rys. 2.. Schemat blokowy algorytmu służącego do budowy tablicy routingu z wykorzystaniem tras typu NK. Oto werbalny opis algorytmu :. Wyznaczenie wszystkich osiągalnych sieci (ich adresów IP) i umieszczenie ich w tablicy sieci, zdefiniowanej jako jednowymiarowy wektor adresów IP. Operacja ta ma na celu utworzenie dynamicznej listy wszystkich sieci, dla których będą wyznaczane koszty oraz trasy ich osiągnięcia. Termin trasy należy rozumieć jako interfejsy wyjściowe (danego routera) lub adresy IP routerów następnego skoku. 2. Sprawdzenie czy tablica sieci jest pusta. Jeśli tak, to trasy do wszystkich sieci zostały już wyznaczone, wówczas algorytm kończy działanie. 3. Utworzenie kopii bazy topologii sieci. Z bazy tej korzysta algorytm Dijkstry. W celu wyznaczenia trasy o nieoptymalnym koszcie prowadzącej przez inny interfejs wyjściowy należy z bazy topologii usunąć łącze do routera następnego skoku, przez które prowadzi trasa optymalna. Modyfikacja taka naruszyłaby integralność - 6 -

62 wspomnianej bazy. W związku powyższym niezbędnym staje się utworzenie jej kopii (tablica T) dalsze działanie algorytmu odbywa się z wykorzystaniem wspomnianej kopii bazy topologii. 4. Sprawdzenie czy w tablicy routingu istnieje wpis dla pierwszej sieci z tablicy T. Pierwszej - oznacza wpisanej do tablicy na pierwszej dostępnej pozycji. Jeśli wpis taki nie istnieje należy go dodać, po czym algorytm przechodzi do punktu szóstego. Jeśli wpis taki już istnieje należy sprawdzić, jaki jest związany z nim tzw. dystans administracyjny, po czym algorytm przechodzi do punktu piątego. 5. Sprawdzenie czy dystans administracyjny dla wpisu z tablicy routingu jest mniejszy niż przypisany do protokołu OSPF, czyli 0. Jeśli do analizowanej sieci ustawiony jest routing statyczny lub inny protokół jak np. EIGRP o mniejszym dystansie administracyjnym już umieścił wpis odnoszący się analizowanej sieci wówczas OSPF nie dodaje swojego wpisu. Algorytm przechodzi do punktu Usunięcie analizowanej sieci z tablicy T. W przeciwnym przypadku algorytm wylicza koszt osiągnięcia analizowanej sieci. 6. Obliczenie kosztu osiągnięcia analizowanej sieci. Koszt ten jest obliczany przy użyciu funkcji Dijkstra. Funkcja ta jako argumenty pobiera kopię bazy topologii oraz adres IP. Wykorzystując algorytm Dijkstry funkcja zwraca minimalny koszt osiągnięcia analizowanej sieci oraz adres (adresy) routera następnego skoku. Należy zaznaczyć, że jeśli występuje więcej niż jedna trasa o koszcie optymalnym wówczas funkcja zwraca adresy IP routerów następnego skoku znajdujących się na wszystkich wyznaczonych trasach. Wyniki działania funkcji są umieszczane w tablicy [koszt, trasa]. 7. Sprawdzenie czy tablica [koszt, trasa] jest pusta. Jeśli tak, to, w kopii bazy topologii nie istnieje trasa prowadząca do analizowanej sieci. W sytuacji takiej algorytm zeruje licznik i, a następnie przechodzi do punktu drugiego rozpoczynając tym samym wyznaczanie trasy dla kolejnej sieci. W przypadku przeciwnym algorytm przechodzi do punktu ósmego. 8. Usunięcie łącza do routera następnego skoku na wyznaczonej trasie z kopii bazy topologii. Ponieważ algorytm Dijkstry wyznacza tylko najlepszą trasę do danej sieci, dlatego w celu wyznaczenia gorszej (kolejnej pod względem kosztu) należy z bazy tej usunąć łącze do routera następnego skoku znajdujące się na trasie optymalnej i jeszcze raz uruchomić wspomniany algorytm. Należy zauważyć, że trasa alternatywna (druga pod względem kosztu) może prowadzić przez ten sam interfejs wyjściowy. W przypadku przeciążenia interfejsu włączenie równoważenia obciążenia po takiej trasie

63 nie przyniesie pożądanego rezultatu. Z punktu widzenia omawianej metody trasa taka jest pomijana. Usunięcie łącza do routera następnego skoku znajdującego się na trasie optymalnej zapewnia, że trasa alternatywna będzie prowadziła (o ile istnieje) przez inny interfejs wyjściowy. 9. Zwiększenie i o jeden. Licznik i służy do sprawdzania liczby tras prowadzących do analizowanej sieci, które są dodawane do tablicy routingu. Ich liczba nie może być większa niż wartość ustalona przez administratora konkretnego routera. 0. Sprawdzenie wartości licznika i. Jeśli wartość ta wynosi jeden oznacza to, że analizowana trasa jest optymalna, algorytm przechodzi do punktu jedenastego. W przeciwnym przypadku mamy do czynienia z trasą alternatywną, algorytm przechodzi do punktu dwunastego.. Zapamiętanie kosztu trasy optymalnej w zmiennej koszt_opt. Koszt ten jest pobierany z tablicy [koszt, trasa]. Wartość kosztu optymalnego jest używana podczas dalszego działania algorytmu do podjęcia decyzji o dodaniu trasy alternatywnej do tablicy routingu. Przejście do punktu czternastego. 2. Zapamiętanie kosztu trasy alternatywnej w zmiennej koszt. Koszt ten jest pobierany z tablicy [koszt, trasa]. Wartość kosztu trasy jest używana podczas dalszego działania algorytmu do podjęcia decyzjo o dodaniu trasy alternatywnej do tablicy routingu. Następnie algorytm przechodzi do punktu trzynastego. 3. Sprawdzenie czy koszt <= koszt_opt * α i * β i (alternatywny zapis nierówności (2.2)), a więc czy analizowana trasa spełnia warunek konieczny dodania jej do tablicy routingu. Jeśli tak, to algorytm przechodzi do punktu czternastego. W przypadku przeciwnym przeprowadzane jest zerowanie licznika i, wyczyszczenie tablicy [koszt, trasa], oraz usunięcie analizowanej sieci z tablicy sieci, po czym następuje przejście do punktu siedemnastego. Jeśli analizowana trasa nie spełnia warunku koniecznego, to nie ma potrzeby dalszego wyznaczania innych tras alternatywnych, ponieważ każda kolejna będzie posiadała koszt wyższy lub równy i także nie spełni wspomnianego warunku. 4. Uaktualnienie tablicy routingu wpisami z tabeli [koszt, trasa]. W punkcie tym wykonywane jest dodanie analizowanej sieci do tablicy routingu. Dodawane są następujące elementy: adres IP sieci, koszt jej osiągnięcia - metryka, adres IP routera następnego skoku lub nazwa interfejsu wyjściowego, dystans administracyjny. 5. Sprawdzenie czy i=x, a więc czy należy wyszukiwać kolejne trasy, czy też dodana w punkcie czternastym trasa jest ostatnią z puli zdefiniowanej przez administratora

64 routera. Jeśli warunek jest spełniony, algorytm przeprowadza zerowanie licznika i, wyczyszczenie tablicy [koszt, trasa] oraz usunięcie analizowanej sieci z tablicy sieci, po czym następuje przejście do punktu siedemnastego. W przypadku przeciwnym algorytm przechodzi do punktu szesnastego. 6. Usunięcie zawartości tablicy [koszt, trasa] i przejście do punktu szóstego. 7. Usunięcie analizowanej sieci z tablicy sieci. Osiągnięcie tego punktu oznacza, że wszelkie trasy dostępne i spełniające warunek konieczny zostały już dodane do tablicy routingu. Algorytm rozpoczyna kolejny cykl działania, czyli przechodzi do punktu drugiego. Dla dokładniejszego zrozumienia idei powyższego algorytmu w dalszym ciągu zamieszczony został przykładowy schemat blokowy algorytmu budowy tablicy routingu z wykorzystaniem tras typu RK. Porównanie obydwu schematów w prosty sposób umożliwia wychwycenie różnic pomiędzy obecnie stosowanym rozwiązaniem (RK), a nową metodą (NK). W tym miejscu należy zaznaczyć, że schemat przedstawiony na rys. 2.2 przedstawia przykładowy sposób implementacji algorytmu służącego do budowy tablicy routingu w protokole OSPF. Przykładowy, ponieważ specyfikacja tego protokołu nie narzuca żadnego ze sposobów, pozostawiając wybór producentowi sprzętu sieciowego. Ponieważ wszystkie istotne bloki funkcjonalne algorytmu 2 tj. z rys. 2.2 zostały już omówione (podczas opisu działania algorytmu tj. z rys. 2.) więc jego opis werbalny został pominięty

65 Rys Schemat blokowy algorytmu 2 służącego do budowy tablicy routingu z wykorzystaniem tras typu RK Rozdzielenie ruchu sieciowego na różne trasy według przyjętego algorytmu Kolejnym istotnym zagadnieniem jest sposób, w jaki powinno następować rozdzielanie pakietów pomiędzy różne trasy, także o innym koszcie, prowadzące do tej samej sieci docelowej. Przede wszystkim proces decyzyjny rozdziału pakietów powinien w jak najmniejszym stopniu wpływać na wydajność routera oraz jego zapotrzebowanie na zasoby systemowe. Należy w tym miejscu zaznaczyć, że obecna specyfikacja protokołu OSPF dopuszczając równoważenie obciążenia typu RK, nie definiuje sposobu w jaki pakiety powinny być rozdzielane pomiędzy poszczególne interfejsy. Specyfikacja postawia tę kwestię do rozstrzygnięcia producentom sprzętu sieciowego. Na potrzeby niniejszej pracy zostały wybrane dwa sposoby wraz z opisem zalet, a także i wad każdego z nich. Pierwszy sposób polega na zapamiętywaniu źródłowego adresu IP i kierowaniu pakietów cyklicznie na poszczególne trasy. Przykładowo, dla dostępnych trzech tras t, t 2, t 3 prowadzących do danej sieci, pakiety z adresu A są kierowane trasą t, z adresu B trasą t 2, z adresu C trasą t 3 z adresu D trasą t itd. Drugi sposób polega na cyklicznym podziale pakietów pomiędzy

66 wszystkie dostępne trasy prowadzące do danej sieci bez względu na ich adresy źródłowe, porty czy inne parametry. Przed omówieniem głównych cech każdego ze sposobów należy zaznaczyć, że w zmiennych warunkach, jakie panują w sieciach komputerowych nie istnieje idealne rozwiązanie tego problemu. Każde posiada swoje zarówno mocne jak i słabe strony, a wybór najlepszego jest kwestią pewnego kompromisu. Zaletą rozwiązania pierwszego jest to, że unika ono przesyłania pakietów pochodzących z jednego adresu IP różnymi trasami. W konsekwencji następuje redukcja prawdopodobieństwa zmiany kolejności pakietów wysłanych i odebranych (w ramach jednej sesji). Jest to pewien sposób na odciążenie mechanizmów warstwy czwartej modelu OSI służących do rekonstrukcji kolejności pakietów. Wadą natomiast jest konieczność utrzymywania i sprawdzania powiązania danego adresu IP z konkretnym interfejsem. Ponadto w obecnej sytuacji wiele organizacji stosuje rozwiązanie zwane PAT 9 (Port Address Translation), co jest wskazane z kilku powodów chociażby takich jak bezpieczeństwo czy oszczędność adresów IP. Przy stosowaniu PAT pakiety pochodzące od grupy różnych komputerów po przeprowadzeniu translacji posiadają taki sam źródłowy adres IP. W konsekwencji, kiedy taki ruch generuje obciążenie przekraczające wartość lbstart, równoważenie obciążenia zostanie włączone. Natomiast nie będzie ono działać poprawnie obciążając ciągle tylko pierwszy interfejs, ponieważ wszystkie pakiety posiadają taki sam źródłowy adres IP. Przedstawiona sytuacja z oczywistych względów jest jak najbardziej niepożądana. Mając na uwadze wady tego sposobu rozdziału pakietów należy stwierdzić, że nie jest on rekomendowanym rozwiązaniem omawianego problemu. Sposób drugi cechuje się licznymi zaletami, do których zaliczyć można prostotę implementacji oraz szybkość działania, a także brak wad cechujących sposób pierwszy. Oczywiście, nie jest to rozwiązanie idealne, a jego główną wadą jest brak rozróżniania rozmiaru pakietów. Jako rozwiązanie można zaimplementować algorytm odpowiednio dobierający trasę pakietu pod względem jego rozmiaru. Jednak podejście takie najprawdopodobniej wprowadzi znaczne opóźnienia, co jest rozwiązaniem nie do zaakceptowania w świetle przyjętych założeń. Ponieważ różne pakiety mogą posiadać różne rozmiary, (np. małe pakiety aplikacji telnet bądź duże pakiety FTP) możliwym jest wystąpienie sytuacji, w której w krótkim przedziale czasu ilość danych przesyłanych przez jeden interfejs będzie się znacznie różnić od ilości przesyłanych przez inny (inne). Należy zaznaczyć, że przy długoterminowym zastosowaniu drugiego sposobu, 9 Urządzenie przeprowadzające translacje portu zamienia w otrzymanym pakiecie źródłowy adres IP oraz port podstawiając w ich miejsce swój publiczny (zewnętrzny) adres IP oraz losowy port źródłowy o numerze powyżej

67 statystycznie rzecz ujmując, ilość informacji wysyłanych przez poszczególne interfejsy zaangażowane w równoważenie obciążenia powinna rozkładać się niemalże po równo. Wartym uwagi jest fakt, że istnieje jeszcze przynajmniej jeden sposób rozdzielania pakietów (ang. Policy Base Routing) polegający na administracyjnym ustaleniu, że np. pakiety aplikacji telnet zawsze są kierowane na łącze o największym sumacyjnym koszcie, a pakiety HTTP lub FTP na łącza szybsze, (czyli o koszcie mniejszym). Taka sztuczna ingerencja w mechanizmy routingu najprawdopodobniej zmniejszy szybkość przesyłu informacji. W zamian natomiast daje administratorowi pewnego rodzaju narzędzie do wymuszania określonej polityki (policy) przepływu ruchu sieciowego lub nawet ustawiania jego priorytetów (Quality of Service). Przykładowo, jeśli dana organizacja używa telefonii internetowej (VoIP) to nie bez znaczenia (głównie dla jakości usługi) może okazać się wymuszenie przepływu pakietów UDP po łączach o najniższym koszcie. Na koniec warto zaznaczyć, że sposób rozdziału pakietów nie jest zagadnieniem trywialnym, więcej informacji o tym zagadnieniu znajduje się np. w [65] [66] [75] [9] [92]. 2.3 Przykłady działania protokołu OSPF W podrozdziale tym zostały przedstawione dwa przykłady działania algorytmu OSPF w sieci komputerowej o prostej strukturze. Pierwszy z przykładów ukazuje zasadę działania tego protokołu z równoważeniem obciążenia typu RK natomiast, drugi - bez równoważenia obciążenia. Bez względu na to, czy protokół przeprowadza równoważenie obciążenia czy nie, jego zasada działania jest następująca: ustanowienie relacji sąsiedztwa (sieci typu multi-access) oraz wybór routera desygnowanego i jego zastępcy; wymiana informacji o topologii sieci pomiędzy routerami budowa bazy topologii; wyznaczenie drzewa najkrótszych ścieżek przy użyciu algorytmu Dijkstry; budowa tablicy routingu. Następnie w zależności od zaistniałej sytuacji protokół dokonuje wyzwalanej zdarzeniami rekalkulacji rozpoczynając od punktu pierwszego lub drugiego przedstawionego powyżej schematu. Z punktu widzenia tematyki niniejszej pracy najbardziej interesującym etapem jest budowa odpowiedniej tablicy routingu. Dlatego dalsza część tego podrozdziału została poświęcona wspomnianemu etapowi. Rozważając działanie algorytmu OSPF w prostej sieci komputerowej (przedstawionej na rys. 2.5 router R wykonuje następujące operacje: ustala relacje sąsiedztwa z R 2 i R 5 (routery komunikują się z wykorzystaniem technologii Ethernet);

68 wymienia się z routerami R 2 i R 5 swoją bazą topologii (wymiana pakietów LSA jest powtarzana kilkukrotnie aż do momentu osiągnięcia pełnej wiedzy o topologii całej sieci); wykorzystując algorytm Dijkstry, router R wyznacza drzewo najkrótszych ścieżek z sobą jako korzeniem; na podstawie informacji zawartych w drzewie najkrótszych ścieżek router R wyznacza optymalne trasy do wszystkich znanych sieci. Przykładowo, trasa o najniższym koszcie (koszty tras zostały zaznaczone na ilustracji) prowadząca do sieci, w której znajduje się komputer 2 (umownie zaadresowanej /24) prowadzi z R przez routery R 2, R 4, R 5. W tablicy routingu pojawia się wpis zawierający następujące informacje: sieć numer osiągalna jest poprzez interfejs E z kosztem 3, gdzie E jest interfejsem routera R łączącym go z routerem R 2. W sytuacji kiedy router R posiada włączone równoważenie obciążenia typu RK zasada działania protokołu OSPF ulega nieznacznej modyfikacji. Jeśli na podstawie informacji zawartych w drzewie najkrótszych ścieżek router wykryje więcej niż jedną trasę o koszcie optymalnym, wówczas wszystkie trasy optymalne (maksimum sześć - zgodnie ze specyfikacją ujętą w [7]) zostają dołączone do tablicy routingu. Należy zauważyć, że dla tej samej sieci docelowej warunkiem koniecznym dołączenia kolejnej trasy optymalnej do tablicy routingu jest to, że powinna ona prowadzić przez inny interfejs wyjściowy (posiadać inny adres routera następnego skoku). Ponieważ w tablicy tej nie są zapisywane pełne trasy, a tylko interfejsy wyjściowe lub adres routera następnego skoku, dlatego dodanie trasy o koszcie optymalnym i prowadzącej przez ten sam interfejs wyjściowy byłoby dublowaniem już istniejącego wpisu. 2.4 Dodatkowe aspekty proponowanego rozwiązania W sytuacji silnego obciążenia danego interfejsu równoważenie obciążenia typu RK czy też NK z udziałem tras prowadzących przez ten właśnie interfejs nie przynosi oczekiwanych rezultatów. Sytuacja taka została dokładniej opisana w dalszej części niniejszego podrozdziału, oraz dodatkowo przedstawiona na rys

69 Rys Przedstawia przykładową sieć o prostej strukturze złożonej z trzech routerów, przełącznika i czterech komputerów. Na rys. 2.3 koszty połączeń pomiędzy odpowiednimi routerami są przedstawione odpowiednio jako wartości:,,3 i przypisane do poszczególnych łączy. Przyjęto, że koszty połączenia pomiędzy komputerami, a routerami są pomijalnie małe i nie zostały uwzględnione. W sytuacji, kiedy komputer H 2 komunikując się z komputerem H 3 zajmuje całe lub znaczną część pasma łącza R R 2, wówczas komunikacja komputera H z komputerem H 4 odbywająca się na trasie o najniższym koszcie, czyli R R 2 R 3, działa w sposób niewydajny. W sytuacji takiej należałoby w sposób dynamiczny włączyć równoważenie obciążenia na trasie H H 4 z wykorzystaniem połączenia o koszcie 3, czyli R R 3. Mimo, że jest to trasa o wyższym koszcie, to jest ona w dużo mniejszym stopniu obciążona niż trasa o koszcie optymalnym. W konsekwencji skutkuje to zwiększoną przepustowością całej sieci. Problemem do rozwiązania jest to, w jakich warunkach router (routery) powinien dynamicznie włączać oraz wyłączać równoważenie obciążenia tak, aby uzyskać optymalną przepustowość całej sieci. Skuteczność zaprezentowanego w tej pracy rozwiązania jest uzależniona od topologii sieci, to znaczy w sytuacji, kiedy dana sieć posiada fizycznie tylko jedną trasę prowadzącą na zewnątrz (sieć typu stub), wówczas włączenie równoważenia obciążenia typu RK lub NK nie przyniesie korzyści. Sytuacja tak a została przedstawiona na rys

70 Rys Przykład sieci typu stub. Ponieważ z sieci, w której znajduje się komputer H prowadzi na zewnątrz tylko jedna trasa (poprzez łącze R R 2 ), więc w sytuacji silnego obciążenia interfejsu R (od strony R 2 ) włączenie równoważenia obciążenia nie przyniesie poprawy przepustowości całej sieci. Włączanie równoważenia obciążenia w przypadku istnienia tylko jednej trasy do sieci docelowej jest bezzasadne. Natomiast działanie takie jak najbardziej ma sens w odniesieniu do R 2, który posiada dwa interfejsy wyjściowe w kierunku komputera H 2. Dla kierunku przeciwnego (H 2 H ) włączenie zaproponowanej formy równoważenia obciążenia na R 5 jest jak najbardziej uzasadnione natomiast na R 2 już nie, analogicznie na routerach R 3 i R 4. Ponieważ ruch sieciowy prawie zawsze jest dwukierunkowy, więc w omawianym rozwiązaniu sugeruje się włączanie równoważenia obciążenia z udziałem tras o nierównym koszcie w oparciu o obciążenie interfejsu w sytuacjach, kiedy: router posiada przynajmniej dwa interfejsy podłączone bezpośrednio do innych routerów oraz przynajmniej jeden interfejs podłączony do komputera (przełącznika); router posiada przynajmniej trzy interfejsy podłączone do innych routerów (lub routera). Dodatkowo automatyczne włączanie równoważenia obciążenia powinno mieć miejsce tylko w sytuacji, kiedy trasa alternatywna w stosunku do optymalnej wiedzie przez inny interfejs wyjściowy (występuje inny router następnego skoku). Sytuacja taka została przedstawiona na rys Rys Drugi przykład topologii sieci komputerowej

71 Z R do sieci, w której znajduje się H 2 prowadzą trzy następujące trasy:. bezpośrednio do R 5, a następnie do H 2 ; 2. poprzez routery R 2, R 3, R 5, a następnie do H 2 ; 3. poprzez routery R 2, R 4, R 5, a następnie do H 2. Poniższa tabela nr 2. przedstawia koszty tras oraz nazwy routerów następnego skoku, jakie zna R trasując pakiet od H do H 2. Tabela 2.. Koszt tras oraz nazwa routera następnego skoku do sieci z komputerem H 2 z rys Koszt trasy Router następnego skoku 3 R 2 4 R 2 5 R 5 Trasy o sumacyjnym koszcie 3 i 4 tj. odpowiednio poprzez routery R, R 2, R 4, R 5 oraz R, R 2, R 3, R 5, prowadzą przez ten sam router następnego skoku (R 2 ), czyli z punktu widzenia równoważenia obciążenia typu NK w tablicy routingu powinna znaleźć się tylko jedna (z dwóch powyższych). Dokładniej rzecz ujmując jest to trasa o koszcie 3 i adresie routera następnego skoku wskazującym na R 2. Drugą trasą wpisaną do tablicy routingu powinna być trasa o koszcie 5 prowadząca przez R 5 (posiadająca inny router następnego skoku w stosunku do trasy już wpisanej). Należy zaznaczyć, że wdrożenie takiego rozwiązania nie wymaga przeprowadzania przez router niemalże żadnych dodatkowych obliczeń. Po zakończeniu działania algorytmu OSPF wyszukującego najkrótsze ścieżki do poszczególnych sieci, koszty wszystkich tras do tychże sieci są znane. W tablicy routingu umieszczana jest trasa (bądź trasy w przypadku równego kosztu) o najniższym sumacyjnym koszcie, a także adres IP routera następnego skoku. W omawianym rozwiązaniu w tablicy routingu powinny zostać umieszczone także trasy alternatywne prowadzące do danej sieci, lecz tylko takie, które prowadzą przez różne interfejsy, (czyli każda trasa powinna prowadzić przez inny IP adres routera następnego skoku). Liczba tras alternatywnych zależy oczywiście od topologii danej sieci natomiast w tablicy routingu powinno zostać umieszczonych tylko X najlepszych w sensie metryki. Tak jak już zostało wcześniej powiedziane, parametr X jest parametrem konfigurowalnym przez administratora danego routera. Maksymalna wartość X to liczba interfejsów routera minus jeden (pakiet może opuścić router wszystkimi interfejsami za wyjątkiem tego, na którym został odebrany). W sytuacji, kiedy obciążenie interfejsu, przez który prowadzi optymalna trasa do danej sieci przekroczy wartość lbstart wówczas router powinien automatycznie rozpocząć równoważenie obciążenia przesyłając pakiety także po - 7 -

72 najlepszej (w sensie metryki) z dostępnych tras alternatywnych. W sytuacji, kiedy na obydwu trasach (interfejsach, przez które prowadzą dane trasy) obciążenie przekroczy wartość określoną przez lbstart, powinna zostać uaktywniona kolejna trasa, najlepsza z alternatywnych i tak dalej aż do osiągnięcia wartości X. W sytuacji odwrotnej, kiedy obciążenie danego interfejsu zmniejszy się poniżej wartości parametru lbstop wówczas trasa, która została dołączona jako ostatnia, czyli o najgorszej metryce z aktywnej puli tras, powinna zostać wyłączona. Następnie router powinien odczekać określony interwał czasowy w celu ustabilizowania się obciążeń innych interfejsów zanim ponownie zaczną one być sprawdzane. Kolejnym przykładem ukazującym pozytywny wpływ włączenia równoważenia obciążenia typu NK może być proces zachodzący w sieci zbudowanej według schematu przedstawionego na rys Rys Trzeci przykład topologii sieci komputerowej. W przykładzie tym komunikacja odbywa się w sposób następujący: H H 3 oraz H 2 H 4. Koszty tras pomiędzy routerami zostały przedstawione w tabeli numer 2.2. Tabela 2.2. Koszty tras pomiędzy routerami przedstawionymi na rys Połączenie Koszt trasy R R 2 R R 3 R 2 R 4 0 R 2 R 5 00 R 3 R 5 R 4 R 6 0 R 5 R 6 W sytuacji kiedy równoważenie obciążenia typu NK jest wyłączone komunikacja H H 3 odbywa się tylko i wyłącznie na trasie R R 3, natomiast komunikacja H 2 H 4 odpowiednio na trasie R R 3 R 5 R 6. Przy założeniu równego dostępu do medium transmisyjnego

73 wszystkich konkurujących komputerów, przepustowość komunikacji H H 3 będzie wynosiła 0.5 Gb/s, tak samo jak komunikacji H 2 H 4 (obydwie trasy optymalne prowadzą przez ten sam interfejs łączący R z R 3 ). W efekcie całkowita przepustowość sieci (przy tego typu komunikacji) wynosi Gb/s. W przykładzie tym włączenie równoważenia obciążenia typu NK spowoduje wzrost przepustowości sieci w sposób następujący. Komunikacja H H 3 będzie odbywała się po następujących trasach z odpowiednimi szybkościami: R R 3 z 0.5 Gb/s; R R 2 R 5 R 3 z 5 Mb/s; R R 2 R 4 R 6 R 5 R 3 z 50 Mb/s. Sumacyjnie otrzymujemy szybkość komunikacji H H 3 równą 555Mb/s. Natomiast komunikacja H 2 H 4 będzie odbywała się następującymi trasami: R R 3 R 5 R 6 z 0.5 Gb/s; R R 2 R 4 R 6 z 50 Mb/s; R R 2 R 5 R 6 z 5 Mb/s. W rezultacie efektywna szybkość transmisji między komputerami H i H 4 wyniesie 555 Mb/s, a całkowita przepustowość sieci - 0 Mb/s i będzie o 0 Mb/s większa niż przy równoważeniu obciążenia typu RK. Tak jak zostało wcześniej powiedziane, routery budują tablice routingu wykorzystując nierówność (2.2). Parametr beta występujący w tej nierówności pełni we wspomnianym procesie kluczową rolę i sposób jego wyznaczania stanowi jeden z najważniejszych elementów tej pracy. Dokładniejszy opis sposobu generowania omawianego parametru (a dokładniej - całego wektora parametrów) znajdują się w następnym podrozdziale. 2.5 Sposób generowania i dystrybucji parametrów beta Omawiane rozwiązanie jest oparte na scentralizowano-rozproszonym modelu służącym do optymalizacji przepustowości obszaru sieci komputerowej, a dokładniej obszaru OSPF. Centralizacja polega na tym, że każdy obszar posiada stację zarządzającą, która wyznacza wartości parametrów beta dla zarządzanych przez nią routerów, a następnie, co pewien czas dystrybuuje je jednocześnie do nich wszystkich. Warto wspomnieć, że możliwym jest zastosowanie jednej stacji zarządzającej dla wielu obszarów OSPF. Jednak w takim przypadku należy liczyć się z jej ograniczeniami, głównie wydajnościowymi. Rozproszenie natomiast polega na tym, że pomimo istnienia centralnej stacji zarządzającej każdy router ma możliwość własnego podejmowania decyzji. Mianowicie, na podstawie obciążenia poszczególnych interfejsów i porównania tych wartości z parametrami lbstart i lbstop router

74 określa liczbę przeciążonych interfejsów. W następstwie tego zmienia się wartość α i (liczba przeciążonych interfejsów routera R i ), co w konsekwencji prowadzi do modyfikacji nierówności (2.2). Tak jak zostało wcześniej powiedziane, nierówność ta odgrywa kluczową rolę przy podejmowaniu decyzji o tym, które trasy powinny zostać dodane do tablicy routingu. Podsumowując, stacja zarządzająca wyznacza wartości parametrów beta i propaguje je do zarządzanych routerów. Wartości tych parametrów, powinny być takie, aby maksymalizować przepustowość danego obszaru, przy spodziewanej charakterystyce ruchu sieciowego w danym interwale czasu. Jeśli zdarzy się tak, że rzeczywiste obciążenie sieci będzie mniejsze niż spodziewane, to poszczególne routery samodzielnie mogą modyfikować swoje tablice routingu, czyli działać w sposób rozproszony. Przechodząc do szczegółów należy skoncentrować się na trzech kwestiach. Po pierwsze, jak długie powinny być wspomniane interwały, po drugie, w jaki sposób określać spodziewaną charakterystykę ruchu sieciowego w danym interwale i po trzecie, za pomocą, jakiego algorytmu wyznaczać wartości parametrów beta. W niniejszej pracy została podjęta próba odpowiedzi na wszystkie z powyższych pytań. Długość interwałów można wyznaczyć na wiele sposobów. Zanim niektóre z nich zostaną opisane warto odpowiedzieć na pewne pytania pomocnicze. Mianowicie czy interwały te powinny być równe? Jaki może być najdłuższy, a jaki najkrótszy z nich? Odnosząc się do równości, a także długości interwałów, wydaje się, że przede wszystkim powinny być one dopasowane do charakterystyki ruchu sieciowego przepływającego przez dany obszar OSPF. W sytuacji, kiedy np. pracownicy przychodzą do pracy w godzinach należy się spodziewać, że w godzinach charakterystyka ruchu będzie dość zmienna z zachowaniem trendu wzrostowego. Można oczywiście przyjąć, że interwały będą równe, lecz należy mieć na uwadze, że jest to dość szczególny przypadek i najprawdopodobniej najprostszy, choć nie najlepszy. Natomiast przy określaniu maksymalnej długości interwału, należy zwrócić uwagę na dynamikę zmian charakterystyki ruchu sieciowego. W praktyce jednak wydłużenie czasu trwania interwału w większości przypadków prowadzi do spadku dopasowania tras routingu do zmieniającego się zapotrzebowania na przepustowość. Natomiast minimalna długość interwału jest ograniczona wydajnością stacji zarządzającej, po prostu wartości parametrów beta muszą być wyznaczane w czasie rzeczywistym. Mówiąc wprost, stacja ta musi zdążyć wyznaczyć wartości wszystkich współczynników beta dla następnego interwału zanim skończy się obecny. Jednym z najprostszych sposobów wyznaczenia długości interwałów to przypisanie im stałych i równych wartości np. jedna godzina. Innym sposobem może być takie dobranie interwałów żeby przesyłana ilość ruchu sieciowego w każdym z nich była mniej więcej

75 jednakowa. Kolejnym sposobem jest wyznaczenie trendu dla ruchu sieciowego, a następnie ustalenie pewnych poziomów ograniczających od góry i od dołu. W sytuacji kiedy wartość trendu przekracza określoną granicę, następuje zmiana interwału. Można także zastosować rozwiązania z dziedziny sztucznej inteligencji, jak np. sieci Kohenena do podziału wykresu charakterystyki ruchu sieciowego na różniące się przedziały, gdzie każdy przedział odpowiada jednemu interwałowi. Reasumując każdy z wymienionych sposobów posiada swoje wady i zalety, a wybór konkretnego z nich (lub też innego nie opisanego w tej pracy) powinien być podejmowany w sposób racjonalny i efektywny kosztowo. Naturalnym jest, że na początku można przyjąć rozwiązanie najprostsze, czyli stałe równe interwały trwające np. godzinę, a następnie dostrajać istniejące rozwiązanie poprzez modyfikowanie ich długości. Podejście takie w prosty sposób daje punkt wyjściowy do dalszych bardziej zaawansowanych sposobów wyznaczania długości interwałów. Przechodząc do drugiego pytania, czyli w jaki sposób określić spodziewaną charakterystykę ruchu sieciowego warto zauważyć, że bez względu na zastosowaną metodę będzie to wartość przybliżona. Metod oraz rozwiązań służących do wyznaczania takich wartości jest wiele, w pracy tej zostały omówione trzy przykładowe. Pierwsza metoda polega na zastosowaniu określonych narzędzi do zbierania informacji o ilości danych przesyłanych przez routery brzegowe danego obszaru. Przykładowym narzędziem może być MRTG (ang. Multi Router Traffic Grapher) lub Net Flow Collector. Wszystkie wymienione narzędzia służą do zbierania oraz wizualizacji danych na temat charakterystyki analizowanego ruchu sieciowego. Mając informacje o tym, ile danych jest przesyłanych w poszczególnych interwałach, można zastosować prostą analizę statystyczną i określić np. wartość średnią. Wartość ta będzie oczywiście zależna od liczby wykonanych pomiarów, lecz pozwoli ona z zadowalającą dokładnością wyznaczyć omawianą charakterystykę w określonych interwałach. Inną metodą może być zastosowanie bardziej rozbudowanego aparatu matematycznego, w szczególności rozkładu Poissona do wyznaczenia charakterystyki ruchu dla danego obszaru. W miejscu tym warto zaznaczyć, że jest to podejście statystyczne i wartości rzeczywiste mogą znacznie różnić się od tak wyznaczonych. Kolejną metodą może być wykorzystanie sieci neuronowej, a dokładniej perceptronu, która na podstawie zebranych danych (np. za pomocą wspomnianego MRTG) posłuży do wyznaczenia spodziewanych ilości danych przesyłanych przez routery brzegowe. Bez względu na zastosowaną metodę warto wspomnieć, że w przedstawianym rozwiązaniu nie jest wymagane bardzo dokładne określenie wspominanej charakterystyki, a jedynie zgrubne jej oszacowanie. Przechodząc do następnego pytania, a mianowicie za pomocą, jakiego algorytmu wyznaczać wartości parametrów beta, na wstępie warto wspomnieć, że

76 dotyczy ono jednej z najważniejszych części tej pracy. Do wyznaczenia tych parametrów proponuję zastosowanie metody symulowanego wyżarzania, a dokładniej autorskiej modyfikacji tej metody z zastosowaniem reguły akceptacji Metropolisa. Zastosowanie wspomnianej metody do optymalizacji przepustowości sieci komputerowej z wykorzystaniem tras o nierównym koszcie stanowi główne zagadnienie badawcze i zostało dokładnie opisane w dalszym ciągu pracy. Wspomniana wcześniej modyfikacja ma na celu lepsze dostosowanie algorytmu do specyfiki problemu, a dokładny jej opis znajduje się w rozdziale trzecim. Przejdźmy teraz do bardziej szczegółowego omówienia sposobu generacji i dystrybucji parametrów beta. Stacja zarządzająca na podstawie spodziewanej charakterystyki ruchu sieciowego i z zastosowaniem metody symulowanego wyżarzania wyznacza zbiór parametrów beta dla całego obszaru OSPF. Wartości wspomnianych parametrów są tak wyznaczane, żeby maksymalizowały przepustowość całego obszaru dla spodziewanego (w następnym interwale) ruchu sieciowego, przy czym wyznaczone rozwiązanie obowiązuje tylko w danym przedziale czasu. W tym miejscu warto wspomnieć dwie kwestie, po pierwsze liczność zbioru parametrów beta jest równa liczbie zarządzanych routerów tj. dla każdego routera wyznaczana jest jedna wartość tego parametru. Po drugie, stacja zarządzająca wyznacza te parametry dla spodziewanej charakterystyki ruchu w następnym interwale czasu i w momencie rozpoczęcia tego interwału (np. o godzinie 8.00) dystrybuuje do każdego zarządzanego routera odpowiednią dla niego wartość parametru. Z technicznego punktu widzenia sugerowanym sposobem wysyłania informacji o wartościach wyznaczonych parametrów jest zastosowanie rozgłaszania typu multicast. Przechodząc do zagadnień bardziej ogólnych, do rozwiązania analizowanego problemu można zastosować również inne algorytmy, w tym także heurystyczne. W literaturze istnieje wiele przykładów ukazujących zastosowanie chociażby algorytmów genetycznych, a także mrówkowych lub metody zwanej tabu search do szeroko rozumianego zagadnienia optymalizacji sieci teleinformatycznych. Przykładami takich opracowań mogą być [52] [56] [58] [75] [77] [80] [82] [84]. Opisane w nich rozwiązania są czasami podobne, a innym razem zgoła odmienne, co ukazuje jak szeroki jest to obszar wiedzy i jak wiele daje możliwości do badań. W ogólności uważam, że algorytmy heurystyczne naśladujące zachowania natury stanowią bardzo interesującą i przyszłościową dziedzinę wiedzy. Natomiast sieci teleinformatyczne mają coraz większy wpływ na rozwój i kształtowanie społeczeństwa informacyjnego. Połączenie wspomnianych algorytmów z takimi właśnie sieciami może prowadzić w obszar zarówno interesujący jak i praktyczny, nie wspominając już o szerokim spektrum możliwości jakie przed nami otwiera. Przydatność wspomnianych wcześniej

77 algorytmów nie budzi wątpliwości, lecz to właśnie symulowane wyżarzanie jest rozwiązaniem uważanym za umożliwiające wyszukanie globalnego minimum (maksimum) i to w czasie rzeczywistym. Dodatkowo algorytm ten w pewien sposób naśladuje przebieg naturalnego procesu fizycznego, jakim jest stygnięcie, a następnie zestalanie cieczy. Właśnie ta dwie cechy w połączeniu ze sobą zadecydowały o wyborze algorytmu mającego posłużyć do rozwiązania badanego zagadnienia optymalizacji przepustowości sieci komputerowej. Podsumowując warto wspomnieć, że scentralizowany model zarządzania siecią komputerową nie jest rzeczą nową i wykorzystuje się go w produktach takich jak np. Cisco Works czy HP OpenView, przy użyciu, których administrator może w prosty sposób niemalże jednocześnie konfigurować wiele urządzeń sieciowych. Natomiast zaproponowany w tej pracy zautomatyzowany adaptacyjny i scentralizowano-rozproszony model wykorzystujący rozwiązania z obszaru sztucznej inteligencji do optymalizowania przepustowości obszaru OSPF stanowi własną koncepcję autora. 2.6 Spodziewane wyniki Omawiane udoskonalenie ma na celu zwiększenie przepustowości sieci komputerowej dzięki wprowadzeniu wydajniejszego mechanizmu routingu wewnątrz obszarów OSPF, a także całych systemów autonomicznych. W tym miejscu należy zaznaczyć, że zwiększenie przepustowości w jednym obszarze OSPF może przekładać się na zwiększenie wydajności całego systemu autonomicznego. Przez termin przepustowość na potrzeby niniejszej pracy należy rozumieć sumacyjną ilość informacji, jaką w określonym czasie sieć komputerowa jest w stanie przesłać od źródła (źródeł) do miejsca (miejsc) docelowego. Dokładne zdefiniowanie wzoru, według którego będzie wyznaczana przepustowość środowiska sieciowego, a także opis algorytmu służącego do jej wyznaczenia znajduje się w rozdziale trzecim. Opracowana przez mnie metoda równoważenia obciążenia typu NK posiada oczywiście pewne ograniczenia głównie natury fizycznej takie jak np.: topologia konkretnej sieci; liczba interfejsów routerów tworzących sieć; przepustowość i niezawodność łączy; całkowite obciążenie sieci; niezawodność urządzeń sieciowych. Spodziewany wynik zwiększenia przepustowości sieci nie zostanie osiągnięty w sytuacji, kiedy:

78 topologia sieci wymusza przesyłanie całego ruchu sieciowego poprzez jedno silnie obciążone połączenie; wszystkie lub prawie wszystkie routery danej sieci posiadają tylko po dwa aktywne interfejsy; sieć posiada wolne, a co się z tym na ogół wiąże silnie obciążone łącza; urządzenia sieciowe działają zawodnie. Należy zaznaczyć, że w poprawnie zaplanowanej, właściwie administrowanej i odpowiednio do potrzeb zmodernizowanej sieci komputerowej powyższe ograniczenia nie powinny w ogóle wystąpić (pomijając chwilowe, sporadyczne incydenty). Głównym celem, a także spodziewanym wynikiem przedstawionej w pracy metody jest zwiększenie przepustowości sieci komputerowej. Zwiększenie to powinno występować w różnych typach sieci jak i topologiach, (choć nie wszystkich). Ponadto opracowane rozwiązanie nie powinno powodować w sposób znaczący dodatkowego obciążenia routerów, a także silnie wydłużać czasu zbieżności sieci

79 Rozdział 3. Teoretyczne aspekty głównego zagadnienia badawczego Rozdział ten zawiera opis teoretycznych aspektów związanych z optymalizacją ruchu sieciowego. Przedstawiono w nim model środowiska sieciowego, sformułowano zadania optymalizacji z wykorzystaniem metody dokładnej (Simplex), oraz metody SW. Ponadto w rozdziale przedstawiono działanie metody Simplex dla badanego środowiska. Natomiast dokładny opis zasady działania metody SW znajduje się w rozdziale czwartym. Powracając do wspomnianych zadań optymalizacji należy wyjaśnić, że mają one na celu dokonanie maksymalizacji przepustowości sieci komputerowej. W przypadku metody dokładnej wspomniana optymalizacja jest wykonywana poprzez minimalizację wartości współczynników obciążania (wysycenia) poszczególnych łączy sieci. Warto podkreślić, że minimalizacja wartości tych współczynników w sposób jednoznaczny, przekłada się na maksymalizację przepustowości optymalizowanej sieci. Przechodząc do optymalizacji z zastosowaniem metody SW warto nadmienić, że jest ona przeprowadzana przez maksymalizowanie wartości przepustowości poszczególnych routerów wchodzących w skład optymalizowanej sieci. Maksymalizacja przepustowości routerów przekłada się na wzrost przepustowości całej sieci. Warto także dodać, że przepustowość całej sieci jest wyliczana za pomocą algorytmu 3 (tj. algorytmu Ψ(b)). Szczegółowy opis tego autorskiego algorytmu wraz z jego zapisem w pseudokodzie znajduje się w dalszej części rozdziału. Znajdują się tam także informacje o ograniczeniach, zmiennych decyzyjnych oraz zbiorze rozwiązań dopuszczalnych dla wspomnianego algorytmu. Teoretyczna analiza jego działania przeprowadzona na pewnych przykładach została przeniesiona do załącznika IV, zaś tutaj zostały przedstawione jej wyniki wraz z komentarzami. W rozdziale zostały też zamieszczone obliczenia obrazujące działanie algorytmu 3 oraz wyniki jego prostej symulacji z zastosowaniem arkusza kalkulacyjnego. Rozdział kończą rozważania na temat pewnych przykładów, rozważania te maja na celu wykazanie, że kierowanie ruchu sieciowego na zbyt wiele tras jednocześnie może prowadzić do spadku wartości przepustowości środowiska sieciowego. Więcej informacji na temat grafów znajduje się np. w [26][27][29]

80 3.. Graf dwudzielny jako model środowiska sieciowego Dla dalszej analizy badanego zagadnienia, adekwatnym modelem środowiska sieciowego jest graf dwudzielny 20. W grafie takim występują dwa rodzaje wierzchołków. Pierwszym rodzajem są wierzchołki, odpowiadające sieciom S, S 2,..., S y oraz wierzchołki odpowiadające routerom R, R 2,..., R m. W ogólnym przypadku może zachodzić y m, co jest dość oczywiste, bo liczba sieci nie musi być równa liczbie routerów. W przyjętym modelu, sieć komputerowa jest rozumiana jako domena rozgłoszeniowa (broadcastowa). Bezpośrednie połączenie dwóch routerów to sieć typu punkt-z-punktem (ang. Point-to-Point) tzn. do takiej sieci są podłączone dwa komputery na końcach łączy. Krawędziami grafu są natomiast łącza łączące routery z sieciami, gdzie łącze łączące sieć S a z routerem R b oznaczane jest symbolem e i Rys. 3.. Przykład grafu dwudzielnego. W celu jak najdokładniejszego odzwierciedlenia warunków rzeczywistych przyjęto, że dowolna sieć komputerowa może być połączona z jednym lub więcej routerami. Analogicznie, każdy router może posiadać interfejsy wpięte do wielu sieci. Przykład środowiska sieciowego rozumianego jako graf dwudzielny został przedstawiony na rys Graf dwudzielny to graf w którym zbiór wierzchołków może zostać podzielony na dwa rozłączne podzbiory, w taki sposób, że nie istnieje krawędź łącząca dwa wierzchołki z tego samego podzbioru

81 Rys Przykład środowiska sieciowego. 3.2 Sformułowanie zadań optymalizacji W niniejszym podrozdziale zadanie optymalizacji przepustowości sieci komputerowej jest sformułowane jako zadanie programowania liniowego oraz zadanie programowania NCSP. W dalszej części pracy zostanie przeprowadzona próba rozwiązania zadania programowania liniowego z wykorzystaniem metody dokładnej (Simplex), zaś zadania NCSP z zastosowaniem zmodyfikowanej metody SW Sformułowanie zagadnienia optymalizacji jako zadania programowania liniowego Na wstępie warto zauważyć, że zmodyfikowana metoda SW wykorzystująca algorytm obliczania Ψ(b) jest rozwiązaniem alternatywnym do zadania programowania liniowego wykorzystującego metodę Simplex, a porównanie ich wydajności oraz złożoności obliczeniowych (patrz rozdział 6) stanowi bardzo ważną część tej pracy. Ponadto w rozdziale 6 zostały przedstawione wady i zalety zadania programowania liniowego w porównaniu do wzmiankowanej metody SW. Przed formalnym zdefiniowaniem zadania optymalizacji przepustowości sieci jako zadania programowania liniowego warto przedstawić krótki opis do niego wprowadzający. Mianowicie, w przedstawionym modelu środowisko sieciowe rozumiane jest jako graf skierowany, w którym wierzchołki reprezentowane są przez routery, a krawędzie poprzez łącza sieci. Każde łącze posiada indywidualnie przypisany do niego współczynnik obciążenia - 8 -

82 (wysycenia), który przyjmuje wartości nieujemne i niewiększe niż nominalna przepustowość tego łącza. W omawianym zadaniu optymalizacja jest przeprowadzana poprzez minimalizację wartości tych współczynników (zmienne decyzyjne). Wspomniana minimalizacja odbywa się dla każdego łącza i każdej komunikującej się pary routerów. Innymi słowy optymalizacja przepustowości jest wykonywana poprzez minimalizację wysycenia łączy wchodzących w skład danej sieci. Minimalizowana funkcja celu jest sumą wspomnianych współczynników. Warto zwrócić uwagę, że w tak zdefiniowanym zadaniu funkcja celu posiada zgoła odmienną budowę niż w zadaniu NCSP i nie występuje w niej wprost odniesienie do przepustowości sieci. W zadaniu tym maksymalną przepustowość sieci wylicza się w sposób następujący. Przyjmuje się pewną charakterystykę ruchu sieciowego (ilość danych do przesłania), po czym przeprowadza optymalizację. Jeśli optymalizacja zakończy się powodzeniem zwiększa się ilość danych do przesłania i tak aż do momentu, w którym nie ma już możliwości przeprowadzenia poprawnej optymalizacji. Następnie przepustowość sieci wylicza się jako sumę danych, dla których optymalizacja jest jeszcze możliwa do przeprowadzenia. Widać, że funkcja celu ukazuje wydajność komunikacji, lecz metoda jej wyliczani nie jest wydajna i choć jest ona skorelowana z czasem przepływu danych, to w obydwu przypadkach (zadanie PL i NCSP) występuje ich ujemna korelacja. Przechodząc do formalnego zdefiniowania zadania optymalizacji przepustowości sieci jako zadania programowania liniowego przyjmijmy następujące oznaczenia: m liczba routerów wierzchołków grafu. R router {R i : i m } należący do zbioru routerów {R,...,R m }. n liczba łączy krawędzi grafu. E zbiór łączy, E={e,...,e n }oraz {e j : j n }. π j nominalna przepustowość łącza e j, j n. r liczba par komunikujących się routerów. ( k k R R2, ) k-ta para komunikujących się routerów, indeks górny oznacza numer pary, indeks k dolny oznacza kolejność w parze, tzn. R jest routerem początkowych k-tej pary, a k R 2 jej routerem końcowym, k r

83 x współczynnik obciążenia łącza e j przez parę routerów ( k j k k R R2, ), ilość danych k przesłanych między routerami tej pary, x j < 0, π j >, k r, j n. Zmienne decyzyjne w sformułowanym poniżej zadaniu optymalizacji. k x - wektor współczynników obciążenia łączy dla pary numer k, d k całkowita ilość danych do przesłania między routerami pary ( D macierz ruchu sieciowego o rozmiarach x ] k k k T = [ x,..., xn, k r k k R R2, ), k r.. r * m i elementachδ ki zdefiniowanych następująco: δ ki = d k jeśli = (R i jest węzłem początkowym pary k), δ ki = d k k Ri R2 jeśli k Ri R = (v i jest węzłem końcowym pary k), w pozostałych przypadkach δ = 0, k r, i m. ki δ k k T wektor złożony z elementów k-tego wiersza macierzy D, δ = [ δ,..., δ ], k r. k km B zmodyfikowana macierz incydencji grafu, o rozmiarach m * n i elementach b ij zdefiniowanych następująco: b = jeśli łącze e j prowadzi do routera v i, b = jeśli ij łącze e j prowadzi od routera v i, w pozostałych przypadkach b = 0, i m, j n. Kierunkowość łączy wynika z wcześniejszych założeń. f funkcja celu zadania optymalizacji określona na zmiennych decyzyjnych współczynnikach k x j, j n, k r, następującym wzorem ij ij f = r n k = j= k x j (3.) Zadanie optymalizacji polega na znalezieniu minimum funkcji f określonej wzorem (3.) przy czym zmienne decyzyjne spełniają następujące ograniczenia k k r, j n 0 (3.2) r k x j k= j n π (3.3) δ k k k r Bx = (3.4) Fizyczna interpretacja powyższych ograniczeń jest następująca. Dla (3.2) - współczynnik obciążenia łącza odnosi się do ilości danych przez to łącze przesyłanych, dlatego jego wartość nie może być ujemna. Dla (3.3) - wartość sumy współczynników obciążenia danego łącza nie może być większa niż nominalna przepustowość tego łącza. Dla (3.4) - ograniczenie to wynika bezpośrtednio z prawa zachowania przepływu, czyli z routera początkowego musi dokladnie wypływać założona ilość danych, ta sama ilość danych musi wpływać do routera j x j

84 końcowego, a we wszystkich pozostałych routerach różnica ilości danych jakie wpływają do routera i wypływają z niego busi być dokładnie równa zero. W związku z powyższym ograniczenie to jest w formie równania nie zaś nierówności. Przedstawione powyżej zadanie optymalizacji pod względem swojej złożoności długi czas zaliczane było do klasy tzw. zadań NP-zupełnych (ang. NP-complete), jednakże prace Chaczijana [3] oraz później Karmarkara [5], wykazały przynależność tego problemu do klasy P (względem parametrów takich jak liczba łączy i liczba routerów). Chaczijan skonstruował algorytm rozwiązujący tego typu zadanie programowania liniowego, którego złożoność jest wielomianowa, jednak stopień tego wielomianu jest wysoki. Okazuje się, że w praktyce algorytm ten zazwyczaj wykonywany jest dłużej dla tych samych danych niż metoda Simplex, która w ekstremalnych przypadkach ma złożoność wykładniczą, lecz przeciętnie jej złożoność jest dużo niższa [7]. Dokładna analiza złożoności obliczeniowej metody Simplex zastosowanej dla zadania programowania liniowego znajduje się w dalszej części tego rozdziału. Warto także dodać, że istnieje wiele innych algorytmów dokładnych służących do rozwiązywania zadań programowania liniowego np. [6] Sformułowanie zagadnienia optymalizacji jako zadania programowania NCSP W przedstawionym zadaniu, optymalizacja jest przeprowadzana poprzez maksymalizację wartości funkcjonału wyrażonego wzorem (3.3). Funkcjonał ten dokładnie został zdefiniowany w dalszej części rozdziału. Przechodząc do formalnego zdefiniowania modelu optymalizacji przepustowości sieci jako zadania programowania NCSP przyjmijmy dodatkowe oznaczenia: b wektor współczynników beta, b [ β β ] T =,..., m. β i wartość współczynnika beta dla routera R i, i m. Współczynniki te są zmiennymi decyzyjnymi w przedstawionym w dalszym ciągu zadaniu optymalizacji. β max i maksymalna wartość współczynnika β i wyliczana ze wzoru (2.3), i m. l k (b) liczba tras komunikacji dla pary routerów ( k k R R2 t k q (b) trasa nr q dla pary routerów dla pary routerów (, ), k r. k k R R2, ), q l ( b) k, k r. Ψ ( k, q, b) efektywna przepustowość trasy t k q (q) dla danego wektora b, q l ( q), k r. k

85 nom Ψ ( k, q, b) nominalna przepustowość trasy t k q (b). Ψ (b) całkowita przepustowość środowiska sieciowego wyliczana ze wzoru (3.3) (według opisanego w dalszym ciągu autorskiego algorytmu 3. Jest to funkcja celu zadania optymalizacji, określona na zmiennych decyzyjnych współczynnikach β i, następującym wzorem. i m, r l ( b) k Ψ( b) = Ψ( k, q, b) (3.5) k= q= Zadanie optymalizacji polega na znalezieniu maksimum funkcji Ψ (b) określonej wzorem (3.5), przy czym zmienne decyzyjne spełniają następujące ograniczenia: nom k r q l ( b) 0 Ψ( k, q, b) Ψ ( k, q, b) (3.6) k β (3.7) max i m 0 β i i l ( b) k k r Ψ( k, q, b) d (3.8) W ten sposób zdefiniowane zadanie optymalizacji będzie w dalszej części pracy rozwiązywane z zastosowaniem zmodyfikowanego algorytmu SW. Natomiast fizyczna interpretacja powyższych ograniczeń jest następująca. Dla (3.6) ilośc danych przesyłanych z wykorzystaniem danej trasy nie może być ujemna ani większa niż nominalna jej przepustowość. Dla (3.7) wartość współczynnika beta nie może być ujemna ponieważ koszt trasy jest wartością dodatnią. Przy ujemnej wartości współczynnika beta nierówność (2.2) nigdy nie byłaby spełniona, w konsekwencji tablica routingu zawierałaby jedynie trasy optymalne. Natomiast stosowanie większych wartości współczynnika beta niż wartość maksymalna jest bezzasadne, ponieważ niczego w zadaniu nie zmienia, a jedynie zwiększa przestrzeń poszukiwań rozwiązań optymalnych. Dla (3.8) wyznaczona sumacyjna przepustowość wszystkich tras jakimi przepływają dane wymieniane przez każdą parę routerów, nie może być mniejsza niż założona ilości ruchu sieciowego jaki para ta powinna wymienić. q= k 3.3 Zasada działania metody dokładnej - Simplex Metoda Simplex służy do rozwiązywania zadań programowania liniowego. Zadanie tego typu w postaci ogólnej formułuje się następująco. Zminimalizować poniższą funkcję celu:

86 z = n j= c j x j (3.9) przy następujących ograniczeniach liniowych: n i m a x b (3.0) j= ij j j n x 0 (3.) gdzie: z wartość funkcji celu. c j współczynniki funkcji celu, znane stałe, gdzie j n. x j argumenty funkcji celu zmienne decyzyjne zadania optymalizacji, gdzie j n. n liczba zmiennych decyzyjnych, liczba kolumn w macierzy współczynników nierówności ograniczeń. m liczba nierówności ograniczeń, liczba wierszy w macierzy współczynników nierówności ograniczeń. a ij współczynniki nierówności ograniczeń znane stałe, gdzie i m, j n, elementy macierzy A. A - macierz współczynników a ij o rozmiarach mxn, gdzie i odpowiada numerowi wiersza macierzy, a j numerowi kolumny, oraz i m, j n. a j wektor współczynników a ij złożony z elementów j-tej kolumny macierzy A. b i wartości ograniczeń znane stałe, gdzie i m. j i Opis działania metody Simplex rozpocznę od przedstawienia opisu jej poszczególnych etapów (kroków). Według [06] są one następujące: krok 0 - sprowadzenie zadania do postaci kanonicznej bazowej; krok - wyznaczenie pierwszego rozwiązania bazowego dopuszczalnego; krok 2 - sprawdzenie optymalności rozwiązania bazowego; krok 3 zastosowanie kryterium wejścia i wyjścia w celu poprawienia aktualnego rozwiązania bazowego; krok 4 utworzenie nowej bazy powstaje nowe poprawione rozwiązanie bazowe (nowa postać tablicy simpleksowej); powrót do kroku 2. Warto zaznaczyć, że zadanie optymalizacji przedstawione powyżej, jest zdefiniowane w sposób ogólny, natomiast zadanie zdefiniowane w podrozdziale 3.2. jest szczególnym

87 przypadkiem zadania ogólnego. Specyfika zadania z podrozdziału 3.2. wynika z konieczności dostosowania go do zagadnienia optymalizacji przepustowości sieci komputerowych. Przed przystąpieniem do dokładnego omówienia poszczególnych kroków metody Simplex przyjmijmy następujące oznaczenia i terminu: s i zmienna swobodna dodawana do nierówności ograniczeń, gdzie i m. b xi - zmienne bazowe, zmienne decyzyjne aktualnie znajdujące się w bazie tablicy Simplex, gdzie i m. Rozwiązanie bazowe układu równań (3.0) jest to wektor utworzony ze zmiennych bazowych. Tablica simpleksowa jest to dwuwymiarowa tablica zawierająca następujące elementy: wartości zmiennych c c 2... c n s s 2... s m bazowych x x 2... x n wartości ograniczeń b x i a ij b i Rys Przykład budowy tablicy Simplex. Więcej szczegółowych informacji na temat budowy tablicy Simplex oraz sposobów wyliczania jej współczynników znajduje się w [06] [07]. Krok 0 polega na przekształceniu ograniczeń z postaci nierówności do postaci równań, poprzez odjęcie lub dodanie po jednej zmiennej swobodnej s i dla każdego ograniczenia. Możliwe są przy tym dwa przypadki: Przypadek pierwszy ograniczenia w postaci większościowej.. a i x + ai2 x ain xn bi (3.2) Przypadek drugi ograniczenia w postaci mniejszościowej. a i x + ai2 x ain xn bi (3.3) W pierwszym przypadku wyrażenie (3.3) jest przekształcane do następującej postaci: a w drugim do następującej: gdzie a = i x + ai2 x ain xn si bi (3.4) a = i x + ai2 x ain xn + si bi (3.5)

88 i m b i 0 s 0 (3.6) i j n x 0 (3.7) j Krok - polega na wyznaczeniu pierwszego rozwiązania bazowego w taki sposób, że wartości wszystkich zmiennych bazowych są przyjmowane za zero, czyli b x i =[x,...x m ] T =[0,...,0] T - zmiennych bazowych jest m (tyle co równań ograniczeń), w odróżnieniu od liczby zmiennych decyzyjnych, których jest n. W konsekwencji funkcja celu (3.9) także osiąga wartość zero. Krok 2 - sprawdzenie optymalności rozwiązania bazowego, polega na wyznaczeniu współczynników optymalności dla każdej zmiennej decyzyjnej, zgodnie z poniższym wzorem. gdzie χ j są współczynnikami optymalności. j n χ = c x a (3.8) Współczynniki optymalności można rozumieć jako miary jednostkowego przyrostu wartości funkcji celu dla odpowiadających im zmiennych. j j b T i j Rozwiązanie jest optymalne (z chwilą jego znalezienia następuje zatrzymanie algorytmu), gdy wskaźniki optymalności dla wszystkich zmiennych niebazowych są: nieujemne ( j n χ 0 ) dla zadania minimalizacji j niedodatnie ( j n χ 0 ) dla zadania maksymalizacji. j Jeśli choć jeden ze wskaźników optymalności jest: ujemny dla zadania minimalizacji; dodatni dla zadania maksymalizacji; wówczas istnieje możliwość poprawy rozwiązania poprzez zmianę bazy przejście do następnego kroku. Krok 3 - zastosowanie kryterium wejścia i wyjścia w celu poprawienia aktualnego rozwiązania bazowego. Kryterium wejścia: w przypadku zadania maksymalizacji do bazy jest wstawiana zmienna decyzyjna x k, gdzie indeksowi k odpowiada największa wartość wskaźnika optymalności, czyli

89 x k : max( χ : j n) (3.9) j w przypadku zadania minimalizacji do bazy jest wstawiana ta zmienna decyzyjna x k, gdzie indeksowi k odpowiada najmniejsza wartość wskaźnika optymalności, czyli Kryterium wyjścia z bazy usuwamy zmienną x k : min( χ : j n) (3.20) j b x l, gdzie indeksowi l odpowiada najmniejsza wartość ilorazu b i /a ik, gdzie k jest wyznaczone z (3.9) albo (3.20), a i m, czyli b l b b2 b = m min(,,..., ) (3.2) a a a a lk k Krok 4 - utworzenie nowego poprawionego rozwiązania bazowego w następujący sposób. Elementy wiersza l (zmiennej wychodzącej z bazy) są tworzone zgodnie z poniższym wzorem. gdzie: * a ij - nowe elementy macierzy A. a * a lj = a lj lk 2k mk (3.22) Natomiast elementy pozostałych wierszy w sposób przedstawiony następującym wzorem a = a a * a (3.23) * ij W sposób analogiczny należy postąpić wyznaczając nowe wartości elementów b i. Dalej następuje powrót do kroku drugiego. ij * lj ik Dokładny opis złożoności obliczeniowej przedstawionego zadania znajdują się w rozdziale 6. Fragmenty tego podrozdziału zostały zaczerpnięte z [43][46][04][05]. 3.4 Budowa algorytmu wyznaczania przepustowości środowiska sieciowego Podrozdział zawiera opis autorskiego algorytmu służącego do wyznaczania przepustowości sieci komputerowych oraz czasów transmisji danych, a także krótkie wzmianki na temat alternatywnych metod wyznaczania przepustowości. Wspomniany algorytm jest zbudowany na bazie funkcjonału (3.3) i należy go traktować jako narzędzie służące do mierzenia wydajności (efektywności) działania głównego algorytmu (tj. zmodyfikowanego algorytmu SW). Natomiast sam funkcjonał (3.3) umożliwia wyznaczenie przepustowości środowiska sieciowego w sposób analityczny

90 Dla potrzeb algorytmu służącego do wyznaczania przepustowości wykorzystano oznaczenia wcześniej użyte w tym rozdziale oraz dodatkowo przyjęto następujące: λ j (b) liczba tras, które prowadzą przez łącze e j (dla wszystkich komunikujących się par routerów ( k k R R2, )). Q j (b) efektywna przepustowość łącza e j (wyliczana z uwzględnieniem liczby tras ^ wykorzystujących to łącze i mierzona w Mb/s) i wyznaczana ze wzoru (3.27). Ψ( k, q, b) - efektywna przepustowość najwolniejszego łącza wchodzącego w skład trasy t k q (b) (mierzona w MB/s) i wyznaczana ze wzoru (3.28). Ψ * ( b) efektywna przepustowość komunikacji dla k-tej pary routerów (mierzona w Mb/s) i k wyznaczana ze wzoru (3.29), T k (b) - trasy t k q (b) dla każdej komunikującej się pary routerów k. trasy(k,b) - funkcja która z uwzględnieniem wartości parametrów beta i zastosowaniem algorytmu, wyznacza wszystkie acykliczne i rozłączne u źródła trasy pomiędzy routerami ( k k R R2, ). Przez sformułowanie rozłączne u źródła należy rozumieć takie trasy, z których każda prowadzi przez inny interfejs wyjściowy danego routera. Należy zwrócić uwagę, że w warunkach rzeczywistych funkcjonalność tę powinien realizować zmodyfikowany (o równoważenie obciążenia typu NK) protokół OSPF pracujący na poszczególnych routerach. Warto nadmienić, że można dodatkowo wprowadzić współczynnik wykorzystania (obciążenia) łącza przez daną parę sieci, co także wpłynie na jej efektywną przepustowość. Wprowadzenie takiego współczynnika daje pewną elastyczność przy dzieleniu dostępnego pasma na poszczególne trasy. Natomiast w niniejszym opracowaniu, (dla uproszczenia) zakłada się jednakowe wykorzystanie dostępnego pasma (nominalnej przepustowości łącza) przez wszystkie trasy z niego korzystające. W tym miejscu warto wspomnieć, że tego typu podejście do wyznaczania efektywnej przepustowości łącza posiada pewną wadę. Jeśli przez dane łącze prowadzą np. dwie trasy, a przepustowość jednej z tras jest mniejsza niż połowa przepustowości tego łącza (np. na skutek występowania innego łącza na tej trasie o mniejszej efektywnej przepustowości), to dla drugiej trasy pozostanie więcej niż połowa

91 przepustowości tego łącza. Dokładniejsze omówienie przedstawionej powyżej wady wraz z propozycją jej eliminacji znajduje się w podrozdziale 6.8. Do obliczenia powyższych przepustowości został użyty następujący algorytm 3. Algorytm 3. Wyznaczyć wszystkie dopuszczalne trasy routingu dla każdej z komunikujących się pary routerów, tj. k r, T k (b) = trasy(k,b) (3.24) W następstwie powyższych operacji otrzymujemy przykładową drugą trasę dla pierwszej pary routerów np. k k t (b)=(e 4, e 2,...,e 8 ) gdzie tq ( b) T ( b) (3.25) 2 2. Obliczenie dla każdego łącza, w ilu trasach ono występuje. r l ( b) k k j n λ j ( b) = γ j ( tq ( b)) (3.26) gdzie γ ( t j k q ( b)) = 0 e e j j k = q= t, a t jest pewną trasą. t 3. Obliczenie dla każdego łącza sieci jego efektywnej przepustowości. j n π j Q j ( b) = (3.27) λ ( b) 4. Wyznaczenie dla każdej z trasy z T k (b) jej przepustowości efektywnej. k k r, q l ( b) Ψ ( k, q, b) = min( Q ( b) : e t ( b)) (3.28) k ^ j j j q 5. Wyznaczenie przepustowości komunikacji pomiędzy k-tą parą routerów. l ( b) ^ k * k r Ψk ( b ) = Ψ( k, q, b) (3.29) 6. Wyznaczenie przepustowości środowiska sieciowego jako sumę przepustowości wszystkich komunikujących się z sobą par sieci. r k= q= * Ψ( b) = Ψ ( b) (3.30) W efekcie wzór na przepustowość środowiska sieciowego (Ψ(b)) przyjmuje poniższą postać. r l ( b) ^ k k= q= k Ψ( b) = Ψ( k, q, b) (3.3) - 9 -

92 Kiedy sieci dowolnej z komunikujących się par zakończą (lub rozpoczną) wymianę informacji, wtedy warunki panujące w analizowanym środowisku ulegną zmianie i każde z łączy może zostać odciążone lub dociążone. W takiej sytuacji należy ponownie uruchomić cały proces wyznaczania przepustowości, lecz już z nowymi warunkami początkowymi. Przykłady sposobów określania nowych warunków początkowych tj. spodziewanej charakterystyki ruchu sieciowego zostały przedstawione w podrozdziale 2.5. Powyższy werbalny opis algorytmu 3 przekłada się na zapis w formie następującego pseudokodu: procedura WyznaczΨ(b)) Ψ(b) 0; forall k r do forall q l ( b) do T k (b) trasy(k,b); end forall end forall forall j n do λ j (b) 0; end forall forall k r do forall q l ( b) do if e j t k q (b) then λ j (b) λ j (b) + ; end if end forall end forall forall j n do π j Q j ( b) ; λ ( b) end forall forall k r do j forall q l ( b) do k k k

93 ^ Ψ ( k, q, b) ; end forall forall k r do forall q l ( b) do k ^ if e j t k q (b) and Ψ ( k, q, b) > Q j (b) then ^ Ψ ( k, q, b) Q j (b) ; end if end forall end forall Ψ( b ) 0 ; forall k r do Ψ * k 0 ; forall q l ( b) do k Ψ * k ^ ( k * Ψ k, q, b) + Ψ ; end forall Ψ(b) Ψ * k + Ψ (b) ; end forall return Ψ (b) ; end WyznaczΨ(b). Dodatkowo można wyliczyć czasy komunikacji dla poszczególnych par routerów k. ilosc _ wymienianych _ danych t k = * Ψk (3.32) Funkcjonał określony wzorem (3.3) jest funkcją celu zagadnienia optymalizacji i w dalszej części pracy rozważane będzie zagadnienie maksymalizacji tego funkcjonału za pomocą metody symulowanego wyżarzania. Będzie także rozważane alternatywne zagadnienie maksymalizowania przepustowości z użyciem metody dokładnej tj. Simplex (patrz. podrozdział 3.2). Dodatkowo warto wspomnieć, że funkcjonał (3.3) jest tzw. funkcją niewypukłą, kawałkami liniową (ang. non-convex piecewise linear function), czyli składającą się w obrębie swojej dziedziny z połączonych pod różnym kątem prostych (funkcji afinicznych - y=ax+b). W

94 aspekcie teorii optymalizacji maksymalizacja funkcji celu (3.3) jest zadaniem tzw. NCSP (ang. Non-Convex Separable Programing) [25], jest tak ponieważ funkcjonał (3.3) stanowi sumę optymalizowanych przepustowości poszczególnych tras dla wszystkich komunikujących się par routerów. Innymi słowy omawiany funkcjonał daje się przedstawić jako suma funkcji celu poszczególnych zmiennych decyzyjnych. Zadanie optymalizacji funkcjonału (3.3) zostało przedstawione w podrozdziale Warto także zaznaczyć, że istnieją inne powszechnie znane algorytmy wyznaczania w grafach maksymalnej przepustowości (przepływu) pomiędzy źródłem s, a miejscem przeznaczenia d. Przykładami mogą być algorytmy Forda-Fulkersona, Edmonsa-Karpa lub Dinica [94][95][96][97]. Niestety wszystkie te algorytmy posiadają pewną wadę, działają przy założeniu, że ruch odbywa się tylko między dwoma węzłami sieci, co w rzeczywistych sieciach komputerowych występuje niezwykle rzadko. Wadę tę można w pewien sposób obejść, a mianowicie, jeśli występuje wiele węzłów źródłowych (nadawców) i wiele docelowych (odbiorców) wówczas należy wprowadzić dwa dodatkowe węzły - wirtualne źródło i wirtualne ujście. Dodatkowo zakłada się, że krawędzie łączące wirtualne źródło z węzłami początkowymi, oraz węzły końcowe z wirtualnym ujściem mają nieograniczoną przepustowość. Przy zastosowaniu takiego rozwiązania nasuwa się pytanie: jak postąpić, kiedy dany węzeł jest jednocześnie nadawcą i odbiorcą? Naturalnym rozwiązaniem jest podzielenie go na dwa węzły jeden odpowiadający za nadawanie, drugi za odbieranie danych, analogicznie należałby podzielić krawędzie wychodzące z tego węzła. Przy podziale krawędzi należy wprowadzić pewne ograniczenie, mianowicie sumacyjny przepływ wirtualnych krawędzi odpowiadających za odbieranie i nadawanie danych nie może być większy niż nominalna przepustowość rzeczywistego łącza, które to krawędzie symbolizują, zgodnie z (5.). Innym problemem jest zapewnienie przepływu przez konkretnego nadawcę określonej ilości danych, czyli zapewnienie prawidłowego rozkładu ilości informacji wypływających z wirtualnego źródła do poszczególnych rzeczywistych węzłów. Rozwiązaniem tego problemu może być np. zastosowanie dodatkowych ograniczeń na ilości przepływów przez poszczególne łącza wirtualne. Wprowadzanie tego typu modyfikacji jest dość dużą ingerencją w strukturę algorytmu, a także wymaga dokonania pewnych podziałów i dodania ograniczeń, co w sposób naturalny wpływa na złożoność obliczeniową algorytmu. Zaproponowany algorytm wyznaczania Ψ(b) tego typu wad nie posiada, choć zapewne nie jest on pozbawiony innych niedoskonałości. W tym miejscu warto odnieść się do algorytmu powiększania przepływów (ang. augmenting path algorithm), a mianowicie algorytm ten umożliwia dokładne wyliczenie przepustowości dla wielu komunikujących się par węzłów i

95 to nawet w sytuacji, kiedy węzeł jest zarówno nadawcą jak i odbiorcą. Jego złożoność jest rzędu O(mn) [24], gdzie m reprezentuję liczbę routerów (wierzchołków grafu), zaś n to liczba łączy sieci (krawędzi grafu). W tym przypadku algorytm 3 (wyznaczania Ψ(b)) jest szybszy, a otrzymywane za jego pomocą wyniki są zadowalające. Ze względu na znaczną liczbę iteracji oraz szeroką dostępność literatury, przykład działania algorytmu powiększania przepływów został w tej pracy pominięty. Kontynuując, do wyznaczania maksymalnej przepustowości (przepływu) w grafie, przy założeniu jednoczesnej komunikacji między wieloma parami sieci, można także podejść w inny sposób. Mianowicie, za pomocą jednego ze wzmiankowanych algorytmów należy wyznaczyć maksymalną przepustowość komunikacji dla pierwszej pary sieci, a następnie, uwzględniając już obciążenia łączy powtórzyć obliczenia dla wszystkich pozostałych par. Uwzględnienie obciążonych łączy polegałoby na tym, że przed każdym kolejnym uruchomieniem algorytmu, modyfikowane byłyby dostępne ich przepustowości. Podejście takie posiada jednak zasadniczą wadę polegającą na tym, że pary sieci, dla których obliczenia zostały wcześniej wykonywane stają się faworyzowane posiadają większy dostęp do przepustowości w stosunku do pozostałych. Faworyzacja taka nie odzwierciedla rzeczywistego działania protokołu IP, więc omawiana metoda posiada wątpliwe znaczenie praktyczne. Jeszcze innym, zgoła odmiennym podejściem do omawianego zagadnienia może być wyliczanie i minimalizowanie opóźnień występujących przy transmisji danych. Istnieje wiele metod wyliczania tych opóźnień. Omówione zostaną następujące metody: jednopakietowe; dwupakietowe Jacobsona. Metoda jednopakietowa polega na wyznaczeniu opóźnienia dla jednego pakietu przesyłanego w jedną stronę (od nadawcy do odbiorcy). Opóźnienie to wyznacza się ze wzoru ϕ R η s ( + ϕ + ) j τ π = R j = j (3.33) gdzie ϕr - opóźnienie w jedną stronę do routera (hosta) R, mierzone w sekundach; s - długość pakietu testowego, mierzona w bitach; π j - przepustowość łącza e j ; ϕ j opóźnienie generowane przez łącze e j ; τ R - czas przetwarzania pakietu przez router R;

96 η- liczba łączy wchodzących w skład analizowanej trasy. Metoda dwupakietowa polega na wysyłaniu dwóch takiej samej długości pakietów, jeden za drugim. Pakiety te docierają do łącza o małej przepustowości (najmniejszej z występujących na analizowanej trasie) w małym odstępie czasu. Natomiast opuszczają to łącze (każde inne także) w odstępie czasu odwrotnie proporcjonalnym do przepustowości. Za pomocą tej metody można oszacować przepustowość najwolniejszego łącza na analizowanej trasie. Rys przedstawia ideę działania metody dwupakietowej. Rys Idea działania dwupakietowej metody wyznaczania opóźnień w sieciach komputerowych ([23]). Z kolei metoda Jacobsona polega na wysyłaniu ciągu pakietów UDP z parametrem TTL nagłówka IP równym k. W sytuacji, kiedy taki pakiet dotrze do k-tego z kolei węzła, węzeł ten odrzuci go i wyśle powiadamiającą o tym fakcie informacje zwrotną za pomocą protokołu ICMP. Mierząc czas od momentu wysłania pakietu do odebrania informacji zwrotnej otrzymujemy ciąg wartości rtt k (ang. round trip time) dla k-tej pary komunikujących się routerów ( ^ k k R R2, ). Przy oznaczeniach Ψ ( k, q, b) efektywna przepustowość trasy pomiędzy routerami ( k k R R2 ICMP k k t k - czas przesyłania komunikatu ICMP pomiędzy routerami ( R R2 Otrzymujemy oraz rtt k, )., ). ICMP = ϕ + τ + t, k =,2,... (3.34) R R k

97 s rttk rttk, k =,2... (3.35) ^ Ψ( k, q, b) Na podstawie różnic wyliczonych z wzoru (3.35) można wyznaczyć przepustowość najwolniejszego łącza na analizowanej trasie. Obszerne omówienie trzech przedstawionych powyżej metod wyznaczania opóźnień znajduje się w [23] Ograniczenia algorytmu wyznaczania przepustowości środowiska sieciowego Mając na uwadze poniższe definicje. Definicja 3. Przekrój minimalny min C k pomiędzy dwoma wierzchołkami grafu (tworzącymi parę k) jest to przekrój pomiędzy tymi wierzchołkami charakteryzujący się minimalną wartością przepływu spośród wszystkich przekrojów istniejących pomiędzy tymi wierzchołkami grafu. Definicja 3.2 Maksymalna przepustowość środowiska sieciowego (oznaczona przez max Ψ ) wynosi tyle, co suma efektywnych przepustowości minimalnych przekrojów dla wszystkich istniejących w tym środowisku par routerów (uwzględniając zmniejszenie efektywnej przepustowości łączy współdzielonych, tj. wchodzących w skład więcej niż jednego minimalnego przekroju). Ψ max = r k= Ψ max k (3.36) W analizowanym zagadnieniu głównym ograniczeniem jest maksymalna przepustowość sieci. Przepustowość ta zależy od kilku czynników, takich jak np. nominalna przepustowość poszczególnych łączy, liczba łączy, topologia sieci itp. Nie bez znaczenia jest fakt, że wyznaczenie maksymalnej przepustowości nie jest zadaniem trywialnym. Przyjęta w tej pracy metoda obliczania ograniczeń polega na wyznaczeniu w grafie przekrojów C kh, gdzie k oznacza numer pary komunikujących się routerów, a h numer przekroju dla tej pary. Następnie uwzględniając przepustowości łączy (krawędzi przekroju) oraz, co jest bardzo istotne - ich współdzielenie z innymi parami routerów, należy obliczyć efektywne przepływności dla każdego z wyznaczonych przekrojów. Dla dalszych potrzeb przyjęto oznaczenie Ф kh jako efektywna przepustowość (przepływność) przekroju C kh. Przyjmując, że pomiędzy k-tą parą routerów występuje Z h przekrojów, wówczas h jest liczbą całkowitą z przedziału,...,z >. Ograniczeniem przepustowości dla k-tej pary routerów jest minimalna < k

98 wartość przepływności spośród wyznaczonych przekrojów. Innymi słowy, dla dowolnej k-tej pary routerów, maksymalna wartość przepustowości (przepływu) między nimi (oznaczona jako max Ψ k ) jest równa przepustowości minimalnego przekroju pomiędzy tymi routerami (wierzchołkami grafu), o czym mówi twierdzenie Forda-Fulkersona [24]. max Ψ = min( Φ : h Z ) (3.37) k Postępując w sposób analogiczny, należy wyznaczyć ograniczenia przepustowości dla wszystkich komunikujących się par sieci. kh h Zmienne decyzyjne w metodzie SW wykorzystującej algorytm 3 W przyjętym rozwiązaniu zbiór zmiennych decyzyjnych tworzą współczynniki beta, po jednym dla każdego zarządzanego routera. Współczynnik beta (dla danego routera) został zdefiniowany i szczegółowo opisany w rozdziale 2. Warto jednak zwrócić uwagę na to, że w zależności od wartości tych współczynników zmienia się liczba tras pomiędzy komunikującymi się parami sieci, co w konsekwencji prowadzi do zmiany wartości Ψ(b) - wyznaczanej przez algorytm 3. Dodatkowo można wspomnieć o innym współczynniku zawiązanym z określonym routerem, a mianowicie α i (liczba przeciążonych interfejsów). Został on zdefiniowany w tym samym podrozdziale, co beta, a wartości jakie przyjmuje to liczby całkowite należące do przedziału <0, liczba interfejsów routera >. Chociaż α i nie jest zmienną decyzyjną, a tylko jednym z warunków początkowych, to posiada on (podobnie jak beta) wpływ na to, czy analizowana trasa alternatywna zostanie dodana do tablicy routingu. Dla wykazania zasadności stosowania równoważenia obciążenia typu NK przyjęto, że routery pracują z maksymalnym obciążeniem interfejsów. Zasadność przyjętego założenia została wykazana w rozdziale Zbiór rozwiązań dopuszczalnych dla metody SW wykorzystującej algorytmu wyznaczania przepustowości środowiska sieciowego W odniesieniu do metody SW zastosowanej do optymalizacji przepustowości, zbiór rozwiązań dopuszczalnych jest to zestaw parametrów beta (po jednym dla każdego routera wchodzącego w skład optymalizowanego obszaru OSPF) z których każdy przyjmuje wartości rzeczywiste z przedziału (0; β max ] (patrz rozdział 2). Warto podkreślić, że wartość współczynników β oraz β max dla każdego routera może być inna, a zerowa wartość β skutkuje wyłączeniem równoważenia obciążenia typu NK na routerze, do którego współczynnik ten

99 jest przypisany. Warto dodać, że przy optymalizacji przepustowości środowiska sieciowego nie na wszystkich routerach może być wymagane włączenie równoważenia typu NK. Dodatkowo dla konkretnych przypadków (topologii sieciowych i przepustowości łączy) wartości parametrów beta posiadają pewną swobodę. Znaczy to, że pewne małe zmiany wartości tego parametru (jak małe, to zależy od konkretnych przypadków) nie prowadzą do zmiany zawartości tablicy routingu danego routera Analiza funkcji celu dla metody SW Na samym początku, należy zaznaczyć, że przeprowadzona analiza ma na celu wykazanie słuszności głównej tezy pracy w pewnych sytuacjach. Warto także wspomnieć, że nie we wszystkich sytuacjach wykazanie słuszności przyjętej tezy jest możliwe (na przykład wtedy, gdy istnieją tylko pojedyncze trasy do osiągalnych sieci). Istnieją sytuacje, w których włączenie równoważenia obciążenia typu RK nie prowadzi do wzrostu przepustowości środowiska sieciowego. W tych przypadkach włączenie równoważenia obciążenia typu NK także nie będzie skutkowało wzrostem przepustowości. Głównym celem analizy jest wykazanie w sposób teoretyczny, że przy pewnych (całkowicie realnych i praktycznych) założeniach odpowiednie zastosowanie równoważenia obciążenia typu NK prowadzi do wzrostu przepustowości. Natomiast sama analiza jest bardzo ogólna i nie odnosi się konkretnie do żadnej topologii sieciowej, ani tym bardziej wartości liczbowych, co też było jednym z jej celów. Po przeprowadzeniu analizy, której obliczenia ze względu na swoją objętość zostały przeniesione do załącznika IV, pojawia się wniosek, że w pewnych sytuacjach dodanie dodatkowej trasy o nieoptymalnym koszcie prowadzi do zwiększenia przepustowości środowiska sieciowego. Dodanie takiej trasy jest możliwe w wyniku np. włączenia równoważenia obciążenia typu NK. Inną kwestią jest to, jakie trasy powinny być dodawane, a jakie nie (czyli jaką wartość powinien przyjmować współczynnik beta). Żeby poprawnie odpowiedzieć na to pytanie konieczna jest pełna wiedza o topologii sieciowej oraz kosztach wszystkich łączy w niej występujących i warunkach panujących w sieci. Posiadając takie informacje, odpowiedź na powyższe pytanie można uzyskać rozwiązując zadanie optymalizacji sformułowane w punkcie 3.2. lub stosując do tego celu zmodyfikowaną metodę SW. Innym zasadnym pytaniem jest to, kiedy włączać równoważenie obciążenia typu NK, a kiedy nie ma takiej potrzeby. Zanim zostanie podjęta próba odpowiedzi na to pytanie, warto zauważyć, że jest ono pytaniem trudnym i poza przypadkami oczywistymi (takimi jak np

100 połączenie do sieci typu stub) odpowiedź jest niejednoznaczna i zależna od takich czynników jak topologia i charakterystyka ruchu sieciowego. Już na tym etapie można stwierdzić, że takie informacje posiada jedynie stacja zarządzająca i to właśnie ona powinna tego typu decyzje podejmować. Konkludując, włączenie równoważenia obciążenia typu NK z dużym prawdopodobieństwem jest zasadne w sytuacji, kiedy w optymalizowanym obszarze istnieje przynajmniej jedna para sieci i przynajmniej jedna trasa pomiędzy nimi taka, że żadne z łączy na tej trasie nie jest obciążone w stu procentach. Dodatkowego wyjaśnienia może wymagać sformułowanie z dużym prawdopodobieństwem. Sformułowanie to zostało użyte celowo, a to dlatego, że charakterystyka ruchu sieciowego prawie w każdym przypadku jest zmienna. Nietrudno wyobrazić sobie sytuację, w której zanim omawiane równoważenie obciążenia zostanie włączone, (co z przyczyn oczywistych zajmuje pewien czas) to sytuacja panująca w środowisku sieciowym ulegnie zmianie i np. jedno z złączy wchodzących w skład trasy nieoptymalnej zostanie maksymalnie obciążone. W takiej sytuacji włączenie omawianego równoważenia obciążenia nie wniesie poprawy przepustowości, lecz co niemniej istotne, nie spowoduje także jej spadku. 3.5 Obliczenia i symulacja dla środowiska z rys. 3.2 Obliczenia wartości przepustowości środowiska sieciowego zostały przeprowadzone w trzech etapach. W każdym z etapów została obliczona zarówno wartość Ψ(b) jak i poszczególne czasy przesyłania danych, przyjętych w warunkach początkowych. Przy wykonywaniu obliczeń przyjęto równomierny dostęp do współdzielonych łączy. W etapie pierwszym obliczenia zostały wykonane przy założeniu, że na wszystkich routerach jest wyłączone równoważenie obciążenia. W etapie drugim routery miały włączone równoważenie obciążenia typu RK, zaś w trzecim NK. Dodatkowo w etapie trzecim obliczenia zostały wykonane dla wartości współczynników beta dobranych empirycznie w taki sposób żeby wykazać wzrost przepustowości środowiska sieciowego - po zastosowaniu równoważenia obciążenia typu NK. Inną metodą doboru wartości zmiennych jest rozwiązane wcześniej omawianego zadania optymalizacji z wykorzystaniem metody dokładnej lub SW. Ponadto, w etapie tym zostanie podjęta próba wyznaczenia (za pomocą symulacji) takich wartości zmiennych decyzyjnych, dla których przepustowość badanego środowiska sieciowego jest największa, a czasy przesyłania danych najkrótsze

101 3.5. Opis przyjętych warunków początkowych W celu wykazania słuszności przyjętej tezy, dla środowiska sieciowego przedstawionego na rys. 3.2 przyjęto pewne warunki początkowe. Zachowując oznaczenia z podrozdziału 3.2., przyjęte warunki początkowe można przedstawić za pomocą macierzy D 0 D= Ponieważ ruch wewnątrzsieciowy (w obrębie domeny rozgłoszeniowej) nie jest trasowany, przez routery i nie stanowi przedmiotu tej rozprawy, więc na przekątnej macierzy warunków początkowych występują wartości zerowe. Przyjmijmy następujące oznaczenia łączy i wartości ich nominalnych przepustowości (w Mb/s): e dla S R, π = 00 e 2 dla S R 2, π 2 = 50 e 3 dla S 2 R 2, π = 3 50 e 4 dla S 2 R 3, π 4 = 00 e 5 dla S 3 R, π = 5 00 e 6 dla S 3 R 2, π = 6 00 e 7 dla S 3 R 3, π = 7 00 e 8 dla S 4 R, π = 8 00 e 9 dla S 4 R 3, π = 9 50 Dodatkowo przyjęto, że wszystkie routery posiadają taką samą moc obliczeniową oraz zasoby systemowe, natomiast interfejsy używane do połączenia sieci z routerami działają w sposób niezawodny przez cały czas trwania wymiany informacji pomiędzy sieciami. W celu lepszej organizacji obliczeń, na początku wyznaczone zostaną wszystkie (acykliczne) trasy wraz z ich kosztami dla komunikujących się ze sobą sieci. Przypiszmy następujące numery dla poszczególnych komunikujących się par sieci. Dla S z S2, k=; dla S z S3, k=2; dla S2 z S4, k=

102 Oraz oznaczenie c jako koszt trasy t k q (b). k q Wówczas z zachowaniem wcześniej przyjętych oznaczeń, trasy oraz ich koszty przedstawiają się następująco: Oto trasy oraz ich koszty dla pary sieć sieć 2, tj. k=: t ( ) =(e 2, e 3 ) ; b c = 4 t ( ) =(e, e 5, e 7, e 4 ) ; 2 b t ( ) =(e 2, e 6, e 7, e 4 ) ; 3 b t ( ) =(e, e 5, e 6, e 3 ) ; 4 b t ( ) =(e, e 8, e 9, e 4 ) ; 5 b c 2 = 4 c 3 = 5 c 4 = 5 c 5 = 5 t ( ) =(e 2, e 6, e 5, e 8, e 9, e 4 ) ; 6 b t ( ) =(e, e 8, e 9, e 7, e 6, e 3 ) ; 7 b c 6 = 8 c 7 = 8 Oto trasy oraz ich koszty dla pary sieć sieć 3, tj. k=2: t 2 ( ) =(e, e 5 ) ; b t 2 ( ) =(e 2, e 6 ) ; 2 b 2 c = 2 2 c 2 = 3 t 2 ( ) =(e, e 8, e 9, e 7 ) ; 3 b t 2 ( ) =(e 2, e 3, e 4, e 7 ) ; 4 b 2 c 3 = 5 2 c 4 = 6 t 2 ( ) =(e, e 8, e 9, e 4, e 3, e 6 ) ; 5 b t 2 ( ) =(e 2, e 3, e 4, e 9, e 8, e 5 ) ; 6 b 2 c 5 = 8 2 c 6 = 9 Oto trasy oraz ich koszty dla pary sieć 2 sieć 4, tj. i=3: t 3 ( ) =(e 4, e 9 ) ; b 3 c = 3 t 3 ( ) =(e 4, e 7, e 5, e 8 ) ; 2 b t 3 ( ) =(e 3, e 6, e 5, e 8 ) ; 3 b t 3 ( ) =(e 3, e 6, e 7, e 9 ) ; 4 b t 3 ( ) =(e 3, e 2, e, e 8 ) ; 5 b 3 c 2 = 4 3 c 3 = 5 3 c 4 = 6 3 c 5 = 6 t 3 ( ) =(e 4, e 7, e 6, e 2, e, e 8 ) ; 6 b t 3 ( ) =(e 3, e 2, e, e 5, e 7, e 9 ) ; 7 b 3 c 6 = 7 3 c 7 =

103 3.5.2 Obliczenia Na wstępie należy wyjaśnić, że różne komunikujące się pary sieci wymieniają różne ilości danych z wykorzystaniem różnych tras, dlatego niektóre z nich kończą komunikację wcześniej niż pozostałe. Zaprzestanie komunikacji przez jedną parę sieci może mieć wpływ na szybkość komunikacji między pozostałymi sieciami. W związku z powyższym należy obliczenia podzielić na fazy w taki sposób, że w danej fazie liczba komunikujących się ze sobą par nie ulega zmianie. Dodatkowo warto wspomnieć, że dla potrzeb poniższych obliczeń wszystkie trasy zostały wyznaczone ręcznie, natomiast w warunkach rzeczywistych działanie takie przeprowadza protokół OSPF. Przechodząc do obliczeń otrzymujemy. Dla beta równego 0 (brak równoważenia obciążenia) Komunikacja pomiędzy sieciami odbywa się na następujących trasach: t (0) =(e 2, e 3 ); t 2 (0) =(e, e 5 ); t 3 (0) =(e 4, e 9 ) Nominalne przepustowości wykorzystywanych łączy wynoszą w Mb/s: π = 00 ; π 2 = 50 ; π = 3 50 ; π 00 4 = ; π = 5 00 ; π = 50 9 Liczby tras wykorzystujące poszczególne łącza wynoszą. λ (0) = ; λ 2 (0) = ; λ (0 3 ) = ; λ 4 (0) = ; λ (0 5 ) = ; λ (0 9 ) = Efektywne przepustowości poszczególnych łączy wynoszą (w Mb/s): Q (0) =00; Q 2 (0) =50; Q (0 3 ) =50; Q 4 (0) =00; Q (0 5 ) =00; Q (0 9 ) =50 Efektywne przepustowości najwolniejszych łączy dla poszczególnych tras wynoszą. ^ Ψ (,,0) = min(50 ; 50) = 50 ^ Ψ (2,,0) = min(00 ; 00) = 00 ^ Ψ (3,,0) = min(00 ; 50) = 50 Przepustowości komunikacji dla poszczególnych par sieci wynoszą

104 * Ψ (0) = Ψ(, q,0) = 50 [Mb/s] ; q= ^ * Ψ2 (0) = Ψ(2, q,0) = 00 [Mb/s] ; q= ^ * Ψ3 (0) = Ψ(3, q,0) = 50 [Mb/s] ; q= ^ Przepustowość środowiska sieciowego dla zadanych warunków początkowych wynosi. Ψ(0) = 3 k= q= ^ Ψ( k, q,0) = = 200 [Mb/s] Czasy komunikacji dla poszczególnych par sieci wynoszą. t = 200/50 = 4 [s] ; t 2 = 300/00 = 3 [s] ; t 3 = 400/50 = 8 [s] Po zsumowaniu dostajemy łączny czas komunikacji równy 4+3+8=5[s] Ponieważ wszystkie trasy są rozłączne (brak łączy wykorzystywanych przez więcej niż jedną trasę), więc zakończenie komunikacji pomiędzy dowolną parą sieci nie wpływa na szybkość komunikacji innej pary. Dla beta równego 0 (równoważenie obciążenia typu RK) Postępując analogicznie jak w przypadku poprzednim otrzymano następujące wyniki. Ψ(0) = 3 k= q= ^ Ψ( k, q,0) = = 200 [Mb/s] t = 200/00 = 2 [s] po tym czasie komunikacja sieci pierwszej z drugą ustaje. W czasie dwóch sekund sieć pierwsza wymieni z siecią trzecią 2[s] * 50 [Mb/s] = 00 [Mb] danych, do przesłania pozostanie jeszcze = 200 [Mb], analogicznie sieć druga wymieni z siecią czwartą 2 * 50 = 00 [Mb] danych, do przesłania pozostanie jeszcze = 300 [Mb]. Ponieważ wymiana danych pomiędzy sieciami pierwszą i drugą zakończyła się, dlatego warunki panujące w środowisku sieciowym uległy zmianie (część łączy została odciążona). Powyższe obliczenia należy powtórzyć dla nowych warunków początkowych tj. sieć pierwsza wymienia z siecią trzecią 200 [Mb], zaś sieć druga wymienia z siecią czwartą 300 [Mb]. W konsekwencji otrzymano: Ψ(0) = 2 k= q= ^ Ψ( k, q,0) = = 50 [Mb/s]

105 t 2 = 200/00 = 2 [s] ; t 3 = 300/50 = 6 [s] Ponieważ wszystkie trasy są rozłączne (brak łączy wykorzystywanych przez więcej niż jedną trasę), więc zakończenie komunikacji pomiędzy dowolną parą sieci nie wpływa na szybkość komunikacji innej pary. Całkowite czasy wymiany informacji wynoszą: t = 2 [s] ; t 2 = 2+2 = 4 [s] ; t 3 = 2+6 = 8 [s] Po zsumowaniu dostajemy łączny czas komunikacji równy 2+4+8=4 [s] Dla beta równego 2 (równoważenie obciążenia typu NK) występują następujące trasy: t (2) =(e 2, e 3 ) ; t (2) =(e, e 5, e 7, e 4 ) ponieważ z sieci numer prowadzą dwa interfejsy 2 wyjściowe, dlatego dodanie większej liczby tras (w przypadku przeciążenia obydwu interfejsów) nie jest rozwiązaniem zalecanym. t (2) =(e, e 5 ) ; t 2 (2) =(e 2, e 6 ) ograniczenie liczby tras wynika z liczby interfejsów (jak 2 wyżej). 2 t (2) =(e 4, e 9 ) ; t 3 (2) =(e 3, e 6, e 5, e 8 ) - pomimo, że istnieje trasa o niższym koszcie tj. 3 3 t (2) =(e 4, e 7, e 5, e 8 ), c 2 = 4, nie jest ona zalecana ponieważ prowadzi przez ten sam interfejs wyjściowy co trasa optymalna o koszcie c = 3 czyli t 3 (2) =(e 4, e 9 ). 3 Podczas powyższych obliczeń przyjęto, że liczba przeciążonych interfejsów wynosi dwa routery pracują w warunkach maksymalnego obciążenia. W pierwszej fazie komunikacji otrzymano: Ψ(2) = 3 2 k = q= ^ Ψ( k, q,2) = = 9.66 t = 200/58.33 = 3.43 [s] W czasie 3.43 sekundy, pierwszej fazy komunikacji, sieć pierwsza wymieni z siecią trzecią 3.43 [s] * [Mb/s] = 200 [Mb] danych, do przesłania pozostanie jeszcze = 00 [Mb], analogicznie sieć druga wymieni z siecią czwartą 3.43 * 75 = [Mb] danych, do przesłania pozostanie jeszcze = [Mb]. Ponieważ wymiana danych pomiędzy sieciami pierwszą i drugą zakończyła się, więc warunki panujące w środowisku sieciowym uległy zmianie (część łączy została odciążona). Powyższe obliczenia należy powtórzyć dla nowych warunków początkowych tj. sieć pierwsza wymienia z siecią trzecią 00 [Mb], zaś sieć druga wymienia z siecią czwartą [Mb]. W drugim etapie otrzymano:

106 Ψ(2) = 2 2 k= q= ^ Ψ( k, q,2) = = 200 t 2 = 00/00 = [s] W czasie jednej sekundy sieć druga wymieni z siecią czwartą [s] * 00 [Mb/s] = 00 [Mb] danych, do przesłania pozostanie jeszcze = [Mb]. Powyższe obliczenia należy powtórzyć dla nowych warunków początkowych tj. sieć druga wymienia z siecią czwartą [Mb]. W trzeciej fazie otrzymano: Ψ(2) = 2 k = q= ^ Ψ( k, q,2) = 50 [Mb/s] t 3 = 42.75/00 = [s] Całkowite czasy wymiany informacji wynoszą: t = 3.43 [s] ; t 2 = = 4.43 [s] ; t 3 = = [s] Po zsumowaniu dostajemy łączny czas komunikacji równy =2.775 [s] Dodatkowo w celu wykazania słuszności stwierdzenia, że dodanie kolejnej trasy prowadzącej przez ten sam interfejs wyjściowy, co już istniejąca trasa, nie prowadzi do skrócenia czasów komunikujących się sieci, zostały wykonane następujące obliczenia. Dla beta równego 3 otrzymano: Ψ(3) = 3 3 k = q= ^ Ψ( k, q,3) = = 47.5 (faza pierwsza) t = 4.36 [s] ; t 2 = 4.36[s] ; t 3 = 4.36[s] Ψ(3) = 2 3 k= q= t 2 = 0.8 [s] ; t 3 = 0.8[s] Ψ(3) = t 2 =0.2[s] 3 k = q= ^ Ψ( k, q,3) = = (faza druga) ^ Ψ( k, q,3) = 50 (faza trzecia) Całkowite czasy wymiany informacji wynoszą: t = 4.36 [s] ; t 2 = = 5.36 [s] ; t 3 = = 5.6 [s] Po zsumowaniu dostajemy łączny czas komunikacji równy =4.88 [s]

107 3.5.3 Symulacja Dodatkowo względem przeprowadzonych badań i z wykorzystaniem arkusza kalkulacyjnego została przeprowadzona symulacja działania algorytmu 3 tj. służącego do wyznaczania Ψ(b). Do symulacji użyto funkcji solvera wbudowanego w arkusz kalkulacyjny MS Excel 2000 i polegała ona na zaimplementowaniu we wspomnianym arkuszu wzmiankowanego algorytmu i wyznaczeniu wartości Ψ(b) dla topologii przedstawionej na rys Wyniki symulacji przeprowadzonej przy pomocy arkusza kalkulacyjnego wykazały, że minimalny łączny czas komunikacji wynosi 3.0 sekundy (t = 3.43 [s] ; t 2 = 4.43 [s] ; t 3 = 5.5 [s]). Poniżej znajdują się otrzymane wyniki. Dla pary i=: t ( ) =(e 2, e 3 ) i b Dla pary i=2: t ( ) =(e, e 5 ) i 2 b Dla pary i=3: c = 4 ; t ( ) =(e, e 5, e 7, e 4 ) i 2 2 b c = 2 ; t 2 ( ) =(e 2, e 6 ) ; 2 b 2 c 2 = 3 c 2 = 4 t 3 ( ) =(e 4, e 9 ) ; c = 3 ; t 3 ( ) =(e 4, e 7, e 5, e 8 ) ; b 3 2 b 3 c 2 = 4 Parametry beta wynosiły odpowiednio: b=[; 2;.4] T. Przepustowość środowiska sieciowego wyniosła Ψ(b) = Mb/s. Należy zaznaczyć, że możliwym jest uzyskanie Ψ(b) = 200 Mb/s, lecz wówczas łączny sumacyjny czas komunikacji jest dłuższy niż 3.0 sekundy i wynosi 4 [s]. Natomiast ze względu na to, że ruch charakteryzował się tym, że łącza były maksymalne obciążenie, liczba przeciążonych interfejsów przyjmowała wartość maksymalną tj. 2. Należy zauważyć, że wynik uzyskany podczas symulacji jest gorszy od wyniku uzyskanego w etapie trzecim, gdzie sumacyjny czas komunikacji wyniósł 2.7 [s]. Zjawisko to można wytłumaczyć tym, że podczas symulacji, przy komunikacji sieci drugiej z czwartą jako trasa alternatywna została wybrana trasa o koszcie 4 prowadząca przez ten sam interfejs wyjściowy, co trasa optymalna. W odróżnieniu od symulacji podczas obliczeń przeprowadzonych w etapie trzecim tego rozdziału w analogicznej sytuacji wybrana została trasa o koszcie 5, lecz prowadząca przez inny interfejs wyjściowy niż trasa o koszcie optymalnym. Na podstawie powyższej obserwacji można wywnioskować, że przy zbliżonych kosztach (4 i 5) krótszy czas komunikacji uzyskuje się przesyłając dane przez trasę o wyższym koszcie, lecz prowadzącą przez nie przeciążony interfejs. W celu jak najpełniejszego przedstawienia badanego zagadnienia, warto odnieść się do warunków ograniczających. Warunkiem ograniczającym szybkość wymiany informacji

108 pomiędzy dwoma sieciami jest wartość przepływu minimalnego przekroju (3.37) pomiędzy tymi sieciami. W przedstawionym przykładzie środowiska sieciowego ograniczenia przepustowości dla przekrojów minimalnych (definicja 3.) wynoszą odpowiednio: max Dla pary sieci k= Ψ 50 Mb/s. = max Dla pary sieci k=2 Ψ 50 Mb/s 2 = max Dla pary sieci k=3 Ψ 50 Mb/s 3 = Przy założeniu jednoczesnej komunikacji oraz po uwzględnieniu nakładających się tras (trasy do dwóch sieci prowadzą przez ten sam przekrój) wartości przekrojów minimalnych wynoszą: max Dla pary sieci k=, Ψ 75 Mb/s. = max Dla pary sieci k=2, Ψ 75 Mb/s 2 = max Dla pary sieci k=3, Ψ 75 Mb/s 3 = Podsumowując, maksymalne przepustowości dla poszczególnych par sieci wynoszą: max max Ψ 75 Mb/s, Ψ 75 Mb/s, Ψ 75 Mb/s. W rezultacie maksymalna max = 2 = 3 = przepustowość środowiska sieciowego (definicja 3.2.) wynosi Ψ max = = 225 Mb/s. W miejscu tym należy dodać, że możliwym jest np. zwiększenie wartości maksymalnej przepustowości jednej pary sieci kosztem innej pary (sytuacja taka ma miejsce np. przy asymetrycznym ruchu sieciowym), lecz w efekcie maksymalna wartość przepustowości środowiska sieciowego tak nie ulegnie zmianie (zmienią się wartości składników sumy nie zaś jej wartość końcowa). 3.6 Inne przykłady Głównym celem tego podrozdziału jest wykazanie (na wybranych przykładach), że włączenie równoważenia obciążenia typu NK może prowadzić do wzrostu przepustowości oraz tego, że wykorzystanie jednocześnie zbyt wielu tras może prowadzić do efektu odwrotnego, a mianowicie spadku przepustowości. Wspomniane przepustowości zostały wyliczone dla kilku przykładowych i często stosowanych topologii sieciowych. W tym miejscu należy stwierdzić, że nie istnieje coś takiego jak ogólna topologia sieciowa, dlatego wszelkie działania są wykonywane na pewnych konkretnych i praktycznych przykładach. Przepustowości zostały policzone dla z góry zadanych warunków początkowych i przy założeniu równomiernego dostępu do współdzielonych łączy. Dla każdej z topologii zostaną wykonane trzy obliczenia: bez równoważenie obciążenia;

109 z równoważeniem obciążenia typu RK; z równoważeniem obciążenia typu NK. W celu skonkretyzowania rozważanych przypadków, sieci komputerowe zostały przedstawione jako pojedyncze hosty wymieniające dane między sobą. Warto także dodać, że pierwszy z rozważanych przypadków uwzględnia jedną parę komunikujących się węzłów pozostałe zaś większą liczbę par. Pierwsza z rozważanych topologii jest przedstawiona na rys Przyjęto, że H wymienia z H2 200 Mb danych. Postępując w sposób analogiczny jak dla środowiska z rys. 3.2, otrzymano następujące wartości przepustowości oraz czasów trwania transmisji danych. Rys Czwarty przykład topologii sieci komputerowej. Przepustowości łączy wynosza odpowiednio (Mb/s): π = 00 ; π 2 = 00 ; π = 3 50 ; π 00 4 = ; π = 5 50 ; π = Bez włączonego równoważenia obciążenia. Ψ(0) = k= q= ^ Ψ( k, q,0) = 50 ; sumacyjny czas komunikacji wynosi 4 [s]. Z włączonym równoważeniem obciążenia typu RK Ψ(0) = 2 k= q= ^ Ψ( k, q,0) = 50 ; sumacyjny czas komunikacji wynosi.333 [s]. Z włączonym równoważeniem obciążenia typu NK (na trzech trasach). Ψ(2) = 3 k = q= ^ Ψ( k, q,2) = ; sumacyjny czas komunikacji wynosi [s]. Z włączonym równoważeniem obciążenia typu NK (na czterech trasach)

110 Ψ(3) = 4 k = q= ^ Ψ( k, q,3) = 200 ; sumacyjny czas komunikacji wynosi [s]. W miejscu tym warto zauważyć, że trasa t (3) =(e, e 6, e 4 ) prowadzi przez ten sam interfejs 4 wyjściowy routera R, co trasa t (3) =(e, e 3 ). W sytuacji przeciążenia tego interfejsu, jej 3 dodawanie jest zbędne i nie przyniesie oczekiwanych rezultatów. Obliczenia przeprowadzone dla równoważenia obciążenia typu NK (na czterech trasach), zostały wykonane w celu wykazania braku skrócenia czasu przesyłania danych w sytuacji, kiedy dodawana jest trasa prowadząca przez przeciążony interfejs. Dla włączonego równoważenia obciążenia typu NK (na pięciu trasach) otrzymujemy: Ψ(4) = 4 k = q= ^ Ψ( k, q,4) = 75 ; sumacyjny czas komunikacji wynosi.43 [s]. Przejdźmy teraz do drugiej topologii przedstawionej na Rys Rys Piąty przykład topologii sieci komputerowej. Przepustowości łączy wynosza odpowiednio (Mb/s): π = 00 ; π 2 = 00 ; π = 3 50 ; π 00 4 = ; π =

111 Zakładamy, że H komunikuje się z H2 - para k=, a H3 z H4 - para k=2. Obydwie pary wymieniają między sobą po 200 Mb danych. Prowadząc rozważania analogiczne do poprzednich otrzymujemy następujące wyniki: Bez włączonego równoważenia obciążenia. Ψ(0) = 2 k= q= ^ Ψ( k, q,0) = = 50 ; sumacyjny czas komunikacji wynosi = 6 [s]. Z włączonym równoważeniem obciążenia typu RK Ψ(0) = Ψ(0) = 2 2 k= q= k= q= ^ Ψ( k, q,0) = = 50 (dla etapu pierwszego); ^ Ψ( k, q,0) = 00 (dla etapu drugiego) sumacyjny czas komunikacji wynosi 2+3=5 [s] Z włączonym równoważeniem obciążenia typu NK (po dwie trasy dla każdej z par hostów) Ψ(2) = 2 2 k= q= ^ Ψ( k, q,2) = = 200 ; sumacyjny czas komunikacji wynosi 2+2=4 [s]. Z włączonym równoważeniem obciążenia typu NK (po trzy trasy dla każdej z par hostów) Jest to rozwiązanie nie zalecane. Trasa 2 t 3 =(e, e 5, e 4 ) prowadzi przez ten sam interfejs wyjściowy routera R2, co trasa Ψ(3) = 2 3 k = q= ^ 2 t =(e, e 2 ). Ψ( k, q,3) = = ; sumacyjny czas komunikacji wynosi = 4.8 [s]. Z włączonym równoważeniem obciążenia typu NK (trzy trasy dla pary hostów i 2, oraz cztery trasy dla pary hostów 3 i 4) Analogicznie jak poprzednie, rozwiązanie to jest nie zalecane. Ψ(3) = Ψ(3) = 2 4 k = q= 3 k = q= ^ Ψ( k, q,3) = = 50 (dla etapu pierwszegi); ^ Ψ( k, q,3) = 200 (dla etapu drugiego) sumacyjny czas komunikacji wynosi = 5 [s]. - -

112 Poniżej zostały przedstawione rozważania dla trzeciej topologii przedstawionej na Rys Tak jak w poprzednim przypadku, H komunikuje się z H2- para k=, a H3 z H4 para k=2. Obie pary wymieniają po 200 Mb danych. Rys Szósty przykład topologii sieci komputerowej. Przepustowości łączy wynosza odpowiednio (Mb/s): π = 00 ; π 2 = 00 ; π = 3 50 ; π 00 4 = ; π = 5 50 ; π = Otrzymano następujące wyniki: Bez włączonego równoważenia obciążenia. Ψ(0) = 2 k = q= ^ Ψ( k, q,0) = = 00 ; sumacyjny czas komunikacji wynosi = 8 [s]. Z włączonym równoważeniem obciążenia typu RK Ψ(0) = Ψ(0) = 2 2 k= q= 2 k = q= ^ Ψ( k, q,0) = = 50 (dla etapu pierwszego); ^ Ψ( k, q,0) = 00 (dla etapu drugiego) sumacyjny czas komunikacji wynosi = 5 [s] Z włączonym równoważeniem obciążenia typu NK (po trzy trasy dla każdej z par hostów) - 2 -

113 Ψ(3) = [s]. 2 3 k = q= ^ Ψ( k, q,3) = = 250 ; sumacyjny czas komunikacji wynosi.6+.6=3.2 Z włączonym równoważeniem obciążenia typu NK (po cztery trasy dla każdej z par hostów) Ψ(4) = Ψ(4) = 2 4 k = q= 4 k = q= ^ Ψ( k, q,4) = = 225 (dla etapu pierwszego); ^ Ψ( k, q,4) = 200 (dla etapu drugiego) sumacyjny czas komunikacji wynosi = 3.4 [s]. Z włączonym równoważeniem obciążenia typu NK (na cztery i pięciu trasach) Ψ(4) = Ψ(4) = 2 5 k = q= 3 k = q= ^ Ψ( k, q,4) = = 9.2 (dla etapu pierwszego); ^ Ψ( k, q,4) = 250 (dla etapu drugiego) sumacyjny czas komunikacji wynosi = [s]. Zestawienie obliczonych czasów przesyłania informacji znajduje się w poniższej tabeli. Topologia z rys. 3.4 Topologia z rys. 3.5 Topologia z rys. 3.6 Tabela 3.. Zbiorcze zestawienie obliczonych sumacyjnych czasów komunikacji. Bez LB Z LB RK Z LB NK Z LB NK Z LB NK Z LB NK (2 trasy) (3 trasy) (4 trasy) (5 tras) Wniosek z przeprowadzonych obliczeń może być następujący: odpowiednie stosowanie równoważenia obciążenia typu NK jest zasadne i prowadzi do wzrostu przepustowości, lecz liczba tras, na jakie kierowany powinien być ruch sieciowy jest zależna od konkretnego przypadku topologii oraz charakterystyki ruchu sieciowego. Wykazanie zasadności stosowania tego typu równoważenia znajduje się również w dalszej części tej pracy, - 3 -

114 natomiast w tym miejscu należy zauważyć, dla dowolnej topologii sieciowej nie udało się wykazać celowości stosowania równoważenia typu NK, (bo i nie taki był cel tego podrozdziału). Mając na uwadze powyższe względy, w niniejszym rozdziale posłużono się pewnymi konkretnymi, lecz często występującymi w zastosowaniach praktycznych przypadkami (topologiami). Więcej informacji na temat różnego rodzaju algorytmów znajduje się np. w [6] [2] [22]

115 Rozdział 4. Optymalizacja przepustowości środowiska sieciowego z zastosowaniem metody symulowanego wyżarzania Rozdział ten zawiera ogólne informacje o metodzie symulowanego wyżarzania, a także dokładny opis optymalizacji przepustowości środowiska sieciowego z zastosowaniem tej metody, oraz analizę jej złożoności obliczeniowej. Część informacji ogólnych została zaczerpnięta z [93]. Użycie powyższej metody wymagało wprowadzenia do niej pewnych zmian. Zmiany te mają na celu dostosowanie algorytmu symulowanego wyżarzania do potrzeb oraz specyfiki badanego zagadnienia i zostały szczegółowo opisane w dalszej części rozdziału. Rozdział zawiera także logiczny schemat przepływu informacji pomiędzy algorytmami obrazujący zasadę działania rozwiązania zaproponowanego w tej pracy. Dodatkowo znajdują się w nim precyzyjne opisy scenariuszy przeprowadzonych badań. Zakończenie rozdziału zawiera zwięzłe podsumowanie poruszanych w nim zagadnień. Zanim jednak poruszona zostanie tematyka zastosowanej metody badawczej, warto dokładniej przedstawić problem, jakim jest wyznaczanie tras o nierównym koszcie oraz uzasadnić jego znaczenie. Oczywistym jest, że w średnich i dużych sieciach występuje znaczna liczba tras łączących dwa dowolne routery. W takiej sytuacji nasuwa się dość naturalne pytanie, którymi trasami powinna odbywać się komunikacja i jak trasy te wybierać? Odpowiedź na tak postawione pytanie nie jest łatwa, tym bardziej, że warunki panujące w sieciach zmieniają się dynamicznie, a par komunikujących się węzłów jest wiele. Ponadto występują inne związane z tym zagadnieniem problemy takie jak: uszkodzenia łączy, interfejsów, lub awarie całych routerów, zmiany w natężeniu ruchu sieciowego, konieczność zagwarantowania określonych przepustowości dla pewnych usług itp. Ponadto złe dobranie tras typu NK może wywołać efekty zgoła odmienne od oczekiwanych i być przyczyną tworzenia się zatorów w sieciach, co bezpośrednio przekłada się na jakość usług świadczonych przez ich dostawców oraz poziom frustracji odbiorców tych usług. Omawiany problem staje się tym trudniejszy im sieć jest bardziej rozległa. O ile w małych sieciach można wyznaczyć optymalny zbiór tras dla danych par routerów (lub sieci) o tyle w średnich i dużych sieciach omawiane zagadnienie staje się zbyt złożone. W takich przypadkach zastosowanie dokładnych metod analitycznych jest nieefektywne z powodu zbyt długiego (nierzeczywistego) czasu ich działania. Powstaje za tym potrzeba zastosowania innych metod umożliwiających wyznaczenie rozwiązań, jeśli nie optymalnych to, chociaż zbliżonych do nich na tyle, żeby metodę uznać za efektywną i, co nie mniej istotne, działającą w czasie - 5 -

116 rzeczywistym. Moją propozycją rozwiązania omawianego problemu jest zastosowanie zmodyfikowanej metody symulowanego wyżarzania. Metoda ta działa w czasie rzeczywistym, a otrzymane przeze mnie wyniki nie różnią się znacznie od wyników otrzymanych z zastosowaniem metody dokładnej (Simplex). Warto dodać, że wybór tej metody był podyktowany po pierwsze szybkością jej działania, po drugie jakością uzyskiwanych rozwiązań suboptymalnych. Po dokonaniu porównania wartości przepustowości uzyskanych z zastosowaniem metody dokładnej i SW, nasuwa się następujący wniosek. Uzyskane rozwiązania suboptymalne są na tyle zbliżone do optymalnych, że niewątpliwie należy je uznać z zadowalające. Wszystko, co zostało powyżej przedstawione świadczy, że omawiany problem nie jest błahy i ma istotne znaczenie praktyczne dla wydajności przesyłania informacji w sieciach komputerowych. Wykorzystanie tras alternatywnych (o kosztach większych od optymalnego) może prowadzić do zwielokrotnienia prędkości transmisji, lecz jeśli tras będzie zbyt wiele prędkość ta może ulec znacznemu zmniejszeniu, co zostało wykazane w rozdziale 3. Reasumując warto stwierdzić, że równoważenie obciążenia typu NK jest zagadnieniem ciekawym i nietrywialnym. 4. Szczegółowy opis metody badawczej Metoda symulowanego wyżarzania zawdzięcza swoja nazwę zjawisku fizycznemu, które polega na stopniowym schładzaniu ciała będącego początkowo w postaci płynnej, aż do jego zestalenia. Dobrym przykładem takiego procesu jest wytapianie żelaza. W tym miejscu warto wspomnieć, że inspiracją do powstania takiej metody był proces technologiczny stosowany w metalurgii i hutnictwie. Wyżarzanie natomiast należy rozumieć jako operację obróbki termicznej polegającą na wstępnym nagrzaniu przedmiotu z metalu lub stopu metali do określonej temperatury, wygrzaniu go w tej temperaturze i schłodzeniu z ustaloną szybkością pozwalającą na utrzymanie struktury metalu w określonym stopniu zbliżonym do stanu równowagi. Będąc w stanie płynnym cząstki metalu mają możliwość dość swobodnego poruszania się, natomiast wraz ze spadkiem temperatury ich energia kinetyczna, a więc zdolność przemieszczania, zmniejsza się. W momencie zestalenia powstaje tzw. sieć krystaliczna, a ruch cząstek niemalże ustaje ciało wchodzi w stan równowagi termodynamicznej. W stygnącej cieczy poruszające się cząstki metalu szukają swojego miejsca, czyli dążą do stworzenia takiej struktury, w której energia wewnętrzna całego ciała jest jak najmniejsza. To, jaką strukturę wewnętrzną, (w jakim stopniu uporządkowaną) - 6 -

117 zbudują cząstki zależy od temperatury początkowej i końcowej, a także od szybkości oraz sposobu schładzania. Główna idea omawianej metody polega na zastosowaniu rozwiązań występujących w procesach technologicznych do rozwiązania innych problemów, w tym także optymalizacyjnych. Dobór właściwego miejsca dla cząstek w całej strukturze może być traktowany jako swoista optymalizacja. Powstaje pytanie jak dostosować tę metodę do problemów optymalizacyjnych. Można tego dokonać poprzez następujące analogie: minimum globalne stan o minimalnej energii, iteracja algorytmu (przekształcenie lokalne) ruch cząstki, funkcja celu (oceny) energia układu, otrzymane rozwiązanie bieżący stan układu termodynamicznego. Dodatkowo wprowadza się zamiast stałej Boltzmana (pełniącej rolę współczynnika proporcjonalności pomiędzy średnią energią cząstki i temperaturą bezwzględną) oraz temperatury bezwzględnej, odpowiedni parametr służący dostrojeniu algorytmu do określonego zadania. W tym miejscu warto wspomnieć, jaka jest rola tego parametru (zwanego dalej temperaturą) w procesie wyżarzania. Dobierając odpowiednią jego wartość (większą od zera) ustala się zakres tolerancji dla zaakceptowania gorszego rozwiązania (w sensie wartości przyjętej funkcji oceny) powstałego w kolejnej iteracji algorytmu. To właśnie ta tolerancja umożliwia algorytmowi opuszczenie ekstremum lokalnego w celu wyszukania ekstremum globalnego, co niewątpliwie jest jego dużą zaletą. Kontynuując rozważania nad zastosowaniem algorytmu do zadań optymalizacyjnych warto omówić kwestie takie jak warunki startowe oraz schematy schładzania. Jeśli chodzi o kwestię pierwszą, to powszechnie uważa się, że algorytm ten należy stosować w powiązaniu z tzw. wielostartem, gdyż otrzymany wynik końcowy jest zależny od wartości początkowych oraz prawdopodobieństwa wylosowania dobrego rozwiązania. Wspomniany wielostart należy rozumieć jako wielokrotne uruchamianie algorytmu z różnymi wartościami początkowymi. Najczęściej stosuje się jeden z trzech następujących schematów: logarytmiczny (Boltzmana): T(k) = T p * /log(k); liniowy (Cauchy ego): T(k) = T p * /k; geometryczny T(k)= T p * a k, gdzie 0<a<. gdzie: T p temperatura początkowa, T(k) temperatura w k-tej iteracji algorytmu, a podstawa funkcji wykładniczej. Schemat logarytmiczny (w odróżnieniu od pozostałych) przy pewnych naturalnych założeniach gwarantuje w dostatecznie długim czasie, znalezienie optimum globalnego z prawdopodobieństwem jeden. Gwarancja ta w znacznej mierze polega na zapewnieniu - 7 -

118 dostatecznie długiego czasu pracy algorytmu Jednak średni czas potrzebny na jego wyszukanie jest porównywalny z rozmiarem przestrzeni rozwiązań. Rozmiar ten zależy między innymi od problemu, do rozwiązania, którego metoda została użyta. Reasumując schemat ten ma małe zastosowanie praktyczne gdyż jest zbyt wolny. Z kolei badania empiryczne sugerują, że największą przydatność praktyczną ma schemat geometryczny (najszybszy). Omawiając metodę symulowanego wyżarzania warto jeszcze wspomnieć o warunkach zatrzymania algorytmu. Warunków tych może być kilka i mogą one występować łącznie lub rozdzielnie. Pierwszym jest osiągnięcie wcześniej założonej temperatury końcowej. Drugim - przekroczenie limitu czasu pracy algorytmu lub założonej liczby iteracji. Kolejnym warunkiem jest osiągnięcie stanu równowagi termodynamicznej dla bieżącej temperatury jest to warunek uznany za mało przydatny w praktycznych zastosowaniach. Przed przystąpieniem do przedstawienia ogólnego schematu algorytmu symulowanego wyżarzania przyjmijmy następujące oznaczenia: x zmienna decyzyjna ze zbioru wartości dopuszczalnych S ; φ(x) wartość funkcji energii dla zmiennej decyzyjnej x ; k numer iteracji algorytmu; k max maksymalna liczba iteracji algorytmu; T(0) temperatura początkowa (w zerowej iteracji); T(k) temperatura w k-tej iteracji algorytmu; T min temperatura minimalna po osiągnięciu której algorytm kończy działanie; W przedstawianym poniżej algorytmie minimalizowana jest wartość funkcji energii, co można zapisać jako: minφ(x) (4.) Warto także dodać, że w algorytmie tym występują zmienne, których wartości zmieniają się w przedstawionych poniżej zakresach. T min k k max (4.2) T( k) T (0) (4.3) Dodatkowo należy zaznaczyć, algorytm 4 jest narzędziem cechującym się dużą elastycznością tj. szerokimi możliwościami zastosowania, co niewątpliwie stanowi jego dużą zaletę. Oprócz niewątpliwych zalet algorytm ten posiada także wady, a jedną z nich jest brak gwarancji, że znalezione ekstremum jest globalne. W konsekwencji należy przyjąć, że w - 8 -

119 przedstawionym powyżej zadaniu znajdowane jest ekstremum lokalne jednak w praktycznych zastosowaniach rozwiązanie takie często uważane jest za satysfakcjonujące. Precyzyjne sformułowanie adekwatnego zadania optymalizacji w odniesieniu do maksymalizacji przepustowości sieci komputerowych znajduje się w dalszej części tego rozdziału. Przechodząc do omówienia algorytmu SW, dodatkowo przyjęto następujące oznaczenia: random warość losowa o rozkładzie jednostajnym z przedziału <0,>; φ * najmniejsza wartość funkcji energii. x 0 wartość początkowa zmiennej decyzyjnej należącej do zbioru S; x * - zmienna decyzyjna ze zbioru wartości dopuszczalnych S, dla której wartość funkcji energii przyjmuje wartość najmniejszą; Oraz definicję funkcji * φ φ( x) p(φ(x), φ *, T) = exp( ) ; T W zapisie algorytmu SW występuje także reguła RM(φ(x), φ *, T). Jest to tzw. reguła akceptacji Metropolisa [93][98][99], dodatkowo opisana w rozdz. 4.2, i sformułowana następująco: Begin RM(φ(x), φ *, T) if random p(φ(x), φ *, T) THEN RM TRUE else RM FALSE end if end Poniżej został zamieszczony ogólny schemat algorytmu symulowanego wyżarzania. Algorytm 4 Begin Symulowane_wyżarzanie(T(0), x 0, S, k max ) T T(0); k 0; x * x 0 ; wyznacz φ(x 0 ); - 9 -

120 φ * φ(x 0 ); repeat x losowy element z S; wyznacz φ(x); if (φ(x); <= φ * ) THEN φ * φ(x); x * x; else if RM(φ(x), φ *, T) TRUE THEN φ * φ(x); x * x; end if end if k k+; T T(k); until (T > T min OR k < k max ) TRUE; return x end Więcej informacji na temat samej metody symulowanego wyżarzania, a także zastosowania jej do zadań optymalizacji znajduje się w [87] oraz [89]. 4.2 Propozycja udoskonalenia algorytmu symulowanego wyżarzania W mojej pracy podczas przeprowadzania badań nad optymalizacją przepustowości środowiska sieciowego został zastosowany algorytm SW z regułą akceptacji Metropolisa, zwany także algorytmem Metropolisa. Ze względu na zasługi i wkład w rozwój nauki zasadnym jest krótkie przybliżenie osoby Nicolasa Metropolisa (95-999). Był on członkiem zespołu badawczego Projektu Manahattan, a także współtwórcą komputerów MANIAC (952) i MANIAC II (957) oraz jednym z autorów metody Monte Carlo (wraz z S. Ulamem i J. Von Neumannem). Algorytm Metropolisa zaliczony został do 0 czołowych algorytmów, które wywarły największy wpływ na rozwój i praktykę nauki i techniki w XX wieku (wg Computing Science and Engineering). Dla uściślenia terminologii należy dodać, że omawiana metoda określana jest mianem metody metaheurystycznej. Przedrostek meta

121 jest tu użyty niezbyt poprawnie, ponieważ metoda metaheurystyczna jest połączeniem co najmniej dwóch metod heurystycznych, lub metod heurystycznych i dokładnych, natomiast samo greckie słowo meta oznacza ponad czymś lub o czymś. Przykładami popularnie stosowanych metod metaheutystycznych mogą być: wyszukiwanie lokalne (ang. local search), losowa optymalizacja (ang. random optimization), wyszukiwanie pierwszego najlepszego (ang. best-first search), algorytmy genetyczne (ang. genetic algorithms), wyszukiwanie z zakazem (ang. tabu search) oraz wiele innych. W tym kontekście należy również wymienić tzw. regułę akceptacji Metropolisa. Dzięki tej regule wykorzystującej porównanie wartości losowej (o rozkładzie jednostajnym z przedziału <0,>) z przedstawioną * φ φ( x) w podrozdziale nr 4. wartością wyrażenia exp( ), algorytm jest w stanie z T określonym prawdopodobieństwem zaakceptować gorsze rozwiązanie, a w konsekwencji wydostać się z minimum lokalnego. Akceptacja gorszego rozwiązania przenosi niejako zakres poszukiwań minimum globalnego w inną część obszaru rozwiązań dopuszczalnych. Natomiast prawdopodobieństwo akceptacji rozwiązania gorszego jest zależne od wartości funkcji energii oraz temperatury, w której obecnie znajduje się algorytm. Warto zauważyć, że wyrażenie jest tak skonstruowane, że wraz ze spadkiem temperatury wspomniany algorytm staje się mniej skłonny do akceptowania gorszych rozwiązań. Ponieważ algorytm zaproponowany przez N. Metropolisa nie jest rozwiązaniem dedykowanym do optymalizacji przepustowości sieci komputerowych, dlatego należało wprowadzić do niego pewne autorskie udoskonalenie. Polega ono na dodaniu przepustowości routera do zbioru parametrów. Jeśli po wykonaniu jednej iteracji przepustowość ta wzrasta, to nowa wartość parametru beta nie jest losowana z całego zbioru wartości dopuszczalnych, lecz z podzbioru <wartość obecna, wartość maksymalna>. Analogicznie, gdy przepustowość routera spada, wartość beta jest losowana z przedziału <zero, wartość obecna>. Działanie takie ma na celu zapobieżenie zbyt szybkiem wzrostowi wartości parametru beta, co w konsekwencji prowadzi do kierowania pakietów na zbyt wiele tras jednocześnie. W rozdziale trzecim zostało wykazane, że użycie zbyt wielu tras może skutkować spadkiem przepustowości środowiska sieciowego. Wracając do parametru przepustowość routera należy wyjaśnić, że jest on wyliczany w każdej iteracji algorytmu jako suma efektywnych przepustowości wszystkich tras prowadzących przez ten router. W omawianym rozwiązaniu maksymalizacja przepustowości całego obszaru OSPF odbywa się poprzez optymalizację przepustowości poszczególnych routerów wchodzących w jego skład, przy użyciu zmodyfikowanego algorytmu symulowanego wyżarzania (algorytm 5). Dodatkowo istotną kwestią jest to, że maksymalizacja przepustowości całego obszaru - 2 -

122 OSPF odbywająca się poprzez optymalizację przepustowości poszczególnych routerów wchodzących w jego skład, świadczy o rozdzielności tego zadania optymalizacyjnego (jak już zostało wcześniej powiedziane, jest to zadanie NCSP). Warto także dodać, że budowa wzmiankowanego algorytmu wynika z konieczności dostosowania go do specyfiki zadania, do którego będzie użyty. Do optymalizacji przepustowości zostanie użyty następujący algorytm. Algorytm 5. Przypisz wszystkim beta wartość zero. 2. Oblicz Ψ(b). 3. Oblicz przepustowości routerów. 4. Dopóki nie jest spełniony warunek stopu wykonuj. 5. Wygeneruj nowe wartości parametrów beta. 6. Oblicz nowe wartości Ψ(b). 7. Jeśli nowe Ψ(b) nie jest mniejsze niż stare Ψ(b) wykonaj 7. Bety nowe bety. 7.2 Ψ(b) nowe Ψ(b). W przeciwnym wypadku wykonaj. 7.3 Oblicz prawdopodobieństwo akceptacji (wartość funkcji energii). 7.4 Wygeneruj wartość losową. 7.5 Porównaj prawdopodobieństwo akceptacji z wartością losową. 7.6 Jeśli prawdopodobieństwo akceptacji większe niż wartość losowa wykonaj Bety nowe bety Ψ(b) nowe Ψ(b). W przeciwnym przypadku idź do Oblicz nowe przepustowości routerów. 9. Wyznacz routery ze wzrostem parametru przepustowość routera. 0. Przepustowości routerów nowe przepustowości routerów.. Aktualizuj warunek stopu. 2. Sprawdź warunek stopu. 3. Jeśli warunek stopu nie spełniony idź do 4, w przeciwnym przypadku zakończ algorytm

123 Nie bez znaczenia będzie zatrzymanie się w tym miejscu i udzielenie odpowiedzi na jedno z kluczowych pytań, jakie pojawiają się w tej pracy. Mianowicie, kiedy włączać równoważenie obciążenia typu NK, a kiedy nie? Odpowiedź jest dość oczywista, kiedy przyniesie to wzrost przepustowości optymalizowanej sieci. Algorytm 5 jest tak skonstruowany, że w kroku przypisuje wszystkim współczynnikom beta wartość zero, co równa się włączeniu równoważenia typu RK lub wyłączeniu równoważenia obciążenia (w zależności od konfiguracji protokołu OSPF). Następnie, tj. w kroku 2, obliczana jest wartość przepustowości sieci (z włączonym równoważeniem typu RK lub z wyłączonym równoważeniem obciążenia), co można interpretować jako wartość punktu odniesienia. Po czym w dalszej części algorytmu na skutek zmian wartości współczynników beta, obliczane są inne wartości Ψ(b). W tym miejscu dochodzimy do meritum poruszanej kwestii. Jeśli wyznaczona w dalszej części algorytmu wartość Ψ(b) jest większa niż ta obliczona w kroku drugim, to włączenie równoważenia zwiększa przepustowość sieci, czyli jest zasadne i należy je włączyć. Dla potrzeb przedstawienia algorytmu 5 zapisanego w pseudokodzie przyjmijmy dodatkowo następujące oznaczenia: β max i maksymalna wartość parametru beta dla routera v i, i m, wyliczana ze wzoru (2.3) b wektor zawierający nowo wyznaczone wartości współczynników β i (w kolejnej iteracji). b new wektor zawierający nowo wyznaczone wartości współczynników β i (w kolejnej iteracji). Ψ(b new ) nowo wyznaczona przepustowość środowiska sieciowego (w kolejnej iteracji). R Ψi (b) - przepustowość routera R i liczona jako suma efektywnych przepustowości tras, które przez ten router prowadzą. Ψ R i ( b new ) - nowo wyznaczona przepustowość routera R i (w kolejnej iteracji). Ψ( b new ) Ψ( b) E wartość funkcji energii rozumiana jako exp( ), gdzie T jest wartością T temperatury i zarazem parametrem stopu. Y wartość losowa o rozkładzie jednostajnym z przedziału <0,>. Algorytm 5 zapisany w pseudokodzie przedstawia się teraz następująco:

124 Algorytm 6 Begin Symulowane_wyżarzanie_zmodyfikowane(T(0), b max, k max ) T T(0); b 0; k 0; Oblicz Ψ(b); Oblicz wszystkie Ψ R (b) ; R Ψ ( b new ) Ψ R (b) ; i repeat Wygeneruj b new ; Oblicz Ψ(b new ); if (Ψ new (b)>= Ψ(b)) else b b new ; Ψ(b) Ψ(b new );; Oblicz E; Wygeneruj Y; if (E > Y) b b new ; i Ψ(b) Ψ(b new ); end if end if R Oblicz wszystkie Ψ b ); i i ( new Wyznacz routery ze wzrostem przepustowości porównujac R R Ψ (b) z Ψ b ) ; R Ψ (b) Ψ b ); R i k k+; Zmniejsz T; i ( new until (T > T min or k<k max ) return b; end i i ( new

125 Dodatkowego wyjaśnienia może wymagać funkcja Wygeneruj b new generująca nowe wartości parametrów beta. Są one generowane indywidualnie dla każdego routera, zależnie od tego, czy w ostatniej iteracji przepustowość danego routera uległa zmniejszeniu czy nie. Jeśli przepustowość nie zmniejszyła się to nowa wartość parametru beta jest generowana losowo z przedziału domkniętego <0, wartość_obecna>. W przeciwnym przypadku nowa wartość parametru beta dla jest generowana losowo z przedziału domkniętego <wartość_obecna, wartość_maksymalna>. Oto schemat blokowy algorytmu 5. Rys. 4.. Schemat blokowy algorytmu 5 służącego do optymalizacji przepustowości

126 4.3 Zastosowanie symulowanego wyżarzania do optymalizacji przepustowości środowiska sieciowego Przed zastosowaniem metody symulowanego wyżarzania do optymalizacji przepustowości środowiska sieciowego należy odpowiedzieć na kilka pytań związanych tak z samą metodą, jak i z konkretnym jej zastosowaniem do danej optymalizacji. Odnosząc się do ogólnych zagadnień dotyczących metody symulowanego wyżarzania należy poruszyć następujące cztery kwestie: warunki startowe dla algorytmu; warunek (warunki) zatrzymania; schemat schładzania; tempo schładzania. Generalnie w metodzie symulowanego wyżarzania stosuje się tzw. wielostart, czyli należy ją powtarzać dla różnych warunków początkowych w konsekwencji otrzymuje się różne wyniki końcowe. W konkretnym zastosowaniu (np. do optymalizacji przepustowości), nie wszystkie parametry będą zmieniały swoje wartości początkowe przy kolejnych uruchomieniach algorytmu. Dokładniej mówiąc, zmianie będzie (między innymi) ulegała temperatura początkowa, natomiast startowe wartości parametrów beta będą zawsze takie same i równe zero. Dla uzasadnienia zauważmy, że zerowe wartości współczynników beta odpowiadają sytuacji, w której wyłączone jest równoważenie obciążenia NK. Przepustowość sieci obliczona bez włączonego równoważenia NK stanowi punkt startowy optymalizacji oraz umożliwia porównanie efektywności otrzymanego rezultatu końcowego z wartością początkową. Inne parametry, których wartości będą zmieniane przy kolejnych uruchomieniach algorytmu to: temperatura końcowa, czas pracy algorytmu, tempo oraz schemat schładzania. Dokładne wartości wymienionych parametrów oraz sposoby ich modyfikacji zostaną opisane w podrozdziale 4.4. Przechodząc do warunków zatrzymania algorytmu, na wstępie należy stwierdzić, że może być to jeden lub wiele warunków. Dodatkowo warto wspomnieć, że specyfika zagadnienia optymalizacji przepustowości nie determinuje jednoznacznie, jakie warunki zatrzymania należy przyjąć. Dokładny opis takich warunków znajduje się w podrozdziale 4.4. Natomiast w tym miejscu warto wspomnieć o niektórych z nich. Precyzyjniej mówiąc, warunki zatrzymania algorytmu można podzielić przynajmniej na trzy grupy, zgodnie z następującymi kryteriami: przekroczenie przez czas działania algorytmu pewnej wartości progowej, osiągnięcie określonej temperatury, brak wystarczającej poprawy rozwiązania w określonym przedziale czasu lub po określonej liczbie

127 iteracji. Można też sformułować inne kryteria, np. osiągnięcie pożądanej wartości funkcji energii (funkcji celu) lub jakiekolwiek rozwiązania hybrydowe powstałe na skutek superpozycji trzech podstawowych kryteriów. Przechodząc do schematów schładzania, warto stwierdzić, że nie ma konieczności wprowadzania w nich żadnych specyficznych zmian (tj. mających na celu dostosowanie algorytmu 5 do optymalizacji przepustowości sieci). Natomiast tematem do osobnych rozważań może być zastosowanie innego schematu schładzania niż trzy wcześniej wymienione (w podrozdziale 4.). Schematu polegającego np. na liniowym spadku temperatury względem czasu lub iteracji algorytmu. Schemat taki nie odpowiada temu, co można zaobserwować w naturze. Wykres zmian temperatury w czasie dla cieczy stygnącej w warunkach normalnych ma kształt wykładniczy (z ujemnym wykładnikiem potęgi) nie zaś liniowy. Z drugiej jednak strony, istnieją w przemyśle rozwiązania technologiczne wykorzystujące schładzanie z liniowym spadkiem temperatury w czasie np. przy tzw. epitaksji z fazy ciekłej (ang. Liquid Phase Epitaxy - LPE), czyli technice nanoszenia warstw monokryształów na podłoże krystaliczne. Technika ta jest wykorzystywana przy wytwarzaniu materiałów półprzewodnikowych [00][0]. W odniesieniu do tempa schładzania, także nie ma konieczności wprowadzania zmian dostosowujących algorytm 5 do optymalizacji przepustowości sieci. Warto natomiast wspomnieć, że zbyt szybkie schłodzenie może prowadzić do niepożądanych efektów polegających na niewłaściwej budowie struktury krystalicznej (cząstki nie zdążą znaleźć dla siebie odpowiedniego miejsca). Jako przykład można potraktować przemysłowy proces wytopu szkła. W procesie tym płynne szkło jest schładzane dość szybko, a cząstki wchodzące w jego skład nie tworzą struktury krystalicznej. Wydawać by się mogło, że w warunkach normalnych szkło jest ciałem stałym, jednak z fizycznego punktu widzenia jest to jedynie przechłodzona ciecz. Analogicznie jak w kwestiach poruszanych poprzednio (warunki początkowe i zatrzymania algorytmu oraz schemat schładzania), tempo schładzania będzie parametrem, który dokładniej zostanie opisany w podrozdziale 4.4. Reasumując, główne wprowadzone przez mnie udoskonalenie dostosowujące metodę symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowej, polega na dodaniu parametru nazwanego przepustowość routera. Porównanie jego wartości w kolejnych iteracjach przekłada się bezpośrednio na to, z jakiego przedziału (w bieżącej iteracji) jest losowana wartość parametru beta (dla tego routera). Natomiast w klasycznej postaci wartości wspomnianych parametrów byłyby losowane z pełnego zbioru rozwiązań dopuszczalnych. Inną, choć już mniej istotną modyfikacją, jest wprowadzenie parametru

128 beta_max (indywidualnie dla każdego routera) określającego górną granicę przedziału, z jakiego losowana jest beta. Opis sposobu wyznaczania parametru beta_max, a także wzór służący do jego wyznaczenia znajduje się w rozdziale drugim. Natomiast więcej informacji na temat zastosowania symulowanego wyżarzania do zadań optymalizacji sieci komputerowych znajduje się np. w [78] [80] [8] [83] [85] [86]. Logiczny schemat przepływu informacji pomiędzy algorytmami obrazujący zasadę działania rozwiązania zaproponowanego w mojej pracy został przedstawiony na rys. 4.2 Rys Logiczny schemat przepływu informacji pomiędzy używanymi algorytmami. Opisywane rozwiązanie działa w następujący sposób: Algorytm na podstawie posiadanych informacji o topologii sieci i otrzymanych (od stacji zarządzającej) współczynników beta wylicza zawartość tablic routingu dla każdego z routerów wchodzących w skład sieci. Następnie na podstawie tablic routingu i topologii wyznacza wszystkie osiągalne acykliczne i dopuszczalne trasy trasy aktywne. Przez termin dopuszczalne należy rozumieć takie trasy, z których każda prowadzi przez inny interfejs wyjściowy danego routera. Potem zestaw wyznaczonych tras aktywnych jest przesyłany do algorytmu 3. Algorytm 3 na podstawie uzyskanych informacji z algorytmu wylicza wartość przepustowości środowiska sieciowego (Ψ(b)), po czym przesyła tę wartość do algorytmu 5. Algorytm 5 posiadając informacje o spodziewanej charakterystyce ruchu sieciowego i na podstawie otrzymanej wartości Ψ(b), a także z zastosowaniem swojej logiki wyznacza nowe wartości współczynników beta - maksymalizujący wartość Ψ(b). Następnie wartości współczynników beta są przesyłane do algorytmu

129 Algorytm działa osobno na każdym z routerów wchodzących w skład optymalizowanego obszaru (segmentu sieci), natomiast algorytmy 3 i 5 działają na stacji zarządzającej. 4.4 Scenariusze przeprowadzonych badań Do przeprowadzenia badań, których scenariusze zostały przedstawione w tym podrozdziale, został zastosowany algorytm 5. Podczas badań modyfikacji ulegały następujące parametry algorytmu: schemat schładzania; temperatura początkowa; liczba iteracji bez zmiany temperatury; warunek zatrzymania. Badania zostały przeprowadzone dla trzech topologii sieciowych przedstawionych na rys. 4.3, 4.4 i 4.5. Warto zaznaczyć, że topologia przedstawiona na rys. 4.5 jest schematem sieci komputerowej stanowiącej obszar zero jednej z dużych instytucji finansowych obecnie funkcjonującej na polskim oraz międzynarodowym rynku. Badania nad pierwszymi dwoma topologiami służą, między innymi, dobraniu optymalnych parametrów pracy algorytmu. Następnie, tak dostrojony algorytm zostanie użyty do przeprowadzenia optymalizacji przepustowości sieci z rys Rys Pierwsza z poddanych badaniom przykładowych topologii

130 Koszty połączeń pomiędzy poszczególnymi routerami przyjmują wartości przedstawione w tabeli nr 4.., zaś koszty bezpośrednich połączeń pomiędzy hostami a routerami przyjmuje się za pomijalnie małe. Należy także dodać, że stacja zarządzająca może być podłączona do dowolnego routera, jedyny wymóg odnośnie jej podłączenia jest taki żeby istniała możliwość komunikacji stacji zarządzającej z każdym z routerów. Ponieważ rys. 4.3, 4.4, i 4.5 przedstawiają jedynie pewne topologie, nie zaś całą infrastrukturę sieciową, dlatego zobrazowanie lokalizacji stacji zarządzającej zostało pominięte. Tabela 4.. Koszty połączeń pomiędzy routerami przedstawionymi na rys Router źródłowy Router docelowy Koszt połączenia R R2 0 R R3 5 R R4 2 R R5 R2 R3 2 R2 R6 2 R2 R7 5 R3 R4 0 R3 R6 0 R3 R7 5 R3 R8 2 R4 R5 R4 R7 2 R4 R8 0 R4 R9 2 R5 R8 2 R5 R9 5 R6 R7 5 R6 R0 0 R7 R8 0 R7 R0 R8 R9 0 R8 R0 2 R9 R

131 Oto druga z badanych topologii sieciowych: Rys Druga z poddanych badaniom przykładowych topologii. Koszty połączeń pomiędzy poszczególnymi routerami przyjmują wartości przedstawione w tabeli nr 4.2, zaś koszty połączeń pomiędzy obszarami, a routerami przyjmuje się za pomijalnie małe. Dodatkowo warto wspomnieć, że topologia przedstawiona na rys. 4.4 stanowi obszar zero (ang. backbone) dla przykładowej sieci komputerowej, której dokładna konfiguracja została przedstawiona w załączniku II. Tabela 4.2. Koszty połączeń pomiędzy routerami przedstawionymi na rys Router źródłowy Router docelowy Koszt połączenia R R3 R2 R4 2 R3 R4 R3 R5 2 R3 R6 R4 R5 R4 R6 2 R5 R

132 Analogicznie jak w poprzednim przypadku, koszty wszystkich tras przyjmują wartości symetryczne. Przyjęto również, że poszczególne obszary komunikują się według schematu każdym z każdym. Oto trzecia z badanych topologii sieciowych. Rys Trzecia z poddanych badaniom topologii sieciowych. Sieć jest zaprojektowana w taki sposób, że przepustowości łączy pomiędzy poszczególnymi routerami wynoszą Gb/s, a w konsekwencji ich koszty przyjmują wartości 0., natomiast koszty połączeń pomiędzy obszarami, a routerami ABR, przyjmuje się za pomijalnie małe. Dodatkowo warto wspomnieć, że topologia przedstawiona na rys. 4.5 stanowi obszar zero działającej na polskim i międzynarodowym rynku instytucji finansowej. Omawiany obszar został zaprojektowany w taki sposób, że każdy z routerów zewnętrznego pierścienia posiada po jednym interfejsie podłączonym do jednego dedykowanego dla siebie obszaru niezerowego. Dla przykładu, router R jest routerem ABR dla obszaru O, router R5 dla O2 itd. Sieć ta posiada dziesięć obszarów niezerowych, przy czym routery ABR to routery od R do R0. Natomiast optymalizacja przepustowości została przeprowadzona dla ruchu sieciowego wymienianego pomiędzy obszarami O i O2. Dla przejrzystości rysunku 4.5 jedynie te dwa obszary zostały na nim zaznaczone. Podczas każdego z badań modyfikacji ulegała wartość tylko jednego z powyżej wymienionych parametrów. Modyfikacje były przeprowadzane w taki sposób, żeby każda

133 możliwa kombinacja przyjętych wartości i parametrów pracy algorytmu została sprawdzona. W szczególności przyjęto, że:. Wykorzystywane są trzy schematy schładzania: logarytmiczny, liniowy i geometryczny. Dla schematu geometrycznego parametr alfa (podstawa potęgi) miał dwie wartości: 0.95 i Temperatura początkowa ma jedną z trzech wartości: 00, 000, 0000 stopni. 3. Liczba iteracji algorytmu bez zmiany temperatury wynosi oraz Warunkiem zatrzymania algorytmu jest: osiągnięcie temperatury końcowej bliskiej zeru (dokładniej mniejszej niż jeden stopień), lub przekroczenie (arbitralnie przyjętych wartości) maksymalnego czasu działania algorytmu tj. 3 minut, lub brak zmian wartości funkcji energii w czasie 0.5 minuty. Przyjmując, że badaniu będą podlegały: trzy topologie sieciowe; trzy schematy schładzania (w tym jeden z dwoma wartościami parametru alfa); trzy temperatury początkowe; dwie liczby iteracji bez zmiany temperatury; trzy warunki zatrzymania algorytmu ; w wyniku powyżej przyjętych założeń powstają 3*4*3*2*3=26 różne scenariusze badań. Ze względu na znaczna liczbę scenariuszy, badania zostały przeprowadzone jedynie dla niektórych z nich, mianowicie przedstawionych w rozdziale 5. Przykładowy scenariusz przedstawia się następująco: Topologia sieciowa pierwsza; Schemat schładzania geometryczny; Temperatura początkowa 000 stopni; Liczba iteracji algorytmu bez zmiany temperatury 0; Warunek zatrzymania algorytmu brak zmian wartości funkcji energii w czasie 5 minut; Wyniki badań przeprowadzonych wedle wybranych scenariuszy, zostały przedstawione w rozdziale piątym. Natomiast w rozdziale szóstym znajduje się obszerna dyskusja uzyskanych wyników. Do przeprowadzenia badań zostało użyte napisane przeze mnie oprogramowanie. W oprogramowaniu tym zaimplementowany został Algorytm 5, czyli zmodyfikowana metoda

134 SW. Taj jak już zostało wcześniej powiedziane, w metodzie SW funkcja energii utożsamiana jest z wartością przepustowości środowiska sieciowego, wyliczaną z zastosowaniem algorytmu 3. Innymi słowy w omawianym oprogramowaniu zaimplementowany jest także i ten algorytm. Dodatkowo warto wspomnieć, że jest to autorski program napisany specjalnie dla potrzeb tej pracy i służący do optymalizacji funkcjonału wyrażonego wzorem (3.3). Kod omawianego oprogramowania został napisany w języku C i znajduje się w załączniku I. Warto także zauważyć, że w rozdziale 3 zadanie optymalizacji przepustowości sieci z zastosowaniem równoważenia obciążenia z udziałem tras typu NK zostało sformułowane jako zadanie programowania liniowego, którego wyniki są przedstawione w rozdziale 6. Rozwiązanie tego zadania można wykorzystać do zbadania efektywności metody symulowanego wyżarzania. Innymi słowy, porównanie czasów działania metody symulowanego wyżarzania zastosowanej do optymalizacji przepustowości środowiska sieciowego z czasem działania metody dokładnej, (jaką jest PL) można traktować jako miernik wydajności pierwszej z tych metod. Oczywistym jest, że porównanie takie należy przeprowadzić dla wyników otrzymanych z wykorzystaniem urządzeń o tej samej mocy obliczeniowej i dla takich samych topologii sieciowych. Jednak należy zauważyć, że sam czas wyznaczania rozwiązania nie jest jedynym kryterium. Najważniejszym kryterium jest wartość otrzymanego rozwiązania (wartość wyliczonej przepustowości sieciowej), a czas stanowi jedno z ograniczeń badana metoda optymalizacji przepustowości powinna działać w czasie rzeczywistym. Nie wdając się w tym momencie w szczegóły należy podkreślić, że dokładna dyskusja otrzymanych wyników badań, wraz z porównaniem i omówieniem wspomnianych wcześniej czasów działania, zostanie zamieszczona w rozdziale szóstym. Natomiast narzędziem użytym do rozwiązania zadania programowania liniowego w odniesieniu do optymalizacji przepustowości środowiska sieciowego było oprogramowanie Premium Solver V9.0. Oprogramowanie to jest zaawansowanym narzędziem służącym do optymalizacji z wykorzystaniem programowania liniowego oraz nieliniowego, a także całkowitoliczbowego. Omawiane oprogramowanie jest zaprojektowane jako pewien moduł (silnik) wykorzystujący inne programy jako interfejs (front-end) do wprowadzania danych oraz wyświetlania wyników. Programami takimi mogą być np. Matlab lub popularne arkusze kalkulacyjne. Dodatkowe informacje o wykorzystanym narzędziu znajdują się na stronie producenta pod adresem

135 4.5 Złożoność obliczeniowa zastosowanej metody Bardzo istotnym czynnikiem, często decydującym o praktycznym zastosowaniu danej metody jest jej złożoność obliczeniowa. W bieżącym podrozdziale została podjęta próba wyznaczenia tej złożoności dla algorytmu symulowanego wyżarzania zastosowanego do optymalizacji przepustowości środowiska sieciowego. Ujednolicając terminologię, przez pojęcie złożoności obliczeniowej należy rozumieć zależność funkcyjną pomiędzy liczbą węzłów oraz krawędzi grafu reprezentującego optymalizowane środowisko sieciowe (argumenty funkcji), a liczbą niezbędnych do wykonania operacji prostych (wartość funkcji złożoności). Termin operacja prosta winien być rozumiany jako jedna z podstawowych operacji arytmetycznych (dodawanie, odejmowanie ewentualnie mnożenie lub dzielenia) albo porównanie dwóch wartości liczbowych. Wyznaczanie złożoności całego algorytmu 5 należy rozpocząć od dokładnego przeanalizowania jego jednej iteracji. Przyjmijmy oznaczenia: b new nowy wektor parametrów beta. R Ψi (b) - przepustowość routera R i liczona jako suma efektywnych przepustowości tras, które przez ten router prowadzą. E wartość funkcji energii. Y - zmienna losowa o rozkładzie jednostajnym.z powodu braku znajomości typu rozkładu przyjęto rozkład jednostajny. Pr( E Y ) prawdopodobieństwo, że wartość funkcji energii jest nie mniejsza niż wartość losowa. Pojedyncza iteracja składa się z następujących operacji:. Wygeneruj b new. 2. Oblicz Ψ(b new ). 3. Jeśli Ψ(b new ) > Ψ(b). a. b b new. b. Ψ(b) Ψ(b new ). 4. Jeśli Ψ(b new ) Ψ(b). a. Oblicz Y

136 b. Jeśli Pr( E Y ). i. b b new. ii. Ψ(b) Ψ(b new ). R 5. Oblicz Ψ b ). i ( new 6. Wyznacz routery ze wzrostem przepustowości. 7. R R Ψ (b) Ψ b ). i i ( new Przyjmując oznaczenia: m liczba routerów, wierzchołków grafu. l k (b) liczba tras komunikacji dla pary routerów ( k k R R2, ), k r. l * (b) całkowita liczba występujących tras komunikacji rozumiana jako l ~ (b) - liczba tras aktywnych, tj. tras, po których przesyłany jest ruch sieciowy. ^ ( r * l ( b) = l k ( b). d t k q ( b)) - średnia długość trasy (b), rozumiana jako średnia arytmetyczna wyliczona z t k q długości wszystkich istniejących tras w optymalizowanej sieci, przy czym długość trasy, rozumiana jest jako liczba łączy wchodzących w jej skład. n liczba łączy w optymalizowanej sieci. O Ψ (m,n,b) złożoność obliczeniowa algorytmu wyznaczania przepustowości środowiska sieciowego (Algorytm 3). O R (m,b) złożoność obliczeniowa operacji wyznaczania przepustowości routerów. k = Liczba operacji prostych dla poszczególnych kroków Algorytmu 5 przedstawia się następująco: krok - m operacji; ^ ^ ~ k * k n krok 2 - OΨ ( m, n, b) = l ( b) *(2 * m + d( tq ( b)) + ) + l ( b) * d( tq ( b)) *( + ) + n 2 operacji; krok 3 operacja; a. m operacji; b. operacja; krok 4 0 (konsekwencja operacji wykonanej w kroku 3) lub a. 4 operacje;

137 b. operacja; i. m operacji; ii. operacja; k 3* d( t ( )) ~ q b krok 5 - m * l ( b) * ( + ) ; 4 2 krok 6 m operacji; krok 7 m operacji. ^ Mając na uwadze stopień skomplikowania wzorów, pewnych wyjaśnień mogą wymagać kroki 2 i 5, a mianowicie. Obliczenie nowej wartości Ψ(b) składa się z następujących etapów: etap - wyznaczenie tablic routingu poszczególnych routerów; etap 2 - wyznaczenie tras aktywnych; etap 3 - wyznaczenie dla każdego łącza liczby tras w których to łącze występuje; etap 4 - wyznaczenie dla każdego łącza jego efektywnej przepustowości; etap 5 - wyznaczenie przepustowości każdej z aktywnych tras; etap 6 - wyznaczenie Ψ(b) jako sumy przepustowości wszystkich aktywnych tras. Złożoność poszczególnych etapów wyznaczania Ψ(b) jest następująca: etap - m *(2 * l ~ ( b)) ; * k etap 2 - l ( b)* d( t ( b)) etap 3 - n * l etap 4 - n ; * ^ q ; ( b) * d( t 2 ^ k q ~ k etap 5 - l ( b) * d( t ( b)) etap 6 - l ~ ( b ). ^ q ; ( b)) ; Po zsumowaniu i zredukowaniu wyrazów podobnych dostajemy: O Ψ ( m, n, b) = l ~ ( b) *(2 * m + d( t Oto szczegółowy opis poszczególnych etapów: ^ n ( b)) *( + ) 2 ^ k * k q ( b)) + ) + l ( b) * d( tq + n (4.9) Etap - polega na wyznaczeniu dla każdego routera R i jego tablicy routingu. Złożoność tej operacji wynosi 2 * l ~ ( b), gdzie obliczenie iloczynu c opt * α i * β i ze wzoru (2.2) wymaga wykonania dwóch operacji i jest wykonywane dla każdej aktywnej trasy, czyli ~ l razy

138 * k Etap 2 - czyli wyznaczenie tras aktywnych ma złożoność l ( b) * d( t ( b)), co wynika stąd, że dla każdej trasy (b) t k q należy sprawdzić czy wszystkie jej łącza w liczbie d t k q ( b)) są aktywne. Etap 3 - polega na wyznaczeniu dla każdego łącza tras (b) ^ ( e j E ^ q ^ ( liczby jego wystąpień w każdej z t k q o średniej długości d t k q ( b)). Otrzymany wynik jest dzielony przez, dwa dlatego, że łącze może wystąpić na danej trasie tylko raz, a średnio będzie to w połowie jej ^ ( długości d t k q ( b)). Etap 4 - czyli wyznaczenie dla każdego łącza e j E jego efektywnej przepustowości sprowadza się do jednej operacji polegającej na podzieleniu nominalnej przepustowości łącza przez liczbę tras, w których łącze to występuje. Złożoność tego etapu wynosi n *. Etap 5 - polega na wyznaczeniu dla każdej aktywnej trasy t k q (b) łącza o minimalnej przepustowości (dokładniej mówiąc wartości przepustowości tego łącza). Wykonać to można przez porównanie przepustowości wszystkich łączy w liczbie ~ k trasy. W konsekwencji złożoność tego etapu wynosi l ( b) * d( t ( b)) ^ D t wchodzących w skład danej q. Etap 6 - czyli wyznaczenie Ψ(b) posiada złożoność l ~ ( b ). Wynika to stąd, że obliczenie Ψ(b) odbywa się poprzez zsumowanie przepustowości wszystkich tras aktywnych, w tym celu należy wykonać l ~ ( b ) sumowań. Z kolei obliczając przepustowości routerów (krok 5), należy przyjąć pewne założenia. Założenia te odnoszą się do tego czy analizowany router występuje na danej trasie czy nie. Jeśli router na niej występuje to jego licznik przepustowości należy zwiększyć o przepustowość tej trasy (jedna operacja prosta), jeśli natomiast nie występuje to zwiększenie wspomnianego licznika nie jest wymagane. Dla potrzeb niniejszej pracy przyjęto założenia, że analizowany router występuje, na co drugiej trasie aktywnej. W świetle przyjętego założenia, wyznaczenie przepustowości routerów polega na sprawdzeniu dla każdego routera R i i wszystkich tras aktywnych l ~ ( b ) czy:. dany router występuje na analizowanej trasie, co wymaga ^ d( t k q ( b)) porównań (router 2 średnio zostanie znaleziony w połowie trasy), plus dodania przepustowości tej trasy do d( t k q ( b)) licznika przepustowości routera. W konsekwencji otrzymuje się + operacji. 2 ^

139 2. dany router nie występuje na analizowanej trasie, co wymaga sprawdzenia jej do ^ ( końca czyli wykonania d t k q ( b)) operacji. Reasumując, złożoność obliczania przepustowości routerów wynosi m * l ~ d( t ( b) *0.5* ( ^ k q uproszczeniu otrzymujemy: ( b)) + 2 ^ + d( t 2 k q ( b))), po zredukowaniu wyrazów podobnych i ^ k 3* d( t ( )) ~ q b OR ( m, b) = m * l ( b) *( + ) (4.0) 4 2 W celu wyznaczenia złożoności obliczeniowej całego algorytmu należy wprowadzić jeszcze dodatkowe oznaczenia. Pr( Ψ ( b ) Ψ k ( )) prawdopodobieństwo, że nowe Ψ(b) (wyznaczone w bieżącej iteracji b k algorytmu) jest nie gorsze niż poprzednie Ψ(b) (wyznaczone w poprzedniej iteracji), przy czym Ψ k (b) wartość Ψ(b) w iteracji nr k. k max liczba iteracji algorytmu. W świetle powyższych rozważań złożoność obliczeniowa algorytmu SW użytego do optymalizacji przepustowości środowiska sieciowego przedstawia się następująco: ^ ^ ~ k * k n O( m, n) = { + l ( b) *(2* m + d( tq ( b)) + ) + l ( b) * d( tq ( b)) *( + ) + n ( m + ) *[Pr( Ψk ( b)( Ψk ( b)) + ( Pr( Ψk ( b) Ψk ( b))) * (5 + Pr( E Y ))] + ^ k 3* d( t ( )) ~ q b * l ( b) * ( + ) + 2]}* k max + m (4.) 4 2 Po zredukowaniu wzoru (4.) zgodnie z (4.9) i (4.0) otrzymujemy: O ( m, n ) = { + O Ψ ( b ) + ( m + ) *[Pr( Ψ ( b ) Ψ ( b k k )) + + ( Pr( Ψ k (4.2) k ( b) Ψk ( b))) * (5 + Pr( E Y ))] + 2 * m + OV ( b)} * max

140 Złożoność metody SW O(m,n) S6 S n S6 7 m S Wykres 4. Złożoność metody SW. 4.6 Podsumowanie W rozdziale tym został przedstawiony szczegółowy opis zastosowanej metody badawczej. Mając na uwadze fakt, że symulowane wyżarzanie nie jest metodą dedykowaną do optymalizacji przepustowości sieci komputerowej, należało wprowadzić pewne modyfikacje, które zostały szczegółowo opisane w podrozdziale 4.2. Pewnego rodzaju konkluzją przedstawionych wcześniej opisów i modyfikacji jest podrozdział 4.3. W podrozdziale tym znajduje się dokładny opis, ilustrowany pseudokodem oraz schematem blokowym, zmodyfikowanego algorytmu, który został użyty do przeprowadzenia badań. Ponadto rozdział zawiera wyprowadzenie wzoru na złożoność obliczeniową zastosowanego algorytmu, wraz ze szczegółową analizą poszczególnych jego składowych. Wracając do wzmiankowanych badań, zostały one wykonane według z góry przyjętych scenariuszy. Na scenariusz taki składa się: topologia badanej sieci, zastosowany schemat schładzania, temperatura początkowa, liczba iteracji algorytmu, warunek zatrzymania algorytmu. Scenariuszom badawczym został poświęcony osobny podrozdział

141 Rozdział 5 Wyniki przeprowadzonych badań W niniejszym rozdziale znajdują się wyniki badań optymalizacyjnych przeprowadzonych z wykorzystaniem metody przybliżonej, czyli zmodyfikowanego algorytmu SW. Znajdują się tu także wyniki optymalizacji przepustowości otrzymane z zastosowaniem metody dokładnej tj. programowania liniowego, przy użyciu opisanego w podrozdziale 4.4 programu Premium Solver V9.0. Na podstawie uzyskanych obiema metodami wyników, porównano efektywność metody symulowanego wyżarzania z zastosowaną metodą dokładną. Porównanie to, a także inne wnioski i dyskusja otrzymanych wyników badań znajdują się w rozdziale 6. Bieżący rozdział zakończony jest krótkim podsumowaniem. 5. Wyniki otrzymane metodą symulowanego wyżarzania Badania przeprowadzono dla topologii sieciowych przedstawionych na rys. 4.3, 4.4 oraz 4.5. Podczas badań, jako warunek zatrzymania przyjęto osiągnięcie przez algorytm temperatury poniżej jednego stopnia. Poszczególne badania zostały przeprowadzone według scenariuszy zawartych w tabeli 5.. Numer scenariusza Tabela 5.. Scenariusze przeprowadzonych badań. Schemat schładzania Temperatura początkowa Liczba iteracji algorytmu bez zmiany temperatury Logarytmiczny 00 2 Logarytmiczny Logarytmiczny Logarytmiczny Logarytmiczny Logarytmiczny Liniowy 00 8 Liniowy Liniowy Liniowy Liniowy Liniowy Geometryczny (a=0.99) 00 4 Geometryczny (a=0.99) Geometryczny (a=0.99) Geometryczny (a=0.99) Geometryczny

142 (a=0.99) Geometryczny (a=0.99) Geometryczny (a=0.95) Geometryczny (a=0.95) Geometryczny (a=0.95) Geometryczny (a=0.95) Geometryczny (a=0.95) Geometryczny (a=0.95) Wyniki otrzymane dla topologii z rys. 4.3 zostały zamieszczone w tabelach 5.2, 5.3 oraz 5.4, natomiast dla topologii z rys w tabelach 5.5, 5.6 i 5.7. W tym miejscu należy wyjaśnić, że dla każdego scenariusza zostało wykonanych pięć niezależnych pomiarów. Z każdego zbioru tych pomiarów została wyznaczona wartość maksymalna (Ψ max (b)) tabele 5.2 i 5.4 oraz średnia arytmetyczna (Ψ śr (b)) tabele 5.3. i 5.5. Numer scenariusza Tabela 5.2. Wartości Ψmax(b) otrzymane dla topologii z rys Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s]

143 Wyliczenie wartości średnich uzasadnione jest występowaniem różnic między wartościami przepustowości środowiska sieciowego wyznaczonymi przez algorytm przy wielokrotnych uruchomieniach dla tego samego scenariusza testowego. Wartości przedstawione w tabeli 5.3 zostały zaokrąglone do trzeciego miejsca po przecinku. Numer scenariusza Tabela 5.3. Wartości Ψśr(b) otrzymane dla topologii z rys Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Wartości parametrów beta otrzymane dla poszczególnych scenariuszy testowych zostały przedstawione w tabeli 5.4. Parametry te są przypisane do poszczególnych routerów w badanej topologii sieciowej w następujący sposób: β do routera, β 2 do routera2, itd. Wartości zamieszczone w tabelach 5.4 i 5.7 należy rozumieć jako zestawy parametrów konfiguracyjnych poszczególnych routerów wchodzących w skład badanych topologii sieciowych, dla których w odpowiednich przypadkach testowych otrzymano największe wartości przepustowości środowiska sieciowego. Wzmiankowane współczynniki mają wpływ na to, jakie trasy są zamieszczane w tablicach routingu odpowiadających im routerów. W związku z powyższym, wzrost wartości współczynnika beta skutkuje zwiększeniem liczby tras, przez które dany router przesyła ruch sieciowy. Ponadto warto dodać, że wartości parametrów beta zostały wyznaczone przez algorytm SW i nie podlegały żadnym modyfikacjom czy korektom

144 Tabela 5.4. Wartości parametrów beta otrzymane dla poszczególnych scenariuszy dla topologii z rys Numer scenariusza Beta Beta2 Beta3 Beta4 Beta5 Beta6 Beta7 Beta8 Beta9 Beta

145 Numer scenariusza Tabela 5.5. Wartości Ψmax(b) otrzymane dla topologii z rys Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Ψ max (b) [Mb/s] Numer scenariusza Tabela 5.6. Wartości Ψśr(b) otrzymane dla topologii z rys Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s] Numer scenariusza Ψ śr (b) [Mb/s]

146 Tabela 5.7. Wartości parametrów beta otrzymane dla poszczególnych scenariuszy dla topologii z rys Numer scenariusza Beta3 Beta4 Beta5 Beta Ponieważ routery i 2 posiadają jedynie po dwa aktywne interfejsy, więc równoważenie obciążenia na tych routerach jest bezzasadne, a w konsekwencji nie zostały one uwzględnione w tabeli 5.4. Dokładniejsze wyjaśnienia dotyczące bezzasadności stosowania równoważenia obciążenia w tego typu przypadkach znajdują się w podrozdziale

147 Czasy pracy algorytmu dla dwóch przebadanych topologii sieciowych są podobne. Natomiast czasy te dla różnych schematów schładzania w znacznym stopniu się różnią. Dokładne pomiary czasu działania algorytmu zostały wykonane jedynie dla wybranych scenariuszy. Brak konieczności dokładnego pomiaru czasu można umotywować tym, że we wszystkich badaniach algorytm znajdował najlepsze rozwiązanie już w pierwszej minucie pracy. Należy podkreślić, że czas obliczeń w sposób istotny zależy od przyjętego schematu schładzania. I tak, dla schematu liniowego czas ten (na komputerze wyposażonym w procesor.73 GHz, GB pamięci operacyjnej i system Windows XP) to pojedyncze sekundy, dla schematu geometrycznego od około 0 sekund do kilku minut (zależnie od temperatury początkowej). Z kolei dla schematu logarytmicznego czas ten zawiera się w przedziale od pojedynczych minut do ponad 24 godzin. Tak duża rozpiętość czasów wynika z dwóch powodów. Po pierwsze, przy temperaturze początkowej równej 0000 stopni, liczba iteracji algorytmu jest sto razy większa niż przy temperaturze początkowej równej (wynoszącej) 00 stopni. Po drugie, czas pracy algorytmu jest zależny od kształtu funkcji użytej w schemacie schładzania. Dla przykładu, wartości funkcji logarytmicznej wzrastają coraz wolniej wraz ze wzrostem wartości jej argumentów, co w konsekwencji przekłada się na wydłużenie czasu działania algorytmu. Dodatkowo, poza przetestowanymi scenariuszami, przebadany został inny schemat schładzania polegający na obniżaniu temperatury o jeden stopień z każdą iteracją algorytmu (schemat iteracyjny 2 ). Uruchamiając algorytm z temperaturą początkową równą sto stopni otrzymuje się rezultaty nie gorsze niż w innych scenariuszach. Przyjmując wspomnianą wartość temperatury początkowej i liniowy schemat schładzania, dla topologii z rys. 4.3 otrzymano średni czas pracy algorytmu równy 540 ms, zaś dla topologii z rys. 4.4 czas ten wynosił 5.5 ms. Dla trzeciej topologii przedstawionej na rys. 4.5 przeprowadzono badania z zastosowaniem iteracyjnego schematu schładzania oraz temperatury początkowej równej sto stopni. W wyniku otrzymano wartość przepustowości równą 2.5 Gb/s oraz czas pracy algorytmu około 6-7 ms. Wniosek z otrzymanych wyników jest następujący, ponad dziewięćdziesięciokrotny wzrost liczby tras (2276 dla topologii z rys 4.2 i 25 dla topologii z rys. 4.4) analizowanych przez algorytm przekłada się na niespełna trzydziestopięciokrotny wzrost czasu działania algorytmu. Dodatkowo warto zauważyć, że liczba tras aktywnych, którymi przesyłane były 2 Termin własny autora

148 dane w konfiguracjach wyznaczonych przez algorytm była stosunkowo mała i nie przekraczała dziesięciu dla dowolnej pary komunikujących się ze sobą sieci (hostów). Inne szczegółowe wnioski zostały przedstawione w rozdziale 6. Warto podkreślić, że dla 50 uruchomień algorytmu, iteracyjnego schematu schładzania oraz temperatury początkowej 00 stopni, najlepszy uzyskany wynik to Mb/s, co jest także najlepszym wynikiem spośród wszystkich badań przeprowadzonych dla pierwszej topologii sieciowej. Analogiczne pomiary dla drugiej topologii nie dały rezultatów lepszych niż Mb/s. Dodatkowo warto zwrócić uwagę na wyniki pewnej obserwacji, a mianowicie liczba iteracji, w których występuje poprawa istniejącego rozwiązania (wzrost wartości funkcji celu) jest stosunkowo mała i dla temperatury początkowej 00 stopni oraz iteracyjnego schematu schładzania, nie przekroczyła 0% w stosunku do wszystkich wykonanych iteracji oraz obydwu przebadanych topologii. Na wykresach 5., 5.2 oraz 5.3 zostały w sposób graficzny przedstawione wyniki optymalizacji przepustowości sieciowej dla topologii z rys. 4.3, 4.4 oraz 4.5. Słupek pierwszy przedstawia wartość Ψ(b) wyliczoną bez równoważenia obciążenia. Słupek drugi - Ψ(b) z równoważeniem typu RK. Słupek trzeci - maksymalną wartość Ψ(b) uzyskaną podczas badań na podstawie przyjętych scenariuszy (z równoważeniem obciążenia typu NK). Słupek 4 - maksymalną wartość Ψ(b) uzyskaną podczas 50 uruchomień algorytmu z temperaturą początkową sto stopni i iteracyjnym schematem schładzania. Niewątpliwym wnioskiem z powyższych obserwacji jest występowanie wzrostu przepustowości po włączeniu równoważenia obciążenia typu RK oraz dalszy wzrost po włączeniu równoważenia typu NK. Wyniki optymalizacji przepustowości dla topologii pierwszej Przepustowość [Mb/s] Wykres 5.. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyżarzania dla topologii pierwszej

149 Wyniki optymalizacji przepustowości dla topologii drugiej Przepustowość [Mb/s] Wykres 5.2. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyżarzania dla topologii drugiej. Wyniki optymalizacji przepustowości dla topologii trzeciej Przepustowość [Mb/s] Wykres 5.3. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyżarzania dla topologii trzeciej. 5.2 Wyniki badań przeprowadzonych z wykorzystaniem metody dokładnej Badania przepustowości z zastosowaniem metody dokładnej tj. PL, zostały przeprowadzone przy użyciu oprogramowania Premium Solver V9.0. Optymalizacja została przeprowadzona zgodnie z zadaniem zdefiniowanym w podrozdziale 3.2. Ponieważ w swojej oryginalnej postaci zadanie to odnosi się jedynie do grafów skierowanych, wiec w celu implementacji grafu nieskierowanego wprowadzono pewne modyfikacje. Modyfikacje te polegają na przedstawieniu każdego łącza sieciowego grafu skierowanego, oznaczonych jako e j jako dwóch przeciwnie zwróconych krawędzi + e j oraz e j. Jednocześnie wprowadzono następujące ograniczenie: suma wykorzystywanych przepustowości dwóch przeciwnie skierowanych

150 krawędzi nie może przekraczać nominalnej przepustowości łącza, które krawędzie te reprezentują, co można zapisać jako: e j E π + π π + j j j (5.) Warto podkreślić, że zastąpienie jednej krawędzi dwoma nie przekłada się na sformułowanie zadania optymalizacji, lecz ma wpływ na rozmiar macierzy reprezentującej topologię optymalizowanej sieci. W konsekwencji takie zastąpienie ma wpływ na czas przeprowadzania optymalizacji. Poniżej znajdują się uzyskane wyniki badań przeprowadzonych z wykorzystaniem metody dokładnej. Dla pierwszej topologii tj. przedstawionej na rys. 4.3, otrzymano wartość Ψ(b) równą 20 Mb/s. Natomiast w zastosowaniu do drugiej topologii sieciowej tj. przedstawionej na rys. 4.4, otrzymano wartość Ψ(b) równą 90 Mb/s. Analogicznie dla topologii z rys. 4.5, otrzymano wartość Ψ(b) równą 3 Gb/s. Czas działania solvera dla topologii z rys. 4.3 wynosił około dwóch sekund, zaś dla topologii z rys. 4.4 poniżej jednej sekundy. Natomiast dla topologii z rys. 4.5 plasował się w przedziale od jednej do dwóch sekund. Warto zaznaczyć, że zastosowane narzędzie umożliwia pomiar czasu działania z dokładnością do pojedynczej sekundy, a uzyskanie większej dokładności pomiarowej nie jest konieczne. Pozostając przy metodzie dokładnej, warto zwrócić uwagę na pewien fakt dotyczący liczby iteracji, a mianowicie dla topologii z rys. 4.3 algorytm wykonał 32 iteracje, natomiast dla topologii z rys. 4.4 liczba ta wynosiła zaledwie 7. Wniosek z tego badania jest stosunkowo prosty, zwiększenie liczby routerów z 4 (topologia z rys. 4.4) do 0 (topologia z rys. 4.3) przełożyło się na ponad cztero i półkrotne zwiększenie liczby iteracji algorytmu. Natomiast dokładną zależność złożoności obliczeniowej metody dokładnej jako funkcji liczby elementów sieci przedstawia wzór (6.9). Dokładna analiza wyników uzyskanych za pomocą metod SW oraz PL znajduje się w rozdziale 6. W rozdziale tym znajdują się również szczegółowe wnioski z powyższych obserwacji. Natomiast w tym miejscu warto dodać, że dla przyjętej charakterystyki ruchu sieciowego oraz sposobu dostępu do medium, otrzymane wyniki to jednocześnie górne ograniczenia przepustowości dla badanych topologii

151 5.3 Podsumowanie Dokładna dyskusja uzyskanych wyników badań, a także płynące z nich wnioski znajdują się w rozdziale 6, natomiast istotne jest, że badania zakończyły się pomyślnie (wszystkie zaplanowane badania zostały wykonane), a otrzymane wyniki należy uznać za wysoce zadowalające tzn. zgodne z oczekiwanymi. W konsekwencji, dla analizowanych przypadków, słuszność głównej tezy tej pracy została potwierdzona. Ponadto, potwierdziła się także reguła mówiąca, że metodę symulowanego wyżarzania należy stosować w połączeniu z tzw. wielostartem

152 Rozdział 6 Analiza uzyskanych wyników W rozdziale tym zostanie przeprowadzona szczegółowa analiza badań nad optymalizacją przepustowości środowiska sieciowego z wykorzystaniem metody symulowanego wyżarzania. Analiza ta obejmuje następujące aspekty: Porównanie wyników uzyskanych za pomocą metody symulowanego wyżarzania oraz programowania liniowego; Porównanie czasów działania badanego algorytmu SW oraz metody dokładnej, czyli PL; Oszacowanie oraz porównanie złożoności obliczeniowej algorytmu SW ze złożonością metody dokładnej, w tym przypadku Simplex, oraz innymi wybranymi metodami heurystycznymi; Ocena zasadności stosowania algorytmów heurystycznych (na przykładzie algorytmu SW) do badanego zagadnienia; Krótkie omówienie niezawodności proponowanego rozwiązania. Dodatkowo w bieżącym rozdziale znajduje się opis zalet i wad algorytmu 3 (służącego do wyliczania Ψ(b)), wraz z prostym przykładem działania oraz krótką analizą porównującą jego złożoność ze złożonością algorytmu dokładnego. Rozdział kończy krótkie podsumowanie zawierające najważniejsze wnioski oraz obserwacje powstałe po przeprowadzonych badaniach. 6. Analiza uzyskanych wyników przy braku równoważenia obciążenia, oraz z równoważeniem typu RK i NK. Podczas badań przeprowadzonych dla topologii sieciowej z rys. 4.3 z włączonym równoważeniem typu NK otrzymano maksymalną wartość Ψ(b) równą Mb/s. Dla równoważenia typu RK Ψ(b) wyniosła 33 Mb/s, zaś bez równoważenia - 00 Mb/s. Jak widać z otrzymanych wyników, włączenie równoważenia obciążenia typu NK poprawiło przepustowość sieci o około 56% w porównaniu do równoważenia typu RK i aż o ponad 07% w porównaniu z przepustowością sieci bez równoważenia obciążenia. Natomiast dla topologii przedstawionej na rys. 4.4 w obydwu przypadkach otrzymano wzrost przepustowości o nieco ponad 0%. Przechodząc do trzeciej topologii tj. z rys. 4.5, z włączonym równoważeniem typu NK otrzymano maksymalną wartość Ψ(b) równą 2.5 Gb/s

153 Dla równoważenia typu RK Ψ(b) wyniosła 2 Gb/s, zaś bez równoważenia Gb/s. Jak widać z otrzymanych wyników, włączenie równoważenia obciążenia typu NK poprawiło przepustowość sieci o 25% w porównaniu do równoważenia typu RK i aż o 50% w porównaniu z przepustowością sieci bez równoważenia obciążenia. Wniosek z powyższych obserwacji może być taki, że wraz ze wzrostem złożoności topologii sieci, włączenie równoważenia typu NK skutkuje coraz większym wzrostem jej przepustowości. Mając na uwadze rozmiary badanych sieci oraz ich złożoność otrzymane wyniki należy uznać za zadowalające, i co równie istotne, uzyskane w czasie rzeczywistym. Odnosząc się do poszczególnych scenariuszy badań i otrzymanych wyników warto zauważyć, że wraz ze wzrostem złożoności sieci wyniki te coraz bardziej się różnią. Dla topologii z rys. 4.4 algorytm zawsze wyznaczał wartość maksymalną (największą uzyskaną podczas badań) przynajmniej raz na pięć uruchomień i to bez względu na przyjęty scenariusz. Natomiast dla bardziej złożonej topologii tej z rys. 4.3, różnice pomiędzy wynikami dla poszczególnych scenariuszy dochodziły do niemalże 20 %. Kolejnym istotnym wnioskiem jest to, że wybór schematu schładzania, a w konsekwencji czasu działania algorytmu, ma mały wpływ na otrzymywane wyniki. Dowodem na to może być fakt, że najlepszy wynik dla topologii z rys. 4.3 otrzymano dla schematu najszybszego, czyli iteracyjnego. W konsekwencji można wysnuć hipotezę, że długość czasu pracy algorytmu w małym stopniu przekłada się na jakość otrzymywanych wyników. Natomiast w sposób bardzo znaczący na wspomnianą jakość przekłada się liczba uruchomień algorytmu, czyli omawiany już wcześniej wielostart. Nie było to przedmiotem szczegółowych badań, lecz zaobserwowano, że algorytm w około 90% przypadków wyznacza najlepsze rozwiązanie (najlepsze dla jednego uruchomienia) w pierwszych 00 iteracjach (i to dla obydwu przebadanych topologii). Wniosek z tego może być następujący: należy tak wyliczyć temperaturę początkową i dobrać schemat schładzania, aby temperaturę końcową osiągnąć po około iteracjach. Takie podejście, choć jednorazowo zajmuje pewien czas to w konsekwencji w znaczny sposób skraca czas pracy algorytmu (jednego jego uruchomienia). W konsekwencji, pozostaje więcej czasu na kolejne jego uruchomienia ze wcześniejszych ustaleń wynika, że opisane rozwiązanie ma działać w czasie rzeczywistym, czyli wyznaczać rozwiązanie zanim zmienią się warunki implikujące to rozwiązanie. Reasumując warto podkreślić, że otrzymane wyniki potwierdzają przyjętą w pracy tezę badawczą, co w konsekwencji może stanowić motywację do dalszego twórczego rozwoju oraz doskonalenia zastosowanej metody

154 6.2 Czasy pracy algorytmu SW oraz metody dokładnej. Czas pracy algorytmu zależy od wartości następujących parametrów: temperatury początkowej, liczby iteracji bez modyfikacji temperatury oraz schematu schładzania. Rozpiętość czasów jest duża, od ułamków sekund do ponad godziny. Jednym z istotnych wniosków odnośnie czasów działania algorytmu jest to, że wartość uzyskiwanego wyniku nie jest zależna od tego czasu (dla różnych scenariuszy otrzymywano różne czasy i podobne wartości wyników). Przy zastosowaniu schematu liniowego metoda działa w czasie rzeczywistym, a dokładniej czas pracy algorytmu wynosi około 3 5 sekund. Omawiając czasy działania algorytmu SW nie sposób pominąć faktu, że przy zastosowaniu zaproponowanego schematu iteracyjnego i temperatury początkowej równej sto stopni, czas jego pracy dla topologii z rys. 4.3 wynosił średnio zaledwie 540 ms, a dla topologii z rys. 4.4 i 4.5 jedynie w okolicach ms. Na podstawie wykonanych pomiarów, można postawić hipotezę, że czas pracy algorytmu jest, (lecz słabo) zależny od złożoności sieci komputerowej. Porównując czasy zmierzone dla obydwu topologii, warto zauważyć, że wzrost liczby tras, po których może być przesyłany ruch sieciowy ponad 90 razy (2276 dla topologii z rys. 4.3 i 25 dla topologii z rys. 4.4.) skutkował wzrostem czasu działania algorytmu SW jedynie niecałe 35 razy (540/5.5). Przechodząc do metody dokładnej warto zwrócić uwagę na następujący fakt. Dla topologii z rys. 4.4 i 4.5 jej czas działania wynosił poniżej jednej sekundy, zaś metody SW ms. Natomiast dla bardziej złożonej topologii tj. przedstawionej na rys. 4.3, czas działania metody dokładnej jest już blisko cztery razy dłuższy (około dwie sekundy w porównaniu do 540 ms) niż dla metody SW. Wniosek płynący z porównania czasów działania obydwu wykorzystanych metod jest dość klarowny, a mianowicie już dla tak niedużych topologii jak z rys. 4.3 metoda dokładna działa znacznie wolniej niż metoda SW. Więcej informacji i wniosków na temat porównania obydwu metod w kontekście badanego zagadnienia znajduje się w podrozdziale Złożoność metody Simplex. W ogólnym przypadku metoda Simpleks ma złożoność wykładniczą. Wynika to z faktu, że w najgorszym razie do znalezienia rozwiązania optymalnego, wymagane jest sprawdzenie µ wszystkich rozwiązań dopuszczalnych, bo właśnie tyle w przypadku pesymistycznym η może być układów liniowo niezależnych wektorów bazowych [32], gdzie

155 µ liczba ograniczeń w postaci równań lub nierówności, η liczba argumentów (zmiennych) funkcji celu. Natomiast do znalezienia rozwiązania potrzebnych jest przeciętnie od 2 µ do 3 µ iteracji [0][][2]. Poruszając tego typu zagadnienie nie sposób pominąć faktu, że zadanie przedstawione w podrozdziale 3.2 posiada przynajmniej dwie dość istotne wady. Pierwszą z nich jest to, że w celu implementacji grafu nieskierowanego należy wprowadzić pewne modyfikacje, które dokładnie zostały opisane w podrozdziale 5.2. Drugą wadą jest brak możliwości przeprowadzenia optymalizacji przepustowości sieci komputerowej w sytuacji kiedy pewien host (a dokładniej router będący dla niego bramą) jest jednocześnie nadawcą i odbiorcą pewnej ilości informacji. Zgodnie z oznaczeniami przyjętymi w rozdziale 3, rzyjmijmy, że w sytuacji przedstawionej na rys. 6.. komunikacja odbywa się w następujący sposób: H 2 pobiera od H d k danych; H 3 pobiera od H d k danych; H 3 pobiera od H 2 d k danych. Rys. 6.. Przykładowa sieć komputerowa z routerami brzegowymi. W opisanej powyżej sytuacji z R jest wysyłane 2δ k danych, R 2 odbiera δ k 2 danych oraz taką samą ilość wysyła, natomiast R 3 pobiera 2δ k 3 danych. Zgodnie z ograniczeniem przedstawionym w (3.4), dla wszystkich routerów wewnętrznych tj. wszystkich za wyjątkiem wejściowych i wyjściowych, każdy z nich powinien wysyłać i odbierać tyle samo danych. W konsekwencji założenia dotyczące wektora ruchu sieciowego tj.: δ ki = d k jeśli (R i jest węzłem początkowym pary k), δ ki = d k jeśli (R i jest węzłem końcowym

156 pary k), w pozostałych przypadkach δ = 0, są oczywiście spełnione wewnątrz elipsy ki symbolizującej konkretny obszar OSPF (routery wewnętrzne). Przechodząc do routerów brzegowych tj. R, R 2 i R 3, nie trudno zaobserwować, że: δ k = 2 k ; δ k 2 = d k + d k = 0; δ k3 = d 2d. W konsekwencji router R 2 nie będąc routerem k wewnętrznym wysyła tyle samo danych ile odbiera, czyli spełnia warunki routera wewnętrznego i tak też zostanie podczas przeprowadzania optymalizacji potraktowany. W efekcie, optymalizacja wykonana zgodnie z modelem przedstawionym w podrozdziale 3.2 i wyżej założoną charakterystyką ruchu sieciowego da rezultaty zgoła odmienne od oczekiwanych. Jej wynikiem będzie pominięcie routera 2 i takie wyznaczenie wartości optymalnych, jakby zadanie sprowadzało się jedynie do wymiany danych w ilości 2d w tylko pomiędzy routerami R i R 3, co oczywiście jest sprzeczne z przyjętym założeniem odnośnie charakterystyki ruchu sieciowego. Wadę tę można obejść np. poprzez wprowadzenie tzw. routerów wirtualnych. Idea takiej koncepcji polega na podziale tych routerów brzegowych, które zarówno wysyłają dane do sieci (a dokładniej optymalizowanego obszaru) jak i je z tej sieci odbierają (przykładem może być router R 2 z rys. 6.) na α routerów wirtualnych. Przy czym symbol v i oznacza liczbę routerów wirtualnych odpowiadającą routerowi rzeczywistemu R i. Liczba routerów wirtualnych powinna być równa sumie liczby wirtualnych routerów wejściowych (oznaczonych jako + v i liczbie routerów wyjściowych (oznaczonych jako ), od których dany router pobiera dane oraz v i ), czyli tych do których router dane wysyła. Przy zachowaniu powyższych oznaczeń, liczbę routerów wirtualnych odpowiadającą routerowi rzeczywistemu można zapisać następująco: + i + i m v = v v (6.) Analogicznie należy postąpić z łączem (łączami) podłączonymi do podzielonego routera. Każdy router wirtualny powinien posiadać jeden interfejs wewnątrz optymalizowanego obszaru oraz jeden interfejs zewnątrz tego obszaru. W omawianym modelu łącza prowadzące na zewnątrz optymalizowanego obszaru (sieci) nie są uwzględnione i z tej przyczyny zostały pominięte w dalszej części tego podrozdziału. Natomiast to jak interfejs jest położony względem wirtualnego routera zależy od tego czy dla danej komunikującej się pary router ten jest routerem wysyłającym dane interfejs skierowany od routera, lub odbierającym dane interfejs skierowany do routera. Przyjmijmy następujące oznaczenia: + e j - łącze skierowane do routera wirtualnego; e j - łącze skierowane od routera wirtualnego. i i

157 Ponadto dość oczywistym jest fakt, że suma przepustowości interfejsów wychodzących z routerów wirtualnych plus suma przepustowości interfejsów do nich wchodzących nie może być większa niż nominalna przepustowość fizycznego interfejsu nieskierowanego, co można zapisać jako: e j E m i= π + j + m i= π j π j (6.2) Jest oczywiste, że wprowadzenie do omawianego modelu modyfikacji mających na celu dostosowanie go do rzeczywistych potrzeb i warunków, pociąga za sobą wzrost i tak już dużej jego złożoności obliczeniowej. Złożoność ta została w podrozdziale 3.2 zakwalifikowana do klasy problemów typu NP-trudnych. Natomiast próba oceny wpływu wprowadzonej modyfikacji na złożoność obliczeniową omawianego modelu została przedstawiona poniżej. Rozpatrzmy sieć komputerową reprezentowaną jako graf nieskierowany G = ( m, n) składający się z m wierzchołków (routerów) oraz n krawędzi (łączy). Ponadto przyjmijmy, że graf ten posiada ~ m m wierzchołków reprezentujących routery wejściowe lub wyjściowe, zwanych dalej wierzchołkami (routerami) zewnętrznymi (lub brzegowymi), a także ~ n n krawędzi łączących routery zewnętrzne z wewnętrznymi. W celu kompletnego przedstawienia omawianego zagadnienia należy przyjąć jeszcze jedno całkowicie naturalne założenie, a mianowicie, że każdy host podłączony do tej sieci może komunikować się z dowolnym innym także do niej podłączonym. Konsekwencją tego założenia jest podzielenie ~ m routerów zewnętrznych na ~ ~ ( ~ m z = m m ) (6.3) wirtualnych routerów zewnętrznych. Zadanie przedstawione w podrozdziale 3.2 posiada m wierzchołków (routerów) oraz n krawędzi (łączy), natomiast po wprowadzeniu modyfikacji mających na celu zapewnienie komunikacji dwukierunkowej pomiędzy dowolnymi hostami jednocześnie, otrzymujemy następujące wzory na: Liczbę węzłów m * ~ ~ ~ = m( m ) + ( m m) (6.4) oraz liczbę łączy n * ~ ~ ~ ~ = m( m ) n+ 2( n n) (6.5)

158 ~ Przyjmując konkretne wartości liczbowe np. m = 0, m = 0. 5m, n = 45, ~ n = 22 otrzymujemy: ~ m = 5(5 ) = 20 routerów wirtualnych oraz m m = 0 5 = 5 routerów rzeczywistych, co z w sumie daje 25 wierzchołków. Przechodząc do krawędzi, otrzymujemy: po obliczeniu m * = 5*(5 ) * *(45 22) m * = 486 Reasumując, dla tak niewielkiej sieci składającej się tylko z 0 routerów, wprowadzenie modyfikacji mających na celu dostosowanie zadania przedstawionego w podrozdziale 3.2 do warunków rzeczywistych spowodowało dwu i półkrotny wzrost liczby routerów oraz prawie jedenastokrotny wzrost liczby łączy. Mając na uwadze fakt, że analizowany model należy do problemów klasy NP.-trudnych, wprowadzenie modyfikacji mających na celu dostosowanie go do realnych potrzeb prawdopodobnie spowoduje, że rozwiązanie to przestanie działać w czasie rzeczywistym. Powracając do złożoności metody Simplex, należy zaznaczyć, że w 979 roku L. G. Chaczijan [3], oraz w 984 roku N. Karmarkar [5] niezależnie przedstawili algorytmy o złożoności wielomianowej służące do rozwiązywania problemów z zakresu programowania liniowego. Algorytmy te posiadają jednak pewną wadę, a mianowicie przewagę nad metodą Simpleks uzyskują dopiero przy problemach posiadających około pięciu tysięcy zmiennych decyzyjnych oraz tysiąca ograniczeń, co czyni je mało przydatnym do optymalizacji przepustowości sieci komputerowych o rozmiarach obszaru OSPF. Przechodząc do omówienia złożoności metody Simplex nie sposób pominąć tak istotnej kwestii jak opis poszczególnych jej etapów (kroków). Kroki te zostały szczegółowo opisane w rozdziale 3, warto jednak wspomnieć, że są one następujące: krok 0 sprowadzenie zadania do postaci kanonicznej bazowej; krok wyznaczenie pierwszego rozwiązania bazowego dopuszczalnego; krok 2 sprawdzenie optymalności rozwiązania bazowego; krok 3 zastosowanie kryterium wejścia i wyjścia w celu poprawienia aktualnego rozwiązania bazowego; krok 4 wymiana wektorów w bazie nowe poprawione rozwiązanie bazowe (nowa postać tablicy simpleksowej); powrót do kroku 2. ~

159 Dodatkowo warto poruszyć kilka istotnych kwestii, a mianowicie krok 2 jest realizowany poprzez wyliczenie tzw. wskaźników optymalności. Liczba tych wskaźników jest równa liczbie zmiennych niebazowych, a wyznaczenie każdego z nich można potraktować jako pojedynczą operację prostą. Krok 3 składa się z wyboru zmiennej o najwyższym współczynniku optymalności jedna operacja prosta, obliczenie ilorazów kolejnych wyrazów wolnych przez odpowiadające im elementy kolumny związanej ze zmienną wchodzącą do bazy liczba operacji prostych jest zbliżona do liczby równań ograniczeń, wymiana odpowiednich zmiennych jedna operacja. Natomiast wyliczenie tablicy simpleksowej (kroki oraz 4) wymaga wykonania dwóch działań tj. wyznaczenia macierzy odwrotnej dla macierzy tablicy Simplex związanej z nowym układem zmiennych - O(m ) operacji, oraz pomnożenia jej przez macierz tablicy Simpleks związaną z aktualną bazą O(m ) operacji. Pewnego wyjaśnienia może wymagać czynnik O(m ). Otóż w celu zarówno utworzenia macierzy odwrotnej jak i pomnożenia dwóch macierzy przez siebie, przy zastosowaniu najszybszego z obecnie znanych algorytmów tj. algorytmu Coppersmith a-winograd a [08] [09] niezbędnym jest wykonanie m mnożeń, gdzie m (zgodnie z oznaczeniami przyjętymi w rozdziale 3) jest liczbą wierszy macierzy, a w analizowanym przypadku także liczbą nierówności lub równań ograniczających. Reasumując, w każdej iteracji metody Simplex liczba operacji prostych przedstawia się następująco: krok 0 m operacji; krok 2 m operacji; krok 2 m operacji; krok 3 + m + = 2 + m operacji; krok 4 2 m operacji. Po uwzględnieniu liczby iteracji algorytmu ε, złożoność jego działania może zostać wyrażona wzorem: O ( m, ε ) = m + 2m + ε *(3m + 2m ) (6.6)

160 Zlożonośc metody dokładnej O(m,eps) m S S6 S eps S6 Wykres 6.. Złożoność metody dokładnej. Tak jak już zostało wcześniej powiedziane, wyniki uzyskiwane za pomocą metody dokładnej są zależne od początkowych wartości zmiennych decyzyjnych, natomiast metoda SW powinna być stosowana w połączeniu z wielostartem. Jeśli przyjąć, że początkowe wartości zmiennych decyzyjnych są losowane z całego zbioru wartości dopuszczalnych, to wynik metody SW także jest zależny od początkowych wartości zmiennych decyzyjnych. W tej kwestii obydwie metody są do siebie podobne. 6.4 Porównanie złożoności innych wybranych metod heurystycznych i metody SW Mając na celu jak najbardziej pełne przedstawienie poruszanej tematyki, celowe jest porównanie złożoności metody SW ze złożonością wybranych algorytmów heurystycznych. Do celów porównania wybrano dwa popularne oraz szeroko opisywane w literaturze algorytmy tj. algorytm genetyczny oraz tabu search. Algorytm genetyczny można potraktować jako przedstawiciela grupy algorytmów wykorzystujących heurystyki populacyjne, opierające się na idei przeszukiwania zespołowego. Natomiast dla kontrastu, drugi wybrany do porównania algorytm tj. przeszukiwania z tabu nazywany jest algorytmem samotnego poszukiwacza. Wiele interesujących informacji na temat tych algorytmów, a także

161 innych algorytmów heurystycznych oraz ich zastosowania w dziedzinie informatyki znajduje się w [26][27][28][29][30][3]. Przechodząc do omówienia wybranych algorytmów najpierw przedstawię ich zapisy w pseudokodzie. Ogólny zwerbalizowany zapis algorytmu genetycznego przedstawia się następująco. Algorytm 6 start Algorytm_genetyczny() ustal_warunki_początkowe dla_każdego członków_populacji wykonaj ocen_dopasowanie_każdego_osobnika() koniec_dla_każdego powtarzaj wybierz_najlepiej_dopasowane_osobniki_do_reprodukcji() utwórz nowa_populacje() zastosuj_krzyżowanie() zastosuj_mutację() ocen_dopasowanie_każdego_osobnika() uaktualnij_warunek_stopu; dopóki (warunek_stopu) zwróć najlepsze_rozwiązanie koniec Przyjmując następujące oznaczenia: S populacja osobników (wektorów zmiennych decyzyjnych); x wektor zmiennych decyzyjnych algorytmu (osobnik populacji S) x S ; x * wektor najlepszych dotychczas wyznaczonych zmiennych decyzyjnych; φ(x) wartość funkcji oceny rozwiązania (zwanej także dopasowania lub energii); φ * najlepsza dotychczas uzyskana wartość funkcji oceny; k numer kolejnej iteracji algorytmu; k max maksymalna liczba iteracji algorytmu; select(x,φ * ) funkcja wybierająca najlepiej przystosowanych osobników (na podstawie najlepszej dotychczas uzyskanej wartości funkcji oceny); - 6 -

162 cross(x) funkcja przeprowadzająca krzyżowanie osobników; mut(x) funkcja przeprowadzająca mutację osobników; zapis algorytmu genetycznego przedstawić można następująco. start Algorytm_genetyczny() ustal x; x * x; φ * φ(x); k := 0; dla_każdego S wykonaj wyznacz φ(x) koniec_dla_każdego powtarzaj x := select(x,φ * ) x := cross(x) x := mut(x) dla_każdego S wykonaj wyznacz φ(x) jeżeli (φ(x) > φ * ) to φ * φ(x); x * x; koniec_jeżeli koniec_dla_każdego k := k+; dopóki (k<=k max ) zwróć x * koniec Algorytm 7 Stosując algorytm 7 do takiego samego zadania optymalizacji jak zastosowano algorytm SW, należy dokonać pewnych utożsamień. Mianowicie: pojedynczego osobnika można utożsamić z wektorem współczynników beta;

163 ocenę dopasowania osobnika x (wektora współczynników beta) można przeprowadzić z zastosowaniem funkcjonału określonego wzorem (3.3) tj. wartości Ψ(b). Wspomniany wektor jest zbudowany w taki sposób, że każda jego składowa przypisana jest do jednego routera z optymalizowanego obszaru sieci. Natomiast ocena dopasowania polega na wyznaczeniu różnicy pomiędzy maksymalną wyliczoną wartością Ψ(b), a wartością wyliczona dla konkretnego osobnika. Przechodząc do porównania złożoności obliczeniowych obydwu algorytmów warto przyjąć pewne założenia upraszczające. Po pierwsze, złożoność inicjalizacji początkowych warunków pracy obydwu algorytmów jest taka sama albo bardzo zbliżona. Po drugie rozważaniu należy poddać pojedynczą iterację algorytmu. Uzasadnieniem dla pierwszego założenia jest fakt, że inicjalizacja wartości początkowych parametrów pracy algorytmów wnosi w obydwu przypadkach pomijalnie mały przyczynek do ich pełnej złożoności obliczeniowej. Natomiast porównując zasadnicze sekcje składowe obydwu algorytmów takie jak: inicjalizacja, zasadnicza iteracja, sprawdzenie warunku stopu, widać znaczne ich podobieństwo, co można potraktować jako uzasadnienie założenia drugiego. Jednak należy mieć na uwadze fakt, że operacje występujące w części zasadniczej algorytmu genetycznego takie jak: wybór najlepiej przystosowanych osobników, krzyżowanie czy mutacja wymagają większej liczby obliczeń niż analogiczne operacje z części zasadniczej algorytmu SW, czyli sprawdzenie reguły Metropolisa czy wyznaczenie przepustowości routerów. Przechodząc do dokładniejszego porównania złożoności obliczeniowych, istotne jest to, że wyznaczenie wartości funkcji oceny (w tym przypadku wartości Ψ(b)) posiada największy wkład do wspomnianej złożoności wartość ta jest wyznaczana w każdej iteracji algorytmu i jest najbardziej złożoną (a co za tym idzie czasochłonną) jej częścią. W tym miejscu pojawia się główna (koncepcyjna) różnica pomiędzy działaniem algorytmu SW i algorytmu genetycznego. Algorytm SW operuje na jednym osobniku natomiast algorytm genetyczny do prawidłowego funkcjonowania potrzebuje całej ich populacji. Wyznaczając wartość funkcji oceny (wartość Ψ(b)) dla każdego osobnika, algorytm genetyczny posiada złożoność obliczeniową przynajmniej taką jak algorytm SW razy liczba osobników populacji. Innymi słowy złożoność algorytmu genetycznego jest znacząco większa, co czyni go w tym obszarze i w porównaniu z algorytmem SW zdecydowanie mniej przydatnym. Przed przedstawieniem pseudokodu algorytmu przeszukiwania z zakazem warto zaznaczyć, że algorytm ten posiada mnóstwo różnego rodzaju rozszerzeń oraz modyfikacji i podobnie jak

164 inne algorytmy heurystyczne, może stanowić przedmiot osobnej pracy. W związku z powyższym przedstawiony schemat wzmiankowanego algorytmu ma bardzo zgrubny charakter. W szczególności stosowana w nim reguła selekcji może sama w sobie być bardzo zaawansowaną strategią heurystyczną, co oczywiście przekłada się na złożoność obliczeniową algorytmu. Ogólny zwerbalizowany zapis algorytmu tabu search przedstawić można następująco. start Algorytm_tabu_search() ustal_warunki_początkowe powtarzaj wyzncz_sasiedztwo_x; uaktualnij T; ocen_nowe_rozwiązanie() uaktualnij_warunek_stopu; dopóki (warunek_stopu) zwróć najlepsze_rozwiązanie koniec Algorytm 8 Przyjmując dodatkowo następujące oznaczenia: T zbiór tabu; R S reguła selekcji nowych zmiennych decyzyjnych z sąsiedztwa obecnych (uwzględniająca kryteria aspiracji); N d (x,t) sąsiedztwo dynamiczne zmiennych decyzyjnych x, zależne od zbioru tabu T; Bardziej szczegółowy zapis algorytmu tabu search przedstawić można następująco. start Algorytm_tabu_search() ustal x; x * x; φ * φ(x); k := 0; powtarzaj x:=r S (x,n d (x,t)); Algorytm

165 T := T x; jeżeli (φ(x) > φ * ) to φ * φ(x); x * x; koniec_jeżeli k:= k+; dopóki (k<=k max ) zwróć x * koniec Stosując algorytm 9 do zadania optymalizacji przepustowości sieci komputerowej, podobnie jak w poprzednim przypadku, (tj. algorytmu genetycznego), należy dokonać pewnych utożsamień. Mianowicie: wektor zmiennych decyzyjnych algorytmu jest utożsamiany z wektorem współczynników beta; ocena wartości wektora zmiennych decyzyjnych jest przeprowadzana z zastosowaniem funkcjonału określonego wzorem (3.3) tj. wartości Ψ(b). Przechodząc do porównania złożoności obliczeniowych algorytmu SW (algorytmu 5) oraz algorytmu przeszukiwania z tabu (algorytmu 9), należy stwierdzić, że w obydwu przypadkach mamy do czynienia z jednym osobnikiem. Podobnie jak w przypadku poprzednim, występują takie same zasadnicze sekcje składowe obydwu algorytmów tj.: inicjalizacja, zasadnicza iteracja, sprawdzenie warunku stopu. Ponownie warto zauważyć, że złożoność sekcji pierwszej, a także i trzeciej (czyli inicjalizacji oraz sprawdzenia warunku stopu) dla obydwu algorytmów jest taka sama albo bardzo zbliżona. Różnice natomiast występują w złożoności pojedynczej iteracji obydwu algorytmów. Główne składowe iteracji algorytmu 9 to: wyznaczenie sąsiedztwa zmiennych decyzyjnych N d (x,t) oraz wybór nowych wartości zmiennych decyzyjnych mających na celu poprawienie bieżącego rozwiązania. Mając na uwadze specyfikę zadania optymalizacji przepustowości sieci, wybór sąsiedztwa można przeprowadzać z wykorzystaniem parametru przepustowość routera analogicznie jak w algorytmie 5. Jeśli przepustowość routera wzrasta wraz z kolejną iteracją algorytmu to sąsiedztwo dla odpowiedniego parametru beta jest ustalane jako przedział pomiędzy wartością obecną, a wartością maksymalną. Analogicznie, jeśli wartość przepustowości ulegnie zmniejszeniu, nowe sąsiedztwo jest ustalane jako przedział zero, wartość obecna

166 Zgodnie z zasadą działania algorytmu 9, z wyznaczonego sąsiedztwa należy wyłączyć (zakazać) wartości zmiennych decyzyjnych, które były już używane w poprzednich jego iteracjach. Długość listy zakazanych wartości ma spory wpływ na jakość uzyskiwanych wyników oraz szybkość działania algorytmu, zaś sam fakt jej istnienia znacząco różni obydwa porównywane algorytmy. Mając na uwadze specyfikę zadania optymalizacji przepustowości, sposób wyboru nowych wartości parametrów beta z wyznaczonego sąsiedztwa (takich żeby uzyskać poprawę funkcji oceny) jest zadaniem trudnym. W tym miejscu warto powtórzyć, że stosowana w algorytmie tabu search reguła selekcji może sama w sobie być bardzo zaawansowaną strategią heurystyczną. Mając na uwadze powyższe względy oraz fakt, że rozwiązanie musi działać w czasie rzeczywistym, proponuję wybór ten dokonywać w sposób losowy z zastosowaniem rozkładu jednostajnego (analogicznie jak w algorytmie SW). Kontynuując porównanie złożoności obliczeniowych pojawia się pewna obserwacja. Analizowane zadanie sprowadza się do porównania złożoności operacji wyłączania zakazanych wartości zmiennych decyzyjnych (zawartość tablicy tabu) z wyznaczonego sąsiedztwa ze złożonością reguły akceptacji Metropolisa. Złożoność tej reguły jest znana i sprowadza się do wykonania po jednej operacji: odejmowania, dzielenia i potęgowania oraz porównania dwóch wartości rzeczywistych. Natomiast złożoność operacji wyłączania jest zależna między innymi od długości listy tabu. Ogólnie przyjmuje się, że lista ta powinna być możliwie długa, (co również istotne, lista ta rozrasta się w trakcie działania algorytmu), co ma znaczący wpływ na złożoność oraz czas pracy algorytmu. Reasumując, złożoności obliczeniowe algorytmu SW (algorytm 5) oraz algorytmu tabu search (algorytm 9) są porównywalne i bardzo zbliżone, przy czym przy zastosowaniu rozbudowanej listy tabu lub heurystyki wyznaczania sąsiedztwa, algorytm wyszukiwania z tabu będzie działał wolniej. 6.5 Porównanie złożoności algorytmu symulowanego wyżarzania oraz metody Simplex. Przechodząc do oceny złożoności obliczeniowej metody SW z zastosowaniem reguły akceptacji Metroplosa, należy zaznaczyć, że nie jest to zadanie trywialne i znacznie przekracza zakres tej pracy. Dodatkowo, złożoność ta zależy od rodzaju problemu do rozwiązania którego metoda została zastosowana. Ogólnie można przyjąć, że metoda ta ma złożoność wykładniczą i zależną zarówno od liczby węzłów grafu (routerów) oraz liczby jego krawędzi (łączy). Dokładniejsze porównanie złożoności metod SW i Simplex zostanie

167 przeprowadzone z wykorzystaniem wyprowadzonych wcześniej wzorów tj. (4.2) i (6.6). W celu przeprowadzenia wspomnianego porównania niezbędnym jest przyjęcie pewnych założeń, przy czym istotne jest to, żeby przyjęte założenia były realistyczne i odpowiadały warunkom rzeczywistym. Do potrzeb dalszej analizy przyjęto następujące założenia dla metody SW (przy zachowaniu wcześniej przyjętych oznaczeń): gdzie ^ ( * 2 l ( b) = 2.5m (0.5m ) (6.7) ~ 2 l ( b) = 0.25m (0.5m ) (6.8) ^ m d( t k q ( b)) = (6.9) 2 Pr( Ψk ( b) Ψk ( b)) = 0. (6.0) Pr( E Y ) = 0.5 (6.) d t k q ( b)) D t średnia długość trasy (b), rozumiana jako liczba routerów występujących na t k q trasie. Natomiast argumentami funkcji złożoności (zmiennymi) pozostają: liczba routerów w sieci oraz liczba łączy. Analogicznie założenia (lub wyliczenia) dla metody dokładnej dotyczą następujących wielkości: zależność liczby równań ograniczających µ w metodzie dokładnej od liczby routerów i łączy, µ ( m, n) ; zależność liczby iteracji metody dokładnej od liczby równań ograniczeń, a w konsekwencji od liczby routerów i łączy danej sieci, ε [ µ ( m, n)] = ε ( m, n). Po podstawieniu przyjętych w założeniach wartości do wzoru (4.2) otrzymano następujące wartości: m * n m m m µ ( m. n) = * ( + ) + * ( m 2 m 2 2 m m n + ) + * ( ) (6.2) m * n m m m ε [ µ ( m, n)] = ε ( m, n) = 2.5*[ * ( + ) + * ( m 2 m 2 2 m m n + ) + * ( ) ] (6.3) Uzasadnienie przyjętych założeń jest następujące. Dla (6.7) - na wstępie należy stwierdzić, że nie istnieje ogólne i jednoznaczna zależność liczby tras (a dokładniej tras acyklicznych) w dowolnym grafie np. dwudzielnym od liczby

168 jego węzłów (routerów), czy też krawędzi (łączy). W [03] znajduje się taki wzór, lecz obowiązuje on tylko dla grafów pełnych. W związku z powyższym na potrzeby niniejszej pracy przyjęto pewne założenie. Mając na uwadze to, że proponowane w niej rozwiązanie jest głównie dedykowane dla średnich i dużych sieci przyjmijmy, że routery tworzące optymalizowaną sieć posiadają dokładnie po sześć interfejsów. Jednocześnie warto wspomnieć, że założenie takie z praktycznego punktu widzenia jest całkowicie akceptowalne i zgodne z realiami. W związku z powyższym liczba łączy w tej sieci wynosi Konsekwencją przyjętego założenia jest to, że dowolny router może wysyłać ruch sieciowy (adresowany do danej sieci) pięcioma różnymi trasami każda z nich prowadzi przez inny interfejs wyjściowy (zgodnie z opisem rozwiązania przedstawionym w podpunkcie 2.2). Dodatkowo przyjmijmy, że połowa routerów optymalizowanego obszaru to routery ABR, w konsekwencji komunikujących się sieci (lub innych obszarów komunikujących się z wykorzystaniem obszaru optymalizowanego, czyli obszaru zero) jest 3 m. m. Liczba 2 m m komunikujących się ze sobą par sieci (lub obszarów) jest równa *( ). Przyjmując, że 2 2 ruch sieciowy każdej z komunikujących się par może być przesyłany przez dowolny z m routerów i to na pięć sposobów (po pięciu różnych trasach) otrzymujemy m m ( ) * m *5 = 2.5m (0.5m ) różnych tras. Dla (6.8) Na wstępie warto wspomnieć, że liczba tras aktywnych nie powinna być zbyt duża, (co na wybranych przykładach zostało pokazane w podrozdziale 3.6) oraz taki sam wniosek nasuwa się na podstawie obserwacji z przeprowadzonych badań (podrozdział 5.). W przeciwnym razie przepustowość środowiska sieciowego ulega pogorszeniu. W związku z powyższym sugerowanym rozwiązaniem jest przyjęcie liczby tras aktywnych jako 0% wszystkich dostępnych tras. Jednocześnie należy stwierdzić, że wartość ta nie wynika z żadnych analitycznych wyliczeń, tylko z badań przeprowadzonych na potrzeby tej pracy oraz własnych obserwacji. Dodatkowo należy stwierdzić, że liczba tras aktywnych posiada niewielki wpływ na złożoność obliczeniową analizowanej metody. Dla (6.9), najkrótsza trasa może mieć długość, natomiast najdłuższa trasa prosta (czyli bez cykli) posiada długość m. Wyznaczając średnią arytmetyczną i przyjmując, że rozkład długości tras jest jednostajny, otrzymujemy następujący wynik ^ + m m d( t k q ( b)) = = (6.4)

169 Dla (6.0) - wartość 0. przyjęto na podstawie obserwacji oraz badań przedstawionych w podrozdziale 5.. Dla (6.) odpowiednią wartość wyznaczono jako wartość przeciętną dla próbki losowej o rozkładzie jednostajnym na przedziale <0,>. Przechodząc do dokładniejszej analizy prawdopodobieństwa zdarzenia polegającego na tym, że wartość funkcji energii (wyliczona na podstawie reguły akceptacji Metropolisa, przedstawionej w podrozdziale 4.) jest większa od wartości losowej o rozkładzie jednostajnym na przedziale <0,>, należy stwierdzić, że nie jest możliwe jego wyliczenie analityczne. Prawdopodobieństwo to zależy w znacznej mierze od optymalizowanej topologii sieciowej, co zostało pokazane poniżej. Zadanie sprowadza się do wyliczenia następującego prawdopodobieństwa. Ψnew ( b) Ψ( b) Pr(exp( ) > wartośa_ oczekiwana) (6.5) T gdzie wartość_oczekiwa jest to wartość oczekiwana zmiennej losowej o rozkładzie jednostajnym na przedziale <0,> czyli 0.5. Wprowadzając dodatkowe oznaczenie Ψ ( b) = Ψnew ( b) Ψ( b), oraz zastępując wartość_oczekiwaną liczbą 0.5 otrzymujemy: Ψ( b) exp( ) > 0.5 T a następnie przekształcając z użyciem funkcji ln otrzymujemy: czyli Przykładowo, przyjmując T=00 otrzymujemy Ψ(b) ln(2) > T Ψ(b) > T Ψ( b ) < 69.3 natomiast dla T= Ψ( b ) < Jak widać z powyższych obliczeń odpowiedź na pytanie jakie jest prawdopodobieństwo zdarzenia opisanego wzorem (6.5) nie jest jednoznaczna. Dodatkowo zależy ona od tego czy zmiana (spadek) wartości Ψ(b) pomiędzy kolejnymi dwoma iteracjami algorytmu o np czy też o Mb/s to dużo czy mało w odniesieniu do konkretnej optymalizowanej topologii, czyli jak zostało wcześniej powiedziane prawdopodobieństwo to zależy w znacznej mierze od optymalizowanej topologii sieciowej. Z powodu braku jednoznacznej odpowiedzi dla analizowanego zagadnienia, a także nieznajomości gęstości jego rozkładu, można przyjąć

170 wartości prawdopodobieństwa na poziomie wartości średniej tj Należy także dodać, że przyjęta wartość posiada bardzo mały wpływ na wartość złożoności obliczeniowej metody SW. Dla µ ( m. n) określonego wzorem (6.2), liczba równań ograniczeń zadania programowania liniowego przedstawionego w podrozdziale 3.2, jest zależna od liczby łączy (równania ograniczeń (3.2) i (3.3)) oraz od liczby routerów (równanie (3.4)). Dodatkowo wprowadzając wspomniane wcześniej modyfikacje mające na celu dostosowanie analizowanego modelu do rzeczywistych warunków istniejących w sieciach komputerowych przyjmijmy, że połowa routerów optymalizowanego obszaru to routery ABR, a połączenia pomiędzy routerami ABR oraz routerami wewnętrznymi to analogicznie połowa wszystkich połączeń występujących w tej sieci. Na podstawie wzorów (6.4) i (6.5) oraz przyjętych założeń, liczba routerów w analizowanym obszarze zwiększa się z * m do 2 m, zaś liczba łączy z * 4 2 n do n * ( m m + ). 8 4 Dysponując odwzorowaniem pomiędzy liczbami routerów i łączy dla metody SW oraz dokładnej, można przystąpić do określenia liczby równań ograniczeń. Dla pierwszego * * m m ograniczenia ze wzoru (3.) i przyjętych założeń istnieje *( ) komunikujących się 2 2 par, po podstawieniu odpowiedniej dla specyfiki tej metody liczby routerów (w tym także 2 2 m m wirtualnych) otrzymujemy * ( ) 8 8 komunikujących się par sieci oraz 2 n * ( m m + ) łączy. Po pomnożeniu obydwu składników otrzymujemy m * n m * ( m 32 m + ) równań. Dla drugiego ograniczenia otrzymujemy 4 * ( m 2 m 2 2 m m n + ) równań. Natomiast dla trzeciego * ( ) równań. Po zsumowaniu wszystkich trzech składników otrzymujemy końcową postać wzoru na liczbę równań ograniczeń, czyli m * n m m m µ ( m, n) = *( + ) + * ( m 2 m 2 2 m m n + ) + * ( ) (6.6) Ponieważ jak wykazano w [0][][2] metoda Simplex wymaga przeciętnie od 2 µ do 3 µ iteracji, dlatego zasadnym staje się przyjęcie średniej liczby iteracji równej 2.5 µ. Po podstawieniu otrzymujemy:

171 2 4 3 m * n m m m ε [ µ ( m, n)] = ε ( m, n) = 2.5*[ * ( + ) + * ( m 2 m 2 2 m m n + ) + * ( ) ] (6.7) Na podstawie przyjętych założeń oraz wykonanych podstawień wzór (4.) można przedstawić następująco: 2 2 3m O( m) = { m (0.5m ) *(2m + 0.5m + ) + 2.5m (0.5m ) * 0.5m *( + ) + 3m [ 0.* ( m + )] + [( 0.) * ( * ( m + ))] + + m *[0.25m 2 3*0.5m (0.5m ) *( + 4 po uproszczeniu i redukcji wyrazów podobnych otrzymujemy: ) 2 + 2]}* m O( m) = { m (0.5m )(2.5m + ) +.25m (0.5m )( + ) + 3m [ 0.55m ] + r *[0.25m (0.5m ) * (0.375m + ) + 2]}* 00 (6.8) 2 natomiast (6.6) ulega przekształceniu do następującej postaci: m ln m m m m m m m O( m, n) = ( + ) + 3m( + ) + ( ) m n m m m m m m m [ ( + ) + 3m( + ) + ( )] m n m m m m m m m 2.5[ ( + ) + 3m( + ) + ( )]* m n m m m m m m m *{3[ ( + ) + 3m( + ) + ( )] m n m m m m m m m [ ( + ) + 3m( + ) + ( )] } (6.9) Obydwa wzory tj. (6.8) oraz (6.9) przedstawiają funkcje wielomianowe. Porównując je warto zwrócić uwagę na wartości największych wykładników, które w nich występują. We wzorze (6.8) przedstawiającym złożoność obliczeniową zmodyfikowanej metody SW wartość najwyższej potęgi to 5 m, natomiast we wzorze (6.9) przedstawiającym złożoność metody dokładnej wartość najwyższej potęgi wynosi m *( m ) = m. Mając na uwadze informacje zawarte w [4] oraz [7], wysoka wartość wykładnika dla wzoru (6.9) nie powinna być większym zaskoczeniem. Otrzymane wartości w sposób jednoznaczny świadczą o tym, że złożoność obliczeniowa metody dokładnej (w odniesieniu do liczby operacji prostych) w zastosowaniu do optymalizacji przepustowości środowiska sieciowego jest znacząco większa niż metody SW. Dla kompletności warto dodać, że założenia przyjęte - 7 -

172 na potrzeby porównania złożoności obydwu analizowanych metod mają mały wpływ na uzyskane wyniki. Uzasadnienie wynika z tego, że przyjęte założenia mają głównie wpływ na wartości współczynników występujących jako argumenty funkcji złożoności, nie zaś na wartości wykładników wspomnianych współczynników. Przykładowymi założeniami potwierdzającymi powyższe uzasadnienie mogą być (6.0) i (6.). Przechodząc do czasów działania obydwu omawianych metod, podczas przeprowadzania badań zauważono, że wzrost liczby routerów z 4 do 0 oraz łączy z 6 do 24 (co w konsekwencji powoduje wzrost liczby różnych tras z 25 do 2276, czyli ponad 90 razy) nie spowodował znaczącego wydłużenia czasu pracy algorytmu SW. W tym miejscu należy wyjaśnić, że mając na uwadze specyfikę problemu, obydwa zmierzone czasy (tj. dla topologii z rys. 4.3 i 4.4) wynoszące poniżej jednej sekundy, można uznać za pomijalnie małe i mieszczące się w granicach czasu rzeczywistego. 6.6 Ocena zasadności stosowania algorytmów heurystycznych do badanego zagadnienia w kontekście metod dokładnych. Na wstępie warto zaznaczyć, że w zadaniu zdefiniowanym w podrozdziale 3.2. ujawniają się pewne istotne wady stosowania metody programowania liniowego do optymalizacji przepustowości sieci komputerowych. Wady te zostały dokładniej przedstawione w podrozdziałach 5.2 oraz 6.3 i oprócz stwierdzenia, że czynią one omawianą metodę stosunkowo mało przydatną, nie jest zasadnym dalsze ich opisywanie. Natomiast warto wspomnieć, że ze względu na zgoła odmienne spojrzenie na badane zagadnienie, metoda SW takich wad nie posiada, co stawia ją w znacznie lepszym świetle. Biorąc pod uwagę uzyskane wyniki, a przede wszystkim złożoności obliczeniowe obydwu metod, oraz istniejące ograniczenia, stosowanie metod heurystycznych do optymalizacji przepustowości sieci komputerowych należy uznać za zasadne. W konsekwencji, druga część tezy przedstawionej we wstępie tej pracy została potwierdzona. Zasadność stosowania metod heurystycznych wynika nie tylko z szybkości ich działania, ale także dużej elastyczności w implementacji i przede wszystkim zadowalających wyników. W tym miejscu warto wspomnieć chociażby to, że dla topologii sieciowej przedstawionej na rys 4.3 otrzymano Ψ(b) równe 207.5, przy górnym ograniczeniu równym 20 Mb/s. Dla tej samej topologii bez równoważenia obciążenia Ψ(b) wynosiło 00 Mb/s, a z równoważeniem typu RK 33 Mb/s, co z kolei stanowi potwierdzenie dla słuszności pierwszej części przyjętej tezy badawczej. Dodatkowo, stosowanie nowatorskich metod prowadzi do ich rozwoju, co w konsekwencji

173 przekłada się na jakość otrzymywanych wyników. Warto zauważyć, że tytuł tego podrozdziału nie odnosi się jedynie do metody SW. W literaturze znajduje się wiele przykładów ukazujących zasadność stosowania takich algorytmów jak np. algorytmy genetyczne, mrówkowe, tabu search i inne, do szeroko rozumianych zadań optymalizacji w tym także sieci komputerowych - i to pod różnymi względami, a nie tylko maksymalizacji ich przepustowości. Przykładami takich opracowań poruszających tematykę stosowania algorytmów SW mogą być: [78] [79] [80] [8] [83] [85] [86] [87] [89] [02]. Warto także zwrócić uwagę na publikacje opisujące zastosowanie innych rodzajów algorytmów heurystycznych jak np.: [48] [50] [5] [52] [56] [57] [58] [59] [64] [75] [84] [88]. 6.7 Niezawodność proponowanego rozwiązania. Nawet bardzo dobrej jakości rozwiązania, lecz działające w sposób zawodny mogą prowadzić do znacznych strat, nie wspominając już o frustracji administratorów oraz użytkowników. W niniejszym podrozdziale zostały opisane następujące kwestie dotyczące stosowanej metody SW: zapewnienie podstawowego poziomu niezawodności; konsekwencje potencjalnych awarii; zapewnienie podstawowego poziomu bezpieczeństwa. Zapewnienie podstawowego poziomu niezawodności można osiągnąć poprzez usytuowanie stacji zarządzającej na dedykowanym komputerze. Dodatkowo, zalecane jest, aby stacja zarządzająca pracowała w trybie tzw. wysokiej dostępności (ang. High Availability). Tryb ten zapewnia kontynuację działania stacji zarządzającej w przypadku wystąpienia awarii pojedynczego urządzenia i można go uzyskać np. poprzez zastosowanie rozwiązania zwanego failover - umożliwiającego szybkie przełączenie pomiędzy urządzeniem podstawowym i zapasowym. Konsekwencje potencjalnych awarii są znikome. W przypadku uszkodzenia lub niedostępności stacji zarządzającej równoważenie typu NK jest wyłączane (wszystkie routery zerują swoje współczynniki beta). Idea działania routerów na wypadek awarii stacji zarządzającej jest następująca - jeśli w zdefiniowanym przedziale czasu router nie otrzyma nowej wartości współczynnika beta to przyjmuje, że jest równa zeru. W konsekwencji równoważenie typu NK zostaje wyłączone, udoskonalenie przestaje działać i wszystko wraca do stanu pierwotnego. Zapewnienie podstawowego poziomu bezpieczeństwa jest niezbędne do wydajnego działania całego udoskonalenia. Wartości współczynników beta powinny być dystrybuowane do

174 routerów w sposób zapewniający ich integralność i dostępność. Naruszenie integralności może nastąpić w skutek np. zakłóceń transmisji. Zapewnienie tego atrybutu jest konieczne, gdyż łatwo sobie wyobrazić, co może się stać, gdy na skutek błędów lub zakłóceń routery otrzymają niepoprawne wartości parametrów beta. W takiej sytuacji sieć zacznie działać w sposób nieoptymalny, a w konsekwencji wydajność routingu najprawdopodobniej zostanie drastycznie zmniejszona. Analogicznie jest z dostępnością wspomnianych współczynników. Jeśli część routerów otrzyma poprawne wartości współczynników, a druga część nie otrzyma ich wcale (przyjmując za zero), to analogicznie jak poprzednio, sieć zacznie działać w sposób nieoptymalny. Reasumując, wymiana informacji pomiędzy routerami i stacją zarządzającą powinna być potwierdzana oraz zabezpieczona. Sugerowanym rozwiązaniem jest zastosowanie protokołów TCP. Jeśli wymagane jest szyfrowanie ruchu sieciowego to sugerowanym rozwiązaniem jest zastosowanie protokołu SSL w wersji minimum trzeciej. 6.8 Omówienie algorytmu 3 tj. wyznaczania Ψ(b) oraz jego wad i zalet. W pewnych przypadkach rzeczywista wartość przepustowości sieci może być większa, (lecz nigdy mniejsza) niż wyliczona wartość Ψ(b). Różnica ta pojawia się w sytuacjach, kiedy istnieje łącze, które jest wykorzystywane przez przynajmniej dwie trasy i jednocześnie nie jest ono najwęższym gardłem dla żadnej z prowadzących przez nie tras. Warto dodać, że jeśli na trasie występuje więcej niż jedno łącze o najmniejszej przepustowości, to w metodzie tej każde takie łącze należy rozumieć jako najwęższe gardło. Teraz podany zostanie przykład ilustrujący wspomnianą różnicę. Rozważając topologię z rys przyjęto, że H i H2 jednocześnie komunikują się z Serwerem. Przepustowości poszczególnych łączy są podane na schemacie. Rys Siódmy przykład topologii sieci komputerowej

Routing. mgr inż. Krzysztof Szałajko

Routing. mgr inż. Krzysztof Szałajko Routing mgr inż. Krzysztof Szałajko Modele odniesienia 7 Aplikacji 6 Prezentacji 5 Sesji 4 Transportowa 3 Sieciowa 2 Łącza danych 1 Fizyczna Aplikacji Transportowa Internetowa Dostępu do sieci Wersja 1.0

Bardziej szczegółowo

Warstwa sieciowa rutowanie

Warstwa sieciowa rutowanie Warstwa sieciowa rutowanie Protokół IP - Internet Protocol Protokoły rutowane (routed) a rutowania (routing) Rutowanie statyczne i dynamiczne (trasowanie) Statyczne administrator programuje trasy Dynamiczne

Bardziej szczegółowo

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr piąty

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr piąty Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr piąty Rozdział 1. Przegląd sieci skalowalnych 19 Model projektu skalowalnej sieci hierarchicznej 19 Trójwarstwowy model projektu sieci 20 Funkcja

Bardziej szczegółowo

Plan wykładu. Wyznaczanie tras. Podsieci liczba urządzeń w klasie C. Funkcje warstwy sieciowej

Plan wykładu. Wyznaczanie tras. Podsieci liczba urządzeń w klasie C. Funkcje warstwy sieciowej Wyznaczanie tras (routing) 1 Wyznaczanie tras (routing) 2 Wyznaczanie tras VLSM Algorytmy rutingu Tablica rutingu CIDR Ruting statyczny Plan wykładu Wyznaczanie tras (routing) 3 Funkcje warstwy sieciowej

Bardziej szczegółowo

Sieci komputerowe. Routing. dr inż. Andrzej Opaliński. Akademia Górniczo-Hutnicza w Krakowie. www.agh.edu.pl

Sieci komputerowe. Routing. dr inż. Andrzej Opaliński. Akademia Górniczo-Hutnicza w Krakowie. www.agh.edu.pl Sieci komputerowe Routing Akademia Górniczo-Hutnicza w Krakowie dr inż. Andrzej Opaliński Plan wykładu Wprowadzenie Urządzenia Tablice routingu Typy protokołów Wstęp Routing Trasowanie (pl) Algorytm Definicja:

Bardziej szczegółowo

PBS. Wykład Routing dynamiczny OSPF EIGRP 2. Rozwiązywanie problemów z obsługą routingu.

PBS. Wykład Routing dynamiczny OSPF EIGRP 2. Rozwiązywanie problemów z obsługą routingu. PBS Wykład 5 1. Routing dynamiczny OSPF EIGRP 2. Rozwiązywanie problemów z obsługą routingu. mgr inż. Roman Krzeszewski roman@kis.p.lodz.pl mgr inż. Artur Sierszeń asiersz@kis.p.lodz.pl mgr inż. Łukasz

Bardziej szczegółowo

Routing i protokoły routingu

Routing i protokoły routingu Routing i protokoły routingu Po co jest routing Proces przesyłania informacji z sieci źródłowej do docelowej poprzez urządzenie posiadające co najmniej dwa interfejsy sieciowe i stos IP. Routing przykład

Bardziej szczegółowo

ZiMSK. Routing dynamiczny 1

ZiMSK. Routing dynamiczny 1 ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl Routing dynamiczny 1 Wykład

Bardziej szczegółowo

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PODSTAWY RUTINGU IP. WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r.

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PODSTAWY RUTINGU IP. WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r. DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PODSTAWY RUTINGU IP WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r. PLAN Ruting a przełączanie Klasyfikacja rutingu Ruting statyczny Ruting dynamiczny

Bardziej szczegółowo

Sieć komputerowa Adresy sprzętowe Adresy logiczne System adresacji IP (wersja IPv4)

Sieć komputerowa Adresy sprzętowe Adresy logiczne System adresacji IP (wersja IPv4) Sieć komputerowa Siecią komputerową nazywamy system (tele)informatyczny łączący dwa lub więcej komputerów w celu wymiany danych między nimi. Sieć może być zbudowana z wykorzystaniem urządzeń takich jak

Bardziej szczegółowo

Wykład 3: Internet i routing globalny. A. Kisiel, Internet i routing globalny

Wykład 3: Internet i routing globalny. A. Kisiel, Internet i routing globalny Wykład 3: Internet i routing globalny 1 Internet sieć sieci Internet jest siecią rozproszoną, globalną, z komutacją pakietową Internet to sieć łącząca wiele sieci Działa na podstawie kombinacji protokołów

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Wayne Lewis - Akademia sieci Cisco. CCNA semestr 3

Spis treúci. Księgarnia PWN: Wayne Lewis - Akademia sieci Cisco. CCNA semestr 3 Księgarnia PWN: Wayne Lewis - Akademia sieci Cisco. CCNA semestr 3 Spis treúci Informacje o autorze...9 Informacje o redaktorach technicznych wydania oryginalnego...9 Podziękowania...10 Dedykacja...11

Bardziej szczegółowo

Rozległe Sieci Komputerowe

Rozległe Sieci Komputerowe Rozległe Sieci Komputerowe Rozległe Sieci Komputerowe Literatura: D.E. Conner Sieci komputerowe i intersieci R. W. McCarty Cisco WAN od podstaw R. Wright Elementarz routingu IP Interconnecting Cisco Network

Bardziej szczegółowo

RUTERY. Dr inŝ. Małgorzata Langer

RUTERY. Dr inŝ. Małgorzata Langer RUTERY Dr inŝ. Małgorzata Langer Co to jest ruter (router)? Urządzenie, które jest węzłem komunikacyjnym Pracuje w trzeciej warstwie OSI Obsługuje wymianę pakietów pomiędzy róŝnymi (o róŝnych maskach)

Bardziej szczegółowo

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6...

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6... Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv4... 3 Konfiguracja routingu statycznego IPv6... 3 Sprawdzenie połączenia... 4 Zadania... 4 Routing - wstęp O routowaniu

Bardziej szczegółowo

PORADNIKI. Routery i Sieci

PORADNIKI. Routery i Sieci PORADNIKI Routery i Sieci Projektowanie routera Sieci IP są sieciami z komutacją pakietów, co oznacza,że pakiety mogą wybierać różne trasy między hostem źródłowym a hostem przeznaczenia. Funkcje routingu

Bardziej szczegółowo

Ruting. Protokoły rutingu a protokoły rutowalne

Ruting. Protokoły rutingu a protokoły rutowalne Ruting. Protokoły rutingu a protokoły rutowalne ruting : proces znajdowania najwydajniejszej ścieżki dla przesyłania pakietów między danymi dwoma urządzeniami protokół rutingu : protokół za pomocą którego

Bardziej szczegółowo

router wielu sieci pakietów

router wielu sieci pakietów Dzisiejsze sieci komputerowe wywierają ogromny wpływ na naszą codzienność, zmieniając to, jak żyjemy, pracujemy i spędzamy wolny czas. Sieci mają wiele rozmaitych zastosowań, wśród których można wymienić

Bardziej szczegółowo

Routing dynamiczny... 2 Czym jest metryka i odległość administracyjna?... 3 RIPv1... 4 RIPv2... 4 Interfejs pasywny... 5 Podzielony horyzont...

Routing dynamiczny... 2 Czym jest metryka i odległość administracyjna?... 3 RIPv1... 4 RIPv2... 4 Interfejs pasywny... 5 Podzielony horyzont... Routing dynamiczny... 2 Czym jest metryka i odległość administracyjna?... 3 RIPv1... 4 RIPv2... 4 Interfejs pasywny... 5 Podzielony horyzont... 5 Podzielony horyzont z zatruciem wstecz... 5 Vyatta i RIP...

Bardziej szczegółowo

PBS. Wykład Podstawy routingu. 2. Uwierzytelnianie routingu. 3. Routing statyczny. 4. Routing dynamiczny (RIPv2).

PBS. Wykład Podstawy routingu. 2. Uwierzytelnianie routingu. 3. Routing statyczny. 4. Routing dynamiczny (RIPv2). PBS Wykład 4 1. Podstawy routingu. 2. Uwierzytelnianie routingu. 3. Routing statyczny. 4. Routing dynamiczny (RIPv2). mgr inż. Roman Krzeszewski roman@kis.p.lodz.pl mgr inż. Artur Sierszeń asiersz@kis.p.lodz.pl

Bardziej szczegółowo

Adresy w sieciach komputerowych

Adresy w sieciach komputerowych Adresy w sieciach komputerowych 1. Siedmio warstwowy model ISO-OSI (ang. Open System Interconnection Reference Model) 7. Warstwa aplikacji 6. Warstwa prezentacji 5. Warstwa sesji 4. Warstwa transportowa

Bardziej szczegółowo

Konfigurowanie sieci VLAN

Konfigurowanie sieci VLAN Konfigurowanie sieci VLAN 1 Wprowadzenie Sieć VLAN (ang. Virtual LAN) to wydzielona logicznie sieć urządzeń w ramach innej, większej sieci fizycznej. Urządzenia tworzące sieć VLAN, niezależnie od swojej

Bardziej szczegółowo

1. Podstawy routingu IP

1. Podstawy routingu IP 1. Podstawy routingu IP 1.1. Routing i adresowanie Mianem routingu określa się wyznaczanie trasy dla pakietu danych, w taki sposób aby pakiet ten w możliwie optymalny sposób dotarł do celu. Odpowiedzialne

Bardziej szczegółowo

Funkcje warstwy sieciowej. Podstawy wyznaczania tras. Dostarczenie pakietu od nadawcy od odbiorcy (RIP, IGRP, OSPF, EGP, BGP)

Funkcje warstwy sieciowej. Podstawy wyznaczania tras. Dostarczenie pakietu od nadawcy od odbiorcy (RIP, IGRP, OSPF, EGP, BGP) Wyznaczanie tras (routing) 1 Wyznaczanie tras (routing) 17 Funkcje warstwy sieciowej Podstawy wyznaczania tras Routing statyczny Wprowadzenie jednolitej adresacji niezaleŝnej od niŝszych warstw (IP) Współpraca

Bardziej szczegółowo

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku DWA ZDANIA O TEORII GRAFÓW Krawędź skierowana Grafy a routing Każdą sieć przedstawić składającego przedstawiają E, inaczej węzłami). komunikacyjną można w postaci grafu G się z węzłów V (które węzły sieci)

Bardziej szczegółowo

Komunikacja w sieciach komputerowych

Komunikacja w sieciach komputerowych Komunikacja w sieciach komputerowych Dariusz CHAŁADYNIAK 2 Plan prezentacji Wstęp do adresowania IP Adresowanie klasowe Adresowanie bezklasowe - maski podsieci Podział na podsieci Translacja NAT i PAT

Bardziej szczegółowo

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych Wykład 2: Budowanie sieci lokalnych 1 Budowanie sieci lokalnych Technologie istotne z punktu widzenia konfiguracji i testowania poprawnego działania sieci lokalnej: Protokół ICMP i narzędzia go wykorzystujące

Bardziej szczegółowo

Routing. routing bezklasowy (classless) pozwala na używanie niestandardowych masek np. /27 stąd rozdzielczość trasowania jest większa

Routing. routing bezklasowy (classless) pozwala na używanie niestandardowych masek np. /27 stąd rozdzielczość trasowania jest większa 1 Routing przez routing rozumiemy poznanie przez router ścieżek do zdalnych sieci o gdy routery korzystają z routingu dynamicznego, informacje te są uzyskiwane na podstawie danych pochodzących od innych

Bardziej szczegółowo

52. Mechanizm trasowania pakietów w Internecie Informacje ogólne

52. Mechanizm trasowania pakietów w Internecie Informacje ogólne 52. Mechanizm trasowania pakietów w Internecie Informacje ogólne Trasowanie (Routing) to mechanizm wyznaczania trasy i przesyłania pakietów danych w intersieci, od stacji nadawczej do stacji odbiorczej.

Bardziej szczegółowo

Sieci komputerowe dr Zbigniew Lipiński

Sieci komputerowe dr Zbigniew Lipiński Sieci komputerowe Podstawy routingu dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Routing Routing jest procesem wyznaczania najlepszej trasy

Bardziej szczegółowo

Akademia sieci Cisco CCNA Exploration : semestr 2 : protokoły i koncepcje routingu / Rick Graziani, Allan Johnson. wyd. 1, dodr. 4.

Akademia sieci Cisco CCNA Exploration : semestr 2 : protokoły i koncepcje routingu / Rick Graziani, Allan Johnson. wyd. 1, dodr. 4. Akademia sieci Cisco CCNA Exploration : semestr 2 : protokoły i koncepcje routingu / Rick Graziani, Allan Johnson. wyd. 1, dodr. 4. Warszawa, 2013 Spis treści O autorach 17 O redaktorach technicznych 17

Bardziej szczegółowo

Sprawozdanie z zajęć laboratoryjnych: Technologie sieciowe 1

Sprawozdanie z zajęć laboratoryjnych: Technologie sieciowe 1 Łukasz Przywarty 171018 Data utworzenia: 10.04.2010r. Prowadzący: dr inż. Marcin Markowski Sprawozdanie z zajęć laboratoryjnych: Technologie sieciowe 1 Temat: Zadanie domowe, rozdział 6 - Adresowanie sieci

Bardziej szczegółowo

Laboratorium Sieci Komputerowe

Laboratorium Sieci Komputerowe Laboratorium Sieci Komputerowe Adresowanie IP Mirosław Juszczak 9 października 2014 Mirosław Juszczak 1 Sieci Komputerowe Na początek: 1. Jak powstaje standard? 2. Co to są dokumenty RFC...??? (czego np.

Bardziej szczegółowo

Link-State. Z s Link-state Q s Link-state. Y s Routing Table. Y s Link-state

Link-State. Z s Link-state Q s Link-state. Y s Routing Table. Y s Link-state OSPF Open Shortest Path First Protokół typu link-state Publiczna specyfikacja Szybka zbieżność Obsługa VLSMs(Variable Length Subnet Masks) i sumowania tras Nie wymaga okresowego wysyłania uaktualnień Mechanizmy

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Rick Graziani, Allan Johnson - Akademia sieci Cisco. CCNA Exploration. Semestr 2

Spis treúci. Księgarnia PWN: Rick Graziani, Allan Johnson - Akademia sieci Cisco. CCNA Exploration. Semestr 2 Księgarnia PWN: Rick Graziani, Allan Johnson - Akademia sieci Cisco. CCNA Exploration. Semestr 2 Spis treúci O autorach... 17 O redaktorach technicznych... 17 Dedykacje... 18 Podziękowania... 19 Symbole

Bardziej szczegółowo

Zastosowanie zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowych

Zastosowanie zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości sieci komputerowych Dr hab. Wiesław Krajewski, prof. PAN Instytut Badań Systemowych PAN Warszawa 7 listopada 2011 Recenzja rozprawy doktorskiej Zastosowanie zmodyfikowanej metody symulowanego wyżarzania do optymalizacji przepustowości

Bardziej szczegółowo

MODUŁ: SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

MODUŁ: SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK MODUŁ: SIECI KOMPUTEROWE Dariusz CHAŁADYNIAK Józef WACNIK WSZECHNICA PORANNA Wykład 1. Podstawy budowy i działania sieci komputerowych Korzyści wynikające z pracy w sieci. Role komputerów w sieci. Typy

Bardziej szczegółowo

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN PBS Wykład 7 1. Zabezpieczenie przełączników i dostępu do sieci LAN mgr inż. Roman Krzeszewski roman@kis.p.lodz.pl mgr inż. Artur Sierszeń asiersz@kis.p.lodz.pl mgr inż. Łukasz Sturgulewski luk@kis.p.lodz.pl

Bardziej szczegółowo

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25 Sieci komputerowe Wykład 3: Protokół IP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 3 1 / 25 W poprzednim odcinku Podstawy warstwy pierwszej (fizycznej)

Bardziej szczegółowo

ARP Address Resolution Protocol (RFC 826)

ARP Address Resolution Protocol (RFC 826) 1 ARP Address Resolution Protocol (RFC 826) aby wysyłać dane tak po sieci lokalnej, jak i pomiędzy różnymi sieciami lokalnymi konieczny jest komplet czterech adresów: adres IP nadawcy i odbiorcy oraz adres

Bardziej szczegółowo

Wykorzystanie połączeń VPN do zarządzania MikroTik RouterOS

Wykorzystanie połączeń VPN do zarządzania MikroTik RouterOS Wykorzystanie połączeń VPN do zarządzania MikroTik RouterOS Największe centrum szkoleniowe Mikrotik w Polsce Ul. Ogrodowa 58, Warszawa Centrum Warszawy Bliskość dworca kolejowego Komfortowe klimatyzowane

Bardziej szczegółowo

Sieci komputerowe - Protokoły wspierające IPv4

Sieci komputerowe - Protokoły wspierające IPv4 2013-06-20 Piotr Kowalski KAiTI Plan i problematyka wykładu 1. Odwzorowanie adresów IP na sprzętowe i odwrotnie protokoły ARP i RARP. - Protokoły wspierające IPv4 2. Routing IP Tablice routingu, routing

Bardziej szczegółowo

Plan prezentacji. Konfiguracja protokołu routingu OSPF. informatyka+

Plan prezentacji. Konfiguracja protokołu routingu OSPF. informatyka+ 1 Plan prezentacji Wprowadzenie do budowy i konfiguracji routerów Wprowadzenie do konfiguracji routingu statycznego Wprowadzenie do konfiguracji protokołów routingu dynamicznego Konfiguracja protokołów

Bardziej szczegółowo

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Akademia Techniczno-Humanistyczna w Bielsku-Białej Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 1 Temat ćwiczenia: Adresacja w sieciach komputerowych podstawowe

Bardziej szczegółowo

Konfiguracja routerów CISCO protokoły rutingu: statyczny, RIP, IGRP, OSPF. Autorzy : Milczarek Arkadiusz Małek Grzegorz 4FDS

Konfiguracja routerów CISCO protokoły rutingu: statyczny, RIP, IGRP, OSPF. Autorzy : Milczarek Arkadiusz Małek Grzegorz 4FDS Konfiguracja routerów CISCO protokoły rutingu: statyczny, RIP, IGRP, OSPF Autorzy : Milczarek Arkadiusz Małek Grzegorz 4FDS Streszczenie: Tematem projektu jest zasada działania protokołów rutingu statycznego

Bardziej szczegółowo

Protokoły sieciowe - TCP/IP

Protokoły sieciowe - TCP/IP Protokoły sieciowe Protokoły sieciowe - TCP/IP TCP/IP TCP/IP (Transmission Control Protocol / Internet Protocol) działa na sprzęcie rożnych producentów może współpracować z rożnymi protokołami warstwy

Bardziej szczegółowo

Routing średniozaawansowany i podstawy przełączania

Routing średniozaawansowany i podstawy przełączania Przygotował: mgr inż. Jarosław Szybiński Studium przypadku case study Semestr III Akademii Sieciowej CISCO Routing średniozaawansowany i podstawy przełączania Na podstawie dokumentu CCNA3_CS_pl.pdf pochodzącego

Bardziej szczegółowo

ZiMSK. VLAN, trunk, intervlan-routing 1

ZiMSK. VLAN, trunk, intervlan-routing 1 ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl VLAN, trunk, intervlan-routing

Bardziej szczegółowo

Wymagania dotyczące łączy: należy zapewnić redundancję łączy w połączeniach pomiędzy routerami Uruchmić protokół routingu RIP v.2

Wymagania dotyczące łączy: należy zapewnić redundancję łączy w połączeniach pomiędzy routerami Uruchmić protokół routingu RIP v.2 Sławomir Wawrzyniak 236425 PROJEKT SIECI KOMPUTEROWEJ Specyfikacja: Wykupiona pula adresów IP: 165.178.144.0/20 Dostawca dostarcza usługę DNS Łącze do ISP: 1Gbit ethernet Wymagania dotyczące podsieci:

Bardziej szczegółowo

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r. DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r. PLAN Reprezentacja liczb w systemach cyfrowych Protokół IPv4 Adresacja w sieciach

Bardziej szczegółowo

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr szósty

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr szósty Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr szósty Wprowadzenie 13 Rozdział 1. Zdalny dostęp 17 Wprowadzenie 17 Typy połączeń WAN 19 Transmisja asynchroniczna kontra transmisja synchroniczna

Bardziej szczegółowo

Analysis of PCE-based path optimization in multi-domain SDN/MPLS/BGP-LS network

Analysis of PCE-based path optimization in multi-domain SDN/MPLS/BGP-LS network Analysis of PCE-based path optimization in multi-domain SDN/MPLS/BGP-LS network Grzegorz Rzym AGH, Department of Telecommunications 20-21.10.2016, Poznań www.agh.edu.pl Agenda Motywacja PCE SDN Środowisko

Bardziej szczegółowo

Sterowanie ruchem w sieciach szkieletowych

Sterowanie ruchem w sieciach szkieletowych Sterowanie ruchem w sieciach szkieletowych Transmisja wielościeżkowa Dr inż. Robert Wójcik Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji Kraków, dn. 6 kwietnia 2016 r. Plan

Bardziej szczegółowo

Podstawy sieci komputerowych

Podstawy sieci komputerowych mariusz@math.uwb.edu.pl http://math.uwb.edu.pl/~mariusz Uniwersytet w Białymstoku 2018/2019 Ekspancja sieci TCP/IP i rozwój adresacji IP 1975 opracowanie IPv4 32 bity na adres IP 2 32, czyli ok. 4 miliardów

Bardziej szczegółowo

Podstawy sieci komputerowych

Podstawy sieci komputerowych mariusz@math.uwb.edu.pl http://math.uwb.edu.pl/~mariusz Uniwersytet w Białymstoku Zakład Dydaktyki i Nowoczesnych Technologii w Kształceniu 2017/2018 Ekspancja sieci TCP/IP i rozwój adresacji IP 1975 opracowanie

Bardziej szczegółowo

A i B rozsyłają nowe wektory.

A i B rozsyłają nowe wektory. REAKCJA NA USZKODZENIE A i B rozsyłają nowe wektory. Węzeł E otrzymuje wektor od B. Wszystkie sieci w otrzymanej informacji mają koszt równy lub większy niż te, wpisane do tablicy. Jednocześnie jednak

Bardziej szczegółowo

Laboratorium 2.8.2: Zaawansowana konfiguracja tras statycznych

Laboratorium 2.8.2: Zaawansowana konfiguracja tras statycznych Diagram topologii Tabela adresacji Urządzenie Interfejs Adres IP Maska podsieci Brama domyślna BRANCH HQ ISP PC1 PC2 Web Server Fa0/0 Nie dotyczy S0/0/0 Nie dotyczy Fa0/0 Nie dotyczy S0/0/0 Nie dotyczy

Bardziej szczegółowo

Internet kwantowy. (z krótkim wstępem do informatyki kwantowej) Jarosław Miszczak. Instytut Informatyki Teoretycznej i Stosowanej PAN

Internet kwantowy. (z krótkim wstępem do informatyki kwantowej) Jarosław Miszczak. Instytut Informatyki Teoretycznej i Stosowanej PAN Internet kwantowy (z krótkim wstępem do informatyki kwantowej) Jarosław Miszczak Instytut Informatyki Teoretycznej i Stosowanej PAN 16. stycznia 2012 Plan wystąpienia 1 Skąd się biorą stany kwantowe? Jak

Bardziej szczegółowo

Translacja adresów - NAT (Network Address Translation)

Translacja adresów - NAT (Network Address Translation) Translacja adresów - NAT (Network Address Translation) Aby łączyć się z Internetem, każdy komputer potrzebuje unikatowego adresu IP. Jednakże liczba hostów przyłączonych do Internetu wciąż rośnie, co oznacza,

Bardziej szczegółowo

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska Sieci komputerowe Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska Adresacja IPv4 Sieci Komputerowe, T. Kobus, M. Kokociński 2 Sieci Komputerowe, T. Kobus, M. Kokociński 3

Bardziej szczegółowo

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24 Sieci komputerowe Wykład 3: Protokół IP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 3 1 / 24 Przypomnienie W poprzednim odcinku Podstawy warstwy pierwszej

Bardziej szczegółowo

WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU BIAŁYSTOK, ul. Ciepła 40 filia w EŁKU, ul. Grunwaldzka

WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU BIAŁYSTOK, ul. Ciepła 40 filia w EŁKU, ul. Grunwaldzka 14 Protokół IP WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU BIAŁYSTOK, ul. Ciepła 40 Podstawowy, otwarty protokół w LAN / WAN (i w internecie) Lata 70 XX w. DARPA Defence Advanced Research Project Agency 1971

Bardziej szczegółowo

Problemy rozwoju Internetu kwantowego

Problemy rozwoju Internetu kwantowego Instytut Informatyki Teoretycznej i Stosowanej PAN 21 grudnia 2011 Plan wystąpienia Komunikacja kwantowa i sieci kwantowe Komunikacja kwantowa Sieci kwantowe Składniki intersieci kwantowych Powielacze

Bardziej szczegółowo

Struktura adresu IP v4

Struktura adresu IP v4 Adresacja IP v4 E13 Struktura adresu IP v4 Adres 32 bitowy Notacja dziesiętna - każdy bajt (oktet) z osobna zostaje przekształcony do postaci dziesiętnej, liczby dziesiętne oddzielone są kropką. Zakres

Bardziej szczegółowo

Algorytmy routingu. Kontynuacja wykładu

Algorytmy routingu. Kontynuacja wykładu Algorytmy routingu Kontynuacja wykładu Algorytmy routingu Wektor odległości (distnace vector) (algorytm Bellmana-Forda): Określa kierunek i odległość do danej sieci. Stan łącza (link state): Metoda najkrótszej

Bardziej szczegółowo

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek: Uproszczony opis obsługi ruchu w węźle IP Poniższa procedura jest dokonywana dla każdego pakietu IP pojawiającego się w węźle z osobna. W routingu IP nie wyróżniamy połączeń. Te pojawiają się warstwę wyżej

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa Warstwa sieciowa Model OSI Model TCP/IP Aplikacji Prezentacji Aplikacji podjęcie decyzji o trasowaniu (rutingu) na podstawie znanej, lokalnej topologii sieci ; - podział danych na pakiety Sesji Transportowa

Bardziej szczegółowo

Wykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Wykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci komputerowe Wykład Nr 4 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci bezprzewodowe Sieci z bezprzewodowymi punktami dostępu bazują na falach radiowych. Punkt dostępu musi mieć

Bardziej szczegółowo

GRAF DECYZJI O TRASIE PAKIETU

GRAF DECYZJI O TRASIE PAKIETU GRAF DECYZJI O TRASIE PAKIETU ROUTING STATYCZNY W SIECIACH IP Routery są urządzeniami, które na podstawie informacji zawartych w nagłówku odebranego pakietu oraz danych odebranych od sąsiednich urządzeń

Bardziej szczegółowo

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Akademickie Centrum Informatyki PS. Wydział Informatyki PS kademickie Centrum Informatyki PS Wydział Informatyki PS Wydział Informatyki Sieci komputerowe i Telekomunikacyjne Transmisja w protokole IP Krzysztof ogusławski tel. 4 333 950 kbogu@man.szczecin.pl 1.

Bardziej szczegółowo

Przesyłania danych przez protokół TCP/IP

Przesyłania danych przez protokół TCP/IP Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności

Bardziej szczegółowo

SIECI KOMPUTEROWE Adresowanie IP

SIECI KOMPUTEROWE  Adresowanie IP Adresowanie IP Podstawowa funkcja protokołu IP (Internet Protocol) polega na dodawaniu informacji o adresie do pakietu danych i przesyłaniu ich poprzez sieć do właściwych miejsc docelowych. Aby umożliwić

Bardziej szczegółowo

Pracownia sieci komputerowych

Pracownia sieci komputerowych Załącznik nr 4 do zarządzenia nr 12 Rektora UJ z 15 lutego 2012 r. Sylabus modułu kształcenia na studiach wyższych Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Wydział Matematyki

Bardziej szczegółowo

Zadania z sieci Rozwiązanie

Zadania z sieci Rozwiązanie Zadania z sieci Rozwiązanie Zadanie 1. Komputery połączone są w sieci, z wykorzystaniem routera zgodnie ze schematem przedstawionym poniżej a) Jak się nazywa ten typ połączenia komputerów? (topologia sieciowa)

Bardziej szczegółowo

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl) Wydział Elektroniki i Telekomunikacji POLITECHNIKA POZNAŃSKA fax: (+48 61) 665 25 72 ul. Piotrowo 3a, 60-965 Poznań tel: (+48 61) 665 22 93 LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl) Planowanie

Bardziej szczegółowo

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci W miarę rozwoju sieci komputerowych pojawiały się różne rozwiązania organizujące elementy w sieć komputerową. W celu zapewnienia kompatybilności rozwiązań różnych producentów oraz opartych na różnych platformach

Bardziej szczegółowo

Technologie sieciowe

Technologie sieciowe Technologie sieciowe ITA-108 Wersja 1.2 Katowice, Lipiec 2009 Spis treści Wprowadzenie i Moduł I Wprowadzenie do sieci komputerowych I-1 Moduł II Omówienie i analiza TCP/IP II-1 Moduł III Zarządzanie adresacją

Bardziej szczegółowo

Laboratorium Projektowanie i implementowanie schematu adresowania z zastosowaniem zmiennych masek podsieci

Laboratorium Projektowanie i implementowanie schematu adresowania z zastosowaniem zmiennych masek podsieci Laboratorium Projektowanie i implementowanie schematu adresowania z zastosowaniem zmiennych Topologia Cele Część 1: Określenie wymagań sieci Część 2: Projektowanie schematu adresacji z wykorzystaniem masek

Bardziej szczegółowo

ZiMSK NAT, PAT, ACL 1

ZiMSK NAT, PAT, ACL 1 ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl NAT, PAT, ACL 1 Wykład Translacja

Bardziej szczegółowo

Switching czyli przełączanie. Sieci komputerowe Switching. Wstęp. Wstęp. Bridge HUB. Co to jest? Po co nam switching? Czym go zrealizować?

Switching czyli przełączanie. Sieci komputerowe Switching. Wstęp. Wstęp. Bridge HUB. Co to jest? Po co nam switching? Czym go zrealizować? Switching czyli przełączanie Sieci komputerowe Switching dr inż. Piotr Kowalski Katedra Automatyki i Technik Informacyjnych Co to jest? Po co nam switching? Czym go zrealizować? Jakie są problemy? Wstęp

Bardziej szczegółowo

CCNA : zostań administratorem sieci komputerowych Cisco / Adam Józefiok. Gliwice, cop Spis treści

CCNA : zostań administratorem sieci komputerowych Cisco / Adam Józefiok. Gliwice, cop Spis treści CCNA 200-125 : zostań administratorem sieci komputerowych Cisco / Adam Józefiok. Gliwice, cop. 2018 Spis treści Wprowadzenie 13 Rozdział 1. Kilka słów wstępu 15 Firma Cisco 15 Certyfikacja i egzamin 16

Bardziej szczegółowo

Warstwa sieciowa. Adresowanie IP. Zadania. Warstwa sieciowa ćwiczenie 5

Warstwa sieciowa. Adresowanie IP. Zadania. Warstwa sieciowa ćwiczenie 5 Warstwa sieciowa Zadania 1. Co to jest i do czego służy maska podsieci? 2. Jakie wyróżniamy klasy adresów IP? Jakie konsekwencje ma wprowadzenie podziału klasowego adresów IP? Jaka jest struktura adresów

Bardziej szczegółowo

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski Routing część 2: tworzenie tablic Sieci komputerowe Wykład 3 Marcin Bieńkowski W poprzednim odcinku Jedna warstwa sieci i globalne adresowanie Każde urządzenie w sieci posługuje się tym samym protokołem

Bardziej szczegółowo

Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource. Piotr Klimek. piko@piko.homelinux.net

Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource. Piotr Klimek. piko@piko.homelinux.net Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource Piotr Klimek piko@piko.homelinux.net Agenda Wstęp Po co to wszystko? Warstwa WWW Warstwa SQL Warstwa zasobów dyskowych Podsumowanie

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A i sieci komputerowe Szymon Wilk Adresowanie w sieciach 1 1. Klasy adresów IP a) klasa A sieć host 0 mało sieci (1 oktet), dużo hostów (3 oktety) pierwszy bit równy 0 zakres adresów dla komputerów 1.0.0.0-127.255.255.255

Bardziej szczegółowo

Sieci komputerowe Protokoły routingu

Sieci komputerowe Protokoły routingu Sieci komputerowe Protokoły routingu 212-5-24 Sieci komputerowe Protokoły routingu dr inż. Maciej Piechowiak 1 Protokoły routingu 2 Protokoły routingu Wykorzystywane do wymiany informacji o routingu między

Bardziej szczegółowo

1.1 Ustawienie adresów IP oraz masek portów routera za pomocą konsoli

1.1 Ustawienie adresów IP oraz masek portów routera za pomocą konsoli 1. Obsługa routerów... 1 1.1 Ustawienie adresów IP oraz masek portów routera za pomocą konsoli... 1 1.2 Olicom ClearSight obsługa podstawowa... 2 1.3 Konfiguracja protokołu RIP... 5 Podgląd tablicy routingu...

Bardziej szczegółowo

Tutorial 9 Routing dynamiczny

Tutorial 9 Routing dynamiczny 1 Tutorial 9 Routing dynamiczny 1. Wprowadzenie Sieci danych, których używamy na co dzień do nauki, pracy i zabawy to zarówno sieci małe, lokalne, jak i duże, globalne. W domu często mamy router i dwa

Bardziej szczegółowo

MODEL WARSTWOWY PROTOKOŁY TCP/IP

MODEL WARSTWOWY PROTOKOŁY TCP/IP MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych

Bardziej szczegółowo

Wstęp... 2 Ruting statyczny... 3 Ruting dynamiczny... 3 Metryka i odległość administracyjna... 4 RIPv1... 5 RIPv2... 5 EIGRP... 5 EIGRP komunikaty...

Wstęp... 2 Ruting statyczny... 3 Ruting dynamiczny... 3 Metryka i odległość administracyjna... 4 RIPv1... 5 RIPv2... 5 EIGRP... 5 EIGRP komunikaty... Wstęp... 2 Ruting statyczny... 3 Ruting dynamiczny... 3 Metryka i odległość administracyjna... 4 RIPv1... 5 RIPv2... 5 EIGRP... 5 EIGRP komunikaty... 5 EIGRP metryka... 6 EIGRP tablice... 6 EIGRP trasy...

Bardziej szczegółowo

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski Routing część 2: tworzenie tablic Sieci komputerowe Wykład 3 Marcin Bieńkowski W poprzednim odcinku Jedna warstwa sieci i globalne adresowanie Każde urządzenie w sieci posługuje się tym samym protokołem

Bardziej szczegółowo

Konfiguracja połączenia G.SHDSL punkt-punkt w trybie routing w oparciu o routery P-791R.

Konfiguracja połączenia G.SHDSL punkt-punkt w trybie routing w oparciu o routery P-791R. Konfiguracja połączenia G.SHDSL punkt-punkt w trybie routing w oparciu o routery P-791R. Topologia sieci: Lokalizacja B Lokalizacja A Niniejsza instrukcja nie obejmuje konfiguracji routera dostępowego

Bardziej szczegółowo

SIECI KOMPUTEROWE ADRESACJA, MEDIA I URZĄDZENIA SIECIOWE

SIECI KOMPUTEROWE ADRESACJA, MEDIA I URZĄDZENIA SIECIOWE SIECI KOMPUTEROWE ADRESACJA, MEDIA I URZĄDZENIA SIECIOWE 1. Przeliczanie systemów liczbowych a) Dokonać konwersji liczb binarnych na szesnastkowe: 11100011100 2... 16 11111000 2... 16 1010101010 2... 16

Bardziej szczegółowo

Trzy typy sieci Mesh HamNET

Trzy typy sieci Mesh HamNET Trzy typy sieci Mesh HamNET SP2ONG Toruń 2016 Rozwiązania bezprzewodowe technologii mesh są różne, ale większość z nich ma swoje korzenie w technologii Wireless Distribution System (WDS). WDS czyli bezprzewodowy

Bardziej szczegółowo

Sieci Komputerowe. Zadania warstwy sieciowej. Adres IP. Przydzielanie adresów IP. Adresacja logiczna Trasowanie (ang. routing)

Sieci Komputerowe. Zadania warstwy sieciowej. Adres IP. Przydzielanie adresów IP. Adresacja logiczna Trasowanie (ang. routing) Sieci Komputerowe Zadania warstwy sieciowej Wykład 4. Warstwa sieciowa. Adresacja IP. Adresacja logiczna Trasowanie (ang. routing) Urządzenia pracujące w warstwie trzeciej nazywają się ruterami. Fragmentacja

Bardziej szczegółowo

Lab 2 ĆWICZENIE 2 - VLAN. Rodzaje sieci VLAN

Lab 2 ĆWICZENIE 2 - VLAN. Rodzaje sieci VLAN ĆWICZENIE 2 - VLAN Rodzaje sieci VLAN Sieć VLAN tworzą porty jednego lub wielu przełączników. Wyróżnia się dwie odmiany sieci VLAN: statyczne i dynamiczne. W statycznych sieciach VLAN porty te konfigurowane

Bardziej szczegółowo

SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK MODUŁ: SIECI KOMPUTEROWE Dariusz CHAŁADYNIAK Józef WACNIK NIE ARACHNOFOBII!!! Sieci i komputerowe są wszędzie WSZECHNICA PORANNA Wykład 1. Podstawy budowy i działania sieci komputerowych WYKŁAD: Role

Bardziej szczegółowo

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet Sieci Komputerowe Wykład 1: TCP/IP i adresowanie w sieci Internet prof. nzw dr hab. inż. Adam Kisiel kisiel@if.pw.edu.pl Pokój 114 lub 117d 1 Kilka ważnych dat 1966: Projekt ARPANET finansowany przez DOD

Bardziej szczegółowo