Prof. Dr.-Ing. Thomas Schwotzer FB 4 / AI / Mobile Anwendungen Ad-hoc Networks Routing
Eigenschaften keine feste Netzwerk-Infrastruktur – kein Adressschema, das auf Rückschlüsse auf Verteilung / Topologie des Netzes zulässt keine dedizierten Router Änderung der Topologie die Regel – nicht Ausnahme
Routing Weiterleitung von Datenpaketen – Multi – Hop: über mehr als einen Rechner Routingverfahren, Klassifikation – adaptiv / nicht adaptiv Anpassung an Veränderungen in Topologie ja / nein – proaktive Wege zu Knoten bekannt, auch ohne dass bisher Daten gesendet wurde – reaktiv Ermittlung der Wege bei Bedarf (on demand)
Routing mit festen Topologien Skizze Tafel – festes IP-Netz – Router, dedizierte Router – Subnetze – Adress-Schema
Destination-Sequenced Distance-Vector DSDV, Perkins, C. E.; Bhagwat, P proaktives Distance-Vector-Verfahren Routingtabelle: – Zielknoten – Hop – Metrik (üblich # Hops) 0.. selbst
Beispiel K1K1 K2K2 K3K3 K4K4 K5K5 Quelle: Roth: Mobile Computing
Adaptive Routingtabelle (Prinzip) benachbarte Knoten senden Distance-Vectoren Aktualisierung, – wenn kürzerer Weg gefunden wurde – wenn bekannte Route veränderte Metrik Beispiel an der Tafel Problem: Wettlaufbedingungen
Das DSDV - Verfahren Routingtabelle erhält zusätzliche Sequenznummer (Version des Eintrags) Abgleich der Tabellen benachbarter Knoten periodisch / in jedem Fall bei Änderung Aktualisierung Eintrag, wenn – Sequenznummer höher oder – gleiche Sequenznummer + geringer Distanz Voraussetzung: bidirektionale Verbindung zwischen den Knoten
Das DSDV – Verfahren (2) Ni – beliebiger Knoten, Nj – Nachbar, Nk – beliebiger weiterer Knoten Mab: Metrik a – b; Hab: Hop a – b Init: – Hii <- Ni; Him <- unbekannt für alle m != i – Mii <- 0; Mim <- unendlich für alle m != i – Sii <- 0, Sim <- -1 für alle m != i Danach Austausch zwischen Knoten
Das DSDV – Verfahren (3) Ni empfängt Daten von Nj wenn Sik < Sjk oder Sik == Sjk && Mij + Mjk < Mik dann – Hik <- Nj – Mik <- Mij + Mjk – Sik <- Sjk Nach jeder Verbreitung Sequenznummer um 2 erhöhen – Sjj += 2
Beispiel K7K7 K8K8 K1K1 K2K2 K6K6 K5K5 K4K4 K3K3
Erkennung Unterbrechung Ni erkennt Verbindungsverlust zu Nj: – für alle (für alle Hik = Nj) Hik <- unbekannt Mik <- unendlich Sik++ Sequenznummer wird durch Ni, nicht Nj verändert (um 1 erhöht) – neueste Information, wenn Nj verschwunden – Nj kann überschreiben, wenn wieder aufgetaucht – Löst das Count-to-Infinity-Problems
Dynamic Source Routing (DSR) reaktives Verfahren Source-Routing-Verfahren – Sender ermittelt Route zum Ziel und hinterlegt sie im Paket Ermittlung der Route über Route Discovery Protocol Kontrolle, ob Weg noch existiert über Route Maintenance Protocol – nein: Mitteilung an Sender
Route Discovery jeder Knoten Cache mit bekannten Wegen wenn Paket von Ki an Kj gesendet werden soll: Test ob Weg bekannt – ja: diesen nutzen – nein: Route Request an alle Nachbarn senden eindeutige ID, Kj, Route (Ki)
Behandlung Route Request schon erhalten (ID bekannt) – ignorieren Empfänger Kn ist Ziel – erzeuge Route Reply mit bisherige Route + Kn Route von Kn nach Kj bekannt – erzeuge Route Reply mit bisherige Route + Route(nj) sonst: – sende Request an alle Nachbarn außer Sender – Route + Kn
Rücksenden von Route Reply bei bidirektionalen Verbindungen: – senden an Absender bei unidirektionalen Verbindungen: – erzeuge Paket mit Ziel Ni – starte Route Disovery zum Ziel – sende Paket ans Ziel
Aktualisierung Cache Route Reply erreicht Ki – Cache speichert neuen Weg Km leitet Route Reply weiter. Wenn Km Teil des Weges nach Kj, dann speichert Km Weg nach Kj Km leitet Datenpaket weiter: Km speichert Wegeinformationen nach Kj Beispiel an der Tafel: Netzbeispiel siehe obiges Beispiel
Route Maintenance bei Weiterleiten: prüfen, ob Verbindung existiert – ja: wunderbar nein: – ERROR Paket an Sender schicken – alle Knoten dazwischen löschen Weg aus Cache Beispiel
Diskussion Vor- und Nachteile Nachteile DSDV: hohe Last bei Änderung Topologie DSR: Wettlauf von Route Request Paketen – mögliches Ignorieren kurzer Wege Vorteile: – on demand Routing Tabellen (weniger Last) – keine Source Routing (kein Wettlauf)
Ad-hoc On-demand Distance Vector AODV zwei Phasen – Route Discovery RREQ Paket: flutet Netz, um Ziel zu finden RREP Paket: Antwort bei gefundener Route zurück – Route Maintenance im Fehlerfall RERR Paket an Sender schicken dieser startet neues Route Discovery
AODV - Tabellen Reverse Routing Tabelle – Ziel – (Quelle) – Pre – Metrik Routing Tabelle – Ziel – Hop – Metrik – Sequenznummer
RREQ / RREP Sender flutet Netz – (Ziel, Quelle, Pre, Metrik) – Empfänger speichern in Reverse Routing Weiterleiten, wenn kein Weg bekannt – Variante: Expanding Ring Search RREQ erhält TTL (beginnend mit 1) nach Timeout TTL erhöhen bis Maximalwert Erfolg: Merken der TTL, erneute Suche TTL+2 Weg bekannt: – Routingeintrag mit RREP zurücksenden Ziel, Hop (selbst), Metrik, Sequenznummer
Beispiel Beispiel an der Tafel
RERR aktive Route: Route auf der vor kurzem Daten gesendet wurden Ausfall eines Hops einer aktiven Route: – RERR an alle Vorgänger einer aktiven Route – ausgefallener Knoten, Ziel der aktiven Route