104
Piotr Rosiński Rutowanie multikastowe w sieciach ad hoc. praca dyplomowa magisterska ( inŜynierska) Promotor: Dr inŜ. Michal Morawski Dyplomant: Piotr Rosiński nr albumu 116772 Lódź, grudzień 2007 r.

Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

Piotr Rosiński

Rutowanie multikastowe w sieciach ad hoc.

praca dyplomowa magisterska ( inŜynierska)

Promotor: Dr inŜ. Michał Morawski Dyplomant: Piotr Rosiński nr albumu 116772

Łódź, grudzień 2007 r.

Page 2: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

2

SPIS TREŚCI

Wykaz skrótów. ............................................................................................................ 3 Wykaz rysunków. ......................................................................................................... 4 Słownik pojęć. .............................................................................................................. 7

1. Wstęp. ....................................................................................................................... 9 2. Cel i zakres pracy.................................................................................................... 11 3. Wprowadzenie do multicastingu. ........................................................................... 13

3.1. Multicasting w sieciach kablowych................................................................14 3.2. Ogólna charakterystyka sieci ad hoc i multicastingu w tych sieciach............ 16

4. Rutowanie w sieciach bezprzewodowych ad hoc................................................... 18 4.1. Ruting unicastowy w sieciach MANET. ........................................................ 21

4.1.1. Protokoły proaktywne............................................................................. 22 4.1.2. Protokoły reaktywne. .............................................................................. 25

4.2. Ruting multicastowy w sieciach MANET. ..................................................... 31 4.2.1. Protokoły drzewo-strukturalne. .............................................................. 33 4.2.2. Protokoły siatko-strukturalne..................................................................37

5. Ruting multicastowy w sieciach mobilnych bezprzewodowych ad hoc................. 39 5.1. Protokoły reaktywne. ...................................................................................... 40

5.1.1. Multicast Ad Hoc On-Demand Distance Vector (MAODV). ................ 40 5.1.2. On-Demand Multicast Routing Protocol (ODMRP). ............................. 49

5.2. Protokoły proaktywne..................................................................................... 56 5.2.1. Ad hoc Multicast Routing Protocol (AMRoute)..................................... 56 5.2.2. Core-Assisted Mesh Protocol (Camp). ................................................... 64

5.3. Protokoły inteligentne – Multicast for Ad hoc Network with Swarm Intelligence(MANSI) – Ant-based.............................................................................. 68

6. Symulacje................................................................................................................ 80 6.1. Informacje wstępne......................................................................................... 80 6.2. Kryteria symulacji........................................................................................... 81 6.3. Szczegółowe parametry ustawień sieci........................................................... 82 6.4. Wyniki symulacji protokołu ODMRP. ........................................................... 84

6.4.1. Liczba nadawców. .................................................................................. 84 6.4.2. Mobilność. .............................................................................................. 87 6.4.3. Wielkość grupy multicastowej................................................................ 90

7. Podsumowanie. ....................................................................................................... 93 8. Bibliografia. ............................................................................................................ 95 Dodatek A. ...................................................................................................................... 98

Zawartość nośnika CD................................................................................................ 98 Dodatek B. ...................................................................................................................... 99

Raport skrócony wygenerowany przez System Antyplagiatowy Plagiat.pl ............... 99

Page 3: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

3

Wykaz skrótów.

ABR – Associativity Based Routing

ACK – Acknowledgement

AMRIS – Adhoc Multicast Routing protocol utilizing Increasing Id numbers

AMRoute – Adhoc Multicast Routing

ARP – Address Resolution Protocol

CAMP – Core-Assisted Mesh Protocol

CBT – Core Based Tree

CBR – Constant Bit Rate

CRA – Core Resolution Algorithm

CSMA/CA – Carrier Sense Multiple Access with Collision Avoidance

DSDV – Destination-Sequenced Distance-Vector routing

DSR – Dynamic Source Routing

ERS – Expanded Ring Search

FORP – Flow Oriented Routing Protocol

GPS – Global Position System

GRPH – Group Hello

IETF – Internet Engineering Task Force

IP – Internet Protocol

LCC – Least Cluster Change

LET – Link Expiration Time

LL – Link Layer

LMR – Lightweight Mobile Routing

MAC – Media Access Control

MACT – Multicast Route Activation

MANET – Mobile Ad Hoc Network

MAODV – Multicast Adhoc On-Demand Vector routing protocol

MoM – Mobile Multicast

MRT – Multicast Route Table

RT – Route Table

ODMRP – On-Demand Multicast Routing Protocol

RET – Route Expiration Time

RPF – Reverse Path Forwarding

Page 4: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

4

RREQ – Route Request

RREP – Route Reply

RTS/CTS – Request To Send/Clear To Send

SSA – Signal Stability-based Adaptive Routing

TCP – Transmission Control Protocol

TORA – Temporally Ordered Routing Algorithm

TTL – Time To Live

Wykaz tabel.

Tabela 1. Porównanie protokołów proaktywnych.

Tabela 2. Porównanie protokołów reaktywnych.

Tabela 3. Podstawowe parametry protokołu MANSI.

Tabela 4. Podstawowe parametry symulacji.

Tabela 5. Parametry symulacji zorientowanej na liczbę nadawców.

Tabela 6. Parametry symulacji zorientowanej na szybkość poruszania się węzłów.

Tabela 7. Parametry symulacji zorientowanej na liczbę węzłów naleŜących do grupy

multikastowej.

Wykaz rysunków.

1. Schematy rutingu.

2. Przykład mobilnej bezprzewodowej sieci ad hoc.

3. Drzewo najkrótszej ścieŜki..

4. Procedura dołączania do grupy w protokole CBT.

5. Przykład sieci bezprzewodowej.

6. Sieć ad hoc z zaznaczonym zasięgiem węzłów.

7. Klasyfikacja protokołów unicastowych w sieciach ad hoc.

8. Ruch w sieci ad hoc.

9. Budowa klastra.

10. CGSR: trasowanie od węzła 1 do 8.

11. Wyszukiwanie trasy w DSR.

12. Przykład odpowiedzi na zapytanie o trasę w DSR.

13. Wyszukiwanie trasy do węzła i ścieŜka powrotu w AODV.

14. Przykład trasy przekazywania pakietów w AODV.

15. Przykład grafu DAG.

Page 5: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

5

16. Klasyfikacja protokołów multicastowych w sieciach ad hoc.

17. Przykład struktury drzewiastej.

18. Przykład struktury siatki.

19. Wyszukiwanie trasy w protokole MAODV.

20. Operacje dołączenia w MAODV.

21. Utworzenie ścieŜki powrotu.

22. Utworzenie ścieŜki przekazywania.

23. Aktywacja trasy multicastowej.

24. Format pakietu MACT.

25. Wiadomości hello lidera grupy.

26. Format GPRH.

27. Usuwanie uczestnika grupy.

28. Operacja naprawiania zerwanego połączenia w drzewie.

29. Połączenie dwóch drzew.

30. Tworzenie siatki z uŜyciem broadcastowego Join Query.

31. Proces dziłania Join Query.

32. Proces pakietu Join Reply.

33. Nagłówek pakietu Join Query.

34. Nagłówek pakietu Join Reply.

35. Rozsyłanie pakietu Join Query.

36. Uformowana tablica multicastowa.

37. Wirtualne drzewo multicastowe.

38. Tworzenie siatki.

39. Tworzenie drzewa.

40. Podział jednej siatki na kilka.

41. Formowanie siatki i drzewa.

42. Formowanie siatki i drzewa cd.

43. Diagram stanów w protokole AMRoute.

44. Przepływ pakietów z rutera h w siatce multicastowej i w drzewie

współdzielonym.

45. Przepływ pakietów z węzła nie będącego uczestnikiem grupy w CAMP.

46. Multicastowe połączenie pomiędzy trzema uczestnikami grupy w MANSI.

47. Przykład działania Forward i Backward Ant.

48. Przykład przypisania wysokości do węzłów pośredniczących.

Page 6: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

6

49. Przykład działania MANSI.

50. Format pakietu Core Announce.

51. Format pakietu Join Request.

52. Format pakietów Forward Ant i Backward Ant.

53. Sieć ilustrująca działanie mechanizmu adaptacji mobilności.

54. Wymagania systemowe.

55. Packet Delivery Ratio jako funkcja liczby nadawców pakietów.

56. Packet Transmssion Ratio jako funkcja liczby nadawców pakietów.

57. Pakiety kontrolne przez pakiety doręczone, jako funkcja liczby nadawców

pakietów.

58. Pakiety kontrolne wraz z danymi przez pakiety doręczone, jako funkcja liczby

nadawców pakietów.

59. Packet Delivery Ratio jako funkcja mobilności.

60. Packet Transmission Ratio jako funkcja mobilności.

61. Pakiety kontrolne do pakietów doręczonych jako funkcja mobilności.

62. Pakiety kontrolne wraz z pakietami wysłanymi do pakietów doręczonych jako

funkcja mobilności.

63. Packet Delivery Ratio, jako funkcja liczby uczestników grupy multicastowej.

64. Packet Transmission Ratio, jako funkcja liczby uczestników grupy

multicastowej.

65. Pakiety kontrolne do pakietów doręczonych, jako funkcja liczby uczestników

grupy multicastowej.

66. Pakiety kontrolne oraz wysłane pakiety z danymi do pakietów doręczonych,

jako funkcja liczby uczestników grupy multicastowej.

Page 7: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

7

Słownik pojęć.

sąsiad – (ang. neighbor) pojęcie określające inny węzeł sieci, do którego dane mogą

być transmitowane bezpośrednio, wykorzystując dostępne medium transmisji bez

pomocy innych pośrednich węzłów. [18][2]

sąsiedztwo – (ang. neighborhood) zbiór wszystkich węzłów, które mogą otrzymać

dane od wybranego węzła bezpośrednio, bez udziału pośredników, niezaleŜnie kiedy

będzie on nadawał.[18][2]

skok – (ang. hop) jest jedną ze stosowanych przez protokoły rutingu jednostek miary

odległości w celu określenia jakości drogi prowadzącej do celu. Liczbowo określa ona

liczbę ruterów, lub w przypadku sieci bezprzewodowych ad hoc węzłów sieci, przez

które musi być przekazywany pakiet, aby dotarł on do Ŝądanego urządzenia

docelowego. [18][2]

source routing – technika trasowania, w której nadawca moŜe określić dokładnie trasę,

jaką pakiet powinien pokonać, aby dotrzeć do celu. [18][2]

stan łączy – (ang. link state) nazwa określająca grupę protokołów rutingu

przechowujących kompletną bazę danych o topologii sieci z informacjami o kosztach

połączeń i ich stanie. Wszystkie elementy sieci posiadają identyczne dane o

sieci.[18][2]

ścieŜka powrotna - (ang. reverse path) trasa wyznaczona przez algorytm rutowania

prowadząca od węzła docelowego do źródłowego. Przeznaczona jest dla węzła

odległego, by mógł odesłać pakiety do węzła źródłowego. [18][2]

wektor odległości – (ang. distance-vector) określenie protokołów wymieniających

z sąsiadami dane z tablic rutingu. Pojęcie to wiąŜe się ze sposobem przedstawiania tych

danych. KaŜda trasa to para kierunek i odległość. Kierunek jest to adres sąsiada, do

którego naleŜy skierować pakiet, aby dotarł do celu. Odległość jest to wartość

wyznaczona na podstawie metryki stosowanej w protokole.[18][2]

węzeł ruchomy – (ang. mobile node) dynamicznie zmieniający połoŜenie element

sieci, najczęściej bezprzewodowej, taki jak np. komputer, telefon. [18][2]

lider grupy - (ang. group leader) węzeł, który jest uczestnikiem grupy multicastowej

i który najczęściej jest pierwszym węzłem takiej grupy. Odpowiedzialny jest on za

inicjalizację i zarządzanie numerem sekwencyjnym grupy multicastowej.[26]

tablica lidera grupy – (ang. group leader table) tablica w której węzły przechowują

informacje o parach grupa multicastowa-lider grupy. W kaŜdej tablicy istnieje

Page 8: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

8

pojedynczy wpis dla kaŜdej grupy, dla której węzeł otrzymał wiadomość Group Hello.

[26]

drzewo multicastowe – (ang. multicast tree) drzewo skupiające wszystkie węzły, które

są uczestnikami grupy multicastowej, i węzły będące tylko przekaźnikami pakietów

pomiędzy uczestnikami. [26]

multicastowa tablica rutingu – (ang. multicast router table) tablica w której węzły

przechowują informacje o trasach (równieŜ o następnych skokach) dla róŜnych grup

multicastowych. [26]

trasa odwrotna - (ang. reverse route) trasa dzięki której moŜliwe jest wysłanie

odpowiedzi (RREP) na pakiet z powrotem do źródła jego wysłania przez węzeł

docelowy lub przez węzeł znający trasę do celu. [26]

Page 9: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

9

1. Wstęp.

Kilka miesięcy temu zainteresowałem się tematem rutingu multicastowego

w sieciach ad hoc. W tamtym czasie pojęcia takie, jak: multicasting, sieci ad hoc,

protokoły reaktywne, proaktywne, „mrówkowe” i wiele innych wydawały się,

przynajmniej dla mnie, mało znane, niepotrzebne. Po przeczytaniu dziesiątek

artykułów, pozycji naukowych, draftów technicznych, uświadomiłem sobie, w jak

duŜym byłem błędzie.

Sieci ad hoc to nie jest abstrakcja. Są wszędzie wokół nas. Cały czas jesteśmy

pod ich działaniem, chociaŜby w telefonach komórkowych i większość z nas nawet nie

zdaje sobie sprawy, jak głęboko wyszukane procesy dzieją się w tak małych

urządzeniach. Jeszcze kilka lat temu, nie kaŜdy wiedział co to jest ruter, do czego słuŜy.

Dziś praktycznie kaŜdy telefon komórkowy pełni taką rolę. Nikt nawet nie zastanawia

się, jak to jest, Ŝe moŜna sobie sprawdzić pocztę internetową w tak małym urządzeniu.

śeby móc tego dokonać, urządzenie pokonuje daleką drogę, no właśnie „drogę” , a skąd

wie którą i dlaczego tą, a nie tamtą? Pytań i niewiadomych jest jeszcze więcej

i postaram się na nie w tej pracy odpowiedzieć.

śeby móc zacząć mówić o sieciach ad hoc, trzeba poznać najpierw trochę jej

historii. W ostatnich czasach sieci bezprzewodowe przeŜywają ogromny rozkwit. Na

badania nad ich wydajnością, przydatnością, a takŜe moŜliwościami rozwoju

w przyszłości, największe koncerny na świecie przeznaczają setki milionów dolarów.

NaleŜy przypomnieć, Ŝe pierwsze sieci ad hoc pojawiły się juŜ w latach

sześćdziesiątych ubiegłego wieku. Wtedy to, w projekcie ALOHA powstał protokół

rozproszonego zarządzania dostępem do kanałów komunikacyjnych. Co prawda

wykorzystywano tam węzły stacjonarne, będące w swoim zasięgu (sieci pojedynczego

przeskoku – ang. single-hop), jednakŜe to zapoczątkowało dalsze prace nad sieciami

tworzonymi spontanicznie. W 1973 roku organizacja DARPA zainicjowała projekt

PRnet (ang. packet radio network), w którym zaczęto wykorzystywać transmisję

radiową typu multi-hop. Oznacza to, Ŝe nie wszystkie węzły biorące udział w transmisji

znajdują się w swoim zasięgu i do przekazywania pakietów wykorzystywane były

węzły pośredniczące, przekazujące ruch pomiędzy nadawcą a odbiorcą. Prace nad tym

projektem wykazały, Ŝe wykorzystanie wielu przeskoków w sieci, w celu osiągnięcia

celu, pozwala zwiększyć efektywność działania sieci, poprzez jednoczesną transmisję

danych wieloma ścieŜkami, a takŜe pozwala ograniczyć zuŜycie energii. [8]

Page 10: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

10

W chwili obecnej jednym z największych wyzwań dla sieci bezprzewodowych

są mobilne sieci ad hoc (MANET). Sieci te zbudowane są

z dynamicznych węzłów, które tworzą wieloskokowe, często zmieniające się topologie,

gdzie przepustowości na niektórych odcinkach bezprzewodowych mogą być niskie.

Węzły te mogą się dowolnie przemieszczać. MoŜe się równieŜ zdarzyć sytuacja,

w której dwa węzły nie będą się znajdować w zasięgu swojej transmisji. Algorytmy

realizujące przesyłanie pakietów, powinny więc uwzględniać sytuację, gdzie w celu

dostarczenia pakietu, do transmisji danych wykorzystany zostanie węzeł pośredniczący,

nie naleŜący do Ŝadnej grupy, a jedynie działający jako ruter.[3].Protokoły realizujące

ruting w sieciach ad hoc powinny być jak najprostsze, szybkie

w działaniu i ograniczające niepotrzebny ruch kontrolny, co przyczynia się do

efektywnego ich działania w rzeczywistości.[25] Cechy takie prezentują multicastowe

protokoły rutowania w sieciach MANET, w których dane dostarczane są tylko do

wybranej grupy zera lub więcej odbiorców.[40]

W literaturze polskiej na dzień dzisiejszy trudno byłoby wskazać pozycje, które

poruszają zagadnienia będące meritum tej pracy, ze względu na ograniczoną liczbę na

rynku tytułów naukowych z zakresu tej problematyki. W przypadku tak dynamicznego

rozwoju, jaki moŜemy zaobserwować w chwili obecnej wokół nas, warto tematykę tę

zauwaŜyć i przybliŜyć.

Page 11: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

11

2. Cel i zakres pracy.

Celem tej pracy jest przedstawienie i przybliŜenie czytelnikowi zagadnień

związanych z rutowaniem multicastowym w sieciach ad hoc poprzez szczegółowe

omówienie kilku protokołów z tej grupy, charakterystycznych ze względu na budowę,

właściwości i działanie oraz symulacyjne zbadanie efektywności jednego z nich. W celu

zrozumienia powyŜszych zagadnień praca ta wprowadza równieŜ czytelnika do sieci ad

hoc, zobrazowuje czym tak naprawdę jest multicasting i jakie korzyści pozwala

osiągnąć, a takŜe zapoznaje z rutingiem unicastowym w sieciach mobilnych,

bezprzewodowych ad hoc, który stanowi formę podrzędną rutingu multicastowego.

Zakres pracy stanowią dwie części: teoretyczna i praktyczna. Część teoretyczna

została podzielona na kilka rozdziałów opisanych szczegółowo poniŜej. W niej to

czytelnik będzie mógł zapoznać się pojęciem multicastingu i realizacją tej transmisji

zarówno w sieciach kablowych, jak i ad hoc. W dalszej części przedstawione zostanie

ogólne działanie sieci ad hoc, w tym realizacja rutingu w sieciach unicastowych

poprzez krótkie charakterystyki wybranych protokołów. Dzięki wiedzy pozyskanej

z wcześniejszych rozdziałów, moŜliwe będzie zapoznanie się z kolejnym etapem tej

pracy, czyli z rutingiem multikastowym w mobilnych, bezprzewodowych sieciach ad

hoc i szczegółowo omówionymi wybranymi protokołami podzielonymi ze względu na

swą budowę i metody odświeŜania tras rutingu.

Część praktyczną stanowi zasymulowanie działania przykładowego protokołu,

jakim jest On-Demand Multicast Ruting Protocol, przy wykorzystaniu narzędzia

o nazwie: „QualNet”. Symulacja ta pozwoli uzyskać nam informacje, na temat

przydatności tego protokołu w rzeczywistych implementacjach.

Rozdział 3 wprowadza czytelnika w tematykę multicastingu. Po zapoznaniu się

z nim czytelnik powinien zrozumieć, na czym polega transmisja multicastowa, czym się

charakteryzuje, w jaki sposób jest realizowana w sieciach kablowych, a takŜe czym są

sieci MANET i jak ogólnie wygląda multicasting w tych sieciach.

Rozdział 4 pozwala zapoznać się z sieciami ad hoc duŜo dokładniej. Oprócz

historii powstania tych sieci i dość szerokiego wstępu obejmującego sieci

bezprzewodowe. W dalszej części czytelnik, będzie mógł zapoznać się ze sposobami

rutowania pakietów w sieciach unicastowych poprzez wybrane protokoły rutowania.

Natomiast kwintesencją i niejako podsumowaniem tego rozdziału, będzie

wprowadzenie do rutowania multicastowego w sieciach ad hoc, poprzez wybrane

Page 12: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

12

protokoły, gdzie kilka z nich będzie szeroko rozwiniętych w rozdziale 5 tej pracy.

Zarówno protokoły unicastowe, jak i multicastowe zostały podzielone na grupy pod

względem metody odświeŜania tablic rutingu. Pozwoli to w sposób jasny dostrzec

róŜnice między tymi rodzajami komunikacji.

Rozdział 5 to złoŜenie rozdziałów 3 i 4. Czytelnik powinien w tej chwili znać

komunikację multicastową i wiedzieć co charakteryzuje sieci ad hoc, jak wygląda

rutingu unicastowy w tych sieciach. Dzięki temu będzie mógł w sposób bardziej

przejrzysty zapoznać się z obszerną charakterystyką wybranych protokołów, to jest

z protokołami: MAODV, ODMRP, AMRoute, CAMP i MANSI, działającymi w

ramach mobilnych multicastowych bezprzewodowych sieci ad hoc. Ostatni z nich,

protokół MANSI stanowi najnowocześniejsze podejście do rutingu. Jest to protokół

inteligentny, odwołujący się niejako do otaczającej nas natury. Protokoły uwzględnione

w tym rozdziale nie zostały wybrane przypadkowo. KaŜdy z nich reprezentuje inną

grupę, pod względem zarówno budowy, właściwości jak i działania. Pozwola to

zrozumieć złoŜoność rutingu w mobilnych bezprzewodowych multicastowych sieciach

ad hoc.

W pracy tej zawarto równieŜ wyniki symulacji, których celem było zbadanie

efektywności działania protokołu ODMRP pod względem takich parametrów, jak

packet delivery ratio, packet transmission ratio, control packets per data packet

delivered, control and data packets per data packet delivered.

Page 13: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

13

3. Wprowadzenie do multicastingu.

Transmisja multicast jest pośrednią formą komunikacji między powszechnie

znaną techniką unicast – charakteryzującą połączenie między dwoma punktami (jeden

do jednego), gdzie kaŜdemu adresowi docelowemu przypisany jest jeden odbiorca,

techniką broadcast (jeden do wielu), gdzie jednemu adresowi przypisanych jest wielu

odbiorców, a techniką anycast (jeden do wielu), gdzie równieŜ jednemu adresowi

przypisanych jest wielu odbiorców, ale tylko jeden z nich jest wybierany w danej chwili

do odebrania danych od nadawcy.[40]

Pozwala ona dostarczać dane tylko do wybranej grupy zera lub więcej

odbiorców, którzy identyfikowani są za pomocą adresu grupowego (ang. multicast

address). PrzynaleŜność do grup jest dynamiczna, oznacza to, Ŝe kaŜdy węzeł sieci

moŜe w dowolnej chwili dołączać i opuszczać grupę multicastową. Nie ma Ŝadnych

ograniczeń co do lokalizacji w danej grupie, ani co do liczby węzłów do niej

naleŜącej.[3]

Rys. 1 Schematy rutingu (a)anycast (b)broadcast (c)multicast (d)unicast [40]

W sieciach przewodowych moŜna wyróŜnić dwa schematy sieci

multicastowych: drzewo najkrótszej ścieŜki (ang. shortest path tree) i drzewo oparte

o rdzeń (ang. core-based tree). [3]

Pierwszy schemat gwarantuje najkrótszą ścieŜkę do kaŜdego celu, ale wymagane

jest zbudowanie odrębnego drzewa dla kaŜdego źródła. Powoduje to utworzenie

ogromnej ilości drzew w sieci, co moŜe nieść za sobą pewne konsekwencje

np. wydajnościowe. [3]

Drugi schemat nie zapewnia, tak jak w pierwszym przypadku, najkrótszej

ścieŜki, ale tworzy tylko jedno drzewo dla całej grupy. Dzięki temu liczba drzew, które

trzeba skonstruować, jest ograniczona. [3]

Page 14: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

14

3.1. Multicasting w sieciach kablowych.

W tym podrozdziale opisane zostaną dwa typy protokołów multicastowych,

występujących w sieciach kablowych. Są to wspomniane juŜ wcześniej, drzewo

najkrótszej ścieŜki i drzewo zbudowane na rdzeniu.[3]

W pierwszym typie kaŜda ścieŜka od początku (korzenia) drzewa, w punkcie

nadawcy, do końca drzewa, w punkcie odbiorcy jest tworzona w taki sposób, aby była

moŜliwie najkrótsza. W protokole tym, aby zaistniał tryb rutowania multicastowego,

kaŜdy węzeł tworzy własne drzewo rozpinające. W ten sposób pokryte są wszystkie

hosty w sieci. Na przykład na rysunku 2(a) mamy sieć z dwoma grupami, 1 i 2.

Niektóre węzły znajdują się w jednej bądź obydwu grupach na raz. Drzewo rozpinające

dla węzła S pokazane jest na rysunku 2(b). [3]

Rys. 2 Drzewo najkrótszej ścieŜki (a) sieć (b) spinning tree dla węzła S (c) drzewo

grupa multicastowe dla grupy 1 (d) drzewo grupa multicastowe dla grupy 2 [3]

Kiedy pakiet zostaje wysłany do grupy, pierwszy węzeł sprawdza swoje drzewo

rozpinające usuwając wszystkie linie połączeń, na zakończeniu których znajdują się

hosty nie naleŜące do tej grupy. Rysunek 2(c) pokazuje skrócone drzewo dla grupy nr 1,

rysunek 2(d) przedstawia to samo drzewo dla grupy 2. Pakiety multicastowe są

przesyłane tylko wzdłuŜ zatwierdzonego, sprawdzonego drzewa rozpinającego. Ten

mechanizm ma jednak ogromną wadę jeśli chodzi o skalowalność, i kompletnie nie

nadaje się do zastosowania w duŜych sieciach.[3]

Drugi rodzaj algorytmu to tzw. drzewa oparte o rdzeń (Core-based tree), gdzie

istnieje jeden, główny węzeł tzw. rdzeń, od którego odchodzą inne gałęzie drzewa. Na

gałęzie te składają się pozostałe węzły, nie będące rdzeniem, które tworzą najkrótsze

ścieŜki połączeń pomiędzy hostami uczestnikami tego drzewa. Węzeł tworzący ostatnią

gałąź nazywany jest liściem. Rdzeń, topologicznie, nie musi znajdować się w centrum,

pomiędzy wszystkimi węzłami tworzącymi dane drzewo. [3]

Page 15: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

15

CBT wymaga, aby kaŜda grupa multicastowa miała swoje własne drzewo

z rdzeniem. Węzeł moŜe dołączyć do grupy poprzez wysłanie pakietu Join Request. Ta

wiadomość jest następnie przesyłana dalej po ścieŜce do rdzenia drzewa. Pakiet taki

wędruje dopóki nie dotrze do rdzenia lub dopóki nie osiągnie węzła, który tworzy część

danej grupy. W tym momencie procedura dołączania węzła kończy się i wysłana

zostaje odpowiedź w postaci pakietu Join Ack. Dzięki tej wiadomości powstaje nowa

gałąź w drzewie. Rysunek 3 przedstawia procedurę dołączenia węzła do grupy. [3]

Rys. 3 Procedura dołączania do grupy w protokole CBT. [3]

Węzeł nie będący rdzeniem moŜe opuścić daną grupę wysyłając pakiet Quit

Request. Wiadomość ta moŜe zostać wysłana przez węzeł, w celu odłączenia się od

drzewa, tylko jeśli nie są do niego dołączeni inni członkowie tej grupy multikastowej

i jeśli otrzymał wiadomość Quit Request od wszystkich swoich dzieci w drzewie, dla tej

grupy. Wiadomość ta wysyłana jest do rodzica danego węzła. Rodzic po jej otrzymaniu,

natychmiast odpowiada pakietem Quit Ack i usuwa to dziecko z drzewa. KaŜdy węzeł

nie będący rdzeniem wysyłając Quit Ack w odpowiedzi na otrzymany pakiet Quit

Request powinien sam wysłać taką wiadomość wyŜej w hierarchii drzewa. NaleŜy przy

tym pamiętać, Ŝe dla pakietu Quit Ack istnieje pewien timeout, po którego upłynięciu,

węzeł jest automatycznie usuwany z drzewa.[3]

Dla kaŜdego węzła nie będącego rdzeniem, jeśli jego rodzic lub ścieŜka

prowadząca do jego rodzica w drzewie ulegną uszkodzeniu, istnieje jedno z dwóch

rozwiązań. MoŜe spróbować powtórnie dołączyć do drzewa tworzącego grupę

multicastową wysyłając pakiet Join Request do węzła najbliŜej połoŜonego przy

rdzeniu, moŜe równieŜ wysłać wiadomość Flush Tree w dół swojej hierarchii, a to

spowoduje, Ŝe kaŜdy węzeł, niezaleŜnie, będzie musiał wykonać procedurę przyłączenia

Page 16: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

16

do drzewa. NaleŜy równieŜ pamiętać, Ŝe awarii ulec moŜe węzeł, pełniący funkcję

rdzenia. W takim przypadku zadziała mechanizm podobny do tego z węzłów nie

będących rdzeniem. Następuje ponowne zestawienie połączenia w drzewie i ponowne

przyłączenie do drzewa. Kiedy rdzeń z restartuje połączenie nie posiada Ŝadnych

informacji o drzewie dla którego był dotychczas rdzeniem. Jedynym sposobem, aby

uzyskać takie informacje, jest wysyłany okresowo przez inne, naleŜące do danego

drzewa, rutery, pakietu CBT Core Ping. Wiadomość ta domyślnie zawiera informacje

o wszystkich rdzeniach w danej grupie, identyfikowanych numerem group-id. Rdzeń

moŜe ponownie występować w tej roli odpowiadając na wcześniej wspomniany ping

pakietem Join Request. [3]

3.2. Ogólna charakterystyka sieci ad hoc i multicastingu w tych

sieciach.

Najprostszym sposobem na pokazanie działania sieci ad hoc jest jej

zobrazowanie poprzez konkretny przykład jej działania.

Jeśli dwa węzły znajdują się w swoim zasięgu mogą komunikować się

bezpośrednio ze sobą. W przeciwnym wypadku, komunikacja pomiędzy nimi będzie

zaleŜała od innych węzłów w sieci. W sieci mobilnej ad hoc pokazanej na rysunku 4,

węzły A i B są w swoim zasięgu (okręgi wokół punktów A i B). Jeśli host A potrzebuje

wysłać pakiet do hosta B, moŜe to zrobić bezpośrednio. Z kolei węzły A i C nie są w

swoim zasięgu, a oznacza to, Ŝe węzeł B posłuŜy w tej komunikacji jako ruter,

przekazujący pakiety. Host wyśle najpierw pakiet do hosta B, a ten przekaŜe go dalej do

węzła C. Pakiet powrotny będzie przesłany podobnie tyle, Ŝe w odwrotnej

kolejności.[3]

Rys. 4 Przykład mobilnej bezprzewodowej sieci ad hoc[3]

W sieciach MANET istnieją trzy kategorie algorytmów multicastowych.

Najprostsze podejście to proste zalewanie sieci pakietami (ang. flooding). KaŜdy węzeł

Page 17: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

17

odbierając wiadomość zalewa nią wszystkich swoich sąsiadów. Tego typu sieć działa

jak reakcja łańcuchowa i w rezultacie, ilość wysyłanych pakietów w krótkim odstępie

czasu moŜe się gwałtownie rozrosnąć. Drugą kategorię stanowią algorytmy proaktywne,

które starają się juŜ na początku znaleźć wszystkie moŜliwe ścieŜki do celu

i przetrzymywać te informacje w swoich tablicach rutingu. Mając na uwadze

nieustanne uaktualnianie informacji, co jakiś czas (z góry ustalony) wysyłana jest na

całą sieć aktualizacja tablic rutingu. Ostatnią kategorię stanowią algorytmy reaktywne

(tworzące ścieŜki do celu na Ŝądanie). Ich ideą jest to, Ŝe ścieŜka do celu tworzona jest

w momencie kiedy host źródłowy chce wysłać pakiet. [3]

Page 18: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

18

4. Rutowanie w sieciach bezprzewodowych ad hoc.

Sieci bezprzewodowe, odkąd węzły nie są ograniczone poprzez fizyczną

infrastrukturę, pozwalają na bardziej elastyczną komunikację. Istnieją dwie kategorie

sieci mobilnych bezprzewodowych:[2]

• Sieci z pełną infrastrukturą (ang. infrastructured networks)[2]

• Sieci bez infrastruktury (ang. infrastructureless networks)[2]

Pierwsza odmiana tych sieci składa się ze stacjonarnych stacji bazowych

i mobilnych, bezprzewodowych stacji końcowych. Stacje bazowe podłączone są na

stałe do normalnej sieci kablowej, działając jako bramy i punkty dostępowe dla

punktów mobilnych. Hosty mobilne znajdując się w strefie zasięgu działania

przynajmniej jednej stacji bazowej, komunikują się za jej pomocą z innymi stacjami

i innymi hostami mobilnymi, w celu wymiany informacji.

Rysunek 5 ilustruje przykład sieci z pełną infrastrukturą, gdzie BS(Stacja bazowa)

i R (rutery dostępowe). Trasa pomiędzy hostami A i B moŜe wyglądać następująco

A-BS1-R1-R3-BS2-B, natomiast pomiędzy hostami A i C A-BS1-C.[5]

Rys. 5 Przykład sieci bezprzewodowej.[5]

Sieci bez infrastruktury, lub sieci mobilne bezprzewodowe ad hoc (MANET) to

przede wszystkim sieci, w których ruting oparty jest głównie na transmisji typu multi-

hop. Oznacza to, Ŝe nie wszystkie stacje mogą znajdować się w swoim zasięgu, a zatem

moŜe zaistnieć sytuacja, w której transmisja będzie wymagała wykorzystania węzłów

pośredniczących, przekazujących ruch od nadawcy w kierunku odbiorcy.[5] Pod

pojęciem mobilnej sieci ad hoc kryje się zdecentralizowana sieć bezprzewodowa,

umoŜliwiająca przesyłanie danych pakietowych, gdzie mobilne stacje mogą pełnić

funkcję zarówno klienta końcowego, jak i rutera. A więc, kaŜda stacja oprócz

wykonywania aplikacji moŜe pośredniczyć w przekazywaniu dowolnego ruchu

sieciowego. Cechą zaś istotnie odróŜniającą tego typu sieci od tradycyjnych jest to, Ŝe

Page 19: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

19

do komunikacji nie jest konieczna Ŝadna dodatkowa infrastruktura sieciowa. Nie ma

centralnego zarządzania siecią, jak równieŜ Ŝadna stacja nie ma ściśle określonego

połoŜenia. Węzły takie mogą zmieniać lokalizacje, są dynamiczne. [8]

Rysunek 6 przedstawia przykład sieci MANET. Okrąg wokół kaŜdej cyfry, która

reprezentuje węzeł w sieci, wyznacza jego maksymalny zasięg transmisji. MoŜliwy

ruting pomiędzy węzłami 1 i 2 to np. 1-3-4-2 lub 1-5-2.[5]

Rys. 6 Sieć ad hoc z zaznaczonym zasięgiem węzłów.[5]

Sieci ad hoc mogą być zaimplementowane w róŜnych dziedzinach. Warto tutaj

wspomnieć o wojskowości (brak centralnego punktu zarządzania), ratownictwie, czy

chociaŜby o sieciach/aplikacjach sensorowych. NajwaŜniejszym jednak w tym

wszystkim jest to, Ŝe dla kaŜdego rodzaju aplikacji, w zaleŜności od zastosowania,

powstają róŜne wymagania co do protokołów rutingu. Na przykład w aplikacjach

wykorzystywanych przez wojsko liczy się przede wszystkim mały wskaźnik

wykrywalności i przechwycenia pomimo problemów z siecią, jakie mogą się pojawić

w kaŜdej chwili. W aplikacjach sensorowych z kolei waŜna jest przede wszystkim małe

zuŜycie energii, a w ratownictwie bezawaryjność i moŜliwość zapewnienia działania

pewnych usług na z góry ustalonym poziomie (QoS).[3]

Wszystkie aplikacje w sieciach ad hoc mają pewne cechy szczególne,

odróŜniające je od siebie, a takŜe wymagania co do algorytmów realizujących ruting.

Nie jest tutaj poŜądany bardzo duŜy ruch mogący powodować zatory w sieci, jak

równieŜ częste zmiany stanu połączenia (ang.link change) powodujące zasypywanie

hostów pakietami kontrolnymi, co powoduje nie potrzebne obciąŜanie łączy. Poza tym,

mobilność zwiększa wymagania w komunikacji. RównieŜ ogromnym wyzwaniem staje

się ograniczenie zuŜycia energii, gdyŜ jak wiadomo w sieciach MANET urządzenia

bazują na zasilaniu bateryjnym.[3]

Page 20: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

20

Tradycyjne unicastowe i multicastowe protokoły rutingu opierają się na

statycznej lub prawie statycznej topologii sieci, gdzie w tablicach rutingu

przetrzymywane są wszystkie moŜliwe trasy docelowe. Protokoły realizujące ruting

w sieciach komórkowych, takie jak Mobile IP[9], przewidziane są do komunikacji

radiowej uwzględniającej jeden przeskok (ang.single-hop), w którym przekazywanie

informacji o rutingu uzaleŜnione jest od sieci kablowej. A zatem sieci MANET

potrzebują swoich własnych algorytmów realizujących ruting, uwzględniających

wszystkie potrzeby takich sieci wspomniane wcześniej.[5]

PoniewaŜ węzły w sieciach mobilnych zmieniają swoje połoŜenie, zmienia się

równieŜ topologia takiej sieci, a moŜe to następować szybko i dość niespodziewanie. Co

więcej, istnieją limity ograniczające przepustowość sieci oraz energię, czerpaną ze

źródeł bateryjnych.[3] Tradycyjne protokoły rutingu są przez to bardzo ograniczone,

dlatego teŜ wymyślone zostały zupełnie inne algorytmu realizujące poprawną wymianę

danych pomiędzy węzłami w sieciach ad hoc.

Page 21: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

21

4.1. Ruting unicastowy w sieciach MANET.

Ruting unicastowy to przesyłanie pakietów z jednego konkretnego węzła,

do drugiego konkretnego węzła z moŜliwością wykorzystania węzłów pośredniczących

w transmisji. Tradycyjny podział dzieli ten ruting na bazujący na aktualnych tablicach

rutingu (ang. table-driven) i na reagujący na zmiany dopiero w momencie kiedy

te wystąpią (ang. source-initiated). [5]

Protokoły proaktywne(ang. proactive), bo tak inaczej nazywamy protokoły

bazujące na aktualnych tablicach rutingu (ang. table-driven), przechowują informacje

o topologii sieci, a takŜe trasy rutingu pomiędzy węzłami sieci, niezaleŜnie od tego, czy

przesyłane są do nich dane, czy teŜ nie. Takie działanie narzuca pewien wymóg co do

częstego, cyklicznego odświeŜania informacji o ścieŜkach w tablicach rutingu, którymi

mają biec pakiety, w celu wyeliminowania tras juŜ nieaktualnych. Pozwala to uniknąć

straty danych przy zrywaniu połączeń, bądź przy przeciąŜeniach łącz. JednakŜe trzeba

pamiętać o tym, Ŝe szybkość aktualizacji tablic rutingu to zwiększona ilość

przesyłanych pakietów, a to z kolei wpływa negatywnie na zuŜycie energii, szczególnie

w urządzeniach przenośnych.[2][5]

Protokoły reaktywne (ang. reactive) nazywane są równieŜ protokołami

zainicjowanymi przez źródło, bądź protokołami rutingu na Ŝądanie (ang. on-demand).

Jak sama nazwa wskazuje, wykonują one aktualizację trasy, bądź jej wyszukiwanie,

w momencie wysyłania pakietu, a operację tę inicjuje źródło wysyłania pakietu. Proces

poszukiwania ścieŜki dla pakietu kończy się w momencie znalezienia trasy, bądź

w przypadku sprawdzenia wszystkich moŜliwości wysłania tego pakietu. Później

zaimplementowany jest mechanizm, który decyduje jak długo takie trasy są aktualne

i kiedy moŜna te wpisy usunąć. Taki system działania umoŜliwia w znaczny sposób

zmniejszenie ilości danych przepływających przez sieć, co przekłada się równieŜ na

oszczędności w energii.[2][5]

Rys. 7 Klasyfikacja protokołów unicastowych w sieciach ad hoc.[5]

Page 22: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

22

4.1.1. Protokoły proaktywne.

W podrozdziale tym przedstawione zostaną wybrane protokoły z grupy

proaktywnych, dzięki czemu moŜliwe jest przybliŜenie ich zasad i sposobów

działania.[5]

DSDV (Destination-Sequenced Distance-Vector Routing) [11]

Jest on protokołem dystansowo wektorowym bazującym na klasycznym

algorytmie Bellmana-Forda [12]. KaŜdy węzeł w sieci, broadcastowo, co pewien z góry

ustalony okres czasu, rozsyła informacje na temat aktualnych wpisów w tablicy rutingu.

Cechą szczególną tego protokołu jest to, Ŝe kaŜdy węzeł stosuje numer sekwencyjny

(ang. Sequence Number). Jest on inkrementowany i wysyłany do sąsiednich węzłów,

dzięki czemu, są one w stanie stwierdzić, które informacje, od którego węzła są

aktualniejsze. Dany numer sekwencyjny moŜe być modyfikowany tylko przez swojego

właściciela. Pozwala to uniknąć pętli w tablicach rutingu. [5]

Reasumując węzły w protokole DSDV przesyłają swoim sąsiadom informacje

zawarte w swojej tablicy rutingu. Pakiety z aktualizacjami zawierają wspomniany juŜ

wcześniej numer sekwencyjny węzła, a takŜe adres docelowy celu, ilość skoków

i następny skok do niego, a takŜe jego największy numer sekwencyjny. Węzeł, który

otrzyma taki pakiet porównuje przysłane dane z juŜ posiadanymi wpisami w swojej

tablicy rutingu i dokonuje w niej zmian, uwzględniając numer sekwencyjny i metrykę.

W DSDV moŜemy wyróŜnić dwie tablice rutowania:[2]

• forwarding table – posiada informacje pozwalające kierować ruchem w sieci[2]

• advertised route table – odpowiada za rozsyłanie aktualizacji[2]

Działanie protokołu pokazuje poniŜszy przykład.

Rys. 8 Ruch w sieci ad hoc.[2]

Page 23: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

23

CGSR (Cluster-Gateway Switching Routing) [13]

Protokół ten uŜywa jako swego rodzaju schemat rutowania mechanizm

protokołu DSDV, modyfikując go poprzez uŜycie hierarchicznej architektury i rutingu

wykorzystującego tzw. klastry, czyli pewną grupę węzłów, na którą składają się: [5]

• stacja czołowa (ang. cluster head) – zarządza danym klastrem[2]

• stacja graniczna (ang. gateway) – znajduje się w obrębie dwóch, róŜnych

klastrów, przekazuje ruch pomiędzy nimi[2]

• pozostałe węzły[2]

Rys. 9 Budowa klastra.[2]

Węzły mobilne formują klaster poprzez wybranie jednej stacji jako stacji

czołowej, która będzie nim zarządzać. Wszystkie pozostałe węzły, które sformowały

dany klaster muszą znajdować się w zasięgu działania stacji zarządzającej. Węzeł, który

jest na granicy dwóch lub więcej róŜnych klastrów staje się stacją graniczną

i pośredniczy w ruchu pomiędzy dwoma róŜnymi klastrami. Kiedy jakiś węzeł chce

przesłać pakiet, najpierw ten wędruje do stacji czołowej. Jeśli cel nie naleŜy do danego

klastra, stacja ta przesyła ten pakiet do stacji granicznej, znajdującej się równieŜ

w innym klastrze. Następnie pakiet ten wędruje znów do stacji czołowej, tyle, Ŝe

zarządzającej innym klastrem. Operacja ta jest powtarzana dopóki cel nie zostanie

osiągnięty. Protokół ten korzysta z algorytmu LLC(Least Cluster Change) w celu

utrzymania stacji czołowej w stanie niezmienionym tak długo jak to tylko moŜliwe.

KaŜdy węzeł posiada tablicę rutingu z listą tras do stacji czołowych w innych klastrach.

Pozwala ona znaleźć adres stacji czołowej klastra, do którego naleŜy stacja docelowa

pakietu, który chcemy wysłać. Istnieje równieŜ tablica, która posiada wpisy z kolejnymi

węzłami na trasie do celu. W CGSR tablica rutowania jest mniejsza, jednakŜe

Page 24: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

24

przeciąŜenia powodowane przez okresowe rozsyłanie aktualizacji tras, a takŜe tablic

członków klastrów, powodują, Ŝe jest on zbliŜony wydajnością do DSDV.[5]

Rys. 10 CGSR: trasowanie od węzła 1 do 8[24]

WRP (Wireless Routing Protocol) [14]

Jest to kolejny proaktywny dystansowo wektorowy protokół rutowania w

sieciach MANET. [5] Pojawiają się tutaj aŜ 4 tablice: tablica rutingu, tablica odległości

(ang. distance table), tablica kosztów połączeń(ang. link-cost table) i tablica listy

wiadomości retransmitowanych (ang. MRL – message retransmission list table), które

okresowo są rozgłaszane.[2]

W tablicy rutingu przechowywane są: odległość od celu, poprzedni (ang.

predecessor) węzeł na trasie, następny (ang. successor) węzeł na trasie, a takŜe

znacznik, który pozwala zidentyfikować, czy dana trasa jest normalną ścieŜką dla

pakietu, pętlą, czy teŜ w ogóle jest nieprawidłowa. Tablica odległości posiada

informacje na temat dystansu do węzłów docelowych, a takŜe kombinacji par cel-kaŜdy

sąsiad. Przechowuje równieŜ, zgłoszone przez sąsiadów, informacje na temat

poprzedników dla kaŜdej z tras. Tablica kosztów połączeń trzyma informacje o wartości

połączeń z sąsiadami oraz liczbę wiadomości uaktualniających tablice, które dotarły od

ostatniego błędu ich przesłania. Tablica MRL utrzymuje informacje w celu znalezienia

sąsiadów, którzy nie otrzymali informacji uaktualniających.[5] Zapisywane jest w niej,

które dane powinny zostać wysłane powtórnie i którzy sąsiedzi są odpowiedzialni za ich

otrzymanie (potwierdzane pakietem ACK).[2] Protokół ten pozwala nam uniknąć pętli

dzięki wykorzystaniu informacji o całej trasie (ang. second-to-lasthop). Przesyłana jest

ona do celu wraz zawartą odległością między węzłami. Dzięki temu dla wszystkich

węzłów znani są uczestnicy danej trasy. KaŜdy węzeł sprawdza poprzedników na

trasach zgłaszanych przez sąsiadów. W momencie zgłoszenia przez sąsiadów, kaŜdy

węzeł sprawdza swoich poprzedników na danej trasie. Dzięki takiemu mechanizmowi

udaje się przyspieszyć proces rutingu, a takŜe zwiększyć stabilność sieci.[2]

Page 25: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

25

4.1.2. Protokoły reaktywne.

W podrozdziale tym omówionych zostanie kilka wybranych protokołów

aktualizujących tablice rutingu na Ŝądanie (ang. on demand).

DSR (Dynamic Source Ruting). [15]

Dwie cechy szczególne tego protokołu to kierowanie pakietów przez ruting

źródłowy (ang. source routing), i wykorzystanie zestawów tras, przechowywanych

w pamięci podręcznej (ang. route cache). Ruting źródłowy umoŜliwia przesyłanie

pakietów bez zapętleń, zapobiega potrzebie aktualizacji tras w tablicach rutingu, a takŜe

pozwala węzłom przechowywać informacje na temat rutingu w pamięci podręcznej.

Zbudowany jest on z dwóch mechanizmów, wykrywania tras (ang. route discovery)

i zarządzania trasami (ang. route maintenance). Wykrywanie tras polega na przesyłaniu

pakietów, typu RREQ(ang. route request), czyli zapytania o trasę i RREP(ang. route

reply), czyli odpowiedzi na Ŝądanie, przez węzeł S(source) chcący wysłać pakiet do

celu D (destination), pod warunkiem, Ŝe trasy do węzła docelowego nie znaleziono

w pamięci podręcznej. Węzeł S rozgłasza pakiet RREQ w sieci, który zawiera takie

pola jak: adres źródłowy hosta wysyłającego pakiet, adres docelowy celu, unikalny

identyfikator, który pozwoli rozpoznać dane Ŝądanie, i rekordy trasy, w których

dopisywane są kolejne adresy węzłów, pośredniczących w transmisji.[3][31]

KaŜdy węzeł, który otrzyma pakiet RREQ moŜe odpowiedzieć do źródła jego

wysłania S pakietem RREP, pod warunkiem, Ŝe zna trasę do celu D (posiada

odpowiedni wpis w pamięci podręcznej). W takiej sytuacji ścieŜka do celu jest

złoŜeniem dwóch tras, trasy od źródła S do węzła, który wysłał pakiet RREP i od tego

węzła do celu D. MoŜe równieŜ odrzucić taki pakiet, jeśli juŜ go poprzednio otrzymał.

W innym przypadku węzeł taki, dodaje swój identyfikator w rekordzie trasy i rozgłasza

pakiet RREQ dalej, do swoich sąsiadów.[3]

Węzeł docelowy, który otrzyma pakiet RREQ odpowiada na to Ŝądanie

pakietem RREP. Pakiet ten jest przesyłany przez wszystkie węzły, z powrotem do

źródła S, których wpisy umieszczone są w rekordzie rutingu, oczywiście w odwrotnej

kolejności. Rysunki 11 i 12 przedstawiają wykrywanie trasy w protokole DSR.[3]

Page 26: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

26

Rys. 11 Wyszukiwanie trasy w protokole DSR[3]

Rys. 12 Przykład odpowiedzi na zapytanie o trasę w protokole DSR.[3]

Mechanizm utrzymania tras działa w sposób następujący. W momencie kiedy

węzeł odkryje problem w łączności z węzłem, będącym następnym skokiem

w jego tablicy rutingu, usuwa on wpis, dotyczący takiej trasy, z pamięci podręcznej

i wysyła do hosta źródłowego S wiadomość kontrolną z kodem błędu (ang. Router

Error). Host źródłowy po otrzymaniu takie wiadomości rozpoczyna na nowo

wyszukiwanie trasy do celu.[3]

Zarządzanie pamięcią podręczną w protokole DSR jest na bardzo wysokim

poziomie, co pozwala uzyskiwać bardzo dobre wyniki wydajnościowe, najlepiej

widoczne podczas zwiększonego ruchu sieciowego.[3]

W protokole tym zostało zaproponowanych kilka metod optymalizacyjnych,

podnoszących jego wydajność. JednakŜe praca ta w swoim załoŜeniu nie ma za zadanie

opisywania wszystkich moŜliwych protokołów występujących w sieciach ad hoc,

a jedynie pokazanie najciekawszych przykładów, róŜniących się znacznie od siebie.[3]

Page 27: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

27

AODV(Ad Hoc On Demand Distance Victor)[3]

Protokół ten bazuje na mechanizmach zastosowanych w algorytmie DSDV.

AODV jest ulepszeniem tego protokołu, poniewaŜ minimalizuje liczbę wysyłanych

pakietów broadcastowych dzięki wyszukiwaniu trasy na Ŝądanie.[3] Mechanizm

działania tego protokołu pozwala na szybkie odkrywanie tras i umoŜliwia nie

przechowywanie informacji o węzłach nieaktywnych. Cechuje go równieŜ szybkie

reagowanie na zmiany w topologii sieci. W momencie zerwania połączenia, inne węzły

są o tym informowane. Zastosowano tutaj równieŜ numer sekwencyjny do oznaczania

tras, dzięki czemu pozwala to uniknąć pętli w trasach rutingu. [2]

W momencie kiedy węzeł źródłowy S chce wysłać pakiet do węzła docelowego

D i nie posiada aktualnej trasy do celu, inicjuje proces jej wyszukania. Rozsyła Ŝądanie

trasy RREQ (ang. route-reuest) do swoich sąsiadów. Ci z kolei przekazują je dalej do

swoich sąsiadów, i proces ten trwa dopóki, dopóty nie zostanie odnaleziony węzeł

docelowy D, lub nie zostanie znaleziony węzeł, który posiada wpisy w swojej tablicy

rutingu, pozwalające zlokalizować węzeł D. Rysunek 13 ilustruje Ŝądanie trasy RREQ

w sieci.[2]

W pakiecie RREQ zawarte są takie informacje, jak numer sekwencyjny, węzeł

docelowy, identyfikator zapytania i dane o węźle źródłowym. Identyfikator zapytania

jest liczbą, inkrementowaną dla kaŜdego zapytania RREQ, które węzeł generuje. Tak

samo zresztą numer sekwencyjny, to liczba, która przy kaŜdorazowym rozpoczęciu

wyszukania trasy lub przy odpowiedzi na takie Ŝądanie jest zwiększana. Wspomniane

powyŜej ID(identyfikator) i SN(numer sekwencyjny) pozwalają w sposób jednoznaczny

zidentyfikować zapytania RREQ. Dzięki takiemu rozwiązaniu węzły unikają

wielokrotnego przetwarzania tych samych informacji.[2]

Węzły pośrednio biorące udział w przekazywaniu pakietów RREQ, na

podstawie informacji o stacji źródłowej umieszczonych w zapytaniu, uzupełniają dane

o trasie do tej stacji, tworząc w ten sposób trasę powrotną (ang. reverse path). [2]

Węzeł docelowy po otrzymaniu Ŝądania RREQ odpowiada pakietem RREP

(ang. Route Request Replay), umieszczając w nim swój adres i numer sekwencyjny.

Pakiet ten przesyłany jest z powrotem do węzła źródłowego wcześniej wspomnianą

trasą powrotną. Wszystkie węzły, przez które przechodzi pakiet RREP uaktualniają

swoje tablice rutingu o trasę, która przed chwilą została ustalona. W ten sposób

powstaje komunikacja dwukierunkowa pomiędzy stacjami. [2]

Page 28: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

28

W protokole tym pojawia się równieŜ licznik czasu, po upłynięciu którego,

usuwana jest trasa z tablicy rutingu i w przypadku ponowionej transmisji, musi ona

zostać odkryta od początku. Jeśli ścieŜka ta jest uŜywana, licznik jest aktualizowany.[2]

Rys. 13 Wyszukiwanie trasy do węzła i ścieŜka powrotu w AODV.[3]

Rys. 14 Przykład trasy przekazywania pakietu w AODV. [3]

LMR (Lightweight Mobile Routing) [16] i TORA (Temporally-Ordered

Routing Algorithm) [17]

Są to protokoły unicastowe, działające na Ŝądanie, bazujące na algorytmie

Gafni-Bertsekasa[32], który konstruuje zorientowany na host docelowy graf

DAG(Directed Acyclic Graph), pozwalający na utworzenie wielu ścieŜek do jednego

celu. Korzeniem tego grafu jest host docelowy. Pakiety przesyłane są w górę lub w dół

grafu. Węzły mogą przesyłać dane wzdłuŜ trasy z góry do dołu w grafie DAG, dopóki

host docelowy nie zostanie osiągnięty. Tylko węzeł końcowy nie posiada dolnych

Page 29: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

29

sąsiadów, do których mógłby przesłać pakiet. Taki mechanizm pozwala uniknąć pętli.

Oba protokoły posiadają 3 bardzo podobne mechanizmy: konstruowanie tras (ang.

Route Construction), utrzymanie tras (ang. Route Maintenance) i niszczenie tras (ang.

Route Destruction). Konstruowanie tras jest procesem grafu DAG. Źródło zakłada,

Ŝe posiada trasę do celu dopóki istnieje choćby jeden dolny sąsiad. Tylko kiedy węzeł

straci ostatnią trasę do węzła docelowego i jeśli węzeł ten nadal jej potrzebuje włącza

się mechanizm utrzymania tras. Mechanizm niszczenia tras jest uŜywany do

czyszczenia błędnych tras w sieci. W protokole TORA, węzły uŜywają „wysokości”

metryk do ustanowienia grafu DAG. Na podstawie wysokości metryk ustanawiane są

kierunki połączeń pomiędzy węzłami. Podczas transmisji, węzeł moŜe przesyłać pakiet

tylko do takiego, który ma niŜszą metrykę. Taki sposób rutowania powoduje, Ŝe

w przypadku straty jednej trasy, praktycznie natychmiast mamy inną. Tak samo,

ograniczony mamy przesył wiadomości kontrolnych, dzięki czemu zwiększa się

wydajnośc sieci.[5]

Rys. 15 Przykład grafu DAG. [3]

Na zakończenie tego podrozdziału porównanie protokołów unicastowych:

Tabela 1 Porównanie protokołów proaktywnych.[3]

Page 30: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

30

Tabela 2 Porównanie protokołów reaktywnych.[3]

Page 31: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

31

4.2. Ruting multicastowy w sieciach MANET.

Protokoły przedstawione powyŜej mają za zadanie tylko przybliŜyć tematykę

rutingu w sieciach ad hoc. Podział jaki został pokazany nie był przypadkowy, gdyŜ

w przypadku grupy protokołów, która zostanie omówiona za chwilę, będzie podobnie,

a więc protokoły zostaną podzielone na proaktywne i reaktywne. Dodatkowo pojawią

się równieŜ nowe podziały, które moŜna zaobserwować, ze względu na budowę, tylko

w protokołach sieci multicastowych.

Multicasting odgrywa bardzo waŜną rolę w komunikacji w sieciach mobilnych

bezprzewodowych ad hoc. Poprzez wysyłanie tej samej porcji informacji do wielu

odbiorców w sieci moŜemy zredukować przepustowość potrzebną do wysyłania

danych, a takŜe ograniczyć zuŜycie energii w punktach mobilnych.[5]

Dla multicastingu dana grupa multicastowa zbudowana jest z jednej lub wielu

grup uŜytkowników, która odpowiedzialna jest za otrzymywanie i przechowywanie

informacji wysyłanych do tej grupy multicastowej. Dodać naleŜy, iŜ kaŜda grupa

posiada swój własny identyfikator, którym jest jej adres multicastowy, przypisany

do kaŜdej grupy unikatowo, to znaczy niepowtarzalnie. Inną cechą jest to, Ŝe

w dowolnym momencie kaŜdy węzeł moŜe dołączyć do grupy multicastowej, lub węzeł

juŜ do niej naleŜący moŜe ją opuścić. W sieciach MANET uczestnicy grupy są mobilni,

czyli mogą poruszać się w dowolny sposób.[5] W przypadku komunikacji w sieci,

głównie poprzez dostarczanie pakietów, a takŜe zarządzanie grupami multicastowymi,

moŜe powodować najróŜniejsze problemy. Protokoły multicastowe stworzone na

potrzeby MANET-u, mają właśnie tego typu problemy przewidywać

i im przeciwdziałać. W chwili obecnej jest ich kilkanaście, jednak w celu

wyczerpującego wyjaśnienia tematu wystarczy kilka podstawowych. [5]

Przekrój tych protokołów, a takŜe ich przynaleŜność do grup, pod względem

funkcjonalności i charakterystyki, przedstawia poniŜszy rysunek:

Page 32: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

32

Rys. 16 Klasyfikacja protokołów multicastowych w sieciach ad hoc.[5]

Pierwszy podział następuje ze względu na strukturę multicastową, drugi ze

względu na częstotliwość odświeŜania tablic rutingu.

Praca ta koncentruje się, w głównej mierze, właśnie na tych protokołach. W

dalszej części pracy omówiona zostanie większa część protokołów widocznych na

rysunku powyŜej. Poznamy dzięki temu ich budowę, i schematy działania, a to pozwoli

nam z kolei uzyskać informacje na temat róŜnorodności rutingu w sieciach mobilnych

bezprzewodowych ad hoc.

Page 33: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

33

4.2.1. Protokoły drzewo-strukturalne.

Istnieją dwie wersje protokołów drzewo-strukturalnych w sieciach MANET:

- drzewo źródłowe (ang. Source-based multicast tree)[3]

- drzewo współdzielone (ang. Single shared multicast tree )[3]

Drzewa źródłowe są tworzone dla kaŜdego węzła naleŜącego do danej grupy

multicastowej. Plusem takiego rozwiązania jest to, Ŝe kaŜdy pakiet przesyłany jest

najkrótszą, najbardziej wydajną ścieŜką od nadawcy do kaŜdego uczestnika grupy

multicastowej. JednakŜe są i minusy takiego rozwiązania. Przede wszystkim pojawiają

się problemy z nadmiernym ruchem kontrolnym w sieci, a takŜe protokoły z tej grupy

nie są zbyt dobrze przystosowane do pracy z węzłami mobilnymi.[3]

Z drugiej jednak strony, drzewa współdzielone są bardziej skalowalne od

wspomnianych wcześniej drzew źródłowych. Zamiast budowy wielu drzew w kaŜdej

grupie multicastowej, zastosowano jedno drzewo, współdzielone przez wszystkie węzły

naleŜące do danej grupy. Pakiety multicastowe są dystrybuowane wzdłuŜ takiego

drzewa do wszystkich uczestników grupy. Aby powstało drzewo współdzielone, jeden

węzeł wybierany jest jako rdzeń (ang. core node) i odpowiedzialny jest on za tworzenie

i zarządzanie tym drzewem. W utworzonym drzewie mogą istnieć połączenia jedno lub

wielo kierunkowe. (ang. unidirectional, bidirectional links). W drzewie

współdzielonym z połączeniami jednokierunkowymi, pakiety multicastowe przesyłane

są unicastowo do rdzenia w drzewie, który jest jednocześnie korzeniem danego drzewa.

Dopiero stąd są rozsyłane dalej wzdłuŜ całej struktury.[3]

Rys. 17 Przykład struktury drzewiastej.[3]

W drzewach współdzielonych z wielokierunkowymi połączeniami nie ma

znaczenia, którędy docierają pakiety multicastowe i są one dystrybuowane od razu na

Page 34: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

34

wszystkie gałęzie w tym drzewie. W grupie tej istnieją mniejsze przeciąŜenia sieci,

jednakŜe nie zawsze ścieŜki są tak optymalne jak w drzewach źródłowych.[3]

Rysunek 17 przedstawia przykład drzewa współdzielonego z połączeniami

jednokierunkowymi. Drzewo składa się z korzenia (r), czterech węzłów

pośredniczących(p,q,s,t), siedmiu odbiorców naleŜących do tej samej grupy

multicastowej (kolor szary), i z 11 połączeń pomiędzy węzłami. W drzewie

współdzielonym, odbiorca co jakiś czas wysyła pakiet Join Request do korzenia, a ten

z kolei na podstawie informacji o ścieŜkach, zawartych w tych pakietach, aktualizuje

strukturę drzewa multicastowego. Przy procedurze dołączenia węzła wymagane jest

wysyłania pakietów Join Request (sender), natomiast w przypadku, gdy jakiś węzeł

chce opuścić daną grupę multicastową, nie musi podejmować Ŝadnej akcji.

Wspomniano wcześniej o periodycznym wysyłaniu pakietów, które mają na celu

aktualizacje stanu faktycznego drzewa. NaleŜy jednak zauwaŜyć, Ŝe czas, który

decyduje o częstotliwości wysyłania tych pakietów, powinien być dobrany z duŜą dozą

ostroŜności, aby ustrzec się przed zbyt ich częstym wysyłaniem, a co za tym idzie, Ŝeby

ustrzec się przed przeciąŜeniem sieci. Jednocześnie czas ten nie moŜe być zbyt długi,

gdyŜ trzeba pamiętać, Ŝe węzły mogą zmieniać połoŜenie i informacje o tym, powinny

być utrzymywane na bieŜąco.[3]

Zaproponowano bardzo zróŜnicowane protokoły drzewo-strukturalne, które

zostaną przedstawione poniŜej w sposób bardzo krótki i zwięzły:[3]

• Adhoc Multicast Routing Protocol (AMRoute)

jest proaktywnym drzewo-strukturalnym protokołem multicastowym,

uŜywającym unikastowych tuneli IP-IP do stworzenia, a zarazem połączenia w pary

uŜytkowników danej grupy. Dzięki temu ruch odbywa się tylko

w ramach uczestników danej grupy multicastowej. W protokole tym istnieje

przynajmniej jeden logiczny „rdzeń” w kaŜdej grupie, który odpowiedzialny jest

za odkrywanie nowych członków grupy, a takŜe za tworzenie drzewa multicastowego,

dzięki któremu moŜliwe będzie przesyłanie danych. Początkowo, w momencie

tworzenia grupy multicastowej, kaŜdy uczestnik deklaruje siebie samego jako rdzeń,

który okresowo rozgłasza pakiety Join-Req w celu znalezienia innych członków danej

grupy. Kiedy pakiet ten osiągnie cel, znaleziony węzeł odpowiada pakietem Join-Ack

i zaznacza go jako swojego sąsiada. Węzeł, który z kolei otrzymał odpowiedź, oznacza

tego pierwszego jako swojego sąsiada. Dzięki takiemu schematowi postępowania

tworzona jest siatka tuneli pomiędzy parami uczestników danej grupy multicastowej.

Page 35: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

35

W momencie kiedy jakiś uŜytkownik chce opuścić grupę, w której aktualnie się

znajduje, rozsyła do swoich sąsiadów pakiet Join-NAK, a takŜe przestaje rozsyłać

jakiekolwiek informacje. Podczas, gdy struktura siatki w tym protokole jest stosowana

do połączenia uŜytkowników w pary, struktura drzewa uŜywana jest do wymiany

danych, a tym samym do rozsyłania informacji. Kiedy siatka zostaje juŜ stworzona,

rdzeń okresowo rozsyła pakiet Tree-Create (tł. budowanie drzewa) do swoich sąsiadów

poprzez tunele, dzięki czemu buduje współdzielone drzewa (and. shared tree). Kiedy

jeden z węzłów otrzyma taki pakiet i nie jest on duplikatem, przesyła go dalej,

do wszystkich swoich sąsiadów. Jeśli jednak taki węzęł otrzyma zduplikowany juŜ

pakiet Tree-Create, odsyła na drugą stronę tunelu pakiet Tree-Create-NAK. Węzęł

będący po drugiej stronie tego tunelu, który otrzyma taką odpowiedź, oznacza go jako

niezdolnego do transmisji danych. W ten właśnie sposób tworzona jest struktura drzewa

uŜywając jako podzbioru struktury siatki. Reasumując, protokół AMRoute tworząc

strukturę siatki w postaci tuneli pomiędzy węzłami, tworzy drzewo multicastowe.

Dlatego teŜ, tak długo jak tylko trasy rutingu pomiędzy uczestnikami drzewa istnieją

poprzez stworzoną siatkę tuneli, drzewo będzie się w stanie zbudować, nawet

w przypadku zmian w topologii. RównieŜ waŜne jest, iŜ węzły, które nie są

uczestnikami danej grupy multicastowej nie potrzebują obsługi(znajomości) Ŝadnego

protokołu multicastowego. Z drugiej jednak strony, jedną z wad tego protokołu jest to,

iŜ istnieje szansa na powstanie pętli pomiędzy tunelami.[3]

• Ad-hoc On-Demand Distance Vector Multicast Protocol (MAODV)

jest protokołem drzewo-strukturalno reaktywnym zdolnym

do realizacji komunikacji multicastowej. Trasy rutingu odkrywane są na Ŝądanie przy

pomocy mechanizmu rozgłaszania tras.[3] Protokół ten tworzy dwukierunkowe

współdzielone multicastowe drzewa łącząc w ten sposób nadawców i odbiorców.

UŜywając tego protokołu moŜemy być równieŜ pewni, Ŝe nie będzie on tworzył pętli,

dzięki uŜyciu multicastowej liczbowej sekwencji identyfikacyjnej. Cechą tego

protokołu jest równieŜ szybkie reagowanie na zmiany w topologii sieci. Szerzej

protokół ten będzie omówiony w dalszej części pracy.[26]

Page 36: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

36

• Ad hoc Multicast Routing protocol utilizing Increasing-idS(AMRIS)

jest kolejnym protokołem z grupy proaktywnych drzewo-strukturalnych. Jego

główną ideą jest to, Ŝe kaŜdy węzeł jest oznaczany (ang. tag) własnym nie

powtarzalnym numerem sesji multicastowej (ang. multicast session member ID-msm-

ID), który pozwala zbudować drzewo DAG, gdzie korzeniem jest tzw. „Sid”, czyli

specjalny węzeł, najczęściej nadawca, rozgłaszający pakiet „New-Session”. Jeśli

wiadomość ta rozsyłana jest w celu rozpoczęcia nowej sesji multicastowej, w pakiecie

New-Session zawierane jest msm-ID węzła pełniącego rolę Sid. W przypadku

sąsiadów, jeśli pakiet New-Session nie jest duplikatem, msm-ID zwiększane jest tak,

aby było większe od wartości, która dotarła wraz z tym pakietem. Następnie wiadomość

ta jest rozgłaszana ponownie, z odpowiednio zwiększoną wartością msm-ID węzła

wysyłającego ten pakiet. W ten sposób msm-ID jest zwiększane promieniście od Sid i

wykluczając sam korzeń, kaŜdy węzeł moŜe mieć potencjalnie rodzica (ang. parent),

którego numer sesji multicastowej jest mniejszy od jego własnego. Węzeł moŜe

dołączyć do sesji multicastowej poprzez wysłanie unikastowo Join-Req, który wędruje

wzdłuŜ trasy rutingu do odpowiednich rodziców z coraz mniejszymi wartościami msm-

ID. W momencie, kiedy pakiet dotrze do członka naleŜącego do danej grupy

multicastowej odsyłana jest wiadomość w postaci pakietu Join-ACK. Tworzy się w ten

sposób para rodzic-dziecko, co w drzewie odzwierciedlone jest jako gałąź. JeŜeli węzeł

chcący dołączyć do grupy multicastowej nie otrzyma odpowiedzi rozsyła on pakiet

Join-Req, tym razem na adres broadcastowy w poszukiwaniu węzłów mogących być

potencjalnymi rodzicami. W momencie zerwania połączenia, węzeł wysyła pakiet Join-

Req do wszystkich potencjalnych rodziców. Zasadą działania tego protokołu jest to, Ŝe

kaŜdy węzeł moŜe mieć co najwyŜej jednego rodzica, a schemat rozsyłania msm-ID

i znajdywania swoich rodziców pozwala tworzyć pary rodzic/dziecko, które przekładają

się na stworzenie struktury drzewa. Dane przesyłane są przez ścieŜki w drzewie.

W sieci, gdzie ilość przesyłanych danych, albo mobilność zwiększa się znacznie,

w stosunku do całej sieci, osiągi tego protokołu mogą nie być zadowalające, głównie ze

względu na wymóg ustanawiania i utrzymywania relacji pomiędzy węzłami.[5]

Page 37: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

37

4.2.2. Protokoły siatko-strukturalne.

Protokoły o strukturze siatki zapewniając więcej niŜ jedną ścieŜkę rutingu

pomiędzy parą uczestników danej grupy multicastowej, tworzą ogromne moŜliwości

redundancji połączeń. [5]

Rysunek 18 przedstawia przykład struktury siatki multicastowej dla sieci

MANET z rysunku 17. MoŜna zauwaŜyć trzy redundantne połączenia (zaznaczone na

rysunku charakterystyczną linią przerywaną). Dzięki temu, nawet jeśli połączenie

pomiędzy węzłami s’ i v’ zostanie przerwane, węzeł v’ nadal będzie otrzymywał pakiety

multicastowe, dzięki redundantnemu połaczeniu z t’ do v’. Protokoły siatko strukturalne

są bardziej przystosowane do szeroko pojętej mobilności i zapewniają większą pewność

w dostarczeniu pakietu do celu (ang. packet delivery ratio). [3]

Rys. 18 Przykład struktury siatki.[3]

Oto kilka przykładowych protokołów tej grupy:

• Multicast Core-Extraction Distributed Ad Hoc Routin g (MCEDAR) [19] jest

rozszerzeniem protokołu CEDAR.[38] W tym wypadku protokół CEDAR

uzyskuje węzły mogące być rdzeniami, MCEDAR z kolei uzyskuje podgrafy,

tzw. mgrafy (ang. mgraph) dla kaŜdej grupy multicastowej, składające się

wyłącznie

z węzłów będących rdzeniami zdolnymi do przesyłania informacji.[3]

• Clustered Group Multicast (CGM) [20] składa się z agentów zapraszających (ang.

advertising agents), w celu zredukowania ruchu sieciowego, którzy działają

jednocześnie jako serwer i klient dla obsługi Ŝądań dołączenia. Zarządcy klastra

działają jako agenci zapraszający, jeśli jeden lub więcej subskrybentów znajduje

się w klastrze. [3]

Page 38: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

38

• Core-Assisted Mesh Protocol (CAMP)[21]. W protokole tym węzeł chcąc

dołączyć do multicastowej siatki najpierw negocjuje tablicę rutingu, aby ustalić

czy istnieją jego sąsiedzi, naleŜący juŜ do tej siatki. Jeśli tak, węzeł ogłasza swój

udział w grupie. W innym wypadku wysyła Ŝądanie dołączenia do najbliŜszej

grupy multicastowej lub stara się osiągnąć ruter, który jest członkiem danej

grupy multicastowej.[3]

• On-Demand Multicast Routing Protocol (ODMRP) [27] zbudowany jest na

architekturze Ŝądań, które pozwalają uniknąć zatorów w sieci i zwiększają

skalowalność. Protokół ten korzysta z koncepcji grup przekazywania (ang.

forwarding group), gdzie siatka węzłów odpowiedzialna jest za przekazywanie

danych multicastowych po najkrótszej ścieŜce, pomiędzy kaŜdą parą

uczestników grupy. Podczas wysyłania wiadomości kontrolnych pomiędzy

odbiorcami, a wysyłającymi, węzeł moŜe zdać sobie sprawę, Ŝe jest tylko

częścią grupy przekazywania danych.[3]

• Neighbor Supporting Multicast Protocol (NSMP) [22] redukuje węzły, aby

zlikwidować przeciąŜenia procedury odzyskiwania rutingu i zapewnia

zarządzanie siatką. Nowe źródło inicjuje transmisję wysyłając pakiet FLOOD

REQ(FR) zawierający to co znajduje się wyŜej niego. Kiedy węzeł odbierze taką

wiadomość, przechowuje w pamięci podręcznej następny węzeł w hierarchii

i aktualizuje pola z własnymi adresami przekierowań. Kiedy odbiorca otrzyma

pakiet FR, wysyła z powrotem REP. Węzeł powyŜej w hierarchii otrzymując

pakiety REP, uaktualnia tablice rutowania, natomiast sam pakiet jest kierowany

dalej do źródła..[3]

Page 39: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

39

5. Ruting multicastowy w sieciach mobilnych bezprzewodowych

ad hoc.

Dzięki zapoznaniu się z rozdziałem 3, czyli z pojęciem multicastingu

i podstawami działania sieci multicastowych, a takŜe z rozdziałem 4, w którym

omówionych zostało kilka waŜnych aspektów sieci ad hoc, a przede wszystkim po

uzyskaniu informacji o tym jak realizowany jest ruting unicastowy i co go

charakteryzuje, a takŜe po uzyskaniu ogólnych informacji o rutingu multikastowym

w sieciach ad hoc, moŜna przejść do kolejnego etapu pracy, czyli rozdziału 5. W

rozdziale tym wybrane protokoły multicastowe sieci ad hoc, wspomniane w rozdziale 4,

zostaną szczegółowo omówione i przedstawione, dzięki czemu, moŜna będzie zapoznać

się z duŜą róŜnorodnością w budowie i działaniu pomiędzy poszczególnymi

protokołami, reprezentującymi pewne grupy, z których się wywodzą. KaŜdy protokół to

tak naprawdę odrębne podejście do rutowania pakietów w sieciach multicastowych ad

hoc, a to przekłada się przede wszystkim na róŜne wyniki w wydajności danego

protokołu. Jeden z tych protokołów zostanie zasymulowany, a dzięki wynikom jakie

uzyskamy będzie moŜna określić jego przydatność w rzeczywistości.

Page 40: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

40

5.1. Protokoły reaktywne.

5.1.1. Multicast Ad Hoc On-Demand Distance Vector (MAODV).

Protokół MAODV jest multicastowym rozwinięciem unicastowego protokołu

AODV. Trasy rutingu wyszukiwane są na Ŝądanie z uŜyciem mechanizmu

broadcastowego. MAODV tworzy dwukierunkowe współdzielone drzewa

multicastowe, łącząc w ten sposób nadawców i odbiorców. Dzięki zastosowaniu

numeru sekwencyjnego w protokole tym nie występują zapętlenia. Zapewnia on

równieŜ duŜą stabilność nawet w przypadku zmian w topologii sieci.[25]

5.1.1.1. Procedura wyszukiwania tras. (ang. Multicast Route Discovery)

Rys. 19 Wyszykiwanie trasy w protokole MAODV.[25]

Mobilny węzeł w chwili kiedy chce dołączyć do grupy multicastowej, lub kiedy

ma dane do wysłania do tej grupy, ale nie zna do niej trasy, wysyła wiadomość Ŝądania

trasy (ang. Route Request – RREQ). Jeśli dotyczy ona dołączenia do grupy to

wiadomość jest wysyłana z ustawioną flagą dołączenia „J” (ang. join flag). Adres

docelowy w pakiecie RREQ jest zawsze ustawiany na adres grupy multicastowej. Jeśli

nadawca zna lidera grupy i posiada aktualną trasę do niego, moŜe zamiennie wstawić

jego adres, a następnie wysłać unicastowo pakiet RREQ do niego poprzez następny

skok, uwzględniony w tablicy rutingu. Jeśli jednak węzeł nie posiada trasy do lidera

grupy, lub tym bardziej nie zna jego adresu, wysyła broadcastowo pakiet RREQ. [25]

W przypadku, gdy jakiś węzeł otrzyma pakiet RREQ, najpierw sprawdza czy

oznaczony jest flagą „J” (join). Jeśli jest, odpowiedzieć moŜe tylko węzeł będący

Page 41: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

41

uczestnikiem danej grupy posiadający numer sekwencyjny grupy co najmniej taki, jak

zawarty w otrzymanym pakiecie RREQ. Natomiast jeśli nie jest to Ŝądanie dołączenia,

odpowiedzieć moŜe kaŜdy węzeł z aktualną trasą do tej grupy, pod warunkiem, Ŝe

spełniony jest wymóg, co do numeru sekwencyjnego, wspomniany wcześniej.[25]

Jeśli jednak dany węzeł nie spełnia Ŝadnego z tych warunków, rozsyła on na

wszystkie swoje interfejsy otrzymaną wcześniej wiadomość RREQ, ale ze zmienionym

adresem IP na własny. Aktualizowany jest równieŜ numer sekwencyjny celu (ang.

destination sequence number) do maksimum, a takŜe numer sekwencyjny grupy

w multicastowej tablicy rutingu (jeśli istnieje). [25]

Węzły, które otrzymują pakiet RREQ z flagą „J” sprawdzają w pierwszej

kolejności swoją tablicę Ŝądań szukając wpisu dla danej grupy multicastowej. Jeśli

Ŝadnego nie znajdzie, umieszcza w tej tablicy adres poszukiwanej grupy wraz z adresem

IP węzła, który tej grupy szuka.[25]

Węzeł zawsze tworzy lub aktualizuje, jeśli istnieje, ścieŜkę powrotu na

wypadek, gdyby dotarła do niego odpowiedź RREP.[26]

Rys. 20 Operacje dołączenia w MAODV.[5]

5.1.1.2. Utworzenie ścieŜki powrotu. (ang. Reverse Path Setup)

Jak wiadomo, pakiet RREQ jest rozsyłany po sieci, dopóki nie znajdzie celu.

Węzły, przez które przechodzi, ustawiają pewne znaczniki, aby ustalić ścieŜki powrotu

w swoich tablicach rutingu. Po otrzymaniu pakietu RREQ najpierw aktualizowana jest

tablica rutingu, a zapisywane są: numer sekwencyjny i informacje o następnym skoku

dla węzła z którego przyszedł pakiet. Tworzona jest w ten sposób ścieŜka powrotu,

która moŜe być potrzebna do przekazania odpowiedzi. Dla pakietu RREQ z flagą „J”

dodatkowy wpis umieszczany jest w multicastowej tablicy rutowania. Trasa ta jest

nieaktywna, dopóki nie stanie się częścią drzewa multicastowego.[25]

Page 42: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

42

Jeśli węzeł otrzyma pakiet RREQ z flagą „J”, i jest on uczestnikiem danego

drzewa multicastowego dla tej grupy, aktualizuje on swoją multicastową tablicę rutingu

(ang. multicast route table) i generuje odpowiedź w postaci pakietu RREP. Adresy

źródłowy i docelowy zawarte w pakiecie RREQ są kopiowane do odpowiadających im

pól w pakiecie RREP. W odpowiedzi tej zawierane są między innymi takie informacje

jak aktualny numer sekwencyjny grupy multicastowej, adres IP lidera grupy. Co więcej

licznik skoków jest zerowany. Odpowiedź wysyłana jest unicastowo na adres źródłowy

z pakietu RREQ. [26]

Rys. 21 Utworzenie ścieŜki powrotu. [25]

5.1.1.3. Utworzenie ścieŜki przekazywania. (ang. Forward Path Setup)

Rys. 22 Utworzenie ścieŜki przekazywania. [25]

Page 43: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

43

Jeśli węzeł otrzyma pakiet RREQ z ustawioną flagą „J”, moŜe na niego

odpowiedzieć, pod warunkiem, Ŝe jest uczestnikiem poszukiwanej grupy multicastowej

i numer sekwencyjny zapisany dla tej grupy jest co najmniej tak duŜy jak ten zawarty

w pakiecie RREQ. Węzeł odpowiadający aktualizuje swoją trasę i multicastową tablicę

rutingu zapisując w swoich tablicach informacje o następnym skoku (węzeł z którego

przyszła odpowiedź) i wysyła unicastowo odpowiedź w postaci pakietu RREP

z powrotem do źródła. Tak długo jak węzły wzdłuŜ ścieŜki powrotu do nadawcy

pakietu RREQ otrzymują pakiet RREP, aktualizują tablicę rutingu i multicastową

tablicę rutingu wpisem z informacją skąd przyszedł ten pakiet, tworząc w ten sposób

ścieŜkę przekazywania pakietu.[25] Dzięki temu, przy powtarzaniu procedury

wyszukiwania lidera grupy, istnieje duŜa szansa na to, Ŝe procedura będzie znacznie

skrócona.[26]

5.1.1.4. Aktywacja trasy multicastowej. (ang. Multicast Route Activation)

Rys. 23 Aktywacja trasy multicastowej. [25]

Aktywacja multicastowej trasy jest połączona z selekcją i aktywacją linku,

który ma zostać dodany do drzewa multicastowego podczas procedury dołączenia

nowego węzła do grupy. Kiedy nadawca pakietu wysyła broadcastowo pakiet RREQ

bardzo często zdarza się, Ŝe otrzymuje więcej niŜ jedną odpowiedź. Wtedy dokonuje on

pewnej selekcji. Zapisuje otrzymaną trasę biorąc za kryterium największy numer

sekwencyjny i najkrótszą trasę w liczbie skoków do najbliŜszego członka w drzewie

multicastowym. Pozostałe trasy są odrzucane. Informacje te są przetrzymywane przez

pewien ustalony okres czasu. Pod koniec tego okresu, włącza wcześniej wybraną trasę

w swojej tablicy MRT, i wysyła unicastowo pakiet MACT do węzła na końcu tej trasy.

Page 44: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

44

Węzeł ten po otrzymaniu pakietu MACT włącza z kolei swój wpis dla nadawcy tego

pakietu w swojej MRT. Jeśli jest on w dodatku uczestnikiem drzewa multicastowego, to

nie propaguje pakietu MACT(Multicast Activation) dalej. JednakŜe, jeśli jednak węzeł

ten nie jest uczestnikiem tego drzewa, otrzyma jedną lub więcej odpowiedzi w postaci

pakietu RREP od swoich sąsiadów. Zatrzymuje on najlepszą trasę do grupy

multicastowej i unicastowo wysyła pakiet MACT do następnego węzła, wzdłuŜ tej

trasy, aktywując ją w tablicy MRT. Proces ten jest kontynuowany, dopóki nie zostanie

osiągnięty uczestnik drzewa multicastowego. Dzięki pakietowi MACT w danym

drzewie multicastowym nie istnieje wiele ścieŜek do jednego węzła. Dane

przekazywane są tylko wzdłuŜ uprzednio aktywowanych tras w tablicach MRT.[25]

Rys. 24 Format pakietu MACT. [26]

J – flaga dołączenia, ustawiana kiedy węzeł chce dołączyć do grupy multicastowej[26]

P – flaga usunięcia, ustawiana kiedy węzeł chce opuścić drzewo, likwidowana, kiedy

węzeł aktywuje link w drzewie[26]

G – flaga lidera grupy, ustawiana przez uczestnika grupy, któremu nie udało się

naprawić zerwanego połączenia z liderem grupy, ogłasza on w ten sposób siebie,

jako nowego lidera grupy[26]

U – flaga aktualizacji, ustawiana, kiedy zerwane połączenie zostało naprawione,

i zmienił się dystans do lidera grupy[26]

R – flaga restartu, ustawiana kiedy węzeł właśnie się restartował[26]

Hop Count – dystans pomiędzy nadawcą, a liderem grupy multicastowej. Pole uŜywane

tylko w przypadku ustawienia flagi „U”.[26]

Multicast Group IP Address – adres grupy multicastowej, dla której szukana jest trasa.

Source IP Address – adres IP nadawcy.[26]

Souce Sequence Number – aktualny numer sekwencyjny dla informacji o trasie,

generowany przez nadawcę pakietu RREQ.[26]

Page 45: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

45

5.1.1.5. Grupowe wiadomości HELLO. (ang.Group Hello Messages)

Rys. 25 Wiadomości hello lidera grupy. [25]

Powszechnie wiadomo, Ŝe pierwszy uczestnik grupy multicastowej staje się

liderem grupy. Węzeł ten sprawuje tę funkcję, dopóki nie zdecyduje się opuścić danej

grupy, lub dopóki dwie partycje drzewa nie połączą się. Odpowiedzialny jest on za

zarządzanie numerem sekwencyjnym danej grupy multicastowej i za rozsyłanie tego

numeru do całej grupy. MoŜe tego dokonać dzięki grupowej wiadomości HELLO

(GRPH). Wiadomość ta zawiera adres IP grupy multicastowej i numer sekwencyjny

(zwiększany z kaŜdą GPRH), dla której węzeł ten jest liderem. Pakiet ten jest

wykorzystywany do aktualizacji informacji w tablicy Ŝądań.[25]

Rys. 26 Format GPRH. [26]

U – flaga aktualizacji, ustawiana, kiedy nastąpiła zmiana w informacji o liderze

grupy.[26]

O – flaga Off_Mtree, ustawiana przez węzeł, który otrzymuje GPRH, a nie naleŜy do

drzewa multicastowego.[26]

Page 46: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

46

5.1.1.6. Usunięcie z drzewa. (ang. Prunning)

Uczestnik grupy multicastowej moŜe zdecydować się zakończyć swoje

uczestnictwo w danej grupie. Ostatni węzeł w drzewie lub węzeł mający tylko jedno

połączenie, zwany w terminologii drzew i grafów, liściem, moŜe usunąć samego siebie

z danego drzewa ustawiając flagę P w pakiecie MACT do następnego skoku. Jako, Ŝe

liść jest ostatni w danej gałęzi drzewa, oznacza to, Ŝe węzeł ma tylko jeden skok do

grupy multicastowej, a więc moŜe wysłać pakiet MACT unicastowo do następnego

węzła. Po wysłaniu takiej wiadomości, dany węzeł usuwa ze swojej tablicy MRT

wszystkie informacje dotyczące danej grupy multicastowej. Węzeł, będący następnym

skokiem po otrzymaniu pakietu MACT odczytuje flagę „P” i usuwa wszystkie

informacje o węźle chcącym opuścić drzewo ze swojej tablicy MRT.[25][26]

Rys. 27Usuwanie uczestnika grupy.[5]

5.1.1.7. Przywrócenie zerwanych połączeń. (ang. Repair Broken Links)

Awaria połączenia pomiędzy węzłami wykrywana jest w momencie braku

odbioru pakietów od swojego sąsiada po upłynięciu pewnego, ustalonego okresu czasu.

Kiedy wykryte jest zerwane połączenie, najdalszy węzeł względem odległości od lidera

grupy (w dół drzewa) odpowiedzialny jest za naprawienie tego połączenia. Naprawa

rozpoczyna się wysłaniem broadcastowo pakietu RREQ z ustawioną flagą „J”. KaŜdy

węzeł będący częścią drzewa multicastowego i posiadający dość aktualny numer

sekwencyjny moŜe odpowiedzieć unicastowo pakietem RREP. Jeśli po upływie

pewnego, ustalonego czasu, węzeł, który zainicjował naprawienie komunikacji nie

otrzyma odpowiedzi w postaci pakietu RREP, przyjmuje się, Ŝe naprawa jest

niemoŜliwa i komunikacja z drzewem jest zerwana. W tym momencie pojawia się

problem lidera grupy, którego w chwili obecnej, w dół drzewa od zerwanego

Page 47: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

47

połączenia, nie ma. Trzeba go wybrać na nowo. Jeśli węzeł, który zainicjował

odbudowę trasy przesyłania pakietów jest uczestnikiem danej grupy multicastowej,

automatycznie staje się nowym liderem grupy. Jeśli jednak węzeł ten nie był

uczestnikiem grupy, a jedynie przekazywał pakiety, posiada w tym momencie tylko

następny skok w drzewie. Samoczynnie usuwa samego siebie z tego drzewa wysyłając

do jedynego posiadanego celu, czyli do następnego skoku w drzewie, pakiet MACT

z ustawioną flagą „P”. Proces ten jest kontynuowany, dopóki następnym skokiem nie

okaŜe się uczestnik grupy multicastowej. Wtedy on staje się liderem grupy. W ten

sposób jedno drzewo multicastowe zostaje podzielone na dwie partycje, a więc de facto

na dwa drzewa nie widzące się wzajemnie.[25][26]

Rys. 28Operacja naprawiania zerwanego połączenia w dzewie.[5]

5.1.1.8. Ponowne połączenie podzielonego drzewa. (ang. Reconnect

Partitioned Tree)

W sytuacji, kiedy zerwanego połączenia nie da się naprawić, drzewo

multicastowe zostaje podzielone na dwie części, działające całkowicie niezaleŜnie od

siebie, dopóki nie zostaną z powrotem połączone. Węzły z jednej partycji sieci wiedzą

o istnieniu drugiej, dzięki róŜnicom występującym w pakiecie GRPH, wysyłanym przez

róŜnych liderów grupy. Lider grupy z niŜszym adresem IP odpowiedzialny jest za

zainicjowanie naprawy awarii. W dalszej części poniŜszej pracy węzeł ten będzie

określany jako GL1. GL1 wysyła unicastowo Ŝądanie RREQ z ustawionymi flagami „J”

i „R” do lidera grupy drugiej partycji sieci (GL2), uŜywając jako następny skok węzła

przez który dotarł do niego pakiet GRPH. Pakiet RREQ wysłany do grupy węzła GL2

zawiera aktualny numer sekwencyjny grupy węzła GL1. KaŜdy węzeł z grupy GL2,

Page 48: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

48

który otrzyma pakiet RREQ ma obowiązek przesłania go wyŜej wzdłuŜ ścieŜki

prowadzącej do lidera grupy GL2. Dzięki takiemu mechanizmowi po ponownym

przywróceniu normalnego stanu sieci, moŜna uniknąć powstania pętli. Po otrzymaniu

pakietu RREQ z węzła GL1, węzeł GL2 wysyła unicastowo odpowiednio

zmodyfikowaną odpowiedź RREP z ustawioną flagą „R”, która oznacza, Ŝe jest to

odpowiedź na Ŝądanie naprawienia połączenia. Liderem grupy po naprawieniu awarii

zostaje węzeł, który wysyła odpowiedź RREP.[26]

Wracająca do węzła GL1 wiadomość RREP powoduje, Ŝe węzły, które

uprzednio były uczestnikami grupy GL1 zmieniają lidera grupy na węzeł GL2. GL1 po

otrzymaniu pakietu RREP aktualizuje równieŜ swoje informacje. Drzewo moŜna uznać

za zrekonstruowane.[26]

Rys. 29 Połączenie dwóch drzew.[25]

5.1.1.9. Podstawowe parametry protokołu MAODV.

W drafcie protokołu MAODV poniŜsze parametry są rekomendowane takimi

wartościami, jak:

GROUP_HELLO_INTERVAL = 5000ms [26]

RETRANSMIT_TIME = 750ms [26]

Page 49: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

49

5.1.2. On-Demand Multicast Routing Protocol (ODMRP).

ODMRP jest protokołem siatko strukturalnym, stosującym koncepcję grup

przekazywania (ang. forwarding group), w której tylko pewne wybrane węzły

przekazują pakiety multicastowe. Budowa tras rutowania i zarządzanie uczestnikami

grupy odbywa się dynamicznie, na Ŝądanie. Nie wymagane są wiadomości kontrolne,

jeśli węzeł chce opuścić grupę.[25] Protokół ten jest doskonale dopasowany do

mobilnych bezprzewodowych sieci ad hoc, gdzie przepustowość jest ograniczona,

zmiany w topologii sieci następują często i szybko, a energia, z której korzystają

urządzenia jest czasowa – bateryjna. [27]

5.1.2.1. Trasa multicastowa i tworzenie siatki. (ang. Multicast Route and

Mesh Creation)

Rys. 30 Tworzenie siatki z uŜyciem broadcastowego Join Query.[25]

W protokole ODMRP jak wspomniano wyŜej, uczestnictwo w grupach

i zarządzanie trasami odbywa się na Ŝądanie. Podobnie jak w protokołach unicastowych

istnieją fazy Ŝądania i odpowiedzi. Kiedy multicastowy nadawca ma pakiety do

wysłania, ale nie zna trasy do grupy multicastowej, wysyła broadcastowo pakiet Join

Query. Pakiet ten jest równieŜ wysyłany okresowo w celu odświeŜenia informacji

o uczestnictwie w grupie multicastowej i w celu aktualizacji tras.[27]

Page 50: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

50

Kiedy węzeł otrzymuje pakiet Join Query, przechowuje on adres źródłowy

i unikalny ID, zawarte w tym pakiecie w swojej pamięci podręcznej wiadomości

(ang. Message Cache), aby zapobiec duplikacji. Tablica rutingu jest aktualizowana

odpowiednim numerem ID węzła od którego przyszła wiadomość wracająca po ścieŜce

powrotu do źródła nadania pakietu Join Query. Jeśli wiadomość nie jest duplikatem i jej

TTL jest większy od zera, odpowiednie pola są aktualizowane i pakiet znów zostaje

wysłany na adres rozgłoszeniowy sieci. Dzięki przypisaniu TTL dla wiadomości

broadcastowych udało się zredukować znaczne przeciąŜenie sieci.[27]

Rys. 31 Proces dziłania Join Query.[25]

Kiedy pakiet „Join Query” osiąga multicastowego odbiorcę, ten tworzy i wysyła

broadcastowo pakiet „Join Reply” do swoich sąsiadów. Kiedy węzeł przez, który

przebiega transmisja, otrzymuje pakiet Join Reply, sprawdza czy ID następnego węzła

pasuje do jego własnego. Jeśli tak, węzeł uświadamia sobie, Ŝe jest na ścieŜce do źródła

wysłania pakietu i staje się częścią grupy przekazującej pakiety.(ustawiana jest flaga

FG_FLAG). Następnie węzeł ten wysyła broadcastowo swój własny pakiet „Join

Reply” zbudowany na podstawie własnych wartości. Pole ID następnego węzła

wypełniane jest wartością z tablicy rutingu. W taki właśnie sposób pakiet „Join Reply”

jest rozsyłany przez kaŜdego członka naleŜącego do grupy przekazywania pakietów,

dopóki nie zostanie osiągnięte źródło wysłania pakietu „Join Query”. Proces ten tworzy

lub aktualizuje trasy od źródła do celu i buduje siatkę węzłów, tzw. grupę

przekazywania pakietów.[27]

Page 51: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

51

Rys. 32Proces pakietu Join Reply.[25]

Po ustanowieniu grupy i przeprowadzeniu procesu konstruowania tras rutingu,

nadawca moŜe wysłać pakiety multicastowe do odbiorcy poprzez wskazane trasy

i poprzez grupy przekazywania pakietów. Dopóki istnieją dane do wysłania, nadawca

co pewien interwał czasowy (Refresh Interval) wysyła pakiet Join Query i oczekuje na

odpowiedź. Ten proces pozwala odświeŜać trasy rutingu i grupy przekazywania. Kiedy

węzeł otrzyma pakiet multicastowy, przekazuje go tylko w przypadku, jeśli nie jest to

duplikat i jeśli nie wygasła waŜność FG_FLAG dla tej grupy. Procedura ta pozwala

zminimalizować zbyt nadmierny ruch w sieci, a takŜe chroni przed wysyłaniem

pakietów w nieistniejące trasy.[27]

Rys. 33 Nagłówek pakietu Join Query.[27]

Page 52: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

52

Rys. 34 Nagłówek pakietu Join Reply.[27]

5.1.2.2. Niezawodność.

Niezawodna transmisja pakietów Join Reply odgrywa bardzo waŜną rolę przy

ustanawianiu i odświeŜaniu tras multicastowych i rozsyłaniu grup. W protokole

ODMRP jeśli wyŜej wspomniane pakiety nie zostaną doręczone, rutowanie

multicastowe nie będzie odpowiednio efektywne. Protokół 802.11 MAC (Medium

Access Control), będący standardem w sieciach bezprzewodowych, zapewnia

niezawodność transmisji poprzez retransmisję zagubionych, nie doręczonych

pakietów.[27]

W protokole ODMRP transmisja pakietów Join Reply odbywa się często na

adres rozgłoszeniowy, nie tylko do najbliŜszych sąsiadów, ale często równieŜ kilka

poziomów wyŜej. W takiej sytuacji weryfikacja dostarczenia skok po skoku

i retransmisja pakietu Join Reply nie moŜe być dokonywana w warstwie MAC.

Powinna zatem mieć miejsce bezpośrednio w protokole.[27]

5.1.2.3. Tablica rutowania. (ang. Routing Table)

Tablica rutowania jest tworzona na Ŝądanie i posiada ją kaŜdy węzeł. Wpis

w tablicy jest dokonywany lub aktualizowany w przypadku otrzymania nie

zduplikowanego pakietu dołączenia Join Query. Węzeł przechowuje ID nadawcy tego

pakietu i trasę do następnego skoku (węzła który ostatnio wysłał ten pakiet). Tablica

Page 53: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

53

rutowania zapewnia informacje o następnych skokach w sieci przesyłania pakietów

odpowiedzi na Ŝądania (Join Reply).[27]

Rys. 35 Rozsyłanie pakietu Join Query.[6]

Rys. 36.Uformowana tablica multicastowa.[6]

5.1.2.4. Tablica grupy przekazującej pakiety. (ang. Forwarding Group

Table)

Kiedy węzeł naleŜy do grupy węzłów przekazujących w danej grupie

multicastowej zarządza on informacjami przechowywanymi w tablicy FGT, czyli ID

grupy multicastowej i czas kiedy nastąpiło ostatnie odświeŜenie.[27]

Page 54: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

54

5.1.2.5. Pamięć podręczna wiadomości. (ang. Message Cache)

Wykorzystywana jest przez kaŜdy z węzłów do wykrywania duplikatów

pakietów. W momencie odebrania pakietu Join Query, węzeł przechowuje jego adres

źródłowy oraz unikatowe ID pakietu.[27]

5.1.2.6. Przekazywanie danych. (ang. Data Forwarding)

Po zakończeniu procesu konstruowania tras rutingu i utworzeniu grupy

przekazywania (ang. forwarding group), nadawca moŜe wysłać pakiety multicastowe

do odbiorcy korzystając z tych danych. Dopóki są dane do wysłania, nadawca okresowo

wysyła pakiet Join Query, aby odświeŜać trasy i grupy przekazywania pakietów. Kiedy

węzeł otrzyma pakiet multicastowy z danymi, przesyła go dalej tylko jeśli nie jest on

duplikatem pakietu otrzymanego wcześniej. Ustawia równieŜ flagę FG_FLAG dla tej

grupy multicastowej. Procedura ta pozwala zredukować nadmierny ruch sieciowy,

a takŜe chroni przed wysyłaniem pakietów nieuŜywanymi, nieaktualnymi trasami.[25]

5.1.2.7. Opuszczanie grupy multicastowej. (ang. Soft State)

W protokole ODMRP, aby opuścić grupę multicastową niepotrzebne są pakiety

kontrolne, jak w na przykład w przypadku protokołu MAODV. Jeśli węzeł wysyłający

pakiety chce opuścić daną grupę po prostu zaprzestaje wysyłania pakietów Join Query.

To samo dotyczy węzłów odbierających dane, jeśli tylko zdecydują się opuścić grupę,

zaprzestają wysyłania pakietów Join Reply. Jeśli węzły naleŜące do grupy przekazującej

pakiety nie odświeŜą danych przed upływem pewnego ustalonego czasu są

degradowane do zwykłych węzłów.[27]

5.1.2.8. Przewidywalność mobilności. (ang. Mobility Prediction)

Protokół ODMRP wymaga okresowego przesyłania pakietów Join Query,

w celu znalezienia i odświeŜenia tras. JednakŜe naleŜy pamiętać o tym, Ŝe nadmierne

przesyłanie tych pakietów, moŜe powodować problemy z przepustowością, zatorami

i kolizjami w sieci. Ze strony wydajnościowej protokołu ODMRP, znalezienie

odpowiedniego interwału czasu (ang. Refresh Interval), co jaki te pakiety miałyby być

wysyłane, okazuje się więc krytyczne. W węzłach niezwykle dynamicznie

zmieniających swe połoŜenie, wyposaŜonych w system GPS (ang. Global Positioning

System) moŜna skorzystać z interwału odświeŜania dla rozsyłanych pakietów, typu Join

Query, aby ograniczyć wady wspomniane wcześniej. Dzięki wykorzystaniu informacji

o lokalizacji i przemieszczaniu, a takŜe dzięki modelowi, schematowi, pozwalającemu

przewidzieć mobilność danego węzła, moŜna znaleźć okres czasu, po jakim trasy okaŜą

Page 55: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

55

się bezuŜyteczne. A więc pakiety, mogą być przesyłane znanymi trasami, tylko

w okresie pewnego, określonego, przewidzianego czasu. Później trasy stają się

bezuŜyteczne.[27]

W protokole ODMRP istnieje jeszcze inna metoda redukująca liczbę

bezuŜytecznych tras, polegająca na róŜnej ich selekcji. (ang. different route selection).

Polega to na wykorzystaniu najbardziej stabilnych tras (które posiadają najdłuŜszy

status połączenia) zamiast, jak dotychczas, najkrótszych i najszybszych. Odbiorca

multicastowy, po otrzymaniu pakietu Join Query, musi często poczekać przez pewien

okres czasu, zanim otrzyma pełną informację na temat tras, którymi moŜe wysłać

odpowiedź. Po uzupełnieniu tych informacji wybiera trasę najbardziej stabilną i wysyła

broadcastowo pakiet Join Reply.[27]

Page 56: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

56

5.2. Protokoły proaktywne.

5.2.1. Ad hoc Multicast Routing Protocol (AMRoute).

Protokół AMRoute tworzy osobno dla kaŜdej grupy multicastowe drzewa

dystrybucyjne przy uŜyciu unicastowych tuneli łączących pojedynczych członków

grupy. Protokół ten posiada dwie kluczowe części: tworzenie siatki i tworzenie drzewa.

AMRoute tworzy siatkę dwukierunkowych tuneli pomiędzy parą, połoŜonych blisko

siebie, uczestników grupy. Tylko logiczny rdzeń moŜe zainicjować utworzenie siatki

i drzewa połączeń. NaleŜy przy tym zaznaczyć, Ŝe rdzeń moŜe dynamicznie zmieniać

swoją przynaleŜność do grup. Przy uŜyciu dostępnych połączeń w siatce (tuneli),

protokół ten, okresowo, tworzy drzewo multicastowe. [29]

5.2.1.1. Multicastowe drzewa dystrybucyjne (ang. User-multicast

distribution trees)

Rys. 37.Wirtualne drzewo multicastowe [28]

Rysunek 37 przedstawia drzewo multicastowe łączące sześciu uczestników

danej grupy. Uczestnicy grupy przekazują ruch multicastowy wzdłuŜ gałęzi virtualnego

drzewa. Pakiet, który od strony logicznej jest przesłany pomiędzy dwoma sąsiadami,

fizycznie moŜe wędrować przez wiele węzłów pośredniczących stanowiących tunel

unicastowy pomiędzy tymi sąsiadami. ŚcieŜka utworzona przez tunel moŜe się zmieniać

bez Ŝadnego wpływu na drzewo multicastowe. Innymi słowy, tunel będzie jeden i ten

sam, natomiast mogą się zmieniać węzły, które go tworzą.[29]

Istnieją dwie kluczowe zalety, które przemawiają za implementacją tego

protokołu przy uŜyciu tylko uczestników grupy:[29]

Page 57: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

57

• Dzięki zapewnieniu niezmienności ścieŜki pomiędzy wszystkimi

węzłami połączonymi za pomocą siatki gałęzi, nie trzeba dokonywać zmian w drzewie

multicastowym w przypadku zmian w sieci (np w przypadku poruszania się routerów).

Taka niezaleŜność zwiększa niezawodność działania protokołu, a takŜe zmniejsza ilość

pakietów sygnalizacyjnych, powodujących często przeciąŜenia na łączach.[29]

• Nie potrzebne są węzły nie będące uczestnikami grupy, aby moŜliwa

była replikacja danych, lub jakiekolwiek wsparcie dla jakiegokolwiek protokołu

multicastowego. [29]

Ceną, jaką płacimy korzystając z drzewa multicastowego, wspomnianego

wcześniej, jest zmniejszona wydajność. Wydajność przepustowości jest ograniczona,

odkąd węzły pośredniczące w transmisji nie mogą brać udziału w replikacji pakietów.

Opóźnienie bardzo często moŜe się ulegać zmianie. JednakŜe, róŜnica w optymalizacji

pomiędzy drzewem, korzystającym z wszystkich moŜliwych węzłów w sieci lub

z węzłów będących tylko uczestnikami grupy, jest teoretycznie bardzo ograniczona.[29]

W stabilnej sieci, korzystającej z drzewa multicastowego, w najgorszym

przypadku, przeciąŜenia na łączu są i tak co najmniej dwukrotnie mniejsze niŜ

w drzewie korzystającym z wszystkich dostępnych węzłów w sieci. [28]

5.2.1.2. Rdzenie logiczne i węzły nie będące uczestnikami grupy

multicastowej. (ang. Logical core and non-core members )

W protokole AMRoute kaŜda grupa posiada przynajmniej jeden logiczny rdzeń,

który odpowiedzialny jest za wykonanie pewnych akcji, w szczególności za dołączanie

do siatki (ang. mesh join) (wyszukiwanie nowych członków grupy, odłączanie pewnych

segmentów siatki), jak równieŜ za tworzenie drzewa multicastowego (ang. multicast

tree creation). Węzeł nie będący rdzeniem nie moŜe zainicjować tych dwóch operacji.

Ograniczając liczbę węzłów mogących realizować te funkcje uzyskujemy pewność, Ŝe

protokół AMRoute jest skalowalny, nie powodujący nadmiernej sygnalizacji

i przeciąŜeń na łączach. Dzięki takiej budowie, węzły nie będące rdzeniem mogą

odpowiadać na wiadomości sygnalizacyjne, zainicjowane przez logiczny rdzeń, lecz

same nie powodują nadmiernego ruchu w sieci, poprzez wysyłanie takich

wiadomości.[29]

W protokole AMRoute rdzeń, o którym mowa jest wcześniej, nie jest punktem

centralnym dla wszystkich danych przepływających przez sieć. Przekazywanie

Page 58: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

58

pakietów moŜe odbywać się na działających gałęziach drzewa, niezaleŜnie od statusu

dostępności rdzenia i połączeń do niego. WaŜną jego cechą jest równieŜ to, Ŝe rdzeń jest

wybierany z pośród węzłów naleŜących do danego segmentu drzewa multicastowego

przy uŜyciu algorytmu CRA, którego głównym zadaniem jest zapewnienie tylko

jednego węzła w kaŜdym segmencie drzewa, który będzie rdzeniem.[29]

Dany segment w protokole AMRoute, moŜe tymczasowo posiadać więcej niŜ

jeden rdzeń na grupę, w przypadku połączenia nowo dołączonych węzłów.

W przypadku, kiedy dany węzeł jako pierwszy dołącza do grupy, automatycznie

desygnuje on samego siebie na rdzeń. Jako logiczny rdzeń, węzeł ten moŜe szybko

wyszukać nowych członków grupy, a takŜe przeprowadzić procedurę tworzenia siatki

i drzewa ze swoimi najbliŜszymi sąsiadami. [29]

MoŜe równieŜ zaistnieć sytuacja, w której okaŜe się, Ŝe rdzeń nagle znikł

(np. opuścił grupę) lub jeden segment został podzielony na kilka (np. w skutek awarii

połączeń). W takim przypadku, jeden z węzłów, po upływie pewnego losowego czasu

od otrzymania ostatniego pakietu Tree Create, desygnuje samego siebie jako rdzeń.[29]

5.2.1.3. Tworzenie siatki. (ang. Mesh Creation)

Siatka w protokole AMRoute to graf, w którym kaŜdy węzeł jest członkiem

(nadawcą lub odbiorcą) grupy, a kaŜde połączenie jest dwukierunkowym unicastowym

tunelem (Rysunek 38). Podczas, gdy siatka odpowiedzialna jest za wszystkie połączenia

pomiędzy członkami grupy, drzewo potrzebne jest do przesyłania danych. Proces

tworzenia siatki posiada dwa kroki, które naleŜy wykonać, zanim moŜliwe będzie

stworzenie drzewa.[28]

Aby utworzyć siatkę obejmującą wszystkich członków grupy potrzebny jest

mechanizm, który pozwoli uczestnikom grupy odkrywać samych siebie. [29]

KaŜdy uczestnik grupy rozpoczyna poprzez zidentyfikowanie samego siebie

jako rdzenia, który tworzy, jak na razie, siatkę składającą się tylko z niego samego.

Rdzeń wysyła pakiet Join Request ze zwiększonym czasem TTL w celu wykrycia

innych członków danej grupy. Kiedy członek danej grupy (rdzeń lub nie) otrzyma taki

pakiet, pochodzący z innej siatki, ale z tej samej grupy, odpowie pakietem Join Ack. W

tym momencie nawiązany zostanie dwukierunkowy tunel pomiędzy rdzeniem i węzłem

odpowiadającym z innej siatki. Podczas łączenia się dwóch siatek, powstanie sytuacja,

gdzie będzie istniało kilka węzłów będących rdzeniami. W takiej sytuacji zadziała

Page 59: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

59

algorytm CRA, i wybrany zostanie, który stanie się rdzeniem dla nowo powstałej

siatki.[29]

Jeśli dany węzeł opuszcza grupę, wysyła pojedynczy pakiet Join Nak do swoich

sąsiadów. Jeśli otrzymuje on nadal dane z tej grupy wysłanie pakietu Join Nak moŜe

zostać ponowione.[29]

Rys. 38.Tworzenie siatki [30]

5.2.1.4. Tworzenie drzewa. (ang. tree creation)

Za tworzenie drzewa odpowiedzialny jest rdzeń. Funkcją drzewa jest

przekazywanie danych. [29]

Rdzeń okresowo, co jakiś czas, wysyła pakiet Tree Create na wszystkie

połączenia w siatce, którą zarządza (naleŜy zwrócić tutaj uwagę na to, Ŝe pakiet Tree

Create jest wysyłany poprzez konkretne tunele unicastowe w siatce i są przetwarzane

tylko przez uczestników grupy podczas, gdy pakiety Join Request są wysyłane

broadcastowo do wszystkich węzłów w sieci). Okresowość wysyłania tego pakietu

zaleŜy tutaj od rozmiarów siatki, a takŜe od mobilności jaką te węzły wykazują. Odkąd

węzły w sieci są mobilne, liczba skoków pomiędzy sąsiadami równieŜ wykazuje

zmienne tendencje. Członkowie grupy multicastowej, którzy otrzymują nie

zduplikowane pakiety Tree Create, przesyłają je na wszystkie swoje połączenia

w siatce, oprócz tego, z którego przyszedł pakiet. Wszystkie te linki oznaczają jako

połączenia w drzewie. Jeśli węzeł posiada pewną kolekcję sąsiadów, oddalonych nie

dalej niŜ jeden skok od siebie, to w ramach optymalizacji protokołu moŜe wysłać jeden

broadcast do wszystkich.[29]

W przypadku, gdyby się okazało, Ŝe dany link nie będzie stanowił części

drzewa, pakiet Tree Create jest odrzucany i wysyłana jest odpowiedź w postaci pakietu

Tree Create NAK. Po otrzymaniu tego pakietu, uczestnik grupy, oznacza takie

Page 60: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

60

połączenie w taki sposób, Ŝe zostanie ono dodane do struktury tworzącej siatkę,

natomiast nie będzie stanowiło jednej z gałęzi w drzewie.[29]

Rys. 39.Tworzenie drzewa[30]

5.2.1.5. Tymczasowe pętle.(ang. transient loops)

Drzewo utworzone przez n-ty pakiet Tree Create moŜe nie być takie samo jak

utworzone przez (n-1) pakiet. Sytuacja moŜe się pojawić, gdy jakieś węzły będą

wysyłać dane, odnosząc się do informacji o starym drzewie, a inne będą wysyłać dane,

odnosząc się do nowego. MoŜe to doprowadzić do powstania pętli lub do

niekontrolowanej straty danych. W związku z dość dynamiczną naturą sieci ad hoc,

takiej sytuacji moŜna spodziewać się dość często. [28]

Aby zredukować liczbę pętli korzystamy z numerów sekwencyjnych pakietów

danych. Numery te są na grupę multicastową i na wysyłającego, dzięki czemu uczestnik

grupy moŜe rozpoznać, czy nie jest do duplikat, i ewentualnie pakiet odrzucić. [28]

5.2.1.6. Awarie węzłów i opuszczanie grupy. (ang. node failures and group

leaves)

Zdarzają się sytuacje, gdzie pomimo redundantnych połączeń w siatce pomiędzy

węzłami, następują ich zerwania, a efektem tego jest uniemoŜliwienie dalszej transmisji.

Niektóre awarie powodują podzielenie siatki na kilka bezładnych, mniejszych siatek,

z pośród których, tylko jedna moŜe mieć rdzeń.[29]

KaŜdy węzeł w siatce oczekuje okresowego otrzymywania pakietu Tree Create.

Jeśli wiadomości tej nie ma przez pewien określony czas dany węzeł desygnuje siebie

na rdzeń siatki. Węzeł, którego licznik czasu wygaśnie najszybciej, zostaje nowym

rdzeniem danej grupy i rozpoczyna on proces wyszukiwania innych siatek, jak równieŜ

rozpoczyna tworzenie nowego drzewa. W takiej sytuacji moŜe się zdarzyć, Ŝe

powstanie siatka z kilkoma rdzeniami. Zadziała wtedy procedura core resolution.[29]

Page 61: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

61

Rys. 40.Podział jednej siatki na kilka [30]

5.2.1.7. Core resolution.

W przypadku połączenia kilku siatek w jedną, moŜe zaistnieć sytuacja, w której

jednocześnie działać będzie kilka rdzeni. Węzły w siatce w momencie otrzymania

pakietu Tree Create z kilku źródeł uświadamiają sobie istnienie kilku rdzeni.

Uruchamiają one algorytm core resolution, który pozwala im zdecydować o unikalności

jednego z węzłów będących rdzeniami. Przekazują one pakiet Tree Create tylko

pochodzący od unikatowego rdzenia, a odrzucają pakiety przychodzące od innych

rdzeni. Jak tylko rdzenie uświadomią sobie istnienie innych rdzeni w siatce uruchamiają

równieŜ ten sam algorytm. Wszystkie rdzenie, oprócz tego, który pozostał jako jedyny,

degraduja się do stanu zwykłych węzłów, nie będących rdzeniami. Algorytm core

resolution, który tutaj stosujemy, wybiera rdzeń z największym adresem IP.[28]

5.2.1.8. Wybieranie gałęzi siatki do drzewa. (ang. Picking which branch to

use for the Tree)

Istnieje co najmniej kilka algorytmów, pozwalających na decyzję, które gałęzie

w siatce mogą zostać wykorzystane w drzewie. Najprostszy mówi, Ŝeby węzeł

zaakceptował pierwszy pakiet Tree Create jaki otrzyma, a wszystkie inne duplikaty

odrzucił korzystając z numeru sekwencyjnego zawartego w kaŜdym pakiecie Tree

Create. Taki mechanizm pozwala na stworzenie dość umiarkowanego drzewa, ale nie

zapewniającego zbyt duŜej wydajności (np. nie będzie korzystał z najkrótszej liczby

skoków do celu).[29]

5.2.1.9. Graficzny przykład działania protokołu AMRoute.

Rysunki 41 i 42 demonstrują formowanie się drzewa w protokole AMRoute.

Węzły A i B równocześnie dołączają do grupy multicastowej, i wybierają samych siebie

jako logiczne rdzenie. Rozpoczynają transmisję pakietów Join Request

z zwiększającym się TTL. Jeśli oba z nich otrzymają pakiet pochodzący od tego

drugiego, węzeł B przy pomocy algorytmu core resolution jest relegowany do zwykłego

Page 62: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

62

uczestnika grupy. W tym momencie zawiązuje się tunel łączący węzeł A z B. Teraz do

grupy dołącza węzeł C, który wybiera siebie jako logiczny rdzeń i rozpoczyna

transmisję pakietu Join Request ze zwiększonym TTL. Odległość miedzy węzłami B i C

jest mniejsza niŜ pomiędzy A i B, a więc węzeł B otrzyma pakiet Join Request od węzła

C, zanim pakiet ten osiągnie węzeł A. Powstanie połączenie w siatce pomiędzy węzłami

B i C. Algorytm core resolution na węźle B zdecyduje, Ŝe zwycięzcą jest węzeł C,

a więc węzeł B przekaŜe pakiet Tree Create z C do A. Węzeł A równieŜ zdecyduje o

zwycięstwie węzła C i releguje sam siebie do postaci uczestnika grupy. W tym

momencie istnieją połączenia w drzewie pomiędzy węzłami C i B, a takŜe A i B.

Jakikolwiek pakiet Join Request z węzła C osiągnie węzeł A, jednakŜe od momentu,

gdy węzły A i B są w tej samej siatce, zostanie on zignorowany. Nowy uczestnik grupy

w postaci węzła D próbuje teraz dołączyć do istniejącej siatki poprzez wysłanie pakietu

Join Request. Pakiet ten w pierwszej kolejności dociera do węzła B.Algorytm core

resolution na węźle B decyduje, Ŝe C pozostanie nadal rdzeniem, a węzeł D staje się

częścią drzewa. Pakiet Join Request z węzła D moŜe równieŜ zostać odebrany przez

węzeł A, jednakŜe węzeł D powinien otrzymać pakiet Tree Create z węzła B zanim

otrzyma go od węzła A. Tak więc połączenie w siatce pomiędzy węzłami A i D nie

znajduje pokrycia w drzewie.[29]

Rys. 41.Formowanie siatki i drzewa [28] Rys. 42.Formowanie siatki i drzewa cd. [28]

Page 63: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

63

5.2.1.10. Diagram stanów.

Rys. 43.Diagram stanów [28]

PowyŜej pokazany jest diagram trzech stanów i przejść, protokołu AMRoute.

Stany te mogą zostać zinterpretowane jak następuje:[28]

• NON_MEMBER – uczestnika, który nie naleŜy do grupy multicastowej [28]

• CORE – węzeł, który aktualnie rozpoznaje samego siebie jako logiczny rdzeń

[28]

• NON_CORE – węzły, które aktualnie są uczestnikami grupy, ale nie rdzeniami

[28]

5.2.1.11. Podstawowe parametry protokołu AMRoute.

Join Request Send – po upłynięciu tego czasu generowany jest nowy TTL dla pakietu

Join Request

Tree Create Send – timeout po którym przesyłany jest pakiet Tree Create

Tree Create Recv – uŜywany przez węzły nie będące rdzeniami. Po jego upłynięciu

węzeł czeka przez losowo wygenerowany licznik czasu, a następnie desygnuje samego

siebie jako logiczny rdzeń [28]

Page 64: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

64

5.2.2. Core-Assisted Mesh Protocol (Camp).

Protokół CAMP został zaprojektowany, aby wspierać multicastowy ruting

w bardzo dynamicznych sieciach ad hoc z broadcastowymi połączeniami. NaleŜy on do

grupy proaktywnych, a więc okresowo odświeŜających trasy, po których przesyłane są

pakiety.[21]

Protokół CAMP róŜni się od większości protokołów multicastowych tym, Ŝe

multicastowa siatka jest budowana i utrzymywana dla rozprowadzania informacji

w kaŜdej grupie multicastowej. Siatka multicastowa jest pewną częścią topologii sieci,

w której dla danego nadawcy istnieje przynajmniej jedna ścieŜka do kaŜdego odbiorcy

w grupie multicastowej. Protokół CAMP zapewnia najkrótsze ścieŜki od odbiorcy do

nadawcy, nazywane odwrotnymi ścieŜkami, są częścią siatki danej grupy. Pakiety są

przekazywane wzdłuŜ wcześniej znalezionych ścieŜek przez siatkę. Węzeł utrzymuje

informacje o identyfikatorach pakietów, które uprzednio przekazał w swojej pamięci

podręcznej, a takŜe przekazuje pakiety multicastowe otrzymane od sąsiadów, jeśli nie

posiada o nich informacji w swojej pamięci podręcznej. Podstawową róŜnicą pomiędzy

strukturą siatki i drzewa, jak wiadomo, jest podejście do akceptowania pakietów, które

mają zostać przetworzone. Węzły zobligowane są do przyjmowania pakietów

pochodzących od jakiegokolwiek sąsiada w siatce, przeciwnie jak to miało miejsce

w drzewach.[21]

PoniewaŜ węzeł będący uczestnikiem grupy multicastowej posiada redundantne

ścieŜki do wszystkich innych węzłów w tej samej siatce, jest mniej prawdopodobne, Ŝe

zmiany w topologii zakłócą przepływ multicastowych danych i Ŝe wymagana będzie

rekonstrukcja struktury rutingu, która wspiera przekazywanie pakietów. Rysunek 44

ilustruje róŜnice pomiędzy multicastową siatką, a multikastowym drzewem

współdzielonym. Węzły, które są uczestnikami grupy multicastowej zaznaczone są na

kolor czarny. Multicastowe siatka i drzewo pokazane poniŜej zawierają węzły, które

mają odbiorców, hosty, które są nadawcami i odbiorcami, oraz węzły będące tylko

przekaźnikami (ang. relay).[21]

Page 65: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

65

Rys. 44.Przepływ pakietów z rutera h w siatce multicastowej (z lewej) i w drzewie

współdzielonym (z prawej) [21]

PowyŜszy rysunek ilustruje przekazywanie pakietów z węzła h do pozostałej

części siatki w protokole CAMP i w drzewie współdzielonym. Na rysunku tym, całe

strzałki charakteryzują przepływ ruchu wzdłuŜ odwrotnej najkrótszej ścieŜki

w protokole CAMP i wzdłuŜ drzewa współdzielonego. Strzałki przerywane

charakteryzują niepotrzebnie generowany ruch, w skutek rozsyłania pakietów

broadcastowych. Jak moŜna zauwaŜyć, protokół CAMP korzysta z duŜo krótszych

ścieŜek niŜ drzewo współdzielone, a ma to ogromne znaczenie w sieciach ad hoc, gdyŜ

węzły korzystają z mniejszej ilości stacji do przekazania pakietów. Co więcej, moŜna

zauwaŜyć, Ŝe liczba stacji, które otrzymają pakiety wysłane przez węzeł h, jest taka

sama bez względu czy skorzystamy z multicastowej siatki, czy z drzewa

współdzielonego, to pozwala stwierdzić fakt, Ŝe uŜycie multicastowych drzew zamiast

multicastowej siatki nie koniecznie zmniejszy ilość wysyłanych pakietów kontrolnych

związanych z połączeniami broadcastowymi.[21]

Protokół CAMP dziedziczy metodę inicjowania odbiorcy (ang. receiver-

initiated) przedstawioną w protokole CBT, która odpowiedzialna jest za tworzenie

drzew multicastowych umoŜliwiających utworzenie multicastowych siatek. Rdzenie są

uŜywane do ograniczenia ruchu kontrolnego, potrzebnego odbiorcom do dołączenia do

grupy multicastowej. W porównaniu do CBT, dla kaŜdej siatki moŜe być

zdefiniowanych jeden lub wiele rdzeni. Rdzenie muszą być częścią siatki swoich grup,

natomiast węzły mogą dołączać do grupy nawet, jeśli wszystkie powiązane z daną

Page 66: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

66

grupą rdzenie są nieosiągalne. Jeśli Ŝaden z sąsiadów węzła nie jest uczestnikiem danej

grupy multicastowej wysyła on Ŝądanie dołączenia do rdzenia, w przeciwnym

przypadku, po prostu ogłasza swoje członkostwo korzystając z mechanizmu

aktualizacji. Jeśli rdzeń jest nieosiągalny dla węzła, który potrzebuje dołączyć do grupy,

wysyła on broadcastowo swoje Ŝądanie dołączenia uŜywając do tego mechanizmu ERS,

który pozwola osiągnąć ewentualnych uczestników poszukiwanej grupy. Przy

otrzymaniu jednej, bądź większej ilości, odpowiedzi, węzeł chcący dołączyć do grupy

multicastowej wybiera jedną z nich w celu utworzenia ścieŜki do siatki.[21]

Protokół CAMP zapewnia równieŜ odmienną metodę dołączenia do siatki, dla

węzłów połączonych tylko z nadawcami. Jest to tak zwane Ŝądanie dołączenia w trybie

simplex. Tego typu pakiet, podobnie jak normalne Ŝądanie dołączenia, podróŜuje do

jednego z dostępnych rdzeni w siatce, jak równieŜ dostaje odpowiedź. RóŜnica polega

na tym, Ŝe pakiety powinny podróŜować tylko w jednym kierunku, to znaczy od hosta

będącego tylko nadawcą pakietów do siatki. Jest to próba zawarcia pakietów danych

w okolicach występowania odbiorców w siatce. Węzeł moŜe opuścić grupę

multicastową, kiedy nie ma Ŝadnych połączeń z innymi węzłami, zaleŜnymi od niego.

Czyni to poprzez prostą zmianę statusu członkostwa w grupie i rozsyłanie tej informacji

do swoich sąsiadów.[21]

Rys. 45. Przepływ pakietów z węzła nie będącego uczestnikiem grupy w CAMP.[21]

Page 67: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

67

CAMP uŜywa schematu bazującego na transmisji pakietów typu heartbeat

w celu zapewnienia w siatce wszystkich najkrótszych odwrotnych ścieŜek. KaŜdy

uczestnik siatki, tymczasowo przechowuje informacje o źródłach ruchu sieciowego,

których pakiety przechodziły przez uczestników grupy innych niŜ poprzez wyznaczoną

najkrótszą odwrotną ścieŜkę do źródła. Jeśli powstaje taka sytuacja, pakiet heartbeat jest

wysyłany do sukcesora w najkrótszej odwrotnej ścieŜce do źródła, znalezionej

w unicastowej tablicy rutowania. Pakiet heartbeat powoduje wysłanie wiadomości push

join, jeśli sukcesor ten nie jest uczestnikiem danej siatki. Wiadomość ta powoduje

dołączenie do siatki wspomnianego wcześniej sukcesora, a takŜe wszystkich ścieŜek do

źródła wysłania pakietu.[21]

Mapowanie multicastowych adresów do (jednego lub więcej) adresów rdzeni

jest rozpowszechniane od kaŜdego rdzenia do sieci jako część rozsyłanych raportów

członkostwa grupy.[21]

Page 68: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

68

5.3. Protokoły inteligentne – Multicast for Ad hoc Network with

Swarm Intelligence(MANSI) – Ant-based.

Protokół multicastowy przedstawiony w tym podrozdziale oparty jest

o tzw. zbiór inteligencji (ang. swarm intelligence). Technika ta polega na odniesieniu

się do pewnych kompleksowych zachowań, które pochodzą z bardzo prostych,

indywidualnych zachowań i reakcji, bardzo często obserwowanych w naturze,

w szczególności wśród insektów, takich jak mrówki czy pszczoły. ChociaŜ kaŜdy

indywidualny obiekt (w tym wypadku, dla odniesienia niech będzie to jedna pojedyncza

mrówka) posiada jakąś małą inteligencję i umie postępować zgodnie z pewnym

podstawowymi regułami, korzystając z informacji uzyskanych z otoczenia, to pewne

globalne osiągnięcia moŜna zauwaŜyć dopiero wtedy, kiedy pracują w grupie. Podobnie

w tym protokole, małe pakiety kontrolne moŜna odnieść do mrówek w prawdziwym

świecie. Te pakiety, podróŜując po sieci jak mrówki, pozostawiają pewne informacje

w węzłach, które odwiedzają, podobnie jak mrówki wyznaczają ścieŜki, którymi się

przemieszczają. Te pozostawione informacje, wywierają wpływ na inne pakiet

(mrówki). Z taką formą pośredniej komunikacji (znanej jako ang. stigmergy),

rozmieszczenie pakietów (mrówek) przypomina system, który jest w stanie sam

ewoluować w celu uzyskania bardziej optymalnego stanu, zaleŜnego od środowiska,

które go otacza. [23]

Dla kaŜdej grupy multicastowej, protokół MANSI określa grupę węzłów

pośrednich, nazywanych grupą pośredniczącą (ang. forwarding set), łączących

wszystkich członków grupy razem i udostępnianych nadawcom. Grupa pośrednicząca

jest inicjowana przez węzły leŜące na najkrótszej ścieŜce pomiędzy rdzeniem i innymi

członkami grupy, gdzie rdzeń moŜe być zarówno uczestnikiem grupy, jak i nadawcą

danych. Co więcej, podczas okresu Ŝycia sesji multicastowej (dopóki istnieje choćby

jeden aktywny nadawca), grupa pośrednicząca cały czas będzie ewoluować. [23]

MANSI jest multicastowym reaktywnym protokołem, tworzącym połączenia

pomiędzy członkami grupy multicastowej poprzez ustalenie węzłów pośredniczących,

które będą przekazywać dane. Takie przekazywanie nazywa się grupą pośredniczącą

(ang. forwarding set) i jest współdzielone przez wszystkich nadawców w grupie.

Protokół ten wykorzystuje technikę opartą na rdzeniu, gdzie kaŜdy uczestnik dołączając

do grupy poprzez rdzeń w celu nawiązania połączenia z innymi uczestnikami grupy.

MANSI w ogóle nie korzysta z komunikacji unicastowej. [23] Co więcej, rdzeń kaŜdej

Page 69: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

69

grupy nie jest przypisany statycznie do jakiegoś szczególnego węzła w sieci i nie jest on

znany z wyprzedzeniem przez uczestników danej grupy. W protokole tym, pierwszy

uczestnik grupy, który staje się aktywnym źródłem pakietów (wysyła dane do grupy)

obejmuje rolę rdzenia i rozgłasza swoją egzystencję wysyłając komunikat do innych

w postaci pakietu Core Announce. KaŜdy członek grupy polegając na tym komunikacie

stara się zainicjować komunikację wysyłając pakiet Join Request z powrotem do

rdzenia wykorzystując do tego odwrotną ścieŜkę (ang. reverse path). Węzły, które

otrzymają pakiet Join Request zaadresowany do nich samych stają się węzłami

pośredniczącymi grupy multicastowej i odpowiedzialne są za akceptowanie

i rebroadcasting nie zduplikowanych pakietów z danymi, bez względu na to skąd te

pakiety pochodzą. Rdzeń rozsyła pakiet Core Announce okresowo tak długo, jak długo

posiada dane do wysłania. Pozwala to na utrzymywanie istniejących połączeń, a takŜe

na dołączanie nowych członków do grupy. W rezultacie, węzły pośredniczące

w transmisji formują siatkę, która łączy wszystkich uczestników grupy multicastowej

razem, podczas, gdy rdzeń słuŜy jako punkt centralny dla tworzenia i utrzymania grup

pośredniczących. Odkąd proces ten jest wywoływany tylko, gdy istnieje aktywne źródło

generujące dane do grupy, nie jest marnowana bardzo cenna przepustowość sieci na

niepotrzebne utrzymanie stałych połączeń.[23]

Podobnie jak w innych protokołach opartych o rdzeń, proces ten tworzy grupę

przekazującą pakiety, składającą się z wszystkich węzłów pośredniczących, będących

na ścieŜce, na której pakiety Core Announce są akceptowane i rozsyłane od rdzenia do

innych członków grupy. ŚcieŜki te najczęściej są najkrótsze, jak pokazano na rysunku

46 (a). JednakŜe, łączność w grupie moŜe być jeszcze bardziej wydajna, jeśli węzeł A

wybierze inną ścieŜkę, z której częściowo korzysta węzeł B, w celu zredukowania

rozmiaru grupy przekazywania (rysunek 46 (b)), a co za tym idzie do zmniejszenia

kosztu przesyłania danych. [23]

Page 70: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

70

Rys. 46. Multicastowe połączenie pomiędzy trzema uczestnikami grupy, a) grupa

przekazywania składająca się najkrótszych ścieŜek utworzonych przez 6 węzłów, b)

grupa przekazująca, w której węzeł A korzysta częściowo ze ścieŜki węzła B [23]

Swarm intelligence pozwala węzłom na uczenie się lepszych połączeń

multicastowych, które pozwalają uzyskać mniejsze koszty przekazywania pakietów.

KaŜdy uczestnik grupy, który nie jest rdzeniem okresowo rozsyła mały pakiet, zwany

Forward Ant, który przy nadarzających się okazjach, odkrywa róŜne, jak równieŜ lepsze

ścieŜki prowadzące w kierunku rdzenia. Proces ten pokazany jest na rysunku 47.[23]

Rys. 47. Przykład działania Forward i Backward Ant (1) Forward Ant wybiera węzeł C

jako skok do węzła D (2) Forward Ant przekształca się w Backward Ant i powraca

odwrotną ścieŜką do węzła A [23]

Jeśli pakiet Forward Ant przybędzie do węzła, który aktualnie jest węzłem

przekazującym pakiety do grupy multicastowej (węzeł D), włącza siebie jako Backward

Ant i wysyła pakiet z powrotem do twórcy poprzez odwrotną ścieŜkę (ang. reverse

path). Kiedy Backward Ant przybywa do kaŜdego węzła pośredniczącego, szacuje

koszt węzła, który aktualnie jest dołączany do grupy poprzez węzły pośredniczące,

które wcześniej znalazł. Obliczony koszt, jak równieŜ ilość feromonów które są

Page 71: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

71

proporcjonalne do kosztu, są aktualizowane w lokalnej strukturze danych danego węzła.

Feromony te są później uŜywane przez późniejsze pakiety Forward Ants w celu

podjęcia decyzji o dalszej ich podróŜy, podobnie jak to ma miejsce w naturze.

RozwaŜmy przykład z Rysunku 47, kiedy pakiet Backward Ant opuszcza węzeł D

i dociera do węzła C. Koszt dołączenia węzła C przez węzeł D wynosi zero odkąd węzeł

D jest węzłem pośredniczącym i jest bezpośrednio połączony z węzłem C. Kiedy ant

wraca do węzła A, koszt dołączenia węzła A do grupy przez węzeł D jest taki sam jak

w przypadku węzła C, poniewaŜ wymagane jest, aby węzeł C stał się pośredniczącym,

aby węzeł A mógł dołączyć do grupy poprzez węzeł D. Jeśli węzeł A zauwaŜy, Ŝe ilość

feromonów na połączeniu z węzłem C staje się największa w porównaniu do linków

z sąsiednimi węzłami, przejdzie na połączenie z grupą poprzez węzeł C wysyłając

pakiet Join Request do niego. Konsekwencją tego, Ŝe C stanie się węzłem

pośredniczącym, będzie usunięcie węzłów E,F i G z grupy pośredniczącej, i połączenie

będzie podobne jak na rysunku 46(b).[23]

Aby zapobiec sytuacji, w której dwóch członków grupy będzie próbować

ustanowić połączenie w grupie poprzez swoje własne ścieŜki pośredniczące, kaŜdy

węzeł pośredniczący jest powiązany z pewną wysokością, która jest adekwatna do

największego ID węzła, który uŜywa go do połączenia z rdzeniem. Rdzeń posiada

swoją wysokość ustawioną na wartość nieskończoną. Rysunek 48 ilustruje przykład jak

wysokości są przypisane do węzłów pośredniczących. Forward Ant musi się zatrzymać

i przekształcić w Backward Ant tylko w przypadku, kiedy napotka węzeł

pośredniczący, którego wysokość jest większa od ID członka grupy, który jest źródłem

pochodzenia anta. Oznacza to, Ŝe uczestnik grupy posiada uprawnienia do połączenia

z rdzeniem poprzez istniejące ścieŜki naleŜące do innego uczestnika z większym ID, ale

nie na odwrót.[23]

Rys. 48. Przykład przypisania wysokości do węzłów pośredniczących, uŜywanych przez

węzły z ID 3,6 i 8.[23]

Page 72: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

72

Podsumowując, stosując kilka prostych reguł, większość Forward Ant

pochodzących od uczestników grupy wybierze ścieŜkę, łączącą istniejący węzeł

pośredniczący z małym kosztem tej ścieŜki. Węzły na tej ścieŜce są później uŜywane do

przekazywania pakietów multicastowych mniejszym kosztem. Ten mechanizm

odkrywania i uczenia się pozwala protokołowi MANSI na odkrywanie lepszych grup

pośredniczących w kaŜdej grupie multicastowej, zaleŜnych od wyliczenia kosztów

węzła, jak równieŜ odróŜnia ten protokół od innych istniejących protokołów rutowania

multicastowego w sieciach ad hoc.[23]

5.3.1.1. Lokalne struktury danych. (ang. Local data structures)

KaŜdy węzeł w sieci z unikatowym ID - „i” utrzymuje listę swoich sąsiadów,

„ntab(i)”, uzyskanych poprzez protokół odkrywania sąsiadów (ang. neighbor discovery

protocol) np. poprzez okresowe wysyłanie pakietów hello. Koszt węzła połączony

z „i” jest reprezentowany przez cost(i), gdzie cost(i)>=0, który powinien być

odpowiednio zdefiniowany. Dla kaŜdej grupy multicastowej „g” MANSI utrzymuje

poniŜej opisaną strukturę danych na kaŜdym węźle „i”.[23]

• Join Table – utrzymuje listę węzłów, które proszą o przyłączenie do grupy

multicastowej poprzez węzeł, dla którego ta tablica jest utrzymywana. Tablica

dla węzła „i” dla grupy „g” oznaczana jest przez joing(i) Jest ona aktualizowana

kiedy węzeł „i” słyszy pakiety Join Request do siebie. KaŜdy wpis w joing(i) ma

formułę <r,hr>, gdzie r oznacza ID węzła proszącego o dołączenia, a hr jest jego

wysokością. Tablica ta jest po zainicjowaniu pusta dla kaŜdego węzła. Węzeł „i”

jest węzłem pośredniczącym w grupie „g” tak długo, jak joing(i)/=0. Kiedy

sąsiad „j” jest usuwany z ntab(i) w skutek awarii łącza, węzeł „i” usunie

wszystkie wpisy odnoszące się do niego z tablicy Join Table.[23]

• ID rdzenia (ang. Core ID) – oznaczany przez coreg(i) aby wskazać aktualny

rdzeń w grupie „g”, po zainicjowaniu ma wartość INVALID ADDRESS.[23]

• Numer sekwencyjny rdzenia (ang. Core sequence number) – przetrzymuje

drogę ostatniego Core Announce sequence number, oznaczany jako seqNog(i)

i inicjowany wartością zerową.[23]

• Wysokość (ang. height) – reprezentuje wysokość węzła „i”, jeśli jest on

aktualnie członkiem grupy, lub węzłem pośredniczącym grupy „g”. Wysokość

węzła „i” jest największą wartością ID, włączając węzeł „i” równieŜ, jeśli jest on

uczestnikiem grupy.[23]

Page 73: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

73

• Tablica feromonów (ang. Pheromone table) – mapuje sąsiednie węzły

i wysokości na intensywność feromonów. Intensywność feromonów moŜna

skojarzyć z wysokością „h” połączenia (i,j) widzianą przez węzeł „i” dla grupy

multicastowej „g”.[23]

• Tablica najlepszych kosztów (ang. Best cost table) - trzyma informacje o tym

jak blisko węzeł „i” znajduje się od węzłów pośredniczących z pewnymi

wysokościami, w kategoriach kosztów ścieŜki. Informacje o najlepszej ścieŜce

są uŜywane do ustalenia czy pakiet Backward Ant wrócił z dobrej ścieŜki, czy

ze złej.[23]

5.3.1.2. Inicjalizacja grup pośredniczących. (ang. Forwarding Set

Initialization)

Protokół MANSI jest reaktywny, a więc nie wysyła Ŝadnych pakietów

kontrolnych (oprócz hello) jeśli nie ma Ŝadnych aktywnych nadawców multicastowego

ruchu. Kiedy uczestnik „c” grupy „g” posiada dane do wysłania i widzi, Ŝe nie istnieje

jeszcze rdzeń dla tej grupy „g”, ustawia coreg(c) na jego własne ID i rozsyła pakiet Core

Announce po całej sieci, aby ogłosić siebie nowym rdzeniem. Pakiet Core Announce

składa się z ID węzła „c”, ID grupy multicastowej „g”, numeru sekwencyjnego,

i kosztu, który na początku wynosi zero (rysunek 50). KaŜdy węzeł „i”, dopóki nie

otrzyma pakietu Core Announce, odrzuca wiadomość, jeśli ogłoszenie napływa z tego

samego węzła z tym samym numerem sekwencyjnym. Jeśli zdarzy się, Ŝe kilka węzłów

w tym samym momencie chce zostać rdzeniem oczywistym jest, Ŝe zduplikowane

pakiety Core Announce nie będą przetwarzane i pakiety tylko od jednego węzła są

dopuszczany. [23]

Procedura Core Announce jest realizowana przez pewien algorytm, który nie

będzie tutaj omówiony. Istnieje równieŜ procedura UpdatePheromoneAndCost, która

realizuje aktualizację kosztów i feromonów.[23]

Dla kaŜdego węzła „i” wartość ID węzła coreg(i) jest resetowana do postaci

INVALID ADDRESS jeśli nie pojawiły się Ŝadne pakiety Core Announce w pewnym

okresie czasu, ustalonym przez wartość ANNOUNCE INTERVAL. Węzeł będący

rdzeniem „c” równieŜ w czasie ANNOUNCE INTERVAL powinien wysłać wiadomość

dla grupy „g”.[23]

Page 74: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

74

Tak długo, jak dany uczestnik grupy multicastowej lub węzeł pośredniczący

dostaje pakiety Core Announce od rdzenia, okresowo rozsyłane są broadcastowo

pakiety Join Request do sąsiadów danego węzła.[23]

Rysunek 49 przedstawia inicjalizację grupy pośredniczącej.[23]

Jeśli węzeł „i” jest uczestnikiem grupy lub węzłem pośredniczącym la więcej niŜ

jednej grupy, moŜe wkomponować więcej niŜ jeden wpis dołączenia do grupy

w jednym pakiecie Join Request (rysunek 51). Kiedy węzeł „j” otrzyma pakiet Join

Request od węzła „i” i zobaczy swoje ID w pakiecie, to węzeł taki powinien

przekształcić się w węzeł pośredniczący w grupie „g”. Dodaje wtedy ID nadawcy

pakietu i jego wysokość w swojej tablicy Join Table. Rozsyła później broadcastowo

swój pakiet Join Request z zawartą informacją o następnym skoku. Prośby o dołączenia

będą przesłane do rdzenia danej grupy. Jeśli jednak do węzła „j” dotrze z powrotem

pakiet Join Request od węzła „i”, ale bez jego ID, lub jeśli do węzła „j” w ogóle nie

dotrą pakiety Join Request przez pewien okres czasu, to wpis z tablicy Join Table

odnoszący się do węzła „j” zostaje usunięty. KaŜdy węzeł „i” będzie węzłem

przekazującym, dopóki jest tablica Join Table jest nie pusta.[23]

Page 75: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

75

Rys. 49. Przykład działania MANSI (a)powstanie sieci z 3 uczestnikami grupy: 1,47,50,

gdzie 1 to rdzeń, (b)rozpowszechnienie pakietu Core Announce, (c) zainicjowanie

komunikacji multicastowej w oparciu o reverse paths do rdzenia, w wyniku grupa

pośrednicząca (hosty szare), (d)grupa pośrednicząca z 4 węzłów wyuczonych przez

ants. [23]

Rys. 50. Format pakietu Core Announce.[23]

Rys. 51. Format pakietu Join Request.[23]

Page 76: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

76

5.3.1.3. Ewolucja grupy pośredniczącej. (ang. Forwarding Set Evolution)

Jeśli grupa pośrednicząca została juŜ stworzona, kaŜdy uczestnik grupy

multicastowej, który nie jest rdzeniem, próbuje znaleźć lepsze połączenie do rdzenia,

w celu zminimalizowania ogólnego kosztu grupy pośredniczącej, poprzez wysyłanie

Forward Ant co określony czas zwany ANT INTERVAL. Pakiet Forward Ant, którego

format moŜemy zobaczyć na rysunku 52 posiada następujące pola:[23]

Rys. 52.Format pakietów Forward Ant i Backward Ant.[23]

• grupa: ID danej grupy multicastowej [23]

• wysokość: wysokość węzła pośredniczącego znalezionego przez danego Anta.

Pole to jest uŜywane tylko, gdy ten Ant został przekształcony w Backward

Ant.[23]

• f: flaga pośrednicząca, która odróŜnia pakiety Forward Ant od Backward

Ant.[23]

• d: deterministyczna flaga, która wskazuje, Ŝe dany ant powinien zawsze podąŜać

po najlepszej znanej ścieŜce, bazując na kosztach zawartych w tablicy

najlepszych kosztów. Powodem, dla którego stosuje się tą flagę, jest mobilność

i dynamiczność węzłów, a co za tym idzie ich kosztów. Dlatego teŜ, wpisy

zawarte w tablicy najlepszych kosztów mogą być nie aktualne, jeśli węzły

wykazują duŜą mobilność.[23]

• cost: ogólny koszt wszystkich węzłów, które dany Ant odwiedził.[23]

• costLimit: limit kosztu jaki moŜe osiągnąć dany Ant na ścieŜce po opuszczeniu

swojego źródła.[23]

• visitedNodes: grupa węzłów odwiedzona przez danego Anta.[23]

Węzeł rozmieszczający pakiety Forward Ant wywołuje proceduę

ReleaseForwardAnt, w celu znalezienia następnego skoku, do którego powędruje Ant.

Jeśli zostanie juŜ wybrany następny skok, jego ID jest dodawane na końcu pola

visitedNodes w pakiecie Anta i jest on rozsyłany broadcastowo.[23]

Kiedy węzeł „j” otrzyma pakiet Forward Ant, w pierwszej kolejności sprawdza

czy ID tego pakietu jest zgodne z ID umieszczonym na końcu pola visitedNodes. Jeśli

nie pakiet jest odrzucany. Jeśli ID są zgodne, to węzeł „j” wie, Ŝe Ant ten jest

zamierzony i akceptuje go. Później węzeł „j” sprawdza, czy nie jest on węzłem

pośredniczącym dla grupy i czy jego wysokość nie jest większa od ID nadawcy Anta.

Page 77: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

77

Jeśli tak, węzeł „j” uświadamia sobie, Ŝe członek grupy, który wysłał do niego Anta

moŜe dołączyć do grupy multicastowej przez niego samego, czyli przez węzeł „j”. Ant

jest wtedy przekształcany w Backward Ant poprzez zresetowanie flagi „f”. Jego koszt

jest zerowany, aby wyliczyć całkowity koszt drogi powrotnej, a pole height (wysokości)

jest ustawione na wartość wysokości węzła „j”. Usuwany jest równieŜ ostatni wpis

z pola visitedNodes.[23]

Jeśli warunki, które pozwalają przekształcić Anta w Backward Ant nie są

satysfakcjonujące, węzeł „j” zwiększa o swoją wartość koszt zawarty w polu „cost”.

Wywoływana jest procedura ReleaseForwardAnt.[23]

Kiedy węzeł „k” otrzyma pakiet Backward Ant od węzła „j”, uruchamia

procedurę UpdatePheromoneAndCost, które zaktualizują wpisy w tablicy feromonów

i tablicy najlepszych kosztów odnosząc się do węzła „j” i pola wysokości. Jeśli Ant jest

deterministyczny, koszt zawarty w pakiecie jest aktualnym kosztem ścieŜki uŜywanym

przez nadawcę Anta, w celu dołączenia do grupy multicastowej. Wtedy teŜ, wartość

najlepszego kosztu jest aktualizowana do wysokości zawartej w polu height. Jeśli Ant

nie jest deterministyczny, najlepszy koszt jest aktualizowany tylko w przypadku, kiedy

wartość pola height jest większa od zwróconego kosztu, a oznacza to, Ŝe Ant znalazł

lepszą ścieŜkę do grupy multicastowej. Intensywność feromonów na tym połączeniu

jest równieŜ aktualizowana do maksymalnie osiągniętej wartości.[23]

Po zaktualizowaniu tablicy feromonów i tablicy najlepszych kosztów, węzeł „k”

sprawdza ostatni wpis w polu visitedNodes pakietu Backward Ant. Jeśli jego własne ID

jest równe wartości tego wpisu, to dodaje swój koszt do pola cost i usuwa ostatni wpis

z pola visitedNodes, a następnie, broadcastowo, rozsyła ten pakiet. [23]

5.3.1.4. Multicastowe przekazywanie danych. (ang. Multicast Data

Forwarding)

Jak wiadomo, protokół MANSI jest protokołem siatko strukturalnym, co

oznacza, Ŝe węzły pośredniczące i członkowie danej grupy, mogą przyjmować pakiety

od dowolnych węzłów. KaŜdemu pakietowi przypisany jest unikalny numer

sekwencyjny. Numery te są sprawdzane przez kaŜdy węzeł pośredniczący i członków

grupy w celu upewnienia się, Ŝe nie ma jego duplikatów. Kiedy węzeł „i” otrzyma nie

zduplikowany pakiet danych, sprawdza, czy nie jest on węzłem pośredniczącym dla

danej grupy. Jeśli tak ponownie rozsyła broadcastowo ten pakiet. Jeśli nie jest on

odrzucany. [23]

Page 78: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

78

5.3.1.5. Mobilność. (ang. Handling Mobility)

W protokole MANSI mobilność jest uznawana za pewien naturalny,

nierozłączny element sieci i zmiany w jej topologii nie wywołują trudności

uniemoŜliwiających komunikację. Wszelkie zerwania połączeń są korygowane

w sposób płynny i elastyczny. Dzięki pakietom Backward Ant i Forward Ant, kaŜda

ścieŜka budowana jest w oparciu o grupy pośredniczące, które są wymuszane tak długo,

jak długo optymalna ścieŜka jest nieaktywna. NaleŜy jednak pamiętać o tym, Ŝe sieci

dynamiczne mogą powodować, Ŝe optymalna komunikacja od czasu do czasu ulega

zmianom, nawet jeśli dotychczasowa łączność nie ulega zmianom. Protokół MANSI

wykorzystując zróŜnicowanie rozsyłanych pakietów Forward Ant, przy odkrywaniu

nowych ścieŜek, moŜe w sposób wydajny reagować na wszelkie zmiany w topologii

sieci poprzez rozwijanie konfiguracji multicastowych grup pośredniczących. [23]

Kiedy połączenie, które jest aktualnie wykorzystywane do wysłania pakietu Join

Request przez jednego z członków grupy lub przez węzeł pośredniczący w transmisji

ulegnie awarii, wpis w tablicy feromonów jest równieŜ usuwany. W następstwie tego,

wszystkie pakiety Forward Ant będą odsyłane na inne ścieŜki, a większość z nich

zostanie wysłanych na następny skok, który miał drugą co do największych wartości

przed awarią, w tablicy feromonów. Jeśli następny skok prowadzi do węzła

pośredniczącego z większą wysokością, pakiet Backward Ant powróci i zostanie

zaktualizowany feromon na nowej ścieŜce. Jeśli jednak pakiet Forward Ant nie znajdzie

nowej ścieŜki po wystąpieniu awarii, to rozesłany zostanie pakiet Core Announce, który

przywróci łączność.[23]

W protokole MANSI zastosowany został mechanizm adaptacji mobilności (ang.

mobility-adaptative mechanizm), który powoduje, Ŝe przekazywanie pakietów podczas

poruszania się węzłów, jest wyjątkowo efektywne. [23]

Na rysunku 53 (a) mamy utworzoną grupę pośredniczącą, stworzoną przez

protokół MANSI bez mechanizmu adaptacji mobilności, dla grupy multicastowej

złoŜonej z trzech jej uczestników, z pośród pięćdziesięciu, gdzie kaŜdy węzeł porusza

się z prędkością 10 m/s. Jak widać na rysunku połączenie tych węzłów stanowi prawie

linię prostą i jest bardzo wraŜliwe na wszelkie awarie. Na rysunku 53(b) został

włączony mechanizm adaptacji mobilności. MoŜna zaobserwować, Ŝe grupę

pośredniczącą, oprócz uczestników grupy i węzłów pośredniczących, stanowią równieŜ

ich sąsiedzi, dzięki czemu łączność staje się bardziej stabilna. [23]

Page 79: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

79

Rys. 53.Sieć ilustrująca działanie mechanizmu adaptacji mobilności, (a) bez

mechanizmu, (b) z włączonym mechanizmem. [23]

Tabela 3 Podstawowe parametry protokołu MANSI

Page 80: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

80

6. Symulacje.

6.1. Informacje wstępne.

Do wykonania symulacji, zaprezentowanych w tej pracy, został wykorzystany

program o nazwie QualNet (wersja 4.0)[41]. Symulacje zostały wykonane na

komputerze wyposaŜonym w system Windows XP i bibliotekę JDK ver. 1.6.0_03.

Przeprowadzenie kaŜdej z tych symulacji związane jest z odpowiednim

skonfigurowaniem symulatora, czyli z ustawieniem wszystkich wartości, potrzebnych

do wykonania badania sieci. Dokonać tego moŜna na dwa sposoby: pierwszy poprzez

ręczną edycję plików konfiguracyjnych, drugi poprzez interfejs graficzny.

NajwaŜniejszym plikiem konfiguracyjnym jest plik z rozszerzeniem config. W nim

zawarte są wszystkie, potrzebne do zasymulowania sieci, ustawienia, jak równieŜ

poprzez jego uruchomienie wywołujemy symulację.

Rys. 54. Wymagania systemowe.

PoniŜej została umieszczona tabela z wartościami, z jakmi, w zaleŜności od

mierzonego kryterium, będzie moŜna się spotkać w programie.

Page 81: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

81

Przepustowość 2 Mbps

Maksymalny czas symulacji 500 s

Liczba węzłów 50

Czas przestoju 0 s

Szybkość przemieszczania się węzłów 1m/s-20m/s

Rozmiar planszy 1000x1000m

Rodzaj ruchu sieciowego MCBR

Tempo wysyłania pakietów 5 pakietów/s

Rozmiar pakietu 512 B

Liczba pakietów do wysłania 1000

Maksymalny czas wysyłania pakietów 250 sekund

Ilość grup multicastowych 1

Tabela 4 Podstawowe parametry symulacji.

6.2. Kryteria symulacji.

PoniŜej wymienione kryteria zostały wykorzystane w celu zbadania wydajności

protokołu ODMRP. Jako podstawa do ustalenia metryk, wg których będzie mierzony

protokół, uŜyty został dokument wydany przez organizację IETF MANET.[42]

Współczynnik Dostarczenia Pakietu. (ang. Packet Delivery Ratio)

Jest to współczynnik liczby pakietów doręczonych do odbiorców przez liczbę

pakietów jakie powinny dotrzeć do celu. Parametr ten pozwala określić efektywność

danego protokołu pod względem doręczania pakietów do celu. Liczbę pakietów jakie

powinny dotrzeć do celu tak naprawdę stanowi liczba pakietów wysłanych przez

nadawców multicastowych.[25]

Współczynnik wysłanych pakietów, podzielony przez liczbę pakietów

dostarczonych do celu. (ang. Packet Transmmision Ratio)

Liczbę wysłanych pakietów stanowi licznik danych wysłanych

z kaŜdego węzła, w tym uwzględnia pakiety, które zostały odrzucone lub które były

retransmitowane przez węzły przekazujące. NaleŜy tutaj zwrócić uwagę na fakt, Ŝe w

sieciach unicastowych wartość ta jest równa bądź większa od jednego, natomiast w

sieciach multicastowych, odkąd dane jednej transmisji mogą być dostarczone do wielu

odbiorców, wartość ta moŜe być mniejsza od jednego.[42]

Page 82: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

82

Wysłane pakiety kontrolne podzielone przez liczbę pakietów dostarczonych do

celu.

Jest to współczynnik pakietów kontrolnych wysłanych do pakietów, które

dotarły do celu. Pozwala on zmierzyć efektywność wykorzystania pakietów

kontrolnych do doręczenia danych.[42]

Suma wysłanych pakietów kontrolnych wraz z liczbą wysłanych pakietów

w ogóle podzielona przez liczbę pakietów dostarczonych do celu.

Parametr ten pozwala zmierzyć efektywność warunków decydujących o dostępie

do kanału i jest bardzo waŜny w sieciach ad hoc, w których warstwa łącza danych jest

zaleŜna od warunków dostępowych do łącza.[42]

6.3. Szczegółowe parametry ustawień sieci.

Liczba nadawców.

Zbadana zostanie efektywność protokołu ODMRP ze względu na ilość

nadawców wysyłających cyklicznie co 0.2s pakiety o wielkości 512B przez czas 250

sekund. Wartości ustawienia symulacji prezentuje poniŜsza tabela:

Liczba nadawców 1-20

Liczba uczestników grupy 20

Maksymalna szybkość węzłów 1m/s

Rodzaj ruchu sieciowego MCBR

Tempo wysyłania pakietów 5p/s

Tabela 5 Parametry symulacji zorientowanej na liczbę nadawców.

Mobilność.

Zbadana zostanie efektywność radzenia sobie protokołu ODMRP z szybkimi

i częstymi zmianami topologii ze względu na mobilność węzłów, tzn. z uwzględnieniem

poruszania się węzłów podczas transmisji danych.. Wartości ustawienia symulacji

prezentuje poniŜsza tabela:

Liczba nadawców 5

Liczba uczestników grupy 20

Maksymalna szybkość węzłów 1m/s – 20 m/s

Przestój węzła 0

Rodzaj ruchu sieciowego MCBR

Tempo wysyłania pakietów 5p/s

Tabela 6 Parametry symulacji zorientowanej na szybkość poruszania się węzłów.

Page 83: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

83

Wielkość grupy multicastowej.

Zbadana zostanie efektywność protokołu ODMRP ze względu na liczbę

uczestników grupy multicastowej, co pozwoli zbadać skalowalność tego protokołu.

Wartości ustawienia symulacji prezentuje poniŜsza tabela:

Liczba nadawców 5

Liczba uczestników grupy 10-50

Maksymalna szybkość węzłów 1m/s

Rodzaj ruchu sieciowego MCBR

Tempo wysyłania pakietów 5p/s

Tabela 7 Parametry symulacji zorientowanej na liczbę węzłów naleŜących do grupy

multicastowej.

Page 84: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

84

6.4. Wyniki symulacji protokołu ODMRP.

6.4.1. Liczba nadawców.

Pierwszą grupę przeprowadzonych symulacji stanowi uwzględnienie

zróŜnicowania pod względem liczby źródeł nadawania pakietów do grupy

multicastowej. Pozwala to określić skalowalność danego protokołu, w tym wypadku

ODMRP, czyli moŜliwości jego wykorzystania w rzeczywistości. Na rysunku 55

zbadana została zaleŜność pomiędzy doręczonymi pakietami, a pakietami, które

w rzeczywistości powinny dotrzeć do adresata. Jak widać, w przypadku jednego źródła

nadawania pakietów sieć, składająca się z pięćdziesięciu węzłów, radzi sobie bardzo

dobrze. Współczynnik doręczenia paczki do adresata w tym wypadku wynosi prawie

100%. Zwiększając liczbę stacji mających dane do wysłania moŜna zauwaŜyć, Ŝe

skuteczność w doręczaniu pakietów do celu zaczyna dramatycznie spadać

i w przypadku 15 stacji nadających pakiety, współczynnik doręczania pakietu do celu

wynosi poniŜej 40%, idąc dalszym krokiem jest on jeszcze niŜszy. Na rysunku 56

z kolei podany jest koszt doręczenia pojedynczego pakietu do celu. Dla 15 stacji

nadających wynosi on prawie 300%, co oznacza, Ŝe aby doręczyć jeden pakiet do celu,

trzeba wysłać aŜ trzy inne. Na rysunku 57 moŜna zaobserwować jak duŜą skalę

stanowią pakiety kontrolne i tak dla 15 stacji nadających liczba wysyłanych pakietów

kontrolnych jest trzy razy większa niŜ dla 5 stacji, natomiast dla większej liczby stacji

nadających, ilość pakietów kontrolnych zaczyna być bardzo duŜa. Podsumowaniem tej

symulacji jest rysunek 58, na którym doskonale widać, Ŝe na jeden doręczony pakiet do

celu przypadają cztery inne, a więc wyjaśnia, dlaczego na rysunku 55 tak diametralnie

malała skuteczność doręczania pakietów do celu.

Podsumowując, na podstawie przeprowadzonej symulacji, moŜna śmiało

stwierdzić, Ŝe protokół ODMRP nie wykazuje zbyt duŜej skalowalności dla

doręczanych pakietów, nawet przy niezbyt duŜej liczbie stacji nadających. W protokole

ODMRP kaŜda stacja nadająca wysyła okresowo, w zaleŜności od dobranego

parametru, Ŝądanie odświeŜenia trasy przez sieć. Jak moŜna zauwaŜyć, efektem

zwiększania liczby stacji nadających są zatory w sieci i nadmierny ruch kontrolny, a co

za tym idzie współczynnik doręczanych pakietów do celu bardzo szybko maleje.

Page 85: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

85

Dane dor ęczone/Dane które powinny by ć doręczone w sieci z 50 w ęzłami

00,20,40,60,8

11,2

1 5 10 15 20

Liczba nadawców

PD

R

ODMRP

Rys. 55. Packet Delivery Ratio jako funkcja liczby nadawców pakietów.

Dane wysłane/Dane dor ęczone w sieci z 50 węzłami

00,5

11,5

22,5

33,5

4

1 5 10 15 20

Liczba nadawców

PT

R

ODMRP

Rys. 56. Packet Transmssion Ratio jako funkcja liczby nadawców pakietów.

Page 86: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

86

Pakiety kontrolne/pakiety dor ęczone w sieci z 50 węzłami

0

0,05

0,10,15

0,2

0,25

0,3

1 5 10 15 20

Liczba nadawców

Pak

iety

ko

ntro

lne/

Pak

iety

do

ręcz

one

ODMRP

Rys. 57. Pakiety kontrolne przez pakiety doręczone, jako funkcja liczby nadawców

pakietów.

Pakiety kontrolne + Pakiety wysłane / Pakiety doręczone w sieci z 50 w ęzłami

00,5

11,5

22,5

33,5

44,5

1 5 10 15 20

Liczba nadawców

Pak

iety

ko

ntro

lne+

Pak

iety

w

ysła

ne/P

akie

ty

dorę

czon

e

ODMRP

Rys. 58. Pakiety kontrolne wraz z danymi przez pakiety doręczone, jako funkcja liczby

nadawców pakietów.

Page 87: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

87

6.4.2. Mobilność.

W drugiej grupie symulacji uwzględniona została jedna z najwaŜniejszych cech

sieci ad hoc, a mianowicie mobilność węzłów, która pozwala określić zdolność danego

protokołu do reagowania na zmiany w topologii sieci, a co za tym idzie, na zmiany tras

przesyłania pakietów.

Na rysunku 59 widać, Ŝe przemieszczanie się węzłów, a takŜe zmienna ich

prędkość nie robi praktycznie Ŝadnego wraŜenia na protokole ODMRP. Skuteczność

w doręczaniu pakietów do celu zmienia się nieznacznie w stosunku do prędkości

uzyskiwanych przez węzły. Dla węzłów poruszających się z prędkością 1m/s wynosi

ona 78 %, a dla prędkości 20m/s 65%, a więc jest bardzo duŜa. Na rysunku 60 moŜna

zauwaŜyć, Ŝe ilość pakietów potrzebnych do dostarczenia pojedynczego pakietu do celu

zmienia się nie znacznie i jest na bardzo niskim poziomie, biorąc pod uwagę szybko

zmieniającą się topologię. RóŜnica pomiędzy węzłami poruszającymi się z prędkością

1m/s, a 20m/s wynosi zaledwie 17%. Na rysunku 61 doskonale widać, Ŝe liczba

pakietów kontrolnych, pomimo zmiany szybkości poruszania się węzłów, praktycznie

się nie zmienia i jest na tym samym poziomie, co w przypadku węzłów poruszających

się duŜo wolniej. Rysunek 62 jest podsumowaniem tej grupy symulacji. Wynika

z niego, Ŝe koszt dostarczenia pojedynczego pakietu zwiększa się o zaledwie 17%,

a biorąc pod uwagę, Ŝe prędkość poruszającego się węzła wzrasta dwudziestokrotnie

(z 1m/s do 20m/s), to wzrost tego kosztu jest praktycznie nie zauwaŜalny.

Symulacje te pozwalają śmiało stwierdzić, Ŝe protokół ODMRP doskonale radzi

sobie z mobilnością węzłów. Jego struktura siatki posiada wiele alternatywnych

ścieŜek, którymi moŜe zostać przesłany pakiet, co czyni go dość mocno odpornym, a co

za tym idzie, równieŜ wydajnym, na zmiany w topologii sieci.

Page 88: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

88

Pakiety dor ęczone/Pakiety które powinny doj ść do celu w sieci z 50 w ęzłami

0

0,2

0,4

0,6

0,8

1

1 5 10 15 20

Prędko ść poruszania si ę [m/s]

PD

R

ODMRP

Rys. 59.Packet Delivery Ratio jako funkcja mobilności.

Dane wysłane/Dane dor ęczone w sieci z 50 węzłami

1,21,25

1,31,35

1,41,45

1,51,55

1,61,65

1 5 10 15 20

Prędko ść poruszania si ę [m/s]

PT

R

ODMRP

Rys. 60. Packet Transmission Ratio jako funkcja mobilności.

Page 89: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

89

Pakiety kontrolne/pakiety dor ęczone w sieci z 50 węzłami

0

0,01

0,02

0,03

0,04

0,05

0,06

1 5 10 15 20

Prędko ść poruszania si ę [m/s]

Pak

iety

ko

ntro

lne/

Pak

iety

do

ręcz

one

ODMRP

Rys. 61.Pakiety kontrolne do pakietów doręczonych jako funkcja mobilności.

Pakety kontrolne + Pakiety wysłane / Pakiety doręczone w sieci z 50 w ęzłami

1,251,3

1,351,4

1,451,5

1,551,6

1,651,7

1 5 10 15 20

Prędko ść poruszania si ę [m/s]

Pak

iety

ko

ntro

lne+

Pak

iety

w

ysła

ne/P

akie

ty

dorę

czon

e

ODMRP

Rys. 62. Pakiety kontrolne wraz z pakietami wysłanymi do pakietów doręczonych jako

funkcja mobilności.

Page 90: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

90

6.4.3. Wielkość grupy multicastowej.

Kolejna grupa symulacji jest uzaleŜniona od rozmiarów grupy multicastowej. Na

rysunku 63 moŜna zauwaŜyć, Ŝe zwiększenie liczby uczestników danej grupy

multicastowej praktycznie nie ma wpływu na współczynnik skuteczności dostarczania

pakietów do celu. RóŜnica pomiędzy dziesięcioma, a pięćdziesięcioma uczestnikami

waha się w granicach 10% i nie spada poniŜej 70%, a więc moŜna jasno stwierdzić, Ŝe

liczba uczestników grupy nie powoduje większych perturbacji w sieci. Rysunek 64

podkreśla, Ŝe koszt doręczenia pakietu do celu równieŜ nie ulega drastycznym

zmianom. Dla grupy multicastowej skupiającej 50 węzłów, wynosi ok. 150%, a więc

średnio na dwa doręczone pakiety przypada jeden wysłany dodatkowo, na przykład

w skutek retransmisji. Na rysunku 65 moŜemy zaobserwować zmiany w ilości

wysyłanych pakietów kontrolnych. W przypadku zwiększania liczby uczestników danej

grupy multicastowej z 10 do 50, liczba pakietów kontrolnych zwiększa się dwukrotnie,

ale nadal pozostaje na bardzo niskim poziomie, w stosunku do pakietów dostarczonych

do celu. Na rysunku 66 widać, Ŝe róŜnica w wysyłanej ilości pakietów, pomiędzy małą i

dość duŜą grupą mobilnych węzłów(10-50), jest niewielka i nie przekracza 25%.

Z symulacji tych wynika, Ŝe protokół ODMRP jest dość dobrze przystosowany

do zmian w rozmiarach grupy multicastowej. Współczynnik dostarczenia pakietu do

celu utrzymuje się na dość stałym i duŜym poziomie, a to przekłada się równieŜ na

niewielki wzrost w ruchu kontrolnym i kolizjach.

Page 91: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

91

Pakiety dor ęczone/Pakiety które powinno doj ść do celu w sieci z 50 w ęzłami

0,65

0,7

0,75

0,8

0,85

10 20 30 40 50

Ilość uczestników grupy

PD

R

ODMRP

Rys. 63.Packet Delivery Ratio, jako funkcja liczby uczestników grupy multicastowej.

Dane wysłane/Dane dor ęczone w sieci z 50 węzłami

1,1

1,2

1,3

1,4

1,5

1,6

10 20 30 40 50

Ilość uczestników grupy

PT

R

ODMRP

Rys. 64. Packet Transmission Ratio, jako funkcja liczby uczestników grupy

multicastowej.

Page 92: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

92

Pakiety kontrolne/pakiety dor ęczone w sieci z 50 węzłami

0

0,02

0,04

0,06

0,08

0,1

10 20 30 40 50

Ilość uczestników grupy

Pak

iety

ko

ntro

lne/

Pak

iety

do

ręcz

one

ODMRP

Rys. 65. Pakiety kontrolne do pakietów doręczonych, jako funkcja liczby uczestników

grupy multicastowej.

Pakety kontrolne + Pakiety wysłane / Pakiety doręczone w sieci z 50 w ęzłami

1,2

1,3

1,4

1,5

1,6

1,7

10 20 30 40 50

Ilość uczestników grupy

Pak

iety

ko

ntro

lne+

Pak

iety

w

ysła

ne/P

akie

ty

dorę

czon

e

ODMRP

Rys. 66. Pakiety kontrolne oraz wysłane pakiety z danymi do pakietów doręczonych,

jako funkcja liczby uczestników grupy multicastowej.

Page 93: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

93

7. Podsumowanie.

Na początku pracy mowa była o nielicznych pozycjach w literaturze polskiej,

które mogłyby pomóc w rozwinięciu tematu rutingu multicastowego w sieciach ad hoc.

Jednak ma to szansę się zmienić. Ciągłe prace nad sieciami ad hoc, a takŜe rozwój

technologiczny wraz z potrzebami zwykłych uŜytkowników sprawiają, Ŝe w niedalekiej

przyszłości sieci multicastowe mają szanse rozwoju. Jednak wszystko zaleŜy od

algorytmów trasowania, które pozwalają zwiększać efektywność, wydajność

i skalowalność sieci.

Poprzez analizę wybranych protokołów multicastowych w sieciach ad hoc

moŜemy zauwaŜyć, Ŝe kaŜdy z nich cechują pewne specyficzne właściwości, które

czynią je przydatne w określonych warunkach. Jak moŜna zauwaŜyć w przekroju całej

pracy dyplomowej algorytmy, realizujące ruting w sieciach ad hoc, wykazują ogromne

zróŜnicowanie. Jedne konstruują drzewa multicastowe, które pozwalają zredukować

opóźnienia, z kolei inne budują siatki, aby zapewnić efektywność i wydajność.

Gdyby naszym celem była jak najefektywniejsza mobilność węzłów, to

doskonale w tym przypadku sprawdzą się protokoły siatko strukturalne, z grupy

reaktywnych, dzięki redundantnym połączeniom w siatce. Z kolei, jeŜeli istotny będzie

fakt sprawnej obsługi duŜej liczby nadawców, to lepiej sprawdzą się protokoły

o strukturze drzewa, które swoją budową będą hamować zbyt nadmierny ruch

kontrolny. W całej pracy jest mowa o mobilności, a urządzenia te są nieodłącznie

związane z oszczędzaniem energii. JeŜeli istotne będzie oszczędzanie energii to lepiej

sprawdzą się protokoły o strukturze drzewa, gdyŜ protokoły siatko strukturalne

w swojej komunikacji broadcastowej korzystają ze zbyt duŜej liczby węzłów

pośredniczących. JeŜeli będziemy chcieli ograniczyć w danej sieci liczbę węzłów, które

biorą udział w komunikacji, to moŜna dokonać tego za pomocą protokołów

inteligentnych.

JeŜeli będziemy chcieli, aby pakiety były przesyłane przede wszystkim szybko

to lepszym wyborem byłyby protokoły proaktywne, z kolei jeśli waŜne dla nas jest

oszczędzanie energii urządzeń, to swoją rolę mogą spełnić tutaj protokoły proaktywne.

Na podstawie przeprowadzonych symulacji moŜna wywnioskować, Ŝe ruting

multicastowy w sieciach ad hoc, o budowie siatkowej i działający reaktywnie,

charakteryzuje się dość duŜą efektywnością i wydajnością. Jak moŜna zauwaŜyć,

protokół ODMRP, dzięki swojej budowie, zapewnia redundantne połączenia, które jak

Page 94: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

94

wykazała symulacja sprawiają, Ŝe pakiet ma duŜe szanse na dotarcie do celu, nawet w

przypadku braku dostępności głównych tras rutowania pakietów. Symulacje wykazały

równieŜ, Ŝe protokół ten jest odporny na częste zmiany połoŜenia, a tym samym

topologii sieci, co ma znaczenie podczas przemieszczania urządzeń mobilnych.

Natomiast główną wadą tego protokołu jest skalowalność ze względu na liczbę

nadawców danych. Procent dotarcia pakietów do celu (PDR) dramatycznie wtedy

spada. Wynika to z konieczności utrzymania połączeń pomiędzy nadawcami

i odbiorcami. Jeśli liczba węzłów wysyłających dane wzrasta, okresowo wysyłany

pakiet Join Request, generowany przez kaŜdego nadawcę, powoduje zwiększenie liczby

zatorów w sieci, jak równieŜ wysyłanych pakietów kontrolnych. Ma to ogromny

wpływ, jeśli chcielibyśmy zastosować taki protokół do komunikacji wielu urządzeń

mobilnych, połączonych w jedną lub wiele grup multicastowych.

Biorąc pod uwagę całość rozwaŜań nasuwa się wniosek, Ŝe ruting multicastowy

w sieciach ad hoc stanowi przyszłość i warto tę dziedzinę rozwijać. Technologia ulega

ciągłemu rozwojowi i dzięki temu moŜna spróbować wyeliminować pewne błędy

z niektórych protokołów po to, aby stały się mniej zawodne, bardziej wydajne

i efektywne.

Page 95: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

95

8. Bibliografia.

[1] P.Kuosmanen, “Classification of Ad Hoc Routing Protocols”, Finnish Defence

Forces Naval Academy, czerwiec 2002.

[2] J.Słoczyński, “Nietypowe algorytmy rutowania”, Politechnika Łódzka, Łódź,

wrzesień 2004.

[3] M.Ilyas, “The Handbook of Ad Hoc Wireless Networks”, Florida Atlantic

University, Florida, 2003.

[4] Dewan Tanvir Achmed, “Multicasting in Ad Hoc Networks”, University of Ottawa,

Ottawa, 2005.

[5] Y.Zhu, “Pro Active Connection Maintenance in AODV and MAODV by Yufang

Zhu”, Department of Systems and Computer Engineering, Carleton University, Ottawa,

wrzesień 2002.

[6] D.T.Ahmed, S.Shirmohammadi, “Architectural Analysis of Multicast Routing

Protocols for Wireless Ad Hoc Networks”, University of Ottawa, Ottawa, listopad 2006.

[7] Z.M.Alfawaer, GuiWei Hua, N.Ahmed, “A Novel Multicast Routing Protocol for

Mobile Ad Hoc Networks”, School of Information Sciences and Engineering Central

South University, Kuantan, Pahang, Malaysia, 2007.

[8] „Mobilne sieci ad hoc w technologii Bluetooth”, AGH University Of Science,

www.ics.agh.edu.pl/papers/TR-02-4.doc.

[9] L.M. Feeney: “A Taxonomy for Routing Protocols in Mobile Ad Hoc Networks”,

SICS Technical Report T99/07, październik 1999.

[10] Perkins, C. E.; “IP mobility support”, RFC 2002, październik 1996,

http://www.ietf.org/rfc/rfc2002.txt.

[11] Perkins, C. E., Bhagwat, P.; "Highly Dynamic Destination-Sequenced Distance-

Vector Routing (DSDV) for Mobile Computers", Proceedings of the ACM

SIGCOMM.94 Conference on Communications Architectures, Protocols and

Applications, London, UK, sierpień 1994.

[12] Jubin, J., Tornow, J. D.; “The DARPA Packet Radio Network Protocols”,

Proceedings of the IEEE, styczeń 1987, Vol. 75, No. 1.

[13] Chiang, C.-C.; Wu, H.-K.; Liu, W., Gerla, M.; “Routing in Clustered Multihop

Mobile Wireless Networks with Fading Channel”, Proceedings of IEEE Singapore

International Conference on Networks (SICON'97), Singapore, kwiecień 1997.

Page 96: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

96

[14] Murthy, S., Garcia-Luna-Aceves, J. J.; “An Efficient Routing Protocol for Wireless

Networks”, ACM Mobile Networks and Applications Journal (MONET), Special Issue

on Routing in Mobile Communication Networks, październik 1996, Vol.1, No. 2.

[15] Johnson, D. B., Maltz, D. A.; "Dynamic Source Routing in Ad Hoc Wireless

Networks", Mobile Computing, edited by Tomas Imielinski and Hank Korth, Kluwer

Academic Publishers, ISBN: 0792396979, 1996.

[16] Corson, S., Ephremides. A.; “A distributed routing algorithm for mobile wireless

networks”, ACM/Baltzer Journal of Wireless Networks, February 1995, Vol. 1, No. 1.

[17] Park, V. D., Corson, M. S. “A Highly Adaptive Distributed Routing Algorithm for

Mobile Wireless Networks”, Proceedings of the16th Annual Joint Conference of the

IEEE Computer and Communications Societies (INFOCOM'97), Kobe, Japan, kwiecień

1997, Vol. 3.

[18] J.Manner, M.Kojo, „Mobility related terminology”, <draft-ietf-seamobymobility-

terminology-06.txt>, luty 2004.

[19] Sinha, P., Sivakumar, R., Bharghavan, V., “MCEDAR: Multicast Core Extraction

Distributed Ad-hoc Routing”, IEEE Wireless Communications and Networking

Conference (WCNC ’99), 1999.

[20] Lin, C., Chao, S., “A Multicast Routing Protocol for Multihop Wireless Networks”,

IEEE Global Telecomm. Conference (GlobeCom 1999), 1999.

[21] J.J.Garcia-Luna-Aceves, E.L.Madruga, “The Core-Assisted Mesh Protocol”, IEEE

Journal on Selected Areas in Communications, 17, 1380–1394, kwiecień 1999.

[22] Lee, S., Gerla, M., Chiang, C., “On-Demand Multicast Routing Protocol”, IEEE

Wireless Communications and Networking Conference (WCNC ’99), 1999.

[23] C.Shen, C.Jakiaeo, “Ad hoc Multicast Routing Algorithm with Swarm

Intelligence”, University of Delaware, Newark, sierpień 2003.

[24] E.M. Royer, C-K. Toh, “A Review of Current Routing Protocols for Ad-Hoc

Mobile Wireless Networks”, IEEE Personal Communications Magazine, kwiecień

1999, pp. 46-55.

[25] E.Cheng, “On-Demand Multicast Routing in Mobile Ad Hoc Networks”, Carleton

University, Ottawa, styczeń 2001.

[26] E.M.Royer, “Multicast Ad Hoc On-Demand Distance Vector (MAODV) Routing”,

<draft-ietf-manet-maodv-00.txt>, IETF MANET Working Group, lipiec 2000.

[27] Y.Yi,S.Lee,W.Su,M.Gerla, “On-Demand Multicast Routing Protocol (ODMRP)

for Ad Hoc Networks”, <draft-ietf-manet-odmrp-04.txt>, IETF MANET, luty 2003.

Page 97: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

97

[28] J. Xie, R. Talpade, A. McAuley, M. Liu, “AMRoute: Ad Hoc Multicast Routing

Protocol”, Kluwer Academic Publishers, lipiec 2002.

[29] E.Bommaiah, A.McAuley, R.Talpade, M.Liu, “AMRoute: Ad Hoc Multicast

Routing Protocol”, <draft-talpade-manet-amroute-00.txt>, IETF MANET, sierpień

1998.

[30] R.Talpade, E.Bommaiah, A.McAuley, M.Liu, “AMRoute: Ad Hoc Multicast

Routing Protocol”, http://www3.ietf.org/proceedings/98aug/slides/manet-talpade-slides-

98aug/sld011.htm, sierpień 1998.

[31] D. Johnson, D. Maltz, and Y. Hu, “The Dynamic Source Routing Protocol (DSR)

for Mobile Ad Hoc Networks for IPv4”, RFC4728, IETF MANET, luty 2007.

[32] Gafni, E., Bertsekas, D.; “Distributed algorithms for generating loop-free routes in

networks with frequently changing topology”, IEEE Transactions on Communications,

styczeń 1981, Vol. 29. No. 1, pages 11--18.

[33] C.-K. Toh, “Long-lived Ad Hoc Routing based on the Concept of Associativity”,

IETF MANET Working Group, marzec 1999.

[34] Z.J.Haas, M.R.Pearlman, P.Samar, “The Zone Routing Protocol (ZRP) for Ad Hoc

Networks”, <draft-ietf-manet-zone-zrp-04.txt>, Internet Draft, czerwiec 2002.

[35] M.Gerla, X.Hong, G.Pei, “Fisheye State Routing Protocol (FSR) for Ad Hoc

Networks”,<draft-ietf-manet-fsr-03.txt>, IETF MANET Internet Draft, czerwiec 2002.

[36] P.Jacquet, P.Mühlethaler, T.Clausen, A.Laouiti, A.Qayyum, L.Viennot,

„Optimized link state routing protocol for ad hoc networks”, IEEE INMIC, Pakistan,

2001.

[37] R.V. Boppanam and S.P. Konduru, “An Adaptive Distance Vector Routing

Algorithm for Mobile Ad Hoc Networks”, Proceedings of IEEE INFOCOM 2001,

Anchorage, AK, kwiecień 22–26, Vol. 3, 2001, pp. 1753–1762.

[38] P. Sinha, R. Sivakumar, V. Bharghavan, “Core Extraction Distributed Ad Hoc

Routing (CEDAR) Specification”, Internet Draft <draft-ietf-manet-cedar-spec-00.txt>,

wrzesień 1998.

[39] Y.-B. Ko, N.H. Vaidya, “Location-Aided Routing (LAR) in mobile ad hoc

networks”, ACM/IEEE MobiCom 98, Dallas, 1998.

[40] http://en.wikipedia.org/wiki/Multicast.

[41] Scalable Network Technologies, Inc., “QualNet 4.0 User’s Guide”, styczeń 2007.

[42] S. Corson, J.Macker, “Mobile Ad hoc Networking (MANET): Routing Protocol

Performance Issues and Evaluation Considerations”, RFC 2501, IETF, Styczeń 1999.

Page 98: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

98

Dodatek A.

Zawartość nośnika CD.

Praca magisterska – tekst pracy w dwóch wersjach:

• plik DOC (katalog PracaMagisterska\DOC

• plik PDF (katalog PracaMagisterska\PDF)

Materiały Elektroniczne

• materiały elektroniczne, z których korzystano w tej pracy (katalog Materiały

Elektroniczne)

Rysunki wykorzystane w pracy

• rysunki wykorzystane w tej pracy (katalog Rysunki)

Symulator QualNet

• instalacja symulatora (Symulator\Instalacja)

• dokumentacja (Symulator\Dokumentacja)

Symulacje

• przeprowadzone symulacje, wraz z plikami konfiguracyjnymi, wynikami

symulacji i arkuszem styli z obliczeniami (katalog Symulacje)

Page 99: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

99

Dodatek B.

Raport skrócony wygenerowany przez System Antyplagiatowy Plagiat.pl,

za pomocą witryny http://www.plagiat.pl.

Page 100: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

100

Page 101: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

101

Page 102: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

102

Page 103: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

103

Page 104: Rutowanie multikastowe w sieciach ad hoc.zskl.p.lodz.pl/~morawski/Dyplomy/Praca dyplomowa p. Rosinskiego.pdf · historii. W ostatnich czasach sieci bezprzewodowe prze Ŝywaj ą ogromny

104