430 likes | 626 Views
Technologie sieciowe 2 (TS2) Wykład 3: Trasowanie a efektywność wykorzystania zasobów sieci. dr inż. Andrzej Szwabe Instytut Automatyki i Inżynierii Informatycznej, Wydział Elektryczny Politechniki Poznańskiej e-mail: Andrzej.Szwabe@put.poznan.pl. Plan wykładu.
E N D
Technologie sieciowe 2 (TS2) Wykład 3: Trasowanie a efektywność wykorzystania zasobów sieci dr inż. Andrzej Szwabe Instytut Automatyki i Inżynierii Informatycznej, Wydział Elektryczny Politechniki Poznańskiej e-mail: Andrzej.Szwabe@put.poznan.pl
Plan wykładu • Podstawy rutingu (trasowania) • Ruting a przekazywanie pakietów IP (IPforwarding) • ClasslessInterdomainRouting (CIDR) • Systemy autonomiczne w rutingu • Routery wewnętrzne i zewnętrzne oraz ich najważniejsze protokoły • Identyfikatory ruterów, numerowane i nienumerowane połączenia • Dystrybucja informacji o trasach w sieci • Ruting wg wektorów odległości (distancevectors) • Ruting wg stanu połączeń (link state routing) • Wektory ścieżek i polityki • Algorytmy wyznaczania ścieżek: • OpenShortestPath First (OSPF), • ConstrainedShortestPath First (CSPF), • EqualCostMultipath (ECMP)
Ruting a przekazywanie pakietów IP (IP forwarding) • Routery dokonują wyboru trasy na podstawie informacji zapisanej w tablicy tras. • Router działa na podstawie aktualizowanej zawartości tablicy tras – w ogólności trasy się zmieniają w czasie -> poza hostami końcowymi konieczne jest trasowanie dynamiczne. • Trasowanie (ruting) dynamiczne jest złożeniem funkcji: • Pozyskiwania od innych ruterów rozproszonych danych o dostępnych trasach przekazywania pakietów („wejście danych sterujących”) • Lokalnego wyznaczania przez rutery dostępnych tras przekazywania pakietów („przetwarzanie danych sterujących -> podejmowanie decyzji”) na podstawie danych o rutingu (RIB) • Lokalnego przekazywania pakietów pomiędzy posieciami („wykonanie pracy”) na podstawie danych o przekazywaniu pakietów (FIB) • Udostępniania innym ruterom danych o dostępnych trasach przekazywania pakietów („wyjście danych sterujących”)
Bezklasowe trasowanie międzydomenowe (CIDR) • ClasslessInterdomainRouting • Środek zaradczy wobec rosnącej liczby wpisów w tablicach trasowania dla rutingu bazującego na klasach adresów IP • Agregacja tras umożliwia dalszą redukcję liczby wpisów w tablicach trasowania dzięki reprezentowaniu wielu podsieci przez pojedynczy wpis. • W przykładzie podsieci 176.19.168.16/28 176.19.168.32/28 mogą być dla potrzeb trasowania reprezentowane jako pojedyncza podsieć 176.19.168.32/27.
Systemy autonomiczne w rutingu • System autonomiczny – wyodrębniona grupa integralnie zarządzanych sieci i routerów. • Routery wewnątrz systemu autonomicznego zarządzają trasami w sposób niewidoczny dla hostów spoza systemu autonomicznego • Rutery działające wewnątrz systemu to tzw. bramki wewnętrzne (interior gateways). • W obrębie systemu autonomicznego funkcjonują rutery przeznaczone do komunikacji z innymi systemami autonomicznymi • Routery odpowiedzialne za komunikację z innymi systemami autonomicznymi to tzw. bramki zewnętrzne albo brzegowe (exteriorgateways) - odpowiadają one za przekazywanie do innych systemów informacji o osiągalności sieci wewnątrz „swojego” systemu.
Routery wewnętrzne i zewnętrzne oraz ich najważniejsze protokoły • Do protokołów używanych do komunikacji między routerami zewnętrznymi należą BGP (BorderGatewayProtocol) i EGP (ExteriorGatewayProtocol) • Ruter zewnętrzny komunikuje się z sąsiednim routerem zewnętrznym, „ustalając” wzajemne sąsiedztwo i wymieniając informacje o ścieżkach łączących sieci. • Ruter cyklicznie weryfikuje działanie sąsiednich ruterów. • Sąsiednie rutery wymieniają komunikaty umożliwiające aktualizację tablice rutingu - komunikat zawiera listę znanych danemu routerowi sieci (łączących rutery wewnętrzne) i odległości do nich. • Do protokołów używanych do komunikacji między routerami wewnętrznymi należą RIP i OSPF • Najpowszechniej stosowanym porotokołemrutinguwg wektorów odległości (distancevectorsroutingprotocol) jest RIP (RoutingInformationProtocol) • Najpowszechniej stosowanym porotokołemrutinguwg stanu połączeń (link state routingprotocol) jest OSPF (Open SPF Protocol, nie mylić protokołu z algorytmem OpenShortestPath First!) • W sieciach typu wirelessmultihopstsosuje się podobny do OSPF protokół OLSR
Identyfikatory ruterów i połączeń • Przykład prostej sieci z połączeniem wielodostępowym (multi-access link), numerowanym połączeniem dwudostępowym (numberedpoint-to-point link) i połączeniem nienumerowanym.
Ruting według wektorów odległości (distance vector routing) • Algorytm trasowania według wektorów odległości • Router przechowuje w tablicy wszystkie znane mu routery. • Router przy starcie tworzy tablicę sieci bezpośrednio dostępnych. • Każdy wpis w tablicy zawiera informację o odległości do danej sieci. • Co jakiś czas router wysyła tablicę tras do wszystkich bezpośrednio dostępnych routerów, a one aktualizują swoje tablice tras zgodnie z uzyskaną informacją. • Podstawowa zasada działania trasowania z użyciem protokołu RIP
Ruting według wektorów odległości • Ograniczona szybkość propagacji danych o trasach
Ruting według wektorów odległości • Ograniczona szybkość propagacji danych o trasach
Problem „liczenia w nieskończoność” • Nawet w przypadku niewielkiej sieci trasowanie według wektorów odległości może teoretycznie prowadzić do wystąpienia zjawiska „liczenia w nieskończoność”.
Prosty środek zaradczy wobec „liczenia w nieskończoność” • Zastosowanie w sieci z trasowaniem według wektorów odległości progu dopuszczalnej odległości wpisu jest prostym środkiem zaradczym wobec problemu „liczenia w nieskończoność”.
Ruting według stanów połączeń (link state routing) • Podstawowa zasada: trasy wyznaczane przez węzły niezależnie od siebie (w sposób rozproszony) na podstawie współdzielonych danych o połączeniach, a nie trasach. • Podstawowe funkcje trasowania według stanów połączeń: • „Odkrywanie” (discovery) sąsiednich (w sensie warstwy drugiej) ruterów • Rozgłaszanie informacji o połączeniach (Link State Advertisement, LSA) na zasadzie „powodzi” (link state flooding) • „Starzenie się” wpisów w lokalnej bazie rutera • Cykliczne ponawianie („odświeżanie”) LSA • Selektywne odświeżanie lokalnych baz danych o stanie połączeń • Wykrywanie przerwanych połączeń • Sprzętowe, na poziomie warstwy fizycznej • Na poziomie warstwy łącza danych • Na poziomie warstwy sieciowej (niepowodzenie komunikacji z użyciem protokołu Hello) • Algorytmy wyznaczania ścieżek w sieciach z trasowaniem według stanów połączeń: • Open Shortest Path First (OSPF) – algorytm Dijsktry wyznaczania najkrótszej trasy • Constrained Shortest Path First (CSPF) – dodatkowe parametry połączeń jako podstawę wykluczenia ich w procesie wyznaczania najkrótszej trasy • Equal Cost Multipath (ECMP) – umożliwia równoległe stosowanie wielu alternatywnych tras o równym koszcie (długości liczonej w węzłach pośredniczących)
Ruting według stanów połączeń • Podstawowe funkcje trasowania według stanów połączeń: • „Odkrywanie” (discovery) sąsiednich (w sensie warstwy drugiej) ruterów • Rozgłaszanie informacji o połączeniach i odświeżanie lokalnych baz danych o stanie połączeń • Informowanie węzłów sąsiednich o przerwaniu połączenia
Obszary w sieci z trasowaniem według stanów połączeń • Problem złożoności obliczeniowej algorytmów wyznaczania tras według stanów połączeń • Duża liczba wpisów w bazach danych o połączeniach może ograniczać szybkość działania algorytmu. • Złożoność obliczeniową algorytmu można przybliżyć funkcją liczby połączeń n jako większą od n*log(n), ale mniejszą od n^2. • Technika sprzyjająca skalowalności algorytmów wyznaczania tras według stanów połączeń – obszary sieci (areas) połączone ruterami ABR- jako jedynymi znającymi połączenia wewnątrz obszarów (niekiedy będącymi bramami zewnętrznymi).
Trasowanie według wektorów ścieżek (path vector routing) • Trasowanie według wektorów ścieżek zakłada przekazywanie w komunikatach o trasach danych o całych ścieżkach, co m.in. umożliwia łatwą identyfikację pętli i zapobiega problemowi liczenia do nieskończoności. • Wadą jest znacznie większy niż w przypadku rutingu według wektorów odległości rozmiar komunikatach o trasach. • Zaletą jest umożliwienie dokonywania przez ruter wyboru trasy nie tylko w oparciu o dane o dystansie lub koszcie trasy, ale z uwzględnieniem również innych atrybutów ruterów i połączeń tworzących ścieżki • Możliwe jest podejmowanie decyzji o wyborze tras zgodnie z lokalnymi regułami, tzw. politykami (policies). • Możliwe jest uwzględnienie informacji o tym, że np. pewne połączenia są bardziej zawodne, mniej bezpieczne lub droższe. • Stosowanie zbyt uproszczonych polityk, niedopasowanych do polityk stosowanych w innych ruterach może doprowadzić do powstawania pętli.
Trasowanie według wektorów ścieżek (path vector routing) • Jedna z podstawowych zasad trasowania według wektorów ścieżek: redukcja ilości danych rutingowych dystrybuowanych w sieci dzięki mechanizmowi „streszczania tras” (route summarization) – trasy są rozgłaszane jako sekwencje ścieżek.
Trasowanie według wektorów ścieżek (path vector routing) • Druga podstawowa zasad trasowania według wektorów ścieżek: agregacja tras dzięki funkcji grupowania ścieżek w grupy (path sets).
Współdziałanie protokołów o różnych metodach trasowania • Niezależność technologiczna systemów autonomicznych
Współdziałanie protokołów o różnych metodach trasowania • Rola ruterów ASBR (Autonomous System Border Router) – ruterów realizujących zarówno funkcje protokołów IGP jak i EGP.
Algorytm wyznaczania ścieżek Open Shortest Path First • s - wierzchołek źródłowy, w(i,j) - waga krawędzi (i,j) w grafie • d - tablica odległości od źródła dla wszystkich wierzchołków grafu • Algorytm Dijkstry - znajdowanie najkrótszej ścieżki z pojedynczego źródła w grafie o nieujemnych wagach krawędzi: Dijkstra(G,w,s): dla każdego wierzchołka v w V[G] wykonaj d[v] := nieskończoność poprzednik[v] := niezdefiniowane d[s] := 0 Q := V dopóki Q niepuste wykonaj u := Zdejmij_Min(Q) dla każdego wierzchołka v – sąsiada u wykonaj jeżeli d[v] > d[u] + w(u, v) to d[v] := d[u] + w(u, v) poprzednik[v] := u • Złożoność algorytmu Dijkstry: , N – liczba węzłów, l – liczba połączeń
Algorytm Dijkstry (1) • Algorytm ma na celu odnalezienie najkrótszej drogi (w sensie sumy kosztów trasy) z a do każdego z pozostałych węzłów. • Wartości kosztu połączeń niekoniecznie są symetryczne.
Algorytm Dijkstry (2) • Czerwone strzałki wskazują drogę do węzłów osiągalnych z jedynego węzła o już ustalonej finalnie odległości (startowego, zaznaczonego na niebiesko). • Odległość do d jest najmniejszą możliwą ponieważ każda inna trasa przez węzły zaznaczone na czerwono („w trakcie sprawdzania”) będzie większa -> wezeł d uznaje się za „ostatecznie sprawdzony” i zaznacza kolorem pomarańczowym.
Algorytm Dijkstry (3) • Czerwone strzałki wskazują drogę do węzłów osiągalnych z węzłów o już ustalonej finalnie odległości (pomarańczowych). • Spośród węzłów o tymczasowo określonej odległości (b=4, e=33, g=23) tym o najmniejszej odległości jest węzeł b (b=4) – każda inna ścieżka do węzła b niż ta odpowiadająca odległości 4 musi prowadzić przez jeden z pozostałych węzłów o tymczasowo określonej odległości, a więc jest dłuższa niż 4. • Węzeł b zostanie zaznaczony na pomarańczowo jako węzeł o już ustalonej finalnie odległości (odległość od a do b zostaje uznana za równą 4)
Algorytm Dijkstry (4) • Odległości wynoszą aktualnie: c=6, e=16, g=23. • Uwaga: tymczasowa „estymata” odległości od węzła a do węzła e uległa zmianie. • Węzeł c ma najmniejszą odległość od węzła a, a więc wartość 6 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła c.
Algorytm Dijkstry (5) • Odległości wynoszą aktualnie: e=16, f=80, g=23, j=18. • Węzeł e ma najmniejszą odległość od węzła a i nie jest wskazywany przez żadną inną czerwoną strzałkę. • Wartość 16 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła e.
Algorytm Dijkstry (6) • Odległości wynoszą aktualnie: f=80, g=23, h=49, j=18. • Węzeł j ma najmniejszą odległość od węzła a - każda inna ścieżka do węzła j niż ta odpowiadająca odległości 18 musi prowadzić przez jeden z pozostałych węzłów o tymczasowo określonej odległości, a więc jest dłuższa niż 18. • Wartość 18 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła j.
Algorytm Dijkstry (7) • Odległości wynoszą aktualnie: f=26, g=23, h=49. • Uwaga: tymczasowa „estymata” odległości od węzła a do węzła f uległa zmianie. • Węzeł g ma najmniejszą odległość od węzła a - każda inna ścieżka do węzła g niż ta odpowiadająca odległości 23 musi prowadzić przez jeden z pozostałych węzłów o tymczasowo określonej odległości, a więc jest dłuższa niż 23. • Wartość 23 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła g.
Algorytm Dijkstry (8) • Odległości wynoszą aktualnie: f=26, h=49. • Węzeł f ma najmniejszą odległość od węzła a - każda inna ścieżka do węzła f niż ta odpowiadająca odległości 26 musi prowadzić przez jeden z pozostałych węzłów o tymczasowo określonej odległości, a więc jest dłuższa niż 26. • Wartość 26 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła f.
Algorytm Dijkstry (9) • Odległości wynoszą aktualnie: h=33, i=37. • Węzeł h ma najmniejszą odległość od węzła a - każda inna ścieżka do węzła g niż ta odpowiadająca odległości 33 musi prowadzić przez jeden z pozostałych węzłów o tymczasowo określonej odległości, a więc jest dłuższa niż 33. • Wartość 33 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła h.
Algorytm Dijkstry (10) • Odległość węzła i od węzła a równa jest 37. • Węzeł i nie jest wskazywany przez żadną alternatywną czerwoną strzałkę. • Wartość 37 uznaje się za ostatecznie wyznaczoną odległość od węzła a do węzła i.
Algorytm Dijkstry (11) • Algorytm zakończył działanie – pomarańczowe strzałki wskazują trasy o najmniejszych odległościach od węzła a, a wartości odległości podane są jako liczby opisujące węzły.
Algorytmy wyznaczania ścieżek CSPF i ECMP • Constrained Shortest Path First (CSPF) – dodatkowe parametry połączeń jako podstawę wykluczenia ich w procesie wyznaczania najkrótszej trasy • Equal Cost Multipath (ECMP) – umożliwia równoległe stosowanie wielu alternatywnych tras o równym koszcie (długości liczonej w węzłach pośredniczących)
Wybrane pozycje literaturowe • The Internet And ItsProtocols, A ComparativeApproach, Adrain Farrel, Morgan Kaufmann, Elsevier, San Francisco, 2004 • Sieci komputerowe i intersieci, D. E. Comer, WNT, Warszawa 2001 • Computer Networks, A. Tanenbaum, Prentice-Hall, 1996 • http://www.dgp.toronto.edu/people/JamesStewart/270/9798s/Laffra/DijkstraApplet.html • A. Szwabe, DANUMS: The First Delay-AwareUtilityMaximization System for Wireless Networks, In Procs. of 2009 NEM Summit, September 2009, Saint-Malo, France, ss. 59-64 • A. Szwabe, P. Misiorek, Integration of multi-pathOptimized Link State ProtocolwithMax-WeightScheduling, In Proc. of 2009 International Conference on Information and Multimedia Technology (ICIMT 2009), Jeju Island, South Korea, December 2009, ss. 458-462. • Zalecane samodzielne wyszukiwanie informacji w specyfikacjach (np. RFC) i publikacjach naukowych dostępnych w Internecie (potencjalny temat konsultacji)
Dziękuję za uwagę. Proszę o pytania.