Politechnika Wrocławska Wydział Informatyki i Zarządzania Instytut Informatyki Rozprawa doktorska Algorytmy szeregowania pakietów w węźle sieci teleinformatycznej Paweł Świątek Promotor: Prof. dr hab. inż. Adam Grzech Wrocław 2009
Profesorowi Adamowi Grzechowi składam serdeczne podziękowania za pomoc w realizacji rozprawy doktorskiej, cenne uwagi i wskazówki oraz ogromną wiedzę przekazaną mi w trakcie studiów doktoranckich. Dodatkowo, pragnę podziękować mojej Rodzinie i Najbliższym za okazane wsparcie w dążeniu do celu. Szczególne podziękowania kieruję do: mojej Kasi, mojego Taty - Romka, Jarka Drapały, Andrzeja Kozika i Piotrka Rygielskiego za nieocenioną pomoc przy realizacji tej rozprawy.
Spis treści Spis treści i 1 Sterowanie ruchem w węźle sieci teleinformatycznej 1 1.1 Zadania realizowane w węźle sieci................... 2 1.1.1 Przekazywanie pakietów.................... 3 1.1.2 Gwarantowanie jakości usług - QoS............. 4 1.1.3 Realizacja polityki bezpieczeństwa.............. 4 1.1.4 Monitorowanie i analiza ruchu................ 5 1.2 Różnicowanie jakości usług w sieci.................. 5 1.2.1 Mechanizmy QoS........................ 6 1.2.2 Architektury QoS....................... 10 1.2.3 Rola węzła sieci w dostarczaniu QoS............. 11 1.3 Architektura węzła sieci........................ 12 1.3.1 Architektury ruterów...................... 13 1.3.2 Model węzła.......................... 15 1.3.3 Stan badań........................... 17 1.4 Teza i cel pracy............................. 20 1.5 Zakres pracy.............................. 23 2 Struktury przełączników z wieloetapowym równoległym przetwarzaniem strumieni pakietów 27 2.1 Model przełącznika........................... 28 2.2 Rodzaje procesorów.......................... 32 2.3 Struktury przełączników wieloprocesorowych............ 33 2.3.1 Środowisko procesorów identycznych i jednorodnych.... 34 i
SPIS TREŚCI ii 2.3.2 Środowisko niepowiązanych procesorów........... 35 2.3.3 Przykładowe struktury przełączników............ 36 3 Zadanie sterowania przepływem zgłoszeń w węźle sieci 40 3.1 Klasyfikacja ruchu teleinformatycznego................ 41 3.2 Model procesora............................ 43 3.3 Model systemu............................. 45 3.4 Sformułowanie zadania sterowania przepływem zgłoszeń...... 46 3.5 Dekompozycja zadania......................... 52 3.5.1 Przydział zgłoszeń do równoległych procesorów....... 53 3.5.2 Wieloetapowe szeregowanie pakietów na równoległych procesorach............................. 55 3.6 Przykładowe sformułowania problemu - kryterium jakości sterowania 60 3.7 Podsumowanie............................. 65 4 Algorytmy sterowania przepływem zgłoszeń 69 4.1 Estymacja i predykcja......................... 72 4.1.1 Estymacja parametrów znanych rozkładów prawdopodobieństwa............................. 72 4.1.2 Predykcja przy znanych rozkładach prawdopodobieństwa. 75 4.1.3 Predykcja przy nieznanych rozkładach prawdopodobieństwa 79 4.2 Identyfikacja.............................. 81 4.2.1 Diagonalna rekurencyjna sieć neuronowa........... 82 4.2.2 Uczenie sieci DRNN...................... 83 4.3 Optymalizacja.............................. 86 4.4 Złożoność obliczeniowa......................... 92 5 Badania symulacyjne 96 5.1 Środowisko symulacyjne........................ 96 5.1.1 Moduł generowania ruchu................... 97 5.1.2 Moduł struktury przełącznika................. 98 5.1.3 Moduł algorytmów sterowania ruchem............ 100 5.2 Badania................................. 101 5.2.1 Eksperyment 1: Wpływ wartości parametrów kryterium jakości na dostarczaną dla różnych klas ruchu jakość usług.. 103
SPIS TREŚCI iii 5.2.2 Eksperyment 2: Wpływ ilości dostępnej wiedzy na jakość obsługi przy rosnącym natężeniu ruchu........... 110 5.2.3 Eksperyment 3: Wpływ ilości dostępnej wiedzy na jakość obsługi przy rosnących wymaganiach QoS.......... 121 5.3 Badania statystyczne i wnioski.................... 128 5.3.1 Analiza statystyczna wyników eksperymentów........ 132 5.3.2 Wnioski............................. 135 6 Podsumowanie 136 6.1 Najważniejsze rezultaty uzyskane w rozprawie............ 137 6.2 Kierunki dalszych badań........................ 138 Bibliografia 140 Spis symboli i skrótów 150 Spis rysunków 153 Spis tabel 160 Skorowidz 161
Rozdział 1 Sterowanie ruchem w węźle sieci teleinformatycznej Niniejsza rozprawa poświęcona jest niezwykle istotnemu zarówno z teoretycznego, jak i praktycznego punktu widzenia problemowi sterowania ruchem teleinformatycznym w węźle sieci z komutacją pakietów. Problem ten można formułować na wiele sposobów w zależności od: rodzajów zadań realizowanych w węźle sieci, sposobu oceny jakości realizacji tych zadań oraz architektury środowiska obsługi [53, 60]. Rodzaj zadań realizowanych w węźle sieci zależy przede wszystkim od klas ruchu wyróżnionych w zagregowanym strumieniu zgłoszeń napływającym do węzła. Jako zgłoszenie przyjęto tutaj ciąg jednostek danych (np. pakietów) charakteryzujących się tymi samymi adresami źródła i ujścia wygenerowanymi przez pewne źródło (np. aplikację) w ramach jednej sesji komunikacyjnej. Jakość obsługi ruchu zależy od zakresu przetwarzania podstrumienia zgłoszeń należących do każdej z klas. W szczególności jakość obsługi poszczególnych klas ruchu może dotyczyć gwarancji odpowiednich wartości parametrów ruchowych (takich jak na przykład średnie lub maksymalne opóźnienie) dla każdej z klas [78, 80]. Rozdział ten ma charakter poglądowy i ma na celu wprowadzenie w tematykę rozprawy oraz zaprezentowanie podstawowych koncepcji i tez. W podrozdziale 1.1 przedstawiono najważniejsze zadania realizowane w węźle sieci teleinformatycznej. Podrozdział 1.2 poświęcony jest szerszemu omówieniu koncepcji, mechanizmów oraz architektur sieciowych związanych z różnicowaniem jakości usług ko- 1
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 2 munikacyjnych, a także roli węzła sieci w zapewnianiu wymaganej jakości usług. W podrozdziale 1.3 dokonano przeglądu istniejących architektur przełączników sieciowych oraz zaprezentowano ogólną koncepcję systemu wieloetapowej równoległej obsługi ruchu. Dodatkowo, przedstawiono stan badań dotyczących sterowania przepływem ruchu w węzłach sieci pakietowych. Tezę oraz cel rozprawy, a także główne zadania badawcze przedstawiono w podrozdziale 1.4. Ostatecznie, zakres prac zrealizowanych w ramach rozprawy zaprezentowano w podrozdziale 1.5. W ramach realizacji niniejszej rozprawy sformułowano zadanie sterowania przepływem zgłoszeń dla wybranych architektur węzła sieci, w którym ruch obsługiwany jest wieloetapowo na równoległych stanowiskach obsługi. Dodatkowo zaproponowano nowe algorytmy sterowania przepływem zgłoszeń w systemie wieloetapowej równoległej obsługi ruchu teleinformatycznego. Zaprojektowane algorytmy sterowania wyposażone są w mechanizmy gromadzenia wiedzy o własnościach obsługiwanego ruchu i charakterystykach systemu obsługi. Wiedza ta jest wykorzystywana do podejmowania decyzji o przydziale zasobów systemu różnym klasom ruchu w celu poprawiania jakości obsługi napływającego ruchu teleinformatycznego. 1.1 Zadania realizowane w węźle sieci Przetwarzanie ruchu w węźle sieci teleinformatycznej polega na pobieraniu nadchodzących pakietów z interfejsów wejściowych węzła, wykonywaniu na nich pewnego ciągu operacji i przekazywaniu do interfejsów wyjściowych [82]. Zakres przetwarzania przepływającego ruchu zależy od rodzajów zadań realizowanych w węźle sieci determinowanych przez architekturę sieci i realizowane w niej strategie dostarczania jakości usług. Przykładem takich zadań są zadania dotyczące [83]: sterowania dostępem, sterowania przepływem, kształtowania ruchu, przeciwdziałania przeciążeniom, równoważenia obciążeń, wyboru tras, przeżywalności sieci, bezpieczeństwa, itp. Poniżej szczegółowo opisano wybrane zadania realizowane w węźle sieci ze szczególnym uwzględnieniem operacji wykonywanych na przepływającym przez węzeł ruchu.
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 3 1.1.1 Przekazywanie pakietów Podstawowym zadaniem realizowanym w węźle sieci jest przekazywanie pakietów. W najprostszym przypadku może to być wzmacnianie lub rozdzielanie sygnału płynącego w medium komunikacyjnym. W pierwszym przypadku zadanie polega na kopiowaniu pakietów z pojedynczego wejścia węzła na pojedyncze wyjście i realizowane jest przez urządzenie zwane wtórnikiem (ang. repeater). Rozdzielanie ruchu na kilka kanałów transmisyjnych wykonywane jest przy pomocy koncentratora (ang. hub) i polega na przekazywaniu pakietów nadchodzących na jedno z wejść węzła do wszystkich jego wyjść. Ponieważ interfejsy urządzeń sieciowych są na ogół dwukierunkowe, to każdy z nich może pełnić rolę zarówno wejścia jak i wyjścia węzła. Jednym z najczęściej stawianych przed urządzeniami sieciowymi zadań jest przełączanie (ang. switching) napływających do węzła pakietów pomiędzy interfejsami sieciowymi urządzenia. W zależności od warstwy modelu odniesienia ISO/OSI, w której operuje przełącznik (ang. switch), zadanie przełączania podlega różnym kryteriom oceny. Przykładowo, zadaniem rutera (ang. router), będącego przełącznikiem działającym w warstwie trzeciej (sieciowej), jest wybór najlepszej (np. najkrótszej) trasy w sieci. Jest to tzw. zadanie trasowania lub rutingu (ang. routing). Z drugiej strony, zadaniem przełącznika webowego (ang. web switch) działającego w warstwie siódmej (aplikacji) możne być na przykład wybór najmniej obciążonego serwera WWW do obsługi nadchodzących żądań. Ogólnie można powiedzieć, że przełączanie polega na kierowaniu nadchodzących pakietów na odpowiednie interfejsy wyjściowe przełącznika w taki sposób, aby optymalizować pewne zadane kryterium jakości przełączania (np. długość trasy, obciążenie serwerów). Niniejsza rozprawa dotyczy algorytmów sterowania ruchem w węźle sieci operującym w trzeciej (sieciowej) warstwie modelu odniesienia ISO/OSI. Oznacza to, że podstawowymi jednostkami danych podlegającymi przetwarzaniu są pakiety. Z uwagi na zakres zadań realizowanych przez węzły działające w warstwie sieciowej, a w szczególności zadanie gwarantowania jakości usług, decyzje podejmowane dla wszystkich pakietów z tego samego zgłoszenia są identyczne. Dlatego często będziemy mówić o przełączaniu (w ogólności przetwarzaniu) zgłoszeń, a nie pojedynczych pakietów.
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 4 1.1.2 Gwarantowanie jakości usług - QoS Kolejnym, niezwykle istotnym zadaniem realizowanym w węzłach sieci jest zapewnianie odpowiedniej jakości usług komunikacyjnych. Zadanie to wynika z faktu, że różne aplikacje (ogólnie różne klasy ruchu) mają odmienne zapotrzebowanie na jakość usług wyrażoną w postaci: przepustowości łącza (ang. bandwidth), opóźnień pakietów (ang. packet delay), fluktuacji opóźnień pakietów (ang. jitter), poziomu strat pakietów (ang. packet loss ratio), itp. W związku z tym, istnieje konieczność odmiennego traktowania pakietów należących do różnych zgłoszeń w taki sposób, aby wymagania każdej z klas ruchu były spełnione. W węźle sieci zadanie gwarantowania jakości usług komunikacyjnych jest realizowane przy pomocy takich mechanizmów jak na przykład klasyfikacja i szeregowanie pakietów należących do różnych zgłoszeń. Zadanie zapewniania jakości usług w sieciach zostało szerzej opisane w podrozdziale 1.2. 1.1.3 Realizacja polityki bezpieczeństwa Oprócz zadań przełączania i przekazywania zgłoszeń oraz różnicowania jakości usług komunikacyjnych w węzłach sieci często realizuje się zadania związane z wybranymi zagadnieniami zapewniania bezpieczeństwa sieci komputerowych. Przykładowym rozwiązaniem tego typu jest sprzętowa lub też programowa realizacja zapory ogniowej (ang. firewall), której celem jest skanowanie zawartości ruchu (ang. traffic content scanning) i filtrowanie pakietów (ang. packet filtering), według pewnej założonej w danej sieci polityki bezpieczeństwa (ang. security policy). Innym przykładem zadania realizowanego w węzłach sieci jest stosowanie zabezpieczeń kryptograficznych w celu ukrycia zawartości przesyłanych danych przed niepowołanym odbiorcą. Przykładem może tu być stosowanie bezpiecznej wersji protokołu IP - IPSec - polegające na szyfrowaniu napływających pakietów i opatrywaniu ich dodatkowym nagłówkiem. Oczywiście, realizowane musi być również zadanie odwrotne, tj. deszyfracja zakodowanych pakietów i przekazywanie ich do bezpiecznej podsieci. W sieciach często stosuje się również zaawansowane metody detekcji i przeciwdziałania naruszeniom bezpieczeństwa (ang. Intrusion Detection/ Prevention
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 5 Sytems - IDS/IPS). Zadaniem takich systemów jest wykrywanie anomalii w ruchu teleinformatycznym, które mogą wskazywać między innymi na: rozpoczęcie ataku typu Denial of Service - DoS [111], rozprzestrzenianie się wirusów lub robaków [57], czy też nieautoryzowany dostęp do zasobów sieciowych [90, 98]. Po wykryciu naruszenia zasad bezpieczeństwa systemy takie uruchamiają odpowiednie mechanizmy ochronne. Na przykład, dla stwierdzonego ataku SynFlood skutecznymi metodami obrony są SynCookie lub SynCache [9]. Dla potrzeb detekcji naruszeń bezpieczeństwa niezbędne jest gromadzenie informacji o przepływającym przez węzeł ruchu. 1.1.4 Monitorowanie i analiza ruchu Realizacja niemalże każdego zadania przetwarzania wykonywanego na przepływającym przez węzeł ruchu teleinformatycznym wymaga dostępu do aktualnych charakterystyk dotyczących tego ruchu [52]. Przykładowo, w zadaniu rutingu polegającym na wyznaczeniu najlepszej trasy do danego punktu docelowego należy znać stan wybranych tras. Monitorowanie ruchu jest także jednym z narzędzi niezbędnych dla celów różnicowania jakości usług komunikacyjnych [50]. Pozwala między innymi na sprawdzanie zgodności profilu zgłoszenia z profilem klasy ruchu, do której to zgłoszenie należy. W razie niezgodności, pojedyncze zgłoszenia są w odpowiedni sposób kształtowane (np. poprzez odrzucanie pakietów). Kolekcjonowanie i analiza danych dotyczących przepływającego ruchu odgrywa także istotną rolę we wszelkich systemach wykrywania naruszeń bezpieczeństwa, w których anomalie wskazujące na pewne nadużycia wykrywane są na podstawie odstępstw od normalnego zachowania ruchu. Dodatkowo, zgromadzone charakterystyki dotyczące obsługiwanego ruchu mogą być wykorzystywane przez administratorów sieci do celów: sterowania przepływami (ang. flow control), zarządzania siecią (ang. network management), a także taryfikowania ruchu (ang. traffic pricing). 1.2 Różnicowanie jakości usług w sieci Na zagregowany ruch w sieciach teleinformatycznych składają się strumienie zgłoszeń generowane przez różne aplikacje. Każda aplikacja ma pewne wymagania dotyczące wartości parametrów obsługi generowanego przez siebie ruchu.
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 6 Wartości tych parametrów charakteryzują jakość usług komunikacyjnych, jakie należy zagwarantować, aby zapewnić poprawne działanie aplikacji sieciowej [51]. Poprawne działanie aplikacji zależy od specyfiki generowanego przez nią ruchu. Przykładowo, aplikacje wrażliwe na opóźnienia (ang. delay sensitive) takie jak telefonia IP czy wideokonferencje wymagają niewielkich opóźnień i fluktuacji opóźnień pakietów w ramach zgłoszeń oraz niskiego poziomu strat pakietów. Są to tak zwane aplikacje działające w reżimie czasu rzeczywistego (ang. real-time applications). Z drugiej strony, przy obsłudze ruchu elastycznego (ang. elastic traffic) dopuszcza się zróżnicowanie opóźnień pakietów przy gwarancji na wartość średniego opóźnienia w dłuższym okresie czasu. Przykładem aplikacji elastycznych są aplikacje obsługujące transfer plików (FTP) lub przeglądarki internetowe (HTTP). Gwarantowanie jakości usług komunikacyjnych dla różnych aplikacji (ogólnie różnych klas ruchu) polega na zapewnieniu każdej klasie ruchu odpowiednich wartości parametrów transmisji. 1.2.1 Mechanizmy QoS Zapewnianie wymaganego poziomu jakości świadczonych usług komunikacyjnych dla różnych klas ruchu wymaga stosowania odpowiednich mechanizmów obsługi zgłoszeń w węzłach sieci. Podstawowymi mechanizmami tego typu są: kontrola dostępu do sieci (ang. admission control) i rezerwacja zasobów sieci (ang. resource reservation), klasyfikacja zgłoszeń i pakietów (ang. classification), profilowanie ruchu (ang. traffic conditioning) oraz szeregowanie pakietów (ang. scheduling) [110]. Kontrola dostępu do sieci Najważniejszym mechanizmem działającym podczas przyjmowania zgłoszeń do sieci jest kontrola dostępu. Decyzja o przyjęciu (bądź odrzuceniu) zgłoszenia podejmowana jest na podstawie wartości parametrów obsługi wymaganych przez zgłoszenie oraz dostępnych zasobów sieci. Jeśli wymagania nowego zgłoszenia nie mogą zostać spełnione, zgłoszenie jest odrzucane lub renegocjowane są warunki obsługi. Gdy warunki zostaną ustalone zgłoszenie jest przyjmowane do obsługi. W niektórych rozwiązaniach przyjęcie nowego zgłoszenia jest połączone z rezerwacją odpowiednich zasobów sieciowych.
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 7 Klasyfikacja pakietów Niezwykle istotnym mechanizmem QoS działającym w węźle sieci jest klasyfikacja napływających zgłoszeń. Realizacja zadania klasyfikacji pozwala na wydzielenie z zagregowanego strumienia pakietów pojedynczych zgłoszeń należących do różnych klas ruchu. Liczba wyróżnionych klas ruchu zależy od liczby i rodzajów filtrów stosowanych do klasyfikacji (np.: adres źródła, adres ujścia, rodzaj aplikacji). Często stosuje się również łączenie kilku różnych filtrów tworząc hierarchiczną strukturę klas ruchu. Przykładowo, może to być rozdział na ruch generowany przez różne aplikacje wymagające odmiennej jakości usług, a następnie wydzielenie w ramach każdej aplikacji odrębnych zgłoszeń. Ogólnie, głównym celem klasyfikacji ruchu jest wyodrębnienie z zagregowanego strumienia danych osobnych klas ruchu, mających różne wymagania dotyczące jakości usług. Dzięki takiemu podziałowi możliwe jest różnicowanie jakości usług poprzez odpowiednie mechanizmy takie jak priorytetyzacja i szeregowanie pakietów. Profilowanie ruchu Profilowanie ruchu jest mechanizmem pozwalającym, na stwierdzenie zgodności obsługiwanych zgłoszeń z profilem klasy ruchu, do której należą poszczególne zgłoszenia. Profile te mogą być uzgadniane z użytkownikami (np. poprzez zawarcie umowy dotyczącej jakości usług (ang. Service Level Agreement - SLA)) lub zdefiniowane przez administratora. Dotyczą one na ogół intensywności ruchu generowanego przez różne klasy ruchu. W razie stwierdzenia niezgodności ruchu z jego profilem, mechanizm profilowania podejmuje akcje mające na celu przywrócenie wymaganych parametrów ruchu. Służą do tego następujące narzędzia: monitorowanie (ang. traffic monitoring) i kształtowanie (ang. traffic shaping) ruchu oraz oznaczanie (ang. packet marking) i odrzucanie (ang. packet dropping) pakietów. Monitorowanie ruchu polega na stwierdzeniu, czy średnia intensywność danego zgłoszenia jest mniejsza od pewnej założonej wartości. Najczęściej wykorzystuje się w tym celu algorytm wiadra z żetonami (ang. Token Bucket - TB), a także jego hierarchiczną wersję Hierarchical Token Bucket - HTB lub algorytmy oparte o krzywą obsługi (np. Hierarchical Fair Service Curve - HFSC ).
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 8 W razie stwierdzenia niezgodności danego zgłoszenia z profilem można wybrane pakiety tego zgłoszenia znakować w odpowiedni sposób lub po prostu odrzucać. Na rysunku 1.1 przedstawiono przykładowy schemat obsługi związanej z realizowanym w węźle sieci zadaniem profilowania ruchu. Algorytm wiadra z etonami Algorytm ciekn cego wiadra Nap ywaj cy ruch Profilowanie ruchu Ruch zgodny z profilem Kszta towanie ruchu Ruch obs u ony Ruch niezgodny Przecienie? NIE Znakowanie pakietów TAK Odrzucanie pakietów Rysunek 1.1: Przykładowy schemat realizacji zadań związanych z profilowaniem ruchu w węźle sieci. Znakowanie pakietów polega na zaznaczeniu odpowiedniego pola w nagłówku pakietu (np. DSCP), wskazującego, że dany pakiet został warunkowo przekazany do sieci i jeśli zaistnieje potrzeba odrzucania pakietów (np. z powodu przeciążenia węzła), to w pierwszej kolejności należy odrzucać pakiety oznaczone. Znakowanie i odrzucanie pakietów jest stosowane również w zadaniu przeciwdziałania przeciążeniom w sieci (ang. congestion control). Przeciążenie węzła występuje wtedy, kiedy wszystkie bufory w węźle, w których pakiety oczekują na obsługę, są pełne. Węzeł nie może wtedy odbierać nowych pakietów z sieci. Najprostszy sposób rozwiązania tego problemu polega na odrzucaniu wszystkich pakietów, które zastały swoją kolejkę pełną (ang. taildrop). Metoda ta prowadzi jednak do zjawiska globalnej synchronizacji połączeń TCP (ang. TCP global synchronization) i drastycznego zmniejszenia wydajności sieci zwanego congestion collapse [91, 59]. W celu rozwiązania powyższego problemu, zaproponowane zostały różne metody zarządzania kolejkami. Najczęściej stosowane są te, należące do rodziny algorytmów aktywnego zarządzania kolejkami (ang. Active Queue Management - AQM ) polegające na unikaniu przeciążeń (ang. congestion avoidance) poprzez
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 9 wczesne odrzucanie pakietów ze zgłoszeń mogących powodować zatory w sieci [75]. Przykładowymi algorytmami AQM są: Random Early Detection - RED [44], Weighted RED - WRED [73] oraz Adaptive RED - ARED [43, 97]. Dodatkowo, wykorzystuje się również metody informowania o przeciążeniach bez konieczności odrzucania pakietów (Explicite Congestion Notification - ECN ) [42]. Przed opuszczeniem węzła ruch uznany za zgodny z profilem podlega ostatecznie procesowi kształtowania. Zadanie to jest realizowane przez prosty algorytm zwany mechanizmem cieknącego wiadra (ang. Leaky Bucket - LB). Szeregowanie pakietów Różnicowanie jakości usług dla poszczególnych klas ruchu polega na zapewnieniu odpowiednich wartości parametrów obsługi każdemu z obsługiwanych zgłoszeń. Zadanie to można zrealizować jedynie poprzez ustalenie odpowiedniej kolejności wysyłania pakietów z różnych zgłoszeń do interfejsu wyjściowego węzła. Za wyznaczanie kolejności (harmonogramu) obsługi pakietów odpowiedzialne są mechanizmy priorytetyzowania oraz szeregowania pakietów. Istnieje wiele algorytmów szeregowania pakietów opartych o różne modele kolejkowania. Najprostszymi metodami są algorytmy należące do rodziny algorytmów karuzelowych (Round Robin - RR, Weighted RR - WRR, Deficit RR - DRR) [94]. Rozwiązania te nie spełniają jednak często wymaganej własności sprawiedliwego kolejkowania (ang. Fair Queuing - FQ) [77, 92]. Algorytmy sprawiedliwego szeregowania to na przykład Weighted FQ - WFQ [124] lub wspomniany już wcześniej HFSC oparty o model krzywej obsługi (ang. service curve) [93]. Pomimo, że zachowanie zasady sprawiedliwego kolejkowania jest jak najbardziej pożądane podczas szeregowania pakietów, często jest ona sprzeczna z wymaganiem zachowania odpowiedniej jakości usług. Dlatego w rzeczywistych rozwiązaniach stosuje się metody hybrydowe polegające na połączeniu kolejkowania priorytetowego i sprawiedliwego. Przykładem zastosowania takiego rozwiązania jest nadawanie klasom ruchu, wymagającym obsługi w czasie rzeczywistym, pierwszeństwa nad innymi klasami. W takim przypadku, algorytm szeregowania wybiera do obsługi tylko pakiety z pierwszeństwem i dopiero po opróżnieniu kolejki priorytetowej następuje sprawiedliwe harmonogramowanie pozostałych klas ruchu. Przykładowym rozwiązaniem tego typu jest algorytm Priority Queuing Weighted Fair Queuing - PQWFQ [96].
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 10 1.2.2 Architektury QoS Możliwość gwarantowania odpowiedniej jakości usług uzależniona jest od architektury sieci oraz mechanizmów sterowania ruchem w niej zaimplementowanych. Zapewnienie ścisłych gwarancji QoS (ang. strict QoS) wymaga stosowania wszystkich mechanizmów QoS opisanych w podrozdziale 1.2.1. Dwoma podstawowymi architekturami ze ścisłą gwarancją jakości usług są architektura usług zintegrowanych (ang. Integerated Services - IntServ) [19] oraz architektura usług zróżnicowanych (ang. Differentated Services - DiffServ) [14]. Okazuje się, że w dzisiejszych sieciach nie zawsze istnieje możliwość zastosowania wszystkich wymaganych mechanizmów QoS. Największe trudności pojawiają się przy implementacji metod kontroli dostępu oraz rezerwacji zasobów sieciowych. W takich przypadkach stosuje się często metody zapewniania względnej jakości usług (ang. relative QoS) [29]. Względna jakość usług W dzisiejszej sieci Internet jedyną dostępną usługą sieciową jest tak zwana usługa standardowa (ang. best effort), będąca obietnicą, że sieć dołoży wszelkich starań, aby jak najszybciej obsłużyć nadchodzące zgłoszenia. Oczywistym jest, że w tym przypadku nie można mówić o gwarancji jakiegokolwiek poziomu jakości usług. Jest to spowodowane faktem, że bez wykorzystania odpowiednich mechanizmów (głównie metod alokacji zasobów sieci) nie jest możliwe uniknięcie przeciążeń sieci, które to przeciążenia są głównym powodem degradacji jakości usług komunikacyjnych. Względne różnicowanie jakości usług dla różnych klas ruchu uzyskuje się głównie przez wykorzystanie odpowiednich narzędzi klasyfikacji ruchu oraz priorytetyzacji i harmonogramowania pakietów. Integrated Services Jednym z rozwiązań zapewniających ścisłą gwarancję jakości usług jest koncepcja usług zintegrowanych. IntServ polega na tym, że każdorazowe żądanie dostępu do sieci wymaga rezerwacji zasobów dla tego żądania. Jeśli w sieci nie ma wolnych zasobów, to żądanie jest odrzucane. W przeciwnym wypadku tworzone jest wirtualne połączenie pomiędzy źródłem i ujściem, które przyznawane jest temu żądaniu na wyłączność na czas realizacji komunikacji.
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 11 Niewątpliwą zaletą koncepcji IntServ jest to, że jeśli żądanie dostępu zostanie przyjęte, to spełnienie jego wymagań jest zagwarantowane. Z drugiej jednak strony pojawiają się trudności ze skalowalnością tego rozwiązania i jego implementacją w sieciach rozległych. Spowodowane jest to faktem, że każdy węzeł w sieci musi przechowywać informacje i negocjować warunki dla każdego z obsługiwanych żądań. W rozległych sieciach węzły obsługują dużą liczbę żądań jednocześnie, co w przypadku stosowania koncepcji IntServ może powodować zawłaszczenie zasobów węzła i sieci na sam proces ustanawiania i utrzymywania komunikacji. Differentiated Services Inną koncepcją QoS jest koncepcja usług zróżnicowanych. Różnica pomiędzy IntServ i DiffServ polega na tym, że zamiast liczby obsługiwanych klas ruchu równej liczbie obsługiwanych żądań dostępu (IntServ) liczba klas ruchu w DiffServ jest stała i jest równa liczbie wyróżnionych klas jakości obsługi ruchu. W sieci o architekturze DiffServ wyróżnia się dwa rodzaje węzłów (ruterów): rutery brzegowe (ang. edge routers) oraz szkieletowe (ang. core routers). Zadaniem ruterów brzegowych jest klasyfikacja napływających zgłoszeń do jednej z predefiniowanych klas ruchu oraz odpowiednie ich profilowanie przed wpuszczeniem do sieci. Oczywiście, w celu niedopuszczenia do przekroczenia pojemności sieci, niezbędne jest także stosowanie mechanizmów kontroli dostępu (Bandwidth Broker). Rutery szkieletowe różnicują obsługę napływającego ruchu jedynie na podstawie klasy ruchu (ang. Per-Hop Behavior - PHB), do której napływające zgłoszenia zostały zaklasyfikowane na wejściu do sieci. Oznacza to, że w ramach jednego zagregowanego strumienia zgłoszeń danej klasy (ang. Behavior Aggregate) pakiety są nierozróżnialne i są traktowane jednakowo, niezależnie od zgłoszenia, do którego należą. Ogólna idea działania DiffServ polega na tym, że jeśli w odpowiedni sposób sterujemy ruchem na wejściu do sieci, to w jej wnętrzu wystarczy różnicowanie jakości usług na poziomie zagregowanych przepływów (BA) składających się ze strumieni zgłoszeń o podobnych wymaganiach QoS. 1.2.3 Rola węzła sieci w dostarczaniu QoS Niezależnie od przyjętej koncepcji zapewniania jakości usług komunikacyjnych, w węźle sieci wykorzystuje się te same mechanizmy. W każdym rozwiąza-
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 12 niu obsługiwany ruch rozdzielany jest na pewną liczbę klas (wirtualnych połączeń pomiędzy źródłem i ujściem w przypadku IntServ oraz strumieni zgłoszeń o podobnych wymaganiach dotyczących jakości usług w przypadku DiffServ). Wydzielone w ten sposób strumienie zgłoszeń są następnie profilowane i w odpowiedniej kolejności obsługiwane. Zarządzanie ruchem w węźle sieci ma zatem istotny wpływ na jakość usług oferowanych w danej sieci, gdyż najważniejsze mechanizmy QoS implementowane są właśnie w węzłach. Ponieważ jakość usług dostarczana różnym klasom ruchu zależy w głównej mierze od efektywności sterowania ruchem w węzłach sieci, to zarówno architektura węzła, jak i wykorzystane w nim mechanizmy sterowania przepływem stanowią niezwykle ważne zagadnienia w zadaniu gwarantowania jakości usług. 1.3 Architektura węzła sieci Głównym zadaniem każdego węzła działającego w warstwie sieciowej jest przekazywanie pakietów. Dodatkowo, w zależności od umiejscowienia w sieci węzły mogą pełnić dodatkowe funkcje, na przykład: zapora ogniowa, dostarczanie jakości usług (kontrola dostępu, profilowanie i kształtowanie ruchu, itp.), monitorowanie ruchu (np. do celów taryfikacji), itp. Na rysunku 1.2 przedstawiono schemat realizacji przykładowych zadań w węźle sieci. Zapewnianie bezpiecze stwa Dostarczanie jako ci us ug Pozosta e zadania (np. ruting) Nap ywaj cy ruch Kontrola dost pu Odrzucanie zg osze Klasyfikacja Szeregowanie pakietów Obs uga Ruch wyjsciowy Kolejkowanie Rysunek 1.2: Przykładowe zadania realizowane w węźle sieci. Z uwagi na dużą liczbę zadań realizowanych w węzłach oraz stale rosnące
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 13 natężenie ruchu, istnieje zapotrzebowanie na konstrukcję efektywnych systemów przetwarzania ruchu w węzłach. Zwiększanie efektywności przetwarzania napływającego do węzła strumienia zgłoszeń polega na lepszej (np. dokładniejszej) obsłudze ruchu oraz zwiększeniu szybkości tej obsługi (a zatem przepustowości węzła). Wzrost jakości obsługi może być związany na przykład z wyznaczaniem krótszych tras dla poszczególnych zgłoszeń, gwarantowaniu wyższej jakości usług, czy też zmniejszeniu prawdopodobieństwa wystąpienia fałszywego alarmu w systemie IDS. Zwiększanie jakości obsługi ruchu w węźle prowadzi na ogół do zmniejszenia szybkości przetwarzania, gdyż pociąga ono za sobą wzrost złożoności obliczeniowej i pamięciowej algorytmów przetwarzania. Widać zatem, że poprawianie jakości obsługi może spowodować zmniejszenie przepustowości węzła. Szybkość i jakość obsługi są na ogół dwoma sprzecznymi celami związanymi ze zwiększaniem efektywności przetwarzania ruchu w węźle sieci. Problem ten jest z reguły rozwiązywany w ten sposób, że maksymalizuje się przepustowość systemu przy zachowaniu odpowiedniej jakości obsługi albo maksymalizuje się jakość obsługi przy zadanej przepustowości. Efektywna realizacja zadań realizowanych w węzłach sieci wymaga zatem doboru odpowiedniej architektury węzła, a w szczególności odpowiednich algorytmów sterowania przepływem strumieni zgłoszeń. 1.3.1 Architektury ruterów Zwiększanie szybkości obsługi ruchu w węźle sieci jest aktualnym i od lat rozwijanym zagadnieniem [3, 118, 26, 117, 81, 120]. Dotychczasowe badania skupiały się w szczególności na opracowaniu efektywnej architektury węzła. Jako architekturę rozumie się w tym przypadku między innymi: sposoby obsługi wejść i wyjść węzła, sposoby przekazywania danych pomiędzy procesorami i interfejsami, metody wewnętrznej transmisji danych, czy też możliwości zrównoleglenia przetwarzania. Badania te można szczegółowo scharakteryzować na przykładzie ewolucji rozwiązań stosowanych w ruterach [53]. W architekturze pierwszej generacji wszystkie operacje na przetwarzanym ruchu wykonywane były przez pojedynczy centralny procesor z wykorzystaniem współdzielonej magistrali do komunikacji z interfejsami wyjściowymi węzła (ang. Single Processor - Shared Bus - SPSB). Napływające do interfejsów rutera pakiety przekazywane były przez magistralę do procesora, który wykonywał na pakietach niezbędne operacje (w tym przypadku było to wyznaczenie dalszej trasy)
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 14 i przekazywał do odpowiedniego interfejsu wyjściowego. Szybkość obsługi ruterów pierwszej generacji zależy głównie od szybkości procesora oraz przepustowości magistrali. Dodatkowo, z uwagi na uniwersalność procesora, jakość działania rutera zależy od systemu operacyjnego. W ruterach drugiej generacji wprowadzono rozproszone przetwarzanie wieloprocesorowe (ang. Multiple Processors - Shared Bus - MPSB). Główną zaletą tego rozwiązania jest redukcja liczby transmisji po magistrali. Istotą rozwiązania jest to, że tylko pierwszy pakiet z każdego zgłoszenia jest wysyłany do procesora centralnego do obsługi. Decyzja podjęta dla pierwszego pakietu zgłoszenia jest zapamiętywana w buforze interfejsu wejściowego, po to, aby kolejne pakiety z tego samego zgłoszenia można było wysyłać już bezpośrednio do odpowiedniego interfejsu wyjściowego. Pomimo redukcji liczby transmisji z interfejsów do procesora, magistrala nadal pozostaje w tym rozwiązaniu zasobem krytycznym. Uniwersalność procesora również jest w tym przypadku istotnym ograniczeniem skalowalności tego rozwiązania. Wprowadzenie, w trzeciej generacji ruterów, komutacji przestrzennej pakietów (ang. Multiple Processors - Space Switching - MPSS) zlikwidowało występujące w MPSB ograniczenia wynikające z konfliktów w dostępie do magistrali i jej ograniczonej przepustowości. Zasobem krytycznym systemu pozostały jednak uniwersalne procesory. W architekturze ruterów czwartej generacji wykorzystana została idea współdzielonego przetwarzania równoległego z komutacją przestrzenną (ang. Shared Parallel Processing - Space Switching - SPPSS). Koncepcja ta polega na tym, że do wyznaczania dalszej trasy wykorzystywane są wszystkie aktualnie dostępne procesory. Dodatkowo, komunikacja pomiędzy procesorami i interfejsami jest przyspieszona poprzez przekazywanie do procesorów jedynie nagłówków pakietów. Unika się w ten sposób transmisji zbędnych (z punktu widzenia podejmowanych decyzji) danych. Wynik przetwarzania nagłówka (w przypadku rutera jest to decyzja o dalszej trasie) przekazywany jest do interfejsu wejściowego, który wysyła cały pakiet do odpowiedniego interfejsu wyjściowego węzła. Szybkość obsługi ruchu w ruterze o architekturze czwartej generacji zależy głównie od liczby równoległych procesorów oraz ich obciążenia. Istotną rolę odgrywają zatem w tym przypadku algorytmy sterowania przepływem w węźle takie, jak równoważenie obciążeń. Ważną zaletą podejścia SPPSS jest możliwość
ROZDZIAŁ 1. STEROWANIE RUCHEM W WĘŹLE SIECI TELEINFORMATYCZNEJ 15 nieograniczonej skalowalności systemu poprzez instalowanie dodatkowych procesorów. 1.3.2 Model węzła Rozpatrywana w literaturze (np. [53, 36]) koncepcja uniwersalnego optymalnego rutera (ogólnie - węzła przetwarzającego) polega na tym, że cały proces przetwarzania ruchu jest podzielony na odrębne zadania możliwe do wykonania z szybkością zbliżoną do szybkości napływu pakietów do węzła. Przykładowo, w ruterze w sieci z gwarancją jakości usług można wyróżnić następujące operacje wykonywane na zgłoszeniach: filtracja i klasyfikacja, wyznaczanie dalszej trasy, kolejkowanie w odpowiednim interfejsie wyjściowym, szeregowanie w kolejkach w celu uzyskania gwarantowanej jakości usług. Dodatkowo, w zależności od założonej funkcjonalności węzła, na pakietach wykonywane są inne operacje związane z konkretnymi zadaniami realizowanymi w węźle. Może to być na przykład monitorowanie i analiza lub dodatkowe filtrowanie ruchu. W niniejszej rozprawie rozpatrywany jest model uniwersalnego węzła sieci z komutacją pakietów operującego w warstwie sieciowej, w którym możliwe jest realizowanie dowolnego zadania z zakresu przetwarzania ruchu teleinformatycznego. Architektura rozważanego węzła jest oparta o architekturę ruterów czwartej generacji. Oznacza to, że obsługa napływającego do węzła strumienia zgłoszeń realizowana jest w sposób równoległy na grupie niezależnych procesorów. Zastosowanie do obsługi ruchu wielu równoległych procesorów pozwala na wykorzystanie zalet przetwarzania równoległego. Przede wszystkim, zrównoleglenie obsługi zgłoszeń w węźle umożliwia znaczne zwiększenie przepustowości oraz niezawodności systemu. Dodatkowo, w systemie z równoległym przetwarzaniem istnieje możliwość stosowania specjalizowanych rozwiązań sprzętowych i programowych dostosowanych do specyfiki wymaganego przetwarzania wydzielanych podstrumieni zgłoszeń (klas ruchu) i formułowanych wymagań z zakresu jakości usług - potrafiących wykonywać pewne zadania przetwarzania lepiej (szybciej, dokładniej) niż urządzenia uniwersalne. Istotną przewagą węzła wieloprocesorowego nad jednoprocesorowymi stanowiskami obsługi jest jego skalowalność dotycząca zarówno przepustowości jak i funkcjonalności. Rozbudowa takiego systemu polega na dodaniu nowego procesora przetwarzającego (w systemie jednostanowiskowym modernizacja pociąga za sobą wymianę całego systemu). Ogólna idea przetwarzania ruchu w rozpatrywanym węźle sieci polega na wy-