-
Die
vorliegende Erfindung betrifft im allgemeinen Paketvermittlungs-Datenkommunikationsnetzwerke.
Insbesondere betrifft die vorliegende Erfindung Netzwerkpaketvermittlungsknoten
zum Schalten von Paketen, welche Daten und Weglenkungscodes transportieren,
unter gleichzeitiger selektiver Durchführung von zumindest einer nicht-schaltenden
Netzwerkverarbeitungsfunktion an den durch ausgewählte Pakete
transportierten Daten, wobei der Netzwerkpaketvermittlungsknoten
ein Schaltgefüge
mit einer Vielzahl von Eingangsports und einer Vielzahl von Ausgangsports,
einen Datenprozessor mit einem Eingang, der mit einem der Ausgangsports
des Schaltgefüges
verbunden ist und einem Ausgang, der mit einem der Eingangsports
des Schaltgefüges
verbunden ist, und einen Controller aufweist, der mit dem Schaltgefüge verbunden
ist, zum Untersuchen der Weglenkungscodes und, wenn die Weglenkungscodes
eine Durchführung
der zumindest einen nicht-schaltenden Netzwerkverarbeitungsfunktion
anweisen, bewirkt, dass das Schaltgefüge die ausgewählten Pakete,
welche die Weglenkungscodes befördern,
welche die Funktion der zumindest einen nicht-schaltenden Netzwerkverarbeitungsfunktion
anweisen, zu dem Datenprozessor leitet.
-
Kommunikationsnetzwerke
enthalten eine Ansammlung von Ressourcen, welche zum Transportieren
von Benutzerinformationen von Quellenknoten zu Bestimmungsknoten
verwendet werden. Die Ressourcen enthalten Vermittlungsknoten bzw. Schaltknoten
und Kommunikationsverbindungen. In einem Paketvermittlungsnetzwerk
nimmt die Information die Form von als Paketen verpackten digitalen
Daten an. Die Benutzerinformationen werden in diskreten individuellen
Paketen befördert,
und jedes individuelle Paket befördert
seine eigene Bestimmungsadresse zusammen mit zumindest einem Teil der
Benutzerinformationen. Vermittlungsknoten evaluieren die Bestimmungsadressen
zum Bestimmen, wie die Pakete geeignet zu Lenken sind. Das Dokument
WO 96/19059 A2 beschreibt ein Kommunikationsnetzwerk mit einem Netzwerkpaketvermittlungsknoten
gemäß dem Oberbegriff
von Anspruch 1.
-
Serviceanbieter,
welche Kommunikationsnetzwerke betreiben sowie ihre Benutzer haben
einen Vorteil von einer verbesserten Netzwerkeffizienz. Serviceanbieter
wollen eine verbesserte Effizienz, weil sie größere Einkünfte durch Transportieren einer größeren Menge
von Benutzerinformationen unter Verwendung einer vorgegebenen Ansammlung
von Netzwerkressourcen erzielen können. Benutzer wollen eine
verbesserte Effizienz, da die Kosten der Bereitstellung der Netzwerkressourcen
dann über
eine größere Anzahl
von Benutzerinformationstransfers ausgebreitet werden können, um
die Kosten des Transports irgendeines einzelnen Stücks an Benutzerinformationen
zu erniedrigen.
-
Unglücklicherweise
werden übliche
Paketvermittlungs- und andere Netzwerke auf relativ ineffiziente
Art und Weise betrieben. Ineffizienzen sind insbesondere beschwerlich
in Zusammenhang mit dem Verbrauch von Kommunikationsverbindungen zum
Transportieren redundanter oder nahezu redundanter Benutzerinformationen.
Der Teil der Verbindungsbandbreite, welcher zum Transportieren redundanter
oder nahezu redundanter Benutzerinformationen verwendet wird, kann
nicht zum Transportieren unabhängiger
Benutzerinformationen verwendet werden, und dies resultiert in einer
ineffizienten Verwendung von Netzwerkressourcen.
-
Der
Transport redundanter oder nahezu redundanter Benutzerinformationen
resultiert zumindest teilweise von der Tendenz üblicher Netzwerke, die Verarbeitung
der Benutzerinformationen als Verantwortlichkeit eines Benutzers
anzusehen. Beispielsweise wenn ein einzelner Quellenknoten bestimmte Benutzerinformationen
an eine Anzahl von Bestimmungsknoten senden möchte, hat der Quellenknoten die
Verantwortung für
die Duplizierung und die separate Übertragung von den Paketen,
wie für
jeden Bestimmungsknoten notwendig. Viele Netzwerkkommunikationsverbindungen und
Vermittlungsknoten handhaben wiederholt im Wesentlichen die gleichen Daten,
welche nur an verschiedene Bestimmungen adressiert sind.
-
Ebenso
wird die Fehlererfassung und -korrektur von Benutzerinformationen üblicherweise durch
Benutzer auf einer End-zu-End-Basis
durchgeführt.
Ein Quellenknoten codiert Benutzerdaten, so dass bestimmte Fehler
erfasst werden können
und vielleicht korrigiert werden können. Der Bestimmungsknoten
decodiert die codierten Daten zur Untersuchung nach Fehlern. Bei
typischen Datenkommunikationsprotokollen schickt der Bestimmungsknoten,
wenn Fehler nicht korrigiert werden können, eine Nachricht zurück an den
Quellenknoten und fordert eine Wiederholung von zumindest bestimmten Teilen
der Benutzerdaten an. Die Bedingungen, welche in erster Linie zu
Fehlern führen,
können
immer noch während
einer wiederholten Übertragung
vorliegen, und es existiert eine große Wahrscheinlichkeit, dass
Benutzerdaten einige Male übertragen
werden, bevor der Bestimmungsknoten eine rekonstruierte fehlerfreie
Version der Benutzerdaten vornehmen kann.
-
Dies
sind nur zwei der zahlreichen Beispiele, bei denen übliche Kommunikationsnetzwerkressourcen
ineffizient verwendet werden.
-
Während die
mit der ineffizienten Nutzung von Netzwerkressourcen verbundenen
Probleme eine breite Vielzahl von Kommunikationsnetzwerken plagen,
haben sie noch ernstere Konsequenzen bei Netzwerken, welche auf
RF-Kommunikationsverbindungen beruhen. Solche Verbindungen können beispielsweise
Mehrfachleitungsverbindungen zwischen Bodenstationen und Satelliten,
zwischen Paaren von Satelliten oder zwischen Paaren von Bodenstationen
sein. RF-Kommunikationsverbindungen sind auf eine Verwendung eines
zugeordneten Bereichs des elektromagnetischen Spektrums beschränkt und
dieser zugeordnete Bereich ist eine rare Ressource, welche effizient
verwaltet werden sollte. Zusätzlich
diktiert die effiziente Benutzung der RF-Kommunikationsverbindungen, dass abnehmende
Verbindungsspannen den Kommunikationsverkehr-Durchsatz erhöhen. Wenn
ein erwünschter
Ausgleich zwischen Verbindungsspanne und Kommunikationsverkehr-Durchsatz
gefunden ist, wird Rauschen das Auftreten von Datenfehlern verursachen. Diese
Datenfehler führen
zur redundanten und ineffizienten Nutzung von Kommunikationsverbindungen über End-zu-End-Fehlererfassungs-
und Korrekturschemen.
-
Es
ist daher die Aufgabe der Erfindung, Netzwerkvermittlungsknoten,
Verfahren zum Betreiben der Netzwerkvermittlungsknoten und Verfahren
zum Befördern
von Daten in einem Paketvermittlungsnetzwerk weiter zu verbessern
und effizienter zu gestalten.
-
Diese
Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Bevorzugte
Weiterbildungen sind Gegenstand der Unteransprüche.
-
Ein
vollständigeres
Verständnis
der vorliegenden Erfindung kann unter Bezugnahme auf die detaillierte
Beschreibung und die Patentansprüche
in Zusammenhang mit den Figuren erzielt werden, in denen gleiche
Bezugszeichen gleiche Bestandteile bezeichnen.
-
Es
zeigen:
-
1 ein
Layoutdiagramm eines Paketvermittlungskommunikationsnetzwerks;
-
2 ein
Blockdiagramm eines Vermittlungsknotens, der in dem Paketvermittlungskommunikationsnetzwerk
verwendet wird;
-
3 ein
Formatdiagramm eines Pakets, welches durch das Paketvermittlungskommunikationsnetzwerk
transportiert wird;
-
4 einen
Fließplan
eines Prozesses, der an einem Controllerabschnitt des Vermittlungsknotens
durchgeführt
wird;
-
5 einen
Fließplan
eines Fehlerkorrektur-Datenprozessor-Prozesses, welcher bei einem Datenprozessorabschnitt
des Vermittlungsknotens durchgeführt
wird; und
-
6 einen
erfindungsgemäßen Fließplan eines
Sendedaten-Prozessorprozesses,
der bei dem Datenprozessors durchgeführt wird.
-
1 zeigt
ein Layoutdiagramm eines Paketvermittlungskommunikationsnetzwerks 10. Das
Netzwerk 10 enthält
eine beliebige Anzahl von Benutzerknoten, welche 1 als
Quellenknoten 12 und Bestimmungsknoten 14 darstellt,
sowie eine beliebige Anzahl von intermediären Vermittlungsknoten 16.
Nichts erfordert, dass die Benutzerknoten ausschließlich als
Quellenknoten 12 oder Bestimmungsknoten 14 arbeiten.
Die Quellen- und Bestimmungsknoten-Bezeichnungen sind zur Illustration
eines beispielhaften Szenarios getroffen, welches nachstehend beschrieben
wird.
-
Im
Allgemeinen erzeugt der Quellenknoten 12 Benutzerinformationen.
Die Benutzerinformationen werden digitalisiert und in Pakete verpackt
und dann dem Netzwerk 10 übergeben, um zu einem oder
mehreren bestimmten Bestimmungsknoten 14 transportiert
zu werden. Die verpackten Benutzerinformationen oder die Pakete
enthalten eine Netzwerkadresse des bestimmten Bestimmungsknotens
oder -knoten 14. Vermittlungsknoten 16 evaluieren
diese Netzwerkadresse zum Lenken der Pakete zu dem einen oder den
mehreren bestimmten Bestimmungsknoten 14. Wie in 1 angedeutet,
kann eine diverse Zuordnung von Routen bei dem Transport von Paketen
vom Quellenknoten 12 zum Bestimmungsknoten 14 verfolgt
werden. Die ursprünglich
am Quellenknoten 12 gebildeten Pakete können eine beliebige Anzahl
von Vermittlungsknoten 16 durchqueren, bevor sie an einem
bestimmten Bestimmungsknoten 14 ankommen.
-
Bei
der bevorzugten Ausführungsform
der vorliegenden Erfindung enthalten zumindest einige der Vermittlungsknoten 16 im
Netzwerk 10 einen Schalter 18 und einen Datenprozessor 20.
Jeder Schalter 18 enthält
eine beliebige Anzahl von Eingangsports 22 und eine beliebige
Anzahl von Ausgangsports 24. Die Eingangsports 22 haben
eine Verbindung mit den Quellenknoten 12 und mit den Ausgangsports 24 von
weiteren Vermittlungsknoten 16. Die Ausgangsports 24 haben
eine Verbindung mit Bestimmungsknoten 14 und Eingangsports 22 weiterer
Vermittlungsknoten 16. 1 zeigt
nur einige beliebige wenige Verbindungen mit Vermittlungsknoten-Eingangsports
und -Ausgangsports 22 bzw. 24, und zwar aus Gründen der
Klarheit. Die Fachleute werden verstehen, dass solche Verbindungen
unter Benutzung von RF-Verbindungen, faseroptischen Verbindungen,
verdrahteten Kabelverbindungen und dergleichen erstellt werden können. Auf
eine den Fachleuten wohl bekannte Art und Weise verbindet jeder
Schalter 18 dynamisch seine Eingangsports 22 mit
seinen Ausgangsports 24, so dass Verbindungen durch den
Schalter 18 gebildet werden. Die Schalter 18 führen typischerweise
eine Schalt- oder Weglenkungsfunktion für das Netzwerk 10 durch.
Mit anderen Worten modifizieren die Schalter 18 erwünschtermaßen die
durch Pakete beförderten
Benutzerdaten nicht.
-
Innerhalb
der Domäne
eines Vermittlungsknotens 16 hat der Datenprozessor 20 einen
Eingang, welcher mit einem Ausgangsport 24 des Schalters 18 verbunden
ist, und einen Ausgang, welcher mit einem Eingangsport 22 des
Schalters 18 verbunden ist. Der Datenprozessor 20 führt eine
nicht-vermittelnde beziehungsweise nicht-schaltende Netzwerkverarbeitungsfunktion
durch, und diese Netzwerkverarbeitungsfunktion richtet sich auf
Benutzerdaten, welche durch die Pakete befördert werden.
-
Die
genaue nicht-schaltende Netzwerkverarbeitungsfunktion, welche von
dem Datenprozessor 20 durchgeführt wird, hängt von Systemerfordernissen
ab. Verschiedene Vermittlungsknoten 16 können dieselben
oder verschiedene Funktionen durchführen, und jeder einzelne Vermittlungsknoten 16 kann mehr
als eine Funktion durchführen.
Zum Reduzieren der Komplexität
der Vermittlungsknoten 16 ist ein Datenprozessor 20 nicht
jedem einzelnen Eingangsport 22 oder Ausgangsport 24 des
Schalters 18 gewidmet.
-
Vielmehr
werden ausgewählte
Pakete, welche die durch den Datenprozessor 20 durchgeführten nicht-schaltenden
Netzwerkverarbeitungsfunktionen erfordern, zum Datenprozessor 20 geschaltet oder
gelenkt, um die erforderliche Verarbeitung zu erfahren.
-
Der
Datenprozessor 20 kann erfindungsgemäß derart konfiguriert sein,
dass er eine Sende-Datennetzwerk-Verarbeitungsfunktion durchführt. Bei dieser
erfindungsgemäßen Ausführungsform
werden Setup- oder Einstellungsnachrichten an Vermittlungsknoten 16 vor
dem Senden von Paketen geschickt. Die Setup-Nachrichten definieren
eine Gruppe von Knoten, an die ein Vermittlungsknoten 16 Pakete
senden sollte. Der Quellenknoten 12 bildet dann Pakete,
welche an eine spezielle Gruppenadresse adressiert sind. Die Datenprozessoren 20 in
den verschiedenen Vermittlungsknoten 16 duplizieren erwünschtermaßen diese
Gruppen-adressierten Pakete je nach Notwendigkeit und senden die
duplizierten Pakete nur an lokale Bestimmungsknoten 14 und
lokale Vermittlungsknoten 16. Andere Pakete, welche innerhalb
des Netzwerks transportiert werden, erfahren diese Duplizierungsdatenverarbeitung
nicht. Anstelle dessen, dass der Quellenknoten 12 Pakete
dupliziert und viele nahezu redundante Pakete an verschiedene Adressen über gemeinsame
Verbindungen sendet, transportiert jede Verbindung erwünschterweise
nur ein einzelnes Paket, welches an entweder eine Gruppe oder einen
Bestimmungsknoten adressiert ist. Diese Sende-Datennetzwerk-Verarbeitungsfunktion
wird nachstehend näher
erläutert.
-
Der
Datenprozessor 20 kann weiterhin derart konfiguriert sein,
dass er eine Fehlerkorrektur-Netzwerkverarbeitungsfunktion durchführt. Bei
diesem Beispiel können "hochqualitative" Pakete ausgewählt werden,
welche die Fehlerkorrektur-Datenverarbeitung erfahren. Andere Pakete,
welche innerhalb des Netzwerks 10 transportiert werden,
erfahren die Fehlerkorrekturverarbeitung nicht. Der Datenprozessor 20 führt Konvolutions-
oder andere Fehlererfassungs- und/oder -korrekturschemen zum Erfassen und
Korrigieren von Fehlern in dem Paket durch und codiert das Paket
nach der Fehlerkorrektur für
folgende Fehlerkorrekturpro zesse erneut. Anstelle dessen, dass Pakete
eine vollständige
Reise zwischen dem Quellenknoten 12 und dem Bestimmungsknoten 14 erfahren,
bevor eine Fehlerkorrektur durchgeführt wird, ist die Fehlerkorrektur über das
Netzwerk 10 verteilt und wird nach kleinen Sprüngen der
gesamten Reise durchgeführt.
Anstelle dessen, dass Fehler über
die gesamte Reise akkumuliert werden, können Fehler korrigiert werden,
bevor eine signifikante Akkumulation auftritt. Weiterhin können erneute Übertragungen,
welche durch Fehler erfordert werden, die nicht korrigiert werden
können,
nicht über
die gesamte Reise übertragen
werden, sondern nur über
einen kleinen Sprung, wo ein Fehler aufgetreten ist. Diese Fehlerkorrektur-Netzwerkverarbeitungsfunktion
wird nachstehend näher
erläutert.
-
Eine
weitere nicht-schaltende Netzwerkverarbeitungsfunktion, welche in
einem Datenprozessor 20 implementiert ist, kann eine Test-
und Messfunktion enthalten, welche ausgewählte Pakete zurück zu einem
Knoten, der die Pakete sendet, schickt. Noch weitere Beispiele können Entschlüsselungs-
und Verschlüsselungsfunktionen,
Drahtabgrifffunktionen und dergleichen vorsehen.
-
2 zeigt
ein Blockdiagramm des Vermittlungsknotens 16. Wie oben
in Zusammenhang mit 1 erörtert, enthält der Vermittlungsknoten 16 einen
Schalter 18 und einen Datenprozessor 20. Insbesondere
illustriert 2 die Ausführungsform, bei der der Vermittlungsknoten 16 eine
Anzahl von Datenprozessoren 20 aufweist. Jeder Datenprozessor 20 hat
einen Eingang, welcher mit einem bestimmten Ausgangsport 24 des
Schalters 18 verbunden ist, und einen Ausgang, welcher
mit seinem bestimmten Eingangsport 22 des Schalters 18 verbunden
ist. Jegliche Anzahl von Datenprozessoren 20 kann vorgesehen
sein. Die verschiedenen Datenprozessoren 20 können identische
Funktionen durchführen,
um die Kapazität
eines Vermittlungsknotens zur Durchführung der Funktion zu erhöhen, oder
sie können alle
zusammen verschiedene Funktionen durchführen.
-
Jeder
Eingangsport 22 des Schalters 18 ist mit seinem
zugehörigen
Weglenkungscode-Extraktor (RCE) 26 verbunden. Jeder Weglenkungscode-Extraktor 26 ist
mit seinem zugehörigen
Datenpuffer (DB) 28 verbunden, und jeder Datenpuffer 28 ist
mit seinem zugehörigen
Eingangsport eines Schaltgefüges 30 verbunden.
Ausgangsports des Schaltgefüges 30 dienen
als Ausgangsports für
den Schalter 18. Die Ausgänge von den Weglenkungscode-Extraktoren 26 sind
mit einem Controller 32 verbunden, und ein Steuerausgangssignal
von dem Controller 32 ist mit dem Schaltgefüge 30 verbunden.
-
3 zeigt
ein Formatdiagramm eines exemplarischen Pakets 34, welches
durch das Paketvermittlungskommunikationsnetzwerk 10 über die
Vermittlungsknoten 16 (siehe 1 und 2) transportiert
wird. Das Paket 34 enthält
einen Vorsatzabschnitt 36 und einen Datenabschnitt 38.
Der Vorsatz 36 trägt
allgemeine bzw. Overhead- oder netzwerkbezogene Daten. Der Datenabschnitt 38 trägt Benutzerdaten.
Es ist die Beförderung
dieser Benutzerdaten, welche den Zweck für das Netzwerk 10 bildet.
Der Vorsatz 36 kann in einen Weglenkungscode 40 und
einen weiteren Overhead-Datenabschnitt 42 aufgeteilt werden.
Der weitere Datenabschnitt 42 kann eine Paket-ID oder eine
Serienummer, eine Adresse des Quellenknotens 12, Adressen von
einem oder mehreren vorhergehenden Knoten des Netzwerks 10,
durch die das Paket 34 durchgetreten ist, oder dergleichen
befördern.
-
Der
Weglenkungscode 40 kann weiter in einen Datenverarbeitungsabschnitt 44 und
einen Bestimmungsadressenabschnitt 46 geteilt werden. Der Bestimmungsadressenabschnitt 46 befördert die Adresse
eines Bestimmungsknotens 14. Jedoch kann für ein Paket 34,
welches an viele Bestimmungsknoten 14 zu senden ist, der
Bestimmungsadressenabschnitt 46 anstatt dessen eine Identität einer
Gruppe befördern,
an die das Paket 34 zu senden ist, und nicht eine einzelne
Bestimmungsknotenadresse. Der Datenverarbeitungsabschnitt 44 schafft einen
Code, welcher selektiv den Vermittlungsknoten 16 instruiert,
ob die nicht-schaltende Netzwerkverarbeitungsfunktion, die von dem
Datenprozessor 20 be reitgestellt wird, durchzuführen ist,
und welche Funktion oder welche Funktionen durchzuführen sind,
falls mehrere Datenprozessoren 20 in einem Vermittlungsknoten 16 beinhaltet
sind. Daher wird der Datenverarbeitungsabschnitt 44 des
Weglenkungscodes 40 durch den Controller 32 beim
Bestimmen verwendet, wie Weglenkungspakete durch das Schaltgefüge 30 zu
lenken sind.
-
Mit
Bezug auf 2 und 3 extrahiert, wenn
ein Paket 34 an irgendeinem Eingangsport 22 empfangen
wird, und zwar einschließlich
der Eingangsports 22, welche durch die Datenprozessoren 20 angesteuert
werden, ein entsprechender Weglenkungscode-Extraktor den Weglenkungscode 40 von dem
Paket 34. Der Weglenkungscode 40 wird an den Controller 32 zur
Untersuchung geleitet, während das
Paket 34 in einen entsprechenden Datenpuffer 28 geleitet
wird. Der Controller 32 ist eine programmierbare Vorrichtung,
welche in den Paketvermittlungskünsten
wohl bekannt ist. Der Controller 32 führt unter dem Einfluss eines
Programms, wie es nachstehend erörtert
wird, einen Steuerprozeß durch,
welcher bestimmt, wie das Paket 34 durch das Schaltgefüge 30 zu
lenken ist. Das Schaltgefüge 30 weist
eine übliche
Gefügestruktur
auf, welche in der Lage ist, seine Eingangsports mit seinen Ausgangsports
in einem durch den Controller 32 diktierten Muster zu verbinden.
Kreuzschienen-, Banyan-, Knockout und weitere Schaltstrukturen,
welche den Fachleuten bekannt sind, können alle erfolgreich zur Verwendung
in dem Schaltgefüge 30 angepasst
werden.
-
In Übereinstimmung
mit der Untersuchung des Weglenkungscodes 40 bewirkt der
Controller 32, dass das Schaltgefüge 30 die erwünschte Verbindung
herstellt. Der Datenpuffer 28 synchronisiert das Paket 34,
so dass das Paket 34 an einem Eingangsport des Schaltgefüges 30 zur
geeigneten Zeit ankommt, nachdem der Controller 32 den
Weglenkungscode 40 untersucht hat und das Schaltgefüge 30 angewiesen
hat, die erwünschte
Verbindung herzustellen.
-
4 zeigt
einen Fließplan
eines Steuerprozesses 48, der am Controller 32 durchgeführt wird, um
Weglenkungscodes 40 zu evaluieren. Der Prozess 48 ist
erwünschtermaßen über Programmierinstruktionen
in einer im Stand der Technik wohl bekannten Art und Weise definiert.
-
Der
Prozess 48 enthält
einen Task 50, während
dem ein Weglenkungscode 40 erhalten wird. Aus Gründen der
Einfachheit zeigt 4 den Prozess 48 als
Untersuchung eines einzelnen Weglenkungscodes 40 zu einer
Zeit, und darf folgendes wiederholen zur Entwicklung eines weiteren
Weglenkungscodes 40. Somit kann der Task 50 den
nächsten
verfügbaren
Weglenkungscode 40 erlangen, und dieser nächste Weglenkungscode 40 kann
von dem nächsten
Eingangsport 22 des Schalters 18, der zu untersuchen
ist, zugeführt
werden. Jedoch kann der Prozess alternativermaßen derart konfiguriert sein, dass
viele Weglenkungscodes 40 parallel untersucht werden.
-
Nach
dem Task 50 bestimmt ein Befragungstask 52, ob
ein Datenverarbeitungsbefehl in dem Weglenkungscode 40,
der untersucht ist, vorliegt. Der Task 52 untersucht den
Datenverarbeitungsabschnitt 44 (3) des Weglenkungscodes 40 beim Treffen
seiner Bestimmung. Der Task 52 kann ebenfalls den bestimmten
Eingangsport 22 (siehe 2) untersuchen,
mit dem der Weglenkungscode 40 verbunden ist, und ob eine
angeforderte nichtschaltende Netzwerkverarbeitungsfunktion am Vermittlungsknoten 16 vorgesehen
ist, wo der Prozess 48 durchgeführt wird.
-
Falls
keine Datenverarbeitungsbefehle vorliegen, falls Datenverarbeitungsbefehle
für nicht
am Vermittlungsknoten 16 vorgesehene Funktionen entdeckt
werden oder falls Befehle die Durchführung einer Funktion instruieren,
welche gerade an dem Paket durchgeführt worden ist, wie durch den
Eingangsport 52 bestimmt, von dem ein Weglenkungscode 40 erhalten
wurde, dann wird ein Task 54 durchgeführt. Der Task 54 untersucht
den Bestimmungsadressenabschnitt 46 (siehe 3)
des Weglenkungscodes 40. Ansprechend auf diese Untersuchung
schafft der Task 54 ein Steuerausgangssignal für das Schaltgefüge 30 (siehe 2),
welche bewirkt, dass das Schaltgefüge 30 das Paket 34 weg
von den Datenprozessoren 20 und zur Bestimmung für das Paket 34 lenkt.
Nach dem Task 54 schleift die Programmsteuerung zurück zum Task 50 zum
Untersuchen des nächsten
Weglenkungscodes.
-
Wenn
der Task 52 einen Weglenkungscode 40 findet, welcher
das Durchführen
einer nicht-schaltenden Netzwerkverarbeitungsfunktion befiehlt,
welche am Vermittlungsknoten 16 durchgeführt wird, wird
ein Task 56 durchgeführt.
Der Task 56 bestimmt, zu welchem Datenprozessor 20 das
Paket 34 gelenkt werden sollte. Der Task 56 implementiert
erwünschtermaßen ein
Prioritätsschema
zum Auswählen
eines einzelnen Datenprozessors 20, wenn mehrere Datenprozessoren 20 am
Vermittlungsknoten 16 verfügbar sind. Falls mehrere Datenprozessoren 20 identische
Funktionen durchführen,
dann verfolgt der Task 56 erwünschtermaßen, welche Datenprozessoren 20 verfügbar sind,
um ihre nicht-schaltende Netzwerkverarbeitungsfunktion an Paketen 34 zu
einem gegebenen Augenblick durchzuführen und wählt einen verfügbaren Datenprozessor 20 aus.
Weiterhin überwacht
der Task 56 erwünschtermaßen den
Eingangsport 22, von dem der Weglenkungscode 40 kommt.
Der Task 56 ergreift erwünschtermaßen Schritte zum Verhindern,
dass ein Paket, welches gerade durch einen Datenprozessor 20 verarbeitet
worden ist, zurück
zu demselben Datenprozessor 20 gelenkt wird.
-
Nach
dem Task 56 erzeugt ein Task 58 ein Steuerausgangssignal
für das
Schaltgefüge 30 (siehe 2),
welches bewirkt, dass das Schaltgefüge 30 das Paket 34 zu
dem ausgewählten
Datenprozessor 20 lenkt. Nach dem Task 58 schleift
die Programmsteuerung zurück
zum Task 50 zum Untersuchen des nächsten Weglenkungscodes 40.
Dementsprechend untersucht der Controller 32 über den
Prozess 48 (siehe 2) die Weglenkungscodes 40 (siehe 3)
und lenkt selektiv die Pakete 34 (siehe 3)
zu ihren Bestimmungen oder zu einem Datenprozessor 20,
welcher eine nicht-schaltende Netzwerkverarbeitungsfunktion an den Daten 38 (siehe 3)
durchführen
wird, welche durch die Pakete 34 befördert werden.
-
5 zeigt
einen Fließplan
eines exemplarischen Fehlerkorrektur-Datenprozessorprozesses 60, der
am Datenprozessor 20 durchgeführt wird, welcher derart konfiguriert
ist, dass er Fehler in den ausgewählten Paketen (siehe 3)
korrigiert. Der Prozess 60 kann durch Programmierinstruktionen
oder in anderen im Stand der Technik bekannten Arten und Weisen
definiert werden.
-
Der
Prozess 60 enthält
einen Befragungstask 62, welcher bestimmt, wenn ein ausgewähltes Paket 34,
welches eine Fehlerkorrektur erfordert, am Datenprozessor 20 ankommt.
Solch ein ausgewähltes
Paket 34 kommt am Datenprozessor 20 über den Betrieb
des Controllerprozesses 48 und den Schalter 18 an,
wie oben in Zusammenhang mit 2 bis 4 diskutiert.
Der Prozess 60 schreitet fort über den Task 62 zum
Task 64, wenn das Paket 34 empfangen ist. Der
Task 64 decodiert das Datenpaket 38 (siehe 3),
und zwar unter Verwendung wohl bekannter Konvolutionsdecodier-,
Prüfsummen-,
Paritäts-,
Trellis- oder anderer Techniken.
-
Als
nächstes
führt ein
Task 66 eine beliebige angezeigte Fehlerkorrektur durch,
und zwar ansprechend auf die Decodierung des Datentasks 64,
falls möglich.
Obwohl nicht gezeigt, kann, falls die Fehler zu groß zur Korrektur
sind, der Task 56 eine Nachricht formatieren und senden,
welche anfordert, dass entweder der Quellenknoten 12 (siehe 1)
oder der vorherige Vermittlungsknoten 16, von dem das Paket 34 empfangen
wurde, das Paket 34 erneut überträgt. Nachdem der Task 66 Fehler
korrigiert hat, codiert ein Task 68 Daten 38,
so dass folgende Knoten in dem Netzwerk 10 ähnliche
Fehlerkorrekturprozesse durchführen
können.
Als nächstes
erzeugt ein Task 70 ein verarbeitetes Paket unter Verwendung der
Daten 38, welche oben im Task 68 codiert wurden,
und sichert optionell eine Kopie des verarbeiteten Pakets, so dass
es, falls notwendig, erneut über tragen
werden kann. Nach dem Task 70 überträgt ein Task 72 das
verarbeitete Paket zu dem Eingangsport 22 des Schalters 18 (siehe 1 bis 2).
Der Schalter 18 lenkt das verarbeitete Paket auf seinen Bestimmungsknoten 14 (siehe 1).
-
Nach
dem Task 72 schleift die Programmsteuerung zurück zum Task 62,
um auf die Ankunft des nächsten
ausgewählten
Pakets 34 zu warten, welches eine Fehlerkorrektur erfordert.
Obwohl 5 den Prozess 60 als sequentielle Verarbeitung einzelner
Pakete zeigt, werden die Fachleute verstehen, dass der Prozess 60 ebenfalls
derart konfiguriert sein kann, dass er verschiedene Pakete 34 parallel verarbeitet.
Unabhängig
von einer speziellen Implementierung korrigiert der Prozess 60 Datenfehler
in ausgewählten
Paketen 34. Wenn der Prozess 60 bei einigen verschiedenen
Vermittlungsknoten 16 (siehe 1 bis 2) über dem
Netzwerk durchgeführt wird,
kann ein Übertragungsweg
mit hoher Qualität daraus
resultieren. Beliebige Fehler, welche in die Daten 38 aufgrund
der Übertragung
gelangen, werden schnell korrigiert und können sich nicht anhäufen. Falls
wiederholte Übertragungen
erforderlich sind, können
die wiederholten Übertragungen über eine
kurze Spanne des Netzwerks 10 laufen und müssen nicht über die
gesamte Reise zwischen dem Quellenknoten 12 und einem Bestimmungsknoten 14 laufen.
-
6 zeigt
einen erfindungsgemäßen Fließplan eines
Sende-Datenprozessorprozesses 74,
der an einem Datenprozessor 20 durchgeführt wird, welcher derart konfiguriert
ist, dass er ausgewählte
Pakete 34 (siehe 3) sendet.
Der Prozess 74 kann über
Programmierinstruktionen oder in anderen im Stand der Technik wohl
bekannten Arten und Weisen definiert werden.
-
Vor
dem tatsächlichen
Senden ausgewählter Pakete 34 führt der
Prozess 74 einen Task 76 durch. Der Task 76 erhält und sichert
eine Empfangsgruppendefinition. Die Empfangsgruppendefinition kann von
einem beliebigen Knoten im Netzwerk 10 herrühren und
kann in einer Gruppensendetabelle 78 gesichert sein. Die
Tabelle 78 kann implementiert werden, indem eine Speicherstruktur auf
eine den Fachleuten wohl bekannte Art und Weise verwendet wird. Die
Tabelle 78 verbindet Netzwerkknotenadressen mit der definierten
Gruppe. Die Netzwerkknotenadressen können entweder Adressen für Bestimmungsknoten 14 oder
andere Gruppenadressen sein. Die anderen Gruppenadressen identifizieren weitere
Vermittlungsknoten 16 im Netzwerk 10. Erwünschtermaßen sind
die Netzwerkknotenadressen, die in der Tabelle 78 enthalten
sind, lokale Adressen für
den Vermittlungsknoten 16, welcher den Prozess 74 durchführt. Mit
anderen Worten sind die Adressen für die Bestimmungsknoten 14 und
weitere Vermittlungsknoten 16 enthalten, welche von diesen
Vermittlungsknoten 16 erreicht werden können, ohne durch weitere Vermittlungsknoten 16 mit
einem Datenprozessor zu laufen, der zur Durchführung eines Datensendens konfiguriert
ist. Somit ist jede Empfangsgruppendefinition, welche an verschiedenen Vermittlungsknoten 16 zum
Definieren einer Weglenkung für
einen bestimmten Satz von Sendedatenpaketen, die von einem bestimmten
Quellenknoten 12 herrühren,
verschieden von den anderen. Jede Definition identifiziert erwünschtermaßen Bestimmungsknoten 14 und
weitere Vermittlungsknoten 16, welche lokal für den Vermittlungsknoten 16,
der die Definition empfängt,
sind.
-
Nachdem
die Empfangsgruppendefinition etabliert worden ist, ist der Prozess 74 bereit,
das Senden ausgewählter
Datenpakete zu beginnen. Der Prozess 74 enthält einen
Befragungstask 80, welcher bestimmt, wenn ein ausgewähltes Paket,
welches zu senden ist, am Datenprozessor 20 ankommt. Solch ein
ausgewähltes
Paket 34 kommt am Datenprozessor 20 durch den
Betrieb des Controllerprozesses 48 und des Schalters 18 an,
wie oben in Verbindung mit 2 bis 4 erörtert. Der
Prozess 74 schreitet über
den Task 80 zu einem Task 82, wenn das Paket empfangen
ist. Der Task 82 erzeugt ein verarbeitetes Paket. Das verarbeitete
Paket wird durch Duplizieren der Daten 38 (siehe 3)
von dem empfangenen Paket 34 in das verarbeitete Paket
und Einsetzen eines entsprechenden Weglenkungscodes 40 (siehe 3)
in das verarbeitete Paket erzeugt. Der geeignete Weglenkungscode 40 kann
von der Gruppensendetabelle 78 erhalten werden. Bei der erfindungsgemäßen Ausführungsform
von Prozess 74, welcher in 6 gezeigt
ist, werden verarbeitete Pakete sequentiell für jeden Eintrag in der Empfangsgruppendefinition,
welche in Tabelle 78 gespeichert ist, erzeugt. Somit kann
der Task 72 einen Weglenkungscode 40 durch Erlangen
des nächsten
Eintrags in der Reihenfolge von der Tabelle 78 auswählen. Zusätzlich führt der
Task 82 irgendein weiteres endgültiges Paket formatieren, welches
für die
Pakete 34, die durch das Netzwerk 10 übertragen
werden, erforderlich ist, aus. Beispielsweise kann eine Paket-ID erzeugt werden.
-
Als
nächstes überträgt ein Task 84 das
verarbeitete Paket zu dem Eingangsport 22 des Schalters 18 (siehe 1 bis 2).
Der Schalter 18 lenkt das verarbeitete Paket in Übereinstimmung
mit dem oben im Task 82 eingesetzten Weglenkungscode. Nach dem
Task 84 bestimmt ein Befragungstask 86, ob das letzte
verarbeitete Paket, das gesendet wurde, zum letzten Weglenkungscodeeintrag
in der Tabelle 78 gerichtet war. Solange wie zusätzliche
Weglenkungscodes in der Tabelle 78 bleiben, schleift die
Programmsteuerung zurück
zum Task 82 zum Erzeugen eines verarbeiteten Pakets für die zusätzlichen
Weglenkungscodes. Wenn ein verarbeitetes Paket für den letzten Weglenkungscode
erzeugt worden ist, schleift die Programmsteuerung zurück zum Task 80 zum
Erwarten der Ankunft des nächsten
ausgewählten
Pakets 34, welches ein Senden erfordert.
-
Die
Fachleute werden verstehen, dass die Programmierschleifen, welche
in 6 abgebildet sind, durch die Einfügung zusätzlicher
Tasks unterbrochen werden können.
Beispielsweise kann der Prozess 74 zusätzliche Tasks ähnlich wie
diejenigen, die in 6 gezeigt sind, zum Ermöglichen
eines laufenden Services von mehreren Empfangsgruppendefinitionen
enthalten. Programmierschleifen für irgendeine einzelne Empfangsgruppendefinition
müssen
nicht unterbrochen werden, bis eine Empfangsgruppendefinition angeklopft
wird.
-
Dementsprechend
dupliziert der Prozess 74 ausgewählte Pakete 34, wie
erforderlich, zum Senden der ausgewählten Pakete 34 zu
lokalen Knoten innerhalb des Netzwerks 10. Einige dieser
lokalen Knoten können
andere Vermittlungsknoten 16 sein, wo andere Datenprozessoren 20 liegen,
welche zum Durchführen
von Datensendefunktionen konfiguriert sind. Diese anderen Vermittlungsknoten 16 senden die
Pakete, welche sie empfangen, zu noch anderen Netzwerkknoten, welche
lokal zu weiteren Vermittlungsknoten 16 gelegen sind. Durch
dieses Verfahren brauchen Kommunikationsverbindungen, die nahe dem
Quellenknoten 12 im Netzwerk 10 liegen, nicht
wiederholt nahezu identische Pakete zu befördern, da die Pakete durch
das Netzwerk 10 dupliziert werden, und zwar so nahe wie
möglich
an ihren vorgesehenen Bestimmungen.
-
Die
Fachleute werden erkennen, dass die Netzwerkvermittlungsknoten 16 für diverse
Verwendungen benutzt werden können.
Beispielsweise kann eine Mehrfachdurchlaufverarbeitung dadurch implementiert
sein, dass wiederholt Pakete durch denselben oder verschiedene Prozessoren
(20) an einem einzelnen Vermittlungsknoten 16 geschleift
werden. Beispielsweise können
sowohl die Fehlerkorrektur als auch das Senden an einem einzelnen
Vermittlungsknoten 16 implementiert sein. Zusätzlich können komplexe
Netzwerkprozesse implementiert werden, indem man eine erststufige
Verarbeitung hat, welche an einem Vermittlungsknoten 16 durchgeführt wird,
eine zweitstufige Verarbeitung, welche an einem weiteren Vermittlungsknoten 16 durchgeführt wird,
usw. Die Netzwerkweglenkung kann derart konfiguriert sein, dass
folgende Verarbeitungsstufen am Vermittlungsknoten 16 durchgeführt werden,
welcher frühere
Stufen durchführte.
-
Zusammenfassend
schafft die vorliegende Erfindung einen verbesserten Netzwerkknoten
zur Paketvermittlung mit selektiver Datenverarbeitung und ein entsprechendes
Verfahren. Die Netzwerkpaketvermittlungsknoten sind derart eingerichtet,
dass sie selektiv eine Datenverarbeitung an Benutzerdaten durchführen, welche
durch die Pakete befördert werden.
Diese Netzwerkpaketvermittlungsknoten sind über ein Kommunikationsnetzwerk
ver teilt. Die Netzwerkeffizienz ist verbessert, da das Netzwerk dann
bestimmte Datenverarbeitungsfunktionen an ausgewählten Paketen durchführt, welche,
falls durch Quellen- und Bestimmungsknoten durchgeführt, zu
einem erhöhten
Transport redundanter Benutzerinformationen führen wird. Weiterhin erfordern die
Netzwerkpaketvermittlungsknoten, welche selektiv eine Datenverarbeitung
an Benutzerdaten durchführen,
im Wesentlichen keine erhöhte
Schalterkomplexität.
-
Die
vorliegende Erfindung wurde oben mit Bezug auf die bevorzugte Ausführungsform
beschrieben. Jedoch erkennen die Fachleute, dass Änderungen
und Modifikationen an dieser bevorzugten Ausführungsform vorgenommen werden
können, ohne
von dem durch die unabhängigen
Ansprüche definierten
Schutzumfang der vorliegenden Erfindung abzuweichen. Beispielsweise
können
die Prozesse und Tasks, die hier identifiziert wurden, verschieden
kategorisiert und organisiert werden, als beschrieben wurde, wobei
im wesentlichen äquivalente
Resultate erzielt werden. Ebenso können äquivalente Resultate dadurch
erzielt werden, dass Datenprozessoren so konfiguriert werden, dass
sie nichtschaltende Netzwerkverarbeitungsfunktionen durchführen, welche
von der oben speziell erörterten geringfügig abweichen.
Diese und weitere nahe liegenden Änderungen und Modifikationen
sollen in den durch die unabhängigen
Ansprüche
definierten Schutzumfang der vorliegenden Erfindung fallen.