-
HINTERGRUND
-
Diese
Erfindung betrifft die Übertragung
von Datenpaketen auf einem Netzwerk, mit dem Ziel, Übertragungsschleifen
für Datenpakete
zu reduzieren.
-
Übertragungsschleifen
für Datenpakete
können
auftreten, wenn es parallele Pfade zwischen zwei Netzwerkeinrichtungen,
beispielsweise Brücken
gibt. Anfangs empfängt
eine "empfangende" Netzwerkeinrichtung
das Datenpaket auf einem der parallelen Pfade von einer "sendenden" Netzwerkeinrichtung.
Bei Empfang konsultiert die empfangende Einrichtung eine gespeicherte
Weiterleitungstabelle, um eine Schnittstelle auf der empfangenden
Einrichtung zu bestimmen, von der aus das Datenpaket gesendet werden
sollte, damit es das für
das Paket vorgesehene Ziel erreicht.
-
Wenn
die Weiterleitungstabelle nicht angibt, welche Schnittstelle zu
verwenden ist, dupliziert die empfangende Einrichtung das Paket
und sendet (d.h. "flutet") Kopien des Pakets
aus all ihren Schnittstellen mit Ausnahme der Schnittstelle, von
der das Paket ursprünglich
empfangen worden war. Dies führt
dazu, daß eine Kopie
des Datenpakets auf dem anderen (parallelen) Pfad zurück zu der
sendenden Einrichtung übermittelt wird.
Dieser Prozeß wiederholt
sich in der sendenden Einrichtung, was zu einer Übertragungsschleife für ein Datenpaket
zwischen den sendenden und empfangenden Einrichtungen führt.
-
KURZDARSTELLUNG
-
Im
allgemeinen, unter einem Aspekt, richtet sich die Erfindung auf
die Übertragung
von Datenpaketen auf einem Netzwerk, gemäß Ansprüchen 1, 5 und 29. Die Erfindung
sieht vor, daß festgestellt
wird, ob zwei Datenpakete, die ein gemeinsames Merkmal haben, innerhalb
einer vorgegebenen Zeitspanne von einer Netzwerkeinrichtung empfangen
wurden, und daß eines
der beiden Datenpakete verworfen wird, wenn die beiden Datenpakete
von der Netzwerkeinrichtung innerhalb der vorgegebenen Zeitspanne
empfangen wurden. Da "schleifende" Pakete schnell zwischen
den Einrichtungen hin und zurück
laufen, führt
das Verwerfen von Datenpaketen, die innerhalb der vorbestimmten
Zeitspanne empfangen wurden, dazu, daß die Schleifenübertragung
von Paketen reduziert wird.
-
Dieser
Aspekt kann auch eines oder mehrere der folgenden Merkmale umfassen.
Dasjenige der beiden Datenpakete, das später empfangen wurde, wird verworfen.
Die Funktion zur Feststellung, ob zwei Datenpakete, die ein gemeinsames
Merkmal haben, empfangen wurden, umfaßt den Empfang der beiden Datenpakete
an der Netzwerkeinrichtung, die Bildung einer Differenz zwischen
der Zeit, zu der das erste der beiden Datenpakete empfangen wurde,
und der Zeit, zu der das zweite der beiden Datenpakete empfangen
wurde, und den Vergleich der Differenz mit der vorbestimmten Zeitspanne.
-
Die
Zeit, zu der das erste Datenpaket empfangen wurde, wird in einem
Speicher der Netzwerkeinrichtung gespeichert. Das Merkmal der Datenpakete
ist eine Adresse einer die Quelle bildenden Netzwerkeinrichtung.
Die Netzwerkeinrichtung enthält
eine ausgewiesene Netzwerkschnittstelle, über welche Datenpakete empfangen
werden, die das Merkmal aufweisen. Die Netzwerkeinrichtung stellt
fest, ob eines der beiden Datenpakete über eine andere Netzwerkschnittstelle
auf der Netzwerkeinrichtung als die ausgewiesene Netzwerkschnittstelle
empfangen wurde. Die Netzwerkeinrichtung führt den Rest des Prozesses
aus, wenn eines der beiden Datenpakete über eine nicht ausgewiesene
Schnittstelle empfangen wurde.
-
Eines
der beiden Datenpakete wird von der Netzwerkeinrichtung gesendet,
wenn die beiden Datenpakete von der Netzwerkeinrichtung nicht innerhalb
der vorbestimmten Zeitspanne empfangen wurden. Dieses eine der beiden
Datenpakete ist das später
empfangene Datenpaket. Eine Weiterleitungstabelle in der Netzwerkeinrichtung
wird aktualisiert in Abhängigkeit
von einer Quelleneinrichtungs-Adresse in dem einen der beiden Datenpakete.
Die Weiterleitungstabelle identifiziert Schnittstellen auf der Netzwerkeinrichtung,
die zu Einrichtungen in dem Netzwerk führen.
-
Im
allgemeinen, unter einem anderen Aspekt, richtet sich die Erfindung
auf die Übertragung
von Datenpaketen von einer Netzwerkeinrichtung, die mehrere Netzwerkschnittstellen
aufweist, gemäß Ansprüchen 11,
25 und 39. Eine der mehreren Netzwerkschnittstellen ist ausgewiesen
für den
Empfang von Datenpaketen von einer Quellenadresse. Erste und zweite
Datenpakete werden von einer Einrichtung an der Quellenadresse empfangen.
Es wird festgestellt, ob das zweite Datenpaket über eine andere Netzwerkschnittstelle
auf der Netzwerkeinrichtung als die ausgewiesene Netzwerkschnittstelle
empfan gen wurde. Wenn das zweite Datenpaket über eine andere Netzwerkschnittstelle
als die ausgewiesene Netzwerkschnittstelle empfangen wurde, wird
festgestellt, ob die ersten und zweiten Datenpakete innerhalb einer
vorgegebenen Zeitspanne empfangen wurden. Wenn die ersten und zweiten
Datenpakete innerhalb der vorgegebenen Zeitspanne empfangen wurden,
so wird das zweite Datenpaket verworfen. Wenn die ersten und zweiten
Datenpakete nicht innerhalb der vorgegebenen Zeitspanne empfangen
wurden, wird das zweite Datenpaket von der Netzwerkeinrichtung gesendet,
und eine Weiterleitungstabelle auf der Netzwerkeinrichtung wird
aktualisiert.
-
Dieser
Aspekt der Erfindung kann eines oder mehrere der folgenden Merkmale
einschließen.
Das Aktualisieren der Weiterleitungstabelle umfaßt die Änderung der ausgewiesenen Netzwerkschnittstelle,
so daß sie
die Netzwerkschnittstelle wird, über
die das zweite Datenpaket empfangen wurde. Die Weiterleitungstabelle
identifiziert Schnittstellen auf der Netzwerkeinrichtung, die zu
Einrichtungen in dem Netzwerk führen.
Die Feststellung, ob die ersten und zweiten Datenpakete innerhalb
einer vorbestimmten Zeitspanne empfangen wurden, umfaßt den Vergleich
eines Zeitpunkts, zu dem das erste Paket empfangen wurde, mit einem
Zeitpunkt, zu dem das zweite Paket empfangen wurde.
-
Andere
Merkmale und Vorteile der Erfindung werden verdeutlicht durch die
nachfolgende Beschreibung, einschließlich der Ansprüche und
der Zeichnungen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm eines Netzwerkes.
-
2 ist
ein Flußdiagramm
und zeigt einen Prozeß zur
Reduktion der Schleifenübertragung
von Datenpaketen in dem Netzwerk.
-
3 ist
ein Blockdiagramm einer alternativen Netzwerktopologie, in der der
Prozeß nach 2 verwendet
werden kann.
-
4 ist
ein Blockdiagramm noch einer weiteren Netzwerktopologie, in der
der Prozeß nach 2 verwendet
werden kann.
-
DETAILLIERTE
BESCHREIBUNG
-
In 1 ist
ein Netzwerk 10 gezeigt. Das Netzwerk 10 kann
ein LAN (local area network), ein WAN (wide area network) oder irgendeine
andere Art von Computernetzwerk sein. Das Netzwerk 10 ist
ein Netzwerk mit mehreren Segmenten, das Segmente 12, 14, 16 und 18 umfaßt. Die
Segmente sind Pfade zwischen Netzwerkeinrichtungen in dem Netzwerk 10.
Netzwerkeinrichtungen 20 und 22 sind Verbindungskomponenten
wie etwa Brücken,
Router oder irgendwelche anderen rechnenden Einrichtungen, die in
der Lage sind, Datenpakete zu empfangen und diese Pakete auf einem
Pfad an ihr vorgesehenes Ziel zu übermitteln.
-
Das
Netzwerk umfaßt
parallele Segmente/Pfade 14 und 18 zwischen Netzwerkeinrichtungen 20 und 22.
Datenpakete werden von dem Host 24 durch das Netzwerk 10 auf
parallelen Pfaden 14 und 18 zu dem Host 26 übermittelt.
Die Hosts 24 und 26 sind Personalcomputer (PCs)
oder andere vernetzte rechnende Einrichtungen, die in der Lage sind,
Daten über
das Netzwerk 10 zu senden und zu empfangen.
-
Die
interne Architektur der Netzwerkeinrichtung 22 ist in der
Ansicht 28 gezeigt. Jede Netzwerkeinrichtung enthält eine ähnliche
oder identische Architektur; deshalb wird nur die Architektur der
Netzwerkeinrichtung 22 beschrieben. Die Netzwerkeinrichtung 22 umfaßt einen
Prozessor 30, einen Speicher 32 und ein Speichermedium 34.
-
Der
Prozessor 30 führt,
um verschiedene Funktionen auszuführen, aus dem Speicher 32 Computerprogramme
aus, die im Speichermedium 34 gespeichert sind. Der Prozessor 30 kann
ein Controller, ein Mikroprozessor oder dergleichen sein. Der Speicher 32 ist
ein Speicher mit wahlfreiem Zugriff (RAM) oder dergleichen.
-
Das
Speichermedium 34 kann eine Festplatte eines Computers
sein, ein redundantes Array von kostengünstigen Platten (RAID) oder
irgendein anderes nichtflüchtiges
Speichermedium. Das Speichermedium 34 speichert Computerprogramme 36.
Die Computerprogramme 36 umfassen Systemsoftware 38 wie
etwa ein Betriebssystem und Betriebssoftware, einen Protokollstapel 40 zur
Kommunikation über
das Netzwerk 10 (z.B. einen TCP/IP Stapel; Trans mission
Control Protocol/Internet Protocol) und ausführbare Befehle 42 zur
Verarbeitung von Datenpaketen zum Zweck der Reduktion von Schleifenübertragung
von Paketen, wie nachstehend in 2 beschrieben
wird. Das Speichermedium 34 speichert auch eine Datenbank 41,
die Systemparameter und dergleichen enthält.
-
Der
Speicher 44 speichert eine oder mehrere Weiterleitungstabellen 44.
Die Weiterleitungstabellen 44 enthalten Daten, die Schnittstellen
auf der Netzwerkeinrichtung 22 identifizieren, die zu Zielen
führen.
Speziell enthalten die Weiterleitungstabellen Daten, die die Netzwerkadressen
von Zieleinrichtungen identifizieren, und spezifische Schnittstellen
aus der Einrichtung 22, die zu diesen Zieleinrichtungen
führen.
In dem Netzwerk 10 gibt es zwei mögliche Ziel-Netzwerkadressen:
die Netzwerkadresse des Hosts 24 und die Netzwerkadresse des
Hosts 26. Einrichtungen im Netzwerk 10, einschließlich der
Einrichtungen 20, 22 sind keine Ziel-Netzwerkadressen,
da diese Einrichtungen nicht die Zielpunkte der Pakete sind. Wie
erwähnt
wurde, ist der Speicher 32 typischerweise ein nichtflüchtiger
Speicher, etwa ein RAM. Infolgedessen werden die Weiterleitungstabellen
für jeden
neuen Einschaltzyklus der Einrichtung neu aufgebaut. Ebenso werden
in dieser Ausführungsform die
Daten in einer Weiterleitungstabelle der Einrichtung jedes Mal aktualisiert,
wenn von der Einrichtung ein neues Datenpaket empfangen wird.
-
Wenn
ein Datenpaket von der Netzwerkeinrichtung 22 empfangen
wird, z.B. vom Host 24 über
den Pfad 14, aktualisiert die Netzwerkeinrichtung 22 ihre
Weiterleitungstabelle um anzugeben, daß der Pfad 14 zu dem
Host 22 führt.
Wenn die Netzwerkeinrichtung 22 ein neues Datenpaket empfängt, dessen
Ziel der Host 24 ist, konsultiert auf diese Weise die Netzwerkeinrichtung 22 ihre
Weiterleitungstabelle, um festzustellen, daß das neue Datenpaket aus der
Schnittstelle übertragen
werden soll, die dem Pfad 14 entspricht.
-
Wie
weiter unten beschrieben werden wird, wird in die Weiterleitungstabellen
auch ein Zeitstempel einbezogen. Der Zeitstempel ist auf die Netzwerkadresse
und die Netzwerkschnittstelle indiziert und gibt die Zeit an, zu
der das letzte Datenpaket mit dieser Netzwerkadresse über diese
Schnittstelle empfangen wurde. Ein Beispiel für den Aufbau einer Weiterleitungstabelle
ist nachstehend gezeigt:
-
-
Somit
gibt die obige Tabelle an, daß die
Einrichtung 22 zur "Zeit
A" ein Datenpaket
vom Host 24 über den
Pfad 14 und seine zugehörige
Schnittstelle empfangen hat. Sie gibt auch an, daß die Einrichtung 22 zur "Zeit B" ein Datenpaket vom
Host 26 über
den Pfad 16 und seine zugehörige Schnittstelle empfangen
hat. In den Weiterleitungstabellen könnte eine weitere Spalte enthalten
sein, wie unten gezeigt, um anzugeben, ob ein Pfad (oder "Link") in dem Netzwerk
ausgefallen ist. Die Verarbeitung im Fall von ausgefallenen Links
wird weiter unten beschrieben.
-
Wenn
die Einrichtung 22 ein neues Datenpaket empfängt, das
eine Zieladresse enthält,
konsultiert die Einrichtung 22 ihre Weiterleitungstabelle
um zu entscheiden, ob es eine Netzwerkadresse gibt, die der Zieladresse
entspricht. Wenn dies der Fall ist, sendet die Einrichtung 22 das
Datenpaket aus der entsprechenden Schnittstelle. Wenn die Tabelle
keine Netzwerkadresse enthält,
die der Zieladresse entspricht, aktualisiert die Einrichtung 22 die
Tabelle, um die Quellen-Netzwerkadresse aus dem Datenpaket und die
Schnittstelle, über die
das Datenpaket empfangen wurde, aufzunehmen. Die Netzwerkeinrichtung 22 sendet
(flutet) das Datenpaket auch über
seine verbleibenden Schnittstellen, um das Datenpaket zu seinem
Ziel weiterzuleiten.
-
Bisher
konnte das "Fluten" von Paketen zur
Schleifenübertragung
von Paketen führen,
wenn es parallele Pfade zwischen Netzwerkeinrichtungen gibt, wie
etwa die Pfade 14 und 18. Die Netzwerkeinrichtungen 20 und 22 führen jedoch
Befehle 42 aus, um das Auftreten von Schleifenübertragungen
von Datenpaketen auf parallelen Pfaden 14 und 18 zu
reduzieren.
-
In 2 ist
ein Prozeß 50 gezeigt,
der durch Befehle 42 implementiert wird, die in Netzwerkeinrichtungen 20, 22 laufen,
um das Auftreten von Schleifenübertragungen
von Datenpaketen auf parallelen Pfaden zu reduzieren. Zu Il lustrationszwecken
sei angenommen, daß der
Prozeß 50 auf
den Prozessor 30 in der Netzwerkeinrichtung 22 läuft.
-
Der
Prozeß 50 empfängt (52)
ein Datenpaket von der Netzwerkeinrichtung 20 über den
Pfad 14 und die Schnittstelle 14a. In diesem Beispiel
stammt das Datenpaket vom Host 24 und ist für den Host 26 bestimmt. Der
Prozeß 50 liest
(54) die Zieladresse und prüft um zu sehen, ob die Zieladresse
in der Weiterleitungstabelle 44 der Einrichtung 22 enthalten
ist. Für
den Augenblick soll angenommen werden, daß dies nicht der Fall ist.
-
Der
Prozeß 50 liest
(60) die Quellen-Netzwerkadresse des Datenpakets, bei der
es sich um die Netzwerkadresse des Hosts 24 handelt, und
stellt fest, ob diese Adresse in der Weiterleitungstabelle 24 enthalten ist.
Es sei angenommen, daß ein
Eintrag für
die Quellen-Netzwerkadresse bereits in der Weiterleitungstabelle der
Einrichtung 22 existiert und daß das Datenpaket über eine
Netzwerkschnittstelle empfangen wurde (62), die für diese
Quellen-Netzwerkadresse ausgewiesen ist (62). Der Prozeß aktualisiert
dann (67) den Zeitstempel in der Weiterleitungstabelle 44,
um die Zeit anzugeben, zu der das Datenpaket empfangen wurde.
-
Der
Prozeß 50 konsultiert
auch (71) die Weiterleitungstabelle 44 um zu entscheiden, über welche Schnittstelle
in der Netzwerkeinrichtung 22 das Datenpaket weitergeleitet
werden soll. Speziell liest der Prozeß 50 die Zieladresse
aus dem Datenpaket und konsultiert die Weiterleitungstabelle in
der Netzwerkeinrichtung 22 um zu entscheiden, welche Schnittstelle
in der Netzwerkeinrichtung 22 zu der Einrichtung an der
Zieladresse führt.
Wenn die Weiterleitungstabelle die nötigen Daten enthält, leitet
der Prozeß 50 das
Datenpaket über die
Schnittstelle 16a weiter (77). Andernfalls flutet
(79) der Prozeß 50 das
Paket auf allen Schnittstellen der Einrichtung 22 mit Ausnahme
der Schnittstelle 14a, über
die das Paket empfangen wurde.
-
Es
soll nun angenommen werden, daß der
Prozeß 50 ein
zweites Datenpaket mit derselben Quellen-Netzwerkadresse wie das
erste Paket empfängt
(52) (d.h.. beides sind die Adressen des Hosts 24).
In diesem Fall entscheidet (62) der Prozeß 50,
ob das zweite Datenpaket über
eine Netzwerkschnittstelle der Einrichtung 22 empfangen
wurde, die für
die Netzwerkadresse des Hosts 24 ausgewiesen ist. Andernfalls
aktualisiert (65) der Prozeß 50 die Weiterleitungstabelle
für die
Einrichtung 22, wie unten beschrieben werden wird.
-
Wenn
das zweite Datenpaket über
die ausgewiesene Schnittstelle empfangen wurde (62) aktualisiert (67)
der Prozeß 50 den
Zeitstempel in der Weiterleitungstabelle 44 und, wenn die
Zieladresse in der Weiterleitungstabelle 44 vorhanden ist
(71), sendet er (77) das zweite Datenpaket über die
passende Schnittstelle der Einrichtung. Wenn andererseits das zweite
Datenpaket über
eine andere Schnittstelle als die für den Host 24 in der
Weiterleitungstabelle ausgewiesene Schnittstelle empfangen wurde
(62), entscheidet der Prozeß 50 (64),
ob die ersten und zweiten Datenpakete innerhalb einer vorbestimmten
Zeitspanne empfangen wurden. Diese vorbestimmte Zeitspanne kann
in der Größenordnung
von Millisekunden bis Sekunden liegen.
-
In
jedem Fall schließt
der Prozeß 50,
wenn die ersten und zweiten Datenpakete innerhalb der vorbestimmten
Zeitspanne über
verschiedene Schnittstellen empfangen wurden, daß die beiden Datenpakete über parallel
Pfade empfangen wurden. Wenn z. B. die Einrichtung 20 ein
Datenpaket vom Host 24 empfängt und die Einrichtung 20 die
Zieladresse des Datenpakets nicht in ihrer Weiterleitungstabelle
hat, wird die Einrichtung 20 das Datenpaket über ihre
Schnittstellen 14b und 18b auf parallelen Pfaden 14 und 18 an
die Einrichtung 22 senden. Wenn die Einrichtung 22 diese
Datenpakete, die dieselbe Quellenadresse haben, innerhalb der vorbestimmten
Zeitspanne auf verschiedenen Schnittstellen empfängt, schließt der Prozeß 50,
daß die
beiden Pakete auf parallelen Pfaden empfangen wurden.
-
Da
die beiden Pakete auf parallelen Pfaden eingetroffen sind, schließt der Prozeß 50,
daß die
Pakete Duplikate sind, d. h., daß sie daraus resultieren, daß die Einrichtung 20 die
Pakete aus all ihren Schnittstellen geflutet hat. Demgemäß verwirft
(81) der Prozeß 50 das
später
empfangene der beiden Datenpakete. In diesem Fall verwirft der Prozeß 50 das
als zweites empfangene Datenpaket. Dies reduziert die Schleifenübertragung
von Datenpaketen, da duplizierte Datenpakete verworfen werden statt
zwischen den Netzwerkeinrichtungen 20 und 22 hin
und her zu "pendeln".
-
Der
Prozeß 50 stellt
wie folgt fest, ob die ersten und zweiten Datenpakete innerhalb
der vorbestimmten Zeitspanne empfangen wurden. Bei Empfang des zweiten
Datenpakets konsultiert der Prozeß 50 einen Hardware-
oder Software-Timer, um die Empfangszeit festzustellen (64a).
Der Prozeß 50 ermittelt
(64b) die Empfangszeit des ersten Datenpakets aus der Weiterleitungstabelle.
Der Prozeß 50 bildet
die Differenz zwischen den beiden Zeiten und vergleicht (64c)
diesen Wert mit der vorbestimmten Zeitspanne.
-
Wenn,
wieder in Schritt 64, der Prozeß 50 feststellt, daß das zweite
Datenpaket von der Netzwerkeinrichtung 22 nicht innerhalb
der vorbestimmten Zeitspanne empfangen worden ist, so schließt der Prozeß 50, daß es eine
Veränderung
in der Topologie des Netzwerks 10 gegeben hat. Das heißt, der
Prozeß 50 nimmt
an, daß der
Grund, weshalb die beiden Datenpakete mit derselben Quellenadresse über verschiedene
Pfade/Schnittstellen empfangen wurden, darin besteht, daß die Topologie
des Netzwerkes sich in der Zwischenzeit zwischen dem Empfang des
ersten und des zweiten Datenpakets geändert hat. Demgemäß aktualisiert der
Prozeß 50 die
Weiterleitungstabelle in der Netzwerkeinrichtung 22, um
die neue Netzwerktopologie widerzuspiegeln. Zum Beispiel sei angenommen,
daß die
Weiterleitungstabelle ursprünglich
angegeben hat, daß der
Pfad/die Schnittstelle zum Host 24 der Pfad 14 war,
wie in der nachstehenden Tabelle angegeben wird.
-
-
In
Schritt 69 aktualisiert der Prozeß 50 die Tabelle wie
folgt, um anzugeben, daß der
Pfad/die Schnittstelle zum Host 24 der Pfad 18 ist.
-
-
Somit
ist in diesem Beispiel die ausgewiesene Schnittstelle/der ausgewiesene
Pfad für
die Host-Einrichtung 22 vom oberen parallelen Pfad 14 auf
den unte ren parallelen Pfad 18 geändert worden. Diese Änderung
wird durch die Weiterleitungstabelle 44 widergespiegelt,
die im Speicher 32 der Netzwerkeinrichtung 22 gespeichert
ist.
-
In
diesem Fall wird das zweite Datenpaket nicht verworfen. Statt dessen
wird das zweite Datenpaket an sein vorgesehenes Ziel weitergeleitet.
Der Prozeß zur
Weiterleitung des zweiten Datenpaketes läuft so ab, wie oben beschrieben
wurde. Das heißt,
wenn die Einrichtung 22 das zweite Datenpaket empfängt, konsultiert die
Einrichtung 22 ihre Weiterleitungstabelle, um festzustellen,
ob es einen Eintrag gibt, der der Zieladresse entspricht. Wenn das
der Fall ist, sendet die Einrichtung 22 das Datenpaket über die
entsprechende Schnittstelle (77). Wenn es keine Adresse
in der Weiterleitungstabelle gibt, sendet (flutet) (79)
die Einrichtung 22 das Datenpaket über ihre übrigen Schnittstellen. Der
nun in der Netzwerkeinrichtung 20 ausgeführte Prozeß 50 bewirkt
somit, daß die
Schleifenübertragung
von Datenpaketen reduziert wird, die durch das Fluten von Datenpaketen
durch die Netzwerkeinrichtung 22 verursacht wird.
-
Der
Prozeß 50 ist
nicht nur auf den Einsatz bei Netzwerken beschränkt, die parallele Datenpfade
haben. Der Prozeß 50 kann
auch bei einem Netzwerk eingesetzt werden, das eine Topologie hat,
wie sie in 3 gezeigt ist.
-
In 3 können in
dem Netzwerk 68 z. B. Übertragungsschleifen
für Datenpakete
auftreten, wenn die Einrichtungen 70 und 72 keine
Weiterleitungsdaten für
ein Datenpaket haben, das von Host 76 stammt. Es sei angenommen,
daß die
Einrichtung 74 ein Datenpaket auf den Pfaden 80 und 82 an
die Einrichtung 70 bzw. 72 weiterleitet. Wenn
die Einrichtungen 70 und 72 keine Weiterleitungsdaten
für das
Paket haben, werden die Einrichtungen 70 und 72 das
Datenpaket duplizieren und das Datenpaket über all ihre Schnittstellen
senden (fluten), mit Ausnahme der Schnittstelle, über die
das Datenpaket ursprünglich
empfangen wurde. So speist in diesem Fall die Einrichtung 70 eine
Kopie des Datenpakets über
ihre dem Pfad 84 entsprechende Schnittstelle ein, und die
Einrichtung 72 speist Kopien des Datenpakets über ihre
Schnittstellen ein, die den Pfaden 84 und 86 entsprechen.
Die Einrichtung 70 empfängt
somit eine weitere Kopie des Datenpakets von der Einrichtung 72 und
leitet diese Kopie an die Einrichtung 74 weiter, die sie
anschließend
zurück
zu der Einrichtung 72 übermitteln
wird, und so weiter. Folglich wird zwischen den Einrichtungen 70, 72 und 74 eine Übertragungsschleife gebildet.
-
Der
Prozeß 50 wird
in den Einrichtungen 70, 72 und 74 ausgeführt, um
die Chance zu verringern, daß eine
solche Schleife auftritt. Zum Beispiel empfängt in dem oben beschriebenen
Szenario die Einrichtung 70 Datenpakete mit derselben Quellenadresse
auf den Schnittstellen 80a und 84a (von der Einrichtung 74 bzw. 72).
-
Wenn
die vorbestimmte Zeitspanne für
den Prozeß 50 geeignet
gewählt
ist, verwirft die Einrichtung 70 das zweite Datenpaket,
das sie empfängt,
z. B. das Datenpaket von der Einrichtung 72. Die Einrichtung 70 leitet
eine Kopie des Datenpakets, das sie von der Einrichtung 74 empfängt, an
die Einrichtung 72 weiter. Die Einrichtung 72 sendet
diese Kopie zurück
an die Einrichtung 74 und an den Host 78.
-
Wenn
die vorbestimmte Zeitspanne für
den Prozeß 50 geeignet
gewählt
ist, stellt die Einrichtung 74, in welcher der Prozeß 50 ebenfalls
läuft,
fest, daß die
Einrichtung 74 zwei Datenpakete mit derselben Quellen-Netzwerkadresse
innerhalb der vorbestimmten Zeitspanne auf zwei verschiedenen Netzwerkschnittstellen empfangen
hat. Deshalb verwirft die Einrichtung 74 das später empfangene
Paket, d. h. das Paket, das sie von der Einrichtung 72 empfangen
hat, und beendet somit die Übertragungsschleife
für das
Datenpaket.
-
In 4 ist
ein Netzwerk 90 gezeigt. Das Netzwerk 90 enthält Hosts 91 und 92 und
Netzwerkeinrichtungen 93 bis 97, bei denen es
sich wie oben um Router, Brücken
oder dergleichen handelt. Das Netzwerk 90 weist einen Fehler
auf dem Link 98 auf, der als gestrichelte Linie dargestellt
ist. Im Fall eines solchen Fehlers führt das "normale" Routing-Protokoll dazu, daß die Einrichtung 96 Pakete
fallen läßt, die
vom Host 91 an den Host 92 übermittelt werden. Das liegt
daran, daß Pakete
normalerweise nicht über
Links zurückgesandt
werden, über
die sie empfangen wurden. Wenn die Weiterleitungstabelle für die Einrichtung 95 veranlagt,
daß Pakete über das
Link 99 zu der Einrichtung 96 übertragen werden, würde somit
der Ausfall des Links 98 dazu führen, daß diese Pakete verloren gehen.
Der Prozeß 50 behandelt
dieses Problem.
-
Schnittstellen
in den Einrichtungen detektieren Ausfälle von Links und berichten
die Ausfälle
von Links an den Prozeß 50.
Wenn ein Ausfall des Links 98 detektiert wird, aktualisiert
der Prozeß 50 die
Weiterleitungstabelle der Einrichtung 96 um anzugeben,
daß das
Link 98 ausgefallen ist. Folglich hat in dem in 4 gezeigten
Beispiel die Weiterleitungstabelle für die Einrichtung 96 die
folgende Form:
-
-
Die
Spalte "Link ausgefallen?" gibt an, daß ein Ausfall
in einem entsprechenden Link, hier Link 98 aufgetreten
ist.
-
Beim
Empfang von Datenpaketen konsultiert der Prozeß 50 die Weiterleitungstabelle
um zu entscheiden, ob es einen Ausfall eines Links gibt (58).
Wenn das der Fall ist, flutet (75) der Prozeß 50 das
Datenpaket über
alle verbleibenden (d.h., nicht ausgefallenen) Links der Einrichtung 96,
einschließlich
des Links, über
welches das Paket empfangen wurde. In diesem Beispiel ist dies das
Link 99. Bei Verwendung anderer Weiterleitungsprotokolle
würde das
Datenpaket nicht über
das Link gesendet, auf dem das Datenpaket empfangen worden ist.
-
Die
Einrichtung 95 sucht bei Empfang des Datenpakets die Zieladresse
des Pakets in der Tabelle auf (54), um zu entscheiden,
ob die weiterleitende Schnittstelle dieselbe ist wie die Schnittstelle,
auf der das Paket empfangen wurde (56). Wenn das der Fall
ist, nimmt die Einrichtung 95 an, daß ein Ausfall eines Links vorliegt, und
sie flutet (73), das Datenpaket auf allen Schnittstellen
mit Ausnahme der einen, auf der das Datenpaket empfangen wurde.
Die Einrichtung 95 führt
dies aus, ohne irgendwelche der übrigen
oben erwähnten
Prüfungen
vorzunehmen und ohne die Weiterleitungstabelle zu aktualisieren.
Wenn es für
diese Adresse keinen Eintrag in der Tabelle gibt (60),
schreitet die Verarbeitung fort. Wenn ein Link wieder aktiviert
wird, sollten et waige Einträge
in der Weiterleitungstabelle entfernt werden, bei denen dieses Link
als nächste
Sprung-Schnittstelle gelistet ist.
-
Andere
Ausführungsformen,
die hier nicht beschrieben werden, liegen ebenfalls im Rahmen der
nachstehenden Ansprüche.
Zum Beispiel kann der Prozeß 50 bei
anderen Netzwerktopologien als den hier gezeigten eingesetzt werden.
-
Der
Prozeß 50 ist
nicht auf die Verwendung mit der speziellen Hardware/Software und
Netzwerkkonfiguration nach 1 beschränkt, sie
kann in einer beliebigen rechnenden oder verarbeitenden Umgebung
Anwendung finden. Zum Beispiel kann der Prozeß 50 als Hardware
implementiert werden, etwa als programmierbare Logik (z.B. ein feldprogrammierbares
Gate-Array (FPGA)) oder als eine anwendungspezifische integrierte Schaltung
(ASIC) oder eine Kombination aus Hardware und Software.
-
Der
Prozeß 50 kann
gesteuert werden von und implementiert sein in Computerprogrammen,
die auf programmierbaren Computern laufen, die jeweils einen Prozessor,
ein von dem Prozessor lesbares Speichermedium (einschließlich flüchtiger
und nichtflüchtiger
Speicher und/oder Speicherelemente), wenigstens eine Eingangseinrichtung
und eine oder mehrere Ausgangseinrichtungen aufweisen. Jedes solche
Programm kann in einer höheren
prozeduralen oder objektorientierten Programmiersprache zur Kommunikation
mit einem Computersystem implementiert sein. Jedoch können die
Programme auch in Assembler- oder Maschinensprache implementiert
sein. Die Sprache kann eine kompilierte oder einer interpretierte
Sprache sein.
-
Jedes
Computerprogramm kann auf einem Speichermedium oder einer Speichereinrichtung
(z.B. CD-Rom, Festplatte oder Magnetdiskette) gespeichert sein,
die von einem programmierbaren Vielzweck- oder Spezialzweck-Computer
gelesen werden kann, um den Computer zu konfigurieren oder zu betreiben,
wenn das Speichermedium oder die Speichereinrichtung von dem Computer
gelesen wird, um die oben beschriebenen Prozesse aufzuführen. Die
Erfindung kann auch als ein computerlesbares Speichermedium implementiert sein,
das mit einem Computerprogramm konfiguriert ist, wobei, bei Ausführung, Befehle
in dem Computerprogramm den Computer dazu veranlassen, die oben
beschriebenen Prozesse zu steuern.
-
Es
versteht sich, daß,
obgleich die Erfindung im Zusammenhang mit der detaillierten Beschreibung derselben
beschrieben worden ist, die vorstehende Beschreibung zur Illustration
dient und nicht dazu, den Rahmen der Erfindung zu beschränken. Andere
Aspekte, Vorteile und Abwandlungen liegen im Rahmen der nachstehenden
Ansprüche.