Link-State-Routing-Protokoll

Link-State-Routing-Protokolle sind eine der beiden Hauptklassen von Routing -Protokolle benutzt in Paketschaltung Netzwerke für Computerkommunikation, das andere Wesen Distanzvektor-Routing-Protokolle. Beispiele für Link-State-Routing-Protokolle umfassen öffne den kürzesten Weg zuerst (OSPF) und Zwischensystem zum Zwischensystem (Is-is).

Das Link-State-Protokoll wird von jedem durchgeführt Knoten umschalten im Netzwerk (d. H. Knoten, die darauf vorbereitet sind, Pakete zu leiten; Internet, Diese nennt man Router). Das grundlegende Konzept des Verbindungsstaatroutings besteht darin, dass jeder Knoten a konstruiert Karte der Konnektivität zum Netzwerk in Form von a Graph, zeigen, welche Knoten mit anderen Knoten verbunden sind. Jeder Knoten berechnet dann unabhängig die nächstbeste logische Weg von ihm zu jedem möglichen Ziel im Netzwerk. Jede Sammlung der besten Wege bildet dann jeden Knoten Routing-Tabelle.

Dies steht im Gegensatz zu Distanzvektor-Routing-Protokolle, die funktionieren, indem jeder Knoten seine Routing-Tabelle mit seinen Nachbarn freigibt, in einem Link-State-Protokoll sind die einzigen Informationen, die zwischen Knoten übergeben werden Konnektivität verwandt. Link-State-Algorithmen werden manchmal informell als jeder Router charakterisiert, was "der Welt von ihren Nachbarn erzählt".

Geschichte

Was als das erste adaptive Routing-Netzwerk von Computern angesehen wird, das das Routing von Link-State als Herz verwendet, wurde zwischen 1976 und 77 von einem Team von einem Team entworfen und implementiert Plessey Radar angeführt von Bernard J Harris; Das Projekt war für "Wavell" - ein System des Computerkommandos und der Kontrolle für die britische Armee.

Das erste Link-State-Routing-Konzept wurde 1979 von veröffentlicht von John M. McQuillan (dann bei Bolt, Beranek und Newman) als Mechanismus, der die Routen schneller berechnen würde, wenn sich die Netzwerkbedingungen änderten, und somit zu einer stabileren Routing führen.[1][2]

Später Arbeit bei BBN Technologies zeigte, wie die Link-Status-Technik in einem hierarchischen System verwendet wird (d. H. Eines, in dem das Netzwerk in Bereiche unterteilt wurde), damit jeder Schaltknoten keine Karte des gesamten Netzwerks benötigt, nur die Bereiche (n), in denen es sich ist enthalten.

Die Technik wurde später für den Einsatz in den zeitgenössischen Verbindungsstaat-Routing-Protokollen IS-IS und OSPF angepasst. Cisco Literatur bezieht sich auf Verbessertes Innengateway -Routing -Protokoll (EIGRP) als "Hybrid" -Protokoll, obwohl es Routing -Tabellen anstelle von Topologiekarten verteilt. Es synchronisiert jedoch Routing -Tabellen bei Start up wie OSPF und sendet spezifische Aktualisierungen nur, wenn Topologieänderungen auftreten.

In 2004, Radia Perlman vorgeschlagen mit Link-State-Routing für Schicht 2 Rahmenweiterleitung mit Geräten genannt Brücken Routing oder rbridges. Das Internettechnik-Arbeitsgruppe hat die standardisiert transparente Verbindung vieler Links (Trill) Protokoll, um dies zu erreichen.[3]

In jüngerer Zeit wurde diese hierarchische Technik angewendet drahtlose Netznetzwerke Verwendung der Optimiertes Link -Status -Routing -Protokoll (OLSR). Wenn eine Verbindung eine unterschiedliche Qualität haben kann, kann die Qualität einer Verbindung verwendet werden, um bessere Verbindungen auszuwählen. Dies wird in einigen verwendet Ad -hoc -Routing -Protokolle die Funkfrequenzübertragung verwenden.

2012 die IEEE Fertigstellung und genehmigte die Standardisierung der Verwendung von IS-IS-zur Kontrolle Ethernet Weiterleiten mit IEEE 802.1AQ Kürzeste Pfadbrückung (SPB).

Karten verteilen

Diese Beschreibung deckt nur die einfachste Konfiguration ab. d.h. eine ohne Bereiche, damit alle Knoten eine Karte des gesamten Netzwerks haben. Der hierarchische Fall ist etwas komplexer; Siehe die verschiedenen Protokollspezifikationen.

Wie bereits erwähnt, besteht die erste Hauptstufe im Link-State-Algorithmus darin, jedem Knoten eine Karte des Netzwerks zu geben. Dies geschieht mit mehreren Nebenschritten.

Bestimmung der Nachbarn jedes Knotens

Zunächst muss jeder Knoten bestimmen, mit welchen anderen Ports er verbunden ist, über vollständig funktionierende Links. Es wird verwendet Erreichbarkeitsprotokoll Es läuft regelmäßig und getrennt mit jedem seiner direkt verbundenen Nachbarn.

Verteilen der Informationen für die Karte

Als nächstes sendet jeder Knoten regelmäßig (und im Falle von Konnektivitätsänderungen) eine kurze Nachricht, die Link-State-Werbung, die:

  • Identifiziert den Knoten, der ihn produziert.
  • Identifiziert alle anderen Knoten (entweder Router oder Netzwerke), an die sie direkt verbunden sind.
  • Enthält eine 'Sequenznummer', die jedes Mal erhöht, wenn der Quellknoten eine neue Version der Nachricht ausmacht.

Diese Nachricht wird an alle Knoten in einem Netzwerk gesendet. Als notwendiger Vorläufer erinnert sich jeder Knoten im Netzwerk für jeden von es ist Nachbarn, die Sequenznummer der letzten Link-Status-Nachricht, die sie von diesem Knoten erhalten hat. Wenn eine Link-Status-Anzeige an einem Knoten empfangen wird, schaut der Knoten die Sequenznummer nach, die für die Quelle dieser Link-Status-Nachricht gespeichert wurde: Wenn diese Nachricht neuer ist (d. H. Eine höhere Sequenznummer hat), wird sie gespeichert, dann wird sie gespeichert Die Sequenznummer wird aktualisiert und eine Kopie wird wiederum an die Nachbarn dieses Knotens gesendet. Diese Prozedur erhält schnell eine Kopie der neuesten Version der Link-Status-Werbung jedes Knotens zu jedem Knoten im Netzwerk.

Netzwerke mit Link -Status -Algorithmen können auch in Hierarchien unterteilt werden, die den Umfang der Routenänderungen einschränken. Diese Funktionen bedeuten, dass die staatlichen Algorithmen mit größerer Netzwerke besser mit größeren Netzwerken verknüpft werden.

Erstellen der Karte

Schließlich erzeugt jeder Knoten mit dem vollständigen Satz von Link-State-Anzeigen (einer aus jedem Knoten im Netzwerk) in der Hand den Grafik für die Karte des Netzwerks. Der Algorithmus iteriert die Sammlung von Link-State-Anzeigen; Für jedes einzelne wird Links auf der Karte des Netzwerks aus dem Knoten, die diese Nachricht gesendet haben, an alle Knoten, die diese Nachricht angibt, Nachbarn des Sendenknotens sind.

Es wird kein Zusammenhang als korrekt gemeldet, es sei denn, die beiden Enden sind sich einig. Wenn ein Knoten berichtet, dass er mit einem anderen verbunden ist, der andere Knoten jedoch nicht angibt, dass er mit dem ersten verbunden ist, gibt es ein Problem, und der Link ist nicht auf der Karte enthalten.

Anmerkungen zu dieser Phase

Die Link-State-Nachricht, die Informationen über die Nachbarn enthält, wird neu berechnet und dann im gesamten Netzwerk überflutet, wenn sich die Konnektivität zwischen dem Knoten und seinen Nachbarn ändert. z. B. wenn ein Link fehlschlägt. Eine solche Änderung wird durch das Erreichbarkeitsprotokoll festgestellt, das jeder Knoten mit seinen Nachbarn betreibt.

Berechnung der Routing -Tabelle

Wie ursprünglich erwähnt, besteht die zweite Hauptstufe im Link-State-Algorithmus darin, Routing-Tabellen durch die Überprüfung der Karten zu erstellen. Dies geschieht erneut mit mehreren Schritten.

Berechnung der kürzesten Pfade

Jeder Knoten betreibt unabhängig voneinander eine Algorithmus über der Karte, um die zu bestimmen kürzester Weg von sich selbst zu jedem anderen Knoten im Netzwerk; im Allgemeinen eine Variante von Dijkstra -Algorithmus wird genutzt. Dies basiert auf einem Linkkosten auf jedem Weg, der unter anderem verfügbare Bandbreite enthält.

Ein Knoten unterhält zwei Datenstrukturen: a Baum enthält Knoten, die "fertig" sind, und eine Liste von Kandidaten. Der Algorithmus beginnt mit beiden Strukturen leer; Es fügt dann den ersten den Knoten selbst hinzu. Die Variante von a Gieriger Algorithmus Dann macht wiederholte Folgendes Folgendes:

  • Alle Nachbarknoten, die direkt mit dem Knoten verbunden sind, werden gerade zum Baum hinzugefügt (mit Ausnahme von Knoten, die sich bereits in der Baum- oder der Kandidatenliste befinden). Der Rest wird zur zweiten (Kandidaten-) Liste hinzugefügt.
  • Jeder Knoten in der Kandidatenliste wird mit jedem der Knoten im Baum verglichen. Der Kandidatenknoten, der einem der Knoten, der bereits im Baum bereits im Baum ist, am nächsten ist, wird selbst in den Baum bewegt und an den entsprechenden Nachbarknoten befestigt. Wenn ein Knoten von der Kandidatenliste in den Baum verschoben wird, wird er aus der Kandidatenliste entfernt und in nachfolgenden Iterationen des Algorithmus nicht berücksichtigt.

Die beiden oben genannten Schritte werden wiederholt, solange in der Kandidatenliste Knoten verbleiben. (Wenn es keine gibt, wurden alle Knoten im Netzwerk zum Baum hinzugefügt.) Diese Prozedur endet mit dem Baum, der alle Knoten im Netzwerk enthält, wobei der Knoten, auf dem der Algorithmus als die ausgeführt wird Wurzel des Baumes. Der kürzeste Weg von diesem Knoten zu einem anderen Knoten ist durch die Liste der Knoten angezeigt, die man durch die Wurzel des Baumes zum gewünschten Knoten im Baum durchquert.

Füllen der Routing -Tabelle

Mit den kürzesten Wegen in der Hand besteht der nächste Schritt darin, die Routing -Tabelle auszufüllen. Für einen bestimmten Zielknoten ist der beste Pfad für dieses Ziel der Knoten, der der erste Schritt aus dem Stammknoten ist, den Zweig im kürzesten Pfadbaum hinunter zum gewünschten Zielknoten führt. Um die Routing -Tabelle zu erstellen, ist es nur notwendig, den Baum zu wandern, die Identität des Knotens am Kopf eines jeden Zweigs zu erinnern und den Eintrag zur Routing -Tabelle für jeden Knoten zu füllen, der zu dieser Identität kommt.

Optimierungen zum Algorithmus

Der oben beschriebene Algorithmus wurde so einfach wie möglich gemacht, um das Verständnis zu erleichtern. In der Praxis gibt es eine Reihe von Optimierungen, die verwendet werden.

Teilweise Neukomputation

Wenn eine Änderung der Konnektivitätskarte stattfindet, ist es erforderlich, den kürzesten Pfadbaum neu zu berechnen und dann die Routing-Tabelle neu zu erstellen. Die Arbeit von BBN Technologies entdeckte, wie man nur den Teil des Baumes neu berechnet, der durch eine bestimmte Änderung der Karte hätte beeinflusst werden können. Außerdem würde die Routing-Tabelle normalerweise als kürzester Pfadbaum berechnet, anstatt sie zu einem separaten Betrieb zu machen.

Topologie -Reduktion

In einigen Fällen ist es vernünftig, die Anzahl der Knoten zu reduzieren, die LSA -Nachrichten generieren. Beispielsweise muss ein Knoten, der nur eine Verbindung zum Netzwerkdiagramm hat, keine LSA -Nachrichten senden, da die Informationen zu seiner Existenz bereits in der LSA -Nachricht seines einzigen Nachbarn enthalten sein können. Aus diesem Grund kann eine Topologie -Reduktionsstrategie angewendet werden, bei der nur eine Teilmenge der Netzwerkknoten LSA -Nachrichten generiert. Zwei weithin untersuchte Ansätze für die Topologie -Reduktion sind:

  1. Multipoint -Relais das sind an der Basis der Optimiertes Link -Status -Routing -Protokoll (OLSR) wurde aber auch für OSPF vorgeschlagen[4]
  2. Verbundene dominierende Sätze Das wurde erneut für OSPF vorgeschlagen[5]

Fisheye State Routing

Mit Fisheye State Routing (FSR) Die LSA wird mit unterschiedlichen Werten für Zeit-zu-Live-Werte gesendet, um deren Diffusion einzuschränken und den Overhead aufgrund von Steuermeldungen zu begrenzen. Das gleiche Konzept wird auch in der verwendet Dunst Sehverknüpfungsstaat Routing -Protokoll.

Ausfallmodi

Wenn alle Knoten nicht genau derselben Karte aus funktionieren, funktionieren nicht genau von derselben Karte, Routing -Schleifen kann Formen. Dies sind Situationen, in denen in einfacher Form zwei benachbarte Knoten jeweils der andere der beste Weg zu einem bestimmten Ziel ist. Jedes Paket, das zu diesem Ziel, das bei einem beiden Knoten kommt, zu den beiden, wodurch der Name geschaltet wird. Routing -Schleifen mit mehr als zwei Knoten sind ebenfalls möglich.

Dies kann auftreten, da jeder Knoten seinen kürzesten Pfadbaum und seine Routing-Tabelle berechnet, ohne mit anderen Knoten in irgendeiner Weise zu interagieren. Wenn zwei Knoten mit unterschiedlichen Karten beginnen, können Szenarien auftreten, in denen Routing -Schleifen erstellt werden. Unter bestimmten Umständen können Differentialschleifen in einer Multi -Cloud -Umgebung aktiviert werden. Variable Zugriffsknoten über das Schnittstellenprotokoll können auch das gleichzeitige Problem der gleichzeitigen Zugriffsknoten umgehen.[6]

Optimiertes Link -Status -Routing -Protokoll

Das Optimiertes Link -Status -Routing -Protokoll (OLSR) ist ein Link-State-Routing-Protokoll, das optimiert ist Mobile Ad -hoc -Netzwerke (was auch für andere verwendet werden kann drahtlose Ad -hoc -Netzwerke).[7] OLSR ist proaktiv und verwendet Hello- und Topology Control-Nachrichten (TC), um Informationen zu Link-Status-Informationen in das mobile Ad-hoc-Netzwerk zu ermitteln und zu verbreiten. Mit Hello-Nachrichten entdeckt jeder Knoten Zwei-Hop-Nachbarinformationen und wählt einen Satz von aus Multipoint -Relais (MPRS). MPRs unterscheiden sich von OLSR von anderen Link-State-Routing-Protokollen. Einzelne Knoten verwenden die Topologieinformationen, um die nächsten Hop-Pfade für alle Knoten im Netzwerk mithilfe von Kurzhop-Weiterleitungspfaden zu berechnen.

Siehe auch

Verweise

  1. ^ John M. McQuillan, Isaac reicher und Eric C. Rosen, Verbesserungen des Arpanet -Routing -Algorithmus, BBN -Bericht Nr. 3803, Cambridge, April 1978
  2. ^ John M. McQuillan, Isaac reicher und Eric C. Rosen, Der neue Routing -Algorithmus für das Arpanet, IEEE Trans. auf Comm., 28 (5), S. 711–719, 1980
  3. ^ Eastlake 3rd, Donald E.; Senevirathne, Tissa; Ghanwani, Anoop; Dutt, Dinesh; Banerjee, Ayan (Mai 2014), Transparente Verbindung vieler Links (Trill) Verwendung von IS-is, RFC 7176
  4. ^ Nguyen, Dang-Quan; Clausen, Thomas H.; Jacquet, Philippe; Baccelli, Emmanuel (Februar 2009). "OSPF -Multipoint -Relay (MPR) -Erweiterung für Ad -hoc -Netzwerke". {{}}: Journal zitieren erfordert |journal= (Hilfe)
  5. ^ Ogier, Richard; Spagnolo, Phil (August 2009). "MANET -Erweiterung der OSPF (Mobile Ad -hoc Network) unter Verwendung von CDS -Überschwemmungen (Connected Dominating Set)". {{}}: Journal zitieren erfordert |journal= (Hilfe)
  6. ^ Wójcik, R (2016). "Eine Umfrage zu Methoden zur Bereitstellung von Multipath -Übertragungen zwischendomänen". Computernetzwerke. 108: 233–259. doi:10.1016/j.comnet.2016.08.028.
  7. ^ RFC 3626

Weitere Lektüre