-
HINTERGRUND
-
Erfindungsgebiet
-
Der
hier offenbarte Erfindungsgegenstand bezieht sich auf Kommunikationssysteme.
Insbesondere bezieht sich der Erfindungsgegenstand auf Kommunikationssysteme
zur Übertragung
von Daten zwischen Knoten.
-
Information
-
Beim
Einsatz von Kommunikationsinfrastrukturen kommt es darauf an, die
Anforderungen eines oder mehrerer Teilnehmer oder Benutzer zur Bereitstellung
von Kommunikationsdiensten zu erfüllen. Solche Kommunikationsinfrastrukturen
dienen typisch dem Zweck, den Teilnehmern mehrere Dienstebenen innerhalb
einer bestimmten Preiskategorie bereitzustellen. Solche Preiskategorien
werden typisch durch die Verfügbarkeit
preisgünstiger
Komponenten und Subsysteme zum Aufbau der Kommunikationsinfrastruktur
bestimmt.
-
Man
könnte
eine vorhandene Kommunikationsinfrastruktur modifizieren, um zusätzliche
Anforderungen zu erfüllen.
Zum Beispiel könnten
Kommunikationsinfrastrukturen auf die Aufnahme zusätzlicher
Teilnehmer oder Benutzer eingerichtet (d.h. erweitert) werden. Ferner
könnten
Kommunikationsinfrastrukturen durch Aufnahme neu verfügbarer Komponenten
oder Subsysteme hochgerüstet
werden, um anspruchsvollere Dienstanforderungen der Teilnehmer oder
Benutzer zu erfüllen.
Wenn eine vorhandene Kommunikationsinfrastruktur in Anpassung an
diese zusätzlichen
Anforderungen modifiziert wird, ist es wünschenswert, vorhandene Kommunikationsinfrastrukturen
kosteneffektiv hochzurüsten oder
zu erweitern, während
auf alten Systemen aufgebaut wird.
-
Der
Text ATM: Signaling in Broadband Networks, Prentice Hall Series
in Advanced Communications Technologies, Upper Saddle River, NJ:
Prentice Hall, US (1998), 2, 159 179, sowie die Patente
US 614971 ,
US 5933425 und
EP 10911530 offenbaren verschiedene
Knotenkonfigurationen und beschreiben Routingsysteme zur Weiterleitung
von Daten über
die Knoten.
US 5008882 offenbart
ein n-Kubus-Netzwerk und offenbart die Übertragung von Daten über einen
n-Kubus als „Best-First" Suche für einen
Pfad durch die Knoten. Es wird jedoch nicht offenbart, dass ein
Knoten Statusinformation von einem nicht benachbarten Knoten empfängt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Ein
Ziel der Erfindung besteht darin, ein verbessertes Kommunikationssystem
und Verfahren zur Betreibung desselben bereitzustellen.
-
Gemäß eines
ersten Aspekts der vorliegenden Erfindung ist ein Verfahren nach
Anspruch 1 vorgesehen.
-
Gemäß eines
zweiten Aspekts der vorliegenden Erfindung ist ein Kommunikationsknoten
nach Anspruch 8 vorgesehen.
-
Gemäß eines
weiteren Aspekts der vorliegenden Erfindung ist ein System nach
Anspruch 9 vorgesehen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Nicht-einschränkende und
nicht-erschöpfende
Ausführungsformen
der vorliegenden Erfindung sind unter Bezugnahme auf die folgenden
Figuren beschrieben, wobei, soweit nicht anders angegeben, gleiche
Bezugszeichen gleiche Teile in allen Figuren bezeichnen.
-
1 zeigt
eine schematische Darstellung eines Kommunikationssystems, welches
eine Mehrzahl von Kommunikationsknoten umfasst, die über Kommunikationskanäle aneinander
gekoppelt sind.
-
2 zeigt
eine schematische Darstellung eines Kommunikationsknotens entsprechend
der Ausführungsform
in 1, in dem Kommunikationskanäle einen Datenkanal und einen
Steuerkanal umfassen.
-
3 zeigt
eine schematische Darstellung eines Systems zur Verwaltung des Kommunikationsverkehrs
gemäß einer
Ausführungsform
des Kommunikationsknotens in 2.
-
4 zeigt
eine schematische Darstellung eines Packet Director gemäß einer
Ausführungsform des
Systems in 3.
-
5 zeigt
eine schematische Darstellung eines Nachrichtenübertragungs-Signalisiersystems gemäß einer
Ausführungsform
des Systems in 3.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Verweise
in dieser Spezifikation auf „eine einzelne
Ausführungsform" oder „eine Ausführungsform" bedeuten, dass ein
besonderes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung
mit der Ausführungsform
beschrieben wurde, in mindestens einer Ausführungsform der vorliegenden
Erfindung enthalten ist. Somit beziehen sich Instanzen des Ausdrucks „in einer
einzelnen Ausführungsform" oder „einer
Ausführungsform" an verschiedenen
Stellen in dieser Spezifikation nicht unbedingt alle auf die gleiche
Ausführungsform.
Ferner könnten
die besonderen Merkmale, Strukturen oder Eigenschaften in einer
oder mehreren Ausführungsformen
kombiniert sein.
-
Der
hier benutzte Ausdruck „Logik" bezieht sich auf
die Struktur zur Durchführung
einer oder mehrerer logischen Operationen. Zum Beispiel könnte Logik
Schaltungen umfassen, die ein oder mehrere Ausgangssignale basierend
auf einem oder mehreren Eingangssignalen bereitstellen.
-
Solche
Schaltungen könnten
eine endliche Zustandsmaschine sein, die einen digitalen Eingang empfängt und
einen digitalen Ausgang bereitstellt, oder Schaltungen sein, die
ein oder mehrere analoge Ausgangssignale in Reaktion auf ein oder
mehrere Eingangssignale bereitstellen. Ferner könnte Logik Verarbeitungsschaltungen
in Kombination mit in einem Speicher gespeicherten maschinenausführbaren
Anweisungen beinhalten. Dies sind jedoch lediglich Beispiele von
Strukturen, die Logik bereitstellen könnten, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „Datenbus" bezieht sich auf
Schaltungen zur Übertragung
von Daten zwischen Geräten.
Zum Beispiel könnte
ein Datenbus Daten zwischen einem Hostverarbeitungssystem und einem
peripheren Gerät übertragen.
Dies ist jedoch lediglich ein Beispiel, und Ausführungsformen der vorliegenden
Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „Kommunikationsknoten" bezieht sich auf
eine Struktur oder ein System zum Empfang von Daten von einer Quelle, oder
zur Übertragung
von Daten an einen Zielort in einem Kommunikationsnetzwerk. In einem
Beispiel könnte
ein Kommunikationsknoten in einer Datenübertragung (zum Beispiel einem
Datenpaket) empfangene Daten von einer Quelle an ein Ziel in einem Kommunikationsnetzwerk
entsprechend der Zielinformation in den empfangenen Daten weiterleiten. Ein
erster Kommunikationsknoten in einer Backbone-Kommunikationsinfrastruktur könnte Daten
von einem zweiten Kommunikationsknoten empfangen bzw. an diesen
weiterleiten. Oder der erste Kommunikationsknoten könnte Daten
von Randgeräten
oder Orten in einem Randnetz empfangen bzw. an diese weiterleiten.
Dies sind jedoch lediglich Beispiele eines Kommunikationsknotens,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „Kommunikationskanal" bezieht sich auf
eine Struktur zur Übertragung
von Daten zwischen Kommunikationsknoten in einem Kommunikations-netzwerk.
Ein „eingehender Kommunikationskanal
(Ingress-Kanal)" bezieht
sich auf einen Kommunikationskanal, der Daten in Richtung eines
Kommunikationsknotens von einer Datenquelle überträgt, ein „ausgehender Kommunikations-kanal
(Egress-Kanal)" bezieht sich auf
einen Kommunikationskanal, der Daten von einem Kommunikations-knoten
weg in Richtung eines Ziels überträgt. Dies
sind jedoch lediglich Beispiele für Ingress- und Egress- Kommunikationskanäle, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „Datenkommunikations-kanal" bezieht sich auf
eine Struktur zur Übertragung
von Daten zur Unterstützung
einer Dienstanforderung zwischen oder unter Kommunikationsknoten
in einem Kommunikationsnetzwerk. Ein derartiger Datenkommunikationskanal
könnte
Daten zwischen Kommunikationsknoten entsprechend einem Daten-kommunikationsprotokoll übertragen. Zum
Beispiel könnte
ein Datenkommunikationskanal Daten zu oder von einer mit einem ersten
Kommunikationsknoten verknüpften
Anwendung zu einem zweiten Kommunikationsknoten übertragen. Dies ist jedoch
lediglich ein Beispiel eines Datenkommunikationskanals, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „Steuerkanal" bezieht sich auf
eine Struktur zur Übertragung
von „Statusdaten" an einen Kommunikationsknoten,
betreffend eine Fähigkeit
eines oder mehrerer Kommunikationsknoten, Daten in einem Datenkommunikationskanal
zu übertragen
oder eine Dienstanforderung zu unterstützen. Diese Statusdaten könnten Befehle und
Steuerinformation umfassen. Zum Beispiel könnte die Statusdaten eine Fähigkeit
eines oder mehrerer Kommunikationsknoten anzeigen, Daten von einer
Quelle an ein Ziel weiterzuleiten. Ferner könnte diese Statusdaten eine
Fähigkeit
eines oder mehrerer Kommunikationsknoten anzeigen, eine oder mehrere
Dienstanforderungen zu unterstützen.
Dies sind jedoch lediglich Beispiele eines Steuerkanals und Beispiele
von Statusdaten, und Ausführungsformen der
vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „benachbarter Kommunikationsknoten" bezieht sich auf
einen Kommunikationsknoten, der direkt über einen Kommunikationskanal
ohne einen dazwischenliegenden Kommunikationsknoten an einen ersten
Kommunikationsknoten gekoppelt ist. Zum Beispiel könnte ein
Kommunikationsknoten eine Datennachricht über einen Kommunikationskanal
an einen benachbarten Kommunikationsknoten übertragen, ohne die Datennachricht über einen
dazwischenliegenden Kommunikationsknoten weiterzuleiten. Dies sind
jedoch lediglich Beispiele eines benachbarten Kommunikationsknotens,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
hier benutzte Ausdruck „Kommunikationspfad-Dimension" bezieht sich auf
eine Definition einer Beziehung zwischen oder unter Kommunikationsknoten
in einem Kommunikationsnetzwerk. Zum Beispiel könnten Kommunikationskanäle Kommunikationsknoten
in einem Kommunikationsnetzwerk derart an einander koppeln, dass
die Kommunikationsknoten in einem kartesischen Koordinatensystem mit
drei oder mehr Dimensionen modelliert/identifiziert werden könnten. Die
relative Position von zwei Kommunikationsknoten könnte dann
durch eine lineare Abbildung entlang eines oder mehrerer Kommunikationskanäle in dem
Koordinatensystem definiert werden. Dementsprechend könnte ein
Kommunikationsknoten Daten an einen benachbarten Kommunikationsknoten über einen
Kommunikationskanal in einer Kommunikationspfad-Dimension übertragen. Außerdem könnten Daten
von einem Quellenkommunikationsknoten an einen Ziel-Kommunikationsknoten übertragen
werden, wobei viele Kommunikationskanäle in verschiedenen Kommunikationspfad-Dimensionen überquert
werden. Dies ist jedoch lediglich ein Beispiel einer Kommunikationspfad-Dimension,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Kurz
gesagt bezieht sich eine Ausführungsform
der Erfindung auf ein System und Verfahren zur Übertragung von Daten zwischen
Kommunikationsknoten. Ein erster Kommunikationsknoten könnte an eine
Mehrzahl von benachbarten Kommunikationsknoten gekoppelt sein. Der
erste Kommunikationsknoten könnte
eine Datenübertragung
empfangen, die einen mit einem zweiten Kommunikationsknoten verbundenen
Zielort umfasst. Der erste Kommunikationsknoten könnte Statusdaten
von einem oder mehreren benachbarten Kommunikationsknoten über einen
Steuerkanal empfangen, der zwischen dem ersten Kommunikationsknoten
und dem benachbarten Kommunikationsknoten gekoppelt ist, wobei die
Statusdaten Statusinformation für
mindestens den benachbarten Knoten umfassen. Ein an den ersten Kommunikationsknoten
benachbarter Kommunikationsknoten könnte, basierend auf den von den
benachbarten Kommunikationsknoten empfangenen Statusdaten, zur Weiterleitung
der empfangenen Daten an einen Zielort ausgewählt werden. Dies ist jedoch
lediglich ein Beispiel einer Ausführungsform, und andere Ausführungsformen
sind in dieser Hinsicht nicht eingeschränkt.
-
In 1 ist
schematisch ein Kommunikationssystem dargestellt, welches eine Mehrzahl
von Kommunikationsknoten 2 umfasst, die über Kommunikationskanäle 4 aneinander
gekoppelt sind. Jeder Kommunikationsknoten 2 könnte abgesehen
davon, dass er an einen oder mehrere benachbarte Kommunikationsknoten 2 gekoppelt
ist, an ein oder mehrere andere Rand-Kommunikationsnetze wie zum
Beispiel MANs (Stadtnetze), WANs (Weitbereichsnetze), LANs (Lokale
Netze), Server-Farmen oder Globale Server (nicht dargestellt) oder
dergleichen gekoppelt sein. Gemäß einer
Ausführungsform
könnten Daten
von einem beliebigen Kommunikationsknoten 2 über einen
direkt an das Randnetz gekoppelten Kommunikationsknoten an ein Ziel-
oder Randnetz übertragen
werden. Jeder Kommunikationsknoten 2 könnte einen Fabric Router und/oder
Einrichtungen zum Rand-Routen an andere Systeme umfassen. Dies sind
jedoch lediglich Beispiele dafür,
wie untereinander gekoppelte Kommunikationsknoten an Randgeräte oder
Randnetze gekoppelt sein können, und
Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Jeder
Kommunikationsknoten 2 könnte Daten an jeden anderen
Kommunikationsknoten 2 über einen
oder mehrere Kommunikationskanäle 4 übertragen,
die benachbarte Kommunikationsknoten 2 aneinander koppeln.
Jeder Kommunikationskanal 4 koppelt benachbarte Kommunikationsknoten 2 aneinander,
um die Übertragung
von Daten zwischen den benachbarten Kommunikationsknoten in einer
Kommunikationspfad-Dimension zu ermöglichen. In der dargestellten
Ausführungsform
könnte
Kommunikationskanal 4 Daten zwischen benachbarten Kommunikationsknoten 2 in
sechs Richtungen oder in zwei Richtungen in einer x-, y- oder z-Kommunikationspfad-Dimension übertragen,
wie in 1 dargestellt. Bei Modellierung jedes Kommunikationsknotens 2 als
Kubus mit sechs Seiten könnte
gemäß einer
Ausführungsform
jede Seite Eingangs- und Ausgangskommunikation bereitstellen, woraus
sich sechs Kommunikationsrichtungen ergeben. Oder ein derartiges
kubisches Modell der Kommunikationsknoten 2 könnte zusätzliche
Kommunikationskanäle
bereitstellen, die in zusätzlichen
Kommunikationspfad-Dimensionen, wie zum Beispiel Kommunikationspfad-Dimensionen
in xy-, yz- und xz-Ebene (zum Beispiel an den „Kanten" oder „Ecken" von Kubi, die Kommunikationsknoten 2 darstellen)
an benachbarte Kommunikationsknoten gekoppelt sind. Dies sind jedoch
lediglich Beispiele dafür,
wie benachbarte Kommunikationsknoten durch Kommunikationskanäle zur Übertragung
von Daten in Kommunikationspfad-Dimensionen aneinander gekoppelt
sein könnten,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Das
vorerwähnte
kubische Modell eines Kommunikationsknotens könnte als Polyheder-Modell mit
mehr als sechs Seiten verallgemeinert werden, wobei jede Seite eines
Kommunikationsknotens an eine Seite eines benachbarten Kommunikationsknotens
gekoppelt sein könnte,
um einen Eingangs- und Ausgangskanal bereitzustellen. Außerdem könnte jede „Kante" oder jede „Ecke" eines solchen Polyheders
an eine Kante oder Ecke eines benachbarten Kommunikationsknotens
gekoppelt sein. In einer Ausführungsform,
in der ein Netzwerk auf einem Polyheder modellierte Kommunikationsknoten
in einem nationalen oder weltweiten Netzwerk umfasst, könnte jeder
Kommunikationsknoten einem bestimmten Abschnitt eines geografischen
Sendegebiets zugeordnet sein. Der Datenverkehr von jedem Abschnitt könnte dann
durch das nationale oder weltweite Netzwerk durch den zugeordneten
Kommunikationsknoten geroutet werden. Dies ist jedoch lediglich
ein Beispiel dafür,
wie Kommunikationsknoten in einem nationalen oder weltweiten Netzwerk
eingesetzt werden könnten,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
könnte
ein Kommunikationsknoten 2 Daten in Richtung jedes beliebigen
Ziel-Kommunikationsknotens 2 über einen benachbarten
Kommunikationsknoten 2 übertragen, in
dem er Daten auf einem Kommunikationskanal 4 in einer Kommunikationspfad-Dimension überträgt. Der benachbarte
Kommunikationsknoten 2 könnte dann die Daten in Richtung
des Ziel-Kommunikationsknotens 2 auf
einem weiteren Kommunikationskanal 4 entlang gleicher oder
entlang anderer Kommunikationspfad-Dimensionen weiterleiten. Der
weiterleitende Kommunikationsknoten 2 könnte einen aus einer Mehrzahl
von Kommunikationskanälen 4 zur
Weiterleitung der Daten an einen weiteren benachbarten Kommunikationsknoten
auswählen
und so weiter, bis die Daten den Ziel-Kommunikationsknoten 2 erreichen.
Dies ist jedoch lediglich ein Beispiel dafür, wie die Daten an einen Ziel-Kommunikationsknoten übertragen
werden könnten,
und Ausführungsformen der
vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
könnte
ein Kommunikationsknoten 2 Logik zur Auswahl eines Kommunikationskanals 4,
basierend auf der Verfügbarkeit
von dazwischenliegenden Kommunikationsknoten 2, Daten an
einen Ziel-Kommunikationsknoten
weiterzuleiten, oder basierend auf der Fähigkeit, eine mit den Daten
verknüpfte
Dienstanforderung zu unterstützen,
umfassen, um die Daten in Richtung des Ziels in einer oder in mehreren
Kommunikationspfad-Dimensionen
weiterzuleiten. Zum Beispiel könnte
ein Kommunikationsknoten 2 Statusinformation empfangen,
die anzeigt, dass ein benachbarter Kommunikationsknoten 2 außer Betrieb
steht oder nicht fähig
ist, die Daten in Richtung des Ziel-Kommunikationsknotens in einer
oder in mehreren Kommunikationspfad-Dimensionen weiterzuleiten,
oder nicht fähig
ist, eine oder mehrere mit den Daten verknüpften Dienstanforderungen zu
unterstützen.
Der weiterleitende Kommunikationsknoten könnte dann einen anderen benachbarten Kommunikationsknoten auswählen, um
die Daten weiterzuleiten. In anderen Ausführungsformen könnte ein
weiterleitender Kommunikationsknoten 2, abgesehen davon,
dass er Statusinformation über
die Verfügbarkeit
eines benachbarten Kommunikationsknotens zur Weiterleitung der Daten
aufweist, auch Statusinformation über die Verfügbarkeit
anderer nicht-benachbarter Kommunikationsknoten zur Weiterleitung
der Daten in Richtung des Ziel-Kommunikationsknotens oder über die
Erfüllung
einer mit den Daten verknüpfte
Dienstanforderung anzeigen. Aufgrund dieser Information kann ein weiterleitender
Kommunikationsknoten einen benachbarten Kommunikationsknoten und
einen Kommunikationskanal 4 auswählen, um die Nachricht in Richtung
des Ziel-Kommunikationsknotens 2 weiterzuleiten.
Eine derartige Auswahl könnte
beispielsweise auf einer kürzesten
erwarteten Zeit zur Weiterleitung der Daten an den Ziel-Kommunikationsknoten oder
auf einer Mindestanzahl von erwarteten weiterleitenden dazwischenliegenden
Kommunikationsknoten basieren. Dies sind jedoch lediglich Beispiele dafür, wie ein
weiterleitender Kommunikationsknoten einen benachbarten Kommunikationsknoten
zur Weiterleitung der Daten an ein Ziel aufgrund von Statusinformation
auswählen
könnte,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
In
der dargestellten Ausführungsform
weisen die Kommunikationsknoten 2 eine kubusförmige Anordnung
entlang drei Kommunikationspfad-Dimensionen x, y und z auf, und
jeder Kommunikationsknoten könnte
mit einer entsprechenden kartesischen Koordinate (x, y, z) verknüpft sein.
Ein derartiges Koordinatensystem könnte einen Ursprung bei (0,
0, 0)(zum Beispiel entsprechend einem „Ecken"-Kommunikationsknoten)
umfassen, wobei die Koordinaten einen Bereich von Werten (0 bis
Xmax, 0 bis Ymax, 0
bis Zmax) aufweisen. In der dargestellten
Ausführungsform
könnten
die Kommunikationsknoten 2 an entgegengesetzten Enden auf
einem gemeinsamen Koordinatenpaar (zum Beispiel ein erster Kommunikationsknoten
bei (0, y, z) und ein zweiter Kommunikationsknoten bei (Xmax, y, z), wobei y und z ein gemeinsamen
Koordinatenpaar bereitstellen) direkt durch einen Kommunikationskanal 4 aneinander
gekoppelt sein, derart dass die Kommunikationsknoten 2 an
entgegengesetzten Enden nebeneinander liegen. Dementsprechend könnten diese
Kommunikationsknoten an entgegengesetzten Enden Daten direkt an
den anderen übertragen,
unabhängig
davon, ob es einen dazwischenliegenden Kommunikationsknoten 2 gibt.
Dies ist jedoch lediglich ein Beispiel dafür, wie Kommunikationsknoten
an entgegengesetzten Enden eines Netzwerks direkt unabhängig von
einem dazwischenliegenden Kommunikationsknoten miteinander kommunizieren
können,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
In 2 ist
schematisch ein Kommunikationsknoten 102 entsprechend der
Ausführungsform von 1 dargestellt,
bei der jeder Kommunikationskanal 104 einen Datenkommunikationskanal 110 und einen
Steuerkanal 112 aufweist. Jeder der Kommunikationskanäle 104 ermöglicht die
Kommunikation mit einem benachbarten Kommunikationsknoten in zwei Richtungen
entlang einer von drei Kommunikationspfad-Dimensionen x, y oder
z. In der dargestellten Ausführungsform
umfasst jeder Datenkommunikationskanal 110 und jeder Steuerkanal 112 einen
Ingress-Kommunikationskanal zum Empfang von Daten von einem benachbarten
Kommunikationsknoten und einen Egress-Kommunikationskanal zur Übertragung
von Daten an einen benachbarten Kommunikationsknoten. Die Datenkommunikationskanäle 110 könnten Daten
zwischen benachbarten Kommunikationsknoten übertragen, die an einen Ziel-Kommunikationsknoten
weiterzuleiten sind. Die Steuerkanäle 112 könnten Statusinformation
zwischen Kommunikationsknoten übertragen,
um beispielsweise die Verfügbarkeit
eines oder mehrerer Kommunikationsknoten zur Weiterleitung von Daten
an einen Ziel-Kommunikationsknoten anzuzeigen. Aufgrund von Daten,
die auf einem oder mehreren der Statuskanäle 112 empfangen wurden,
könnte
der Kommunikationsknoten 102 einen Datenkommunikationskanal 110 zur
Weiterleitung von Daten an einen Ziel-Kommunikationsknoten über einen
benachbarten Kommunikationsknoten auswählen. Dies ist jedoch lediglich
ein Beispiel dafür,
wie ein Kommunikationsknoten mit einem benachbarten Kommunikationsknoten
kommunizieren könnte,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Die
Kommunikationskanäle 104 könnten jedes
beliebige aus mehreren Übertragungsmedien umfassen,
einschließlich
eines Kupfer- oder eines optischen Übertragungsmediums. Jeder Kommunikationskanal
könnte
ein einzelnes Medium oder mehrere Medien für die Übertragung von Daten in jeder der
beiden Richtungen entlang einer zugehörigen Kommunikationspfad-Dimension
umfassen. In einer Ausführungsform
könnten
zwei separate Übertragungsmedien
den Datenkommunikationskanal 110 und den Steuerkanal 112 bereitstellen.
In einer anderen Ausführungsform
könnte
ein Kommunikationskanal 104 einen Datenkommunikationskanal 110 und einen
Steuerkanal 112 in einem gemeinsamen Übertragungsmedium umfassen.
Zum Beispiel könnten der
Datenkommunikationskanal 110 und der Steuerkanal 112 in
einem gemeinsamen Übertragungsmedium
zeitgemultiplext sein. Oder der Datenkommunikationskanal 110 und
der Steuerkanal 112 könnten gemultiplext
sein, um das Übertragungsmedium gleichzeitig
zu besetzen. Dies ist jedoch lediglich ein Beispiel dafür, wie ein
Datenkanal und ein Steuerkanal implementiert werden könnten, und
Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Ferner
könnte
der Ingress-Kanal eines Datenkommunikationskanals 110 und
Steuerkanals 112 eines Kommunikationskanals 104 auf
einem ersten Übertragungsmedium
bereitgestellt werden, während
der Egress-Kanal des Datenkommunikationskanals 110 und
Steuerkanals 112 auf einem zweiten, vom ersten Übertragungsmedium
separaten Übertragungsmedium
bereitgestellt werden könnten.
Oder die Ingress- und Egress-Kanäle
eines Datenkommunikationskanals 110 oder Steuerkanals 112 könnten in
einem gemeinsamen Übertragungsmedium
gemultiplext sein. Dies sind jedoch lediglich Beispiele dafür, wie Ingress-
und Egress-Kanäle
entweder eines Datenkanals oder eines Steuerkanals implementiert
werden könnten,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
In 3 ist
schematisch ein System 200 zum Verwalten von Kommunikationsverkehr
in einem Kommunikationsknoten gemäß einer Ausführungsform
des Kommunikationsknotens in 2 dargestellt.
In der dargestellten Ausführungsform
stellt ein optisches Übertragungsmedium
sechs Kommunikationskanäle 204 zwischen
dem gegenwärtigen
Kommunikationsknoten und sechs benachbarten Kommunikationsknoten
(nicht dargestellt) bereit. Jeder Kommunikationskanal 204 könnte einen
Ingress- und einen
Egress-Kommunikationskanal für
jeweils einen Datenkanal und einen Steuerkanal in einer Kommunikationspfad-Dimension
bereitstellen. Dies ist jedoch lediglich ein Beispiel dafür, wie Kommunikationskanäle an einen
Kommunikationsknoten gekoppelt werden können, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
System 200 umfasst
ferner Rand-I/O-Kanäle 214 (I/O
= Eingang/Ausgang), die an ein oder mehrere Randnetze oder Geräte gekoppelt
sind (nicht dargestellt). Zwischen einem Rand-I/O-Kanal 214 und einem
benachbarten Kommunikationsknoten könnten Daten auf einem Datenkommunikationskanal
in einem der Kommunikationskanäle 204 übertragen werden.
In der dargestellten Ausführungsform
umfassen die Rand-I/O-Kanäle 214 ein
optisches Übertragungsmedium
zur Übertragung
von Daten zwischen dem Kommunikationsknoten und den Randnetzen oder
Randgeräten.
Dies ist jedoch lediglich ein Beispiel dafür, wie Randnetze oder Randgeräte mit einem
Kommunikationsknoten kommunizieren können, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Von
einem Randgerät
oder Randnetz könnten
Daten auf einem Rand-I/O-Kanal 214 in Form von Datenpaketen
ankommen, die an ein mit einem anderen Kommunikationsknoten verknüpftes Ziel
weiterzuleiten sind. Diese an einem Rand-I/O-Kanal 214 empfangenen
Daten könnten
verschlüsselt
werden, und eine zugehörige
Faserfunktion 222 könnte
Logik zur Entschlüsselung
der empfangenen Datenpakete beinhalten, wenn ein Entschlüsselungsschlüssel verfügbar ist.
Andernfalls würde
das Datenpaket an einen Fabric-Interface-Speicher 224 zur Weiterleitung auf
einem Egress-Datenkanal von Kommunikationskanal 204 weitergeleitet.
In der dargestellten Ausführungsform
können
Datenpakete über
Fabric-Interface 220 an einen Kommunikationsknoten weitergeleitet
werden, basierend auf einer IP-Adresse und/oder einer Adresse, die
einen Ziel-Kommunikationsknoten identifiziert. Die Faserfunktionen 222 könnten Logik
zur Verknüpfung
eines Zielnamens in einem Datenpaket mit einer IP-Zieladresse umfassen,
die an das Datenpaket anzuhängen
ist, welches von einem Randgerät
oder einem Randnetz empfangen wurde und Information zur Identifizierung
eines Ziel-Kommunikationsknotens enthält. Das Datenpaket könnte dann
an den Fabrik-Speicher 224 weitergeleitet werden, bevor
es an ein Ziel weitergeleitet wird.
-
Gemäß einer
Ausführungsform
könnte
Fabric Interface 220 einen benachbarten Kommunikationsknoten 204 auswählen, um
Daten auf einem Datenkommunikationskanal an ein Ziel zu übertragen. Zum
Beispiel könnte
Fabric Interface 220 einen Fabric Packet Director zur Auswahl
eines Datenkommunikationskanals aufweisen, um von einem der Rand-I/O-Kanäle 214 empfangene
Daten an einen benachbarten Kommunikationsknoten weiterzuleiten.
Ferner könnte
der Fabric Packet Director Logik beinhalten, um Daten, die auf einem
Ingress-Datenkommunikationskanal eines ersten Kommunikationskanals 204 empfangen
wurden, an einen benachbarten Kommunikationsknoten auf einem Egress-Datenkommunikationskanal
eines zweiten Kommunikationskanals 204 weiterzuleiten.
Dies ist jedoch lediglich ein Beispiel dafür, wie ein Kommunikationsknoten
einen benachbarten Kommunikationsknoten auswählen könnte, um Daten an ein Ziel
weiterzuleiten, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Der
Fabric Packet Director könnte
einen weiterleitenden Egress-Datenkommunikationskanal eines Datenkanals 204 aufgrund
von Statusinformation auswählen,
die von einem oder mehreren Ingress-Steuerkanälen 204 der Kommunikationskanäle 204 empfangen
wurde. Diese Statusinformation könnte
zum Beispiel die Verfügbarkeit
eines oder mehrerer Kommunikationsknoten zur Weiterleitung von Daten
an ein Ziel oder eine Fähigkeit
zur Erfüllung
einer mit dem Datenpaket verknüpften Dienstanforderung
beinhalten. Der Fabric Packet Director würde dann einen weiterleitenden
Egress-Datenkanal aufgrund der erwarteten Anzahl von „Sprüngen" oder dazwischenliegenden
Kommunikationsknoten auswählen,
um einen Ziel-Kommunikationsknoten
zu erreichen. Oder die Statusinformation könnte auch Information beinhalten,
die sich auf erwartete Verzögerungen
in der Weiterleitung von Daten von Egress-Kanälen bestimmter Kommunikationsknoten
bezieht. Dann würde
der Fabric Packet Director einen weiterleitenden Egress-Datenkommunikationskanal
aufgrund der erwarteten Verzögerung bis
zur Ankunft am Ziel-Kommunikationsknoten
auswählen.
Dies sind jedoch lediglich Beispiele dafür, wie ein Fabric Packet Director
einen aus einer Mehrzahl von Egress- Datenkommunikationskanälen auswählen würde, um
eine Nachricht weiterzuleiten, und Ausführungsformen der vorliegenden
Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
System 200 umfasst
einen lokalen Prozessor 218, um lokale Verarbeitungsaufgaben
durchzuführen,
wie zum Beispiel Handhabungsausnahmen, Verarbeitungsfunktionen des
ausführenden
Netzwerks (zum Beispiel Steuern des Routing der Datenpakete unter
den Faserfunktionen 222 entsprechend einer Netzwerk-Politik)
und Zugriff auf lokale Datenbanken. System 200 könnte auch über eine
Hublink 230 zu einem (nicht dargestellten) Datenbus an
einen externen Prozessor gekoppelt sein (nicht dargestellt). Der
externe Prozessor könnte über eine
Steuerschnittstelle Befehle an den lokalen Prozessor 218 geben,
eine oder mehrere Netzwerk-Politiken zu implementieren. Dies ist
jedoch lediglich ein Beispiel dafür, wie ein System einen lokalen
und einen externen Prozessor zur Steuerung der Art, wie Daten in
einem Netzwerk übertragen
werden, einsetzen kann, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
System 200 umfasst
ferner eine DME 226 (Datenverschiebungs-Engine), um Datenpakete in einem Speicher 216 zu
speichern, die an ein Ziel weiterzuleiten sind. Die DME 226 könnte ein
oder mehrere Datenpakete speichern, die zu kombinieren und an ein
Ziel zu übertragen
sind. Ferner könnte
die DME 226 die Weiterleitung eines oder mehrerer Datenpakete
verzögern,
um eine tiefere Datenpaketanalyse miteinander verwandter Datenpakete
zu ermöglichen.
Dies ist jedoch lediglich ein Beispiel dafür, wie ein Datenpaket temporär zur weiteren
Verarbeitung gespeichert werden kann, bevor es an einen Zielort
weitergeleitet wird. Dies ist jedoch lediglich ein Beispiel dafür, wie ein
Datenpaket zur zukünftigen Verarbeitung
temporär
gespeichert werden kann, bevor es an ein Ziel weitergeleitet wird,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Wenn
ein Datenpaket an einem Kommunikationsknoten ankommt, um an ein
Randziel wie an ein an einen Rand-I/O-Kanal 214 gekoppeltes
Randgerät
(zum Beispiel ein Randgerät
oder ein Ziel in einem Randnetz) weitergeleitet zu werden, könnte eine
zugehörige
Faserfunktion 222 versuchen, die Daten mit einem dem Randziel
entsprechenden Verschlüsselungsschlüssel zu
verschlüsseln.
Wenn die Faserfunktion 222 die empfangenen Daten nicht
mit einer Randzieladresse verknüpfen
kann, könnte
die Faserfunktion 222 die Daten an die DME 226 weiterleiten und
eine Nachricht an den lokalen Prozessor 218 senden, die
Bestimmung einer Zieladresse anzufordern. Der lokale Prozessor 218 könnte nun
aufgrund von anderen Informationen im Datenpaket, die sich auf ein
Ziel beziehen, den DDR-Speicher 216 auf eine Zieladresse
durchsuchen. Wenn eine solche Zieladresse gefunden wird, könnte der
lokale Prozessor 218 die Zieladresse an die empfangenen
Daten in der DME 226 anhängen und die Übertragung
des Datenpakets an ein mit der angehängten Adresse verknüpftes Ziel
einleiten.
-
In
der dargestellten Ausführungsform
könnte ein
Datenpaket an Ziele gemäß einer
Zieladresse im Datenpaket weitergeleitet werden. Dementsprechend
könnten
Faserfunktionen 214, DME 226 oder Fabric Interface 220 auf
Datenbanken zugreifen und diese verwalten, wobei die Zieladresse
mit anderer Information in einem Datenpaket verknüpft würde, die
sich auf ein Ziel bezieht. Wenn somit ein Datenpaket ohne Zieladresse
an ein Ziel weitergeleitet würde,
könnte
der Knoten andere Information in den Paketdaten mit einer Zieladresse
verknüpfen,
die Zieladresse an das Datenpaket anhängen und die Übertragung
des Datenpakets in Richtung des Ziels einleiten.
-
Nach
Verknüpfen
einer anzuhängenden
Zieladresse mit einem Datenpaket in der DME 226, wie oben
beschrieben, könnte
der lokale Prozessor 218 eine oder mehrere Nachrichten übertragen,
um Daten in der Faserfunktion 222 (zur Weiterleitung der Daten
an das Ziel mit der gefundenen Zieladresse) oder Daten im Fabric-Speicher 224 (zur
Weiterleitung der von benachbarten Kommunikationsknoten empfangenen
Daten an Randnetze oder an Geräte,
die an Rand-I/O-Kanäle 214 gekoppelt
sind), zu aktualisieren. Wenn der lokale Prozessor 218 eine
solche Zieladresse nicht im DDR 216 findet, könnte der
lokale Prozessor 218 den externen Prozessor über einen Datenbus
(wie einen PCI-Datenbus) oder eine Hublink 230 abfragen,
um die Zieladresse der empfangenen Daten abzufragen. Nach Empfang
dieser Zieladresse von dem externen Prozessor könnte der lokale Prozessor 218 den
DDR 216 mit der Zieladresse aktualisieren, dann die DME-Engine 226 initialisieren,
um die Daten an das Ziel entsprechend der Zieladresse weiterzuleiten,
und die Daten in der Faserfunktion 222 oder im Fabric-Speicher 224 zum
Weiterleiten von Datenpaketen, die in der Zukunft empfangen werden,
wie oben besprochen, aktualisieren. Wenn der externe Prozessor die
Zieladresse nicht finden kann, könnte
der lokale Prozessor 218 eine Nachricht an die Fabric Interface 220 senden
zum Senden einer Broadcast-Nachricht auf allen Kommunikationskanälen 204,
um eine mit den empfangenen Daten verknüpfte Zieladresse zu identifizieren.
Die Kommunikationsknoten, die die Broadcast-Nachricht empfangen,
könnten
dann ihre entsprechenden Randgeräte
oder Randnetze über
I/O-Kanäle
abfragen. Falls die Zieladresse gefunden wird, könnte sie an den lokalen Prozessor 218 zurückgeschickt
werden. Der lokale Prozessor 218 könnte daraufhin die Adresse
an die Datennachricht zum Weiterleiten an ein Ziel anhängen und
die Daten im DDR-Speicher 216, in der Faserfunktion 222 und im
Fabric-Speicher 224 zur zukünftigen Datenpaket-Verarbeitung, wie oben
besprochen, aktualisieren.
-
In 4 ist
schematisch ein Packet Director 300 gemäß einer Ausführungsform
von System 200 in 3 dargestellt.
Jeder der Mehrzahl von Datenkommunikationskanälen 310 ist an einen
Puffer 312 gekoppelt. Jeder Puffer 312 könnte eine
oder mehrere Sendewarteschlangen für Datenpakete verwalten, die
an einen benachbarten Kommunikationsknoten auf einem Egress-Kanal
eines Datenkommunikationskanals 310 weiterzuleiten sind,
der an einen benachbarten Kommunikationsknoten gekoppelt ist. Jeder
Puffer 312 könnte
ferner eine oder mehrere Empfangswarteschlangen für Datennachrichten
verwalten, die an eine Sendewarteschlange eines anderen Datenkommunikationskanals 310 oder
an ein Randgerät
oder Randnetz über
einen I/O-Kanal weiterzuleiten sind.
-
Der
Packet Director 300 umfasst einen Prozessor 314 für jeden
Datenkommunikationskanal 310. In der dargestellten Ausführungsform
ist jeder Prozessor 314 mit einem Ingress-Kanal eines Datenkanals 310 verknüpft und
umfasst Logik zur Weiterleitung der Datenpakete von dem Ingress-Kanal
an einen Egress-Kanal eines anderen Datenkanals 310. Zum
Beispiel könnte
ein Prozessor 314 eine Kopfzeile eines Datenpakets in einer
Empfangswarteschlange eines Puffers 312 prüfen, um
zu bestimmen, wie das empfangene Datenpaket weiterzuleiten ist.
Nach Auswerten der Daten in der Kopfzeile könnte der Prozessor 314 einen
Egress-Kanal eines Datenkommunikationskanals 310 aufgrund
von Regeln oder Datenpaket-Weiterleitungskriterien auswählen. Der
Prozessor 314 könnte
dann Abschnitte der Kopfzeile und Nutzlast des empfangenen Datenpakets
an einen weiterleitenden Prozessor 314 weiterleiten, der
mit dem ausgewählten
Egress-Datenkanal
verknüpft
ist und zur Übertragung
an einen benachbarten Kommunikationsknoten über den ausgewählten Datenkommunikationskanal 310 in
eine Sendewarteschlange des zugehörigen Puffers 312 gesetzt
wurde.
-
Gemäß einer
Ausführungsform
könnte
eine Sendewarteschlange eines erstes Datenkommunikationskanals 310 temporär unfähig sein,
ein Datenpaket zu akzeptieren, das von einem Ingress-Kanal eines zweiten
Datenkommunikationskanals 310 empfangen wurde. Ein mit
dem zweiten Datenkommunikationskanal 310 verknüpfter Prozessor 314 könnte dann
das empfangene Datenpaket in einem Abschnitt von Fabric Speicher 316 speichern,
bis der erste Datenkommunikationskanal 310 fähig ist,
das empfangene Datenpaket in die Sendewarteschlange zu setzen. In
der Zwischenzeit könnte
der mit dem zweiten Datenkommunikationskanal 310 verknüpfte Prozessor 314 das
Weiterleiten von Datenpaketen an andere Datenkanäle 310 fortsetzen.
Ein mit dem ersten Datenkommunikationskanal 310 verknüpfter Prozessor 314 könnte dann
den mit dem zweiten Datenkommunikationskanal 310 verknüpften Prozessor 314 benachrichtigen,
wann das gespeicherte Datenpaket aus dem Fabric Speicher 316 abgerufen
und in die Sendewarteschlange des ersten Datenkanals gesetzt werden
kann.
-
Gemäß einer
Ausführungsform
könnten
die Prozessoren 314 Logik zur Validierung von Paketen umfassen,
die auf einem Ingress-Kanal (eines Datenkommunikationskanals 310)
von einem in dem Paket enthaltenen zyklischen Redundanzcode (CRC)
empfangen wurden. Wenn der CRC in dem Datenpaket nicht validiert
wird, könnte
der Packet Director eine Nachricht auf einem Egress-Kanal an den
benachbarten Kommunikationsknoten, der das Paket gesendet hatte,
senden, um das Datenpaket nochmals zu senden. Wenn ein Paket validiert
wird, könnte
der Packet Director eine Bestätigung
auf einem Egress-Kanal an den benachbarten Kommunikationsknoten
senden, so dass der benachbarte Kommunikationsknoten das Datenpaket
aus dem Speicher löschen
kann. Dies ist jedoch lediglich ein Beispiel dafür, wie ein Kommunikationsknoten
einen CRC in einem empfangenen Datenpaket validieren kann, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
In 5 ist
schematisch ein Nachrichtenübertragungs-Signalisierungssystem 400 gemäß einer Ausführungsform
von System 200 in 3 dargestellt.
Jeder der Mehrzahl von Steuerkanälen 410 könnte einen
Ingress-Kanal zum Empfangen von Statusdaten von benachbarten Kommunikationsknoten
und einen Egress-Kanal zum Senden von Statusdaten an benachbarte
Kommunikationsknoten umfassen. In der dargestellten Ausführungsform
könnten
Prozessoren 414 Prozess-Statusdaten sammeln, die von benachbarten
Kommunikationsknoten auf Ingress-Kanälen der Steuerkanäle 410 empfangen wurden.
Außerdem
könnten
die Prozessoren 414 die Funktion der Prozessoren 314 im
Fabric Packet Director 300 durchführen, der oben unter Bezugnahme auf 4 beschrieben
wurde. Auf der Basis der von den Steuerkanälen 410 empfangenen
Statusdaten könnten
die Prozessoren 414 einen Egress-Datenkanal (zum Beispiel
einen Egress-Kanal eines in 4 veranschaulichten
Datenkanals 310) auswählen,
um ein empfangenes Datenpaket an einen benachbarten Kommunikationsknoten
in Richtung eines Ziels weiterzuleiten.
-
Ein
Fabric Prozessor 416 könnte
Regeln zum Weiterleiten von Datenpaketen an Egress-Datenkommunikationskanäle definieren,
die auf einer Netzwerkpolitik basieren, die von den Prozessoren 414 zu
implementieren ist, wenn Kopfzeilen von Datenpaketen, die auf einem
Ingress-Datenkommunikationskanal
empfangen wurden, verarbeitet werden. Zum Beispiel könnte der
Fabric Prozessor 416 Regeln zur Unterstützung von Diensten definieren
(zum Beispiel VoIP, virtuelle private Netzwerke, e-commerce Dienste).
Eine solche Netzwerkpolitik könnte
von anderen externen Prozessen wie zum Beispiel einem externen Prozessor
eingerichtet werden (zum Beispiel dem an die Hublink 230 angeschlossenen
externen Prozessor, wie oben mit Bezug auf 3 beschrieben).
Die Regeln könnten
dann an die Prozessoren 414 in einem erweiterbaren Format übertragen werden,
welches für
die Weiterleitung von Datenpaketen an benachbarte Kommunikationsknoten
auf Egress-Datenkommunikationskanälen zu benutzen ist.
-
Gemäß einer
Ausführungsform
könnten
die Prozessoren 414 Datenpakete, wie oben mit Bezug auf 4 besprochen,
weiterleiten (zum Beispiel Weiterleiten an einen benachbarten Kommunikationsknoten über einen
Egress-Kanal eines Datenkommunikationskanals 310), die
aufgrund von Statusinformation von benachbarten Kommunikationsknoten
empfangen wurden und die den von Fabric Prozessor 416 bereitgestellten
erweiterbaren Regeln unterliegen. Zum Beispiel könnte eine erweiterbare Regel
diktieren, dass Datenpakete an einen Zielkommunikationsknoten weitergeleitet
werden, um die erwartete Verzögerung
zu minimieren. Dies könnte
die Auswahl eines weiterleitenden benachbarten Kommunikationsknotens
nach sich ziehen, was die erwartete Anzahl von „Sprüngen" vom weiterleitenden Kommunikationsknoten
zum Zielkommunikationsknoten minimiert. Dies ist jedoch lediglich
ein Beispiel einer erweiterbaren Regel um zu definieren, wie Datenpakete
aufgrund von Statusdaten an einen benachbarten Kommunikationsknoten
weitergeleitet werden könnten,
und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Gemäß einer
Ausführungsform
könnten
die Prozessoren 314 und 316 eine erweiterbare
Sprache zur Unterstützung
von Dienstklassen und Dienstqualität definieren, die mit Datenpaketen
verknüpft
sind. Datenpakete könnten
ein oder mehrere Wörter
beinhalten, die sich auf Routing, Dienste und Befehle beziehen.
Die Prozessoren 314 und 316 könnten die Wörter interpretieren, um eine
Netzwerkpolitik zur Bereitstellung von Video, Sprache oder anderen Diensttypen zu
implementieren. Eine solche erweiterbare Sprache könnte universell
an allen Kommunikationsknoten in einem Netzwerk gemäß der Darstellung
in 1 implementiert werden.
-
In
einer Ausführungsform,
in der die Kommunikationsknoten über
Kommunikationskanäle
in drei Kommunikationspfad-Dimensionen
x, y und z aneinander zu koppeln sind, wie oben mit Bezug auf 1 und 2 veranschaulicht,
könnte
zum Beispiel die Mindestanzahl von Sprüngen unter Einsatz von dreidimensionaler
Matrix-Arithmetik bestimmt werden. Ein Routing-Abstand könnte durch
Hinzufügen
der Differenzen in den x-, y- und z-Kommunikationspfad-Dimensionen
bestimmt werden, die den weiterleitenden Kommunikationsknoten und
den Ziel-Kommunikationsknoten von einander trennen (zum Beispiel
die Anzahl der dazwischenliegenden Kommunikationsknoten oder Sprünge in jeder
der Kommunikationspfad-Dimensionen). In einer Ausführungsform,
in der Kommunikationsknoten an entgegengesetzten Enden auf einem
gemeinsamen Koordinatenpaar direkt über einen Kommunikationskanal
unabhängig
von einem dazwischenliegenden Kommunikationsknoten gekoppelt sind,
könnten
jedoch ein oder mehrere zusätzliche
Routing-Abstände aus
einer Route, die sich in Richtung vom weiterleitenden Kommunikationsknoten
weg und vom Zielkommunikationsknoten weg erstreckt (zum Beispiel
einem Knoten am „Ende" des Netzwerks),
bestimmt werden, wobei die Route einen Kommunikationskanal beinhalten
könnte,
der Kommunikationsknoten an entgegengesetzten Enden des Netzwerks
miteinander koppelt. Eine am weiterleitenden Kommunikationsknoten
ausgewählte
Route könnte
dann die kleinste Anzahl von erwarteten Sprüngen beinhalten. Dies ist jedoch
lediglich ein Beispiel dafür,
wie ein weiterleitender Kommunikationsknoten eine Route zum Weiterleiten
von Daten an einen Ziel-Kommunikationsknoten auswählen könnte, und
Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Ferner
könnte
ein Datenpaket von einem weiterleitenden Kommunikationsknoten auf
einem von mehreren Pfaden an den Zielkommunikationsknoten gesendet
werden. Es ist jedoch möglich,
dass ein oder mehrere Zwischenkommunikationsknoten außer Betrieb
stehen oder zur Weiterleitung der Datenpakete auf einem bestimmten
dieser Pfade nicht verfügbar
sind. Wenn Information, die die Unfähigkeit eines Kommunikationsknotens
zur Weiterleitung des Datenpakets auf einem bestimmten Datenpfad
anzeigt, in den Statusdaten reflektiert ist, die am weiterleitenden
Kommunikationsknoten empfangen wurden, könnte der Prozessor 414 des
weiterleitenden Kommunikationsknotens einen benachbarten Kommunikationsknoten
auswählen,
der fähig
ist, das Datenpaket auf einem anderen Pfad weiterzuleiten.
-
Gemäß einer
Ausführungsform
empfangen die Prozessoren 414 Statusdaten von benachbarten Kommunikationsknoten
auf entsprechenden Ingress-Kanälen
der Steuerkanäle 410.
Die Statusdaten von irgendeinem benachbarten Kommunikationsknoten
könnten
Statusdaten beinhalten, die die Fähigkeit oder Verfügbarkeit
jedes Egress-Datenkanals betreffen, Datenpakete an ein Ziel weiterzuleiten.
Außerdem
könnte
der benachbarte Kommunikationsknoten von anderen Kommunikationsknoten
empfangene Statusdaten an die benachbarten Kommunikationsknoten
weiterleiten (zum Beispiel vom gegenwärtigen Kommunikationsknoten
entfernte Kommunikationsknoten). Die Statusdaten könnten auch
Statusdaten beinhalten, die die Fähigkeit oder Verfügbarkeit
von Egress-Datenkanälen
von drei (oder mehr) Kommunikationsknoten anzeigen, die vom gegenwärtigen Kommunikationsknoten
entfernt sind. Die auf einem Ingress-Kanal eines Steuerkanals 410 empfangenen
Statusdaten könnten
dann von den Prozessoren 414 gemeinsam benutzt werden.
Der Fabric Prozessor 416 könnte festlegen, wie die Prozessoren 414 Information
wie Routing-Präferenzen und
Hindernisse gemeinsam benutzen könnten
(zum Beispiel Zwischenknoten, die zur Weiterleitung von Daten nicht verfügbar sind,
oder die unfähig
sind, eine Dienstanforderung zu erfüllen). Diese Information könnte über die
Steuerkanäle 410 aus
Nachrichten auf Steuerkanälen
von benachbarten Kommunikationsknoten (zum Beispiel zwei Kommunikationsknoten
entfernt vom gegenwärtigen
Kommunikationsknoten) abgeleitet werden. Die Steuerkanäle 410 könnten auch
Debugging-Information und Statusinformation zum Verfolgen von Datenpaketen über das Netzwerk übertragen.
-
Gemäß einer
Ausführungsform
umfassen die Steuerkanäle 410 Egress-Datenkanäle zur Weiterleitung
von Statusdaten an benachbarte Kommunikationsknoten. Die Statusdaten
könnten
Daten betreffend die Fähigkeit
oder Verfügbarkeit
jedes Egress-Datenkanals im gegenwärtigen Kommunikationsknoten
umfassen, Datenpakete an ein Ziel weiterzuleiten. Außerdem könnten Mailboxen 418 Logik und
Speicher umfassen, um die Statusdaten zu ordnen, die von benachbarten
Kommunikationsknoten auf Ingress-Kanälen der Steuerkanäle 410 empfangen
wurden. Die Statusdaten in den Mailboxen 418 könnten dann
an benachbarte Kommunikationsknoten weitergeleitet werden, um die
Auswahl von Egress-Datenkanälen zur
Weiterleitung von Daten aufgrund von Statusdaten auszuwählen, die
die Verfügbarkeit
oder Fähigkeit
von Egress-Datenkanälen
von nicht-benachbarten Kommunikationsknoten betreffen, die Datenpakete
an ein Ziel weiterzuleiten.
-
In
den Ausführungsformen,
die mit Bezug auf 4 und 5 dargestellt
sind, umfasst ein Kommunikationsknoten sechs Ingress- und Egress-Kanäle zwischen
jedem von sechs entsprechenden benachbarten Kommunikationsknoten
Folglich könnte ein
solcher Kommunikationsknoten als Knoten mit kubischer Struktur modelliert
werden, wie oben mit Bezug auf 1 besprochen.
Es wird darauf hingewiesen, dass die Ausführungsformen in den 4 und 5 auch
als Kommunikationsknoten in Form eines Polyheders höherer Ordnung
(zum Beispiel mit mehr als sechs Seiten) modelliert werden können, derart,
dass das Nachrichtenübertragungs-Signalisierungssystem 400 mehr
als sechs Steuerkanäle 410 und
Prozessoren 414 umfasst, und der Packet Director 300 mehr
als sechs Datenkommunikationskanäle 310,
Prozessoren 314 und Puffer 312 umfasst. Dies sind
jedoch lediglich Beispiele dafür,
wie ein Kommunikationsknoten in Form eines Polyheders höherer Ordnung
modelliert werden kann, und Ausführungsformen
der vorliegenden Erfindung sind in dieser Hinsicht nicht eingeschränkt.
-
Obwohl
Ausführungsformen
veranschaulicht und beschrieben wurden, die als beispielhafte Ausführungsformen
der vorliegenden Erfindung betrachtet werden, wird ein Fachmann
erkennen, dass verschiedene andere Modifikationen vorgenommen und Äquivalente
verwendet werden können,
ohne vom wahren Geltungsbereich der Erfindung abzuweichen. Außerdem könnten viele
Modifikationen vorgenommen werden, um eine bestimmte Situation an
die Lehren der vorliegenden Erfindung anzupassen, ohne von dem hier
beschriebenen zentralen erfinderischen Konzept abzuweichen. Folglich
ist beabsichtigt, die vorliegende Erfindung nicht auf die offenbarten
jeweiligen Ausführungsformen
zu beschränken, sondern
alle in den Geltungsbereich der angehängten Ansprüche fallenden Ausführungsformen
in die Erfindung aufzunehmen.