PRZEŁĄCZANIE W
WARSTWIE ŁĄCZA
DANYCH
Mosty i przełączniki
• Można łączyć różne sieci LAN i w ten sposób budować większą sieć lokalną za pomocą połączeń
międzysieciowych realizowanych przez urządzenia zwane mostami (ang. bridge).
• Przełączniki ethernetowe są w zasadzie nowoczesną odmianą mostów.
• Mosty działają w warstwie łącza danych, więc w celu skutecznego przekazywania ramek pomiędzy sieciami dokonują analizy adresów tej warstwy. Ponieważ z
założenia nie mają sprawdzać ładunku użytecznego przekazywanych ramek, mogą z powodzeniem
obsługiwać pakiety IP, jak i pakiety dowolnych innych rodzajów.
Zastosowania mostów
• Potrzeba interakcji autonomicznych sieci.
• Podział sieci lokalnej i zainstalowanie mostów
łączących wyodrębnione części – sposób skutecznie zwielokrotnić zasięg takiej sieci.
• Radzenie z obciążeniem. Mosty pozwalają na łatwe łączenie sieci LAN przy zachowaniu ich sumarycznej pojemności.
• Zastosowanie mostów zwiększa też niezawodność
przesyłu danych, ponieważ w pojedynczej sieci LAN
jeden uszkodzony węzeł może zatkać ją całą.
Mosty przezroczyste
• Instalacja przezroczystego mostu sprowadza się do podłączenia kabli do portów. Obecność mostu nie powinna w żaden sposób wpływać na działanie pojedynczej sieci LAN.
• Wykorzystuje się do tego dwa algorytmy (802.1D):
• algorytm poznawania wstecz (nauki przez pamięć), pomocny w decydowaniu o przekazywaniu albo
nieprzekazywaniu danej ramki pomiędzy sieciami
• algorytm drzewa rozpinającego pozwalający na przerywanie ewentualnych cykli powstających przy niektórych bardziej zawiłych połączeniach pomiędzy przełącznikami sieciowymi
Podstawy działania mostów
• Wszystkie stacje podłączone do tego samego portu mostu należą do tej samej niezależnej domeny
kolizyjnej. W przypadku gdy do portu podłączona jest więcej niż jedna stacja, do rozsyłania ramek
wykorzystuje się protokół rywalizacji CSMA/CD.
• Do pojedynczego mostu można zazwyczaj podłączać kable sieciowe różnego typu.
Podstawy działania mostów
• Każdy z mostów operuje w trybie nasłuchu: odbiera
wszystkie ramki transmitowane przez podłączone stacje niezależnie od tego, do kogo są adresowane.
• Most musi następnie zdecydować, czy ma daną ramkę przekazać na któryś z pozostałych portów, czy może ją odrzucić. Decyzję tę podejmuje na podstawie adresu przeznaczenia zaszytego w ramce.
• Decyzję tego rodzaju najprościej jest podjąć na
podstawie dużej tablicy przemieszczania utrzymywanej w pamięci mostu.
• Tablica ta powinna wymieniać wszystkie możliwe adresy docelowe z oznaczeniem portów, do których podłączone są stacje o danych adresach.
Algorytm poznawania wstecz (backward learning)
• W chwili podłączenia mostów wszystkie tablice przemieszczania są puste.
• Most używa algorytmu rozpływowego – każda ramka przychodząca przeznaczona dla nieznanego odbiorcy jest wysyłana do wszystkich portów, do których most jest
podłączony, z wyjątkiem tego, z którego ramka przyszła.
• Most działa w trybie nasłuchu, więc widzi każdą ramkę wysianą do każdego ze swoich portów.
• Sprawdzając adresy źródłowe, może określić, które komputery są dostępne na których portach.
• Wprowadzi więc odpowiednie adresy do swojej tablicy przemieszczania.
• Gdy adres jest już znany, ramki przeznaczone dla niego zostają po prostu wysłane do właściwego portu.
Aktualizacja tablicy przemieszczania
• Topologia może się zmieniać, dlatego most przy dokonywaniu każdego wpisu w tablicy
przemieszczania notuje godzinę dotarcia ramki.
• Za każdym razem, gdy do mostu dociera ramka mająca już wpis w tablicy, wpis ten jest
aktualizowany przez wprowadzenie bieżącego czasu.
• Okresowo proces w moście przegląda tablicę
przemieszczania i usuwa wszystkie wpisy mające
więcej niż kilka minut.
Procedura routingu ramek
• Procedura routingu przychodzących ramek jest zależna od portu źródłowego, i od adresu
docelowego:
1. Jeśli port dla adresu docelowego jest taki sam jak port źródłowy, ramka jest odrzucana.
2. Jeśli port dla adresu docelowego i port dla adresu źródłowego są różne, ramka jest przekazywana do portu docelowego.
3. Jeśli port docelowy jest nieznany, ramka jest wysyłana rozpływowo do wszystkich portów z wyjątkiem
źródłowego.
Przełączanie w locie
• W miarę napływania kolejnych ramek dla każdej z nich trzeba zastosować opisany algorytm; zazwyczaj
implementuje się go w postaci specjalizowanych układów wysokiej skali integracji (VLSI).
• Przekazywanie może zostać zainicjowane natychmiast po odebraniu pola adresu przeznaczenia z nagłówka ramki, jeszcze przed nadejściem jej reszty. Takie
przekazywanie nosi miano przełączania w locie (cut- through switching, wormhole routing) i zwykle
implementuje się je sprzętowo na szybkich układach specjalizowanych. Dzięki temu opóźnienia
przekazywania ramek przez most są minimalne i minimalna jest liczba ramek, którą most musi buforować w pamięci.
Protokoły uczestniczące w pracy mostu
• Most jest urządzeniem warstwy łącza danych. Most o k portach implementuje k egzemplarzy warstw MAC i fizycznej.
• Zasadniczo przekaźniki operujące na danej warstwie mogą przepisywać zawartość nagłówków dotyczących tej warstwy (np. VLAN). Most jednak w żadnym
przypadku nie powinien ingerować (ani nawet zaglądać) w dane wewnątrz ramki.
Drzewa częściowe mostów
• Aby zwiększyć niezawodność, pomiędzy mostami można zestawić połączenia nadmiarowe.
• Niemniej jednak taka nadmiarowość wprowadza
dodatkowy problem, ponieważ tworzy pętlę w
topologii sieci.Drzewa częściowe mostów
• Rozwiązanie tego problemu polega na
komunikowaniu się mostów ze sobą i nałożeniu na faktyczną topologię drzewa częściowego.
• W wyniku tego pewne potencjalne połączenia
pomiędzy mostami są ignorowane.
Algorytm drzewa częściowego
• Do budowy drzewa częściowego stosuje się w mostach rozproszony algorytm, w ramach którego każdy z
mostów okresowo rozgłasza na wszystkie swoje porty komunikat konfiguracji, a następnie przetwarza
wszystkie odebrane komunikaty od innych mostów.
• Najpierw mosty muszą wybrać spośród siebie jeden most główny (root bridge) albo korzeń drzewa
częściowego. Mosty wybierają na most główny most o najmniejszym identyfikatorze (adresie fizycznym MAC).
• Następny etap polega na wybraniu najkrótszych ścieżek od mostu głównego do wszystkich innych mostów. Jako ścieżka najkrótsza wybierana jest ścieżka z mostem
pośrednim o najmniejszym identyfikatorze.
Algorytm drzewa częściowego (2)
• Wytypowanie najkrótszych ścieżek odbywa się poprzez umieszczanie w komunikatach konfiguracji odległości od mostu głównego. Każdy z mostów zapamiętuje najkrótszą ścieżkę do mostu głównego, a następnie wyłącza porty, które nie wchodzą w jej skład.
• Wyłączanie portów w ramach typowania najkrótszej ścieżki powoduje odcięcie niektórych połączeń i tym samym
wyeliminowanie potencjalnych cykli.
• Po rozplanowaniu drzewa częściowego algorytm jest
okresowo powtarzany, dzięki czemu mosty mogą reagować na zmiany topologii i automatycznie aktualizować drzewo.
• Algorytm drzewa częściowego został ustandaryzowany jako IEEE 802.1D. W roku 2001 został przerobiony, aby szybciej wyszukiwał drzewo częściowe po zmianie topologii sieci.
Wzmacniaki, koncentratory, mosty, przełączniki, routery i bramy
• Wzmacniaki to urządzenia analogowe operujące na sygnałach
przesyłanych kablami. Sygnał odebrany z jednego kabla jest oczyszczany, wzmacniany i propagowany do drugiego kabla.
• Koncentratory różnią się od wzmacniaków tym, że (zazwyczaj) nie wzmacniają przychodzących sygnałów i są skonstruowane tak, aby obsługiwały wiele linii wejściowych.
• Współczesne mosty działają zazwyczaj dla sieci jednego typu, a do łączenia sieci różnych typów używa się routerów.
• Brama w warstwie transportowej może kopiować pakiety z jednego połączenia do drugiego, w razie potrzeby zmieniając ich format.
• Bramy w warstwie aplikacji rozumieją format i zawartość danych i tłumaczą komunikaty z jednego formatu na drugi.
Wirtualne sieci LAN
• Schemat okablowania pozwala na logiczne, a nie tylko fizyczne konfigurowanie sieci lokalnej
• Bezpieczeństwo
• Obciążenie sieci – niektóre sieci LAN są wykorzystywane bardziej intensywnie od innych i warto je odseparować
• Ruch rozgłoszeniowy – utrzymywanie ograniczonych rozmiarów sieci LAN pozwala więc na zredukowanie obciążenia ruchem rozgłoszeniowym
• „Burza transmisyjna” (broadcast storm) – (1) zajęcie całej zdolności przepustowej LAN przez te ramki i (2) sparaliżowanie wszystkich komputerów w połączonych ze sobą sieciach przez przetwarzanie i odrzucanie
wszystkich rozgłaszanych ramek.
Wirtualne sieci LAN
• Wirtualna sieć lokalna (VLAN – Virtual LAN), jest sposobem całkowicie programowych zmian
„okablowania”.
• Wirtualne sieci lokalne buduje się z użyciem odpowiednich przełączników.
• Aby wirtualna sieć lokalna mogła działać prawidłowo, należy zdefiniować tablice konfiguracyjne w mostach.
Tablice te informują, które VLAN są dostępne przez
które porty. Port może być oznaczony kilkoma kolorami VLAN.
Standard IEEE 802.1Q
• Dla skutecznego działania mosty muszą wiedzieć, do jakiej wirtualnej sieci LAN należy przychodząca ramka.
• IEEE 802.1Q – wydany w roku 1998, zmienił nagłówek Ethernetu: zawiera znacznik VLAN.
• Nowe karty Ethernet są zgodne z 802.1Q i potrafią prawidłowo wypełniać pola VLAN.
• Standard 802.1Q podnosi ograniczenie rozmiaru ramki do 1522 bajtów.
• Standard 802.1Q opisuje, jak dynamicznie tworzyć tablice konfiguracyjne, głównie odwołując się do odpowiednich fragmentów standardu 802.1D.
Sieć lokalna tylko częściowo obsługująca VLAN-y
• Potencjalna obecność w sieci komputerów (i
przełączników) nieobsługujących sieci wirtualnych wymusza to, że pierwszy most obsługujący sieci
VLAN powinien wypełnić pola VLAN ramki, a ostatni
obsługujący je most powinien te pola usunąć.
Metody nadawania kolorów VLAN
• Standard 802.1Q mówi, że ramki koloruje się zależnie od portu, z którego są odbierane. Żeby to działało, wszystkie komputery podłączone do danego portu
muszą wchodzić w skład tej samej wirtualnej sieci LAN.
• Dodatkowo most może wybierać kolor za pomocą protokołu wyższej warstwy. W ten sposób ramki przybywające do danego portu mogą być
rozmieszczane w różnych wirtualnych sieciach lokalnych na przykład zależnie od tego, czy niosą pakiety IP, czy ramki PPP.
• Możliwe są też inne metody nadawania kolorów, ale nie wchodzą one w skład 802.1Q. Np. do wyboru koloru
sieci VLAN może posłużyć adres MAC przybywającej ramki.
Format ramki 802.1Q
Ramka ethernetowa Preambuła
(8 bajtów)
MAC docelowy (6 bajtów)
MAC źródłowy (6 bajtów)
EtherType (2 bajty)
Pole danych (46-1500 bajtów)
CRC (4 bajty) Ramka ethernetowa oznaczona 802.1Q
Preambuła (8 bajtów)
MAC docelowy (6 bajtów)
MAC źródłowy (6 bajtów)
TPID 0x8100
TCI (2 bajty)
EtherType (2 bajty)
Pole danych (46-1500 bajtów)
CRC (4 bajty)
• TPID (Tag Protocol Identyfier) – zawiera ID protokołu VLAN i zawsze ma wartość 0x8100
• TCI (Tag Protocol Information):
• Identyfikator VLAN – 12 najmłodszych bitów.
• Priorytet – priorytetyzacja (3 bity)
• CFI (Canonical Format Indicator) – kanoniczny identyfikator formatu (adresu)
WARSTWA SIECIOWA
PROBLEMY PROJEKTOWE
WARSTWY SIECIOWEJ
Zadanie warstwy sieciowej
• Zadaniem warstwy sieciowej jest przenoszenie
pakietów na całej trasie od źródła do celu. Warstwa łącza danych – przeniesienie ramki z jednego końca kabla na drugi.
• Warstwa sieciowa musi znać topologię sieci i wybierać odpowiednią trasę poprzez tę sieć, niezależnie od jej rozmiarów. Musi też tak wybierać trasy, aby unikać przeciążania części linii komunikacyjnych i routerów.
• Problemy projektowe warstwy sieciowej – usługi
udostępniane warstwie transportowej i wewnętrzna struktura sieci.
Komutacja pakietów z buforowaniem
• Host, który ma pakiet do przesłania, nadaje go do najbliższego routera: albo we własnej sieci lokalnej, albo przez łącze dwupunktowe do operatora.
• Pakiet jest tu przechowywany, dopóki nie dotrze w
całości, aby można było zweryfikować sumę kontrolną.
• Następnie zostaje przekazany dalej do następnego routera na trasie – i tak dalej aż do hosta docelowego
• Jest to komutacja pakietów z buforowaniem (inaczej pamiętająco-wysyłająca).
Usługi świadczone na rzecz warstwy transportowej
1. Usługi powinny być niezależne od technologii routerów.
2. Warstwa transportowa powinna być izolowana od liczby, typu i topologii obecnych routerów.
3. Adresy sieciowe udostępniane warstwie
transportowej powinny stosować jednolity plan numerowania, nawet na różnych końcach sieci lokalnych i rozległych.
• Dyskusja toczy się wokół kwestii, czy warstwa sieciowa powinna świadczyć usługi połączeniowe, czy
bezpołączeniowe.
Usługi połączeniowe, czy bezpołączeniowe?
• Społeczność Internetu – zadaniem routerów jest
przenoszenie pakietów i nic więcej. Sieć jest z natury zawodna, hosty powinny same zajmować się kontrolą błędów oraz sterowaniem przepływem.
• Usługa sieciowa powinna być bezpołączeniowa, zawierać tylko operacje elementarne wysyłania i odbioru pakietu.
• Przede wszystkim nie powinno się w niej odbywać porządkowanie pakietów i sterowanie przepływem, ponieważ hosty i tak się tym zajmują.
• Każdy pakiet musi zawierać pełny adres docelowy, ponieważ jest przenoszony niezależnie od swoich ewentualnych poprzedników.
Usługi połączeniowe, czy bezpołączeniowe?
• Firmy telefoniczne – sieć powinna świadczyć niezawodne usługi połączeniowe, jakość usług jest czynnikiem
dominującym, a bez połączeń w sieci bardzo trudno ją osiągnąć, zwłaszcza w ruchu w czasie rzeczywistym (glos, wideo).
• Wczesne powszechnie stosowane siecie komputerowy, jak X.25 (w latach 70.), a potem Frame Relay (w 80.) –
połączenia.
• Od początku Internetu – bezpołączeniowe warstwy sieciowe (protokół IP). Za to sieć internetowa obrasta w mechanizmy typowe dla sieci połączeniowych, przede wszystkim – jakości obsługi QoS.
• Przykładami popularnych technologii połączeniowych mogą być natomiast MPLS (Multiprotocol Label Switching) oraz VLAN.
Usługi połączeniowe, czy bezpołączeniowe?
• Usługa bezpołączeniowa – pakiety są wprowadzane do sieci indywidualnie i kierowane niezależnie od siebie.
• Nie ma potrzeby uprzedniej konfiguracji połączenia.
• W tym kontekście pakiety często nazywa się
datagramami, a sieć nosi nazwę sieci datagramowej.
• Usługa połączeniowa – przed wysłaniem jakichkolwiek pakietów musi zostać zestawiona trasa z routera
źródłowego do docelowego.
• Połączenie takie to tzw. obwód wirtualny (VC – virtual circuit), a sieć nosi nazwę sieci obwodów wirtualnych.
Routing w sieci datagramowej
• Każdy router ma wewnętrzną tablicę informującą, gdzie wysyłać pakiety dla każdego możliwego odbiorcy.
• Algorytm zarządzający tablicami i podejmujący decyzje o wyborze tras nosi nazwę algorytmu routingu lub
algorytmu wyznaczania tras. Algorytmy routingu są jednym z głównych tematów warstwy sieciowej.
Routing w podsieci obwodów wirtualnych
• Obwody wirtualne są używane, aby unikać wybierania nowej trasy dla każdego wysyłanego pakietu.
• W usłudze połączeniowej każdy pakiet zawiera identyfikator obwodu wirtualnego.
Przełączanie etykiet
• Aby unikać konfliktów routery muszą zastępować
identyfikatory połączenia w pakietach wychodzących.
• W niektórych kontekstach działanie takie nosi nazwę
„etykietowanie” lub „przełączanie etykiet”.
• Przykładem takiej połączeniowej usługi sieciowej jest MPLS (ang. MultiProtocol Label Switching). Używa się jej w sieciach operatorów ISP do przesyłania pakietów IP opakowanych w nagłówek MPLS w celu ułatwiania nawiązywania długotrwałych połączeń dla wzajemnej wymiany dużej ilości danych.
Porównanie sieci obwodów wirtualnych i datagramowych
Problem Sieć datagramowa Sieć obwodów wirtualnych
Zestawianie obwodu Niepotrzebne Wymagane
Adresowanie Każdy pakiet zawiera pełny adres
źródłowy i docelowy Każdy pakiet zawiera krótki numer VC Informacje o stanie Routery nie pamiętają danych stanu
połączeń
Każdy VC wymaga w tablicach
routerów miejsca na każde połączenie Routing Każdy pakiet jest kierowany niezależnie Trasa wybierana przy zestawianiu VC;
podążają nią wszystkie pakiety Skutki problemów z
routerem
Żadne poza pakietami utraconymi w chwili awarii
Wszystkie VC przechodzące przez ten router zostają zerwane
Zapewnienie jakości
usług Trudne Łatwe, jeśli dla każdego VC można z
góry przydzielić wystarczające zasoby Kontrola przeciążeń Trudna Łatwa, jeśli dla każdego VC można z
góry przydzielić wystarczające zasoby
ALGORYTMY ROUTINGU
Algorytmy routingu
• W większości sieci pakiety do ukończenia podróży wymagają wielu przeskoków.
• Algorytmy wybierające trasy i używane przez nie struktury danych są ważnym obszarem
projektowania sieci.
• Przekazywanie (ang. forwarding) – proces, który obsługuje każdy przychodzący pakiet, szukając dla niego w tablicach routingu linii wyjściowej.
• Algorytmy routingu – odpowiadają za wypełnianie i
aktualizację tablic routingu.
Algorytmy routingu: właściwości
• Poprawność
• Prostota
• Odporność (radzenie sobie ze zmianami w topologii i ruchu bez żądania przerwania wszystkich zadań
we wszystkich hostach)
• Stabilność (stabilny algorytm dochodzi do stanu ustalonego i pozostaje w nim)
• Sprawiedliwość
• Skuteczność (sprawiedliwość i skuteczność są
często cele sprzeczne ze sobą)
Algorytmy routingu: klasy
• Algorytmy nieadaptacyjne nie opierają swoich
decyzji o wyborze tras na jakichkolwiek pomiarach i szacunkach bieżącej topologii i ruchu. Wybór trasy jest wyliczany z góry i informacje są ładowane do routerów przy starcie sieci – routing statyczny.
• Algorytmy adaptacyjne zmieniają decyzje o trasach zależnie od zmian w topologii sieci, a niekiedy
również w zależności od ruchu w sieci. Takie
algorytmy routingu dynamicznego różnią się tym,
skąd pobierają informacje, kiedy zmieniają trasy,
oraz parametrami używanymi do optymalizacji.
Algorytmy routingu: zasada optymalności
• Zasada optymalności (Bellman, 1957) – jeśli router J znajduje się na optymalnej trasie od routera I do
routera K, to optymalna ścieżka od J do K przebiega tą samą trasą.
• Z zasady optymalności zbiór optymalnych tras z wszystkich źródeł do jednego celu tworzy drzewo z korzeniem w węźle docelowym (tzw. drzewo ujścia).
• Zadaniem wszystkich algorytmów routingu jest wykrycie i używanie drzew ujścia dla wszystkich routerów.
Algorytm z wyborem najkrótszej ścieżki
• Obliczanie optymalnych ścieżek dla zadanego kompletnego schematu sieci.
• Aby wybrać trasę pomiędzy daną parą routerów, algorytm znajduje w grafie najkrótszą ścieżkę
pomiędzy nimi.
• Jednym ze sposobów pomiaru długości ścieżki jest liczenie przeskoków. W ogólnym przypadku etykiety krawędzi mogą być obliczane jako funkcja
odległości, przepustowości, średniego obciążenia, kosztów połączenia, zmierzonego opóźnienia i
innych czynników.
Algorytm Dijkstry (1959) obliczający
najkrótszą ścieżkę przez graf
Routing rozpływowy
• Przy realizacji algorytmu wyznaczania tras każdy z routerów powinien podejmować decyzje w oparciu o dostępną mu lokalnie wiedzę, bez odwoływania się do globalnego obrazu sieci.
• Prostą techniką lokalnego pozyskiwania informacji
jest routing rozpływowy (ang. flooding), w którym
każdy przychodzący pakiet jest wysyłany na każdą
linię wyjściową z wyjątkiem tej, na której przyszedł.
Routing rozpływowy
• Ogromna liczba powtarzających się pakietów w nagłówku każdego pakietu licznik przeskoków
zmniejszany o jeden przy każdym przeskoku. Pakiet zostaje odrzucony, gdy licznik dojdzie do zera.
• Wykładnicza liczba duplikatów pakietów – routery powielają pakiety już wcześniej obsłużone.
Umieszczenie przez źródłowy router numeru sekwencyjnego w każdym pakiecie.
• Lista dla każdego routera źródłowego – które numery pochodzące z tego źródła były już widziane.
• Aby zapobiec nieograniczonemu rozrastaniu się listy, każda lista jest uzupełniona o licznik k – wszystkie numery sekwencyjne aż do k były już widziane.
Routing rozpływowy: zastosowanie
• Gwarantuje dostarczenie pakietu do wszystkich węzłów sieci.
• Skuteczny. Nawet jeśli znaczna liczba routerów nie działa, rozpływ doprowadzi w końcu do znalezienia ścieżki, jeśli tylko ścieżka ta w ogóle istnieje.
• Technika ta nie wymaga specjalnych przygotowań – routery muszą znać jedynie swoje bezpośrednie
sąsiedztwo.
• Technika rozpływowa może stanowić bazę, na której implementowane są bardziej efektywne algorytmy, korzystające z danych zebranych w fazie rozpływu.
Routing z użyciem wektorów odległości
• W sieciach komputerowych wykorzystuje się przeważnie algorytmy wyznaczania trasy (nieco rozbudowane w porównaniu z algorytmem
rozpływowym), bo są one również bardziej
efektywne – wyszukują najkrótszą ścieżkę pakietu w bieżącej topologii sieci.
• Najpopularniejsze są zwłaszcza dwa dynamiczne
algorytmy: wektorów odległości (distance vector
routing) oraz stanu połączeń (link state routing).
Routing z użyciem wektorów odległości
• Algorytmy routingu za pomocą wektorów odległości (rozproszony algorytm routingu Bellmana-Forda; RIP) wykorzystują tablicę (czyli wektor) utrzymywaną przez każdy router i podającą najlepsze znane odległości do każdego celu oraz łącze służące do dotarcia do celów.
• Odległość może być mierzona liczbą przeskoków albo dowolną inną miarą.
• Tablice te są aktualizowane przez wymianę informacji pomiędzy sąsiadami.
• W końcu każdy z routerów poznaje najlepsze łącze pozwalające na osiągnięcie dowolnej lokalizacji docelowej.
Routing z użyciem wektorów odległości
J tworzy swoją nową trasę do routera G – oblicza opóźnienia do G poprzez A, I, H i K jako odpowiednio 26 (18+8), 41
(31+10), 18 (6+12) i 37 (31+6) ms.
Problem naliczania do nieskończoności
• Sprowadzanie ścieżek do postaci najlepszych ścieżek w sieci nosi miano konwergencji.
• Sednem problemu naliczania do nieskończoności jest to, że jeśli X mówi Y, iż ma dokądś ścieżkę, Y nie może w żaden sposób ustalić, czy sam nie jest elementem tej ścieżki.
Problem naliczania do nieskończoności
• Dobre nowiny rozchodzą się z szybkością jednego przeskoku na wymianę. W sieci, której najdłuższa ścieżka ma N przeskoków, po N wymian wszystkie routery wiedzą o włączonych właśnie do
eksploatacji łączach i routerach.
• Złe wieści rozchodzą się powoli – stopniowo
wszystkie routery dążą do nieskończoności, lecz liczba wymaganych wymian zależy od wartości
liczbowej używanej do oznaczenia nieskończoności.
Z tego powodu rozsądnie jest zdefiniować
nieskończoność jako najdłuższą trasę plus 1.
Routing z użyciem stanów połączeń
• Routing z użyciem wektorów odległości był
wykorzystywany w sieci ARPANET do roku 1979,
gdy został zastąpiony routingiem z użyciem stanów
połączeń (link state routing). Do najczęściejwykorzystywanych wariantów tego algorytmu należą IS-IS i OSPF.
• Wycofanie routingu z użyciem wektorów odległości z użytku wiązało się z problemem nadmiernie
długiej konwergencji po zmianie topologii sieci
(wynikającej właśnie z problemu naliczania do
nieskończoności).
Routing z użyciem stanów połączeń
• W routingu z użyciem stanów połączeń każdy router musi:
1. Odkryć swoich sąsiadów i poznać ich adresy sieciowe.
2. Ustawić dla każdego z sąsiadów miarę kosztu (odległości).
3. Utworzyć pakiet zawierający wszystko, czego się nauczył.
4. Wysłać ten pakiet do wszystkich innych routerów i odebrać analogiczne pakiety od reszty.
5. Ustalić najkrótszą trasę do każdego innego routera.
• W wyniku powyższego opis całej topologii jest dystrybuowany do każdego routera w sieci.
• Do znalezienia najkrótszej trasy do każdego routera może zostać użyty algorytm Dijkstry.
Routing z użyciem stanów
połączeń: poznawanie sąsiadów
• Wysyłanie specjalnego pakietu HELLO do każdej linii dwupunktowej.
• Router na drugim końcu linii powinien odesłać
identyfikującą go odpowiedź. Nazwy routerów muszą być globalnie unikatowe.
• Modelowanie sieci lokalnej (łącza rozgłoszeniowego) jako wielu odrębnych łączy dwupunktowych przyczynia się do generowania niepotrzebnych komunikatów.
• Sieć lokalną można lepiej zamodelować np. jako osobny węzeł.
Routing z użyciem stanów
połączeń: określanie kosztu łączy
• Do skutecznego wyznaczania najkrótszych ścieżek należy poszczególnym łączom przypisać odległości albo inaczej – koszt transmisji pakietu.
• Koszt ten może być ustawiany automatycznie lub konfigurowany przez operatora sieci.
• Zazwyczaj koszt określa się jako wartość odwrotnie
proporcjonalną do przepustowości łącza. Dzięki temu ścieżki o większej pojemności są traktowane priorytetowo.
• Jeśli sieć jest mocno rozproszona geograficznie, w koszcie warto uwzględnić opóźnienie propagacji pakietów.
Najbardziej bezpośrednim sposobem ustalenia opóźnienia jest wysłanie łączem specjalnego pakietu ECHO, który druga strona jest zobowiązana natychmiast odesłać.
Routing z użyciem stanów połączeń:
tworzenie pakietów stanu połączeń
• Pakiet zaczyna się od tożsamości nadawcy, po której następuje numer sekwencyjny i wiek oraz lista
sąsiadów. Dany jest też koszt transmisji do poszczególnych sąsiadów.
• Pakiety są tworzone okresowo lub gdy wystąpi jakieś znaczące zdarzenie (np. awaria, przywrócenie do
eksploatacji, znacząca zmiana właściwości linii albo sąsiada).
Routing z użyciem stanów połączeń:
dystrybucja pakietów stanu połączeń
• W całym algorytmie najtrudniejszym zadaniem jest dystrybucja pakietów stanu połączeń.
• Dostarczanie wszystkim routerom wszystkich pakietów o stanie łącza powinno odbywać się możliwie szybko i pewnie: jeżeli różne routery używają różnych wersji topologii, wyznaczane trasy mogą cechować się
niespójnością, posiadać pętle, węzły nieosiągalne itp.
• Podstawową ideą jest dystrybucja pakietów metodą rozpływu do wszystkich routerów.
• Aby zabezpieczyć się przed błędami na łączach, wszystkie pakiety stanu łączy są potwierdzane.
Routing z użyciem stanów połączeń:
dystrybucja pakietów stanu połączeń
• Aby utrzymać rozpływ pod kontrolą, każdy pakiet zawiera numer sekwencyjny inkrementowany przy wysyłaniu nowego pakietu.
• Algorytm ten ma kilka wad:
• Zawinięcie numeracji – używany jest 32-bitowy numer sekwencyjny.
• Strata ciągłości numerów sekwencyjnych.
• Uszkodzenie numeru sekwencyjnego.
• Rozwiązaniem jest zapisanie wieku pakietu zaraz po numerze sekwencyjnym i dekrementowanie go co sekundę.
• Pole Wiek jest również dekrementowane przez każdy router podczas początkowego procesu dystrybucji.
Routing z użyciem stanów
połączeń: obliczanie nowych tras
• Gdy router zakumuluje już pełny zbiór pakietów stanu połączeń, może zbudować graf całej sieci.
• W rzeczy samej każde łącze jest reprezentowane
dwukrotnie, po jednym razie w każdą stronę. Różne kierunki wzdłuż tego samego łącza mogą zresztą cechować się
różnym kosztem.
• Teraz można lokalnie uruchomić algorytm Dijkstry, aby
zbudować najkrótsze ścieżki do wszystkich możliwych miejsc przeznaczenia. Informacja ta jest instalowana w tablicach routingu, po czym przywraca się normalną eksploatację.
• W porównaniu do routingu z wektorem odległości, routing ze stanem łączy jest bardziej wymagający pod względem pamięci i mocy obliczeniowej.
Routing hierarchiczny
• W miarę rozwoju wielkości sieci tablice routingu w routerach również rosną proporcjonalnie.
• W dużych sieciach routing musi odbywać się hierarchicznie, jak w sieci telefonicznej.
• Routery zostają podzielone na obszary (regiony). Każdy router zna wszystkie szczegóły kierowania pakietów do celów we własnym regionie, lecz nie wie nic o
wewnętrznej strukturze pozostałych regionów.
• W miarę zwiększania stosunku liczby regionów do liczby routerów na region wzrasta oszczędność miejsca w
tablicy. Niestety, trzeba zapłacić za to zwiększoną długością ścieżki.
Routing hierarchiczny
Routing hierarchiczny
• W olbrzymich sieciach hierarchia dwupoziomowa może nie wystarczać – może zajść konieczność
zgrupowania regionów w klastry, klastrów w strefy, stref w grupy itd.
• Kamoun i Kleinrock (1979) – optymalna liczba
poziomów dla sieci z N routerów wynosi ln(N) iwymaga łącznie e ln(N) wpisów na router. Wzrost średniej efektywnej długości ścieżki, powodowany przez routing hierarchiczny, jest wystarczająco
mały, aby zwykle był do przyjęcia.
Routing rozgłoszeniowy
• Wysłanie pakietu do wszystkich miejsc przeznaczenia jednocześnie nosi nazwę rozgłaszania (ang.
broadcasting).
• Routing wieloadresowy (ang. multidestination routing) – każdy pakiet zawiera albo listę miejsc przeznaczenia, albo mapę bitową wskazującą pożądane cele.
• Router sprawdza wszystkie miejsca przeznaczenia.
Router generuje nową kopię każdego pakietu dla każdej linii wyjściowej i zawiera w każdym pakiecie tylko te
miejsca docelowe, które będą używać danej linii.
• Schemat ten zakłada znajomość wszystkich adresów docelowych po stronie źródła, a dodatkowo router ma tyle samo pracy z rozprowadzeniem pojedynczego
pakietu wieloadresowego co z rozprowadzeniem wielu osobnych pakietów jednoadresowych.
Routing rozgłoszeniowy (2)
• Skuteczna technika routingu rozgłoszeniowego: routing rozpływowy. Pozwala na efektywne wykorzystanie łącza przy jednoczesnym uproszczeniu reguł decyzyjnych po stronie routerów uczestniczących w rozpływie.
• Rozprowadzanie wzdłuż ścieżki odwrotnej (Dalal i Metcalfe, 1978). Kiedy do routera dociera pakiet rozgłoszeniowy,
router sprawdza, czy dotarł on linią, która zwykle jest używana do wysyłania pakietów do źródła rozgłoszeń.
• Jeśli tak, to router przekazuje dalej kopie pakietu do
wszystkich łączy, z wyjątkiem tego, na którym się pojawił.
• Jeśli jednak pakiet rozgłoszeniowy pojawi się na łączu innym niż preferowane do komunikacji z jego źródłem, to zostaje odrzucony jako prawdopodobny duplikat.
Routing rozgłoszeniowy (3)
• Metoda rozprowadzania z braniem pod uwagę
odwrotnej ścieżki jest jednocześnie w rozsądnym
stopniu efektywna i łatwa do zaimplementowania.
Routing rozgłoszeniowy (4)
• Ulepszenie metody z rozprowadzaniem wstecz. Polega na jawnym użyciu drzewa ujścia po stronie routera
inicjującego rozgłoszenie.
• Jeśli każdy router wie, które z jego łączy należą do drzewa częściowego, może skopiować przychodzący pakiet na wszystkie łącza drzewa częściowego poza łączem, z którego pakiet przybył.
• Metoda ta bardzo efektywnie wykorzystuje
przepustowość sieci, ponieważ generuje minimalną liczbę pakietów konieczną do realizacji rozgłoszenia.
• Każdy z routerów musi posiadać wiedzę o bieżącym schemacie drzewa częściowego. Niekiedy informacja taka jest faktycznie dostępna, często jednak wiedza ta jest nieosiągalna dla poszczególnych routerów.
Routing rozsyłania grupowego
• Wysyłanie komunikatów do grup, które mają dużą liczbę członków, lecz są małe w porównaniu z całą siecią, nosi nazwę rozsyłania grupowego lub
multiemisji (ang. multicasting), a jego algorytm
routingu nosi nazwę algorytmu routingu rozsyłania grupowego (ang. multicast routing).
• Metody routingu rozsyłania grupowego bazują przeważnie na omawianych już schematach
rozgłaszania, a więc na rozsyłaniu pakietów wzdłuż drzew częściowych.
• Dobór optymalnego drzewa częściowego jest
uzależniony od tego, czy grupy są gęste, czy rzadkie.
Routing rozsyłania grupowego (2)
• Jeśli grupa jest gęsta, rozproszona po całej sieci,
dobrym punktem wyjścia dla rozsyłania grupowego jest zwyczajne rozgłaszanie.
• Rozgłaszanie obejmie routery, które nie obsługują żadnego członka grupy
multiemisji czyszczenie drzewa częściowego
multiemisji przez
usuwanie tych łączy, które nie prowadzą do żadnego członka grupy.
Metody okrawania drzewa częściowego
• W przypadku wykorzystania routingu z użyciem stanu łączy, jeśli każdy router zna pełną topologię, każdy z routerów może skonstruować własne okrojone drzewo częściowe dla każdego z nadawców w rozpatrywanej grupie. Przykładem tak działającego protokołu jest MOSPF (Multicast OSPF).
• W routingu z użyciem wektorów odległości można użyć algorytmu przekazywania z braniem pod uwagę
odwrotnej ścieżki. Przykładem protokołu routingu rozsyłania grupowego działającego na takiej zasadzie jest DVMRP (Distance Vector Multicast Routing
Protocol).
• Jedną z wad drzewa częściowego jest spory narzut pracy dla routerów, odczuwalny zwłaszcza w dużych sieciach.
Drzewa centrowane
• Drzewo centrowane (ang. core-based tree) –
pojedyncze drzewo częściowe wspólne dla całej grupy multiemisji.
• Wszystkie routery uzgadniają tutaj wspólny węzeł
główny (zwany rdzeniem albo punktem zbornym – ang.
rendezvous point) i budują drzewo częściowe poprzez wysyłanie pakietów od wszystkich członków grupy do punktu zbornego.
• Nadawca zainteresowany rozesłaniem komunikatu do członków grupy powinien wysłać pakiet do węzła
głównego; tam pakiet zostanie rozprowadzony po
wszystkich łączach wspólnego, centrowanego drzewa częściowego.
Drzewa centrowane (2)
• Drzewa centrowane są znacznie oszczędne w zakresie zasobów pamięciowych, liczby wysyłanych
komunikatów i ilości obliczeń koniecznych do rozprowadzenia multiemisji.
• Wspólne drzewa częściowe multiemisji stosuje się w popularnych protokołach rozsyłania grupowego, jak PIM (Protocol Independent Multicast).
Rozprowadzanie do najbliższego węzła (anycast)
• Tryby rozprowadzania:
• do pojedynczego odbiorcy (unicast)
• do wszystkich możliwych odbiorców (broadcast)
• do predefiniowanej grupy odbiorców (multicast)
• do najbliższego członka grupy (anycast)
• Metody rozprowadzania pakietów do najbliższego odbiorcy noszą miano routingu w trybie anycast.
• Usługę realizuje równie dobrze wiele węzłów sieci, np. usługa czasu czy usługa nazw domenowych
(DNS).
Routing w trybie anycast
• Trasy dla rozprowadzania typu anycast można wyznaczyć z klasycznych metod z routingiem statycznym czy z wektorem odległości.
• Z punktu widzenia protokołu nie jest istotne
rozróżnienie na wiele instancji adresu docelowego: dla protokołu wszystkie te instancje są de facto jednym i tym samym węzłem.