PAWEŁ KORCZOWSKI E-mail: pkorczowski@wi.zut.edu.pl Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie 71-210 Szczecin, Żołnierska 49 WYDAJNOŚĆ WYBRANYCH PROTOKOŁÓW ROUTINGU W BEZPRZEWODOWEJ SIECI O TOPOLOGII KRATOWEJ Streszczenie: Artykuł opisuje problem wydajności protokołów trasowania w bezprzewodowych sieciach kratowych. Głównym celem tego projektu było przeprowadzenie testów wydajności wybranych protokołów oraz badania nad ich skutecznością w różnych scenariuszach użytkowania. Otrzymane rezultaty obrazują ich wady, zalety oraz możliwe zastosowania w porównaniu do sieci bezprzewodowych o pojedynczym punkcie dostępu. Słowa kluczowe: bezprzewodowa sieć kratowa, protokół, OLSR, B.A.T.M.A.N. 1. Wstęp Błyskawiczny rozwój sieci Internet ma bardzo duży wpływ na rozwój metod dostępu bezprzewodowego. Posiadanie połączenia z Internetem w telefonie komórkowym jest standardem, zaś liczba punktów bezprzewodowego dostępu do sieci cały czas się rozrasta. Współczesny użytkownik wymaga, by łącze z którego korzysta oferowało jak największą szybkość transferu danych bez przerw w transmisji oraz z jak najmniejszym opóźnieniem. Spełnienie tych warunków jest wciąż wyzwaniem dla twórców sieci bezprzewodowych -wymagania użytkowników odnośnie jakości stale rosną, co powoduje konieczność opracowywania nowych rozwiązań w kwestii komunikacji bezprzewodowej. Jeżeli sieć została zrealizowana w topologii kratowej, to pojawia się nowy problem - sprawne zarządzanie transmisją pakietów przy zachowaniu jak najlepszych parametrów transmisji. Do tego celu zostały opracowane specjalne
130 Paweł Korczowski protokoły zarządzające ruchem w takiej sieci. Od tego, jak funkcjonują zależy jej prawidłowa praca, dlatego istotne jest, by sprawdzić, w jaki sposób zachowują się w czasie eksploatowania sieci kratowej przez różnego rodzaju klientów, w różnych sytuacjach. 2. Wybrane protokoły trasowania Do testów wybrane zostały protokoły OLSR (ang. Optimized Link State Routing, wbudowany w oprogramowanie DD-WRT v23) oraz B.A.T.M.A.N. (ang. Better Approach To Mobile Adhoc Networking, będący modułem jądra w OpenWRT 10.03). Wykorzystanie oprogramowania DD-WRT oraz OpenWRT było podyktowane możliwością instalacji każdego z nich na urządzeniach wykorzystywanych do testów. Wykorzystany model urządzeń to Linksys WRT54GLv.1.1. 2.1. OLSR v1 Protokół OLSR to protokół trasowania typu proaktywnego używany w sieciach typu ad-hoc oraz sieciach kratowych. Został on stworzony do pracy niezależnej od innych warstw sieci. Bazuje na tym, że informacja odnośnie topologii sieci jest regularnie odświeżana, co czyni z niego protokół typu proaktywnego. Każdy z węzłów tej sieci posiada kompletną informację o strukturze sieci (istniejących węzłach i stacjach klienckich). Każdy węzeł dobiera sobie urządzenia sąsiednie, będące najbliżej niego, tworząc miedzy nimi sieć ścieżek transmisji (ang. multipoint relays, MPR). W protokole tylko węzły oznaczone jako MPR mogą trasować ruch, rozpraszając go po całej sieci. By zapobiec nadmiernemu obciążeniu łączy, wykorzystywane są mechanizmy redukujące ilość transmisji z pakietami sterującymi [2]. MPR pełnią bardzo ważną rolę w protokole - to one zestawiają możliwie najkrótszą ścieżkę od stacji źródłowej do docelowej, do każdego możliwego węzła docelowego w sieci. W przypadku zmiany topologii (awarii urządzenia, dołączanie/odłączanie się stacji klienckich) decydują o tworzeniu nowych ścieżek. Pełnią też ważną rolę w ułatwianiu transmisji danych kontrolnych w sieci. Podstawową wadą protokołu jest konieczność ciągłego odświeżania informacji o topologii. Oprócz tego, każde urządzenie posiada kompletną informację o wszystkich urządzeniach w sieci. Te dwie rzeczy powodują, że każda zmiana
Wydajność wybranych protokołów routingu 131 w strukturze (np. awaria węzła czy dodanie stacji klienckiej) powoduje odświeżenie informacji, generując przy tym dużo ruchu sieciowego. Przy dzisiejszych sieciach rozproszonych, gdzie liczba węzłów i klientów potrafi być naprawdę duża, pojawia się spory problem dla urządzeń. Niewielkie procesory routerów nie są w stanie sobie szybko poradzić z dużą ilością danych o zmianach topologii, przez co ich odświeżanie trwa stosunkowo długo. Jednak najbardziej kłopotliwe jest zajmowanie wolnego pasma przez pakiety sterujące. W przypadku bardzo rozbudowanej sieci ilość informacji kontrolnych jest bardzo duża, powodując zmniejszenie przepustowości łącza radiowego. 2.2. B.A.T.M.A.N. Protokół B.A.T.M.A.N. został stworzony w celu zastąpienia protokołu OLSR. Tworzony jest przez grupę Freifunk w języku C dla systemów Linuxowych. Z racji tego, ze protokół OLSR został jedynie minimalnie zmieniony od czasu powstania, jest on słabo dostosowany do obecnie tworzonych sieci bezprzewodowych (np. sieci miejskich). Jego algorytm przetwarzania nowej topologii sieci (zwłaszcza przy bardzo dużej ilości urządzeń) zajmuje zbyt dużo czasu procesorowi routera, którego taktowanie jest małe. Z tych powodów postanowiono stworzyć nowy protokół, dostosowany do dzisiejszych wymogów. Rys. 1. Oficjalne logo protokołu B.A.T.M.A.N. [1] Podstawowym założeniem protokołu jest fragmentacja informacji o sieci. Każdy z jej węzłów posiada tylko częściową informacje na temat topologii. W protokole OLSR każde urządzenie posiadało kompletną informacje o topologii sieci, tj. o wszystkich jej węzłach i klientach. Generowało to bardzo dużo zbędnego ruchu sieciowego (główna wada protokołów proaktywnych), by bieżąca informacja o dostępnych ścieżkach była jak najbardziej aktualna [3].
132 Paweł Korczowski W tym przypadku każde urządzenie posiada informacje jedynie o najlepszej ścieżce do kolejnego węzła sieci. Każde z nich posiada tez informacje, dokąd należy wykonać kolejny przeskok. Dzięki temu ograniczono do niezbędnego minimum konieczność rozsyłania w sieci pakietów informujących o topologii. Algorytm ten jest stworzony do pracy z sieciami, w których łącza radiowe nie są zbyt pewne (np. tłumione bądź blokowane przez przeszkody). Każdy z węzłów transmituje wiadomości rozgłoszeniowe, nazywane przez twórców OGM (od ang. Originator Message). W ten sposób węzły informują sąsiednie urządzenia o swoim istnieniu. Sąsiedzi dokonują retransmisji tych pakietów by poinformować inne o istnieniu węzła, który wysłał dany pakiet OGM. Mając na uwadze to, że protokół ten jest proaktywny i odświeżanie informacji o sieci zajmuje część łącza (nawet mimo podziału wiedzy o węzłach), pakiety OGM są małe w celu ograniczenia jego wykorzystania. Rozmiar pakietu to 52 bajty, wliczając w to nagłówki IP i UDP. Minimalna ilość informacji w nim to: adres urządzenia źródłowego, adres węzła przesyłającego pakiet, TTL, numer sekwencji. Numer sekwencji jest nadawany przez źródło, by pozostałe urządzenia wiedziały, czy dany OGM był odebrany raz bądź więcej razy. Po odbiorze następuje retransmisja tego pakietu do źródła po najlepszej możliwej ścieżce. Oprócz tego, każde urządzenie posiada aktualizowaną na bieżąco tablicę routingu właśnie dzięki pakietom OGM. 3. Przeprowadzone testy 3.1. Normalna praca Pierwszy test polegał na sprawdzeniu, jak pracuje sieć w czasie obsługi standardowego i nadmiernego ruchu sieciowego. Sieć składa się z: 5 routerów, 6 do 8 komputerów. W tym scenariuszu sieć pracuje bezawaryjnie. Komputery komunikują się między sobą, zaś wszystkie węzły sieci są sprawne i obsługują nadchodzące pakiety.
Wydajność wybranych protokołów routingu 133 Dla zwykłego użytkownika korzystającego z sieci kratowej nie jest istotne, jakie typy pakietów są przesyłane i jaka jest jej konstrukcja. Interesują go takie parametry, jak: opóźnienia, stabilność, przepustowość. Rys. 2. Wykres szybkości transmisji danych ze stacji klienckiej do innego komputera w sieci (OLSR) Rys. 3. Komputer pełniący rolę serwera (B.A.T.M.A.N.) Wykres dla stacji klienckiej z protokołem OLSR (rysunek 2) pokazuje, że przesyłanie danych odbywa się ze stałą prędkością, wahającą się pomiędzy 400 a 700 kb/s w czasie pracy sieci maksymalnie obciążonej ruchem. Większa prędkość jest przydzielana automatycznie, gdy inne urządzenia chwilowo nie korzystają z łącza.
134 Paweł Korczowski Serwer przyjmuje do siebie cały ruch generowany w sieci przez stacje klienckie. Wyraźnie widać, że każde połączenie próbuje wykorzystać maksymalnie dostępne dla niego łącze. By opóźnienie było jak najmniejsze, protokół OLSR stara się wytrasować połączenie z jak najmniejszą liczbą przeskoków. Podział dostępnego łącza oraz opóźnienia generowane w sieci stworzonej z wykorzystaniem protokołu B.A.T.M.A.N. jest podobny jak w przypadku protokołu OLSR. Podobnie jak w przypadku poprzednika, protokół stara się stworzyć ścieżkę z możliwie jak najkrótszą ilością przeskoków oraz przydzielić dla każdego z klientów możliwie maksymalne dostępne pasmo (na rysunku 3 nie widać żadnych gwałtownych wahań w transmisji danych). Dodatkowo B.A.T.M.A.N. nie wymaga instalacji na wszystkich stacjach klienckich - pakiety z komputerów bez wsparcia do protokołu są trasowane przez sieć do urządzeń docelowych. Posiadanie implementacji na urządzeniu skutkuje lepszymi możliwościami przetwarzania pakietów i zmniejsza zużycie pasma. 3.2. Zmiany topologii W czasie pracy sieci zdarzają się niespodziewane sytuacje losowe, jak choćby awaria urządzeń. W przypadku, gdy urządzeń jest więcej, istnieje większe prawdopodobieństwo awarii któregoś z nich. Bardziej problematyczną sytuacją jest ta, gdy węzłów w sieci jest mało i doznają one awarii. W tym teście sprawdzono, jak poszczególne protokoły trasowania reagują na nagłe zmiany topologii sieci. W tym celu przeprowadzono kilka wywołanych ręcznie awarii. Z racji tego, że oba protokoły są typu proaktywnego, rezultaty testów są mocno zbliżone. Rys. 4. Sieć w momencie zmiany topologii (OLSR)
Wydajność wybranych protokołów routingu 135 Oba protokoły reagują szybko na wszelkie zmiany topologii. W przypadku nagłej zmiany liczby stacji klienckich łącze jest szybko przydzielane pozostałym klientom, by zapewnić maksymalną jakość pasma. W przypadku, gdy nagle następuje awaria jednego z węzłów, pakiety są przetrasowywane na pozostałe urządzenia, by jakakolwiek przerwa w transmisji była dla użytkownika niezauważalna (rysunek 4 oraz 5). Analiza pakietów w czasie zmiany topologii nie wskazuje żadnej dodatkowej aktywności. Zmiana jest zauważona dopiero wtedy, gdy jedno z urządzeń nie odpowiada bądź jest niewidoczne dla pozostałych - dopiero wtedy następuje przetrasowanie pakietów (jednak jest to nieodczuwalne w żaden sposób dla użytkownika). Rys. 5. Praca sieci po awarii dwóch węzłów (B.A.T.M.A.N.) 3.3. Transmisja typu punkt-punkt z przemieszczaniem się klienta Test miał na celu sprawdzenie, jak zachowuje się protokół, gdy komunikacja odbywa się tylko między jednym nadawcą a jednym odbiorcą, zaś w sieci funkcjonuje komplet węzłów. W czasie testu jeden z klientów zmieniał swoje fizyczne położenie jednocześnie cały czas pozostając w zasięgu sieci, co miało symulować użytkownika korzystającego np. ze smartphone'a. Rezultaty, które zostały uzyskane w czasie tego badania dowodzą, że oba protokoły prawidłowo reagują na zmiany położenia klienta, które jednocześnie związane są z podłączeniem się do innego jej węzła, co widać na rysunku 6. W obu przypadkach nie obserwuje się żadnych gwałtownych przeskoków w przesyłaniu danych podczas zmiany pozycji klienta i zmiany węzła, do którego użytkownik był podłączony. Wyraźnie widać, że zmiana pozycji i przełącze-
136 Paweł Korczowski nie się klienta do innego węzła w obu przypadkach nie powoduje żadnych zauważalnych utrudnień dla użytkownika. Rys. 6. Wykres prędkości transmisji w momencie przemieszczenia się i zmiany węzła, do którego podłączony jest klient (dla protokołu B.A.T.M.A.N.) 4. Wpływ otoczenia na jakość transmisji Testy były przeprowadzane w małym pomieszczeniu laboratoryjnym, co mogło skutkować dodatkowymi problemami związanymi z nakładaniem się fal czy ich odbiciami. Jak wiadomo, sieć kratowa pracuje na tej samej częstotliwości, która jest wykorzystywana do komunikacji pomiędzy węzłami jak i między węzłami a klientami. Teoretycznie problem narasta wraz ze wzrostem ilości węzłów i/lub urządzeń w sieci. By sprawdzić, czy powyższa teoria jest zgodna z prawdą, został przeprowadzony test, polegający na eliminacji kolejnych węzłów z sieci i obserwacja zmian szybkości transmisji, opóźnień bądź retransmisji pakietów. W obu przypadkach eliminacja węzłów nie wpływała na stabilność istniejących łącz oraz nie poprawiała ich działania, co można zauważyć na rysunku 7. Zaobserwowane zmniejszenie opóźnień wynikało bardziej z usuwania kolejnych węzłów (co eliminowało kolejne przeskoki w czasie transmisji), niż z powodu zmniejszenia liczby urządzeń pracujących na tej częstotliwości.
Wydajność wybranych protokołów routingu 137 Rys. 7. Praca sieci w momencie usunięcia węzła; nie zaobserwowano żadnych zmian w szybkości transmisji Odbicia sygnału, który był generowany przez 5 węzłów i kilka stacji klienckich nie miały zauważalnego wpływu na ogólne funkcjonowanie sieci. Prawdopodobnie podłączenie większej ilości urządzeń dałoby możliwość łatwiejszego zaobserwowania tego zjawiska. 5. Wnioski Z rezultatów powyższych badań wydajniejszym i przystępniejszym protokołem okazuje się być B.A.T.M.A.N., głównie dzięki nieco innym, ulepszonym metodom zestawiania ścieżek i trasowania pakietów. Podstawową przewagą protokołu B.A.T.M.A.N. jest to, że nie jest wymagana jego instalacja na każdym z urządzeń klienckich (w przeciwieństwie do OLSR). Pakiety wysyłane z urządzenia bez obsługi protokołu (IPv4 czy TCP) są dostarczane do najbliższego węzła, stamtąd przenoszone do węzła który jest najbliżej odbiorcy, a następnie są do niego dostarczane. Klienci nie muszą wiedzieć, ze operujący w warstwie 2 modelu TCP/IP protokół zajmował się przesyłaniem danych. W przypadku OLSR implementacja musi być na każdym z urządzeń, co może być kłopotliwe ze względu na różnorodność obecnie używanych systemów stacjonarnych bądź mobilnych. Oba protokoły, zgodnie z założeniami, są niewrażliwe na gwałtowne zmiany w topologii sieci. Łącza, które uległy uszkodzeniu są pomijane, zaś pakiety które wcześniej były przez nie przesyłane przekierowywane są na pozostałe z nich. Istotne jest,
138 Paweł Korczowski że klient może się dowolnie przemieszczać w obrębie sieci, niezależnie od użytego protokołu w sieci kratowej. Fizyczna zmiana położenia klienta, skutkująca przełączeniem się na inny węzeł sieci nie jest odczuwalna dla użytkownika - połączenie nie jest zrywane, a opóźnienia nie zwiększają się w odczuwalny dla niego sposób. Gdy awarii ulegają węzły, dużo zależy od tego, jakimi informacjami o sieci dysponują poszczególne z nich. W przypadku OLSR każde urządzenie zna cała topologie, a ciągłe odświeżanie informacji o niej generuje większą ilość pakietów rozsyłanych do każdego z urządzeń. Podejście to jest nieco inne (a zarazem wydajniejsze) w protokole B.A.T.M.A.N., gdyż komunikacja węzłów odbywa się tylko z najbliższymi sąsiadami. W ten sposób redukowana jest liczba pakietów konfiguracyjnych. Literatura 1. S. Wunderlich: B.A.T.M.A.N.-Advanced logo. adres: http://www.openmesh.org/attachments/download/83/batlogo_transparent.png (dostęp: 14.04.2013). 2. T. Clausen, P. Jacquet: Optimized Link State Routing Protocol (OLSR), 2003. adres: http://tools.ietf.org/html/rfc3626 (dostęp: 7.04.2013). 3. A. Neumann, C. Aichele, M. Linder, S.Wunderlich: Open Mesh - B.A.T.M.A.N. project, 2008. adres: http://tools.ietf.org/html/draftwunderlichopenmesh-manet-routing-00 (dostęp: 7.04.2013). 4. Ekram Hossain, Kin K. Leung (eds.), Wireless Mesh Networks: Architectures and Protocols. Springer, 2007.