rozprawa doktorska-78 - Instytut Badań Systemowych PAN

Transkrypt

rozprawa doktorska-78 - Instytut Badań Systemowych PAN
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 2010
Spis treści
Wstęp.......................................................................................................................................... 7
Rozdział 1................................................................................................................................. 14
Protokół OSPF – zastosowanie i własności ............................................................................. 14
1.1 Skrócony opis protokołu OSPF...................................................................................... 15
1.2 Historia protokołu OSPF................................................................................................ 17
1.3 Podstawowe własności protokołu OSPF........................................................................ 18
1.3.1 Wsparcie protokołu OSPF dla różnych typów sieci................................................ 18
1.3.2 Obsługa masek IP o zmiennej długości................................................................... 23
1.3.3 Podział systemów autonomicznych na obszary ...................................................... 24
1.3.4 Budowa i wykorzystanie bazy stanów łączy........................................................... 29
1.3.5 Budowa i wykorzystanie drzewa najkrótszych ścieżek .......................................... 31
1.3.6 Typy komunikatów używanych przez OSPF .......................................................... 32
1.3.7 Rodzaje routerów .................................................................................................... 39
1.4 Dodatkowe własności protokołu OSPF.......................................................................... 40
1.5 Bezpieczeństwo w protokole OSPF ............................................................................... 42
1.6 Równoważenie obciążenia w protokole OSPF .............................................................. 44
1.6.1 Inne rozwiązania równoważenia obciążenia ........................................................... 46
1.7 Podsumowanie ............................................................................................................... 54
Rozdział 2................................................................................................................................. 55
Równoważenie obciążenia z wykorzystaniem tras o równym i nierównym koszcie .............. 55
2.1 Ogólny opis proponowanego rozwiązania ..................................................................... 55
2.2 Szczegółowy opis proponowanego rozwiązania............................................................ 56
2.2.1 Warunki niezbędne do włączenia (wyłączenia) równoważenia obciążenia typu NK
.......................................................................................................................................... 56
2.2.2 Utworzenie tablicy routingu zawierającej odpowiednie wpisy .............................. 57
2.2.3 Rozdzielenie ruchu sieciowego na różne trasy według przyjętego algorytmu ....... 65
2.3 Przykłady działania protokołu OSPF ............................................................................. 67
2.4 Dodatkowe aspekty proponowanego rozwiązania ......................................................... 68
2.5 Sposób generowania i dystrybucji parametrów beta...................................................... 73
2.6 Spodziewane wyniki ...................................................................................................... 77
Rozdział 3................................................................................................................................. 79
Teoretyczne aspekty głównego zagadnienia badawczego ....................................................... 79
- 3 -
3.1. Graf dwudzielny jako model środowiska sieciowego................................................... 80
3.2 Sformułowanie zadań optymalizacji .............................................................................. 81
3.2.1 Sformułowanie zagadnienia optymalizacji jako zadania programowania liniowego
.......................................................................................................................................... 81
3.2.2 Sformułowanie zagadnienia optymalizacji jako zadania programowania NCSP ... 84
3.3 Zasada działania metody dokładnej - Simplex............................................................... 85
3.4 Budowa algorytmu wyznaczania przepustowości środowiska sieciowego ................... 89
3.4.1 Ograniczenia algorytmu wyznaczania przepustowości środowiska sieciowego .... 97
3.4.2 Zmienne decyzyjne w metodzie SW wykorzystującej algorytm 3 ......................... 98
3.4.3 Zbiór rozwiązań dopuszczalnych dla metody SW wykorzystującej algorytmu
wyznaczania przepustowości środowiska sieciowego ..................................................... 98
3.4.4 Analiza funkcji celu dla metody SW....................................................................... 99
3.5 Obliczenia i symulacja dla środowiska z rys. 3.2 ........................................................ 100
3.5.1 Opis przyjętych warunków początkowych ........................................................... 101
3.5.2 Obliczenia.............................................................................................................. 103
3.5.3 Symulacja .............................................................................................................. 107
3.6 Inne przykłady.............................................................................................................. 108
Rozdział 4............................................................................................................................... 115
Optymalizacja przepustowości środowiska sieciowego z zastosowaniem metody
symulowanego wyżarzania .................................................................................................... 115
4.1 Szczegółowy opis metody badawczej .......................................................................... 116
4.2 Propozycja udoskonalenia algorytmu symulowanego wyżarzania .............................. 120
4.3 Zastosowanie symulowanego wyżarzania do optymalizacji przepustowości środowiska
sieciowego .......................................................................................................................... 126
4.4 Scenariusze przeprowadzonych badań......................................................................... 129
4.5 Złożoność obliczeniowa zastosowanej metody............................................................ 135
4.6 Podsumowanie ............................................................................................................. 140
Rozdział 5............................................................................................................................... 141
Wyniki przeprowadzonych badań .......................................................................................... 141
5.1 Wyniki otrzymane metodą symulowanego wyżarzania............................................... 141
5.2 Wyniki badań przeprowadzonych z wykorzystaniem metody dokładnej .................... 149
5.3 Podsumowanie ............................................................................................................. 151
Rozdział 6............................................................................................................................... 152
Analiza uzyskanych wyników................................................................................................ 152
- 4 -
6.1 Analiza uzyskanych wyników przy braku równoważenia obciążenia, oraz z
równoważeniem typu RK i NK . ........................................................................................ 152
6.2 Czasy pracy algorytmu SW oraz metody dokładnej. ................................................... 154
6.3 Złożoność metody Simplex.......................................................................................... 154
6.4 Porównanie złożoności innych wybranych metod heurystycznych i metody SW....... 160
6.5 Porównanie złożoności algorytmu symulowanego wyżarzania oraz metody Simplex.
............................................................................................................................................ 166
6.6 Ocena zasadności stosowania algorytmów heurystycznych do badanego zagadnienia w
kontekście metod dokładnych. ........................................................................................... 172
6.7 Niezawodność proponowanego rozwiązania. .............................................................. 173
6.8 Omówienie algorytmu 3 tj. wyznaczania Ψ(b) oraz jego wad i zalet. ......................... 174
6.9 Podsumowanie ............................................................................................................. 178
Zakończenie ........................................................................................................................... 179
Bibliografia i odnośniki.......................................................................................................... 182
Spis ilustracji .......................................................................................................................... 191
Spis tabel ................................................................................................................................ 193
Spis wykresów........................................................................................................................ 194
Załącznik I.............................................................................................................................. 195
Kod oprogramowania użytego do przeprowadzenia optymalizacji przepustowości środowiska
sieciowego.............................................................................................................................. 195
Załącznik II ............................................................................................................................ 195
Przykładowe zastosowanie równoważenia obciążenia typu NK – informacja wstępna. ....... 195
Załącznik III ........................................................................................................................... 196
Notacja, słowniczek oraz wykaz użytych terminów i oznaczeń ............................................ 196
Załącznik IV........................................................................................................................... 204
Analiza funkcji celu dla metody SW...................................................................................... 204
- 5 -
- 6 -
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ą” [10]. 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 -
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 [31][32]. Bez względu na
to, czy dany protokół jest zaprojektowany do pracy wewnątrz systemu autonomicznego1 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
1
Przez pojęcie system autonomiczny należy rozumieć sieć lub grupę sieci będących pod wspólną i spójną
administracyjna kontrolą.
- 8 -
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ściciela2 jest prawnie
zabroniona [13] [14] [31] [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 [1] [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.
- 9 -
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 [1] [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 koszcie3 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 = (10E8 /
szerokość pasma) tego łącza.
- 10 -
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 wirtualnej4 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.
- 11 -
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.
- 12 -
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.
- 13 -
Rozdział 1.
Protokół OSPF – zastosowanie i własności
W celu nawiązania łączności pomiędzy komputerami znajdującymi się w różnych sieciach5
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 IP6 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 sieci7, 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 1, 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 [15].
6
Adres IP (Internet Protocol address) - to unikatowy adres numeryczny przyporządkowany urządzeniom sieci
komputerowych, funkcjonujących z wykorzystaniem protokół IP [15].
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.
- 14 -
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 1.1. 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][31][36][40][41].
1.1 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
- 15 -
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 Dijkstry9 (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. 1.4 i 1.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
bezklasowy10. 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 1.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.
10
Routing bezklasowy – typ routingu wykorzystujący agregację adresów sieciowych, mającą na celu
zmniejszenie rozmiaru tablicy routingu.
- 16 -
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 10 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 = 108 / 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].
1.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 1987 roku utworzyła grupę badawczą
mającą za zadanie rozwiązać zaistniały problem. Po stosunkowo długim okresie prac w
październiku 1989 roku w RFC 1131 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 1991 roku w RFC 1247. 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 1583, RFC 2178, RFC 2328. Dodatkowo OSPF wspiera wersję
szóstą protokołu IP (Internet Protocol) przedstawioną w RFC 1883, 1884. Ponadto sama
nazwa protokołu nie jest przypadkowa i łączy w sobie dwie jego podstawowe cechy. Pierwszą
- 17 -
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.
1.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 1.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. 1.5
oraz 1.6.
1.3.1 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).
- 18 -
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 1.1.
Rys. 1.1. 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łów11 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 sieci12, 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
11Przez 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.
12 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ą.
- 19 -
„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. 1.2.
- 20 -
Rys. 1.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
- 21 -
podrozdziale, schemat sieci NBMA jest identyczny jak sieci broadcastowej i jako
przykładowy można potraktować przedstawiony na rys. nr 1.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 1.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. 1.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.
- 22 -
Rys. 1.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.
1.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ć 10.1.1.0 można podzielić na trzy podsieci. Podsieć
pierwsza 10.1.1.0 z maską 255.255.255.128, podsieć druga 10.1.1.128 z maską
255.255.255.192, a także podsieć trzecia 10.1.1.192 z maską 255.255.255.192. Dzięki
zastosowaniu metody VLSM powstaje bardzo elastyczny mechanizm umożliwiający
dopasowanie adresacji sieci do potrzeb poszczególnych organizacji, np. poprzez przypisanie
- 23 -
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: 192.168.1.0, 192.168.1.64, 192.168.1.128 i 192.168.1.192 każda z maską 26 bitową
wchodzących w skład jednego obszaru OSPF jako jednej sieci 192.168.1.0 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 NAT13 (network address translation) zostały zaproponowanej
jako rozwiązania mające spowolnić tempo „wyczerpywania” się publicznych adresów IP.
1.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;
13
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.
- 24 -
•
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
- 25 -
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:
1. 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 1 i 3. Przykładowe połączenie obszarów w protokole OSPF zostało
przedstawione na rys. 1.4.
Rys. 1.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;
- 26 -
•
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.
1.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 1).
Wszystkie przedstawione na rys. 1.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. 1.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 1).
- 27 -
Rys. 1.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
- 28 -
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).
1.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 224.0.0.6 - routera desygnowanego, który następnie
rozsyła otrzymany pakiet na adres typu multicast 224.0.0.5. 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
- 29 -
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
- 30 -
zbieżności około 10 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 1.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.
1.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 Dijkstry14. 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
14
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.
- 31 -
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.
1.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 (224.0.0.5 – wszystkie routery,
224.0.0.6 – 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.
- 32 -
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # |
1
|
Packet length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Router ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Area ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
AuType
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Network Mask
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
HelloInterval
| Options | Rtr Pri |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
RouterDeadInterval
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Designated Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Backup Designated Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Neighbor
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.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, Mbit, MS-bit, numer sekwencyjny.
- 33 -
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # |
2
|
Packet length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Router ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Area ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
AuType
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Interface MTU
| Options |0|0|0|0|0|I|M|MS|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
DD sequence number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
+An LSA Header
-+
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.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.
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # |
3
|
Packet length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Router ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Area ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
AuType
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS type
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link State ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Advertising Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.8. Schemat budowy pakietu „Link State Request”.
- 34 -
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 224.0.0.6 oraz 224.0.0.5. 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.
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version # |
4
|
Packet length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Router ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Area ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
AuType
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Authentication
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
# LSAs
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
++-+
|
LSAs
|
++-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.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);
- 35 -
•
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.
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS age
| Options |
1
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link State ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Advertising Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS sequence number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS checksum
|
length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 |V|E|B|
0
|
# links
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link Data
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Type | # TOS |
metric
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
TOS
|
0
|
TOS metric
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link Data
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.10. 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
- 36 -
i opisują wszystkie routery podłączone do danej sieci (także router desygnowany oraz
zapasowy router desygnowany).
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS age
| Options |
2
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link State ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Advertising Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS sequence number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS checksum
|
length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Network Mask
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Attached Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.11. 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.
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS age
| Options | 3 or 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Link State ID
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Advertising Router
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS sequence number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS checksum
|
length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Network Mask
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
0
|
metric
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
TOS
|
TOS metric
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
...
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Rys. 1.12. Schemat budowy pakietu „Summary LSA”.
- 37 -
Warto dodać, że w przypadku występowania obszarów posiadających tylko jeden router
graniczny (ang. stub area15), 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 „LinkState ID” oraz „maska sieciowa” zawierają adres 0.0.0.0.
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
LS age
| Options |
5
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
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. 1.13. 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
15
Sieć (obszar) typu stub jest to sieć posiadająca tylko jedną trasę do komunikacji z innymi sieciami.
- 38 -
zbudowany w technologii Ethernet. Wówczas komunikaty OSPF są wykorzystywane w
sposób następujący.
1. 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:
1. 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.
1.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;
- 39 -
•
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:
192.168.1.0, 192.168.1.64, 192.168.1.128 i 192.168.1.192 każda z maską 26 bitową
wchodzących w skład jednego obszaru OSPF do jednej sieci 192.168.1.0 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.
1.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
- 40 -
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: Ebit, 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 [118].
N/P-bit – informuje czy wspierana jest obsługa pakietów LSA typu siódmego zgodnie ze
specyfikacja zawartą w dokumencie [119].
EA-bit – informuje czy dany router wspiera obsługę i przesyłanie pakietów ExternalAttributes-LSA zgodnie ze specyfikacją zawartą w dokumencie [120].
DC-bit – informuje czy router obsługuje tzw. (ang. demand circuits) zgodnie ze specyfikacją
zawartą w dokumencie [121]. 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ść redystrybucji16 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 [61].
16
Redystrybucja tras polega na wymianie informacji o trasach pomiędzy różnymi protokołami (np. RIP i OSPF).
- 41 -
1.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
- 42 -
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 1 – 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
1, 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:
- 43 -
1. 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.
1. 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órzenie17 (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 1960 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.
1.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
17
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.
- 44 -
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.
- 45 -
1.6.1 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
- 46 -
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
- 47 -
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 [51]), 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
- 48 -
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 [71], 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
- 49 -
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 [122]. 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.
- 50 -
„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
- 51 -
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 0.988. Natomiast czas, w
jakim algorytm działa w danej temperaturze jest wydłużany wraz z jej spadkiem o wartość
parametru beta = 1.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
- 52 -
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 = c0 (1 −
k α
) , gdzie „K” jest maksymalną z góry założoną liczbą połączeń w analizowanej
K
sieci, „k” - liczbą połączeń przeanalizowanych przez algorytm w danej iteracji, zaś c0 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 1,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 [81] 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
- 53 -
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
[18][19][30][34][37][42][55][60][67][70][74].
1.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.
- 54 -
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.1 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
- 55 -
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.
2.2.1 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,1> 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
- 56 -
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).
2.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 ≤ copt* γ
(2.1)
gdzie:
c – koszt analizowanej trasy;
copt – 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 <1,128>.
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 ≤ copt* αi * βi
(2.2)
gdzie:
- 57 -
β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 Ri 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 Ri
przyjmują wartości całkowite z przedziału 1 ≤ αi ≤ deg(Ri)-1, gdzie deg(Ri) jest stopniem
wierzchołka Ri, 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”18 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 Ri), 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 1, to żadna trasa alternatywna (o koszcie
wyższym od optymalnego) nie zostanie dodana do tablicy routingu danego routera.
Jednocześnie przyjmujemy, że αi ≥ 1, czyli równoważenie obciążenia typu NK działa tylko
18
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.
- 58 -
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 (cmax) z danego routera do dowolnej sieci docelowej znajdującej się w obrębie
obszaru OSPF i przyjmuje wartości z przedziału 0 < βi ≤ βimax, gdzie βimax także zależy od
maksymalnego kosztu osiągnięcia sieci docelowej i jest wyrażone poniższym wzorem.
βimax =
c max
(n max − 1) c opt
(2.3)
przy czym nmax jest maksymalną liczbą interfejsów, przez które prowadzą trasy (optymalna i
alternatywne) do sieci docelowej. Warto zauważyć, że nmax jest zawsze większe od jedności.
Dla nmax=1 występuje tylko jedna trasa do sieci docelowej, czyli równoważenie obciążenia
- 59 -
typu NK jest wyłączone, a tym samym stosowanie w takiej sytuacji wzoru (2.3) staje się
bezzasadne.
Schemat blokowy algorytmu 1, służącego do budowy tablicy routingu został przedstawiony
na rys. 2.1. W tym miejscu warto bardziej szczegółowo wyjaśnić, jaka jest jego rola oraz
powiązanie z algorytmem SW. Mianowicie, algorytm 1 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 1 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.
- 60 -
Rys. 2.1. Schemat blokowy algorytmu 1 służącego do budowy tablicy routingu z wykorzystaniem tras typu NK.
Oto werbalny opis algorytmu 1:
1. 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ść
- 61 -
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 110. 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
- 62 -
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.
10. 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.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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
- 63 -
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.
16. Usunięcie zawartości tablicy [koszt, trasa] i przejście do punktu szóstego.
17. 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 1 tj. z rys. 2.1) więc jego opis werbalny został pominięty.
- 64 -
Rys. 2.2. Schemat blokowy algorytmu 2 służącego do budowy tablicy routingu z wykorzystaniem tras typu RK.
2.2.3 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 t1, t2, t3 prowadzących do danej
sieci, pakiety z adresu „A” są kierowane trasą t1, z adresu „B” trasą t2, z adresu „C” trasą t3 z
adresu „D” trasą t1 itd. Drugi sposób polega na cyklicznym podziale pakietów pomiędzy
- 65 -
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 PAT19 (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,
19
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 1023.
- 66 -
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] [91] [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 R1 wykonuje następujące operacje:
•
ustala relacje sąsiedztwa z R2 i R5 (routery komunikują się z wykorzystaniem
technologii Ethernet);
- 67 -
•
wymienia się z routerami R2 i R5 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 R1 wyznacza drzewo najkrótszych ścieżek z
sobą jako korzeniem;
•
na podstawie informacji zawartych w drzewie najkrótszych ścieżek router R1
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 10.0.1.0/24)
prowadzi z R1 przez routery R2, R4, R5. W tablicy routingu pojawia się wpis zawierający
następujące informacje: sieć numer 10.0.1.0 osiągalna jest poprzez interfejs E1 z kosztem 3,
gdzie E1 jest interfejsem routera R1 łączącym go z routerem R2. W sytuacji kiedy router R1
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. 2.4.
- 68 -
Rys. 2.3. 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: 1,1,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 H2 komunikując się z komputerem H3 zajmuje
całe lub znaczną część pasma łącza R1 – R2, wówczas komunikacja komputera H1 z
komputerem H4 odbywająca się na trasie o najniższym koszcie, czyli R1 – R2 – R3, 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 H1 – H4 z wykorzystaniem połączenia o koszcie 3, czyli
R1 – R3. 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. 2.4.
- 69 -
Rys. 2.4. Przykład sieci typu „stub”.
Ponieważ z sieci, w której znajduje się komputer H1 prowadzi na zewnątrz tylko jedna trasa
(poprzez łącze R1 – R2), więc w sytuacji silnego obciążenia interfejsu R1 (od strony R2)
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 R2, który posiada dwa interfejsy wyjściowe w kierunku komputera H2. Dla kierunku
przeciwnego (H2 – H1) włączenie zaproponowanej formy równoważenia obciążenia na R5 jest
jak najbardziej uzasadnione natomiast na R2 już nie, analogicznie na routerach R3 i R4.
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. 2.5.
Rys. 2.5. Drugi przykład topologii sieci komputerowej.
- 70 -
Z R1 do sieci, w której znajduje się H2 prowadzą trzy następujące trasy:
1. bezpośrednio do R5, a następnie do H2;
2. poprzez routery R2, R3, R5, a następnie do H2;
3. poprzez routery R2, R4, R5, a następnie do H2.
Poniższa tabela nr 2.1 przedstawia koszty tras oraz nazwy routerów następnego skoku, jakie
„zna” R1 trasując pakiet od H1 do H2.
Tabela 2.1. Koszt tras oraz nazwa routera następnego skoku do sieci z komputerem H2 z rys. 2.5.
Koszt trasy
Router następnego skoku
3
R2
4
R2
5
R5
Trasy o sumacyjnym koszcie 3 i 4 tj. odpowiednio poprzez routery R1, R2, R4, R5 oraz R1, R2,
R3, R5, prowadzą przez ten sam router następnego skoku (R2), 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 R2. Drugą trasą wpisaną do tablicy routingu powinna być
trasa o koszcie 5 prowadząca przez R5 (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
- 71 -
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. 2.6.
Rys. 2.6. Trzeci przykład topologii sieci komputerowej.
W przykładzie tym komunikacja odbywa się w sposób następujący: H1 – H3 oraz H2 – H4.
Koszty tras pomiędzy routerami zostały przedstawione w tabeli numer 2.2.
Tabela 2.2. Koszty tras pomiędzy routerami przedstawionymi na rys. 2.6.
Połączenie
R1 – R2
R1 – R3
R2 – R4
R2 – R5
R3 – R5
R4 – R6
R5 – R6
Koszt trasy
1
1
10
100
1
10
1
W sytuacji kiedy równoważenie obciążenia typu NK jest wyłączone komunikacja H1 – H3
odbywa się tylko i wyłącznie na trasie R1 – R3, natomiast komunikacja H2 – H4 odpowiednio
na trasie R1 – R3 – R5 – R6. Przy założeniu równego dostępu do medium transmisyjnego
- 72 -
wszystkich konkurujących komputerów, przepustowość komunikacji H1 – H3 będzie wynosiła
0.5 Gb/s, tak samo jak komunikacji H2 – H4 (obydwie trasy optymalne prowadzą przez ten
sam interfejs łączący R1 z R3). W efekcie całkowita przepustowość sieci (przy tego typu
komunikacji) wynosi 1Gb/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 H1 – H3
będzie odbywała się po następujących trasach z odpowiednimi szybkościami:
•
R1 – R3 z 0.5 Gb/s;
•
R1 – R2 – R5 – R3 z 5 Mb/s;
•
R1 – R2 – R4 – R6 – R5 – R3 z 50 Mb/s.
Sumacyjnie otrzymujemy szybkość komunikacji H1 – H3 równą 555Mb/s.
Natomiast komunikacja H2 – H4 będzie odbywała się następującymi trasami:
•
R1 – R3 – R5 – R6 z 0.5 Gb/s;
•
R1 – R2 – R4 – R6 z 50 Mb/s;
•
R1 – R2 – R5 – R6 z 5 Mb/s.
W rezultacie efektywna szybkość transmisji między komputerami H1 i H4 wyniesie 555 Mb/s,
a całkowita przepustowość sieci - 1110 Mb/s i będzie o 110 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
- 73 -
określa liczbę przeciążonych interfejsów. W następstwie tego zmienia się wartość αi (liczba
przeciążonych interfejsów routera Ri), 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 8.00-9.00 należy się spodziewać, że w godzinach 8.00-10.00
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
- 74 -
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
- 75 -
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
- 76 -
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:
- 77 -
•
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.
- 78 -
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].
- 79 -
3.1. Graf dwudzielny jako model środowiska sieciowego
Dla dalszej analizy badanego zagadnienia, adekwatnym modelem środowiska sieciowego jest
graf dwudzielny20. W grafie takim występują dwa rodzaje wierzchołków. Pierwszym
rodzajem są wierzchołki, odpowiadające sieciom S1, S2, ..., Sy oraz wierzchołki
odpowiadające routerom R1, R2, ..., Rm. 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ć Sa z routerem Rb
oznaczane jest symbolem ei
Rys. 3.1. 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. 3.2.
20
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.
- 80 -
Rys. 3.2. 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.
3.2.1 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
- 81 -
(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 {Ri: 1 ≤ i ≤ m } należący do zbioru routerów {R1, ...,Rm}.
n – liczba łączy – krawędzi grafu.
E – zbiór łączy, E={e1,...,en}oraz {ej: 1 ≤ j ≤ n }.
πj – nominalna przepustowość łącza ej, 1 ≤ j ≤ n .
r – liczba par komunikujących się routerów.
( R1k , R2k ) – k-ta para komunikujących się routerów, indeks górny oznacza numer pary, indeks
dolny oznacza kolejność w parze, tzn. R1k jest routerem początkowych k-tej pary, a
R2k jej routerem końcowym, 1 ≤ k ≤ r .
- 82 -
x kj – współczynnik obciążenia łącza ej przez parę routerów ( R1k , R2k ), ilość danych
x kj ∈< 0, π j > , 1 ≤ k ≤ r , 1 ≤ j ≤ n .
przesłanych między routerami tej pary,
Zmienne decyzyjne w sformułowanym poniżej zadaniu optymalizacji.
x k - wektor współczynników obciążenia łączy dla pary numer k, x k = [ x1k ,..., x nk ]T , 1 ≤ k ≤ r .
dk – całkowita ilość danych do przesłania między routerami pary ( R1k , R2k ), 1 ≤ k ≤ r .
D – macierz ruchu sieciowego o rozmiarach r * m i elementach δ ki zdefiniowanych
następująco: δ ki = d k jeśli Ri = R2k (Ri jest węzłem początkowym pary k), δ ki = − d k
jeśli Ri = R1k (vi jest węzłem końcowym pary k), w pozostałych przypadkach
δ ki = 0 , 1 ≤ k ≤ r , 1 ≤ i ≤ m .
δk – wektor złożony z elementów k-tego wiersza macierzy D, δ k = [δ k 1 ,..., δ km ]T , 1 ≤ k ≤ r .
B – zmodyfikowana macierz incydencji grafu, o rozmiarach m * n i elementach bij
zdefiniowanych następująco: bij = −1 jeśli łącze ej prowadzi do routera vi, bij = 1 jeśli
łącze ej prowadzi od routera vi, w pozostałych przypadkach bij = 0 , 1 ≤ i ≤ m ,
1 ≤ j ≤ n . Kierunkowość łączy wynika z wcześniejszych założeń.
f – funkcja celu zadania optymalizacji określona na zmiennych decyzyjnych –
współczynnikach x kj , 1 ≤ j ≤ n , 1 ≤ k ≤ r , następującym wzorem
r
n
f = ∑∑ x kj
(3.1)
k =1 j =1
Zadanie optymalizacji polega na znalezieniu minimum funkcji f określonej wzorem (3.1) przy
czym zmienne decyzyjne spełniają następujące ograniczenia
∀1 ≤ k ≤ r
,
∀1 ≤ j ≤ n
x kj ≥ 0
(3.2)
r
∀1 ≤ j ≤ n
∑x
k
j
≤πj
(3.3)
k =1
∀1 ≤ k ≤ r
Bx k = δ k
(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
- 83 -
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 [113] oraz później Karmarkara [115], 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 [117]. 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. [116].
3.2.2 Sformułowanie zagadnienia optymalizacji jako zadania programowania NCSP
W przedstawionym zadaniu, optymalizacja jest przeprowadzana poprzez maksymalizację
wartości funkcjonału wyrażonego wzorem (3.31). 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 = [ β1 ,..., β m ]T .
βi – wartość współczynnika beta dla routera Ri, 1 ≤ i ≤ m . Współczynniki te są zmiennymi
decyzyjnymi w przedstawionym w dalszym ciągu zadaniu optymalizacji.
βimax – maksymalna wartość współczynnika βi wyliczana ze wzoru (2.3), 1 ≤ i ≤ m .
lk(b) – liczba tras komunikacji dla pary routerów ( R1k , R2k ), 1 ≤ k ≤ r .
t qk (b) – trasa nr q dla pary routerów dla pary routerów ( R1k , R2k ), 1 ≤ q ≤ l k (b) , 1 ≤ k ≤ r .
Ψ (k , q, b) – efektywna przepustowość trasy t qk (q) dla danego wektora b, 1 ≤ q ≤ l k (q ) ,
1≤ k ≤ r.
- 84 -
Ψ nom (k , q, b) – nominalna przepustowość trasy t qk (b) .
Ψ (b) – całkowita przepustowość środowiska sieciowego wyliczana ze wzoru (3.31) (według
opisanego w dalszym ciągu autorskiego algorytmu 3. Jest to funkcja celu zadania
optymalizacji, określona na zmiennych decyzyjnych – współczynnikach βi, 1 ≤ i ≤ m ,
następującym wzorem.
r lk ( b )
Ψ (b) = ∑ ∑ Ψ (k , q, b)
(3.5)
k =1 q =1
Zadanie optymalizacji polega na znalezieniu maksimum funkcji Ψ (b) określonej wzorem
(3.5), przy czym zmienne decyzyjne spełniają następujące ograniczenia:
1≤ k ≤ r
∀1 ≤ q ≤ l k (b)
∀1 ≤ i ≤ m
0 ≤ Ψ (k , q, b) ≤ Ψ nom (k , q, b)
0 ≤ β i ≤ β imax
(3.6)
(3.7)
lk ( b )
∀1 ≤ k ≤ r
∑ Ψ ( k , q, b ) ≥ d
k
(3.8)
q =1
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ć.
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:
- 85 -
n
z = ∑cj xj
(3.9)
j =1
przy następujących ograniczeniach liniowych:
n
∀1 ≤ i ≤ m
∑a
ij
x j ≤ bi
(3.10)
j =1
∀1 ≤ j ≤ n
xj ≥ 0
(3.11)
gdzie:
z – wartość funkcji celu.
cj – współczynniki funkcji celu, znane stałe, gdzie 1 ≤ j ≤ n .
xj – argumenty funkcji celu – zmienne decyzyjne zadania optymalizacji, gdzie 1 ≤ 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ń.
aij – współczynniki nierówności ograniczeń – znane stałe, gdzie 1 ≤ i ≤ m , 1 ≤ j ≤ n ,
elementy macierzy A.
A - macierz współczynników aij o rozmiarach mxn, gdzie i odpowiada numerowi wiersza
macierzy, a j numerowi kolumny, oraz 1 ≤ i ≤ m , 1 ≤ j ≤ n .
aj – wektor współczynników aij złożony z elementów j-tej kolumny macierzy A.
bi – wartości ograniczeń – znane stałe, gdzie 1 ≤ i ≤ m .
Opis działania metody Simplex rozpocznę od przedstawienia opisu jej poszczególnych
etapów (kroków). Według [106] są one następujące:
•
krok 0 - sprowadzenie zadania do postaci kanonicznej – bazowej;
•
krok 1 - 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.1 jest szczególnym
- 86 -
przypadkiem zadania ogólnego. Specyfika zadania z podrozdziału 3.2.1 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:
si – zmienna swobodna dodawana do nierówności ograniczeń, gdzie 1 ≤ i ≤ m .
xib - zmienne bazowe, zmienne decyzyjne aktualnie znajdujące się w bazie tablicy Simplex,
gdzie 1 ≤ i ≤ m .
Rozwiązanie bazowe układu równań (3.10) jest to wektor utworzony ze zmiennych bazowych.
Tablica simpleksowa jest to dwuwymiarowa tablica zawierająca następujące elementy:
wartości zmiennych
c1
c2
bazowych
x1
x2
.......
.......
xib
cn
s1
s2
xn
0
0
...
sm
wartości ograniczeń
0
bi
aij
Rys. 3.3. 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 [106] [107].
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 si dla każdego ograniczenia.
Możliwe są przy tym dwa przypadki:
Przypadek pierwszy – ograniczenia w postaci „większościowej”..
a i1 x1 + a i 2 x 2 + ... + a in x n ≥ bi
(3.12)
Przypadek drugi – ograniczenia w postaci „mniejszościowej”.
a i1 x1 + a i 2 x 2 + ... + a in x n ≤ bi
(3.13)
W pierwszym przypadku wyrażenie (3.13) jest przekształcane do następującej postaci:
a i1 x1 + a i 2 x 2 + ... + a in x n − s i = bi
(3.14)
a i1 x1 + a i 2 x 2 + ... + a in x n + s i = bi
(3.15)
a w drugim do następującej:
gdzie
- 87 -
∀1 ≤ i ≤ m
∀1 ≤ j ≤ n
bi ≥ 0
si ≥ 0
xj ≥ 0
(3.16)
(3.17)
Krok 1 - polega na wyznaczeniu pierwszego rozwiązania bazowego w taki sposób, że
wartości wszystkich zmiennych bazowych są przyjmowane za zero, czyli
xib =[x1,...xm]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.
∀1 ≤ j ≤ n
T
χ j = c j − xib a j
(3.18)
gdzie χ j są współczynnikami optymalności.
Współczynniki optymalności można rozumieć jako miary jednostkowego przyrostu wartości
funkcji celu dla odpowiadających im zmiennych.
Rozwiązanie jest optymalne (z chwilą jego znalezienia następuje zatrzymanie algorytmu), gdy
wskaźniki optymalności dla wszystkich zmiennych niebazowych są:
nieujemne ( ∀1 ≤ j ≤ n χ j ≥ 0 ) – dla zadania minimalizacji
niedodatnie ( ∀1 ≤ j ≤ n χ j ≤ 0 ) – dla zadania maksymalizacji.
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 xk,
gdzie indeksowi k odpowiada największa wartość wskaźnika optymalności, czyli
- 88 -
x k : max( χ j : 1 ≤ j ≤ n)
•
(3.19)
w przypadku zadania minimalizacji do bazy jest wstawiana ta zmienna decyzyjna xk,
gdzie indeksowi k odpowiada najmniejsza wartość wskaźnika optymalności, czyli
x k : min( χ j : 1 ≤ j ≤ n)
(3.20)
Kryterium wyjścia – z bazy usuwamy zmienną xlb , gdzie indeksowi l odpowiada najmniejsza
wartość ilorazu bi/aik, gdzie k jest wyznaczone z (3.19) albo (3.20), a 1 ≤ i ≤ m, czyli
bl
b
b b
= min( 1 , 2 ,..., m )
alk
a1k a 2 k
a mk
(3.21)
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.
a lj* =
a lj
a lk
(3.22)
gdzie:
aij* - nowe elementy macierzy A.
Natomiast elementy pozostałych wierszy w sposób przedstawiony następującym wzorem
aij* = aij − alj* * aik
(3.23)
W sposób analogiczny należy postąpić wyznaczając nowe wartości elementów bi.
Dalej następuje powrót do kroku drugiego.
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][104][105].
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.31) 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.31) umożliwia wyznaczenie przepustowości środowiska
sieciowego w sposób analityczny.
- 89 -
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 ej (dla wszystkich komunikujących się par
routerów ( R1k , R2k )).
Q j (b) – efektywna przepustowość łącza ej (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 qk (b) (mierzona w MB/s) i wyznaczana ze wzoru (3.28).
Ψk* (b) – efektywna przepustowość komunikacji dla k-tej pary routerów (mierzona w Mb/s) i
wyznaczana ze wzoru (3.29),
T k (b) - trasy t qk (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 1, wyznacza wszystkie acykliczne i rozłączne u źródła trasy pomiędzy
routerami ( R1k , R2k ). 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
- 90 -
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
1. Wyznaczyć wszystkie dopuszczalne trasy routingu dla każdej z komunikujących się
pary routerów, tj.
∀1 ≤ 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.
t 12 (b)=(e4, e2, ... ,e8) gdzie t qk (b) ∈ T k (b)
(3.25)
2. Obliczenie dla każdego łącza, w ilu trasach ono występuje.
r lk ( b )
∀1 ≤ j ≤ n
λ j (b) = ∑ ∑ γ j (t qk (b))
(3.26)
k =1 q =1
1 e j ∈ t 
gdzie γ j (t qk (b)) = 
 , a t jest pewną trasą.
0 e j ∉ t 
3. Obliczenie dla każdego łącza sieci jego efektywnej przepustowości.
∀1 ≤ j ≤ n
Q j (b) =
πj
λ j (b)
(3.27)
4. Wyznaczenie dla każdej z trasy z T k (b) jej przepustowości efektywnej.
^
∀1 ≤ k ≤ r , ∀1 ≤ q ≤ l k (b)
Ψ (k , q, b) = min(Q j (b) : e j ∈ t qk (b))
(3.28)
5. Wyznaczenie przepustowości komunikacji pomiędzy k-tą parą routerów.
lk ( b ) ^
*
k
∀1 ≤ k ≤ r Ψ (b) =
∑ Ψ ( k , q, b)
(3.29)
q =1
6. Wyznaczenie przepustowości środowiska sieciowego jako sumę przepustowości
wszystkich komunikujących się z sobą par sieci.
r
Ψ (b) = ∑ Ψk* (b)
(3.30)
k =1
W efekcie wzór na przepustowość środowiska sieciowego (Ψ(b)) przyjmuje poniższą postać.
r lk ( b ) ^
Ψ (b) = ∑ ∑ Ψ (k , q, b)
(3.31)
k =1 q =1
- 91 -
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 1 ≤ k ≤ r do
forall 1 ≤ q ≤ l k (b) do
T k (b) ←trasy(k,b);
end forall
end forall
forall 1 ≤ j ≤ n do
λ j (b) ← 0;
end forall
forall 1 ≤ k ≤ r do
forall 1 ≤ q ≤ l k (b) do
if ej ∈ t qk (b) then
λ j (b) ← λ j (b) + 1;
end if
end forall
end forall
forall 1 ≤ j ≤ n do
Q j (b) ←
πj
;
λ j (b)
end forall
forall 1 ≤ k ≤ r do
forall 1 ≤ q ≤ l k (b) do
- 92 -
^
Ψ ( k , q , b) ← ∞ ;
end forall
forall 1 ≤ k ≤ r do
forall 1 ≤ q ≤ l k (b) do
^
if ej ∈ t qk (b) and Ψ (k , q, b) > Q j (b) then
^
Ψ (k , q, b) ← Q j (b) ;
end if
end forall
end forall
Ψ (b) ← 0 ;
forall 1 ≤ k ≤ r do
Ψk* ← 0 ;
forall 1 ≤ q ≤ l k (b) do
^
Ψk* ← Ψ (k , q, b) + Ψk* ;
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.
tk =
ilosc _ wymienianych _ danych
Ψk*
(3.32)
Funkcjonał określony wzorem (3.31) 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.31) 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
- 93 -
aspekcie teorii optymalizacji maksymalizacja funkcji celu (3.31) jest zadaniem tzw. NCSP
(ang. Non-Convex Separable Programing) [125], jest tak ponieważ funkcjonał (3.31) 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.31) zostało przedstawione w podrozdziale 3.2.2.
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.1). 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
- 94 -
to nawet w sytuacji, kiedy węzeł jest zarówno nadawcą jak i odbiorcą. Jego złożoność jest
rzędu O(mn) [124], 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 = ∑ (
j =1
s
πj
+ ϕ j +τ R −1 )
(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 ej;
ϕ j – opóźnienie generowane przez łącze ej;
τ R - czas przetwarzania pakietu przez router R;
- 95 -
η- 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.
3.4. przedstawia ideę działania metody dwupakietowej.
Rys. 3.4. Idea działania dwupakietowej metody wyznaczania opóźnień w sieciach komputerowych ([123]).
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 rttk (ang. round trip time) dla k-tej pary komunikujących się
routerów ( R1k , R2k ). Przy oznaczeniach
^
Ψ (k , q, b) – efektywna przepustowość trasy pomiędzy routerami ( R1k , R2k ).
t kICMP - czas przesyłania komunikatu ICMP pomiędzy routerami ( R1k , R2k ).
Otrzymujemy
rttk = ϕ R + τ R + tkICMP , k = 1,2,...
(3.34)
oraz
- 96 -
rttk − rttk −1 ≈
s
^
, k = 1,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 [123].
3.4.1 Ograniczenia algorytmu wyznaczania przepustowości środowiska sieciowego
Mając na uwadze poniższe definicje.
Definicja 3.1
Przekrój minimalny Ckmin 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).
r
Ψ max = ∑ Ψkmax
(3.36)
k =1
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 Ckh, 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 Ckh. Przyjmując, że
pomiędzy k-tą parą routerów występuje Zh przekrojów, wówczas h jest liczbą całkowitą z
przedziału < 1,..., Z k > . Ograniczeniem przepustowości dla k-tej pary routerów jest minimalna
- 97 -
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 Ψkmax ) jest równa przepustowości minimalnego przekroju pomiędzy tymi routerami
(wierzchołkami grafu), o czym mówi twierdzenie Forda-Fulkersona [124].
Ψkmax = min(Φ kh : 1 ≤ h ≤ Z h )
(3.37)
Postępując w sposób analogiczny, należy wyznaczyć ograniczenia przepustowości dla
wszystkich komunikujących się par sieci.
3.4.2 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 –1 >. 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 2.
3.4.3 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
- 98 -
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.
3.4.4 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.
- 99 -
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.
- 100 -
3.5.1 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.1, przyjęte warunki początkowe można
przedstawić za pomocą macierzy D
0 
 0 − 200 − 300
200
0
0
− 400

D=
300
0
0
0 


400
0
0 
 0
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):
•
e1 dla S1 – R1, π 1 = 100
•
e2 dla S1 – R2, π 2 = 50
•
e3 dla S2 – R2, π 3 = 50
•
e4 dla S2 – R3, π 4 = 100
•
e5 dla S3 – R1, π 5 = 100
•
e6 dla S3 – R2, π 6 = 100
•
e7 dla S3 – R3, π 7 = 100
•
e8 dla S4 – R1, π 8 = 100
•
e9 dla S4 – R3, π 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 S1 z S2, k=1; dla S1 z S3, k=2; dla S2 z S4, k=3.
- 101 -
Oraz oznaczenie cqk jako koszt trasy t qk (b) .
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ć 1 – sieć 2, tj. k=1:
t11 (b) =(e2, e3) ; c11 = 4
t 21 (b) =(e1, e5, e7, e4) ; c12 = 4
t 31 (b) =(e2, e6, e7, e4) ; c31 = 5
t 14 (b) =(e1, e5, e6, e3) ; c14 = 5
t 51 (b) =(e1, e8, e9, e4) ; c51 = 5
t 61 (b) =(e2, e6, e5, e8, e9, e4) ; c16 = 8
t 71 (b) =(e1, e8, e9, e7, e6, e3) ; c17 = 8
Oto trasy oraz ich koszty dla pary sieć 1 – sieć 3, tj. k=2:
t12 (b) =(e1, e5) ; c12 = 2
t 22 (b) =(e2, e6) ; c 22 = 3
t 32 (b) =(e1, e8, e9, e7) ; c32 = 5
t 42 (b) =(e2, e3, e4, e7) ; c 42 = 6
t 52 (b) =(e1, e8, e9, e4, e3, e6) ; c52 = 8
t 62 (b) =(e2, e3, e4, e9, e8, e5) ; c62 = 9
Oto trasy oraz ich koszty dla pary sieć 2 – sieć 4, tj. i=3:
t13 (b) =(e4, e9) ; c13 = 3
t 23 (b) =(e4, e7, e5, e8) ; c 23 = 4
t 33 (b) =(e3, e6, e5, e8) ; c33 = 5
t 43 (b) =(e3, e6, e7, e9) ; c 43 = 6
t 53 (b) =(e3, e2, e1, e8) ; c53 = 6
t 63 (b) =(e4, e7, e6, e2, e1, e8) ; c63 = 7
t 73 (b) =(e3, e2, e1, e5, e7, e9) ; c73 = 9
- 102 -
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:
t11 (0) =(e2, e3); t12 (0) =(e1, e5); t13 (0) =(e4, e9)
Nominalne przepustowości wykorzystywanych łączy wynoszą w Mb/s:
π 1 = 100 ; π 2 = 50 ; π 3 = 50 ; π 4 = 100 ; π 5 = 100 ; π 9 = 50
Liczby tras wykorzystujące poszczególne łącza wynoszą.
λ1 (0) =1 ; λ2 (0) =1 ; λ3 (0) =1 ; λ4 (0) =1 ; λ5 (0) =1 ; λ9 (0) =1
Efektywne przepustowości poszczególnych łączy wynoszą (w Mb/s):
Q1 (0) =100; Q2 (0) =50; Q3 (0) =50; Q4 (0) =100; Q5 (0) =100; Q9 (0) =50
Efektywne przepustowości najwolniejszych łączy dla poszczególnych tras wynoszą.
^
Ψ (1,1,0) = min(50 ; 50) = 50
^
Ψ (2,1,0) = min(100 ; 100) = 100
^
Ψ (3,1,0) = min(100 ; 50) = 50
Przepustowości komunikacji dla poszczególnych par sieci wynoszą.
- 103 -
1
^
Ψ1* (0) = ∑ Ψ (1, q,0) = 50 [Mb/s] ;
q =1
1
^
Ψ2* (0) = ∑ Ψ (2, q,0) = 100 [Mb/s] ;
q =1
1
^
Ψ3* (0) = ∑ Ψ (3, q,0) = 50 [Mb/s] ;
q =1
Przepustowość środowiska sieciowego dla zadanych warunków początkowych wynosi.
3
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 50 + 100 + 50 = 200 [Mb/s]
k =1 q =1
Czasy komunikacji dla poszczególnych par sieci wynoszą.
t1 = 200/50 = 4 [s] ; t2 = 300/100 = 3 [s] ; t3 = 400/50 = 8 [s]
Po zsumowaniu dostajemy łączny czas komunikacji równy 4+3+8=15[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.
3
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 50 + 100 + 50 = 200 [Mb/s]
k =1 q =1
t1 = 200/100 = 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] = 100 [Mb]
danych, do przesłania pozostanie jeszcze 300 – 100 = 200 [Mb], analogicznie sieć druga
wymieni z siecią czwartą 2 * 50 = 100 [Mb] danych, do przesłania pozostanie jeszcze 400 –
100 = 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:
2
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 100 + 50 = 150 [Mb/s]
k =1 q =1
- 104 -
t2 = 200/100 = 2 [s] ; t3 = 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ą:
t1 = 2 [s] ; t2 = 2+2 = 4 [s] ; t3 = 2+6 = 8 [s]
Po zsumowaniu dostajemy łączny czas komunikacji równy 2+4+8=14 [s]
Dla beta równego 2 (równoważenie obciążenia typu NK) występują następujące trasy:
t11 (2) =(e2, e3) ; t 21 (2) =(e1, e5, e7, e4) – ponieważ z sieci numer 1 prowadzą dwa interfejsy
wyjściowe, dlatego dodanie większej liczby tras (w przypadku przeciążenia obydwu
interfejsów) nie jest rozwiązaniem zalecanym.
t12 (2) =(e1, e5) ; t 22 (2) =(e2, e6) – ograniczenie liczby tras wynika z liczby interfejsów (jak
wyżej).
t13 (2) =(e4, e9) ; t 33 (2) =(e3, e6, e5, e8) - pomimo, że istnieje trasa o niższym koszcie tj.
t 23 (2) =(e4, e7, e5, e8), c 23 = 4, nie jest ona zalecana ponieważ prowadzi przez ten sam interfejs
wyjściowy co trasa optymalna o koszcie c13 = 3 czyli t13 (2) =(e4, e9).
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:
3
2
^
Ψ (2) = ∑∑ Ψ (k , q,2) = 58.33 + 58.33 + 75 = 191.66
k =1 q =1
t1 = 200/58.33 = 3.43 [s]
W czasie 3.43 sekundy, pierwszej fazy komunikacji, sieć pierwsza wymieni z siecią trzecią
3.43 [s] * 58.33 [Mb/s] = 200 [Mb] danych, do przesłania pozostanie jeszcze 300 – 200 = 100
[Mb], analogicznie sieć druga wymieni z siecią czwartą 3.43 * 75 = 257.25 [Mb] danych, do
przesłania pozostanie jeszcze 400 – 257.25 = 142.75 [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ą
100 [Mb], zaś sieć druga wymienia z siecią czwartą 142.75 [Mb].
W drugim etapie otrzymano:
- 105 -
2
2
^
Ψ (2) = ∑∑ Ψ (k , q,2) = 100 + 100 = 200
k =1 q =1
t2 = 100/100 = 1 [s]
W czasie jednej sekundy sieć druga wymieni z siecią czwartą 1 [s] * 100 [Mb/s] = 100 [Mb]
danych, do przesłania pozostanie jeszcze 142.75 – 100 = 42.75 [Mb]. Powyższe obliczenia
należy powtórzyć dla nowych warunków początkowych tj. sieć druga wymienia z siecią
czwartą 42.75 [Mb].
W trzeciej fazie otrzymano:
1
2
^
Ψ (2) = ∑∑ Ψ (k , q,2) = 150 [Mb/s]
k =1 q =1
t3 = 42.75/100 = 0.4275 [s]
Całkowite czasy wymiany informacji wynoszą:
t1 = 3.43 [s] ; t2 = 3.43+1 = 4.43 [s] ; t3 = 3.43+1+0.4275 = 4.8575 [s]
Po zsumowaniu dostajemy łączny czas komunikacji równy 3.43+4.43+4.8575=12.7175 [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,3) = 45.83 + 47.5 + 54.16 = 147.5 (faza pierwsza)
k =1 q =1
t1 = 4.36 [s] ; t2 = 4.36[s] ; t3 = 4.36[s]
2
3
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 79.16 + 79.16 = 158.32 (faza druga)
k =1 q =1
t2 = 0.8 [s] ; t3 = 0.8[s]
1
3
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 150 (faza trzecia)
k =1 q =1
t2 =0.2[s]
Całkowite czasy wymiany informacji wynoszą:
t1= 4.36 [s] ; t2 = 4.36+0.8+0.2 = 5.36 [s] ; t3 = 4.36+0.8 = 5.16 [s]
Po zsumowaniu dostajemy łączny czas komunikacji równy 4.36+5.36+5.16=14.88 [s]
- 106 -
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. 3.2. Wyniki symulacji
przeprowadzonej przy pomocy arkusza kalkulacyjnego wykazały, że minimalny łączny czas
komunikacji wynosi 13.01 sekundy (t1 = 3.43 [s] ; t2 = 4.43 [s] ; t3 = 5.15 [s]). Poniżej znajdują
się otrzymane wyniki.
Dla pary i=1:
t11 (b) =(e2, e3) i c11 = 4 ; t 21 (b) =(e1, e5, e7, e4) i c12 = 4
Dla pary i=2:
t12 (b) =(e1, e5) i c12 = 2 ; t 22 (b) =(e2, e6) ; c 22 = 3
Dla pary i=3:
t13 (b) =(e4, e9) ; c13 = 3 ; t 23 (b) =(e4, e7, e5, e8) ; c 23 = 4
Parametry beta wynosiły odpowiednio: b=[1; 2; 1.4]T.
Przepustowość środowiska sieciowego wyniosła Ψ(b) = 183.33 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ż 13.01 sekundy i wynosi 14 [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ł 12.71 [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
- 107 -
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.1) wynoszą odpowiednio:
Dla pary sieci k=1 Ψ1max = 150 Mb/s.
Dla pary sieci k=2 Ψ2max = 150 Mb/s
Dla pary sieci k=3 Ψ3max = 150 Mb/s
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ą:
Dla pary sieci k=1, Ψ1max = 75 Mb/s.
Dla pary sieci k=2, Ψ2max = 75 Mb/s
Dla pary sieci k=3, Ψ3max = 75 Mb/s
Podsumowując, maksymalne przepustowości dla poszczególnych par sieci wynoszą:
Ψ1max = 75 Mb/s,
Ψ2max = 75
Mb/s,
Ψ3max = 75
Mb/s.
W
rezultacie
maksymalna
przepustowość środowiska sieciowego (definicja 3.2.) wynosi Ψmax = 75+75+75 = 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;
- 108 -
W
•
z równoważeniem obciążenia typu RK;
•
z równoważeniem obciążenia typu NK.
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. 3.5. Przyjęto, że H1 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. 3.5. Czwarty przykład topologii sieci komputerowej.
Przepustowości łączy wynosza odpowiednio (Mb/s):
π 1 = 100 ; π 2 = 100 ; π 3 = 50 ; π 4 = 100 ; π 5 = 50 ; π 6 = 50 .
Bez włączonego równoważenia obciążenia.
1
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 50 ; sumacyjny czas komunikacji wynosi 4 [s].
k =1 q =1
Z włączonym równoważeniem obciążenia typu RK
1
2
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 150 ; sumacyjny czas komunikacji wynosi 1.333 [s].
k =1 q =1
Z włączonym równoważeniem obciążenia typu NK (na trzech trasach).
1
3
^
Ψ (2) = ∑∑ Ψ (k , q,2) = 200 00; sumacyjny czas komunikacji wynosi 1 [s].
k =1 q =1
Z włączonym równoważeniem obciążenia typu NK (na czterech trasach)
- 109 -
1
4
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 200 ; sumacyjny czas komunikacji wynosi 1 [s].
k =1 q =1
W miejscu tym warto zauważyć, że trasa t 41 (3) =(e1, e6, e4) prowadzi przez ten sam interfejs
wyjściowy routera R1, co trasa t 31 (3) =(e1, e3). W sytuacji przeciążenia tego interfejsu, jej
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:
1
4
^
Ψ (4) = ∑∑ Ψ (k , q,4) = 175 ; sumacyjny czas komunikacji wynosi 1.143 [s].
k =1 q =1
Przejdźmy teraz do drugiej topologii przedstawionej na Rys. 3.6.
Rys. 3..6. Piąty przykład topologii sieci komputerowej.
Przepustowości łączy wynosza odpowiednio (Mb/s):
π 1 = 100 ; π 2 = 100 ; π 3 = 50 ; π 4 = 100 ; π 5 = 50 .
- 110 -
Zakładamy, że H1 komunikuje się z H2 - para k=1, 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.
2
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 50 + 100 = 150 ; sumacyjny czas komunikacji wynosi 4 + 2 = 6 [s].
k =1 q =1
Z włączonym równoważeniem obciążenia typu RK
2
2
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 50 + 100 = 150 (dla etapu pierwszego);
k =1 q =1
1
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 100 (dla etapu drugiego)
k =1 q =1
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,2) = 100 + 100 = 200 ; sumacyjny czas komunikacji wynosi 2+2=4 [s].
k =1 q =1
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 t 32 =(e1, e5, e4) prowadzi przez ten sam interfejs
wyjściowy routera R2, co trasa t12 =(e1, e2).
2
3
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 83.33 + 83.33 = 166.66 ;
k =1 q =1
sumacyjny czas komunikacji wynosi 2.4 + 2.4 = 4.8 [s].
Z włączonym równoważeniem obciążenia typu NK (trzy trasy dla pary hostów 1 i 2, oraz
cztery trasy dla pary hostów 3 i 4)
Analogicznie jak poprzednie, rozwiązanie to jest nie zalecane.
2
4
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 66.66 + 83.33 = 150 (dla etapu pierwszegi);
k =1 q =1
1
3
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 200 (dla etapu drugiego)
k =1 q =1
sumacyjny czas komunikacji wynosi 2.6 +2.4 = 5 [s].
- 111 -
Poniżej zostały przedstawione rozważania dla trzeciej topologii przedstawionej na Rys. 3.7.
Tak jak w poprzednim przypadku, H1 komunikuje się z H2- para k=1, a H3 z H4 – para k=2.
Obie pary wymieniają po 200 Mb danych.
Rys. 3.7. Szósty przykład topologii sieci komputerowej.
Przepustowości łączy wynosza odpowiednio (Mb/s):
π 1 = 100 ; π 2 = 100 ; π 3 = 50 ; π 4 = 100 ; π 5 = 50 ; π 6 = 50 .
Otrzymano następujące wyniki:
Bez włączonego równoważenia obciążenia.
2
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 50 + 50 = 100 ; sumacyjny czas komunikacji wynosi 4 + 4 = 8 [s].
k =1 q =1
Z włączonym równoważeniem obciążenia typu RK
2
2
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 100 + 50 = 150 (dla etapu pierwszego);
k =1 q =1
1
2
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 100 (dla etapu drugiego)
k =1 q =1
sumacyjny czas komunikacji wynosi 2 + 3 = 5 [s]
Z włączonym równoważeniem obciążenia typu NK (po trzy trasy dla każdej z par hostów)
- 112 -
2
3
^
Ψ (3) = ∑∑ Ψ (k , q,3) = 125 + 125 = 250 ; sumacyjny czas komunikacji wynosi 1.6+1.6=3.2
k =1 q =1
[s].
Z włączonym równoważeniem obciążenia typu NK (po cztery trasy dla każdej z par hostów)
2
4
^
Ψ (4) = ∑∑ Ψ (k , q,4) = 100 + 125 = 225 (dla etapu pierwszego);
k =1 q =1
1
4
^
Ψ (4) = ∑∑ Ψ (k , q,4) = 200 (dla etapu drugiego)
k =1 q =1
sumacyjny czas komunikacji wynosi 1.8 + 1.6 = 3.4 [s].
Z włączonym równoważeniem obciążenia typu NK (na cztery i pięciu trasach)
2
5
^
Ψ (4) = ∑∑ Ψ (k , q,4) = 100 + 91.2 = 191.2 (dla etapu pierwszego);
k =1 q =1
1
3
^
Ψ (4) = ∑∑ Ψ (k , q,4) = 250 (dla etapu drugiego)
k =1 q =1
sumacyjny czas komunikacji wynosi 2.0704 + 2 = 4.0704 [s].
Zestawienie obliczonych czasów przesyłania informacji znajduje się w poniższej tabeli.
Tabela 3.1. Zbiorcze zestawienie obliczonych sumacyjnych czasów komunikacji.
Topologia
z rys. 3.4
Topologia
z rys. 3.5
Topologia
z rys. 3.6
Bez LB
Z LB RK
4
Z LB NK Z LB NK Z LB NK Z LB NK
(2 trasy)
(3 trasy)
(4 trasy)
(5 tras)
1.333
-
1
1
1.143
6
5
4
4.8
5
-
8
5
-
3.2
3.4
4.0704
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,
- 113 -
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] [21] [22].
- 114 -
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
- 115 -
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.1 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ą)
- 116 -
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) = Tp * 1/log(k);
•
liniowy (Cauchy’ego): T(k) = Tp * 1/k;
•
geometryczny T(k)= Tp * ak, gdzie 0<a<1.
gdzie:
Tp – 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
- 117 -
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;
kmax – maksymalna liczba iteracji algorytmu;
T(0) – temperatura początkowa (w zerowej iteracji);
T(k) – temperatura w k-tej iteracji algorytmu;
Tmin – 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.1)
Warto także dodać, że w algorytmie tym występują zmienne, których wartości zmieniają się
w przedstawionych poniżej zakresach.
1 ≤ k ≤ kmax
(4.2)
Tmin ≤ 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
- 118 -
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,1>;
φ* – najmniejsza wartość funkcji energii.
x0 – 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
*
p(φ(x), φ , T) = exp(−
φ * − φ ( x)
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), x0, S, kmax)
T ←T(0);
k ← 0;
x* ← x0;
wyznacz φ(x0);
- 119 -
φ*←φ(x0);
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+1;
T ← T(k);
until (T > Tmin OR k < kmax) 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 (1915-1999). Był on
członkiem zespołu badawczego Projektu Manahattan, a także współtwórcą komputerów
MANIAC (1952) i MANIAC II (1957) oraz jednym z autorów metody Monte Carlo (wraz z
S. Ulamem i J. Von Neumannem). Algorytm Metropolisa zaliczony został do 10 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”
- 120 -
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,1>) z przedstawioną
w podrozdziale nr 4.1 wartością wyrażenia exp(−
φ * − φ ( x)
T
) , algorytm jest w stanie z
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
- 121 -
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
1. 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.1
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.
7.6.1 Bety ← nowe bety.
7.6.2 Ψ(b) ← nowe Ψ(b).
W przeciwnym przypadku idź do 9.
8. Oblicz nowe przepustowości routerów.
9. Wyznacz routery ze wzrostem parametru „przepustowość routera”.
10. Przepustowości routerów ← nowe przepustowości routerów.
11. Aktualizuj warunek stopu.
12. Sprawdź warunek stopu.
13. Jeśli warunek stopu nie spełniony idź do 4, w przeciwnym przypadku zakończ
algorytm.
- 122 -
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 1 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:
βimax – maksymalna wartość parametru beta dla routera vi, 1 ≤ i ≤ m , wyliczana ze wzoru (2.3)
b – wektor zawierający nowo wyznaczone wartości współczynników βi (w kolejnej iteracji).
bnew – wektor zawierający nowo wyznaczone wartości współczynników βi (w kolejnej
iteracji).
Ψ(bnew) – nowo wyznaczona przepustowość środowiska sieciowego (w kolejnej iteracji).
ΨiR (b) - przepustowość routera Ri liczona jako suma efektywnych przepustowości tras, które
przez ten router prowadzą.
ΨiR (bnew ) - nowo wyznaczona przepustowość routera Ri (w kolejnej iteracji).
E – wartość funkcji energii rozumiana jako exp(−
Ψ (bnew ) − Ψ (b)
T
) , gdzie T jest wartością
temperatury i zarazem parametrem stopu.
Y – wartość losowa o rozkładzie jednostajnym z przedziału <0,1>.
Algorytm 5 zapisany w pseudokodzie przedstawia się teraz następująco:
- 123 -
Algorytm 6
Begin Symulowane_wyżarzanie_zmodyfikowane(T(0), bmax, kmax)
T ← T(0);
b ← 0;
k ← 0;
Oblicz Ψ(b);
Oblicz wszystkie ΨiR (b) ;
ΨiR (bnew ) ← ΨiR (b) ;
repeat
Wygeneruj bnew;
Oblicz Ψ(bnew);
if (Ψnew(b)>= Ψ(b))
b ← bnew;
Ψ(b) ← Ψ(bnew);;
else
Oblicz E;
Wygeneruj Y;
if (E > Y)
b ← bnew;
Ψ(b) ← Ψ(bnew);
end if
end if
Oblicz wszystkie ΨiR (bnew ) ;
Wyznacz routery ze wzrostem przepustowości porównujac ΨiR (b) z ΨiR (bnew ) ;
ΨiR (b) ← ΨiR (bnew ) ;
k ← k+1;
Zmniejsz T;
until (T > Tmin or k<kmax)
return b;
end
- 124 -
Dodatkowego wyjaśnienia może wymagać funkcja Wygeneruj bnew 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.1. Schemat blokowy algorytmu 5 służącego do optymalizacji przepustowości.
- 125 -
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
- 126 -
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.1). 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 [100][101].
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
- 127 -
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] [81] [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. 4.2. Logiczny schemat przepływu informacji pomiędzy używanymi algorytmami.
Opisywane rozwiązanie działa w następujący sposób:
Algorytm 1 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 1 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 1.
- 128 -
Algorytm 1 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. 4.5.
Rys. 4.3. Pierwsza z poddanych badaniom przykładowych topologii.
- 129 -
Koszty połączeń pomiędzy poszczególnymi routerami przyjmują wartości przedstawione w
tabeli nr 4.1., 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.1. Koszty połączeń pomiędzy routerami przedstawionymi na rys. 4.3.
Router źródłowy
Router docelowy
Koszt połączenia
R1
R2
10
R1
R3
5
R1
R4
2
R1
R5
1
R2
R3
2
R2
R6
2
R2
R7
5
R3
R4
10
R3
R6
10
R3
R7
5
R3
R8
2
R4
R5
1
R4
R7
2
R4
R8
10
R4
R9
2
R5
R8
2
R5
R9
5
R6
R7
5
R6
R10
10
R7
R8
10
R7
R10
1
R8
R9
10
R8
R10
2
R9
R10
2
- 130 -
Oto druga z badanych topologii sieciowych:
Rys. 4.4. 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. 4.4.
Router źródłowy
Router docelowy
Koszt połączenia
R1
R3
1
R2
R4
2
R3
R4
1
R3
R5
2
R3
R6
1
R4
R5
1
R4
R6
2
R5
R6
2
- 131 -
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. 4.5. Trzecia z poddanych badaniom topologii sieciowych.
Sieć jest zaprojektowana w taki sposób, że przepustowości łączy pomiędzy poszczególnymi
routerami wynoszą 1 Gb/s, a w konsekwencji ich koszty przyjmują wartości 0.1, 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 R1 jest routerem ABR dla obszaru O1, router R5 dla O2
itd. Sieć ta posiada dziesięć obszarów niezerowych, przy czym routery ABR to routery od R1
do R10. Natomiast optymalizacja przepustowości została przeprowadzona dla ruchu
sieciowego wymienianego pomiędzy obszarami O1 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
- 132 -
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
1.
geometryczny. Dla schematu geometrycznego parametr alfa (podstawa potęgi) miał
dwie wartości: 0.95 i 0.99.
2.
Temperatura początkowa ma jedną z trzech wartości: 100, 1000, 10000 stopni.
3.
Liczba iteracji algorytmu bez zmiany temperatury wynosi 1 oraz 10.
4.
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=216 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 – 1000 stopni;
Liczba iteracji algorytmu bez zmiany temperatury – 10;
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
- 133 -
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.31). 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 www.solver.com.
- 134 -
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:
bnew – nowy wektor parametrów beta.
ΨiR (b) - przepustowość routera Ri 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:
1. Wygeneruj bnew.
2. Oblicz Ψ(bnew).
3. Jeśli Ψ(bnew) > Ψ(b).
a.
b ← bnew.
b.
Ψ(b) ← Ψ(bnew).
4. Jeśli Ψ(bnew) ≤ Ψ(b).
a.
Oblicz Y.
- 135 -
b.
Jeśli Pr( E ≥ Y ) .
i.
b ← bnew.
ii.
Ψ(b) ← Ψ(bnew).
5. Oblicz ΨiR (bnew ) .
6. Wyznacz routery ze wzrostem przepustowości.
7. ΨiR (b) ← ΨiR (bnew ) .
Przyjmując oznaczenia:
m – liczba routerów, wierzchołków grafu.
lk(b)– liczba tras komunikacji dla pary routerów ( R1k , R2k ), 1 ≤ k ≤ r .
r
l*(b) – całkowita liczba występujących tras komunikacji rozumiana jako l * (b) = ∑ l k (b) .
k =1
l~(b) - liczba tras aktywnych, tj. tras, po których przesyłany jest ruch sieciowy.
^
d (t qk (b)) - średnia długość trasy t qk (b) , rozumiana jako średnia arytmetyczna wyliczona z
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).
OR(m,b) – złożoność obliczeniowa operacji wyznaczania przepustowości routerów.
Liczba operacji prostych dla poszczególnych kroków Algorytmu 5 przedstawia się
następująco:
•
krok 1 - m operacji;
•
^
^
n
krok 2 - OΨ (m, n, b) = l ~ (b) * (2 * m + d (t qk (b)) + 1) + l * (b) * d (t qk (b)) * (1 + ) + n
2
operacji;
•
•
krok 3 – 1 operacja;
a.
m operacji;
b.
1 operacja;
krok 4 – 0 (konsekwencja operacji wykonanej w kroku 3) lub
a.
4 operacje;
- 136 -
b.
1 operacja;
i.
m operacji;
ii.
1 operacja;
^
~
•
krok 5 - m * l (b) * (
•
krok 6 – m operacji;
•
krok 7 – m operacji.
3 * d (t qk (b))
4
1
+ );
2
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 1 - 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 1 - m * (2 * l ~ (b)) ;
•
etap 2 - l*(b)*d(tqk (b));
^
^
n * l * (b) * d (t qk (b))
•
etap 3 -
•
etap 4 - n ;
•
etap 5 - l ~ (b) * d (t qk (b)) ;
•
etap 6 - l ~ (b) .
2
;
^
Po zsumowaniu i zredukowaniu wyrazów podobnych dostajemy:
^
^
n
OΨ (m, n, b) = l ~ (b) * (2 * m + d (t qk (b)) + 1) + l * (b) * d (t qk (b)) * (1 + ) + n
2
(4.9)
Oto szczegółowy opis poszczególnych etapów:
Etap 1 - polega na wyznaczeniu dla każdego routera Ri jego tablicy routingu. Złożoność tej
operacji wynosi 2 * l ~ (b) , gdzie obliczenie iloczynu copt * αi * βi ze wzoru (2.2) wymaga
wykonania dwóch operacji i jest wykonywane dla każdej aktywnej trasy, czyli l ~ razy.
- 137 -
^
Etap 2 - czyli wyznaczenie tras aktywnych ma złożoność l * (b) * d (t qk (b)) , co wynika stąd, że
^
dla każdej trasy t qk (b) należy sprawdzić czy wszystkie jej łącza w liczbie d (t qk (b)) są aktywne.
Etap 3 - polega na wyznaczeniu dla każdego łącza e j ∈ E liczby jego wystąpień w każdej z
^
tras t qk (b) o średniej długości d (t qk (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 qk (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 * 1 .
Etap 5 - polega na wyznaczeniu dla każdej aktywnej trasy t qk (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 Dt wchodzących w skład danej
^
trasy. W konsekwencji złożoność tego etapu wynosi l ~ (b) * d (t qk (b)) .
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
Ri i wszystkich tras aktywnych l ~ (b) czy:
^
1. dany router występuje na analizowanej trasie, co wymaga
d (t qk (b))
2
porównań (router
średnio zostanie znaleziony w połowie trasy), plus dodania przepustowości tej trasy do
^
licznika przepustowości routera. W konsekwencji otrzymuje się
d (t qk (b))
2
+ 1 operacji.
- 138 -
2. dany router nie występuje na analizowanej trasie, co wymaga sprawdzenia jej do
^
końca czyli wykonania d (t qk (b)) operacji.
Reasumując,
złożoność
przepustowości
obliczania
routerów
wynosi
^
~
m * l (b) * 0.5 * (
d (t qk (b)) + 2
2
^
+ d (t qk (b))) ,
po
zredukowaniu
wyrazów
podobnych
i
uproszczeniu otrzymujemy:
^
~
OR (m, b) = m * l (b) * (
3 * d (t qk (b))
4
1
+ )
2
(4.10)
W celu wyznaczenia złożoności obliczeniowej całego algorytmu należy wprowadzić jeszcze
dodatkowe oznaczenia.
Pr(Ψk (b) ≥ Ψk −1 (b)) – prawdopodobieństwo, że nowe Ψ(b) (wyznaczone w bieżącej iteracji
algorytmu) jest nie gorsze niż poprzednie Ψ(b) (wyznaczone w poprzedniej iteracji), przy
czym Ψk(b) – wartość Ψ(b) w iteracji nr k.
kmax – 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:
^
^
n
O(m, n) = {1 + l ~ (b) * (2 * m + d (t qk (b)) + 1) + l * (b) * d (t qk (b)) * (1 + ) + n +
2
+ ( m + 1) * [Pr( Ψ k ( b )( ≥ Ψ k −1 ( b )) + (1 − Pr( Ψ k ( b ) ≥ Ψ k −1 ( b ))) * ( 5 + Pr( E ≥ Y ))] +
^
~
+ m * l (b) * (
3 * d (t qk (b))
4
1
+ ) + 2]} * k max
2
(4.11)
Po zredukowaniu wzoru (4.11) zgodnie z (4.9) i (4.10) otrzymujemy:
O(m, n) = {1 + OΨ (b) + (m + 1) * [Pr(Ψk (b) ≥ Ψk −1 (b)) +
+ (1 − Pr(Ψk (b) ≥ Ψk −1 (b))) * (5 + Pr( E ≥ Y ))] + 2 * m + OV (b)} * k max
(4.12)
- 139 -
Złożoność metody SW
700000
600000
500000
400000
O(m,n)
300000
200000
100000
S16
S11
n
S1
19
17
13
11
15
m
9
7
S6
5
3
1
0
Wykres 4.1 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ł 4.4.
- 140 -
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.1 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.1.
Tabela 5.1. Scenariusze przeprowadzonych badań.
Numer scenariusza
Schemat schładzania
1
2
3
4
5
6
7
8
9
10
11
12
Logarytmiczny
Logarytmiczny
Logarytmiczny
Logarytmiczny
Logarytmiczny
Logarytmiczny
Liniowy
Liniowy
Liniowy
Liniowy
Liniowy
Liniowy
Geometryczny
(a=0.99)
Geometryczny
(a=0.99)
Geometryczny
(a=0.99)
Geometryczny
(a=0.99)
Geometryczny
13
14
15
16
17
100
100
1000
1000
10000
10000
100
100
1000
1000
10000
10000
Liczba iteracji
algorytmu bez
zmiany temperatury
1
10
1
10
1
10
1
10
1
10
1
10
100
1
100
10
1000
1
1000
10
10000
1
Temperatura
początkowa
- 141 -
18
19
20
21
22
23
24
(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)
10000
10
100
1
100
10
1000
1
1000
10
10000
1
10000
10
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. 4.4 - 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.
Tabela 5.2. Wartości Ψmax(b) otrzymane dla topologii z rys. 4.3.
Numer
scenariusza
1
2
3
4
Ψmax(b) [Mb/s]
175
182.5
193.3
175
5
6
7
8
200
187.5
175
175
9
10
11
12
193.3
179.2
175
183.3
Numer
scenariusza
13
14
15
16
Ψmax(b) [Mb/s]
183.6
175
174
173.3
Numer
scenariusza
17
18
19
20
Ψmax(b) [Mb/s]
183.3
174.2
175
169.3
Numer
scenariusza
Ψmax(b) [Mb/s]
21
22
23
24
175
172.1
166.7
180.8
Numer
scenariusza
Ψmax(b) [Mb/s]
Numer
scenariusza
Ψmax(b) [Mb/s]
- 142 -
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.
Tabela 5.3. Wartości Ψśr(b) otrzymane dla topologii z rys. 4.3.
Numer
scenariusza
Ψśr(b) [Mb/s]
1
2
3
4
163.58
173.94
167.52
171.3
5
6
7
8
164.84
159.56
168.82
158.56
9
10
11
12
169.3
161.74
157.71
171.76
13
14
15
16
164.2
165.68
158.58
158.06
Numer
scenariusza
17
18
19
20
Ψśr(b) [Mb/s]
164.72
156.42
160.94
153.5
Numer
scenariusza
21
22
23
24
Ψśr(b) [Mb/s]
166.64
162.3
153.34
167.96
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: β1 do routera1, β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.
- 143 -
Tabela 5.4. Wartości parametrów beta otrzymane dla poszczególnych scenariuszy dla topologii z rys. 4.3.
Numer
Beta1
Beta2 Beta3
Beta4 Beta5
Beta6 Beta7
Beta8 Beta9 Beta10
1
0.308
0.405
0.902
0.568
0.119
0.005
0.541
0.799
0.347
0.627
2
0.455
0.527
0.156
0.253
0.812
0.592
0.733
0.717
0.365
0.441
3
0.836
0.253
0.208
0.243
0.395
0.785
0.209
0.851
0.279
0.547
4
0.985
0.667
0.411
0.371
0.062
0.238
0.104
0.62
0.005
0.834
5
0.991
0.619
0.191
0.042
0.392
0.369
0.073
0.674
0.028
0.912
6
0.76
0.401
0.-22
0.133
0.56
0.88
0.533
0.97
0.253
0.92
7
0.179
0.676
0.556
0.5
0.959
0.948
0.584
0.453
0.173
0.987
8
0.646
0.398
0.585
0.598
0.566
0.2
0.709
0.539
0.302
0.938
9
0.994
0.614
0.197
0.049
0.382
0.36
0.083
0.654
0.018
0.952
10
0.786
0.463
0.055
0.411
0.419
0.499
0.069
0.084
0.715
0.987
11
0.45
0.009
0.312
0.356
0.539
0.771
0.06
0.627
0.094
0.691
12
0.79
0.407
0.014
0.123
0.567
0.97
0.529
0.975
0.272
0.9
13
0.784
0.271
0.126
0.042
0.231
0.233
0.552
0.634
0.585
0.947
14
0.381
0.303
0.572
0.274
0.705
0.102
0.37
0.397
0.373
0.132
15
0.756
0.954
0.967
0.264
0.739
0.037
0.131
0.262
0.281
0.977
16
0.649
0.574
0.117
0.119
0.042
0.521
0.949
0.257
0.305
0.407
17
0.728
0.55
0.035
0.574
0.962
0.17
0.703
0.576
0.559
0.858
18
0.512
0.853
0.208
0.473
0.067
0.627
0.456
0.552
0.825
0.239
19
0.113
0.729
0.771
0.45
0.495
0.3
0.262
0.459
0.555
0.78
20
0.961
0.694
0.302
0.755
0.907
0.774
0.283
0.702
0.879
0.874
21
0.369
0.291
0.087
0.284
0.91
0.021
0.172
0.477
0.368
0.523
22
0.93
0.192
0.297
0.923
0.286
0.238
0.782
0.568
0.52
0.944
23
0.254
0.091
0.609
0.186
0.267
0.123
0.081
0.335
0.343
0.578
24
0.995
0.625
0.318
0.323
0.664
0.79
0.464
0.794
0.609
0.664
scenariusza
- 144 -
Tabela 5.5. Wartości Ψmax(b) otrzymane dla topologii z rys. 4.4.
Numer
scenariusza
1
2
3
4
Ψmax(b) [Mb/s]
165.47
165.47
165.47
165.47
Numer
scenariusza
Ψmax(b) [Mb/s]
Numer
scenariusza
5
6
7
8
165.47
165.47
165.47
165.47
9
10
11
12
Ψmax(b) [Mb/s]
165.47
165.47
165.47
165.47
Numer
scenariusza
13
14
15
16
Ψmax(b) [Mb/s]
165.47
165.47
165.47
165.47
Numer
scenariusza
Ψmax(b) [Mb/s]
17
18
19
20
165.47
165.47
165.47
165.47
21
22
23
24
165.47
165.47
165.47
165.47
Numer
scenariusza
Ψmax(b) [Mb/s]
Tabela 5.6. Wartości Ψśr(b) otrzymane dla topologii z rys. 4.4.
Numer
scenariusza
1
2
3
4
Ψśr(b) [Mb/s]
165.47
165.47
165.47
165.47
5
6
7
8
165.47
165.47
156.488
157.688
9
10
11
12
164.756
165.47
165.47
165.47
Numer
scenariusza
13
14
15
16
Ψśr(b) [Mb/s]
161.208
165.47
164.68
164.68
Numer
scenariusza
17
18
19
20
Ψśr(b) [Mb/s]
165.47
165.47
156.86
152.94
Numer
scenariusza
Ψśr(b) [Mb/s]
21
22
23
24
165.47
162.476
159.848
161.742
Numer
scenariusza
Ψśr(b) [Mb/s]
Numer
scenariusza
Ψśr(b) [Mb/s]
- 145 -
Tabela 5.7. Wartości parametrów beta otrzymane dla poszczególnych scenariuszy dla topologii z rys. 4.4.
Numer
Beta3
Beta4 Beta5
Beta6
1
7.713
0.362
2.129
2.892
2
8.345
0.391
1.776
1.73
3
4.625
0.438
1.694
2.034
4
1.803
0.344
0.988
0.49
5
6.395
0.403
2.686
3.182
6
8.84
0.422
0.988
2.145
7
7.901
0.419
0.441
0.308
8
6.653
0.359
1.746
1.446
9
6.245
0.362
2.569
2.171
10
5.115
0.377
3.365
2.595
11
2.778
0.333
0.86
2.055
12
7.983
0.34
0.757
2.505
13
3.626
0.426
0.101
0.154
14
5.7
0.354
0.919
0.459
15
8.3
0.364
1.958
3.274
16
8.927
0.419
2.337
2.284
17
3.098
0.052
0.131
2.158
18
2.241
0.376
2.373
3.143
19
5.49
0.429
1.736
1.788
20
1.098
3.913
0.376
1.055
21
2.795
0.013
0.14
1.07
22
2.382
0.368
0.028
3.055
23
3.07
0.428
3.323
0.016
24
7.834
0.438
1.272
3.093
scenariusza
Ponieważ routery 1 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 2.4.
- 146 -
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 1.73 GHz, 1
GB pamięci operacyjnej i system Windows XP) to pojedyncze sekundy, dla schematu
geometrycznego od około 10 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 10000 stopni, liczba iteracji algorytmu jest
sto razy większa niż przy temperaturze początkowej równej (wynoszącej) 100 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 iteracyjny21). 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ł 15.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
16-17 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
21
Termin własny autora.
- 147 -
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 100 stopni, najlepszy uzyskany wynik to 207.5 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ż 165.47
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 100 stopni oraz iteracyjnego schematu
schładzania, nie przekroczyła 10% w stosunku do wszystkich wykonanych iteracji oraz
obydwu przebadanych topologii.
Na wykresach 5.1, 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
250
Przepustowość [Mb/s]
200
150
100
50
0
1
2
3
4
Wykres 5.1. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyżarzania dla topologii pierwszej.
- 148 -
Wyniki optymalizacji przepustowości dla topologii drugiej
170
Przepustowość [Mb/s]
165
160
155
150
145
140
1
2
3
4
Wykres 5.2. Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody symulowanego wyżarzania dla topologii drugiej.
Wyniki optymalizacji przepustowości dla topologii trzeciej
3000
Przepustowość [Mb/s]
2500
2000
1500
1000
500
0
1
2
3
4
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 e j jako dwóch przeciwnie zwróconych krawędzi
grafu skierowanego, oznaczonych jako e +j oraz e −j . Jednocześnie wprowadzono następujące
ograniczenie: suma wykorzystywanych przepustowości dwóch przeciwnie skierowanych
- 149 -
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.1)
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ą 210
Mb/s. Natomiast w zastosowaniu do drugiej topologii sieciowej tj. przedstawionej na rys. 4.4,
otrzymano wartość Ψ(b) równą 190 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 10 (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.19).
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.
- 150 -
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.
- 151 -
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.1 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ą 207.5 Mb/s. Dla
równoważenia typu RK Ψ(b) wyniosła 133 Mb/s, zaś bez równoważenia - 100 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
107% 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 10%. 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.
- 152 -
Dla równoważenia typu RK Ψ(b) wyniosła 2 Gb/s, zaś bez równoważenia – 1 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 150% 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 100 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 100 – 150 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.
- 153 -
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 15.5 - 17 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/15.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 15.5 – 17 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 6.5.
6.3 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 [132], gdzie
- 154 -
µ – 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
[110][111][112]. 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.1. komunikacja odbywa się w następujący
sposób:
•
H2 pobiera od H1 dk danych;
•
H3 pobiera od H1 dk danych;
•
H3 pobiera od H2 dk danych.
Rys. 6.1. Przykładowa sieć komputerowa z routerami brzegowymi.
W opisanej powyżej sytuacji z R1 jest wysyłane 2δ k 1 danych, R2 odbiera δ k 2 danych oraz
taką samą ilość wysyła, natomiast R3 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 (Ri jest węzłem początkowym pary k), δ ki = − d k jeśli (Ri jest węzłem końcowym
- 155 -
pary k), w pozostałych przypadkach δ ki = 0 , są oczywiście spełnione wewnątrz elipsy
symbolizującej konkretny obszar OSPF (routery wewnętrzne). Przechodząc do routerów
brzegowych
tj.
R1,
R2
i
R3,
nie
trudno
zaobserwować,
że:
δ k1 = −2d k ; δ k 2 = − d k + d k = 0; δ k 3 = 2d k . W konsekwencji router R2 nie będąc routerem
„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 2dw tylko
pomiędzy routerami R1 i R3, 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 R2 z rys. 6.1) na α routerów wirtualnych. Przy
czym symbol
vi
oznacza liczbę routerów wirtualnych odpowiadającą routerowi
rzeczywistemu Ri. Liczba routerów wirtualnych powinna być równa sumie liczby wirtualnych
+
routerów „wejściowych” (oznaczonych jako vi ), od których dany router pobiera dane oraz
−
liczbie routerów „wyjściowych” (oznaczonych jako vi ), 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:
∀1 ≤ i ≤ m
+
vi = vi + vi
−
(6.1)
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.
- 156 -
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:
m
m
∑π j + ∑π j ≤ π j
∀e j ∈ E
+
(6.2)
−
i =1
i =1
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.
sieć
Rozpatrzmy
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− 1)
(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− 1) + (m − m)
(6.4)
oraz liczbę łączy
~
~
~
~
n * = m(m− 1) n + 2(n − n)
(6.5)
- 157 -
~
Przyjmując
konkretne
wartości
liczbowe
np.
m = 10 ,
m = 0 .5 m ,
n = 45 ,
~
n = 22 otrzymujemy:
~
~
m z = 5(5 − 1) = 20 routerów wirtualnych oraz m − m = 10 − 5 = 5 routerów rzeczywistych, co
w sumie daje 25 wierzchołków. Przechodząc do krawędzi, otrzymujemy:
m * = 5 * (5 − 1) * 22 + 2 * (45 − 22)
po obliczeniu
m * = 486
Reasumując, dla tak niewielkiej sieci składającej się tylko z 10 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 1979 roku L. G.
Chaczijan [113], oraz w 1984 roku N. Karmarkar [115] 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 1 – 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.
- 158 -
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
1 oraz 4) wymaga wykonania dwóch działań tj. wyznaczenia macierzy odwrotnej dla
macierzy tablicy Simplex związanej z nowym układem zmiennych - O(m2.376) operacji, oraz
pomnożenia jej przez macierz tablicy Simpleks związaną z aktualną bazą – O(m2.376) operacji.
Pewnego wyjaśnienia może wymagać czynnik O(m2.376). 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 [108]
[109] niezbędnym jest wykonanie m 2.376 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 1 – 2 m 2.376 operacji;
•
krok 2 – m operacji;
•
krok 3 – 1 + m + 1 = 2 + m operacji;
•
krok 4 – 2 m 2.376 operacji.
Po uwzględnieniu liczby iteracji algorytmu „ ε ”, złożoność jego działania może zostać
wyrażona wzorem:
O(m, ε ) = m + 2m 2.376 + ε * (3m + 2m 2.376 )
(6.6)
- 159 -
Zlożonośc metody dokładnej
80000
70000
60000
50000
O(m,eps) 40000
30000
20000
10000
0
1 3 5
7 9 11
13 15 17
19 21 23
25 27 29
m
S16
S11
eps
S6
S1
Wykres 6.1. 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
- 160 -
innych algorytmów heurystycznych oraz ich zastosowania w dziedzinie informatyki znajduje
się w [126][127][128][129][130][131].
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;
kmax – maksymalna liczba iteracji algorytmu;
select(x,φ*) – funkcja wybierająca najlepiej przystosowanych osobników (na podstawie
najlepszej dotychczas uzyskanej wartości funkcji oceny);
- 161 -
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.
Algorytm 7
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+1;
dopóki (k<=kmax)
zwróć x*
koniec
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;
- 162 -
•
ocenę dopasowania osobnika x (wektora współczynników beta) można przeprowadzić
z zastosowaniem funkcjonału określonego wzorem (3.31) 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
- 163 -
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.
Algorytm 8
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
Przyjmując dodatkowo następujące oznaczenia:
T – zbiór tabu;
RS – reguła selekcji nowych zmiennych decyzyjnych z sąsiedztwa obecnych (uwzględniająca
kryteria aspiracji);
Nd(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.
Algorytm 9
start Algorytm_tabu_search()
ustal x;
x* ← x;
φ*← φ(x);
k := 0;
powtarzaj
x:=RS(x,Nd(x,T));
- 164 -
T := T ← x;
jeżeli (φ(x) > φ*) to
φ*← φ(x);
x* ← x;
koniec_jeżeli
k:= k+1;
dopóki (k<=kmax)
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.31) 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 Nd(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.
- 165 -
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
- 166 -
przeprowadzone z wykorzystaniem wyprowadzonych wcześniej wzorów tj. (4.12) 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ń):
l * (b) = 2.5m 2 (0.5m − 1)
(6.7)
l ~ (b) = 0.25m 2 (0.5m − 1)
(6.8)
^
d (tqk (b)) =
m
2
Pr(Ψk (b) ≥ Ψk −1 (b)) = 0.1
Pr( E ≥ Y ) = 0.5
(6.9)
(6.10)
(6.11)
gdzie
^
d (tqk (b)) Dt – średnia długość trasy t qk (b) , rozumiana jako liczba routerów występujących na
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.12) otrzymano następujące
wartości:
m 2 * n m 4 m3 m
m2 m
m2 m2
µ (m.n) =
*(
−
+ − 1) + n * (
− + 1) +
*(
− 1)
8
64 32 4
8
4
8
8
(6.12)
m 2 * n m 4 m3 m
m2 m
m2 m2
ε [ µ (m, n)] = ε (m, n) = 2.5 * [
*(
−
+ − 1) + n * (
− + 1) +
*(
− 1) ]
8
64 32 4
8
4
8
8
(6.13)
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
- 167 -
jego węzłów (routerów), czy też krawędzi (łączy). W [103] 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 3m .
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
komunikujących się ze sobą par sieci (lub obszarów) jest równa
m
. Liczba
2
m m
* ( − 1) . 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
( − 1) * m * 5 = 2.5m 2 (0.5m − 1) różnych tras.
2 2
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.1).
W przeciwnym razie przepustowość środowiska sieciowego ulega pogorszeniu. W związku z
powyższym sugerowanym rozwiązaniem jest przyjęcie liczby tras aktywnych jako 10%
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ść 1, natomiast najdłuższa trasa prosta (czyli bez
cykli) posiada długość m − 1 . Wyznaczając średnią arytmetyczną i przyjmując, że rozkład
długości tras jest jednostajny, otrzymujemy następujący wynik
^
d (tqk (b)) =
1+ m −1 m
=
2
2
(6.14)
- 168 -
Dla (6.10) - wartość 0.1 przyjęto na podstawie obserwacji oraz badań przedstawionych w
podrozdziale 5.1.
Dla (6.11) – odpowiednią wartość wyznaczono jako wartość przeciętną dla próbki losowej o
rozkładzie jednostajnym na przedziale <0,1>. 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.1) jest większa
od wartości losowej o rozkładzie jednostajnym na przedziale <0,1>, 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.
Pr(exp(−
Ψnew (b) − Ψ (b) |
T
) > wartośa _ oczekiwana)
(6.15)
gdzie wartość_oczekiwa jest to wartość oczekiwana zmiennej losowej o rozkładzie
jednostajnym na przedziale <0,1> czyli 0.5. Wprowadzając dodatkowe oznaczenie
∆Ψ (b) = Ψnew (b) − Ψ (b) , oraz zastępując wartość_oczekiwaną liczbą 0.5 otrzymujemy:
exp(−
∆Ψ (b)
) > 0 .5
T
a następnie przekształcając z użyciem funkcji ln otrzymujemy:
ln(2) >
∆Ψ (b)
T
0.693 >
∆Ψ (b)
T
czyli
Przykładowo, przyjmując T=100 otrzymujemy
∆Ψ (b) < 69.3
natomiast dla T=1
∆Ψ (b) < 0.693
Jak widać z powyższych obliczeń odpowiedź na pytanie jakie jest prawdopodobieństwo
zdarzenia opisanego wzorem (6.15) nie jest jednoznaczna. Dodatkowo zależy ona od tego czy
zmiana (spadek) wartości Ψ(b) pomiędzy kolejnymi dwoma iteracjami algorytmu o np. 69.3
czy też o 0.693 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ąć
- 169 -
wartości prawdopodobieństwa na poziomie wartości średniej tj. 0.5. 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.12), 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
m2
m2 m
, zaś liczba łączy z n * do n * (
− + 1) .
4
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
ograniczenia ze wzoru (3.11) i przyjętych założeń istnieje
m* m*
*(
− 1) komunikujących się
2
2
par, po podstawieniu odpowiedniej dla specyfiki tej metody liczby routerów (w tym także
wirtualnych)
n*(
otrzymujemy
m2 m
− + 1) łączy.
8
4
Po
m2 m2
*(
− 1)
8
8
pomnożeniu
m 2 * n m 4 m3 m
*(
−
+ − 1) równań.
8
64 32 4
n*(
Dla
komunikujących
obydwu
drugiego
się
par
sieci
oraz
składników
otrzymujemy
ograniczenia
otrzymujemy
m2 m
m2 m2
− + 1) równań. Natomiast dla trzeciego
*(
− 1) równań. Po zsumowaniu
8
4
8
8
wszystkich trzech składników otrzymujemy końcową postać wzoru na liczbę równań
ograniczeń, czyli
m2 * n m4 m3 m
m2 m
m2 m2
µ (m, n) =
*(
−
+ − 1) + n * (
− + 1) +
*(
− 1)
8
64 32 4
8
4
8
8
(6.16)
Ponieważ jak wykazano w [110][111][112] 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:
- 170 -
ε [ µ (m, n)] = ε (m, n) = 2.5 * [
m 2 * n m 4 m3 m
m2 m
m2 m2
*(
−
+ − 1) + n * (
− + 1) +
*(
− 1) ]
8
64 32 4
8
4
8
8
(6.17)
Na podstawie przyjętych założeń oraz wykonanych podstawień wzór (4.11) można
przedstawić następująco:
O(m) = {1 + 0.25m 2 (0.5m − 1) * (2m + 0.5m + 1) + 2.5m 2 (0.5m − 1) * 0.5m * (1 +
3m
) + 3m +
2
+ [0.1 * (m + 1)] + [(1 − 0.1) * (5 + 0.5 * ( m + 1))] +
+ m * [0.25m 2 (0.5m − 1) * (
3 * 0 .5 m 1
+ ) + 2]} * 100
4
2
po uproszczeniu i redukcji wyrazów podobnych otrzymujemy:
O(m) = {1 + 0.25m 2 (0.5m − 1)(2.5m + 1) + 1.25m 3 (0.5m − 1)(1 +
3m
) + 3m +
2
1
2
2
+ [0.55m + 5.05] + r * [0.25m (0.5m − 1) * (0.375m + ) + 2]} * 100
(6.18)
natomiast (6.6) ulega przekształceniu do następującej postaci:
m 2 ln m 4 m 3 m
m2 m
m2 m2
(
−
+ − 1) + 3m(
− + 1) +
(
− 1) +
8
64 32 4
8
4
8 8
m2n m4 m3 m
m2 m
m2 m2
2[
(
−
+ − 1) + 3m(
− + 1) +
(
− 1)] 2.376 +
8 64 32 4
8
4
8 8
m 2 n m 4 m3 m
m2 m
m2 m2
2.5[
(
−
+ − 1) + 3m(
− + 1) +
(
− 1)] *
8 64 32 4
8
4
8 8
m 2 n m 4 m3 m
m2 m
m2 m2
* {3[
(
−
+ − 1) + 3m(
− + 1) +
(
− 1)]
8 64 32 4
8
4
8 8
m 2 n m 4 m3 m
m2 m
m2 m2
+ 2[
(
−
+ − 1) + 3m(
− + 1) +
(
− 1)]2.376 }
8 64 32 4
8
4
8 8
O(m, n) =
(6.19)
Obydwa wzory tj. (6.18) oraz (6.19) 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.18) przedstawiającym złożoność obliczeniową zmodyfikowanej metody SW
wartość najwyższej potęgi to m 5 , natomiast we wzorze (6.19) przedstawiającym złożoność
metody dokładnej wartość najwyższej potęgi wynosi m 6 * (m 6 ) 2.376 = m 20.256 . Mając na
uwadze informacje zawarte w [114] oraz [117], wysoka wartość wykładnika dla wzoru (6.19)
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
- 171 -
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.10) i (6.11).
Przechodząc do czasów działania obydwu omawianych metod, podczas przeprowadzania
badań zauważono, że wzrost liczby routerów z 4 do 10 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 210 Mb/s. Dla tej samej topologii bez
równoważenia obciążenia Ψ(b) wynosiło 100 Mb/s, a z równoważeniem typu RK 133 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
- 172 -
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] [81] [83] [85] [86] [87] [89] [102]. Warto także
zwrócić uwagę na publikacje opisujące zastosowanie innych rodzajów algorytmów
heurystycznych jak np.: [48] [50] [51] [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
- 173 -
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. 6.2. przyjęto, że H1 i H2 jednocześnie komunikują się z
Serwerem. Przepustowości poszczególnych łączy są podane na schemacie.
Rys. 6.2. Siódmy przykład topologii sieci komputerowej.
- 174 -
Przepustowości łączy wynosza odpowiednio (Mb/s):
π 1 = 100 ; π 2 = 10 ; π 3 = 50 .
W takiej sytuacji trasa numer k=1 tj. H1 z serwerem wiedzie poprzez łącza t11 (b) =(e1, e3);
natomiast trasa numer k=2 tj. dla H2 przez łącza t12 (b) =(e2, e3). Wyznaczając Ψ(b) w sposób
wyrażony wzorem (3.27) z zachowaniem wcześniejszych oznaczeń otrzymujemy:
Liczby tras wykorzystujące poszczególne łącza wynoszą.
λ1 (0) =1 ; λ2 (0) =1 ; λ3 (0) =2 ;
Efektywne przepustowości poszczególnych łączy wynoszą (w Mb/s):
Q1 =100; Q2 =10; Q3 =25;
Efektywne przepustowości najwolniejszych łączy dla poszczególnych tras wynoszą.
^
Ψ (1,1,0) = min(100 ; 25) = 25;
^
Ψ (2,1,0) = min(10 ; 25) = 10;
Przepustowość środowiska sieciowego dla zadanych warunków początkowych wynosi.
2
1
^
Ψ (0) = ∑∑ Ψ (k , q,0) = 25 + 10 = 35 [Mb/s]
k =1 q =1
W rzeczywistości wartość ta będzie większa i wyniesie 50 Mb/s. Przyczyną jest to, że
komunikacja H2 z serwerem zajmuje jedynie 10 Mb/s na łączu e3, w konsekwencji dla H1
pozostanie 40 Mb/s, a nie jak wyliczono 25 Mb/s. Warto zauważyć, że ta „niedoskonałość”
metody wyznaczania Ψ(b) nie skutkuje przyjęciem złego rozwiązania – dzieje się tak dlatego,
że rzeczywista wartość Ψ(b) może być większa niż wyliczona, ale nigdy mniejsza. W takiej
sytuacji rodzi się pytanie jak dokładnie wyliczać wartość Ψ(b). Można to zrobić np. w
następujący sposób.
1. Przyjąć Ψ(b) równe zero.
2. Wyznaczyć przepustowości wszystkich tras.
3. Wyznaczyć trasę o najmniejszej przepustowości i dodać jej wartość do Ψ(b) (w
przypadku, kiedy istnieje więcej niż jedna trasa o minimalnej przepustowości należy
wybrać tę, która ma najmniejszą liczbę „wąskich gardeł”.
4. Zmniejszyć nominalne przepustowości wszystkich łączy trasy z punktu 3 o wartość jej
przepustowości.
5. Usunąć trasę ze zbioru tras.
6. Jeśli zbiór tras nie jest pusty, rozpocząć od punktu 2.
- 175 -
Taki algorytm zwróci rzeczywistą wartość Ψ(b), lecz posiada on istotną wadę. Wadą tą jest
duża (to znaczy porównywalna z liczbą rozważanych tras) liczba iteracji, jaką należy
wykonać. Porównując powyżej przedstawioną dokładną metodę wyliczania Ψ(b) z metodą
przybliżoną tj. algorytmem 3, pojawiają się następujące wnioski:
•
metoda dokładna zwraca dokładny wynik, zaś metoda przybliżona zwraca
dolne oszacowanie;
•
metoda przybliżona wymaga jednej iteracji, metoda dokładna wymaga
niemalże tylu iteracji ile tras jest rozważanych.
W pewnych przypadkach liczbę iteracji omawianej metody dokładnej można zmniejszyć. W
sytuacji kiedy istnieje kilka tras o tej samej minimalnej przepustowości, to dla wszystkich
tych tras punkty 4 i 5 można realizować w jednej iteracji. Rozważając dokładniej to
zagadnienie, liczbę iteracji metody dokładnej można wyznaczyć jako sumę ciągu
arytmetycznego. Rozważając „lk(b)” tras, w pierwszej iteracji algorytm wyliczy
przepustowości dla wszystkich „lk(b)” tras. W drugiej iteracji dla „lk(b)-1”, w trzeciej dla
„lk(b)-2” itd. aż do osiągnięcia lk(b)=0, oczywiście przy założeniu, że nie występują w jednej
iteracji trasy o takiej samej minimalnej przepustowości. Zbiór wykonanych iteracji można
zapisać następująco [lk(b), lk(b)-1, lk(b)-2, ... , 2, 1], jeśli zbiór ten odwrócimy to otrzymamy
[1, 2, ... , lk(b)-2, lk(b)-1, lk(b)] czyli ciąg arytmetyczny o różnicy r = 1 i wyrazie
początkowym a1 = 1. Liczba iteracji, jaką musi wykonać algorytm przy metodzie dokładnej to
suma takiego ciągu wyrażana wzorem (6.20).
S n (b) =
a1 + a n
* l k (b)
2
(6.20)
gdzie
a n = a1 + (l k (b) − 1) * r
(6.21)
Przyjmując, że
r = 1, a1 = 1 otrzymujemy an = lk(b), zaś S lk (b ) =
l k (b) * (l k (b) + 1)
2
z prostych obliczeń widać, że niezbędna liczba iteracji wzrasta tak jak funkcja kwadratowa o
wzorze f(lk(b)) = 0.5lk(b) 2 + 0.5lk(b). Jeśli dla przykładu przyjąć liczbę tras jako 6846 (jak
zostanie pokazane w dalszej części tego rozdziału, liczba ta nie została wybrana
przypadkowo), niezbędna liczba iteracji wynosi 23437281, czyli ponad dwadzieścia trzy
miliony w porównaniu do jednej wykonywanej przez zastosowaną metodę. Wniosek wydaje
się stosunkowo prosty, zastosowanie dokładnej metody wyznaczania Ψ(b) może doprowadzić
- 176 -
to tego, że optymalizacja przepustowości sieci komputerowej nie będzie działała w czasie
rzeczywistym, a to całkowicie przekreśla jej praktyczną użyteczność.
W tym miejscu pojawia się pytanie, z jaką liczbą tras można mieć do czynienia w warunkach
praktycznych? Dla uproszczenie skoncentrujmy się na sieciach typu każdy-z-każdym
reprezentowanych jako grafy pełne. Biorąc pod uwagę fakt, że zaproponowana metoda
optymalizacji powinna przede wszystkim działać w obszarach zero przyjęte uproszczenie nie
odbiega dalece od rozwiązań rzeczywistych. Kontynuując, pojawia się pytanie ile jest różnych
prostych dróg w grafie pełnym? Odpowiedzią jest następujące twierdzenie:
Twierdzenie 1:
Niech Gf będzie n-wierzchołkowym grafem pełnym w klasie grafów zwykłych lub Berge’a22.
Liczba dróg prostych ∆ pk o długości p ≥ 1 w Gf między dowolną parą różnych wierzchołków
k jest równa:
∆ pk =
(n − 2)!
(n − p − 1)!
(6.22)
Dowód powyższego twierdzenia znajduje się w [103]. Rozważając wszystkie możliwe drogi
pomiędzy dowolną parą węzłów k, otrzymujemy:
n −1
(n − 2)!
p =1 ( n − p − 1)!
∆k = ∑
(6.23)
Przyjmując, że każda para wierzchołków (routerów) komunikuje się ze sobą, co jest
założeniem jak najbardziej realnym otrzymujemy:
∆=
n * (n − 1) n−1 (n − 2)!
*∑
2
p =1 ( n − p − 1)!
(6.24)
Wracając do wspomnianej liczby tras równej 6846 i rozwiązując równanie (6.24) czyli
∆ = 6846 otrzymujemy N=7. Wniosek: dla sieci typu każdy-z-każdym składającej się tylko z
7 routerów metoda dokładna wyliczania Ψ(b) wykonuje 23437281 razy więcej iteracji niż
metoda przybliżona. Warto zauważyć, że powyższy wniosek w połączeniu z wymaganym
wielostartem algorytmu symulowanego wyżarzania, najprawdopodobniej czyni metodę
dokładną wyznaczania Ψ(b) praktycznie nie do zaakceptowania.
22
Grafem Berge’a to graf który nie zawiera ani nieparzystych dziur, ani nieparzystych antydziur. Przy czym, dziura nieparzysta to podgraf
będący cyklem o nieparzystej długości większej niż cztery, natomiast antydziura to podgraf będący dopełnieniem dziury (ang. graph
antihole). Dopełnienie grafu G (podgrafu, dziury) to graf zawierający te same wierzchołki co G, lecz krawędzie w grafie dopełnienia istnieją
tylko wtedy gdy w grafie G pomiędzy odpowiednimi wierzchołkami krawędź nie występuje.
- 177 -
6.9 Podsumowanie
Przedstawione w tym rozdziale wnioski z przeprowadzonych badań w mojej ocenie
potwierdzają przyjętą tezę badawczą, a także wykazują słuszność wprowadzonych
modyfikacji i przyjętych rozwiązań. Uzyskane wyniki należy uznać za zadowalające, a cały
scentralizowano–rozproszony system (przy właściwej konfiguracji) za działający w czasie
rzeczywistym. Warto także stwierdzić, że złożoność obliczeniowa zaproponowanej metody
jest znacząco mniejsza od złożoności algorytmu genetycznego i porównywalna (lub lepsza)
od złożoności algorytmu tabu search, czyli wypada korzystnie w porównaniu z innymi, często
stosowanymi algorytmami heurystycznymi. Dodatkowo w kontekście optymalizacji
przepustowości sieci komputerowych, zaproponowana przeze mnie metoda posiada większe
możliwości dostosowania do potrzeb konkretnej organizacji czy instytucji niż metoda
programowania liniowego, co zdecydowanie przemawia za jej stosowaniem. Jednakże dla
kompletności należy stwierdzić, że w tej pracy zaprezentowana została metoda heurystyczna,
dla której nie istnieją ścisłe kryteria oceny efektywności, więc ostatecznym sprawdzeniem jest
dopiero implementacja opracowanego algorytmu w rzeczywistym środowisku sieciowym.
Oczywiście przeprowadzone eksperymenty w środowisku symulowanym dają jakiś pogląd,
ale warunki symulowane nie zawsze w pełni odpowiadają rzeczywistym.
- 178 -
Zakończenie
W niniejszej pracy została zaproponowana zmodyfikowana metoda symulowanego
wyżarzania, zastosowana do optymalizacji przepustowości sieci komputerowych. Ponadto
została także przedstawiona nowa metoda równoważenia obciążenia w protokole OSPF.
Polega ona na uwzględnieniu nie tylko tras o równym (minimalnym) koszcie, ale również tras
o koszcie większym od minimalnego. Metoda ta została nazwana metodą równoważenia
obciążenia typu NK (z wykorzystaniem tras o nierównym koszcie).
Moja praca skupia się na wydajności, a głównym jej zagadnieniem jest zadanie optymalizacji
przepustowości sieci komputerowych. Przedstawione w niej rozwiązanie jest to metoda
zwiększania efektywnej przepustowości sieci w tych przypadkach, w których jest to możliwe.
Czy jest to możliwe, 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 o równym i różnym
koszcie. 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.
Głównym zagadnieniem pracy było zadanie optymalizacji przepustowości sieci
komputerowych, sformułowane jako zadanie PL i NCSP. Zadanie PL rozwiązywane było z
zastosowaniem metody dokładnej – Simplex, natomiast zadanie NCSP z zastosowaniem
zmodyfikowanej metody SW.
Praca zawiera także autorski algorytm służący do wyznaczania przepustowości
środowiska sieciowego (Ψ(b)).
Podstawowym celem pracy było wykazanie słuszności postawionej tezy badawczej.
Teza ta brzmi – po pierwsze, odpowiednie zastosowanie równoważenia obciążenia typu NK
może prowadzić do wzrostu przepustowości sieci komputerowej. Po drugie, zasadnym jest
stosowanie algorytmów heurystycznych do optymalizacji przepustowości sieci.
Następstwem przeprowadzonych badań i analiz były wnioski będące odpowiedzią na
pytania zawarte w opisie celów pracy.
- 179 -
Przy uwzględnieniu następujących wniosków:
•
znacznie mniejsza złożoność obliczeniowa metody SW w porównaniu z metodą
dokładną;
•
porównywalna lub mniejsza złożoność obliczeniowa metody SW w porównaniu z
innymi wybranymi algorytmami heurystycznymi;
•
działanie zmodyfikowanej metody SW w czasie rzeczywistym;
•
uzyskanie satysfakcjonujących wyników wzrostu przepustowości dla wszystkich
przebadanych sieci;
zasadność stosowania przedstawionej w pracy metody SW do optymalizacji przepustowości
sieci komputerowych została wykazana. Jednocześnie wspomniane wcześniej wnioski
potwierdzają słuszność przyjętej tezy badawczej.
Dla osiągnięcia przyjętych w pracy celów wykonano następujące zadania opisane w
kolejnych rozdziałach pracy:
•
scharakteryzowano zastosowania oraz możliwości protokołu OSPF, z uwzględnieniem
obecnego stanu wiedzy w tym obszarze;
•
zaproponowano autorski sposób wyznaczania tras o kosztach wyższych od
optymalnego 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 w postaci zadania programowania liniowego i programowania NCSP;
•
wybrano zbiór parametrów, statystyk oraz narzędzi mający służyć wykazaniu
słuszności postawionej tezy;
•
przeprowadzono odpowiednie badania;
•
zebrane informacje przeanalizowano oraz wyciągnięto odpowiednie wnioski;
•
dokonano porównania wydajności oraz złożoności obliczeniowej badanej metody w
odniesieniu do metody dokładnej oraz w odniesieniu do innych wybranych metod
heurystycznych;
•
zaproponowano przykładowe zastosowanie badanego rozwiązania.
Jednocześnie można stwierdzić, że nie wystąpiły żadne czynniki znacząco utrudniające
realizację zaplanowanych zadań. Zadania te zostały zrealizowane, a uzyskane wyniki są
zadowalające.
- 180 -
Niniejsza praca może stanowić źródło informacji dla osób zajmujących się tworzeniem
oraz udoskonalaniem protokołów sieciowych (w tym OSPF), a także zastosowaniem
algorytmów heurystycznych do optymalizacji przepustowości sieci komputerowych. Zarówno
przedstawione modyfikacje metody symulowanego wyżarzania jak i algorytm tworzenia
tablicy routingu oraz zaproponowana metoda przeprowadzania równoważenia obciążenia,
mogą stanowić punkt wyjścia do dalszych prac.
W obecnych czasach zasadność istnienia Internetu nie budzi niczyjej wątpliwości, a
każdy z członków globalnej społeczności chciałby mieć jak najszybszy dostęp do
potrzebnych informacji. Dostęp ten jest uzyskiwany między innymi dzięki wydajnym
protokołom routingu. Natomiast zwiększenie ich wydajności w sposób bezpośredni przekłada
się na szybkość przepływu informacji, a w konsekwencji zadowolenie użytkowników.
Między innymi z powyższych względów ocena praktycznej przydatności poruszonej w tej
pracy problematyki nie powinna budzić wątpliwości.
Dodatkowo, informacje zawarte w załączniku II mogą stanowić zbiór praktycznych
porad dla osób zajmujących się projektowaniem oraz budową sieci komputerowych.
Administratorzy tych sieci, znajdą we wspomnianym załączniku wiele użytecznych
informacji przydatnych
podczas wykonywania codziennych obowiązków. Ponadto,
przedstawiony projekt sieci komputerowej, wraz z konfiguracją urządzeń sieciowych
wchodzących w jej skład, może stanowić pewnego rodzaju model dla wielu organizacji i to
zarówno biznesowych jak i użyteczności publicznej. Na bazie tego modelu, po
przeprowadzeniu odpowiednich modyfikacji, można zbudować funkcjonalną, wydajną i
wysoce niezawodną korporacyjną sieć komputerową.
Uważam, że moja praca może przyczynić się do rozwoju badań nad tematyką
optymalizacji przepustowości oraz zagadnieniami wydajnego routingu w sieciach
komputerowych. Informacje w niej zawarte, a także sama idea przedstawionej koncepcji w
moim odczuciu są zagadnieniami interesującymi i posiadającymi bardzo duże szanse rozwoju
zarówno obecnie jak i w przyszłości. Jednocześnie mam świadomość, że praca ta nie
wyczerpuje podjętego tematu, co stwarza możliwości dalszej jego ewolucji oraz
udoskonalania.
Reasumując, uważam, że uzyskane wyniki mogą potwierdzić przyjętą tezę badawczą.
Ponadto zaproponowane udoskonalenie metody symulowanego wyżarzania, mające na celu
dostosowanie jej do optymalizacji przepustowości sieci komputerowych, działa poprawnie i
zgodnie z oczekiwaniami, co może stanowić solidny fundament do dalszego jej rozwoju i
ulepszania.
- 181 -
Bibliografia i odnośniki
[1]
John T. Moy, “OSPF Complete implementation”, Published by Addison
Wesley Professional. ISBN-10: 0-201-30966-1; ISBN-13: 978-0-201-30966-9;
Published: September 28, 2000; Copyright 2001; Edition: 1st.
[2]
John T. Moy., "Multicast Extensions to OSPF", RFC 1584, March 1994.
[3]
Coltun, R., and V. Fuller, "The OSPF NSSA Option", RFC 1587, March 1994.
[4]
Ferguson, D., "The OSPF External Attributes LSA", work in progress.
[5]
Moy, J., "Extending OSPF to Support Demand Circuits", RFC1793, April
1995.
[6]
Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman., “Data Structures and
Algorithms”, ISBN: 0-201-00023-7, April 1987.
[7]
J. Moy, RFC 2328, OSPF version 2, Ascend Communication , Inc. April 1998.
[8]
Andrew S. Tanenbaum, “Computer networks”, ISBN: 0130661023, Prentice
Hall, 2002.
[9]
Mark Sportack, “Networking Essentials Unleashed”, ISBN: 83-7361-503-2,
Helion, April 2004.
[10]
Marshall McLuhan, “The Gutenberg Galaxy”, ISBN-10: 0451039130, Signet,
July 1969.
[11]
Krzysztof
Liderman,
“Podręcznik
administratora
bezpieczeństwa
teleinformatycznego”, ISBN: 8372793778, Mikom 2003.
[12]
„Ustawa o ochronie danych osobowych“, Dz. U. z 1997r. Nr 133, poz. 883. z
dnia 29 sierpnia 1997.
[13]
Sam Halabi, Danny McPherson, „Internet routing architectures - Thedefinitive
BGP resource”, second edition, ISBN: 1-57870-233-X, Cisco Press, August
2000.
[14]
Sam Halabi, “OSPF design guide”, Cisco Press, April 1996.
[15]
“Dictionary
of
Internetworking
Terms
and
Acronyms”,
ISBN-10:
1587200457, Cisco Press, February 2001.
[16]
“Understanding EtherChannel Load Balancing and Redundancy on Catalyst
Switches”, Cisco Pres, Document ID: 12023, March 2003.
[17]
M. E. Kabay, “Computer Security Handbook”, Fourth Edition, John Willey &
Sons Publishing, Inc. 2002.
- 182 -
[18]
Martin P. Clark, “Data Networks, IP and the Internet: Protocols, Design and
Operation”, John Willey & Sons Publishing, Inc. 2003. ISBN: 0-470-84856-1.
[19]
G.R. Ash, R.H. Cardwell, R.P. Murray, “Design and Optimization of
Networks with Dynamic Routing”, Bell Systems Technical Jurnal, vol. 60,
1981.
[20]
Jay Ramachandran,, “Designing Security Architecture Solutions”, ISBN:
0-471-20602-4, John Willey & Sons Publishing, Inc. 2002.
[21]
Robert Sedgewick, “Algorithms in Java, Third Edition, Part 5: Graph
Algorithms”, ISBN-10: 0-201-36121-3, ISBN-13: 978-0-201-36121-6,
Addison Wesley Professional, lipiec 2003.
[22]
Steve S. Skiena, “The Algorithm Designee Manual”, ISBN: 0-387-94860-0,
Springer-Verlag New York Inc., 1998.
[23]
Cyrus Peikari, Anton Chuvakin, „Strażnik bezpieczeństwa danych”, ISBN: 837361-513-X, O’ Reilly, Helion, 2004.
[24]
Joseph D. Sloan, “Narzędzia administrowania siecią”, ISBN: 83-7243-206-6,
O’ Reilly, 2002.
[25]
E. Schetina, K. Green, J. Carlson, „Bezpieczeństwo w sieci”, ISBN: 83-7197801-4, Helion, 2002.
[26]
Dieter Jungnickel, „Graphs, Networks and Algorithms”, Third Edition, ISBN:
1431-1550, Springer, 2008.
[27]
William Kocay, Donald L. Kreher,“Graphs, Algorithms, and Optimization”,
ISBN: 1-58488-396-0, Hapman & Hall, 2005.
[28]
Deepankar Medhi, Karthikeyan Ramasamy, “Network Routing: Algorithms,
Protocols, and Architecture”, ISBN 13: 978-0-12-088588-6, ISBN 10: 0-12088588-3, Elsevier Inc., 2007.
[29]
K. Thulasiraman, M. N. S. Swamy, “Graphs: Theory and algorithms”, ISBN:
0-471-51356-3, John Wiley & Sons, Inc., 1992.
[30]
Rames Bhandari, “Survivable Networks: Algorithms for Diverse Routing”,
ISBN: 0-7923-8381-8, Springer, 2001.
[31]
Uyless N. Black, “IP Routing Protocols: RIP, OSPF, BGP, PNNI and Cisco
Routing Protocols”, ISBN: 0-13-014248-4, Prentice Hall Inc., 2000.
[32]
Tom M. Thomas, “OSPF Network Design Solutions”, CiscoPress, 2008.
- 183 -
[33]
William Parkhurst, “Cisco OSPF Command and Configuration Handbook”,
CiscoPress, 2008.
[34]
John T. Moy, “OSPF: Anatomy of an Internet Routing Protocols”, ISBN: 0201-63472-4, Addison-Wesley, 1998.
[35]
Andrew Colton, “OSPF for Cisco Routers”, ISBN: 0-9722862-1-7, Rocket
Science Press, Inc., 2003.
[36]
Allan Johnson, “Routing Protocols and Concepts”, ISBN-10: 1-58713-206-0,
ISBN-13: 978-158713-206-3, CiscoPress, 2007.
[37]
Stephen A. Thomas, “IP Switching and Routing Essentials: Understanding
RIP, OSPF, BGP, MPLS, CR-LDP, and RSVP-TE”, ISBN: 0-471-03466-5,
Wiley, 2001.
[38]
Natalia Olifer, Vivtor Olifer, “Computer Networks: Principles, Technologies
and Protocols for Network Design”, ISBN-10: 0-470-86982-8, ISBN-13: 9780-470-86982-6, John Wiley and Sons Inc., 2006.
[39]
Man Young Rhee, “Internet Security: Cryptographic, algorithms and
Protocols”, ISBN: 0-470-85285-2, Wiley, 2003.
[40]
Dilip C. Naik, “Internet Standards & Protocols”, ISBN: 1-57231-692-6,
Microsoft Press, 1998.
[41]
“Network Protocols Handbook”, Javin Technologies Inc., ISBN: 0-9740945-28, 2005.
[42]
Jeff Doyle, Jennifer Carroll, “Routing TCP/IP Volume 1”, ISBN: 1-58705202-4, CiscoPress, 2005.
[43]
Riikka Susitaival, Samuli Aalto, “Adaptive load balancing with OSPF”,
Network Laboratory, University of Technology, Helsinki.
[44]
Sabine Randriamasy, Laurent Fournie, Dohy Hong, “Distributed adaptive
multi-criteria load balancing: analysis and end to end simulation”. Alcatel and
N2NSOFT, 2005.
[45]
Curtis Villamizar, “OSPF-OMP optimized multi path”, IETF draft, January
2002.
[46]
Ashwin Sridharan, Roch Guerin, Christophe Diot, “Achieving Near-Optimal
Traffic Engineering Solutions for Current OSPF/IS-IS Networks”, IEEE/ACM
Transacions of Networking, Volume 13, ISSN: 1063-6692, 2005.
- 184 -
[47]
Nicholas Ng, Ashwin Sridharan, Roch Guerin, “Implementation of a Load
Balancing Technique for OSPF”.
[48]
L.S. Buriol, M.G.C. Resende, C.C. Ribeiro, M. Thorup, “A Hybrid Getetic
Algorithm
for
the
Weight
Setting
Problem
in
OSPF/IS-IS
Routing”, Journal of Combinatorial Optimization, volume 6, 2002.
[49]
Giuseppe Trivigno, ”OSPF Weight Tuning for Efficient Routing in
IPNetworks”, Master’s Degree Project, Stockholm, Sweden 2004.
[50]
B. Fortz i M. Thorup, “Incerasing internet capacity using local search”,
Technical report, AT&T Labs Research, 2000.
[51]
B. Fortz i M. Thorup, IEEE “Internet traffic engineering by optimizing OSPF
weights”, INFOCOM, 2000.
[52]
B. Fortz i M. Thorup, “Optimizing OSPF/IS-IS weights in a changing world”,
IEEE JSAC Special Issue on Advances in Fundamentals of Network
Management, 20:756-767, 2001.
[53]
K.G. Ramakrishnan i M.A. Rodrigues, “Optimal routing in shortest-path data
networks”, Lucent Bell Labs Technical Journal, 6(1), 2001.
[54]
Christian Huitema, “Routing in the Internet”, Prentice Hall PTR, Englewood
Cliffs, N.J., 1995.
[55]
R.K. Ahuja, i T.L. Magnanti I J.B. Orlin, “Network flows: theory, algorithms
and applications”, Prentice Hall , N.J., 1993.
[56]
L. Xiao, M. Johansson, i S. Boyd, “Simultaneous routing and resource
allocation via dual decomposition”, IEEE Trans. Communications, 2004.
[57]
J. Kurose, i K. Ross, “Computer networking: A Top-Down Approach
Featuring the Internet”, Addison Wesley Longman, 2003.
[58]
H. Pham i B. Lavery, “An improved method for determining link weights for
optimizing OSPF routing”, The First Workshop on the Internet,
Telecommunications and Signal Processing WITSP 02, 2002.
[59]
H. Abrahamsson, B. Ahlgren, J. Alonso, A. Andersson, P. Kreuger, “A multi
path routing algorithm for IP networks based on flow optimization”, Technical
report, SICS-Swedish Institute of Computer Science, 2002.
[60]
M. Roughan, M. Thorup i Y. Zhang, “Traffic engineering with estimated traffic
matrices”, IMC’03, 2003.
- 185 -
[61]
C.Y. Yong, „Exploration of routing algorithm extensions to OSPF”,
httpd://www.ee.ucl.ac.uk/~lsacks/tcomsmsc/projects/pastproj/cuong.pdf,
07. 2001.
[62]
A. Elwalid, C. Jin, S. Low, I. Widjaja, “MATE: MPLS Adaptive Traffic
Engineering”, IEEE INFOCOM’01, Anchorage, AK, April 2001.
[63]
I. Stoica, H. Zhang, „LIRA: An Approach for Service Differentiation in the
Internet”, NOSS-DAV’98, 1998.
[64]
S. Bak, J.A. Cobb, E.L. Leiss, “Hierarchical Load-Balanced Routing via
Bounded Randomization”, ICCCN’99, 1999.
[65]
R. Krishan, J.A. Silvester, „An Approach to Path-Splitting in Multi-path
Networks“, IEEE ICC’93, vol. 3, May 1993.
[66]
R. Krishan, J.A. Silvester, “Choice of Allocation Granularity in Multi-path
Source Routing Schemes”, IEEE INFOCOM’93, April 1993.
[67]
E. Gustafsson, G. Karlsson, “A Literature Survey on Traffic Dispersion”,
IEEE Network Magazine, March 1997.
[68]
R. Guerin, D. Williams, A. Orda, “QoS Routing Mechanisms and OSPF
Extensions”, IEEE GLOBECOM’97, 1997.
[69]
R. Rabbat, K. Laberteaux, N. Modi, J. Kenny, „Traffic Engineering
Algorithms Using MPLS for Service Differentiation”, IEEE ICC’00, June
2000.
[70]
G.R. Ash, R.H. Cardwell, R.P. Murray, “Design and Optimization of Network
with dynamic Routing”, Bell Systems Technical Jurnal, vol. 60, 1981.
[71]
S. Nelakuditi, Z.L. Zhang, R.P. Tshang, “Adaptive Proportional Routing: A
Localized QoS Routing Approach”, IEEE INFOCOM’00, April 2000.
[72]
S. Nelakuditi, Z.L. Zhang, “On Selection of Paths for Multi-path Routing”,
IEEE IFIP IWQoS ’01, June 2001.
[73]
C. Lagoa, H. Che, „Decentralized Optimal Traffic Engineering in the
Internet”, Comp. Commun. Review, vol. 30, October 2000.
[74]
N. Taft, S. Bhattacharyya, J. Jetcheva, C. Diot, “Understanding Traffic
Dynamics at a Backbone POP”, ITCOM+OPTICOM, August 2001.
[75]
K.C. Leung, V.O.K. Li, “Flow Assignment and Packets Scheduling for Multipath Networks”, IEEE GLOBECOM’99, December 1999.
[76]
E. Dinan, D.O. Awduche, B. Jabbari, „Analytical Framework for Dynamic
- 186 -
Traffic Partitioning in MPLS Networks“, IEEEICC’00, vol. 3, June 2000.
[77]
P. Siripongwutikorn, S. Banerjee, D. Tipper, „Traffic Engineering in the
Internet: A Survey of Load Balanced Routing”, Univercity of Pittsburgh,
Hewlett-Packard Labolatories.
[78]
S. Pierre, M. Hyppolite, J. Bourjolly, O. Dioume, “Topological Design of
Computer Communication Networks Using Simulated Annealing”,
Engineering Applications of Artificial Intelligence, Vol. 8, Number 1,
February 1995.
[79]
J. Kock, A. Krzesiński, “Computing an Optimal Vitrual Path Connection
Network by Simulated Annealing”, Department of Computer Science,
University of Stellenbosch, South Africa.
[80]
Alekasndar Tsenov, “Simulated Annealing and Genetic Algorithm in
Telecommunications Network Planning”, International Journal of
Computational Inteligence 2,4, 2006.
[81]
S. Routray, A. M. Sherry, B.V.R. Reddy, “A Simulated Annealing Based
Approach for ATM Network Optimization”, Engineering, Computing and
Architecture, ISBN 1934-7197, Vol. 1, Issue 2, 2007.
[82]
M. Abd-El-Barr, S.M. Sait, A.S. Al Mulhem, A. Zakir, “Reliability based
Topological Optimization of Computer Networks – Part II: interactive
Techniques”, Computer Engineering Department, Information Technology
Center, King Fahd University.
[83]
T.M. Mahmoud, “A Genetic and Simulated Annealing Based Algorithms for
Solving the Flow Assignment Problem in computer Networks”, International
Journal of Electronics, Circuits and Systems, vol. 1, number 2.
[84]
M. Abd-El-Barr, A. Zakir, S.M. Sait, A.S. Almulhem, “Interactive Heuristics
in Topological Optimization of Computer Networks Subject to Fault
Tolerance and Realiability”, IEEE, ISCC’2003, July 2003.
[85]
E. Costamagna, A. Fanni, G. Giacinto, „A Simmulated annealing Algorithm
for the Optimization of Communication Networks”, VLSI Systems, October
1995.
[86]
M.M. Atiqullah, S.S. Rao, “Reliability Optimization of Computer Networks
using Simmulated Annealing”, Microelectronics Reliability, vol. 33,
Nowember 1993.
- 187 -
[87]
E. Aarts & J. Korst, “ Simmulated Annealing and Boltzman Machines”,
Willey & Sons Ltd. 1989.
[88]
N.M. Jorgensen, “Simmulated annealing in FWA-networks”, Master thesis on
Informatics and Mathematical Modeling, Denmark, September 2001.
[89]
S. Kirkpatrick, C.D. Gelatt Jr., M.P. Vecchi, „Optimization by Simmulated
Annealing“ Science, 220, 1993.
[90]
S.A. Berezner, A.E. Krzesiński, “Call Admission and Routing in ATM
Networks Based on Virtual Path Separation”, IFIP TC6/WG6.2, 4th
International Conference on Broadband Communications, Germany, April
1998, Hapman & Hall.
[91]
J.H. Dejean, L. Dittmann, C.N. Lorenzen, “String Mode – A New Concept of
Performance Improvement of ATM Networks”, IEEE vol.9 no.9 December 1991.
[92]
T.T. Lee, S.C. Liew, “Parallel Communications for ATM Network Control
and Management”, IEEE GLOBECOM’93, vol.1, December 1993.
[93]
Kazimierz Grygiel, “Algorytm Metropolisa, Symulowane Wyżarzanie”,
wykład 3, źródło
http://www.mimuw.edu.pl/~grygiel/archive/dokumenty3/w3.pdf.
[94]
T.H. Cormen, C.E. Leiserson, R.L. Rivest, “Wprowadzenie do algorytmów”,
wyd. WNT, Warszawa 2004.
[95]
Ross, Wright, „Matematyka dyskretna”, wyd. WNT, 1999.
[96]
N. Wirth , „Algorytmy+Struktury Danych = Programy”, WNT.
[97]
L. Banachowski, K. Diks, W. Rytter, „Algorytmy i struktury danych” , WNT.
[98]
N. Metropolis, A.W. Rosenbluth, M.N. Rosenbluth, A.H. Teller, and E. Teller,
J. Chem. Phys. (1953) 1087-1092.
[99]
Prof. Saeta, Keck, “The Metropolis Algorithm”, Statistical systems and
Simulated Annealing, Physic 170, 2004
http://kossi.physics.hmc.edu/courses/p170/Metropolis.pdf
[100]
Epitaksja struktur dla mikrosystemów oraz systemów optoelektronomikrofalowych. http://www.wemif.pwr.wroc.pl/zpp/stary/laboratoria/
mikroelektronika2/cw1epitaksja.doc.
[101]
Z.R. Żytkiewicz, S. Krukowski, M. Leszczyński, „Epitaksja z fazy ciekłej
(LPE)”, http://www.unipress.waw.pl/~stach/wyklad_ptwk_2007/cgm_w17.pdf
[102]
Lianggui Liu, Guangzeng Feng, “Simulated Annealing Based Multi-
- 188 -
constrained QoS Routing in Mobile ad hoc Networks”, ISSN:0929-6212,
Wireless Personal communications: An International Journal 2007.
[103]
Zbigniew Tarapata, “O problemie zliczania dróg w grafach”.
[104]
D. Cherubini, A. Frangioni, M.G. Scutella, A. Fanni, C. Murgia, P. Zuddas,
„A linear Programming Model for Traffic Engineering in 100% Survivable
Networks under combined IS-IS/OSPF and MPLS-TE Protocols”, September
23, 2008.
[105]
Y. Wang, Z. Wang, L. Zhang, „Internet Traffic Engineering without Full Mesh
Overlaying.“, INFOCOM 2001.
[106]
Tomasz Pisula, “Programowanie liniowe – metoda Simplex – przykład
zastosowania algorytmu”, prezentacja wykładowa.
[107]
Sebastian Sitarz, „Programowanie liniowe”, źródło
http://www.mathkit.friko.pl/documents/prog_lin.pdf
[108]
Erik Ehrling, „Fast Parallel Matrix Multiplication – Practical Hybrid
Algorithms”, Royal Institute of Technology, Stockholm.
[109]
Henry Cohn, Robert Kleinberg, Balazs Szegedy, and Chris Umans, “Grouptheoretic Algorithms for Matrix Multiplication”, 46th Annual Symposium on
Foundations of Computer Science, IEEE Computer Society, pp. 379–388, 25
October 2005, Pittsburgh, PA.
[110]
G. B. Dantzig, “Linear Programming and Extensions”, Princeton, NJ:
Princeton University Press, 1963.
[111]
V. Klee, G. J. Minty, O. Shisha, "How Good is the Simplex Algorithm?" In
Inequalities 3, New York: Academic Press, 159-175, 1972.
[112]
J. Nocedal, S. J. Wright, “Numerical Optimization”. New York: SpringerVerlag, 1999.
[113]
L.G. Chaczijan, “Polinomialnyj ałgoritm w liniejnom programirowanii”,
Dokłady Akadiemii Nauk SSSR, 1979.
[114]
D. Dobkin, R.J. Lipton, S. Reiss, „Linear programming is log-space hard for
P.” Inf. Proc. Lett. 1979.
[115]
N. Karmarkar, “A new polynomial-time algorithm for linear programming”,
Combinatorica, 1984, No. 4.
- 189 -
[116]
James Renegar, “A Polynomial-Time Algorithm, Based on Newton’s Method,
for Linear Programming”, Cornel University, USA 1986.
[117]
Jacek Błażewicz, “Złożoność obliczeniowa problemów kompinatorycznych”,
WNT, Warszawa 1988.
[118]
J., Moy, “Multicast Extensions to OSPF", RFC 1584, marzec 1994.
[119]
R., Coltun, V. Fuller, “The OSPF NSSA Option", RFC 1587, marzec 1994.
[120]
D. Ferguson, "The OSPF External Attributes LSA".
[121]
J., Moy, “Extending OSPF to Support Demand Circuits", RFC 1793, kwiecień
1995.
[122]
Utkin, Vadim I. , "Sliding Mode Control Design Principles and Applications
to Electric Drives", IEEE Transactions on Industrial Electronics (IEEE).
[123]
Wiesław Krajewski, “Zarządzanie wydajnością w sieciach i Internecie –
wybrane zagadnienia”, Instytut Badań Systemowych PAN, Studia
doktoranckie – wykład, marzec 2009.
[124]
Ford, L. R. and Fulkerson, D. R. “Flows in Networks. Princeton”, NJ:
Princeton University Press, 1962.
[125]
Christoph Schnorr, “Convex and Non-convex Optimization”, University of
Mannheim, Germany, Optimization Methods in Computer Vision, March
2006.
[126]
Ivica Martinjak, Marin Golub, “Comparison of Heuristic Algorithms in
Functions Optimization and Knapsack Problem”, University of Zagreb, 2006.
[127]
Ivica Martinjak, Marin Golub, “Comparison of Heuristic Algorithms for the
N-Queen Problem”, University of Zagreb, 2007.
[128]
Kazimierz Grygiel, “Metaheurystyki – nototki do wykładu”.
[129]
Maciej Piechowiak, Piotr Zwierzykowski, „Quantitative Comparison of
Multicast Heuristic Algorithms”, 12-th Polish Teletraffic Symposium
PSRT2005.
[130]
Fred Glover, Manuel Laguna, “Tabu Search”, 1997.
[131]
Fred Glover, “Tabu Search: A Tutorial”.University of Colorado, 2004.
[132]
Tomasz Masternak, Adam Łączyński, “Simplex Method for Linear
Programming”, Akademia Górniczo Hutnicza w Krakowie.
- 190 -
Spis ilustracji
Rys. 1.1
Przykład połączenia Point-to-Point................................................................ 19
Rys. 1.2
Schemat sieci broadcastowej na przykładzie Ethernetu................................. 21
Rys. 1.3
Schemat obwodów logicznych (podsieci wirtualnych).................................. 23
Rys. 1.4
Połączenia obszarów w protokole OSPF........................................................ 26
Rys. 1.5
Rys. 1.5. Połączenie linku wirtualnego w protokole OSPF............................ 28
Rys. 1.6
Schemat budowy pakietu „Hello”.................................................................. 33
Rys. 1.7
Schemat budowy pakietu „Database Description”......................................... 34
Rys. 1.8
Schemat budowy pakietu „Link State Request”............................................. 34
Rys. 1.9
Schemat budowy pakietu „Link State Update”.............................................. 35
Rys. 1.10
Schemat budowy pakietu „Router LSA”........................................................ 36
Rys. 1.11
Schemat budowy pakietu „Network LSA”..................................................... 37
Rys. 1.12
Schemat budowy pakietu „Summary LSA”................................................... 37
Rys. 1.13
Schemat budowy pakietu „AS external LSA”................................................ 38
Rys. 2.1
Schemat blokowy algorytmu 1 służącego do budowy tablicy routingu z
wykorzystaniem tras typu NK........................................................................ 61
Rys. 2.2
Schemat blokowy algorytmu 2 służącego do budowy tablicy routingu z
wykorzystaniem tras typu RK........................................................................ 65
Rys. 2.3
Przedstawia przykładową sieć o prostej strukturze złożonej z trzech
routerów, przełącznika i czterech komputerów.............................................. 69
Rys. 2.4
Przykład sieci typu „stub”.............................................................................. 70
Rys. 2.5
Drugi przykład topologii sieci komputerowej................................................ 70
Rys. 2.6
Trzeci przykład topologii sieci komputerowej............................................... 72
Rys. 3.1
Przykład grafu dwudzielnego......................................................................... 80
Rys. 3.2
Przykład środowiska sieciowego.................................................................... 81
- 191 -
Rys. 3.3
Przykład budowy tablicy Simplex.................................................................. 87
Rys. 3.4
Idea działania dwupakietowej metody wyznaczania opóźnień w sieciach
komputerowych ([123]).................................................................................. 96
Rys. 3.5
Czwarty przykład topologii sieci komputerowej............................................ 109
Rys. 3.6
Piąty przykład topologii sieci komputerowej...............................................
110
Rys. 3.7
Szósty przykład topologii sieci komputerowej.............................................
112
Rys. 4.1
Schemat blokowy algorytmu 5 służącego do optymalizacji przepustowości. 125
Rys. 4.2
Logiczny schemat przepływu informacji pomiędzy używanymi
algorytmami.................................................................................................... 128
Rys. 4.3
Pierwsza z poddanych badaniom przykładowych topologii........................... 129
Rys. 4.4
Druga z poddanych badaniom przykładowych topologii.............................. 131
Rys. 4.5
Trzecia z poddanych badaniom topologii sieciowych.................................... 132
Rys. 6.1
Przykładowa sieć komputerowa z routerami brzegowymi............................. 155
Rys. 6.2
Siódmy przykład topologii sieci komputerowej............................................. 174
- 192 -
Spis tabel
Tabela 2.1
Koszt tras oraz nazwa routera następnego skoku do sieci z komputerem H2
z rys. 2.5............................................................................................................ 71
Tabela 2.2
Koszty tras pomiędzy routerami przedstawionymi na rys. 2.6......................... 72
Tabela 3.1
Zbiorcze zestawienie obliczonych sumacyjnych czasów komunikacji............ 113
Tabela 4.1
Koszty połączeń pomiędzy routerami przedstawionymi na rys. 4.3................ 130
Tabela 4.2
Koszty połączeń pomiędzy routerami przedstawionymi na rys. 4.4................ 131
Tabela 5.1
Scenariusze przeprowadzonych badań............................................................. 141
Tabela 5.2
Wartości Ψmax(b) otrzymane dla topologii z rys. 4.3...................................... 142
Tabela 5.3
Wartości Ψśr(b) otrzymane dla topologii z rys. 4.3.......................................... 143
Tabela 5.4
Wartości parametrów beta otrzymane dla poszczególnych scenariuszy dla
topologii z rys. 4.3............................................................................................ 144
Tabela 5.5
Wartości Ψmax(b) otrzymane dla topologii z rys. 4.4...................................... 145
Tabela 5.6
Wartości Ψśr(b) otrzymane dla topologii z rys. 4.4.......................................... 145
Tabela 5.7
Wartości parametrów beta otrzymane dla poszczególnych scenariuszy dla
topologii z rys. 4.4............................................................................................ 146
- 193 -
Spis wykresów
Wykres 4.1
Złożoność metody SW...................................................................................... 140
Wykres 5.1
Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody
symulowanego wyżarzania dla topologii pierwszej.......................................... 148
Wykres 5.2
Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody
symulowanego wyżarzania dla topologii drugiej.............................................. 149
Wykres 5.3
Wyniki optymalizacji Ψ(b) przeprowadzonej za pomocą metody
symulowanego wyżarzania dla topologii trzeciej............................................. 149
Wykres 6.1
Złożoność metody dokładnej............................................................................ 160
- 194 -
Załącznik I
Kod oprogramowania użytego do przeprowadzenia optymalizacji
przepustowości środowiska sieciowego
Ze względu na swoje rozmiary kody użytego oprogramowania zostały umieszczone na
załączonej do rozprawy płycie CD, zarówno w wersji skompilowanej jak i tekstowej.
Na wspomnianej płycie znajdują się także inne pliki jak: „trasy”, „koszty” lub „routery”
zawierające informacje na temat poddanych badaniom topologii sieciowych, a jednocześnie
niezbędne do prawidłowego działania aplikacji służącej do optymalizacji przepustowości.
Załącznik II
Przykładowe zastosowanie równoważenia obciążenia typu NK –
informacja wstępna.
Załącznik ten zawiera informacje na temat przykładowego zastosowania rozwiązania
równoważenia obciążenia z udziałem tras typu NK w protokole OSPF. Ponieważ
przedstawione w pracy rozwiązanie nie jest obecnie zaimplementowane w żadnym z ogólnie
dostępnych na rynku urządzeń sieciowych, dlatego przykład ten należy traktować jako pewne
przybliżenie rzeczywistości. Z drugiej strony, przedstawione przykładowe zastosowanie jest
na tyle uniwersalne i elastyczne, że po pewnych korektach (głównie mających na celu
dostosowanie go do potrzeb i możliwości konkretnej organizacji), najprawdopodobniej
znajdzie zastosowanie w znacznej liczbie średnich i dużych firm działających na polskim, a
także i międzynarodowym rynku. Mając na celu przedstawienie jak najbardziej kompletnego i
spójnego przykładu zastosowania równoważenia typu NK, informacje przedstawione w tym
załączniku znacznie przekraczają tematykę zagadnień samego routingu pakietów w sieciach
komputerowych. Ponadto, w załączniku tym podjęto próbę ukazania kompletnego procesu
planowania oraz budowy sieci komputerowej wykorzystującej jako protokół routingu
zmodyfikowaną wersję protokołu OSPF. Ze względu na swój rozmiar pełen tekst załącznika
II został umieszczony na dołączonej do rozprawy płycie CD.
- 195 -
Załącznik III
Notacja, słowniczek oraz wykaz użytych terminów i oznaczeń
Notacja
∈- przynależność do zbioru,
+ - algebraiczna suma liczb,
- - algebraiczna różnica liczb,
* - algebraiczny iloczyn liczb,
/ - algebraiczny iloraz liczb,
| | - moc zbioru.
Wykaz użytych oznaczeń
Ψ (b) – całkowita przepustowość środowiska sieciowego (wyrażona w Mb/s), liczona jako
suma przepustowości wszystkich komunikujących się ze sobą par sieci.
Q j – efektywna przepustowość łącza ej (wyliczana z uwzględnieniem liczby tras
wykorzystujących to łącze i mierzona w Mb/s),
Ψk* – efektywna przepustowość komunikacji dla k-tej pary routerów (mierzona w Mb/s),
^
Ψ (k , q, b) – efektywna przepustowość trasy t qk (b) dla danego wektora b, 1 ≤ q ≤ l k ,
1≤ k ≤ r.
Ψ(bnew) – nowo wyznaczona przepustowość środowiska sieciowego (w kolejnej iteracji
algorytmu).
Ψ nom (k , q, b) – nominalna przepustowość trasy t qk (b) .
Фkh– efektywna przepustowość (przepływność) przekroju Ckh.
Ψkmax (b) – maksymalna wartość przepustowości (przepływu) dla k-tej pary routerów.
- 196 -
Ψ max – maksymalna przepustowość środowiska sieciowego.
Ψ R (b) – wartość przepustowości routera.
Ψ R (bnew )
– nowo wyznaczona (w kolejnej iteracji algorytmu) wartości przepustowości
routera.
∆Ψ (b) - wartośc bezwzględna z różnicy Ψnew (b) − Ψ (b) .
π j – wartość nominalnej przepustowości łącza ej.
w – współczynnik o nazwie „variance”, jest on statycznie konfigurowany przez
administratora routera. Współczynnik ten jest liczbą całkowitą z przedziału <1,128>.
δk – wektor złożony z elementów k-tego wiersza macierzy D, δ k = [δ k 1 ,..., δ km ]T , 1 ≤ k ≤ r .
λ j (b)
– liczba tras, które prowadzą przez łącze ej (dla wszystkich komunikujących się par
k
k
routerów ( R1 , R2 )).
ε – liczba iteracji algorytmu dokładnego – Simplex.
χ j – współczynnik optymalności dla danej zmiennej decyzyjnej xj w przykładzie działania
metody Simplex.
ϕ R – opóźnienie w jedną stronę do routera (hosta) R, mierzone w sekundach;
ϕ j – opóźnienie generowane przez łącze ej;
τ R – czas przetwarzania pakietu przez router R;
λ – liczba łączy wchodzących w skład analizowanej trasy.
Φ kw – przekrój numer w dla k-tej pary komunikujących się routerów.
C kmin – przekrój minimalny pomiędzy dwoma wierzchołkami grafu (tworzącymi parę k).
φ(x) – wartość funkcji energii dla zmiennej decyzyjnej „x”, oznaczana alternatywnie także
jako E.
φ* – najmniejsza wartość funkcji energii.
∆pk
– liczba dróg prostych o długości p ≥ 1 w grafie pełnym Gf, między dowolną parą
routerów k.
∆ k – liczba wszystkich dróg prostych w grafie pełnym Gf, między dowolną parą routerów k.
∆ – liczba wszystkich dróg prostych w grafie pełnym Gf, między wszystkimi parami
routerów k.
a – podstawa funkcji wykładniczej.
- 197 -
an – n-ty wyraz ciągu arytmetycznego.
aj – wektor współczynników aij złożony z elementów j-tej kolumny macierzy A.
aij – współczynniki nierówności ograniczeń – znane stałe, gdzie 1 ≤ i ≤ m , 1 ≤ j ≤ n ,
elementy macierzy A.
A - macierz współczynników aij o rozmiarach mxn., gdzie i odpowiada numerowi wiersza
macierzy, a j numerowi kolumny, oraz 1 ≤ i ≤ m , 1 ≤ j ≤ n .
bi – wartości ograniczeń – znane stałe w przykładzie działania metody Simplex, gdzie
1≤ i ≤ m.
βi – współczynnik wyznaczany dla routera vi przez stację zarządzającą z wykorzystaniem
zmodyfikowanej metody symulowanego wyżarzania i wykorzystywany przy
dodawaniu tras alternatywnych do tablicy routingu.
βimax – maksymalna wartość współczynnika βi.
b – wektor współczynników beta, b = [ β1 ,..., β m ]T .
bnew – wektor zawierający nowo wyznaczone wartości współczynników βi (w kolejnej iteracji
algorytmu).
B – zmodyfikowana macierz incydencji grafu, o rozmiarach m * n i elementach bij
zdefiniowanych następująco: bij = −1 jeśli łącze ej prowadzi do routera vi, bij = 1 jeśli
łącze ej prowadzi od routera vi, w pozostałych przypadkach bij = 0 , 1 ≤ i ≤ m ,
1≤ j ≤ n.
cqk – koszt trasy t qk (b) .
cross(x) – funkcja przeprowadzająca krzyżowanie osobników.
c – koszt analizowanej trasy.
cj, – współczynniki funkcji celu dla zmiennych niebazowych w przykładzie działania metody
Simplex– znane stałe, gdzie 1 ≤ j ≤ n .
copt – koszt trasy optymalnej.
cmax – maksymalny koszt trasy z danego routera do dowolnej sieci docelowej znajdującej się
w obrębie obszaru OSPF.
^
d (tqk (b)) – średnia długość trasy t qk (b) , rozumiana jako średnia arytmetyczna wyliczona z
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.
dk – całkowita ilość danych do przesłania między routerami pary ( R1k , R2k ), 1 ≤ k ≤ r .
- 198 -
D – macierz ruchu sieciowego o rozmiarach r * m i elementach δ ki zdefiniowanych
następująco: δ ki = d k jeśli Ri = R2k (vi jest węzłem początkowym pary k), δ ki = − d k
jeśli Ri = R1k (vi jest węzłem końcowym pary k), w pozostałych przypadkach
δ ki = 0 , 1 ≤ k ≤ r , 1 ≤ i ≤ m .
ej – nieskierowane łącze sieci o numerze j, krawędź grafu.
e +j – skierowane łącze sieci o numerze j, krawędź grafu (łącze skierowane przeciwnie do e +j
oznaczane jest jako e −j .
E – zbiór łączy, E={e1,...,en}oraz {ej: 1 ≤ j ≤ n }.
f – funkcja celu zadania optymalizacji z wykorzystaniem metody dokładnej.
gb – współczynniki dla zmiennych swobodnych xb, dla przykładu działania metody Simplex.
g – wektor współczynników gb.
Hi – i-ty host (komputer).
k – numer iteracji algorytmu.
kmax – maksymalna liczba iteracji algorytmu.
r
l*(b) – całkowita liczba występujących tras komunikacji rozumiana jako l * (b) = ∑ l k (b) .
k =1
l~(b) – liczba tras aktywnych, tj. tras, po których przesyłany jest ruch sieciowy,
lk(b) – liczba tras komunikacji dla pary routerów ( R1k , R2k ), 1 ≤ k ≤ r .
αi – liczba przeciążonych interfejsów routera Ri.
Y – wartość losowa o rozkładzie jednostajnym z przedziału <0,1>.
m – liczba routerów – wierzchołków grafu oraz liczba nierówności ograniczeń, liczba wierszy
w macierzy współczynników nierówności ograniczeń.
~
mz – liczba wirtualnych routerów zewnętrznych.
m* – liczba routerów po wprowadzeniu modyfikacji do zadania optymalizacji
rozwiązywanego przy pomocy metody Simplex.
µ (m, n) - 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 routerów i łączy.
mut(x) – funkcja przeprowadzająca mutację osobników.
n – liczba łączy – krawędzi grafu, a także liczba zmiennych decyzyjnych funkcji celu dla
metody Simplex, liczba kolumn w macierzy współczynników nierówności
- 199 -
ograniczeń.
~
n - liczba krawędzi łączących routery zewnętrzne z wewnętrznymi.
n* - liczba łączy po wprowadzeniu modyfikacji do zadania optymalizacji rozwiązywanego
przy pomocy metody Simplex.
nmax – maksymalna liczba interfejsów dla routera v, przez które prowadzą trasy (optymalna i
alternatywne) do sieci docelowej.
~
m – liczba wierzchołków reprezentujących routery „wejściowe” lub „wyjściowe”.
Nd(x,T) – sąsiedztwo dynamiczne zmiennych decyzyjnych x, zależne od zbioru tabu.
OΨ(b) – złożoność obliczeniowa algorytmu 3 tj. wyznaczania przepustowości środowiska
sieciowego.
OR(m,b) – złożoność obliczeniowa operacji wyznaczania przepustowości routerów.
O(m) – złożoność obliczeniowa metody dokładnej w zależności od liczby routerów m.
O(m,n) – złożoność obliczeniowa metody dokładnej w zależności od liczby routerów i łączy
w sieci.
Pr(Ψk (b) ≥ Ψk −1 (b)) – prawdopodobieństwo, że nowe Ψ(b) (wyznaczone w bieżącej iteracji
algorytmu) jest nie gorsze niż poprzednie Ψ(b) (wyznaczone w poprzedniej iteracji),
przy czym Ψk(b) – wartość Ψ(b) w iteracji nr k.
Pr( E ≥ Y ) – prawdopodobieństwo, że wartość funkcji energii jest większa niż wartość losowa,
gdzie Y to zmienna losowa o rozkładzie jednostajnym.
r – liczba par komunikujących się routerów.
RS – reguła selekcji nowych zmiennych decyzyjnych z sąsiedztwa obecnych (uwzględniająca
kryteria aspiracji);
Sn – suma n wyrazów ciągu arytmetycznego.
Si – i-ta sieć komputerowa.
s – długość pakietu testowego, mierzona w [b].
select(x,φ*) – funkcja wybierająca najlepiej przystosowanych osobników (na podstawie
najlepszej dotychczas uzyskanej wartości funkcji oceny).
tk – czas komunikacji dla pary routerów k.
tkICMP – czas przesyłania komunikatu ICMP pomiędzy routerami ( R1k , R2k ).
t qk (b) – trasa nr q dla pary routerów dla pary routerów ( R1k , R2k ), oraz wartości wektora b,
1 ≤ q ≤ lk , 1 ≤ k ≤ r .
trasy(k,b) – funkcja która z uwzględnieniem wartości parametrów beta i zastosowaniem
- 200 -
algorytmu 1, wyznacza wszystkie acykliczne i rozłączne u źródła trasy pomiędzy
routerami ( R1k , R2k ). 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.
T – zbiór tabu.
T(k) – temperatura w k-tej iteracji algorytmu.
Tp – temperatura początkowa, oznaczana także jako (temperatura w zerowej iteracji T(0)).
Tmin – temperatura minimalna po osiągnięciu której, algorytm kończy działanie.
vi– liczba routerów wirtualnych powstałych z podziału routera rzeczywistego Ri.
R – router (wierzchołek grafu).
{R1, ... Rm} – zbiór routerów – wierzchołków grafu, {Ri: 1 ≤ i ≤ m }.
( R1k , R2k ) – k-ta para komunikujących się routerów, indeks górny oznacza numer pary, indeks
dolny oznacza kolejność w parze tzn. R1k jest routerem początkowych k-tej pary, a
R2k jej routerem końcowym, 1 ≤ k ≤ r .
X – maksymalna liczba tras, z uwzględnieniem których przeprowadzane jest równoważenie
obciążenia.
xb – zmienne swobodne służące do przekształcania nierówności ograniczeń w równania w
przykładzie działania metody Simplex.
xj – argumenty funkcji celu – zmienne decyzyjne zadania optymalizacji, dla przykładu
działania metody Simplex, gdzie 1 ≤ j ≤ n .
x – zmienna decyzyjna ze zbioru wartości dopuszczalnych S.
x0 – 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ą.
x kj – współczynnik obciążenia łącza ej przez parę routerów ( R1k , R2k ), ilość danych
przesłanych między routerami tej pary, x kj ∈< 0, π j > , 1 ≤ k ≤ r , 1 ≤ j ≤ n .
x k – wektor współczynników obciążenia łączy dla pary numer k, x k = [ x1k ,..., x nk ]T , 1 ≤ k ≤ r .
z – oznaczenie funkcji celu w przykładzie działania metody Simplex.
Słowniczek użytych terminów statystycznych.
- 201 -
Na potrzeby tej pracy, terminy takie jak:
•
średnia arytmetyczna;
•
wartość maksymalna;
należy interpretować w sposób następujący.
Średnia arytmetyczna - n liczb a1,a2,...,an nazywamy liczbę
(Z.III.1)
Średnia arytmetyczna jest właśnie tym, co w potocznym języku określa się mianem średniej.
Można ją również określić jako średnią potęgową rzędu 1. Średnia arytmetyczna jest jedną z
najbardziej intuicyjnych miar oceny populacji, stosowanych często w codziennym życiu –
przykładem może być średni wzrost w grupie osób. Średnia arytmetyczna jest dobrą miarą
położenia rozkładu i jednocześnie miarą tendencji centralnej. Jest to miara klasyczna
rozkładu, czyli każda zmiana dowolnego elementu badanego zbioru pociąga za sobą zmianę
wartości średniej.
Źródło: http://pl.wikipedia.org/wiki/%C5%9Arednia_arytmetyczna
Wartość maksymalna – Wartość zwracana przez funkcję „maksimum”, gdzie funkcja ta
wybiera ze zbioru argumentów element największy (w sensie przyjętej miary).
Słowniczek użytych terminów technicznych.
BGP –
(Border Gateway Protocol) protokół służący wymianie informacji pomiędzy
systemami autonomicznymi. BGP zalicza się do tzw. protokołów zewnętrznych (exterior
gateway protocol) i został opisany w RFC 1771 oraz 4271. Obecnie najnowsza wersja tego
protokołu to BGP4.
HSRP – (Hot Standby Router Protocol) własnościowy protokół firmy Cisco Systems
zapewniający wysoką dostępność routera pełniącego funkcję bramki (gateway). Grupa
routerów widziana jest jako jeden router wirtualny, gdzie jeden z routerów w grupie pełni
funkcję bramki (znajduje się w stanie aktywnym) zaś pozostałe monitorują jego stan. W
sytuacji awarii routera aktywnego inny router z grupy przejmuje jego funkcję.
- 202 -
ISDN BRI – (Integrated Service Digital Network Basic Rate Interface) technologia tzw.
polączeń komutowanych umożliwiająca wykorzystanie analogowej sieci telefonicznej do
przesyłania informacji w formie cyfrowej. ISDN występuje w dwóch wersjach BRI oraz PRI
w wersji BRI istnieją dwa kanały komunikacyjne oznaczane jako B (Bearer channel) o
przepustowości 64 kbps każdy oraz kanał sygnalizacyjny oznaczony jako D o przepustowości
16 kbps.
MPLS – (Multiprotocol Label Switching) metoda kierowania pakietów IP na podstawie
wartości posiadanych przez nie etykiet. Uwzględniając informacje zawarte w etykietach
routery oraz przełączniki kierują pakiety w odpowiednie wcześniej zdefiniowane segmenty
sieci. MPLS często jest określany mianem LAN-przez-WAN.
Przełącznik warstwy trzeciej – urządzenie łączące w sobie funkcjonalności przełącznika
sieciowego oraz routera. Urządzenia te częstokroć zwane są routującymi przełącznikami albo
przełącznikami z modułami routujacymi.
STP – (Spanning Tree Protocol) protokół tworzący minimalne drzewo rozpinające w grafie
składającym się z przełączników sieciowych rozumianych jako węzły grafu oraz połączeń
pomiędzy tymi przełącznikami rozumianymi jako krawędzie grafu. W celu zachowania
ciągłości działania na wypadek utraty połączenia pomiędzy przełącznikami łącza takie
zwielokrotnia się lub tworzy dodatkowe połączenia poprzez inne przełączniki. Tego typu
działanie tworzy tzw. cykle w grafie co w odniesieniu do technologii sieciowych ma pewne
wady np. możliwość zablokowania sieci poprzez tzw. „broadcast storm”. W sytuacji kiedy
połączenie jest uznawane za uszkodzone STP „przeorganizowuje” minimalne drzewo
rozpinające dostosowując je do powstałych warunków umożliwiając dalsze poprawne
funkcjonowanie sieci komputerowej.
VLAN – (Virtual LAN) grupa urządzeń sieciowych znajdujących się w tej samej lub różnych
sieciach lokalnych skonfigurowanych w sposób umożliwiający komunikację pomiędzy nimi
tak jak gdyby były zlokalizowane w jednej i tej samej sieci lokalnej. VLANy grupują
komputery za pomocą połączeń logicznych nie zaś fizycznych.
VRRP – (Virtual Router Redundancy Protocol) protokół zapewniający wysoką dostępność
routera pełniącego funkcje bramki (gateway) opisany w RFC 3768. Idea działania jest
- 203 -
zbliżona do protokołu HSRP. VRRP jest protokołem otwartym i szeroko stosowanym przez
wielu producentów sprzętu sieciowego.
Załącznik IV
Analiza funkcji celu dla metody SW
Dla celów przeprowadzonej analizy przyjęto, że wykorzystywane łącza są maksymalnie
obciążone – inna sytuacja nie stanowi przedmiotu zainteresowania z punktu widzenia
- 204 -
tematyki tej pracy. W dalszej części analizy przyjęto, że dane są wymieniane pomiędzy
dwiema parami sieci komputerowych. Pierwsza para to S1, S2 oznaczona jako k=1 oraz druga
para S3, S4 oznaczona jako k=2. Ilość wymienianych informacji oraz topologia sieci, nie mają
w tym momencie większego znaczenia. Przyjęto, że analiza będzie odbywała się na zasadzie
porównania Ψ (b) dla dwóch przypadków. W przypadku pierwszym zakłada się, że wszystkie
routery posiadają włączone równoważenia obciążenia typu RK, natomiast w przypadku
drugim typu NK. Należy przy tym zaznaczyć, że poza różnicą w rodzajach równoważenia
obciążenia żadne inne parametry nie ulegają zmianie. Przyjmijmy następujące oznaczenia:
ΨRK (b) dla pierwszego przypadku oraz ΨNK (b) dla przypadku drugiego. W świetle
przyjętych oznaczeń, celem analizy jest wykazanie (w pewnych warunkach) prawdziwości
następującej nierówności.
ΨNK (b) > ΨRK (b)
(Z.IV.1)
Przyjmijmy założenie, że dla pierwszego przypadku komunikacja odbywa się na
następujących trasach:
Dla pary k=1 trasami t11 (b) ; t 21 (b) o równym koszcie.
Dla pary k=2 trasą t12 (b) .
Natomiast dla przypadku drugiego.
Dla pary k=1 trasami t11 (b) ; t 21 (b) .
Dla pary k=2 trasami t 12 ( b ) ; t 22 (b) .
Trasa t 22 (b) powstała (została dodana do tablicy routingu, a dokładniej adres routera
następnego skoku) na skutek włączenia równoważenia obciążenia typu NK i prowadzi przez
inny interfejs wyjściowy niż trasa optymalna tj. t 12 ( b ) . Dodatkowo przyjmijmy, że w skład
tras wchodzą następujące łącza.
t11 (b) = {ea, eb, ec} ; t 21 (b) = {ed, ee, ef} ; t 12 ( b ) = {eg, eb, eh} ; t 22 (b) = {ei, ea, ej, ek}
W sytuacji kiedy trasa t 22 (b) nie wykorzystywałaby ani jednego łącza używanego przez trasy
t11 (b) ; t 21 (b) ; t 12 ( b ) wówczas sytuacja byłaby oczywista. Dodanie dodatkowej trasy
prowadziłoby do zwiększenia przepustowości. W rozpatrywanym przypadku przyjęto, że
trasa t 22 (b) przebiega przez łącze ea wykorzystywane już przez trasę t11 (b) . W takiej sytuacji
analiza staje się bardziej złożona, lecz bliższa warunkom rzeczywistym. Dodatkowo
(podobnie jak w rozdziale 3) wprowadzono współczynnik obciążenia łącza ej (wykorzystania
jego przepustowości) przez daną trasę q i komunikującą się parę k, przy odpowiednim typie
- 205 -
RK
NK
równoważenia obciążenia x (k , q, j ) lub x (k , q, j ) . Współczynniki te przyjmują wartości z
przedziału domkniętego <0,1>. Po wprowadzeniu przyjętych oznaczeń, analizowane funkcje
przyjmują następujące postaci:
^
^
^
ΨRK (b) = Ψ (1,1, b) + Ψ (1,2, b) + Ψ (2,1, b)
^
^
^
^
ΨNK (b) = Ψ (1,1, b) + Ψ (1,2, b) + Ψ (2,1, b) + Ψ (2,2, b)
Po podstawieniu przepusstowości łączy wykorzystywanych przez poszczególne trasy oraz
współczynników ich wykorzystania otrzymujemy.
RK
RK
RK
ΨRK (b) = min( x (1,1, ea ) * π a ; x (1,1, eb ) * π b ; x (1,1, ec ) * π c ) +
RK
RK
RK
min( x (1,2, ed ) * π d ; x (1,2, ee ) * π e ; x (1,2, e f ) * π f ) +
RK
RK
RK
min( x (2,1, eg ) * π g ; x (2,1, eb ) * π b ; x (2,1, eh ) * π h )
NK
NK
NK
ΨNK (b) = min( x (1,1, ea ) * π a ; x (1,1, eb ) * π b ; x (1,1, ec ) * π c ) +
NK
NK
NK
min( x (1,2, ed ) * π d ; x (1,2, ee ) * π e ; x (1,2, e f ) * π f ) +
NK
NK
NK
min( x (2,1, eg ) * π g ; x (2,1, eb ) * π b ; x (2,1, eh ) * π h ) +
NK
NK
NK
NK
min( x (2,2, ei ) * π i ; x (2,2, ea ) * π a ; x (2,2, e j ) * π j ; x (2,2, ek ) * π k )
Dla potrzeb dalszej analizy przyjęto, że dodanie nowej trasy nie wprowadza zmian
współczynników obciążenia łączy, które nie wchodzą w skład tej trasy. W świetle przyjętego
założenia nierówność ΨNK (b) > ΨRK (b) przyjmuje następującą postać.
NK
NK
NK
min( x (1,1, ea ) * π a ; x (1,1, eb ) * π b ; x (1,1, ec ) * π c ) +
NK
NK
NK
NK
min( x (2,2, ei ) * π i ; x (2,2, ea ) * π a ; x (2,2, e j ) * π j ; x (2,2, ek ) * π k ) >
RK
RK
RK
min( x (1,1, ea ) * π a ; x (1,1, eb ) * π b ; x (1,1, ec ) * π c )
Dalsza część analizy zostanie rozdzielona na cztery możliwe przypadki odnoszące się do
wykorzystania przepustowości współdzielonego łącza ea na trasie komunikacji pary k=1.
Przypadek I
- 206 -
Bez równoważenia obciążenia, łącze ea nie jest „najwęższym gardłem” na trasie t11 ani dla
równoważenia obciążenia typu RK, ani NK.
RK
RK
RK
RK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) ≠ x (1,1, ea ) * π a
NK
NK
NK
NK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) ≠ x (1,1, ea ) * π a
Przypadek II
Dla równoważenia obciążenia typu RK, lecz tylko przy równomiernym dostępie do
współdzielonych łączy.
RK
RK
RK
RK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) ≠ x (1,1, ea ) * π a
zaś dla NK
NK
NK
NK
NK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) = x (1,1, ea ) * π a
Przypadek III
Dla równoważenia obciążenia typu NK, łącze ea stanowi „najwęższe gardło” na trasie
pomiędzy sieciami k=1 zarówno w przy równoważeniu obciążenia typu RK jak i NK, lecz
przy NK nie jest łączem o minimalnej przepustowości na trasie pomiędzy sieciami k=2.
RK
RK
RK
RK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) = x (1,1, ea ) * π a
NK
NK
NK
NK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) = x (1,1, ea ) * π a
dla równoważenia obciążenia typu RK i NK i jednocześnie
NK
NK
NK
NK
NK
min( x (2,2, ei ) * π i , x (2,2, ea ) * π a , x (2,2, e j ) * π j , x (2,2, ek ) * π k ) ≠ x (2,2, ea ) * π a
Przypadek IV
Dla równoważenia obciążenia typu NK, łącze ea stanowi „najwęższe gardło” na trasie
pomiędzy sieciami k=1, zarówno w przy równoważeniu obciążenia typu RK jak i NK.
Dodatkowo, przy NK jest łączem o minimalnej przepustowości na trasie pomiędzy sieciami
k=2.
RK
RK
RK
RK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) = x (1,1, ea ) * π a
- 207 -
NK
NK
NK
NK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) = x (1,1, ea ) * π a
dla równoważenia obciążenia typu RK i NK i jednocześnie
NK
NK
NK
NK
NK
min( x (2,2, ei ) * π i , x (2,2, ea ) * π a , x (2,2, e j ) * π j , x (2,2, ek ) * π k ) = x (2,2, ea ) * π a
Dla przypadku pierwszego.
Sytuacja jest dość oczywista. Łącze ea nie jest łączem o najmniejszej przepustowości na trasie
pomiędzy sieciami k=1. Część jego przepustowości, wyrażona różnicą
RK
RK
RK
x (1,1, ea ) * π a - min( x (1,1, eb ) * π b ; x (1,1, ec ) * π c )
jest niewykorzystywana. Ponieważ różnica ta jest większa od zera, dlatego istnieje pewna
część niewykorzystywanego pasma na tym łączu. Część ta, może zostać wykorzystana do
komunikacji pomiędzy sieciami k=2 (dokładniej mówiąc przez trasę t 22 (b) ), co tym samym
przyczyni się do wzrostu przepustowości całego środowiska sieciowego. W przypadku tym
nierówność ΨNK (b) > ΨRK (b) jest zawsze spełniona.
Dla przypadku drugiego.
W przypadku tym przyjęto założenie, że łącze ea nie jest łączem o najmniejszej
przepustowości na trasie t11 (b) przy włączonym równoważeniu obciążenia typu RK,
natomiast jest nim po włączeniu równoważenia obciążenia typu NK (przy równomiernym
dostępie do współdzielonych łączy). Dla uproszczenia dalszej części analizy, można przyjąć,
że dla trasy t11 (b) łącze o najmniejszej przepustowości dla równoważenia typu RK to eb
(równie dobrze może być to łącze ec),
Zakładając nierównomierny dostęp do współdzielonego łącza (w tym przypadku ea) sytuacja
staje się trywialna. Ponieważ przy równoważeniu obciążenia typu RK najwolniejszym łączem
na trasie t11 (b) nie jest ea, dlatego posiada ono część niewykorzystywanego pasma, równą
różnicy π a - π b . Pasmo to można wykorzystać „uruchamiając” trasę t 22 (b) , czyli włączając
równoważenie obciążenia typu NK. Trasa t 22 (b) będzie miała przepustowość nie większą niż
π a - π b , lecz jest to wartość niezerowa i wystarczająca do stwierdzenia prawdziwości
nierówności ΨNK (b) > ΨRK (b) .
- 208 -
Zakładając równy dostęp do współdzielonych łączy (w tym przypadku jedynie łącza ea),
sytuacja staje się bardziej skomplikowana. Ponieważ tylko dwie trasy współdzielą łącze ea,
dlatego w celu spełnienia założeń tego punktu przepustowości łączy muszą spełniać warunek
0.5* π a ≤ π b . Nierówność ΨNK (b) > ΨRK (b) przyjmującą postać.
NK
NK
NK
NK
x (1,1, ea ) * π a + min( x (2,2, ei ) * π i , x (2,2, ea ) * π a ,
x (2,2, e j ) * π j ,
NK
x (2,2, ek ) * π k ) >
RK
x (1,1, eb ) * π b .
NK
NK
Po podstawieniu x (2,2, ea ) = x (1,1, ea ) = 0.5 otrzymujemy.
NK
NK
NK
RK
0.5* π a + min( x (2,2, ei ) * π i , 0.5* π a , x (2,2, e j ) * π j , x (2,2, ek ) * π k ) > x (1,1, eb ) * π b ).
W tym momencie pojawiają się dwie możliwości. Pierwsza,
NK
NK
NK
min( x (2,2, ei ) * π i , 0.5* π a , x (2,2, e j ) * π j , x (2,2, ek ) * π k ) = 0.5* π a
druga natomiast
NK
NK
NK
min( x (2,2, ei ) * π i , 0.5* π a ) , x (2,2, e j ) * π j , x (2,2, ek ) * π k ) ≠ 0.5* π a
Dla możliwości pierwszej nierówność ΨNK (b) > ΨRK (b) przyjmującą postać.
RK
0.5* π a + 0.5* π a > x (1,1, eb ) * π b – zaś po zsumowaniu
RK
RK
π a > x (1,1, eb ) * π b jeśli nawet przyjąć, że x (1,1, eb ) = 1 otrzymujemy
πa > πb
co w świetle przyjętego w tym punkcie założenia, tj.
RK
RK
RK
RK
min( x (1,1, ea ) * π a , x (1,1, eb ) * π b , x (1,1, ec ) * π c ) = x (1,1, eb ) * π b
zawsze jest prawdą.
Dla możliwości drugiej przyjmijmy, że łączem o najmniejsze przepustowości jest ei (równie
dobrze może to być każde inne łącze na tej trasie, za wyjątkiem ea). ΨNK (b) > ΨRK (b)
przyjmującą postać.
NK
RK
0.5* π a + x (2,2, ei ) * π i > x (1,1, eb ) * π b
Ponieważ zarówno łącze eb jak i ei są najwolniejszymi łączami na trasach w skład, których
NK
RK
wchodzą, dlatego można przyjąć x (2,2, ei ) = x (1,1, eb ) = 1 w efekcie, czego otrzymujemy:
- 209 -
0.5* π a + π i > π b . Nierówność ta nie zawsze jest spełniona. Reasumując, przy równym
dostępnie do współdzielonych łączy oraz w świetle przyjętych w tym punkcie założeń,
włączenie równoważenia typu NK prowadzi do wzrostu przepustowości środowiska
sieciowego, kiedy π i > π b - 0.5* π a .
Dla przypadku trzeciego.
Zakładając, że łączem o najmniejszej przepustowości na trasie t 22 (b) jest ei ( równie dobrze
może to być każde inne łącze na tej trasie, za wyjątkiem ea), nierówność ΨNK (b) > ΨRK (b)
przyjmuje następującą postać.
NK
NK
RK
x (1,1, ea ) * π a + x (2,2, ei ) * π i > x (1,1, ea ) * π a
Ponieważ łącze ei posiada najmniejszą przepustowość i jest wykorzystywane tylko przez trasę
NK
t 22 , dlatego x (2,2, ei ) = 1. Podobnie sytuacja wygląda z łączem ea dla równoważenia typu
RK
RK, gdzie x (1,1, ea ) = 1. W efekcie otrzymujemy.
NK
x (1,1, ea ) * π a + π i > π a
Zakładając równomierny dostęp do współdzielonych łączy (w tym przypadku łącza ea przez
NK
trasy t11 i t 22 otrzymujemy x (1,1, ea ) = 0.5, a w rezultacie
0.5* π a + π i > π a po uproszczeniu π i > 0.5* π a . Należy zaznaczyć, że nierówność ta nigdy nie
jest spełniona. W szczególnym przypadku może ona przekształcić się w równanie. Jest tak,
ponieważ na trasie t 22 występują obydwa łącza tj. ei oraz ea. Pakiety „wypływające” z łącza ei
trafiają do współdzielonego (w 50%) łącza ea. W przypadku tym nierówność
ΨNK (b) > ΨRK (b) może zostać przekształcona w analogiczne równanie, (kiedy π i = 0.5* π a ).
W efekcie, włączenie równoważenia obciążenia typu NK nie prowadzi do zwiększenia
przepustowości środowiska sieciowego. Ponadto, gdy π i < 0.5* π a włączenie równoważenia
typu NK prowadzi do spadku Ψ (b) (przy równomiernym dostępie do współdzielonych
łączy).
Zakładając nierównomierny dostęp do współdzielonych łączy (w tym przypadku łącza ea
przez trasy t11 (b) i t 22 (b) otrzymujemy:
NK
NK
RK
x (1,1, ea ) * π a + x (2,2, ei ) * π i > x (1,1, ea ) * π a
- 210 -
Ponieważ łącze ei posiada najmniejszą przepustowość i jest wykorzystywane tylko przez trasę
NK
t 22 (b) , dlatego x (2,2, ei ) =1. Podobnie sytuacja wygląda z łączem ea dla równoważenia typu
RK
RK, gdzie x (1,1, ea ) =1. W efekcie otrzymujemy.
NK
x (1,1, ea ) * π a + π i > π a
NK
Ponieważ π i ≤ (1- x (1,1, ea ) * π a ), dlatego lewa strona nierówności nie może być większa niż
NK
prawa. W szczególnym przypadku, tj., kiedy
π i = (1- x (1,1, ea ) * π a ), nierówność
ΨNK (b) > ΨRK (b) może zostać przekształcona w analogiczne równanie. W efekcie, czego
włączenie równoważenia obciążenia typu NK nie prowadzi do zwiększenia przepustowości
środowiska sieciowego. Należy zaznaczyć, że przy nierównomiernym dostępie do
współdzielonych łączy, włączenie równoważenia typu NK nie wpłynie na Ψ (b) (nie nastąpi
zmniejszenie przepustowości). Stanie się tak nawet przy wolnym łączu ei, a to, dlatego, że
chociaż wykorzystanie przez trasę t 22 (b) łącza ea będzie małe, to wolna część pasma zostanie
w pełni wykorzystana przez trasę t11 (b) – w rezultacie Ψ (b) nie ulegnie zmianie.
Dla przypadku czwartego.
W przypadku tym łącze ea jest łączem o najmniejszej przepustowości dla tras t11 (b) , t 22 (b)
zarówno przy włączonym równoważeniu obciążenia typu RK jak i NK. W takiej sytuacji nie
ma możliwości zwiększenia Ψ (b) . Fakt ten wynika z ograniczenia, jakie spowodowane jest
wysyceniem pasma łącza ea przez trasę t11 (b) . Dodanie kolejnej trasy wykorzystującej to
łącze, spowoduje jedynie zmianę współczynnika wykorzystania łącza ea przez trasę t11 (b) ,
lecz nie będzie prowadziło do wzrostu przepustowości. W następstwie, czego analizowana
nierówność ΨNK (b) > ΨRK (b) nie jest prawdziwa. Wartym uwagi jest fakt, że w przypadku
tym włączenie równoważenia typu NK także nie prowadzi do spadku przepustowości całego
środowiska sieciowego, czyli prawdziwym jest równanie ΨNK (b) = ΨRK (b) .
- 211 -

Podobne dokumenty