-
Die
vorliegende Erfindung bezieht sich auf Telekommunikations-Vermittlungen
und Verfahren für
deren Betrieb, und sie betrifft insbesondere, jedoch nicht ausschließlich, Vermittlungen
und Verfahren zur Bereitstellung von Diensten, wie zum Beispiel
der asynchronen Übertragungs-Betriebsart
(ATM), Frame-Relay (FR) und Internet-Protokoll (IP).
-
Das
Internet treibt die Zunahme bei den Anforderungen an Netzbetreiber,
verbindungslose Protokolle, wie zum Beispiel IP, in ihren Netzwerken
zu unterstützen.
IP scheint die vorherrschende Technologie für Netzwerk-Anwendungen zu sein,
doch hat IP traditionell lediglich die Zustellung besten Bemühens unterstützt. In letzterer
Zeit wurden Initiativen der Internet Engineering Task-Force (IETF)
auf die Verbesserung der Fähigkeit von
IP gerichtet, Dienst-Klassen-(CoS-) und Verkehrs-Engineering-Fähigkeiten einzufügen. Beispiele
von zwei derartigen Initiativen sind die Multiprotokoll-Etikettvermittlung
(MPLS) und Differenzierte Dienste. MPLS wurde zur Unterstützung von
bedingungsbasierter Routenführung
als eine Betriebsart zur Unterstützung
der vorhandenen dynamischen Sprungabschnitt-für-Sprungabschnitt-(hop by hop-)Routenführung definiert.
Das vorgeschlagene bedingungsbasierte Routenführungs-Etikett-Verteilungs-Protokoll
(CR-LDP) ermöglicht
es, dass Verkehrs-Parameter und die Routenführungs-Topologie pro Datenfluss
festgelegt wird. Differenzierte Dienste definieren, wie ein Paket
markiert ist, um eine priorisierte Dienst-Klassen-Behandlung an
jedem Sprungabschnitt oder Hop zu erhalten. Typischerweise wird
dies direkt in eine priorisierte Warteschlangen-Behandlung in einem
Router umgesetzt.
-
Die
vorstehend erläuterten
IP-Erweiterungen ergeben Fähigkeiten,
die ähnlich
denen sind, die von der Technologie der asynchronen Übertragungs-Betriebsart
(ATM) und Frame-Relay (FR) geboten wird. Tatsächlich erwägen einige Netzbetreiber den
Einsatz von FR-, ATM-, und IP-Kommunikations-Diensten. Grundlegende
Unterschiede zwischen den ATM-, FR-, IP-Protokollen haben jedoch
unterschiedliche Vermittlungs-Systeme erfordert, was zu getrennten
Netzwerken für
jeden Dienst führte.
-
Die
US 5,831,980 beschreibt
eine gemeinsam genutzte Speicher-Struktur für ATM-Vermittlungen, bei der Speichereinrichtungen
zur Bereitstellung einer hierarchischen Speicher-Struktur an jedem
Vermittlungs-Modul verwendet werden.
-
Die
US 5,555,265 beschreibt
ein Vermittlungspfad-Einstellsystem, das in Vermittlungs-Ausrüstungen für den Austausch
einer eine feste Länge
aufweisenden Zelle in ATM-Netzwerken verwendet wird.
-
Die
US 5,793,747 beschreibt
eine Ereignis-gesteuerte Ablaufsteuerung oder einen Scheduler und
ein Verfahren zur Unterstützung
von mehrfachen Dienste-Kategorien in einem Kommunikations-Netzwerk.
-
Die
US 5,850,399 beschreibt
ein Verfahren zur fairen und effizienten Ablaufsteuerung der Übertragung eines
Paketes von einer Vielzahl von Sitzungen auf ein Netzwerk
-
Die
WO 99/00944 beschreibt einen
Mechanismus zum Paket-Feldersatz in einem mehrschichtigen verteilten
Netzwerk.
-
Die
EP 0854614 beschreibt ein
programmierbares Konkurrenz-Bereinigungssystem zur Bestimmung der
Priorität
der Ports einer Netzwerk-Vermittlung.
-
Die
EP 0901307 beschreibt eine
Vorrichtung und ein Verfahren zur Formung des ATM-Zellenverkehrs, der
auf eine virtuelle Pfadverbindung in einem ATM-Netzwerk ausgesandt
wird.
-
Gemäß der vorliegenden
Erfindung wird eine Telekommunikations-Vermittlung zur Vermittlung
von Protokolldaten-Einheiten zwischen Kommunikations-Verbindungsstrecken,
die die Telekommunikations-Vermittlung mit einem Kommunikations-Netzwerk verbinden,
gemäß Anspruch
1 geschaffen.
-
Ausführungsbeispiele
der Erfindung ermöglichen
es einem Betreiber, Klassenbasierte, in Warteschlangen angeordnete
Dienste und Datenfluss-basierte, in Warteschlangen angeordnete Dienste
auf der gleichen Vermittlung zu unterstützen.
-
In
zweckmäßiger Weise
schließt
die Vielzahl von Warteschlangen eine andere Gruppe von Warteschlangen
für eine
Datenfluss-basierte und Klassen-basierte Teil-Datenstrom-Warteschlangen-Bildung eines dritten
Teils der Protokolldaten-Einheiten ein, deren Routen durch die Vermittlungsstruktur
gelenkt werden. Weiterhin schließt die Vielzahl von Ablaufsteuerungen
weiterhin zweckmäßigerweise
eine dritte Ablaufsteuerung ein, die der anderen Gruppe von Warteschlangen
zugeordnet ist, und die erste Ablaufsteuerung ist weiterhin der
dritten Ablaufsteuerung zugeordnet. Durch diese Zuordnung ist die
erste Ablaufsteuerung betreibbar, um eine eine Ablaufsteuerung der
zweiten und dritten Teile an die zweite Ablaufsteuerung zu schaffen. Diese
Merkmale ermöglichen
es einem Netzbetreiber, einen Dienst zu unterstützen, der eine Kombination
einer Klassen-basierten Warteschlangen-Bildung und einer Datenfluss-basierten
Warteschlangen-Bildung erfordert. Beispielsweise ermöglicht es
dieses Merkmal einem Netzbetreiber, eine neue Art eines virtuellen
privaten Netzwerk-(VPN-)Dienstes zu schaffen. Dieser Dienst würde es ermöglichen,
dass eine Menge an Bandbreite für
ein VPN garantiert wird, während
Dienst-Klassen innerhalb des VPN jeweils ein relativer Anteil der
garantierten Bandbreite zugeteilt werden könnte.
-
Zweckmäßigerweise
ist die zweite Ablaufsteuerung eine Prioritäts-Ablaufsteuerung, und die
ersten und dritten Ablaufsteuerungen sind Ablaufsteuerungen für eine bewertete
faire Warteschlangen-Bildung.
-
Zweckmäßigerweise
schließt
die Telekommunikations-Vermittlung weiterhin eine umkonfigurierbare Durchschalteinrichtung
ein, die zumindest eine Warteschlange der Vielzahl von Warteschlangen
und eine Ablaufsteuerung der Vielzahl von Ablaufsteuerungen in einer
umkonfigurierbaren Weise verbindet, wodurch eine Zuordnung einer
Ablaufsteuerung zu einer Warteschlange selektiv änderbar ist. Dieses Merkmal
ermöglicht
es einem Netzbetreiber, der die Vermittlung betreibt, die Vermittlung
umzukonfigurieren, um weitere Dienste zu unterstützen, Änderungen an vorhandenen Diensten
durchzuführen
und neue Dienste nach Bedarf hinzuzufügen.
-
Zweckmäßigerweise
umfasst die Vielzahl von Ablaufsteuerungen Ablaufsteuerungs-Module, von denen
jedes eine Prioritäts-Ablaufsteuerung
und eine bewertete faire Warteschlangen-Ablaufsteuerung einschließt.
-
Die
Erfindung ergibt weiterhin ein Verfahren zur Vermittlung von Etiketteingekapselten
Protokolldaten-Einheiten in einer Telekommunikations-Vermittlung,
die mit einem Kommunikations-Netzwerk über Kommunikations-Verbindungsstrecken
verbunden ist, gemäß Anspruch
6.
-
In
vorteilhafter Weise ergeben die verschiedenen Gesichtspunkte und
Ausführungsformen
der vorliegenden Erfindung eine Verbesserung der Betriebsleistung
von Telekommunikations-Vermittlungen.
-
Ausführungsbeispiele
der Erfindung werden nunmehr lediglich in Form eines Beispiels unter
Bezugnahme auf die Zeichnungen beschrieben, in denen:
-
1 ein
funktionelles Blockschaltbild einer in der Technik bekannten generischen
Vermittlung ist;
-
2 ein
funktionelles Blockschaltbild eines typischen Ausgangs-Ports eines
Routers für
Differenzierte Dienste nach dem Stand der Technik ist;
-
3 ein
funktionelles Blockschaltbild eines typischen Ausgangs-Ports einer
in der Technik bekannten ATM-Vermittlung ist;
-
4 ein
funktionelles Blockschaltbild einer Telekommunikations-Vermittlung gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung ist;
-
5 ein
funktionelles Blockschaltbild ist, das die Vermittlung nach 4 in
einer auseinandergefalteten Ansicht zeigt;
-
6 ein
funktionelles Blockschaltbild des Austritts-Prozessors nach 5 ist;
-
7 ein
Ablaufdiagramm eines Teils der Aufgabe zum Einreihen in eine Warteschlange
nach 6 ist;
-
8 ein
funktionelles Blockschaltbild der Struktur von Warteschlangen und
Ablaufsteuerungen nach 6 ist; und
-
9 die
umkonfigurierbare Durchschalteinrichtung zeigt, die zum Durchschalten
der Warteschlangen und Ablaufsteuerungen nach 6 verwendet
wird.
-
1 ist
ein funktionelles Blockschaltbild einer generischen Vermittlung,
wie sie in der Technik bekannt ist. Ein Router zeigt ebenfalls die
gleiche Funktionalität
auf der Ebene der Einzelheiten, die in 1 gezeigt
ist. Die Vermittlung 10 schließt Eingangs-Ports 12, 14 ein,
die mit einer Vermittlungsstruktur 16 verbunden sind. Die
Vermittlungsstruktur ist mit Ausgangs-Ports 18, 20 verbunden.
Der Eingangs-Port 12 schließt eine Weiterleitungs-Einrichtung 22 ein,
die mit ihrem Eingang verbunden ist. Der Ausgangs-Port 18 schließt eine mit
seinem Eingang verbundene Warteschlangen-Einreihungs-Einrichtung 24,
Warteschlangen 26, die mit der Einreihungs-Einrichtung 24 verbunden
sind, und Ablaufsteuerungen 28 ein, die mit den Warteschlangen 26 verbunden
sind. Die Eingangs-Ports 12, 14 sind hinsichtlich
ihrer Struktur identisch. In gleicherweise haben die Ausgangs-Ports 18, 20 die
gleiche Struktur.
-
ATM-Zellen
in Fall einer ATM-Vermittlung oder IP-Pakete im Fall eines IP-Routers
kommen an dem Eingangs-Port an und werden an die Vermittlungsstruktur 16 weitergeleitet,
wo sie an den passenden Ausgangs-Port 18, 20 gelenkt
werden. Nachfolgend werden ATM-Zellen und IP-Pakete zusammen als
Protokolldaten-Einheiten
(PDUs) bezeichnet. Die Weiterleitungs-Einrichtung 22 führt ein
Nachschlagen für
den passenden Ausgangs-Port für
jede PDU aus. Im Fall einer Vermittlung, die verbindungsorientierte
PDUs abwickelt, hängt
das Nachschlagen in einer Tabelle von einer Verbindungs-Identifikation
(CI) ab. Im Fall eines Routers, der verbindungslose PDUs abwickelt,
hängt das
Nachschlagen von einer Ziel-Adresse ab, die in der PDU enthalten
ist. Allgemein kapselt die Weiterleitungs-Einrichtung 22 die
PDU mit einem Kopffeld ein, das die Information aus dem Nachschlagen
enthält
und sie leitet die eingekapselte PDU an die Vermittlungstruktur 16 weiter.
-
2 ist
ein funktionelles Blockschaltbild eines typischen Ausgangs-Ports 18' eines in der
Technik bekannten Routers zur Routenführung von für Differenzierte Dienste markierten
IP-Paketen. Anhand der 2 wird die Struktur und die
Betriebsweise des Ausgangs-Ports 18' beschrieben. Der Ausgangs-Port 18' schließt eine
Warteschlangen-Einreihungs-Einrichtung 24', die an seinem Eingang angeschlossen
ist, einen Satz von Warteschlangen 26', die mit der Einreihungs-Einrichtung 24' verbunden sind,
und eine Ablaufsteuerung 28' ein,
die mit dem Satz von Warteschlangen 26' verbunden ist. Die Einreihungs-Einrichtung 24' schließt einen Auswahl-Block 30 ein.
Aus Gründen
der Einfachheit schließt
bei diesem Beispiel der Satz von Warteschlangen 26' drei Warteschlangen 32, 34 und 36 ein.
Die Ablaufsteuerung 28' schließt eine
bewertete faire Warteschlangen-(WFQ-)Ablaufsteuerung 38 ein.
Im Betrieb empfängt
der Ausgangs-Port 18' eine eingekapselte
PDU 40 von der Vermittlungsstruktur 16. Die eingekapselte
PDU 40 hat ein Kopffeld, das ein Etikett (L) enthält, das
eine Klasse spezifiziert, zu der die PDU gehört. Die Einreihungs-Einrichtung 24' überprüft das Kopffeld
der eingekapselten PDU. Der Auswahl-Block 30 bestimmt,
in welche der Warteschlangen 32, 34, 36 die
PDU gesandt werden sollte, auf der Grundlage der Klasse der PDU.
Alternativ könnte
die Weiterleitungs-Einrichtung 22 diese Funktion der Einreihung
bereitstellen, das heißt
die Einreihung kann an der Eingangs- oder Ausgangs-Seite der Vermittlung
oder des Routers erfolgen. Typischerweise gibt es eine Warteschlange
pro Klasse. Die Ablaufsteuerung 38 bestimmt, von welcher
Warteschlange 32, 34, 36 die nächste auszusendende
PDU ausgewählt wird.
PDUs werden aus den Warteschlangen in einer FIFO-Basis ausgewählt, das
heißt
die erste eingeleitete PDU wird als erste ausgeleitet.
-
Typischerweise
wird eine WFQ-Ablaufsteuerung verwendet. Eine relative Wertigkeit
wird jeder der Ausgangs-Warteschlangen 32, 34, 36 zugeordnet.
Jedem angebotenen Dienst ist eine Warteschlange zugeordnet, so dass
jeder Dienst einen Anteil der Gesamt-Bandbreite erhält, die
die Warteschlangen 32, 34, 36 erhalten.
Dieser Anteil hängt
von der relativen Wertigkeit ab, die der speziellen Warteschlange
zugeordnet ist. Auf diese Weise ergibt eine differenzierte Dienste-Markierung
Dienst-Klassen.
Die Zustellung der PDUs erfolgt jedoch auf einer Grundlage besten
Bemühens
für alle
Dienst-Klassen. Weiterhin stehen, obwohl einem Dienst ein relativer
Anteil der Ausgangs-Port-Bandbreite zugeordnet ist, Pakete des gleichen
Dienst-Typs, die von unterschiedlichen Quellen ankommen, im Wettbewerb
für ihren
Anteil dieser Zuteilung. Damit wird einem Dienste-Teilnehmer kein
bestimmter Anteil dieser Zuteilung garantiert.
-
Ein
Beispiel eines Internet-Dienstes, der mit einem Netzwerk von derartigen
für differenzierte
Dienste kompatiblen Routern bereitgestellt werden könnte, ist
ein Klassen-basiertes virtuelles privates Netzwerk (CB-VPN). Beispielsweise
könnten
drei Klassen eines VPN-Dienstes bereitgestellt werden, die mit Gold,
Silber und Bronze bezeichnet sind. Die Gold-Klasse des VPN-Dienstes
würde einen
größeren Anteil
der Bandbreite als die Silber-Klasse des VPN-Dienstes haben, und
in gleicher Weise würde
der Silber-Klasse-VPN-Dienst einen größeren Teil der Bandbreite haben
als der Bronze-Klasse-VPN-Dienst. In dem Netzwerk würden PDUs von
jeder Dienst-Klasse (das heißt
Gold, Silber, Bronze) mit PDUs der gleichen Klasse in Warteschlangen
angeordnet werden. Beispielsweise würden PDUs von dem Gold-Klasse-VPN-Dienst
mit anderen PDUs der gleichen Klasse in die Warteschlange 32 nach 2 eingereiht
werden. Den Warteschlangen 32, 34, 36 ist
eine relative Wertigkeit zugeordnet, was zu einem relativen Anteil
der Bandbreite führt,
doch erfolgt die Zustellung der PDUs für alle Dienst-Klassen auf einer
Grundlage besten Bemühens.
Das heißt,
dass keine Menge an Bandbreite garantiert wird. Ein Kunde würde Teilnehmer
an einer der VPN-Dienste-Klassen sein, und ein bestimmtes VPN (das
heißt
VPNx) würde
diesem Kunden zugeordnet. Die PDUs von unterschiedlichen speziellen
VPNs in der gleichen Dienst-Klasse würden für ihren Anteil von Bandbreite
in dieser Klasse im Wettbewerb stehen. Somit könnte der Netzbetreiber, der
das CB-VPC seinen Kunden bereitstellt, eine Dienstgüte-Vereinbarung (SLA)
treffen, die die Verbindung durch das Netzwerk, die Klasse des VPN-Dienstes
und eine bestimmte Menge an Bandbreite spezifiziert, doch könnte das
Netzwerk diese Bandbreite für
den Kunden nicht garantieren.
-
Verbindungsorientierte
Protokolle, wie zum Beispiel Frame-Relay und ATM ergaben traditionell
QoS- und Verbindungs-basierte Verkehrs-Engineering-Fähigkeiten
in dem Netzwerk des Netzbetreibers. Im Fall von ATM schließt die QoS
vier Dienst-Typen ein, die sich allgemein auf Garantie beziehen,
die dem Benutzer bezüglich
der Zellen-Verzögerung,
der Bandbreite und des Zellen-Verlust-Verhältnisses gegeben werden. Diese Dienst-Typen
sind: konstante Bit-Rate (CBR), veränderliche Bit-Rate (VBR), verfügbare Bit-Rate
(ABR) und nicht spezifizierte Bit-Rate (UBR). Der spezielle Typ
des Dienstes wird zwischen dem Benutzer und der Netzwerk-Verbindungs-Zulassungs-Steuerung
(CAC) zu der Zeit ausgehandelt, zu der die Verbindung aufgebaut wird.
Eine spezielle Dienst-Typ-Anforderung für eine Verbindung kann zum
Zeitpunkt des Verbindungs-Aufbaus verweigert werden, wenn das Netzwerk
die erforderliche Menge an Bandbreite nicht bereitstellen kann. Sobald
eine Verbindung jedoch aufgebaut wurde, wird die Menge an Bandbreite,
die für
die Verbindung verfügbar
ist durch das Netzwerk garantiert.
-
3 ist
ein Blockschaltbild eines typischen Ausgangs-Ports 18'' einer in der Technik bekannten ATM-Vermittlung.
Anhand der 3 wird die Struktur und die
Betriebsweise des Ausgangs-Ports 18'' beschrieben.
Der Ausgangs-Port 18'' schließt eine
Einreihungs-Einrichtung 24'', die an seinem
Eingang angeschlossen ist, einen Satz von Warteschlangen 26'', die mit der Einreihung-Einrichtung 24'' verbunden sind, und eine Ablaufsteuerung 28'' ein, die mit dem Satz von Warteschlangen 26'' verbunden ist. Die Einreihungs-Einrichtung 24'' schließt einen Auswahl-Block 42 ein.
Der Satz von Warteschlangen 26'' schließt Verbindungs-Warteschlangen 44, 46 und
zusammengefügte
Verbindungs-Warteschlangen 48, 50 ein, die eine
CBR-Warteschlange 52 einschließen. Es
kann viele Verbindungs-Warteschlangen geben, doch sind aus Gründen der
Einfachheit nur zwei gezeigt. Die Verbindungs-Warteschlangen dienen zur Anordnung
von PDUs in Warteschlangen auf einer Grundlage pro Verbindung, während die
zusammengefügten
Verbindungs-Warteschlangen
zur Zusammenfügung
von PDUs des gleichen QoS-Typ (beispielsweise CBR, VBR, ABR, UBR)
von unterschiedlichen Verbindungen dienen. Typischerweise würde es eine
zusammengefügte
Verbindungs-Warteschlange für jeden
QoS-Typ geben. Die CBR-Warteschlange 52 dient zur Einreihung
aller der PDUs vom CBR-Typ, die in den Ausgangs-Port 18'' fließen, in eine Warteschlange.
Eine Verbindung wird einer Warteschlange zugeordnet, wenn die Verbindung
aufgebaut wird. Die Ablaufsteuerung 28'' schließt drei
Ebenen von Ablaufsteuerungen ein. Die erste Ebene umfasst eine Prioritäts-Ablaufsteuerung 58,
die mit der CBR-Warteschlange 52 verbunden ist, die die
höchste
Priorität
aufweist. Das heißt,
die Prioritäts-Ablaufsteuerung 58 versorgt
PDUs von der CBR-Warteschlange 52 mit Diensten, bevor irgendeine
der anderen Warteschlangen mit Diensten versorgt wird. Die zweite
Ebene umfasst eine WFQ-Ablaufsteuerung 56, die mit den
zusammengefügten
Verbindungs-Warteschlangen 48, 50 und der Prioritäts-Ablaufsteuerung 58 verbunden
ist. Die dritte Ebene umfasst eine weitere WFQ-Ablaufsteuerung 54, die mit
den Verbindungs-Warteschlangen 44, 46 und der
WFQ-Ablaufsteuerung 56 verbunden
ist.
-
Im
Betrieb kommt eine eingekapselte PDU 60 an dem Ausgangs-Port 18'' von der Vermittlungsstruktur 16 an.
Die PDU 60 schließt
eine Verbindungs-Identifikation (CI) ein, der ein Kontext zugeordnet
ist. Der Auswahl-Block 42 verwendet diesen Kontext, um
festzustellen, in welche der Warteschlangen 44–52 die
PDU gesandt werden sollte. Die Prioritäts-Ablaufsteuerung 58 bestimmt,
ob die CBR-Warteschlange 52 oder die WFQ-Ablaufsteuerung 56 mit
Diensten versorgt werden sollte. Die WFQ-Ablaufsteuerung 56 wird immer
dann mit Diensten versorgt, wenn die CBR-Warteschlange 52 leer ist.
Die WFQ-Ablaufsteuerung 56 versorgt die andere WFQ-Ablaufsteuerung 54 oder
eine der zusammengefügten
Verbindungs-Warteschlangen 48, 50 entsprechend
ihrer relativen Bewertung mit Diensten. In gleicher Weise versorgt
die andere WFQ-Ablaufsteuerung 54 eine der Verbindungs-Warteschlangen 44, 46 entsprechend
ihrer relativen Bewertung mit Diensten. Das heißt, dass die WFQ-Ablaufsteuerungen 54, 56 eine
bewertete faire Ablaufsteuerung ihrer jeweiligen Warteschlangen
ausführen.
-
Eine
ATM-Vermittlung ist zur Bereitstellung einer garantierten QoS bestimmt;
dies bedeutet in vielen Fällen
eine garantierte Bandbreite auf einer Grundlage pro Verbindung.
Wenn eine Quelle von Zellen die zugeteilte Informations-Rate (CIR)
ihrer Verbindung überschreitet,
so können
Zellen von anderen Quellen eine Beeinträchtigung ihrer QoS erfahren,
wenn die den Überschuss
aufweisende Quelle erfolgreich bei der Gewinnung von mehr als den
ihr zugeteilten Teil der Bandbreite ist. Beispielsweise könnte eine
Quelle für
Zellen physikalisch mit dem Eingangs-Port über eine OC-3-(155 Mbps-)Verbindungsstrecke
verbunden sein, jedoch lediglich eine CIR von 20 Mbps haben. Wenn
diese Quelle Zellen an den Eingangs-Port mit der OC-3-Rate sendet,
so könnte
dies die QoS anderer Quellen beeinträchtigen, die von der gleichen
Vermittlung mit Diensten versorgt werden. Hieraus folgt, das die
CIR auf der Grundlage pro Verbindung erzwungen oder durchgesetzt werden
muss.
-
Ein
Beispiel eines Internet-Dienstes, der von einem Netzwerk ATM-Vermittlungen
bereitgestellt werden könnte,
ist ein QoS-basierter VPN-(Q-VPN-)Dienst. Bei einem derartigen Dienst
wird die QoS für
das VPN ausgehandelt, wenn die Verbindungen hierfür aufgebaut
werden, und sie wird nachfolgend garantiert. Damit ein VPN nicht
in nachteiliger Weise andere Dienste-Vereinbarungen beeinflusst,
die an der Vermittlung getroffen wurden, muss die CIR des VPN in
der vorstehend beschriebenen Weise durchgesetzt werden.
-
In 4 ist
eine Telekommunikations-Vermittlung 100 gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung gezeigt. Die Vermittlung 100 ist
ein Mehrfach-Dienst-Vermittlungssystem mit Zugangs-Schnittstellen 102a, 102b, 102c,
die unterschiedliche Dienst-Typen unterstützen können, mit einer Vermittlungsstruktur 103 und
Netzwerk-Schnittstellen 104a, 104b, die unterschiedliche
Fernleitungs-Technologien unterstützen können. Drei Haupt-Datenstrom-Topologien 106, 108, 110 sind
ebenfalls gezeigt. Der erste Datenstrom 106 wird intern
zwischen den Zugangs-Schnittstellen 102a und 102b vermittelt.
Der zweite Datenstrom 108 bildet einen Ursprung und Abschluss
von Netzwerk-Verkehr, der zwischen der Zugangs-Schnittstelle 102c und
der Fernleitungs-Schnittstelle 104b verläuft. Der
dritte Datenstrom 110 umfasst Tandem-Verkehr, der zwischen
den Fernleitungs-Schnittstellen 104a und 104b verläuft und
daher weder von einer Zugangs-Schnittstelle
in der Vermittlung 100 ausgeht, noch an dieser endet.
-
Die
von der Vermittlung 100 unterstützten Dienste schließen verbindungsorientierte
und verbindungslose Dienste, beispielsweise ATM, Frame-Relay, IP-
und IP VPN-Dienste
ein. Die von der Vermittlung 100 unterstützte Dienste
erfordern Dienst-Klassen-(CoS-)
und Dienstgüte-(QoS-)Betriebsarten
der Verkehrs-Verwaltung. Die Vermittlung 100 ist in der
Lage, diese Betriebsarten gleichzeitig auf einer Zugangs-Schnittstelle 102 bereitzustellen.
Das heißt,
die Zugangs-Schnittstellen der Vermittlung 100 sind in
der Lage, ein Hybrid-Verhalten bezüglich der Verkehrs-Verwaltung zu schaffen.
Die Fernleitungs-Technologien, die durch die Netzwerk-Schnittstellen 104a, 104b unterstützt werden,
könnten
beispielsweise ATM oder MPLS sein.
-
5 ist
eine auseinandergefaltete Ansicht der Vermittlung 100 nach 4.
Die Vermittlung 100 schließt einen Eintritts-Prozessor 112 ein,
der mit einer Vermittlungsstruktur 103 verbunden ist, die
mit einem Austritts-Prozessor 114 verbunden ist. Der Verkehrsfluss 116 ist
so gezeigt, dass er in den Eintritts-Prozessor 112 eintritt,
durch die Vermittlungsstruktur 103 verläuft und aus dem Austritts-Prozessor 114 austritt.
-
Die
Funktionalität
der Vermittlung 100 ist in die Weiterleitung, Vermittlung
und die Verkehrs-Verwaltung aufgeteilt, die durch den Eingangs-Prozessor 112,
die Vermittlungsstruktur 103 bzw. den Austritts-Prozessor 114 ausgeführt wird.
-
Der
Eintritts-Prozessor 112 analysiert jede ankommende Protokolldaten-Einheit,
um festzustellen, zu welchem Dienst sie gehört. Beispielsweise könnte eine
Protokolldaten-Einheit zu einem virtuellen ATM-Trägerkanal
oder zu einem IP/MPLS-etikettvermittelten
Pfad gehören.
Der Eintritts-Prozessor 112 führt dann ein Nachschlagen der
Schicht-3-Netzwerk-Adresse oder des Schicht-2-Etiketts (wie für den Dienst
passend) aus, um einen Ziel-Port innerhalb der Vermittlung 100 zu
bestimmen. Der Ziel-Port würde
eine der Zugangs-Schnittstellen 102a, 102b, 102c oder
der Netzwerk-Schnittstellen 104a, 104b sein. Ein
internes Einkapselungs- Protokoll
wird von der Vermittlungsstruktur 103 verwendet, um die
Routenführung
der Protokolldaten-Einheiten zu bewirken. Der Eintritts-Prozessor 112 kapselt
die Protokolldaten-Einheit mit einer Vermittlungs-Marke ein, und die
eingekpaselte Protokolldaten-Einheit wird in eine Warteschlange
eingereiht, um auf die Übertragung über die
Vermittlungsstruktur 103 zu warten. Die Vermittlungs-Marke
schließt
Information des Ziel-Ports innerhalb der Vermittlung 100 sowie
Dienst-bezogene Information ein. Die Vermittlung 100 unterstützt eine
Zellen-(beispielsweise ATM-)und Paket-(beispielsweise IP-)Vermittlung.
Für die
letztere wird ein Segmentierungs-Neuzusammenfügungs-Protokoll über die
Vermittlungsstruktur 103 hinweg verwendet, um Protokolldaten-Einheiten für die Vermittlung
zu segmentieren. Diese Segmentierung wird durchgeführt, um
die Latenz von einem eine hohe Priorität aufweisenden Verkehr zu steuern.
Die vorstehend beschriebene Funktionalität wird allgemein als „Weiterleitung" bezeichnet.
-
Die
Vermittlungsstruktur 103 ist dienstunabhängig. Sie
arbeitet mit dem internen Einkapselungs-Protokoll, um Protokolldaten-Einheiten
zu ihrem Ziel-Port zu lenken. Die Vermittlungsstruktur 103 ergibt
eine grundlegende absolute Prioritäts-Behandlung, das heißt, sie trennt Verkehr in eine
kleine Anzahl von Warteschlangen. Die Funktion der Vermittlungsstruktur 103 kann
als ein gemeinsamer Speicher-Puffer,
als verteilter Speicher, als reiner räumlicher Bus oder als eine
Kombination hiervon implementiert werden, wie dies in der Technik
bekannt ist.
-
Der
Austritts-Prozessor 114 analysiert die von der Vermittlungsstruktur 103 empfangenen
Protokolldaten-Einheiten, um die erforderliche Art der Ablaufsteuerungs-
und Warteschlangen-Behandlung zu bestimmen. Beispielsweise ist diese
Behandlung eine von Folgenden: Warteschlangen-Bildung pro Verbindung
oder Warteschlangen-Bildung pro zusammengefügter Verbindung für ATM-Verkehr;
Warteschlangen-Bildung pro Klasse für IP-Verkehr; und Klassen-Teil-Warteschlangen-Bildung
pro Datenstrom auf einer Basis pro VPN für IP VPN-Verkehr. Der Austritts-Prozessor 114 markiert
eine Protokolldaten-Einheit für
die Behandlung unter Verwendung einer Datenstrom-Identifikation
und einer Warteschlangen-Identifikation, wodurch die Funktionen
der Warteschlangen-Bildung von der Datenstrom-Verwaltung getrennt
werden.
-
6 ist
ein funktionelles Blockschaltbild des Austritts-Prozessors 114.
Die Figur zeigt die Haupt-Funktions-Blöcke des Austritts-Datenpfades
und identifiziert den Fluss von Daten zwischen diesen. Eine Vermittlungsstruktur-Schnittstelle 120 überträgt Protokolldaten-Einheiten
von einer Vermittlungsstruktur-Verbindungsstrecke 118 zu
einem Daten-Puffer 122. Der Daten-Puffer 122 überträgt Protokolldaten-Einheiten
zu einem Prozessor 124, empfängt Protokolldaten-Einheiten
von dem Prozessor 124 und überträgt Protokolldaten-Einheit-Bezugnahmen
auf eine Struktur 128 von Warteschlangen und Ablaufsteuerungen.
Die Struktur 128 von Warteschlangen und Ablaufsteuerungen
fordert die Übertragung
von Protokolldaten-Einheiten
auf eine Austritts-Verbindungsstrecke 130 an. Obwohl 6 eine
Vermittlungsstruktur-Verbindungsstrecke 118 und eine Austritts-Verbindungsstrecke 130 zeigt,
gibt es üblicherweise
eine Vielzahl derartiger Verbindungsstrecken. Beispielsweise gibt
es bei der vorliegenden Ausführungsform
achtundvierzig derartiger Verbindungsstrecken. Entsprechend haben
der Daten-Puffer 122, der Prozessor 124 und die
Struktur 128 von Warteschlangen und Ablaufsteuerungen eine
entsprechende Fähigkeit,
die durch eine Zeit-Teilung bereitgestellt wird, um achtundvierzig
parallele Daten-Pfade zu unterstützen.
Alternativ zur Zeit-Teilung könnten
der Daten-Puffer 122, der Prozessor 124 und die
Struktur 128 von Warteschlangen und Ablaufsteuerungen eine
Breite von achtundvierzig parallelen Daten-Pfaden haben.
-
Die
Vermittlungsstruktur-Schnittstelle 120 schließt den Verkehrsfluss 116 von
Protokolldaten-Einheiten von der Vermittlungsstruktur 103 ab
und führt
eine Datenübertragungs-Raten-Anpassung
aus. Die Protokolldaten-Einheiten werden in den Daten-Puffer 122 überführt, in
dem eine Neuzusammenfügung
der segmentierten Protokolldaten-Einheiten erfolgt. Neuzusammengefügte Protokolldaten-Einheiten
werden in dem Prozessor 124 eingeleitet, wo sie einer Einreihungs-Aufgabe 126 in
eine Warteschlange zugeführt
werden. Die Einreihungs-Aufgabe 126 analysiert jede Protokolldaten-Einheit,
um deren Dienst zu ermitteln und um die Protokolldaten-Einheit für eine Warteschlangen-Bildung-
und Ablaufsteuerung s-Behandlung
zu klassifizieren. Die Einreihungs-Aufgabe 126 ergibt weiterhin
eine Einkapselung jeder Protokolldaten-Einheit für deren Übertragung auf die Austritts-Verbindungsstrecken 130.
Beispiele der Dienst- und Protokolldaten-Einheit-Klassifizierung sind in 7 angegeben.
ATM-Träger-Verkehr
ist in der Lage, die Einreihungs-Aufgabe 126 zu umgehen, weil
das Verbindungs-Nachschlagen und der Kontext vollständig innerhalb
des Daten-Puffer-Blockes 122 bereitgestellt werden können. ATM-Verkehr
kann jedoch auch ebenfalls der Einreihungs-Aufgabe 126 zugeführt werden.
-
Der
Daten-Puffer 122 empfängt
klassifizierte Protokolldaten-Einheiten von dem Prozessor 124 und kombiniert
sie mit dem durchlaufenden ATM-Verkehr. Ein Protokolldaten-Einheits-Bezug
(üblicherweise
ein Puffer-Speicher-Zeiger) wird in die Struktur 128 von
Warteschlangen und Ablaufsteuerungen weitergeleitet. Jeder Protokolldaten-Einheit-Bezug
ist mit einer Warteschlangen-Identifikation markiert, die sie in
eine Warteschlange lenkt. Die Protokolldaten-Einheit-Bezugnahmen
werden weiterhin mit einer Datenstrom-Identifikation markiert, die
sie einen Datenstrom-Kontext
zuordnet. Der Datenstrom-Kontext ist für mehrere Zwecke nützlich, wobei
einer hiervon die Abrechnung ist. Diese Trennung der Warteschlangen-
und Datenstrom-Identifikation ermöglicht es, dass sowohl eine
Klassen-Warteschlangen-Bildung
als auch eine Warteschlangen-Bildung pro Datenstrom ohne Verlust
der Granularität
für eine
Datenstrom-basierte Abrechnung ausgeführt wird. Zusätzlich ermöglicht dies
einen Dienst mit Klassen-basierten Teil-Strömen, jedoch mit einer zusammengefassten Abrechnung.
Schließlich
fordert die Struktur 128 von Warteschlangen und Ablaufsteuerungen
eine Protokolldaten-Einheit für
die Verbindungsstrecken-Übertragung
an, wenn ihr entsprechender Protokolldaten-Einheit-Bezug das Kopfende seiner Warteschlange
erreicht und für
die Übertragung
vorgesehen wird. Der Austritts-Prozessor 114 sendet die
Protokolldaten-Einheit dann auf die Austritts-Verbindungsstrecke 130.
-
Die
Protokolldaten-Einheiten werden für eine Übertragung zwischen den Funktions-Blöcken der
Blöcke
des Austritts-Prozessors 114 segmentiert. Diese Segmentierung
erfolgt in einer derartigen Weise, dass die Verzögerungs-Prioritäten der
Protokolldaten-Einheiten beibehalten werden; auf diese Weise wird
es Segmenten höherer
Priorität
ermöglicht,
Segmenten niedriger Priorität
zuvorzukommen. Es sei jedoch bemerkt, dass diese Segmentierung nicht
absolut erforderlich ist, jedoch wünschenswert ist.
-
7 ist
eine Ablaufdiagramm einer Ausführungsform
der Einreihungs-Aufgabe 126 nach 6. Das Verfahren
der Einreihungs-Aufgabe 126 schließt einen Dienst-Bestimmungsschritt 132 gefolgt
von einem Datenstrom-Bestimmungsschritt 134 und abgeschlossen
durch einen Warteschlangen-Bestimmungsschritt 136 ein.
Wie dies weiter oben erwähnt
wurde, ist jeder Protokolldaten-Einheit-Bezug mit einer Datenstrom-Identifikation
und einer Warteschlangen-Identifikation markiert. Diese Markierung
kann entweder am Ende aller der Bestimmungsschritte oder nach dem
Bestimmungsschritt erfolgen, der dem Typ der Identifikation entspricht (das
heißt
einem Datenstrom oder einer Warteschlange).
-
Eine
mit einer Vermittlungs-Marke (T) eingekapselte Protokolldaten-Einheit 140 wird
in die Einreihungs-Aufgabe 126 eingegeben. Die Protokolldaten-Einheit
wird im Schritt 138 für
eine weitere Überprüfung der
Vermittlungs-Marke (T) analysiert. Der Dienst wird im Schritt 132 durch Überprüfen der
Vermittlungs-Marke (T) bestimmt, die den der Protokolldaten-Einheit
zugeordneten Dienst anzeigt. Der Dienst ist einer von verschiedenen
vorgegebenen Diensten, für
deren Unterstützung
die Vermittlung 100 konfiguriert wurde. Beispielsweise
zeigt 7, dass der Dienst einer von ATM, IP oder IP VPN
ist; die Erfindung ist jedoch nicht auf die Unterstützung dieser
Dienste beschränkt.
-
Nachdem
der Dienst bestimmt wurde, wird der Datenstrom im Schritt 134 durch Überprüfen der
Vermittlungs-Marke (T) bestimmt, die den der Protokolldaten-Einheit
zugeordneten Datenstrom anzeigt. Der Datenstrom ist einer von mehreren
vorgegebenen Datenströmen,
für dessen
Unterstützung
die Vermittlung 100 konfiguriert wurde. Beispielsweise
zeigt 7 zusammengefügte
Verbindungs- und Verbindungs-Datenströme, die mit ATM-Diensten verbunden
sind, einen differenzierten IP-Diensten zugeordneten Datenstrom
und VPN1 bis VPNn-Datenströme, die
IP VPN-Diensten zugeordnet sind. Der Protokolldaten-Einheit-Bezug kann nach diesem
Schritt oder alternativ nach der Bestimmung der Warteschlange mit
einer Datenstrom-Identifikation markiert werden.
-
Nachdem
der Datenstrom bestimmt wurde, wird die Warteschlange im Schritt 136 durch Überprüfen der
Vermittlungs-Marke (T) bestimmt, die die Warteschlange anzeigt,
die der Protokolldaten-Einheit zugeordnet ist. Die Warteschlange
ist eine von mehreren vorgegebenen Warteschlangen, mit denen die
Vermittlung 100 konfiguriert wurde. Beispielsweise zeigt 7 Warteschlangen,
die zusammengefügten
ATM-Verbindungs-Datenströmen auf
einer QoS-Basis zugeordnet sind, und Warteschlangen, die ATM-Verbindungs-Datenströmen auf
einer Grundlage pro Verbindung zugeordnet sind. Die Figur zeigt
weiterhin Warteschlangen, die differenzierten IP-Dienst-Klassen
(beispielsweise Gold, Silber, Bronze) auf einer Grundlage pro Klasse
zugeordnet sind. Schließlich
zeigt die Figur Warteschlangen, die IP VPN-Datenströmen auf
einer Grundlage pro Teil-Datenstrom zugeordnet sind. Das heißt, dass
eine Warteschlange einer einzelnen Dienstklasse (beispielsweise
beschleunigt, Gold, Silber, Bronze) innerhalb eines spezifischen
IP VPN zugeordnet ist. Jeden Protokolldaten-Einheit-Bezug ist eine
Warteschlangen-Identifikation und eine Datenstrom-Identifikation,
wenn nicht bereits zugeordnet, nach dem Warteschlangen-Bestimmungs-Schritt 36 zugeordnet,
jedoch bevor er an die Struktur 128 von Warteschlangen
und Ablaufsteuerungen überführt wird.
-
8 ist
ein funktionelles Blockschaltbild der Struktur 128 von
Warteschlangen und Ablaufsteuerungen nach 6. Die Struktur 128 schließt eine
Vielzahl von Warteschlangen 142, die Gruppen von Warteschlangen 142a, 142c, 142d einschließen, und
eine Anzahl von Ablaufsteuerungen 144 ein. Die Ablaufsteuerungen
umfassen Ablaufsteuerungs-Module 144a, 144c, 144d,
die jeweils eine Prioritäts-Ablaufsteuerung
(P) und eine WFQ-Ablaufsteuerung (W) einschließen. Die Warteschlangen 142 sind
als Puffer implementiert, und die Ablaufsteuerungen 144 sind
als Zustandsmaschinen auf einer integrierten Schaltung implementiert.
Die Warteschlangen 142 und Ablaufsteuerungen 144 können so
miteinander verbunden werden, dass sie eine Vielzahl von Diensten
unterstützen.
Die Pfeile in 8 zeigen logische Zuordnungen
oder Zuteilungen, die Warteschlangen mit Ablaufsteuerungen verbinden
und Ablaufsteuerungen miteinander in einer Ablaufsteuerungs-Hierarchie
verbinden. Im einzelnen kann die Struktur nach Bedarf konfiguriert
und umkonfiguriert werden, um gleichzeitig eine Klassen-basierte
Warteschlangen-Bildung
und Ablaufsteuerung, eine Verbindungs-basierte Warteschlangen-Bildung
und Ablaufsteuerung und eine Kombination von einer Klassen- und Verbindungsbasierten
Warteschlangen-Bildung und Ablaufsteuerung zu unterstützen. Beispiele
der Dienste, die die vorstehenden Arten von Warteschlangen-Bildung
und Ablaufsteuerung erfordern, wurden anhand der Diskussion der 7 gegeben.
Die Anzahl von Warteschlangen 142 und Ablaufsteuerungen 44 liegt
in der Größenordnung
von Tausenden, so dass eine große
Anzahl von unterschiedlichen Diensten durch die Vermittlung 100 unterstützt werden
kann.
-
Gemäß 8 dient
die Gruppe von Warteschlangen 142a, die mit der Prioritäts-Ablaufsteuerung (P) des
Ablaufsteuerungs-Moduls 144a verbunden ist, für die Warteschlangen-Bildung
für die
absolute Prioritäts-FIFO-Klasse.
Diese Art der Warteschlangen-Bildung wird typischerweise für einen
Echtzeit-Verkehr mit niedriger Verzögerung und für Steuer-Verkehr
verwendet. Beispiele von Diensten, die diesen Warteschlangen 142a zugeordnet
sind, sind ATM CBR und beschleunigter IP-Verkehr. Die PRI-Ablaufsteuerung (P)
des Ablaufsteuerungs-Moduls 144a teilt die Verbindungsstrecken-Bandbreite
in einer strikten Prioritäts-Reihenfolge
(das heißt
von A1 bis Aj) der Gruppe von Warteschlangen 142a zu.
-
Die
Gruppe von Warteschlangen 142b, die mit der WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144a verbunden ist, dient
zur zusammengefügten
Verbindungs- und Klassen-Warteschlangen-Bildung. Die WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144a teilt Wertigkeiten
(das heißt einen
definierten Anteil) der Verbindungsstrecken-Bandbreite zu, oder
sie kann eine explizite minimale Bandbreite zuteilen. Wenn die WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144a arbeitssparend
ist, so nutzt sie außerdem
nicht zugeteilte oder unbenutzte Bandbreite zwischen der Gruppe
von Warteschlangen 142b. Der Ausgang der WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144a ist mit der Prioritäts-Ablaufsteuerung
(P) des gleichen Moduls verbunden. Die anderen Ablaufsteuerungs-Module 144c, 144d sind
in dieser Hinsicht gleich. Es sei bemerkt, dass nachdem die Prioritäts-Ablaufsteuerung
(P) des Ablaufsteuerungs-Moduls 144a die Bandbreite der
Gruppe von Warteschlangen 142a zugeteilt hat, die WFQ-Ablaufsteuerung (W)
des gleichen Moduls Bandbreite der Gruppe von Warteschlangen 142b und
dem Ablaufsteuerungs-Modul 144c zuteilt.
-
Die
Gruppe von Warteschlangen 142c, die mit der WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144c verbunden ist, dient
für Verbindungs-basierte
Dienste, die eine explizite Bandbreiten-Garantie für eine einzelne
Verbindung haben. Beispiele von Diensten, die diesen Warteschlangen
zugeordnet sind, sind Warteschlangen-Dienste für ATM-Verbindungen und ATM-Dienste.
Der Unterschied zwischen der Gruppe von Warteschlangen 142b und
der Gruppe von Warteschlangen 142c besteht darin, dass
jede Warteschlange in der ersteren Gruppe Datenströme in der
gleichen Warteschlange zusammenfügt,
während
jede Warteschlange in der letzteren Gruppe einen einzigen Datenstrom
in der Warteschlange anordnet. Die Gruppe von Warteschlangen 142c wird
durch die WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144c mit Diensten versorgt.
Der Ausgang des Ablaufsteuerungs-Moduls 144c ist mit der
WFQ-Ablaufsteuerung (W) des Ablaufsteuerungs-Moduls 114a verbunden.
-
Die
Gruppe von Warteschlangen 142d und das Ablaufsteuerungs-Modul 144d sind
einem IP VPN-Dienst zugeordnet, der Klassen-basierte Teil-Ströme hat.
Dem IP VPN-Dienst (IP VPNx) wird eine garantierte minimale Bandbreite über die
WFQ-Ablaufsteuerung
(W) des Ablaufsteuerungs-Moduls 144a und 144c bereitgestellt.
Das Ablaufsteuerungs-Modul 144d teilt Bandbreite innerhalb
des IP VPN-Dienstes (IP VPNx) seinen Klassen-basierten Teil-Strömen zu.
Dieses Diagramm zeigt an, dass der IP VPN-Dienst (VPNx) eine Echtzeit-Prioritäts-Klasse
(exp.) unterstützt,
die mit der Prioritäts-Ablaufsteuerung
(P) des Ablaufsteuerungs-Moduls 144d verbunden ist, sowie
drei bewertete Klassen-basierte Teil-Ströme (G, S, B), die mit der WFQ-Ablaufsteuerung (W)
des Ablaufsteuerungs-Moduls 144d verbunden sind. Die WFQ-Ablaufsteuerung (W)
des Ablaufsteuerungs-Moduls 144d wird zur Bereitstellung
einer bewerteten Zuteilung von Bandbreite verwendet, die für den IP
VPN-Dienst (IP VPNx) über
dessen Klassen-basierte Teil-Ströme
(G, S, B) hinweg garantiert wird.
-
Anhand
der 8 wird nunmehr ein Beispiel einer Warteschlangen-Identifikations- und Datenstrom-Identifikations-Zuordnung
zu einem Protokolldaten-Einheit-Bezug beschrieben. Einzelnen Warteschlangen
in den Gruppen von Warteschlangen 142a, 142b, 142c und 142d wurden
jeweilige Marken A1 bis Aj, B1 bis Bn, C1 bis Cn und D1 bis D4 zugeordnet.
Die Indices j, m und n sind ganze Zahlen, wobei j größer oder gleich
eins ist, m größer oder
gleich drei ist, und n größer oder
gleich eins ist. Der folgende Pseudo-Code erläutert das Verfahren zur Zuordnung
der Datenstrom- und Warteschlangen-Identifikationen. in dem nachfolgenden
Beispiel bezeichnet ein Semikolon das Ende einer einzelnen Anweisung,
und wo ein Doppelpunkt verwendet wurde, bezeichnet eine „Ende"-Anweisung das Ende
einer Folge von mehrfachen Anweisungen, die in einem Zweig einer
bedingten Anweisung (beispielsweise end if) enthalten sind.
-
-
-
Anhand
der 8 und 9 wird die Verbindung der Warteschlangen 142 und
Ablaufsteuerungen 144 miteinander beschrieben. Die Struktur 128 von
Warteschlangen 142 und Ablaufsteuerungen 144 schließt eine
umkonfigurierbare Durchschalteinrichtung 146 ein. Die umkonfigurierbare
Durchschalteinrichtung 146 schließt eine verkettete Liste 148, 150 ein.
Um die Verkettung zu erzielen, werden die Warteschlangen 142 und Ablaufsteuerungen 144 in
Ausdrücken
von Eltern- und Kind-Beziehungen definiert, wobei Eltern immer eine Ablaufsteuerung
sind, und ein Kind dieser Eltern eine andere Ablaufsteuerung oder
eine Warteschlange sein kann. Die Beziehungen sind als Pfeile in 9 gezeigt.
Ein durchgezogener Pfeil bezeichnet eine Eltern-zu-Kind-Beziehung,
ein gestrichelter Pfeil bezeichnet eine Kind-zu-Eltern-Beziehung,
und ein punktierter Pfeil bezeichnet eine Beziehung zwischen Kindern.
Beispielsweise bildet die Prioritäts-Ablaufsteuerung P144 des Ablaufsteuerungs-Moduls 144a Eltern
für die
Gruppe von Warteschlangen 142a und eine WFQ-Ablaufsteuerung
W144 des Ablaufsteuerungs-Moduls 144a.
In gleicher Weise ist die WFQ-Ablaufsteuerung W144 Eltern
für die
Gruppe von Warteschlangen 144b.
-
Die
Prioritäts-Ablaufsteuerung
P144 verwendet eine verkettete Liste 148 zur
Ablaufsteuerung ihrer Kinder. Ein Zeiger oder Zeiger definieren
die Liste 148, wobei ein Zeiger ein Index ist, der in eindeutiger
Weise ein bestimmtes Kind identifiziert. Gemäß 9 sind die
Zeiger p0 bis p3 den Warteschlangen A1 bis A3 bzw. der WFQ-Ablaufsteuerung
W144 zugeordnet. Jedes Kind hat weiterhin
einen Zeiger (p), der seine Eltern anzeigt, die Prioritäts-Ablaufsteuerung
P144. Wenn ein Kind keine Daten für die Ablaufsteuerung
hat, so ist es in der Liste der Eltern als keinen Dienst erfordernd
identifiziert. Wenn ein derartiges Kind Daten empfängt, muss
es seine Eltern benachrichtigen, um in der Liste 148 als
einen Dienst erfordernd identifiziert zu werden. Jedes Kind verwendet
seinen Eltern-Zeiger (p) für
diesen Zweck. Die Kinder werden in der Priorität-Reihenfolge von der höchsten bis
zur niedrigsten Priorität
(das heißt
p0 bis p3) mit Diensten versorgt. Im einzelnen versorgt die Prioritäts-Ablaufsteuerung P144 alle verfügbaren Daten des die höchste Priorität aufweisenden
Kindes mit verfügbaren
Daten mit Diensten, bevor sie zur Versorgung des die nächst niedrigere
Priorität
aufweisenden Kindes mit verfügbaren
Daten übergeht.
Zusätzlich
wird, wenn Eltern den letzten Teil der Daten für ein Kind mit Diensten versorgen,
der Eintrag des Kindes in der Liste 148 aktualisiert, um
anzuzeigen, dass ein Dienst für
dieses Kind derzeit nicht erforderlich ist. 9 zeigt
die verkettete Liste 148 für die Prioritäts-Ablaufsteuerung
P144, wobei die Warteschlangen A1, A2 und
die WFQ-Ablaufsteuerung
W144 Daten aufweisen, was mit einem „Y" in der Figur bezeichnet
ist, und somit einen Dienst erfordern. Die Warteschlange A3 ist
so gezeigt, als ob sie keine Daten hat, was durch ein „N" in der verketteten
Liste 148 bezeichnet ist, so dass diese Warteschlange derzeit
keine Dienste erfordert.
-
Die
WFQ-Ablaufsteuerung W144 verwendet ebenfalls
eine verkettete Liste 150 für die Ablaufsteuerung ihrer
Kinder. Lediglich Kinder, die einen Dienst erfordern (das heißt verfügbare Daten
haben) sind in dieser Liste enthalten. 9 zeigt
die verkettete Liste 150 für die WFQ-Ablaufsteuerung W144, wobei die Warteschlangen B1 und B2 verfügbare Daten
haben, während
die Warteschlange B3 so gezeigt ist, dass sie keine verfügbaren Daten
hat. Ein Zeiger oder Zeiger definieren die Liste, wobei ein Zeiger
ein Index ist, der in eindeutiger Weise ein bestimmtes Kind identifiziert.
Jedes Kind hat weiterhin einen Geschwister-Zeiger (s), der das nächste Geschwister-Kind
in der Liste 150 identifiziert. Beispielsweise hat das
Ablaufsteuerungs-Modul 144a einen Kopffeld-Zeiger (H),
der der Warteschlange B1 in seiner verketteten Liste zugeordnet
ist. Die Warteschlange B1 hat einen Geschwister-Zeiger (SB1), der
der Warteschlange B2 zugeordnet ist, die das nächste Geschwister-Kind in der
Liste 150 ist. Die Warteschlange B2 hat einen Geschwister-Zeiger
(SB2), der auf „Null" gesetzt ist, weil die
Warteschlange B3 in diesem Beispiel keine verfügbaren Daten hat. Die WFQ-Ablaufsteuerung
W144 weiterhin einen Nachlauf-Zeiger (T)
auf, der der letzten Warteschlange in der Gruppe von Warteschlangen
zugeordnet ist, die Dienste erfordern, in diesem Fall der Warteschlange
B2. Wenn ein Kind keine der Ablaufsteuerung zu unterwerfenden Daten
hat, so wird es aus der Liste der Eltern entfernt. Wenn ein derartiges
Kind Daten empfängt,
muss es seine Eltern benachrichtigen, um in die Liste seiner Eltern
eingefügt
zu werden. Jedes Kind hat einen Eltern-Zeiger (p) für diesen
Zweck. Beispielsweise hat jede Warteschlange B1 bis B3 einen Zeiger (p)
zu seinen Eltern, der WFQ-Ablaufsteuerung W144.
Die WFQ-Ablaufsteuerung
W144 versorgt jedes der Kinder in seiner
Liste 150 auf einer Grundlage einer bewerteten fairen Warteschlangen-Bildung.
Das heißt,
dass jedes Kind auf der Liste entsprechend einem Bewertungsfaktor
mit Diensten versorgt wird, der dem Kind zugeordnet ist, wodurch
die Menge an Bandbreite, die das Kind erhält proportional zu dem Bewertungsfaktor
ist. Wenn Eltern den letzten Teil von Daten für ein Kind mit Diensten versorgen,
so wird der Eintrag für
das Kind in der Liste 150 entfernt.
-
Vielfältige Modifikationen,
Abänderungen
und Anpassungen können
an den speziellen vorstehend beschriebenen Ausführungsformen der Erfindung
durchgeführt
werden, ohne von dem Schutzumfang der Erfindung abzuweichen, der
in den Ansprüchen
definiert ist.