Architektura multicast overlay

0

Ostatnie piętnaście lat to rozwój koncepcji przeniesienia implementacji transmisji rozgałęźnej z warstwy sieciowej (IP) do wyższych warstw modelu OSI, w szczególności do warstwy aplikacji. Koncepcja ta polega na utworzeniu logicznej struktury hostów biorących udział w transmisji rozgałęźnej zwanej powłoką (lub nakładką, od angielskiego terminu overlay) ponad istniejącą siecią fizyczną.

Przesyłanie danych odbywa się poprzez transmisję typu punkt-punkt pomiędzy sąsiednimi hostami tworzącymi tą strukturę. Rysunek 1 przedstawia jeden z możliwych sposobów realizacji takiej transmisji w przykładowej sieci.

multicast_overlay_1
Rysunek 1. Przykład transmisji rozgałęźnej realizowanej w powłoce ponad istniejącą siecią fizyczną

Opis powłoki
Opis powłoki należy rozpocząć od przedstawienia sieci fizycznej jako grafu G = (N,E), w którym N jest zbiorem wierzchołków, a E zbiorem ich połączeń. Wierzchołek ηi należący do N oznacza router, natomiast połączenie (ηi, ηj) należące do E to dwukierunkowe łącze fizyczne rozpatrywanej sieci fizycznej. Powłoka nałożona na sieć G to drzewo definiowane jako o = (s, D, N0, E0), gdzie s jest hostem źródłowym, D to zbiór odbiorców, N0 należy N to zbiór wierzchołków sieci fizycznej, przez które przechodzi łącze powłoki, a E0 to zbiór połączeń powłoki, które zdefiniowano poniżej. Zbiór hostów H0 w o składa się z s i D, H0={s} należy do D. Liczebność tego zbioru (tzw. moc) jest równa n. Łącze powłoki e0 = (ds,η0,…,ηls,dr) należy do E0 obejmuje host źródłowy ds należy do H0, sekwencję routerów ηi należy do N0 oraz host odbiorczy dr η D. Każdy z odbiorników pojawia się dokładnie raz na końcu jakiejkolwiek sekwencji oznaczającej łącze powłoki, ale może pojawiać się wiele razy na początku bądź w środku sekwencji różnych łącz powłoki. Łącza te to zazwyczaj połączenia UDP lub TCP nawiązywane przez protokoły multicast overlay.

Liczba przeskoków w sekwencji routerów η0, … , ηls w łączu powłoki e0 η E0 jest oznaczana jako ls. Dla każdej pary routerów ηi, ηj należących do N0, które pojawiają się jeden po drugim w łączu powłoki e0 należącym do E0, musi istnieć ich połączenie w sieci fizycznej. Ten sam router ηi należący do N0, podobnie jak „podsekwencje” routerów ηi, … , ηj mogą wielokrotnie występować w różnych łączach powłoki e0 należących do E0. Rysunek 2 przedstawia przykład powłoki ponad istniejącą siecią fizyczną zawierającą 6 łączy powłoki.

multicast_overlay_2
Rysunek 2. Przykład powłoki ponad istniejącą siecią fizyczną

Podejścia do transmisji rozgałęźnej w powłoce
Opisana powyżej powłoka konstruowana jest przez odpowiednie protokoły. Wszystkie protokoły transmisji rozgałęźnej realizowanej w warstwie aplikacji organizują członków grupy w dwie topologie nazywane topologią danych i topologią sterującą. Uczestnicy grupy sąsiadujący ze sobą okresowo wymieniają wiadomości „odświeżające”, które mają na celu ich identyfikację oraz odtworzenie struktury po „nieprzyjaznym” odłączeniu się jednego z członków. Przez „nieprzyjazne” odłączenie należy rozumieć opuszczenie grupy przez członka bez poinformowania o tym swoich sąsiadów poprzez wiadomości sterujące (spowodowane najczęściej awarią, bądź utratą zasilania).

Topologia danych to zazwyczaj podzbiór topologii sterującej, określa ona ścieżkę, którą przebywa transmitowany pakiet w powłoce. Ma ona postać drzewa, podczas gdy topologia sterująca charakteryzuje się większą liczbą połączeń pomiędzy uczestnikami. W wielu protokołach topologia sterująca nosi miano siatki (ang. mesh), natomiast topologia danych nazywana jest drzewem (ang. tree).

W zależności od kolejności w jakiej konstruowane są dwie omówione powyżej topologie, wyróżnia się trzy kategorie technik transmisji rozgałęźnej w warstwie aplikacji: podejścia mesh-first, tree-first oraz implicit.

W podejściu mesh-first (siatka jako pierwsza) uczestnicy najpierw rozdzielnie organizują się w topologię sterującą powłoki (siatkę). Powstaje wiele ścieżek łączących poszczególne hosty. Każdy z członków podlega działaniu protokołu routingu, który wyznacza unikalną ścieżkę powłoki do każdego z pozostałych uczestników. Dzięki temu w następnym kroku stworzone może być drzewo rozpinające z korzeniem określonym w źródle (źródłem może być dowolny uczestnik). Formowanie takiego drzewa zazwyczaj opiera się na mechanizmie Reverse Path Forwarding, który używany jest również przez protokoły multicast IP.

W podejściu tree-first (drzewo jako pierwsze) protokoły konstruują w pierwszej kolejności dzielone drzewo transmisji (ang. shared distribution tree). Każdy z uczestników jest odpowiedzialny za znalezienie rodzica w drzewie (procesy te różnią się od siebie w zależności od protokołu) oraz posiada parametr określany jako stopień (ang. degree bound), który ogranicza liczbę jego dzieci w drzewie. Następnie każdy z członków odnajduje kilka innych uczestników grupy, którzy nie są jego sąsiadami w drzewie i nawiązuje oraz utrzymuje dodatkowe połączenia sterujące z tymi hostami. Te dodatkowe połączenia stanowią topologię sterującą i są używane do rekonstrukcji powłoki po podziale spowodowanym przez odłączenie jednego bądź kilku hostów.

Protokoły wykorzystujące podejście implicit (niejawne bądź hierarchiczne) w pierwszej kolejności tworzą hierarchiczną topologię sterującą. Ścieżki transmisji danych definiowane są w sposób niejawny na podstawie struktury topologii sterującej, dzięki czemu nie są wymagane żadne dodatkowe obliczenia ścieżek. W ten sposób w tym podejściu topologie sterująca i danych (siatka i drzewo) są kreowane przez protokół w tym samym czasie, a zatem wszelkie interakcje pomiędzy uczestnikami potrzebne do wygenerowania jednej topologii na podstawie drugiej są zbędne.

Zalety i wady powłoki
Głównym powodem powstania koncepcji przeniesienia transmisji rozgałęźnej do warstwy aplikacji była chęć uniezależnienia jej od istniejącej infrastruktury sieciowej. Jak sama nazwa sugeruje, funkcjonalność transmisji typu multicast została zaimplementowana w warstwie aplikacji, czyli w urządzeniach końcowych (hostach), zamiast w routerach jak to miało miejsce w przypadku multicast IP. Innymi słowy jest ona realizowana programowo, a nie sprzętowo.

Brak ograniczenia w postaci zależności od urządzeń tworzących sieć sprawia, że ekspansja komunikacji rozgałęźnej jest zdecydowanie szybsza i łatwiejsza. Ponadto taka implementacja nie wymaga, aby routery pozostawały w „stanie grupowym” (ang. per group state – potrzeba przechowywania w tablicach routingu wpisów odpowiadających adresom poszczególnych grup hostów). Dzięki zastosowaniu transmisji typu punkt-punkt do przesyłania danych problemy takie, jak kontrola błędów, sterowanie przepływem czy przeciążeniami mogą być skutecznie opanowane przy użyciu sprawdzonych istniejących narzędzi opracowanych dla stosu protokołów TCP/IP.

Niestety transmisja rozgałęźna w warstwie aplikacji nie jest tak wydajna, jak ta w warstwie sieciowej. Niemożliwe jest uniknięcie nadmiarowych transmisji danych, ponieważ kilka łączy powłoki może przebiegać przez to samo łącze sieci fizycznej. Co więcej, komunikacja pomiędzy systemami końcowymi wymusza transmisję poprzez inne systemy końcowe, a co za tym idzie mogą pojawić się potencjalnie znaczące opóźnienia w przesyle danych, co w zależności od zastosowania może być mniej lub bardziej krytyczne.

Brak pełnej bezpośredniej wiedzy o strukturze sieci fizycznej znajdującej się pod powłoką jest kolejnym czynnikiem obniżającym wydajność tego rozwiązania. Tak więc powyższe aspekty muszą być wzięte pod uwagę przy projektowaniu protokołów routingu dla multicast overlay.

Autor: Tytus Pawlak, źródło: www.multicast.pl

PODZIEL SIĘ

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ