-
1. Bereich der Technik:
-
Die
vorliegende Erfindung betrifft allgemein den Bereich der Rechnersysteme
und insbesondere ein Datenverarbeitungssystem, ein Verfahren und
ein Produkt zur Verwaltung von Datenübertragungen in einem Netzwerk.
-
2. Beschreibung der verwandten
Technik:
-
Es
wird ständig
nach verbesserten Verfahren zur Übertragung
von Daten in einem Netzwerk gesucht. Ein solches Verfahren, das
in PCT/US97/01595 offen gelegt ist, schlägt eine Flussklassifizierung
und Kennzeichnung vor, um Datenflüsse an Routern und Vermittlungsstellen
umzuleiten.
-
Viele
vorhandene Rechnersysteme verwenden eine Architektur mit einem gemeinsam
benutzten Bus wie zum Beispiel Peripheral Component Interconnect
(PCI) als ein Mittel, um Daten rechnersystemintern zwischen den
verschiedenen Prozessoren und E/A-Einheiten des Systems zu übertragen.
Diese vorhandenen Architekturen mit gemeinsam benutztem Bus haben
nicht mit der Verbesserung der Leistungsfähigkeit von gewöhnlichen
Prozessoren Schritt gehalten. Folglich wurde eine neue Architektur,
die allgemein als "Infiniband" bezeichnet wird, entwickelt,
um Daten zwischen Prozessoren und E/A-Einheiten innerhalb eines
Rechnersystems zu übertragen.
Diese neue Architektur stellt eine höhere Bandbreite bereit und
bietet eine verbesserte Erweiterbarkeit.
-
Die
Infiniband-Architektur ist in der Infiniband Architecture Specification,
Volume 1, Release 1.0, beschrieben.
-
Die
neue Architektur stellt ein System Area Network (ein Netz mit hoher
Bandbreite und geringer Latenz, das als Verbindung zwischen Rechnern
in einem verteilten Computersystem dient) mit einer kanalbasierten
Schaltnetzwerk-Technologie bereit. In solch einem System Area Network
(SAN) werden Daten mittels Nachrichten übertragen, die aus Paketen bestehen.
Jede Einheit, ungeachtet dessen, ob es sich um einen Prozessor oder
eine E/A-Einheit handelt, enthält
einen Kanaladapter. Die Nachrichten werden über Vermittlungsstellen vom
Kanaladapter einer Einheit an den Kanaladapter einer anderen Einheit übertragen.
Jeder Kanaladapter kann auch als "Endknoten" bezeichnet werden.
-
1 zeigt
zwei Endknoten, von denen jeder ein Warteschlangen-Paar gemäß dem Stand
der Technik enthält.
Wenn der Endknoten A 100 Daten an den Endknoten B 108 übertragen
muss, wird zwischen einem Warteschlangen-Paar, das im Endknoten
A enthalten ist, und einem Warteschlangen-Paar, das im Endknoten
B enthalten ist, eine logische Verbindung hergestellt. Daten werden
dann von der Sendewarteschlange des Warteschlangen-Paares im Endknoten
A an die Empfangswarteschlange des Warteschlangen-Paares im Endknoten
B übertragen. Antworten
werden von der Sendewarteschlange des Warteschlangen-Paares im Endknoten
B an die Empfangswarteschlange des Warteschlangen-Paares im Endknoten
A übertragen.
Der Endknoten A 100 enthält ein Warteschlangen-Paar 102.
Das Warteschlangen-Paar 102 enthält eine Sendewarteschlange 104 und
eine Empfangswarteschlange 106. Der Endknoten B 108 enthält ein Warteschlangen-Paar 110.
Das Warteschlangen-Paar 110 enthält eine Empfangswarteschlange 112 und
eine Sendewarteschlange 114. Anforderungen werden von den Sendewarteschlangen
an die Empfangswarteschlangen, und Antworten werden von den Empfangswarteschlangen
zurück
an die Sendewarteschlangen übertragen.
Die Anforderung 116 wird mit der Antwort 118 bestätigt. Die
Anforderung 120 wird mit der Antwort 122 bestätigt.
-
Nachrichten
und folglich Pakete können
unter Verwendung von einer von fünf
verschiedenen Übertragungsarten übertragen
werden: "Reliable Connected" (RC) (zuverlässig verbunden), "Reliable Datagram" (RD) (zuverlässiges Datagramm), "Unreliable Connected" (UC) (unzuverlässig verbunden), "Unreliable Datagram" (UD) (unzuverlässiges Datagramm)
oder "Raw Datagram" (RawD) (Roh-Datagramm).
Bei Verwendung der Übertragungsart "Reliable Connected" werden in jedes
Paket Folgenummern aufgenommen, und Paket-Übertragungen werden bestätigt.
-
Start-Folgenummern
werden festgelegt, wenn eine logische Verbindung zwischen zwei Endpunkten
hergestellt wird. Jedes Mal, wenn ein Paket übertragen wird, wird die Folgenummer
erhöht
und in das Paket aufgenommen. Folglich wird die Folgenummer eines
Pakets zur Ermittlung der Position des Pakets in einer Folge von
Paketen verwendet.
-
Nach
dem Stand der Technik wird eine bestimmte Bitgruppe oder ein Feld
in jedes Paket aufgenommen, um die Folgenummer anzugeben. Diese ganze
Bitgruppe stellt somit die Folgenummer dar.
-
Die
Paketfolgenummer (packet sequence number, PSN), die in der Anforderung 116 enthalten ist,
ist dieselbe Paketfolgenummer, die in der Antwort 118 enthalten
ist. Die PSN, die in der Anforderung 120 enthalten ist,
ist dieselbe PSN, die in der Antwort 122 enthalten ist.
Die in der Anforderung 116 und in der Antwort 118 enthaltene
PSN steht in keiner Beziehung zu der in der Anforderung 120 und
der Antwort 122 enthaltenen PSN, obgleich sie alle dieselben
Warteschlangen-Paare verwenden.
-
Normalerweise
erhöht
der Anforderungsknoten die PSN in jedem Anforderungspaket, das übertragen
wird, um eins. Der Antwortknoten vergleicht die PSN in den empfangenen
Anforderungen mit seiner eigenen PSN (der erwarteten PSN), die der
Antwortende jedes Mal, wenn ein Anforderungspaket empfangen wird,
ebenfalls um eins erhöht.
Wenn die PSNs übereinstimmen,
kann der Antwortende dann eine Antwort auf die Anforderung (eine
Bestätigung) senden,
wobei. er dieselbe PSN verwendet, die in dem Anforderungspaket,
das nun bestätigt
wird, enthalten war. Beim Anfordernden wird die PSN in dem Antwortpaket
dann wieder mit der Antwort-PSN des Anfordernden verglichen, um
festzustellen, ob sie mit seiner eigenen Antwort-PSN (der erwarteten
PSN) übereinstimmt,
die der Anfordernde ebenfalls um eins erhöht.
-
Der
Anfordernde darf mehrere Pakete senden, ohne dass er ein Antwortpaket
empfängt.
Das Antwortpaket kann von dem Anfordernden zu einem späteren Zeitpunkt
empfangen werden, aber die PSNs in diesen Antwortpaketen werden
mit dem Zählstand
des Antwort-PSN-Zählers
des Anfordernden verglichen. Wenn alle PSNs der Anforderungspakete
mit der internen PSN des Antwortenden übereinstimmen und alle PSNs
der Antwortpakete mit der internen PSN des Anfordernden übereinstimmen, wurden
alle Pakete erfolgreich von einem Endknoten an einen anderen Endknoten
(von einer Sendewarteschlange an eine Empfangswarteschlange) übertragen.
-
Es
gibt zwei abnormale Bedingungen, die beim Antwortenden erkannt und
behoben werden müssen,
um einen zuverlässigen
Betrieb zu gewährleisten.
Die erste Bedingung ist das duplizierte Paket, und die zweite Bedingung
ist das ungültige
Paket.
-
Duplizierte
Pakete werden beim Antwortenden erkannt, wenn der Anfordernde mehr
als ein Mal ein Anforderungspaket sendet. Der Anfordernde sendet
Pakete mehr als ein Mal, wenn er feststellt, dass das Paket möglicherweise
verloren ging. 2 zeigt ein Leiterdiagramm,
das die Übertragung
von duplizierten Paketen nach dem Stand der Technik veranschaulicht.
Das Anforderungspaket 204, das eine PSN = 1 enthält, wird
vom Endknoten 200 übertragen und
vom Antwortenden, dem Endknoten 202, empfangen. Die Antwort,
die Bestätigung 206,
die eine PSN = 1 enthält,
ging entweder verloren oder verzögert
sich. In diesem Fall stellt der Anfordernde, der Endknoten 200,
eine Bedingung in Form von einer Zeitüberschreitung (time-out condition)
fest und sendet dieselbe Anforderung erneut als die Anforderung 208,
die dieselbe PSN (PSN = 1) enthält.
Der Antwortende, der Endknoten 202, stellt fest, dass die
PSN ein Duplikat ist (d.h., die PSN ist niedriger als der interne
Zählstand
des Endknotens 202), und der Antwortende sendet die Antwort
erneut als Bestätigung 210 mit
derselben PSN (PSN = 1).
-
Ein
ungültiges
Paket wird beim Antwortenden erkannt, wenn dieser ein Paket mit
einer PSN empfängt,
die höher
als sein interner Zählstand
ist. 3 zeigt ein Leiterdiagramm, das den Empfang eines
ungültigen
Pakets nach dem Stand der Technik darstellt. Der Anfordernde, der
Endknoten 300, sendet eine Anforderung 304, die
eine PSN = 1 enthält, eine
Anforderung 308, die eine PSN = 2 enthält, und eine Anforderung 310,
die eine PSN = 3 enthält.
Die Anforderung 304 wird ordnungsgemäß mit der Bestätigung 306 bestätigt, die
eine PSN = 1 enthält.
Die Anforderung 308, die eine PSN = 2 enthält, geht
in dem Schaltnetzwerk verloren. Folglich erkennt der Antwortende,
der Endknoten 302, eine Anforderung 304 mit einer
PSN = 1, gefolgt von einer Anforderung 310 mit einer PSN
= 3. Somit ist die Anforderung 310 ein ungültiges Paket.
In diesem Fall sendet der Antwortende, der Endknoten 302,
erneut die Bestätigung 312 für das Anforderungspaket
mit der PSN = 1, und der Anfordernde sendet erneut alle Pakete, wobei
er mit der Anforderung 314, die die PSN = 2 enthält, beginnt.
-
Beim
Anfordernden unterliegen die Antwortpakete ähnlichen Regeln. Das duplizierte
Paket, das der Anfordernde erkennt, wird verworfen. Dieser Fall kann
nur eintreten, wenn ein Anforderungspaket nicht verloren geht, sondern
sich in dem Schaltnetzwerk lediglich so lange verzögert, dass
der Anfordernde es erneut sendet. Die zweite Antwort mit der doppelten
PSN wird verworfen. Die ungültige
PSN beim Anfordernden kann vorkommen, wenn ein oder mehrere Pakete
in einer aus mehreren Paketen bestehenden Antwort in dem Schaltnetzwerk
verloren gehen. In diesem Fall sendet der Anfordernde die Anforderung
noch einmal.
-
PSNs
verwenden eine feste und endliche Zahl von Bits im Übertragungskopfbereich,
der in jedem Paket enthalten ist. Daher werden die PSNs laufend
wieder verwendet, wenn die Zähler,
die sie erzeugen, von ihrem Höchstwert
wieder auf null springen. Durch die Verwendung einer PSN, die einen
viel höheren
Wert als die Anzahl der gegebenenfalls noch ausstehenden Pakete
hat, legen Anfordernde und Antwortende einen Bereich von Paketfolgenummern
im Bereich der duplizierten und der ungültigen Pakete fest.
-
Ein
Problem tritt bei PSNs auf, wenn eine logische Verbindung zwischen
zwei Endknoten beendet (getrennt) und dann neu hergestellt wird,
während
Pakete unterwegs sind. In diesem Fall kann es vorkommen, dass ein
Paket von der alten, nicht mehr aktuellen Verbindung beim Antwortenden
ankommt. Der Antwortende deutet dieses Paket möglicherweise als ein gültiges Paket,
obwohl es tatsächlich
ein veraltetes Paket von der alten Verbindung ist.
-
Eine
der Lösungen,
die nach dem Stand der Technik beschrieben ist, besteht darin, zwischen
der Trennung einer logischen Verbindung, die zwischen zwei bestimmten
Gruppen von Warteschlangen-Paaren aufgebaut wurde, und der Wiederherstellung
der logischen Verbindung zwischen denselben beiden Gruppen von Warteschlangen-Paaren
zusätzliche Wartezustände vorzusehen.
Die Endknoten warten somit lange genug auf alle möglichen
veralteten Pakete von der alten Verbindung, bis diese nicht mehr gültig ist.
Diese Vorgehensweise löst
zwar das Problem, doch kann sie die Leistungsfähigkeit der Endknoten deutlich
beeinträchtigen,
insbesondere, wenn Verbindungen häufig getrennt und wiederhergestellt werden.
-
Daher
besteht ein Bedarf an einem Verfahren, einem System und einem Produkt
zur wirksamen Verwaltung von Datenübertragungen in einem Netzwerk.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
In
einer ersten Erscheinungsform stellt die vorliegende Erfindung ein
Verfahren zur Verwaltung von Daten bereit, die in einem Datenverarbeitungssystem
von einem ersten Endknoten an einen zweiten Endknoten übertragen
werden, wobei das Verfahren die folgenden Schritte umfasst: vor
der Übertragung
der Daten zwischen dem ersten Endknoten und dem zweiten Endknoten
Herstellen einer logischen Verbindung zwischen dem ersten Endknoten und
dem zweiten Endknoten; Zuordnen einer Instanznummer zu der logischen
Verbindung, wobei die Instanznummer während der Dauer der logischen Verbindung
gleich bleibt; Übertragen
von einem oder mehreren Paketen einschließlich der zugeordneten Instanznummer
in den Paketen von dem ersten Endknoten an den zweiten Endknoten,
während
die logische Verbindung besteht; Empfangen eines Pakets durch den
zweiten Endknoten; unter Verwendung des zweiten Endknotens Ermitteln
einer in dem empfangenen Paket enthaltenen Instanznummer; Feststellen,
ob die in dem empfangenen Paket enthaltene Instanznummer die zugeordnete
Instanznummer ist; als Reaktion auf die Feststellung, dass die in
dem empfangenen Paket enthaltene Instanznummer die zugeordnete Instanznummer
ist, Verarbeiten des empfangenen Pakets in der üblichen Weise durch den zweiten
Endknoten; und als Reaktion auf die Feststellung, dass die in dem
empfangenen Paket enthaltene Instanznummer nicht die zugeordnete
Instanznummer ist, Verwerfen des empfangenen Pakets durch den zweiten
Endknoten.
-
Das
Verfahren umfasst vorzugsweise des Weiteren die folgenden Schritte:
Wiederherstellen der logischen Verbindung zwischen dem ersten Endknoten
und dem zweiten Endknoten;
-
Erhöhen der
Instanznummer, wobei die erhöhte
Instanznummer der wiederhergestellten logischen Verbindung zugeordnet
wird; und Aufnehmen der erhöhten
Instanznummer in jedes Paket, das zwischen dem ersten Endknoten
und dem zweiten Endknoten übertragen
wird, während
die wiederhergestellte logische Verbindung besteht, wobei die erhöhte Instanznummer
während
der Dauer der wiederhergestellten logischen Verbindung gleich bleibt.
-
Vorzugsweise
umfasst der Schritt der Herstellung einer logischen Verbindung zwischen
dem ersten Endknoten und dem zweiten Endknoten des Weiteren den
folgenden Schritt: Zuordnen eines Warteschlangen-Paares in dem ersten
Endknoten zu einem Warteschlangen-Paar in dem zweiten Endknoten.
-
Vorzugsweise
umfasst der Schritt der Zuordnung eines Warteschlangen-Paares in
dem ersten Endknoten zu einem Warteschlangen-Paar in dem zweiten
Endknoten des Weiteren die folgenden Schritte: Erstellen einer Tabelle
mit Warteschlangen-Paaren in dem ersten Endknoten; und Speichern eines
Hinweises auf eine Zuordnung von dem ersten Warteschlangen-Paar
in dem ersten Endknoten zu einem Warteschlangen-Paar in dem zweiten
Endknoten in der Tabelle.
-
Das
Verfahren umfasst darüber
hinaus die folgenden Schritte: Übertragen
eines Pakets von dem zweiten Endknoten an den ersten Endknoten unter
Verwendung einer bestimmten logischen Verbindung; Empfangen des
Pakets unter Verwendung des ersten Endknotens; und Verwenden der
Tabelle zur Feststellung, ob die bestimmte logische Verbindung zuvor
hergestellt worden ist.
-
Vorzugsweise
umfasst der Schritt der Verwendung der Tabelle zur Feststellung,
ob die bestimmte logische Verbindung zuvor hergestellt worden ist,
des Weiteren den folgenden Schritt: Feststellen, ob in der Tabelle
ein Hinweis auf eine Zuordnung von einem Warteschlangen-Paar in
dem ersten Endknoten zu einem Warteschlangen-Paar in dem zweiten
Endknoten gespeichert ist.
-
Das
Verfahren umfasst vorzugsweise ferner den folgenden Schritt: Aufnehmen
der Instanznummer in einen Übertragungskopfbereich
in jedem Paket, das während
der Dauer der logischen Verbindung zwischen dem ersten Endknoten
und dem zweiten Endknoten übertragen
wird.
-
Das
Verfahren umfasst vorzugsweise überdies
den folgenden Schritt: Aufnehmen der Instanznummer in ein Folgenummernfeld
in einem Übertragungskopfbereich
in jedem Paket, das während
der Dauer der logischen Verbindung zwischen dem ersten Endknoten
und dem zweiten Endknoten übertragen
wird. Das Verfahren umfasst vorzugsweise darüber hinaus den folgenden Schritt:
Aufnehmen der Instanznummer in jedes Folgenummernfeld, das in Paketen
enthalten ist, die während
der Dauer der logischen Verbindung zwischen dem ersten Endknoten und
dem zweiten Endknoten übertragen
werden.
-
Das
Verfahren umfasst vorzugsweise ferner die folgenden Schritte: Feststellen,
ob die logische Verbindung eine erste logische Verbindung zwischen dem
ersten Endknoten und dem zweiten Endknoten ist; als Reaktion auf
die Feststellung, dass die logische Verbindung eine erste logische
Verbindung ist: Zuordnen einer Instanznummer zu der logischen Verbindung;
Aufnehmen der Instanznummer in jedes Paket, das zwischen dem ersten
Endknoten und dem zweiten Endknoten während der Dauer der logischen Verbindung übertragen
wird, wobei die Instanznummer während
der Dauer der logischen Verbindung gleich bleibt; und Verwenden
der Instanznummer als aktuelle Instanznummer; und als Reaktion auf
die Feststellung, dass die logische Verbindung keine erste logische
Verbindung ist: Erhöhen
der aktuellen Instanznummer; Verwenden der erhöhten aktuellen Instanznummer
als aktuelle Instanznummer; und Aufnehmen der erhöhten aktuellen
Instanznummer in jedes Paket, das zwischen dem ersten Endknoten
und dem zweiten Endknoten während
der Dauer der logischen Verbindung übertragen wird.
-
Das
Verfahren umfasst vorzugsweise des Weiteren die folgenden Schritte:
Verlieren der logischen Verbindung; Wiederherstellen der logischen Verbindung
zwischen dem ersten Endknoten und dem zweiten Endknoten, wobei zwischen
dem Verlust der logischen Verbindung und der Wiederherstellung der
logischen Verbindung keine Wartezustände ausgeführt werden.
-
Das
Verfahren umfasst vorzugsweise des Weiteren die folgenden Schritte: Übertragen
eines Pakets von dem ersten Endknoten an den zweiten Endknoten;
und Aufnehmen einer aktuellen Instanznummer in das Paket.
-
Das
Verfahren umfasst vorzugsweise des Weiteren die Schritte des Empfangs
eines Pakets durch den zweiten Endknoten; unter Verwendung des zweiten
Endknotens Ermitteln einer Instanznummer, die in dem empfangenen
Paket enthalten ist; Feststellen einer aktuellen Instanznummer;
Feststellen, ob die in dem empfangenen Paket enthaltene Instanznummer
die aktuelle Instanznummer ist; als Reaktion auf die Feststellung,
dass die in dem empfangenen Paket enthaltene Instanznummer die aktuelle Instanznummer
ist, Verarbeiten des Pakets durch den zweiten Endknoten in gewöhnlicher
Weise; und als Reaktion auf die Feststellung, dass die in dem empfangenen
Paket enthaltene Instanznummer nicht die aktuelle Instanznummer
ist, Verwerfen des Pakets durch den zweiten Endknoten.
-
Das
Verfahren umfasst vorzugsweise des Weiteren die folgenden Schritte:
Nachdem die logische Verbindung hergestellt worden ist, Setzen einer Folgenummer
durch den ersten Endknoten; Erhöhen der
Folgenummer nach jeder Übertragung
eines Pakets von dem ersten Endknoten an den zweiten Endknoten;
nach jeder Übertragung
eines Pakets von dem ersten Endknoten an den zweiten Endknoten Setzen
einer aktuellen Folgenummer, die gleich der erhöhten Folgenummer ist; und Aufnehmen
einer aktuellen Folgenummer in jedes Paket, das von dem ersten Endknoten
an den zweiten Endknoten übertragen
wird.
-
In
einer zweiten Erscheinungsform stellt die vorliegende Erfindung
ein Datenverarbeitungssystem zur Verwaltung von Daten bereit, die
in dem Datenverarbeitungssystem von einem ersten Endknoten an einen
zweiten Endknoten übertragen
werden, wobei das Datenverarbeitungssystem Folgendes umfasst: ein
Mittel, das dazu dient, vor der Übertragung
von Daten zwischen dem ersten Endknoten und dem zweiten Endknoten
eine logische Verbindung zwischen dem ersten Endknoten und dem zweiten Endknoten
herzustellen; ein Mittel, das dazu dient, der logischen Verbindung
eine Instanznummer zuzuordnen; und ein Mittel, das dazu dient, ein
oder mehrere Pakete von dem ersten Endknoten an den zweiten Endknoten
zu übertragen
und die zugeordnete Instanznummer in jedes Paket aufzunehmen, während die
logische Verbindung besteht, wobei die zugeordnete Instanznummer
während
der Dauer der logischen Verbindung gleich bleibt; Mittel in dem
zweiten Endknoten, die dazu dienen, ein Paket zu empfangen und eine
in dem empfangenen Paket enthaltene Instanznummer zu ermitteln;
Mittel in dem zweiten Endknoten, die dazu dienen, festzustellen,
ob die in dem empfangenen Paket enthaltene Instanznummer die zugeordnete
Instanznummer ist; und Mittel in dem zweiten Endknoten, die dazu
dienen, das empfangene Paket in Abhängigkeit von der getroffenen Feststellung
zu verarbeiten oder zu verwerfen, nämlich als Reaktion auf die
Feststellung, dass die in dem empfangenen Paket enthaltene Instanznummer
die zugeordnete Instanznummer ist, das empfangene Paket durch den
zweiten Endknoten normal zu verarbeiten; und als Reaktion auf die
Feststellung, dass die in dem empfangenen Paket enthaltene Instanznummer
nicht die zugeordnete Instanznummer ist, das empfangene Paket durch
den zweiten Endknoten zu verwerfen.
-
Das
System umfasst darüber
hinaus vorzugsweise ein Mittel, das dazu dient, die logische Verbindung
zwischen dem ersten Endknoten und dem zweiten Endknoten wiederherzustellen;
ein Mittel, das dazu dient, die Instanznummer zu erhöhen, wobei
die erhöhte
Instanznummer der wiederhergestellten logischen Verbindung zugeordnet
wird; und ein Mittel, das dazu dient, die erhöhte Instanznummer in jedes
Paket aufzunehmen, das zwischen dem ersten Endknoten und dem zweiten
Endknoten während
der wiederhergestellten logischen Verbindung übertragen wird, wobei die erhöhte Instanznummer während der
Dauer der wiederhergestellten logischen Verbindung gleich bleibt.
-
Vorzugsweise
umfasst das Mittel zur Wiederherstellung einer logischen Verbindung
zwischen dem ersten Endknoten und dem zweiten Endknoten des Weiteren
Folgendes: ein Mittel, das dazu dient, einem Warteschlangen-Paar
in dem ersten Endknoten ein Warteschlangen-Paar in dem zweiten Endknoten
zuzuordnen.
-
Vorzugsweise
umfasst das Mittel zur Zuordnung eines Warteschlangen-Paars in dem
ersten Endknoten zu einem Warteschlangen-Paar in dem zweiten Endknoten
des Weiteren Folgendes: ein Mittel, das dazu dient, in dem ersten
Endknoten eine Tabelle mit Warteschlangen-Paaren zu erstellen; und ein
Mittel, das dazu dient, in der Tabelle einen Hinweis auf eine Zuordnung
von dem Warteschlangen-Paar in dem ersten Endknoten zu einem Warteschlangen-Paar
in dem zweiten Endknoten zu speichern.
-
Das
System umfasst vorzugsweise des Weiteren ein Mittel, das dazu dient,
ein Paket unter Verwendung einer bestimmten logischen Verbindung von
dem zweiten Endknoten an den ersten Endknoten zu übertragen;
ein Mittel, das dazu dient, das Paket unter Verwendung des ersten
Endknotens zu empfangen; und ein Mittel, das dazu dient, die Tabelle
zur Feststellung, ob die bestimmte logische Verbindung zuvor hergestellt
worden ist, zu verwenden.
-
Vorzugsweise
umfasst das Mittel zur Verwendung der Tabelle, um festzustellen,
ob die bestimmte logische Verbindung zuvor hergestellt worden ist,
darüber
hinaus Folgendes: ein Mittel, das dazu dient, festzustellen, ob
in der Tabelle ein Hinweis auf eine Zuordnung von einem Warteschlangen-Paar
in dem ersten Endknoten zu einem Warteschlangen-Paar in dem zweiten
Endknoten gespeichert ist.
-
Das
System umfasst vorzugsweise darüber hinaus
ein Mittel, das dazu dient, die Instanznummer in einen Übertragungskopfbereich
in jedem Paket aufzunehmen, das zwischen dem ersten Endknoten und
dem zweiten Endknoten während
der Dauer der logischen Verbindung übertragen wird.
-
Das
System umfasst vorzugsweise darüber hinaus
ein Mittel, das dazu dient, die Instanznummer in ein Folgenummernfeld
in einem Übertragungskopfbereich
in jedem Paket aufzunehmen, das zwischen dem ersten Endknoten und
dem zweiten Endknoten während
der Dauer der logischen Verbindung übertragen wird.
-
Das
System umfasst vorzugsweise darüber hinaus
ein Mittel, das dazu dient, die Instanznummer in jede Folgenummer
aufzunehmen, die in Paketen enthalten ist, welche zwischen dem ersten
Endknoten und dem zweiten Endknoten während der Dauer der logischen
Verbindung übertragen
werden.
-
Das
System umfasst vorzugsweise darüber hinaus
Mittel zur Feststellung, ob die logische Verbindung eine erste logische
Verbindung zwischen dem ersten Endknoten und dem zweiten Endknoten
ist; als Reaktion auf die Feststellung, dass die logische Verbindung
eine erste logische Verbindung ist: ein Mittel, das dazu dient,
der logischen Verbindung eine Instanznummer zuzuordnen; ein Mittel,
das dazu dient, die Instanznummer in jedes Paket aufzunehmen, das
während
der Dauer der logischen Verbindung zwischen dem ersten Endknoten
und dem zweiten Endknoten übertragen
wird, wobei die Instanznummer während
der Dauer der logischen Verbindung gleich bleibt; und ein Mittel,
das dazu dient, die Instanznummer als aktuelle Instanznummer zu
verwenden; und als Reaktion auf die Feststellung, dass die logische
Verbindung keine erste logische Verbindung ist: ein Mittel, das
dazu dient, die aktuelle Instanznummer zu erhöhen; ein Mittel, das dazu dient, die
erhöhte
aktuelle Instanznummer als aktuelle Instanznummer zu verwenden;
und ein Mittel, das dazu dient, die erhöhte aktuelle Instanznummer
in jedes Paket aufzunehmen, das während der Dauer der logischen
Verbindung zwischen dem ersten Endknoten und dem zweiten Endknoten übertragen
wird.
-
Das
System umfasst vorzugsweise des Weiteren ein Mittel, das dazu dient,
die logische Verbindung zu verlieren; ein Mittel, das dazu dient,
die logische Verbindung zwischen dem ersten Endknoten und dem zweiten
Endknoten wiederherzustellen, wobei zwischen dem Verlust der logischen
Verbindung und der Wiederherstellung der logischen Verbindung keine
Wartezustände
ausgeführt
werden.
-
Das
System umfasst vorzugsweise des Weiteren ein Mittel, das dazu dient,
ein Paket von dem ersten Endknoten an den zweiten Endknoten zu übertragen;
und ein Mittel, das dazu dient, eine aktuelle Instanznummer in das
Paket aufzunehmen.
-
Das
System umfasst vorzugsweise des Weiteren ein Mittel, das dazu dient,
ein Paket durch den zweiten Endknoten zu empfangen; ein Mittel,
das dazu dient, unter Verwendung des zweiten Endknotens eine in
dem empfangenen Paket enthaltene Instanznummer zu ermitteln; ein
Mittel, das dazu dient, eine aktuelle Instanznummer festzustellen;
ein Mittel, das dazu dient, festzustellen, ob die in dem empfangenen
Paket enthaltene Instanznummer die aktuelle Instanznummer ist; als
Reaktion auf die Feststellung, dass die in dem empfangenen Paket
enthaltene Instanznummer die aktuelle Instanznummer ist, ein Mittel,
das dazu dient, das Paket durch den zweiten Endknoten normal zu
verarbeiten; und als Reaktion auf die Feststellung, dass die in
dem empfangenen Paket enthaltene Instanznummer nicht die aktuelle Instanznummer
ist, ein Mittel, das dazu dient, das Paket durch den zweiten Endknoten
zu verwerfen.
-
Das
System umfasst vorzugsweise des Weiteren ein Mittel, das dazu dient,
nach der Herstellung der logischen Verbindung eine Folgenummer durch den
ersten Endknoten zu setzen; ein Mittel, das dazu dient, die Folgenummer
nach jeder Übertragung
eines Pakets von dem ersten Endknoten an den zweiten Endknoten zu
erhöhen;
ein Mittel, das dazu dient, nach jeder Übertragung eines Pakets von
dem ersten Endknoten an den zweiten Endknoten eine aktuelle Folgenummer
gleich der erhöhten
Folgenummer zu setzen; und ein Mittel, das dazu dient, in jedes
Paket, das von dem ersten Endknoten an den zweiten Endknoten übertragen
wird, eine aktuelle Folgenummer aufzunehmen.
-
In
einer dritten Erscheinungsform stellt die vorliegende Erfindung
ein Rechnerprogramm bereit, das, nachdem es in ein Rechnersystem
geladen wurde und darauf ausgeführt
wird, dazu dient, die Schritte des Verfahrens der ersten Erscheinungsform durchzuführen. Bevorzugte
Merkmale des Rechnerprogramms entsprechen bevorzugten Schritten
des Verfahrens der ersten Erscheinungsform.
-
Ein
Verfahren, ein System und ein Produkt in einem Datenverarbeitungssystem
werden offen gelegt, um Daten zu verwalten, die von einem ersten Endknoten
an einen zweiten Endknoten übertragen werden,
welche in dem Datenverarbeitungssystem enthalten sind. Vor der Übertragung
der Daten zwischen den Endknoten wird zwischen dem ersten Endknoten
und dem zweiten eine logische Verbindung hergestellt. Dieser bestimmten
logischen Verbindung wird eine Instanznummer zugeordnet. Die Instanznummer
wird in jedes Paket aufgenommen, das zwischen den Endknoten übertragen
wird, während
diese logische Verbindung besteht. Die Instanznummer bleibt während der
Dauer dieser logischen Verbindung gleich. Jedes Mal, wenn eine logische Verbindung
zwischen diesen Endknoten wiederhergestellt wird, wird die Instanznummer
geändert,
beispielsweise, indem sie erhöht
wird. Folglich wird jedem Paket eine bestimmte Instanz der logischen
Verbindung zugeordnet. Wenn ein Paket empfangen wird, kann die in
dem Paket enthaltene Instanznummer zur Feststellung verwendet werden,
ob das Paket ein veraltetes Paket ist, das während einer vorherigen logischen
Verbindung zwischen diesen Endknoten übertragen worden ist.
-
In
einer bevorzugten Ausführungsform
wird die Instanznummer als Teil der Folgenummer aufgenommen. Die
Bits, die in jedem Paket als Folgenummer vorgesehen sind, werden
gemäß der vorliegenden
Erfindung in Folgenummer-Bits und Instanznummer-Bits aufgeteilt. Die Instanznummer,
die während einer
bestimmten logischen Verbindung bei allen Paketen gleich bleibt,
wird mit Hilfe der Instanznummer-Bits angegeben. Die Folgenummer,
die bei jedem übertragenen
Paket erhöht
wird, wird mit Hilfe der Folgenummer-Bits angegeben.
-
Die
vorstehenden sowie weitere Aufgaben, Merkmale und Vorteile der vorliegenden
Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Eine
bevorzugte Ausführungsform
der vorliegenden Erfindung wird nun lediglich anhand eines Beispiels
und mit Bezug auf die beigefügten
Figuren beschrieben, in denen:
-
1 zwei
Endknoten nach dem Stand der Technik zeigt, von denen jeder ein
Warteschlangen-Paar enthält;
-
2 ein
Leiterdiagramm darstellt, das die Übertragung von duplizierten
Paketen nach dem Stand der Technik zeigt;
-
3 ein
Leiterdiagramm darstellt, das den Empfang eines ungültigen Pakets
nach dem Stand der Technik zeigt;
-
4 ein
Datenverarbeitungssystem zeigt, das eine kanalbasierte Schaltnetzwerk-Architektur zur Übertragung
von Daten gemäß der vorliegenden Erfindung
einsetzt;
-
5 eine
Funktionsübersicht
eines Host-Prozessorknotens gemäß der vorliegenden
Erfindung ist;
-
6 einen
Teil eines verteilten Rechnersystems darstellt, das eine beispielhafte
Anforderungs- und Bestätigungs-Transaktion gemäß der vorliegenden
Erfindung zeigt;
-
7 einen
Teil eines verteilten Rechnersystems zeigt, das einen zuverlässigen Verbindungs-(RC-)Dienst
nutzt, um gemäß der vorliegenden
Erfindung zwischen verteilten Prozessen Daten auszutauschen;
-
8 ein
Paket gemäß der vorliegenden
Erfindung veranschaulicht;
-
9 ein Übersichts-Flussdiagramm
darstellt, das die Aufnahme einer Instanznummer in jedes Paket gemäß der vorliegenden
Erfindung zeigt; und
-
10 ein Übersichts-Flussdiagramm
darstellt, das einen Endknoten zeigt, der gemäß der vorliegenden Erfindung
feststellt, ob ein empfangenes Paket während der aktuellen logischen
Verbindung übertragen
wurde.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Eine
bevorzugte beispielhafte Ausführungsform
der vorliegenden Erfindung stellt ein Verfahren, ein System und
ein Produkt in einem Datenverarbeitungssystem zur Verwaltung von
Daten bereit, die von einem ersten Endknoten an einen zweiten Endknoten übertragen
werden. Vor der Übertragung
der Daten zwischen den Endknoten wird zwischen dem ersten Endknoten
und dem zweiten Endknoten eine logische Verbindung hergestellt.
Die logische Verbindung wird zwischen einem bestimmten Warteschlangen-Paar,
das in dem ersten Endknoten enthalten ist, und einem bestimmten
Warteschlangen-Paar, das in dem zweiten Endknoten enthalten ist,
hergestellt.
-
Der
logischen Verbindung, die zwischen diesen beiden bestimmten Gruppen
von Warteschlangen-Paaren hergestellt wird, wird eine Instanznummer
zugeordnet. Die Instanznummer wird in jedes Paket aufgenommen, das
zwischen den Endknoten übertragen
wird, während
diese logische Verbindung besteht. Jedes Mal, wenn zwischen diesen
beiden Gruppen von Warteschlangen-Paaren eine logische Verbindung
wiederhergestellt wird, wird die Instanznummer erhöht. Die
Pakete enthalten auch Paketfolgenummern, die bei jeder Übertragung
eines Pakets erhöht
werden.
-
Eine
bevorzugte beispielhafte Ausführungsform
der vorliegenden Erfindung realisiert die Instanznummer als Teil
der herkömmlichen
Folgenummer. Die Gruppe der Bits, die für die Folgenummer nach dem
Stand der Technik reserviert ist, wird in einen Folgennumernsatz
von Bits und einen Instanznummernsatz von Bits aufgeteilt. Die Instanznummer der
vorliegenden Erfindung wird von dem Instanznummernsatz der Bits
angegeben. Die Folgenummer der vorliegenden Erfindung wird von dem
Folgenummernsatz der Bits angegeben. Gemäß der vorliegenden Erfindung
wird somit die herkömmliche
Folgenummer nach dem Stand der Technik sowohl zur Angabe der Instanznummer
als auch zur Angabe der Folgenummer verwendet. Der Instanznummernsatz der
Bits bleibt über
die gesamte Dauer derselben logischen Verbindung gleich. Der Folgenummernsatz der
Bits wird bei jeder Übertragung
eines Pakets erhöht,
wie es nach dem Stand der Technik beschrieben ist.
-
Der
Folgenummernsatz der Bits springt in einer Weise wieder auf null
zurück,
die nach dem Stand der Technik bekannt ist, wenn die höchstmögliche Folgenummer
erhöht
wird. Die Instanznummer wird durch die Erhöhung der Folgenummer oder deren Zurückspringen
auf null nicht beeinflusst. Die Instanznummer bleibt gleich, solange
die logische Verbindung nicht wiederhergestellt wurde. Da ein Teil
der herkömmlichen Folgenummernbits
für die
Instanznummer reserviert ist, ist die höchstmögliche Folgenummer daher nun
kleiner als die Nummer, die von allen Folgenummernbits hätte dargestellt
werden können.
-
Eine
bevorzugte beispielhafte Ausführungsform
der vorliegenden Erfindung stellt ein verteiltes Datenverarbeitungssystem
bereit, das über
Endknoten, Vermittlungsstellen, Router und Verbindungen verfügt, die
diese Komponenten untereinander verbinden. Jeder Endknoten verwendet
Sende- und Empfangswarteschlangen-Paare, um Nachrichten zu senden
und zu empfangen. Die Endknoten teilen die Nachricht in Pakete auf
und übertragen
die Pakete über
die Verbindungen. Die Vermittlungsstellen und die Router verbinden
die Endknoten und leiten die Pakete an den entsprechenden Endknoten.
Am Ziel setzen die Endknoten die Pakete wieder zu einer Nachricht
zusammen.
-
In
einer bevorzugten Ausführungsform
der vorliegenden Erfindung werden die Warteschlangen-Paare verwendet,
um die Instanznummer einer logischen Verbindung zwischen bestimmten
Gruppen von Warteschlangen-Paaren zuzuordnen. Bei der erstmaligen
Herstellung einer logischen Verbindung zwischen einem ersten Endknoten
und einem zweiten Endknoten wird ein Warteschlangen-Paar in dem
ersten Endknoten einem Warteschlangen-Paar in dem zweiten Endknoten
zugeordnet, wobei gewöhnlich
eine Tabelle mit Warteschlangen-Paaren verwendet wird. Folglich
kann die Tabelle mit den Warteschlangen-Paaren jedes Mal, wenn eine
logische Verbindung zwischen zwei Gruppen von Warteschlangen-Paaren
hergestellt wird, zur Feststellung verwendet werden, ob diese beiden
Gruppen von Warteschlangen-Paaren
bereits zugeordnet worden sind. Wenn diese beiden Gruppen von Warteschlangen-Paaren
bereits zugeordnet worden sind, wird zwischen diesen beiden Gruppen
von Warteschlangen-Paaren
erneut eine logische Verbindung hergestellt, und die Instanznummer
wird erhöht.
-
4 zeigt
ein Datenverarbeitungssystem, das eine kanalbasierte Schaltnetzwerk-Architektur zur Übertragung
von Daten gemäß der vorliegenden Erfindung
einsetzt. Rechnersysteme, die die vorliegende Erfindung ausführen, können von
einem kleinen Server mit einem Prozessor und ein paar Eingabe-/Ausgabe-(E/A-)Adaptern
bis hin zu massiv parallelen Superrechnersystemen mit Hunderten
oder Tausenden von Prozessoren und Tausenden von E/A-Adaptern reichen.
Außerdem
kann die vorliegende Erfindung in einer Infrastruktur mit fernen
Rechnersystemen realisiert werden, die über das Internet oder ein Intranet
verbunden sind.
-
Das
Datenverarbeitungssystem 402 enthält ein Speichernetzwerk 424.
Ein Speichernetzwerk kann auch als ein "Teilnetz" bezeichnet werden. Ein Teilnetz ist
eine Gruppe von Endknoten und in Kaskade geschalteten Vermittlungsstellen,
die als eine einzelne Einheit verwaltet werden. Üblicherweise nimmt ein Teilnetz
einen einzelnen geografischen oder funktionalen Bereich ein. Ein
einzelnes Rechnersystem in einem Raum könnte beispielsweise als ein
Teilnetz definiert werden.
-
Das
Datenverarbeitungssystem 402 enthält ein Netzwerk mit hoher Bandbreite
und geringer Latenzzeit, das Knoten innerhalb des verteilten Rechnersystems
untereinander verbindet. Ein Knoten ist eine beliebige Komponente,
die an eine oder mehrere Verbindungsleitungen eines Netzwerks angeschlossen
ist und den Ursprung und/oder das Ziel von Nachrichten innerhalb
des Netzwerks bildet. In dem dargestellten Beispiel enthält das Datenverarbeitungssystem 402 Knoten
in Form von dem Hostprozessor-Knoten 406, dem Hostprozessor-Knoten 408,
dem als redundantes Feld unabhängiger
Festplatten (RAID) ausgelegten Teilsystem-Knoten 462 und
dem E/A-Chassis-Knoten 412. Die in 4 dargestellten
Knoten dienen lediglich der Veranschaulichung, da das SAN 424 eine
beliebige Anzahl und jede beliebige Art von unabhängigen Prozessorknoten,
E/A-Adapterknoten
und E/A-Einheitenknoten verbinden kann. Jeder der Knoten kann die
Funktion eines Endknotens übernehmen,
der hier als eine Einheit definiert wird, von der Nachrichten oder
Pakete stammen oder die Nachrichten oder Pakete schließlich im
SAN 424 verarbeitet.
-
Das
SAN 424 beinhaltet die Übertragungs- und
Verwaltungsinfrastruktur, die sowohl E/A-Übertragungen als auch Übertragungen
zwischen den Prozessoren (interprocessor communications, IPC) unterstützt. Das
SAN 424 enthält
ein Übertragungs-Schaltnetzwerk,
das es vielen Einheiten ermöglicht,
Daten mit hoher Bandbreite und geringer Latenzzeit in einer sicheren,
fernverwalteten Umgebung gleichzeitig zu übertragen. Endknoten können über mehrere
Anschlüsse
(ports) Daten austauschen und mehrere Pfade durch das SAN 424 nutzen.
-
Das
SAN 424 enthält
Host-Kanaladapter (HCAs) 426, 428, 430 und 432,
Zielkanaladapter (TCAs) 458, 460 und 468,
Vermittlungsstellen 414, 416 und 452 und
den Router 420. Eine Vermittlungsstelle ist eine Einheit,
die mehrere Verbindungsleitungen zusammenschaltet und die Weiterleitung
von Paketen von einer Verbindungsleitung auf eine andere Verbindungsleitung
innerhalb eines Teilnetzes unter Verwendung von einem kleinen Kopfbereich-Feld "Destination Local Identifier" (DLID) ermöglicht.
Im Allgemeinen kann eine Vermittlungsstelle Pakete von einem Anschluss
an einen beliebigen anderen Anschluss, der sich an derselben Vermittlungsstelle
befindet, weiterleiten.
-
Ein
Router ist eine Einheit, die mehrere Teilnetze miteinander verbindet
und Pakete von einer Verbindungsleitung in einem ersten Teilnetz
auf eine andere Verbindungsleitung in einem zweiten Teilnetz unter
Verwendung eines großen
Destination-Globally-Unique-Identifier-(DGUID-)Kopfbereichs
weiterleiten kann.
-
Eine
Verbindungsleitung ist ein Vollduplex-Kanal zwischen zwei beliebigen
Netzwerkelementen eines Schaltnetzwerks wie zum Beispiel Endknoten,
Vermittlungsstellen oder Routern. Zu beispielhaften geeigneten Verbindungsleitungen
gehören
Kupferkabel, Lichtwellenleiterkabel und Kupferbahnen auf Rückwandplatinen
und Leiterplatten.
-
Jeder
Knoten im Datenverarbeitungssystem 402 enthält mindestens
einen Kanaladapter (CA). Jeder Kanaladapter ist ein Endpunkt, der
die Kanaladapter-Schnittstelle für
Quellen- oder Senkenpakete, die unter Verwendung eines Speichernetzwerks (SAN) 424 übertragen
werden, ausreichend detailliert realisiert. Das SAN 424 kann
auch als Schaltnetzwerk ("fabric") bezeichnet werden.
Ein in einem Prozessorknoten enthaltener Kanaladapter ist ein Host-Kanaladapter
(HCA). Ein in einem anderen Knoten als einem Prozessorknoten enthaltener
Kanaladapter ist ein Zielkanaladapter (TCA).
-
Der
Host-Prozessorknoten 406 enthält Kanaladapter in Form von
dem Host-Kanaladapter 426 und dem Host-Kanaladapter 428.
Der Host-Prozessorknoten 408 enthält den Host-Kanaladapter 430 und
den Host-Kanaladapter 432. Der Host-Prozessorknoten 406 enthält auch
die Zentraleinheiten 434 und 436 und einen Speicher 440,
die über
ein Bussystem 442 miteinander verbunden sind. Der Host-Prozessorknoten 408 enthält gleichfalls
die Zentraleinheiten 444 und 446 und einen Speicher 448,
die über
ein Bussystem 450 miteinander verbunden sind.
-
Der
Host-Kanaladapter 426 stellt eine Verbindung zur Vermittlungsstelle 414 bereit.
Der Host-Kanaladapter 428 stellt eine Verbindung zu den Vermittlungsstellen 414 und 416 bereit.
Der Host-Kanaladapter 430 stellt eine Verbindung zu den
Vermittlungsstellen 414 und 416 bereit. Und der
Host-Kanaladapter 432 stellt
eine Verbindung zur Vermittlungsstelle 416 bereit.
-
Die
Host-Kanaladapter sind vorzugsweise in Hardware ausgeführt. In
dieser gegebenen Art der Ausführung
befreit die Host-Kanaladapter-Hardware die Zentraleinheit und/oder
den E/A-Adapter von einem Großteil
des Übertragungsaufwands.
Diese Hardware-Ausführung
des Host-Kanaladapters gestattet auch mehrere gleichzeitige Übertagungen über ein
geschaltetes Netzwerk, ohne den herkömmlichen Aufwand in Verbindung
mit Übertragungsprotokollen
in Kauf nehmen zu müssen.
-
Das
E/A-Chassis 412 enthält
eine E/A-Vermittlungsstelle 452 im Rückwandplatine (Backplane) des
E/A-Adapters, um Adapterkarten mit dem SAN 424 zu verbinden,
und mehrere E/A-Module 454 und 456. In diesem
Beispiel haben die E/A-Module die Form von Adapterkarten.
-
Zu
den Adapterkarten können
eine SCSI-Adapterkarte, eine Adapterkarte zu Fiber-Channel-Hub- und
Fiber-Channel-Arbitrated-Loop
(FC-AL-)Einheiten, eine Ethernet-Adapterkarte, eine Grafik-Adapterkarte
oder eine Video-Adapterkarte gehören.
Jede bekannte Art einer Adapterkarte kann eingesetzt werden.
-
Jedes
E/A-Modul enthält
einen Zielkanaladapter. Das E/A-Modul 454 enthält den Zielkanaladapter
(TCA) 458, und das E/A-Modul 456 enthält den Zielkanaladapter
(TCA) 460.
-
Ein
RAID-Teilsystemknoten 462 ist ebenfalls im Datenverarbeitungssystem 402 enthalten.
Der Knoten 462 enthält
einen Prozessor 464, einen Speicher 466, einen
Zielkanaladapter (TCA) 468 und mehrere redundante Speicherplatten-Einheiten 470 und/oder
Speicherplatten-Einheiten 470,
auf denen relativ kleine Datenblöcke
verteilt werden (striped storage disk unit) 470. Bei dem
Zielkanaladapter 468 kann es sich um einen Host-Kanaladapter
mit uneingeschränktem
Funktionsumfang handeln.
-
Das
SAN 424 ermöglicht
den Nutzern der E/A-Übertragungen
und der Übertragungen
zwischen den Prozessoren (IPC) des verteilten Rechnersystems Datenübertragungen
ohne Prozessorkopie (zero processor-copy data transfers) und ohne Beteiligung
des Betriebssystemkern-Prozesses und verwendet Hardware, um zuverlässige, fehlertolerante Übertragungen
zu ermöglichen.
-
5 ist
eine Funktionsübersicht
eines Host-Prozessorknotens
gemäß der vorliegenden
Erfindung. Der Host-Prozessorknoten 500 ist
ein Beispiel für
einen Host- Prozessorknoten
wie den Host-Prozessorknoten 406 oder den Host-Prozessorknoten 408,
die in 4 gezeigt sind.
-
Der
Host-Prozessorknoten 500 enthält eine Gruppe von Nutzern 502, 504, 506 und 508,
bei denen es sich um Prozesse handelt, die auf dem Host-Prozessorknoten 500 ausgeführt werden.
Der Host-Prozessorknoten 500 enthält auch die Kanaladapter 510 und 512.
Der Kanaladapter 510 enthält die Anschlüsse 514 und 516,
während
der Kanaladapter 512 die Anschlüsse 518 und 520 enthält. Jeder
Anschluss ist mit einer Verbindungsleitung verbunden.
-
Die
Nutzer 502 bis 508 übertragen über die Verbs-Schnittstelle 522 und
den Nachrichten- und Datendienst 524 Nachrichten an das
SAN wie zum Beispiel das SAN 424. Eine Verbs-Schnittstelle
ist im Grunde eine abstrakte Beschreibung der Funktionalität eines
Host-Kanaladapters. Ein Betriebssystem kann einen Teil oder die
gesamte Verbs-Funktionalität über seine
Programmierschnittstelle offen legen. Diese Schnittstelle legt das
Verhalten des Hosts fest. Der Nachrichten- und Datendienst 524 ist
eine Schnittstelle, die sich auf einer höheren Ebene als die Verbs-Schnittstelle
befindet, und sie wird zur Verarbeitung von Nachrichten und Daten,
die über
die Kanaladapter 510 und 512 empfangen werden,
verwendet. Der Nachrichten- und Datendienst 524 stellt
eine Schnittstelle zu den Nutzern 502 bis 508 bereit,
um Nachrichten und andere Daten zu verarbeiten.
-
6 veranschaulicht
einen Teil eines verteilten Rechnersystems und zeigt eine beispielhafte Anforderungs-
und Bestätigungstransaktion
gemäß der vorliegenden
Erfindung. Das verteilte Rechnersystem 600 in 6 enthält einen
Host- Prozessorknoten 602 und
einen Host-Prozessorknoten 604. Der Host-Prozessorknoten 602 enthält einen Host-Kanaladapter 606.
Der Host-Prozessorknoten 604 enthält einen Host-Kanaladapter 608.
Das verteilte Rechnersystem in 6 enthält ein SAN-Schaltnetzwerk 610,
das eine Vermittlungsstelle 612 und eine Vermittlungsstelle 614 enthält. Das SAN-Schaltnetzwerk
enthält
eine Verbindungsleitung, die den Host-Kanaladapter 606 mit
der Vermittlungsstelle 612 verbindet, eine Verbindungsleitung, die
die Vermittlungsstelle 612 mit der Vermittlungsstelle 614 verbindet,
und eine Verbindungsleitung, die den Host-Kanaladapter 608 mit der Vermittlungsstelle 614 verbindet.
-
Bei
den beispielhaften Transaktionen beinhaltet der Host-Prozessorknoten 602 einen
Client-Prozess A. Der Host-Prozessorknoten 604 beinhaltet
einen Client-Prozess B. Der Client-Prozess A tauscht mit dem Host-Kanaladapter 606 über das Warteschlangen-Paar 620 Informationen
aus. Der Client-Prozess
B tauscht mit dem Hardware-Kanaladapter 608 über das
Warteschlangen-Paar 622 Informationen aus.
-
Bei
den Warteschlangen-Paaren 620 und 622 handelt
es sich um Strukturen, die jeweils eine Sendewarteschlange und eine
Empfangswarteschlange enthalten. Ein Warteschlangen-Paar enthält gewöhnlich Steuerregister
innerhalb des Kanaladapters. Das Warteschlangen-Paar 620 enthält die Sendewarteschlange 624 und
die Empfangswarteschlange 626. Das Warteschlangen-Paar 622 enthält die Sendewarteschlange 628 und
Empfangswarteschlange 630.
-
Der
Prozess A startet eine Nachrichtenanforderung, indem er Warteschlangenelemente
in die Sendewarteschlange 624 des Warteschlangen-Paares 620 stellt.
Die Hardware im Host- Kanaladapter 606 empfängt das
Warteschlangenelement in der Empfangswarteschlange 630.
Der Prozess B liest dann das Warteschlangenelement und teilt die
Nachricht in Pakete, wie zum Beispiel das in 8 gezeigte
Paket, auf. Der Prozess B kann eine Nachricht einleiten, indem er
Warteschlangenelemente in die Sendewarteschlange 628 stellt,
die dann durch die Empfangswarteschlange 626 vom Prozess
A empfangen werden.
-
Pakete
werden durch das SAN-Schaltnetzwerk geleitet, und um zuverlässige Übertragungsdienste
zu erreichen, werden sie vom letzten Ziel-Endknoten bestätigt. Wenn
sie nicht nacheinander bestätigt
werden, wird das Paket vom Quellen-Endknoten erneut gesendet. Pakete
werden von Quellen-Endknoten erzeugt und von Ziel-Endknoten verarbeitet.
-
7 zeigt
einen Teil des verteilten Rechnersystems 100, das einen
zuverlässigen
Verbindungsdienst nutzt, um gemäß der vorliegenden
Erfindung zwischen verteilten Prozessen Daten auszutauschen.
-
Bei
der Erzeugung eines Warteschlangen-Paares wird das Warteschlangen-Paar
so gesetzt, dass es einen ausgewählten
Typ eines Übertragungsdienstes
bereitstellt. Ein verteiltes Rechnersystem, das die bevorzugte Ausführungsform
der vorliegenden Erfindung ausführt,
unterstützt
vier Arten von Übertragungsdiensten: "reliable connected" (RC), "unreliable connected" (UC), "unreliable datagram" (UD) und "reliable datagram" (RD).
-
Zuverlässig und
unzuverlässig
verbundene Dienste ordnen ein lokales Warteschlangen-Paar nur einem
einzigen fernen Warteschlangen-Paar zu. Verbundene Dienste machen
es erforderlich, dass ein Prozess ein von ihm zu verwendendes Warteschlangen-Paar
erzeugt, damit dieser Prozess mit einem anderen Prozess über das
SAN-Schaltnetzwerk Daten austauschen kann. Wenn jeder von N Host-Prozessorknoten
P Prozesse enthält
und alle P Prozesse auf jedem Knoten mit allen Prozessen auf all
den anderen Knoten Daten austauschen möchten, benötigt jeder Host-Prozessorknoten
folglich p2 × (N – 1) Warteschlangen-Paare.
Ein Prozess kann überdies ein
Warteschlangen-Paar mit einem anderen Warteschlangen-Paar auf demselben
Host-Kanaladapter verbinden.
-
Das
verteilte Rechnersystem 700 in 7 enthält einen
Host-Prozessorknoten
1, einen Host-Prozessorknoten 2 und einen Host-Prozessorknoten 3.
Der Host-Prozessorknoten 1 enthält
einen Prozess A 710. Der Host-Prozessorknoten 2 enthält einen
Prozess C 720 und einen Prozess D 730. Der Host-Prozessorknoten 3
enthält
einen Prozess E 740.
-
Der
Host-Prozessorknoten 1 enthält
die Warteschlangen-Paare 4, 6 und 7, von denen jedes über eine
Sendewarteschlange und eine Empfangswarteschlange verfügt. Der
Host-Prozessorknoten 2 verfügt über die
Warteschlangen-Paare 2 und 5, und der Host-Prozessorknoten 3 verfügt über das
Warteschlangen-Paar 9. Der zuverlässige Verbindungs-(RC-)Dienst
des verteilten Rechnersystems 700 ordnet ein lokales Warteschlangen-Paar
nur einem einzigen fernen Warteschlangen-Paar zu. Folglich wird
das Warteschlangen-Paar 4 zur Kommunikation mit dem Warteschlangen-Paar
2 verwendet; das Warteschlangen-Paar 7 wird zur Kommunikation mit
dem Warteschlangen-Paar 5 verwendet; und das Warteschlangen-Paar
6 wird zur Kommunikation mit dem Warteschlangen-Paar 9 verwendet.
-
Ein
zuverlässiger
Verbindungs-(RC-)Dienst wird zuverlässig gestaltet, da Hardware
Folgenummern verwaltet und alle Paketübertragungen bestätigt. Eine
Kombination aus Hardware und SAN-Treibersoftware wiederholt fehlgeschlagene Übertragungen.
Der Prozess-Client des Warteschlangen-Paares erzielt zuverlässige Übertragungen
selbst bei Vorhandensein von Bit-Fehlern, im Falle von Übertragungsunterläufen beim
Empfang und bei einer Überlastung
des Netzwerks. Wenn in dem SAN-Schaltnetzwerk alternative Pfade
vorhanden sind, können zuverlässige Übertragungen
selbst dann weiterhin durchgeführt
werden, wenn Vermittlungsstellen, Verbindungsleitungen oder Kanaladapter-Anschlüsse des
Schaltnetzwerks ausfallen.
-
Darüber hinaus
können
Daten mit Hilfe von Bestätigungen
zuverlässig
im gesamten SAN-Schaltnetzwerk übermittelt
werden. Die Bestätigung
kann gegebenenfalls eine Bestätigung
auf Prozess-Ebene sein, d.h. eine Bestätigung, die zusichert, dass
ein Empfangsprozess die Daten verarbeitet hat.
-
Alternativ
kann es sich bei der Bestätigung um
eine Bestätigung
handeln, die lediglich anzeigt, dass die Daten ihr Ziel erreicht
haben.
-
8 veranschaulicht
ein Paket gemäß der vorliegenden
Erfindung. In der hier verwendeten Weise ist eine Nachricht eine
von der Anwendung definierte Datenaustausch-Einheit, bei der es
sich um eine einfache Übertragungseinheit
zwischen Prozessen, die zusammenarbeiten, handelt. Nachrichten werden
in Pakete aufgeteilt. Ein Paket ist eine einzelne, von Kopfbereichen
und/oder Nachsätzen
des Netzwerkprotokolls eingeschlossene Dateneinheit. Die Kopfbereiche
stellen im Allgemeinen Steuer- und Weiterleitungsinformationen bereit,
um das Paket durch das SAN zu leiten. Der Nachsatz enthält im Allgemeinen
Steuerdaten und Daten für
eine zyklische Blockprüfung
(CRC), um sicherzustellen, dass Pakete nicht mit beschädigtem Inhalt übermittelt
werden.
-
Ein
Paket ist eine Informationseinheit, die durch das SAN-Schaltnetzwerk geleitet
wird. Das Paket ist ein Endknoten-zu-Endknoten-Konstrukt und wird folglich
von Endknoten erstellt und verarbeitet. Pakete, die für einen
Kanaladapter (entweder einen Host-Kanaladapter oder einen Zielkanaladapter)
bestimmt sind, werden von den Vermittlungsstellen und Routern in
dem SAN-Schaltnetzwerk weder erzeugt noch verarbeitet. Bei Paketen,
die für
einen Kanaladapter bestimmt sind, transportieren die Vermittlungsstellen
und Router die Anforderungs- oder die Bestätigungspakete vielmehr einfach
näher an
die letztendliche Zielstation, wobei sie die verschiedenen Kopfbereich-Felder
der Verbindung in dem Prozess verändern. Router verändern auch
den Netzwerkkopfbereich des Pakets, wenn das Paket eine Teilnetz-Grenze überschreitet.
Beim Durchlaufen eines Teilnetzes bleibt ein einzelnes Paket auf
einer Ebene mit nur einem Dienst.
-
Bei
zuverlässigen
Dienst-Arten wie zum Beispiel dem zuverlässigen Verbindungs-(RC-)Übertragungsdienst
erzeugen Endknoten wie zum Beispiel Host-Prozessor-Endknoten und
E/A-Adapter-Endknoten
Anforderungspakete und schicken Bestätigungspakete zurück. Vermittlungsstellen
und Router leiten Pakete von der Quelle zum Ziel. Mit Ausnahme des
abweichenden CRC-Nachsatzfeldes, das in jeder Stufe in dem Netzwerk
aktualisiert wird, leiten Vermittlungsstellen die Pakete unverändert weiter. Router
aktualisieren das abweichende CRC-Nachsatzfeld und ändern andere
Felder in dem Kopfbereich, während
das Paket weitergeleitet wird.
-
Eine
abgehende Nachricht wird in ein oder mehrere Datenpakete aufgeteilt.
Die Kanaladapter-Hardware fügt
jedem Paket einen Übertragungskopfbereich
und einen Netzwerkkopfbereich hinzu. Gemäß der vorliegenden Erfindung
enthält
der Übertragungskopfbereich
Folgenummern, eine Instanznummer und andere Übertragungsinformationen. Der
Netzwerkkopfbereich enthält
Weiterleitungsinformationen wie zum Beispiel die Ziel-IP-Adresse und andere
Netzwerk-Weiterleitungsinformationen. Der Verbindungskopfbereich
enthält
die lokale Zielkennung (Destination Local Identifier, DLID) oder
andere lokale Weiterleitungsinformationen. Der entsprechende Verbindungskopfbereich
wird dem Paket immer hinzugefügt.
Der entsprechende globale Netzwerkkopfbereich wird einem bestimmten
Paket hinzugefügt,
wenn sich der Ziel-Endknoten in einem fernen Teilnetz befindet.
-
Wenn
ein zuverlässiger Übertragungsdienst genutzt
wird und ein Anforderungsdatenpaket seinen Ziel-Endknoten erreicht,
verwendet der Ziel-Endknoten Bestätigungsdatenpakete, um den
Sender des Anforderungsdatenpakets wissen zu lassen, dass das Anforderungsdatenpaket
auf Gültigkeit
geprüft und
am Ziel angenommen worden ist. Bestätigungsdatenpakete bestätigen ein
oder mehrere gültige
und angenommene Anforderungsdatenpakete. Der Anfordernde kann mehrere
ausstehende Anforderungsdatenpakete haben, bevor er Bestätigungen
empfängt.
In einer Ausführungsform
wird die Anzahl von mehreren ausstehenden Nachrichten, d.h. von
Anforderungsdatenpaketen, bei der Erzeugung eines Warteschlangen-Paares
ermittelt.
-
Das
Paket 800 enthält
einen Weiterleitungskopfbereich 802, einen Übertragungskopfbereich 804,
eine Paketnutzlast 806 und ein CRC 808. Der Weiterleitungskopfbereich 802 dient
zur Ermittlung von Anschlüssen
von Quellen- und Zielendknoten innerhalb eines Kanaladapters für die Paketnutzlast 806.
-
Der Übertragungskopfbereich 804 gibt
das Ziel-Warteschlangen-Paar
für die
Paketnutzlast 806 an. Im Übertragungskopfbereich 804 befindet
sich ein Folgenummernfeld 810. Nach dem Stand der Technik
wurde die Folgenummer von allen im Folgenummernfeld 810 enthaltenen
Bits dargestellt. Gemäß der vorliegenden
Erfindung werden jedoch sowohl eine Folgenummer als auch eine Instanznummer
von allen Bits des Folgenummernfeldes 810 dargestellt.
Gemäß der vorliegenden
Erfindung enthält die
Folgenummer sowohl einen Instanzteil 812 als auch einen
Folgeteil 814. Folglich enthalten die Folgenummern der
vorliegenden Erfindung einen Folgeteil, der bei jedem Paket erhöht wird,
und auch einen Instanzteil, der während der Dauer einer jeden
logischen Verbindung gleich bleibt.
-
Der Übertragungskopfbereich 804 stellt
auch Informationen wie den Operationscode und die Partition für die Paketnutzlast 806 bereit.
CRC 808 wird zur Fehlerprüfung verwendet.
-
Der
Operationscode gibt an, ob das Paket das erste, das letzte, ein
dazwischen liegendes oder das einzige Paket einer Nachricht ist.
Der Operationscode gibt auch an, ob die Operation eine RDMA-Sendeoperation,
eine RDMA-Schreiboperation, eine
RDMA-Leseoperation oder eine unteilbare (atomic) Operation ist.
-
Gemäß der vorliegenden
Erfindung wird im Feld 812 eine Instanznummer für jedes
Paket gespeichert. Die Instanznummer bleibt während einer Instanz einer logischen
Verbindung gleich. Wenn eine logische Verbindung getrennt und später wiederhergestellt
wird, wird die Instanznummer erhöht.
Diese erhöhte
Instanznummer wird dann im Feld 812 für jedes Paket gespeichert,
das unter Verwendung dieser wiederhergestellten logischen Verbindung übertragen
wird.
-
Jedes
Mal, wenn ein Paket übertragen
wird, wird der Folgeteil 814 erhöht.
-
9 zeigt
ein Übersichts-Flussdiagramm, das
die Aufnahme einer Instanznummer in jedes Paket gemäß der vorliegenden
Erfindung zeigt. Der Prozess beginnt, wie im Block 900 gezeigt
ist, und anschließend
schaltet der Prozess zum Block 902, der den Beginn der
Ausführung
eines Nutzers in einem Prozessorknoten zeigt. Als Nächstes zeigt
der Block 904 die Herstellung einer logischen Verbindung
zwischen dem Prozessor-Endknoten
und dem zweiten Endknoten. Wenn eine logische Verbindung zwischen
diesen Endknoten hergestellt wird, wird ein Sende- und Empfangswarteschlangen-Paar
in dem ersten Endknoten einem Sende- und Empfangswarteschlangen-Paar
in dem zweiten Endknoten zugeordnet. Diese Zuordnung kann mit Hilfe
einer Tabelle mit Warteschlangen-Paaren erfolgen, die in jedem Endknoten
von der Übertragungs-Verwaltungseinheit des
Endknotens verwaltet wird.
-
Der
Block 906 zeigt daraufhin die vom Prozessor-Endknoten getroffene
Feststellung, ob dies das erste Mal ist, dass zwischen dem jeweiligen
Warteschlangen-Paar im Prozessor-Endknoten
und dem jeweiligen Warteschlangen-Paar in dem zweiten Endknoten
eine logische Verbindung hergestellt worden ist. Ein Endknoten kann
mit Hilfe der Tabelle mit den Warteschlangen-Paaren feststellen,
ob eine logische Verbindung zum ersten Mal hergestellt worden ist.
Die Tabelle mit den Warteschlangen-Paaren zeigt, ob eine logische
Verbindung bereits hergestellt worden ist. Wenn eine logische Verbindung
getrennt wird, werden die Warteschlangen-Paare in beiden Endknoten
in einen Ruhezustand versetzt und sind nicht mehr einander zugeordnet.
Die Tabellen mit den Warteschlangen-Paaren in jedem Endknoten zeigen, dass
sich die Warteschlangen-Paare im Ruhezustand befinden.
-
Wenn
eine logische Verbindung bereits hergestellt worden ist und nicht
getrennt wurde, bleiben die Warteschlangen-Paare in jedem Endknoten
einander zugeordnet. Die Tabellen mit den Warteschlangen-Paaren
in jedem Endknoten zeigen, dass die Warteschlangen-Paare immer noch
einander zugeordnet sind.
-
Ein
Endknoten kann mit Hilfe seiner Tabelle mit den Warteschlangen-Paaren
feststellen, ob eine logische Verbindung bereits hergestellt worden
ist, indem er feststellt, ob ein Warteschlangen-Paar einem Warteschlangen-Paar
in dem zweiten Knoten zugeordnet worden ist. Wenn ein Warteschlangen-Paar
in diesem Knoten einem Warteschlangen-Paar in dem zweiten Knoten
zugeordnet ist, wurde zwischen diesen Endknoten bereits eine logische Verbindung
hergestellt. Wenn ein Warteschlangen-Paar in diesem Knoten keinem
Warteschlangen-Paar in dem zweiten Knoten zugeordnet ist, wurde
noch keine logische Verbindung zwischen diesen Endknoten hergestellt.
-
Nehmen
wir nochmals Bezug auf den Block 906. Wenn festgestellt
wird, dass dies das erste Mal ist, dass zwischen diesen beiden bestimmten
Gruppen von Warteschlangen-Paaren eine logische Verbindung hergestellt
worden ist, schaltet der Prozess zum Block 908, der zeigt,
dass die Verwaltungseinheiten für
die logischen Verbindungen eines jeden Endknotens eine Start-Instanznummer austauschen. Diese
Start-Instanznummer wird die aktuelle Instanznummer, und sie bleibt
gleich, solange diese logische Verbindung besteht.
-
Der
Prozess schaltet dann zum Block 910, der zeigt, dass die
Verwaltungseinheiten für
die logischen Verbindungen ihre Start-Folgenummern austauschen.
Die Folgenummer wird im Folgenummernteil des Folgenummernfeldes
gespeichert und bleibt nicht gleich. Sie wird bei jeder Übertragung
eines Pakets erhöht.
Außerdem
kann jeder Endknoten seine eigene Folgenummer wählen, die in keiner Beziehung
zu der von dem anderen Endknoten gewählten Folgenummer steht. Die
Instanznummer wird im Instanznummernteil des Folgenummernfeldes
gespeichert und bleibt gleich, solange diese logische Verbindung
besteht.
-
Danach
zeigt der Block 912 die Übertragung von Paketen zwischen
den Endknoten, wobei die im Folgenummernteil gespeicherten Paketfolgenummern
bei jedem Paket erhöht
werden. Als Nächstes zeigt
der Block 914 die Aufnahme der aktuellen Instanznummer
in jedes Paket. Die Instanznummer bleibt bei jedem Paket gleich,
das während
dieser logischen Verbindung übertragen
wird.
-
Im
Block 916 wird dann festgestellt, ob die aktuelle logische
Verbindung verloren gegangen ist. Wenn festgestellt wird, dass die
aktuelle logische Verbindung nicht verloren gegangen ist, schaltet
der Prozess wieder zum Block 912. Nochmals Bezug nehmend
auf den Block 916 schaltet der Prozess zum Block 918, wenn
festgestellt wird, dass die logische Verbindung verloren gegangen
ist. Im Block 918 wird die Entscheidung getroffen, ob zwischen
diesen beiden Warteschlangen-Paaren eine logische Verbindung wiederhergestellt
werden soll. Wenn entschieden wird, dass zwischen diesen beiden
Warteschlangen-Paaren keine logische Verbindung wiederhergestellt
werden soll, schaltet der Prozess zum Block 920. Nochmals
Bezug nehmend auf den Block 918 schaltet der Prozess zum
Block 922, wenn entschieden wird, dass zwischen diesen
beiden Warteschlangen-Paaren eine logische Verbindung wiederhergestellt
werden soll. Der Block 922 zeigt die Wiederherstellung
einer logischen Verbindung zwischen diesen beiden Warteschlangen-Paaren,
ohne dass Wartezustände
ausgeführt
werden müssen.
Der Prozess schaltet wieder zum Block 906.
-
Nochmals
Bezug nehmend auf den Block 906 schaltet der Prozess zum
Block 934, wenn festgestellt wird, dass dies nicht das
erste Mal ist, dass zwischen diesen beiden bestimmten Warteschlangen-Paaren
eine logische Verbindung für
diesen Dienst hergestellt worden ist. Der Block 934 zeigt
die Ermittlung der Instanznummer, die für Übertragungen während der
letzten logischen Verbindung verwendet wurde, welche für diese
beiden bestimmten Warteschlangen-Paare hergestellt worden ist. Als Nächstes zeigt
der Block 936, dass die letzte Instanznummer in eine neue
Instanznummer geändert
wird. Diese neue Instanznummer wird dann als die aktuelle Instanznummer
verwendet. Obgleich die Instanznummer üblicherweise geändert wird,
indem sie erhöht
wird, kann die Instanznummer auch durch eine beliebige andere Vorgehensweise
geändert
werden, beispielsweise, indem sie verringert wird. Der Prozess schaltet
dann zum Block 910.
-
10 veranschaulicht
ein Übersichts-Flussdiagramm,
das einen Endknoten zeigt, der gemäß der vorliegenden Erfindung
feststellt, ob ein empfangenes Paket während der aktuellen logischen
Verbindung übertragen
worden ist. Der Prozess beginnt, wie im Block 1000 gezeigt
ist, und schaltet anschließend
zum Block 1002, der den Empfang eines Pakets durch einen
Endknoten zeigt, das eine Instanznummer enthält. Als Nächstes zeigt der Block 1004,
dass der Endknoten die aktuelle Instanznummer feststellt. Danach
zeigt der Block 1006, dass der Endknoten die aktuelle Instanznummer
mit der in dem empfangenen Paket enthaltenen Instanznummer vergleicht.
Der Prozess schaltet dann zum Block 1008, in dem festgestellt
wird, ob das Paket die aktuelle Instanznummer enthält. Wenn
festgestellt wird, dass das Paket die aktuelle Instanznummer enthält, schaltet
der Prozess zum Block 1010, der zeigt, dass der Endknoten
das Paket normal verarbeitet. Der Prozess schaltet daraufhin zum
Block 1002. Nochmals Bezug nehmend auf den Block 1008 schaltet der
Prozess, falls festgestellt wird, dass das Paket nicht die aktuelle
Instanznummer enthält,
zum Block 1012, der zeigt, dass der Endknoten das Paket
verwirft. Der Prozess schaltet dann wieder zum Block 1002.
-
Die
vorliegende Erfindung kann jederzeit verwendet werden, wenn eine
logische Verbindung getrennt und dann wiederhergestellt wird. Logische Verbindungen
werden aus vielerlei Gründen
getrennt und wiederhergestellt. Ein häufiger Grund sind Fehlerzustände, die
an den Endknoten festgestellt werden, die aber nicht einfach durch
erneute Übertragung
der Pakete behoben werden können.
Ungünstig
zusammengesetzte Pakete und Folgesteuerungsfehler beispielsweise
können
ein Warteschlangen-Paar in diesen Fehlerzustand versetzen.
-
Ein
weiterer Grund für
die Trennung und die Wiederherstellung einer Verbindung sind Änderungen
an der maximalen Übertragungseinheit
(maximum transmission unit, MTU) auf einem Pfad in dem Schaltnetzwerk.
Die Größe der maximalen
Paketnutzlast, die auf einer Verbindung übertragen werden kann, wird
als maximale Übertragungseinheit
bezeichnet. Betrachten wir zum Beispiel eine einzelne Verbindung
innerhalb des Schaltnetzwerkes. Wenn die Paket-Pufferspeicher auf
der einen Seite der Verbindung Paketnutzlasten bis zu 512 Bytes
handhaben, und die Paket-Pufferspeicher auf der anderen Seite der
Verbindung Paketnutzlasten bis zu 1025 Bytes handhaben, kann die
größte Paketnutzlast,
die über
diese Verbindung übertragen
werden kann, maximal 512 Bytes, die kleinere Paketnutzlast der beiden
Seiten der Verbindung, betragen. Der Einfachheit halber wird die
Größe der Paketnutzlast
auch bei der Beschreibung der Größe des Pakets
verwendet.
-
Wenn
der Pfad von einem Knoten zu einem anderen Knoten Vermittlungsstellen
und/oder Router enthält,
gibt es mehr als eine Verbindung in dem Pfad. In diesem Fall wird
die MTU nun als Pfad-MTU bezeichnet, und sie ist die kleinste MTU
von allen Verbindungen in dem Pfad. Wenn eine der Verbindungen in
dem Pfad zum Beispiel eine MTU von 512 Bytes hat und alle anderen
Verbindungen eine MTU von 4096 Bytes haben, können nur Pakete mit einer Größe von maximal
512 Bytes auf dem Pfad übertragen
werden.
-
Wenn
die Pfad-MTU als Folge eines Wechsels von einem ausgefallenen zu
einem noch einsatzbereiten Knoten (Failover) zunimmt, muss die Verbindung
entweder freigemacht (es werden keine neuen Anforderungspakete erzeugt
und alle ausstehenden Pakete wurden bestätigt) oder getrennt und wiederhergestellt werden,
um die neue, größere Pfad-MTU vorteilhaft
nutzen zu können.
Diese Situation lässt sich
mit der vorliegenden Erfindung wirksam handhaben, da die Warteperiode
auf veraltete Pakete nicht mehr nötig ist. Die logische Verbindung
kann getrennt und sofort wiederhergestellt werden, ohne dass Wartezustände durchlaufen
werden müssen.
-
Es
sei ausdrücklich
angemerkt, dass die vorliegende Erfindung zwar im Zusammenhang mit
einem uneingeschränkt
funktionsfähigen
Datenverarbeitungssystem beschrieben wurde, der Fachmann jedoch
versteht, dass die Prozesse der vorliegenden Erfindung in Form von
einem rechnerlesbaren Datenträger
mit Befehlen und in einer Vielzahl von anderen Formen vertrieben
werden können
und dass die vorliegende Erfindung ungeachtet der jeweiligen Art
des signaltragenden Mediums, das für den Vertrieb verwendet wird,
gleichermaßen
Anwendung findet. Beispiele für
rechnerlesbare Datenträger
sind unter anderem beschreibbare Datenträger wie zum Beispiel eine Diskette,
ein Festplattenlaufwerk, ein RAM, CD-ROMS, DVD-ROMs sowie Übertragungsmedien wie zum Beispiel
digitale und analoge Kommunikationsverbindungen, drahtgebundene
oder drahtlose Kommunikationsverbindungen, die Übertragungsformen wie zum Beispiel
Hochfrequenz- und Lichtwellenübertragungen
nutzen. Der rechnerlesbare Datenträger kann die Form von codierten
Formaten annehmen, die zur tatsächlichen
Verwendung in einem bestimmten Datenverarbeitungssystem decodiert
werden.
-
Die
Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung
und Erläuterung,
und sie erhebt weder Anspruch auf Vollständigkeit noch ist sie als Einschränkung auf
die Erfindung in der hier offen gelegten Form zu verstehen. Für den Fachmann
ist es offensichtlich, dass viele Änderungen vorgenommen werden
können
und abweichende Gestaltungsformen möglich sind. Die Ausführungsform
wurde gewählt
und beschrieben, um die Grundgedanken der Erfindung und ihre Anwendung
in der Praxis bestmöglich
zu erklären,
um dem Fachmann das Verständnis
der Erfindung zu ermöglichen,
die auch in verschiedenen Ausführungsformen
mit verschiedenen, für
den jeweils vorgesehenen Verwendungszweck geeigneten Änderungen realisiert
werden kann.