-
Verfahren
zur zeitlichen Steuerung der Ausgabe von Datenpaketen aus Netzknoten,
Netzknoten und konfiguriertes Netz Die Erfindung betrifft ein Verfahren
zur zeitlichen Steuerung der Ausgabe von Datenpaketen aus Netzknoten,
einen gemäß dem Verfahren
gesteuerten Netzknoten und ein Netz, das nach dem Verfahren gesteuerte
Netzknoten aufweist.
-
In
einem Netz zu Datenübertragungszwecken
wird ein Punkt, an welchem verschiedene Datenübertragungsstrecken zusammenlaufen,
als Netzknoten bezeichnet. Ein Netzknoten kann durch unterschiedliche
Netzelemente wie beispielsweise Router (d.h. Datenpaketvermittler),
Switches (d.h. Schalter), Bridges (d.h. Brücken), Gateways (d.h. Netzschnittstellen)
oder Hubs (Systemkonzentratoren oder Sternverteiler) realisiert
sein.
-
Je
nach Ausführung
eines Netzknotens weist dieser Vermittlungsaufgaben (Router) auf,
führt eine Protokollumsetzung
durch (Gateway) oder bewirkt eine hardwarebasierte Netzkopplung
(Bridge, Switch, Hub) unter Auswertung von Adressinformationen der
einzelnen Datenpakete. Gemeinsam sind den unterschiedlichen Realisierungsformen
jedoch, daß an
einem oder mehreren Eingängen
des betrachteten Netzknotens Datenpakete einlaufen und an einem
oder mehreren Ausgängen
des Netzknotens nach einer gewissen Verweilzeit in dem Netzknoten
ausgegeben werden. Jedem Ausgang ist eine Schnittstelle mit fester Übertragungsrate
zugeordnet.
-
Ein
gravierendes Problem in paketvermittelnden Datennetzen sind unterschiedliche
Lauf- oder Verzögerungszeiten
(Delays) der Datenpakete eines Datenstroms zwischen einem festen
Sender und einem festen Empfänger.
Schwankungen der Verzögerungszeit
eines Datenstroms werden als Jitter bezeichnet. Für zeitkritische
Anwendungen wie z.B. Sprach- oder Audio/Videoübertragungen z.B. über Internet
ist es wichtig, Mechanismen bereitzustellen, welche sowohl die Verzögerungszeit
als auch den Jitter begrenzen.
-
Eine
bekannte Maßnahme
zur Reduzierung von Jitter in einem Netzknoten besteht in der Nutzung eines
Pufferspeichers zwischen dem Eingang und dem Ausgang des Netzknotens.
Der Pufferspeicher ist in der Lage, so viele Datenbits zwischenzuspeichern,
wie in der Zeit des längsten
anzunehmenden Jitters eintreffen. Bei diesem Verfahren wird eine
Verweilzeit D in dem Netzknoten definiert und die Ankunftszeit a(p)
eines jeden Datenpakets p am Eingang des Netzknotens notiert. Für jedes
Datenpaket wird dann ein Ausgabezeitpunkt a(p)+D berechnet, und
jedes Datenpaket wird später
exakt nach Ablauf der Verweilzeit D am Ausgang des Netzknotens ausgegeben.
Dies ermöglicht
einen nahezu kontinuierlichen, jitterfreien Datenstrom am Ausgang
des Netzknotens. Nachteilig bei diesen Verfahren ist jedoch, daß die Berechnung
des Ausgabezeitpunktes („Scheduling") und die Weitergabe
jedes Datenpaketes individuell erfolgen muß, was einen hohen Aufwand
erfordert. Ferner können
für eine
effektive Jitterbegrenzung relativ lange Verweilzeiten D im Netzknoten
erforderlich werden. Dies erhöht
die Gesamtverzögerungszeit
(Delay) im Datennetz.
-
In
der europäischen
Patentanmeldung
EP
0 710 046 A2 wird eine Einrichtung zur Weitergabe von ATM
(Asynchronous Transfer Mode) Zellen aus einer Vielzahl von einlaufenden
Datenströmen
beschrieben. Bei Erhalt einer Zelle identifiziert die Einrichtung, zu
welcher virtuellen Verbindung die Zelle gehört. Gleichzeitig wird anhand
des Füllstands
der dieser virtuellen Verbindung zugeordneten Warteschlange überprüft, ob diese
aktiv oder inaktiv ist. Sofern die Warteschlange aktiv ist, wird
eine Ausgabezeit für
die nächste
Zelle dieser virtuellen Verbindung berechnet. Die Berechnung erfolgt
in Abhängigkeit
von dem Zeitpunkt der letzten Ausgabe einer Zelle und einer Steuergröße, die
angibt, wie viele aufeinander folgende Zellen bei maximaler Ausgaberate
aktuell abgegeben werden können.
-
In
der Druckschrift „Dynamic
Queue Length Thresholds for Scheduling Real-Time Traffic in ATM Networks", C. Lin et al.,
IEEE ICC'99, 1999,
Seiten 869 bis 874, ist ein Verfahren zur Ausgabe von Datenpaketen
bei einer Mehrzahl von Warteschlangen eines Netzknotens beschrieben,
welches auch als QLT-Scheduling-Verfahren
(Queue Length Threshold) bezeichnet wird. Dabei wird der aktuelle
Füllstand
O(i) einer Warteschlange i eines Netzknotens bestimmt. Der Füllstand
O(i) wird mit einem Schwellwert THi für den Füllstand
der Warteschlange i verglichen. Wenn der aktuelle Füllstand
O(i) größer gleich dem
Schwellwert THi ist und der Füllstand
O(j) jeder Warteschlange j (mit 1 ≤ j < i) kleiner als
der Warteschlangen-spezifische Schwellwert THj ist,
werden die Datenpakete der Warteschlange i in das Netzwerk gespeist.
-
Der
Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Vorrichtung
zur zeitlichen Steuerung der Ausgabe von Datenpaketen aus einem
Netzknoten zu schaffen, welches bzw. welche auf einfache Weise eine
Begrenzung des Jitters in einem Netzknoten ermöglicht. Insbesondere soll das Verfahren
bzw. die Vorrichtung die Übertragung
von zeitkritischen Diensten im Internet unterstützen.
-
Die
der Erfindung zugrundeliegende Aufgabenstellung wird durch die Merkmale
der unabhängigen
Ansprüche
gelöst.
-
Das
erfindungsgemäße Verfahren
basiert auf der Ermittlung des aktuellen Pufferspeicher-Füllstands
einer Warteschlange des Netzknotens. Der ermittelte Pufferspeicher-Füllstand
wird mit einem vorgebbaren Grenzwert für den Pufferspeicher-Füllstand
verglichen. Es wird dann der Wert des Ausgabezeitpunkts ermittelt,
wobei bei der Ermittlung des Wertes des Ausgabezeitpunkts das Vergleichergebnis
einfließt,
und es wird die Ausgabe des Datenpaketes aus dem Netzknoten zu dem
ermittelten Ausgabezeitpunkt angewiesen.
-
Das
erfindungsgemäße Verfahren
weist den Vorteil auf, daß die
Ankunftszeiten von Datenpaketen an den Eingängen des Netzknotens nicht
notiert werden müssen.
Die statt dessen durchzuführende
fortlaufende Überwachung
des Pufferspeicher-Füllstands
auf Warteschlangen-Basis erfordert wenig Aufwand und insbesondere
nicht das Abspeichern einer Datenpaket-individuellen Information.
-
Eine
vorteilhafte Ausführungsform
des erfindungsgemäßen Verfahrens
kennzeichnet sich dadurch, daß in
einem n-ten Zyklus ein Ausgabezeitpunkt Ta(n) nach der Beziehung
Ta(n)=Ts(n)+L/R für ein
Datenpaket festgelegt wird, wobei Ts(n) eine dem nten Zyklus zugeordnete
Bezugszeit ist, L die Paketlänge
des anzuweisenden Datenpaketes ist und R eine Bitrate für den Ausgang
des Netzknotens ist, deren Wert von dem Vergleichsergebnis abhängt. Auf diese
Weise wird der Ausgabezeitpunkt eines Datenpaketes unter Berücksichtigung
der Bitrate R am Ausgang des Netzknotens eingestellt.
-
Bei
der Bezugszeit Ts(n) im n-ten Zyklus handelt es sich vorzugsweise
um den Ausgabezeitpunkt Ta(n-1) des im vorausgegangenen n-1-ten
Zyklus ausgegebenen Datenpaketes.
-
Eine
besonders vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens
kennzeichnet sich dadurch, daß R
auf eine Bitrate Rmax eingestellt wird, sofern der gemessene Pufferspeicher-Füllstand größer als
der vorgebbare Grenzwert ist, und daß andernfalls R auf eine Bitrate
Rmin eingestellt wird, die kleiner als Rmax ist. Zweckmäßiger Weise
kann dabei Rmax eine maximal zulässige
Bitrate am Ausgang des Netzknotens (d.h. die Link-Kapazität) sein.
-
Eine
besonders vorteilhafte Verfahrensmaßnahme kennzeichnet sich dadurch,
daß in
jedem Zyklus der ermittelte Pufferspeicher-Füllstand mit einem vorgebbaren
weiteren Grenzwert für
den Pufferspeicher-Füllstand,
welcher größer als
der vorgebbare Grenzwert ist, verglichen wird, und daß, sofern
der ak tuelle Pufferspeicher-Füllstand
größer ist
als der vorgebbare weitere Grenzwert, das nächste bereitstehende Datenpaket
markiert und dann sofort verworfen (d.h. gelöscht) wird. Durch die Definition
eines vorgebbaren weiteren Grenzwertes für den Füllstand des Pufferspeichers
wird sichergestellt, daß zu
allen Zeiten niemals wesentlich mehr Datenbits als durch diesen
definierten vorgebbaren weiteren (oberen) Grenzwert vorgegeben,
in dem Pufferspeicher vorhanden sind.
-
Das
erfindungsgemäße Verfahren
läßt sich sowohl
auf Netzknoten mit Vermittlungs- oder Protokolltransferfunktionen
(Router bzw. Gateway) als auch auf sämtliche anderen Netzknoten,
z.B. Switches, Bridges oder Hubs usw., anwenden.
-
Ein
weiterer Aspekt der Erfindung betrifft ein (Daten-)Netz oder Netzabschnitt,
welcher ausschließlich
aus Netzknoten besteht, die nach dem erfindungsgemäßen Verfahren
gesteuert werden. Die Netzknoten können dabei von unterschiedlichem
Typ sein und insbesondere auch Pufferspeicher unterschiedlicher
Größe enthalten.
Durch die netzweite Vorgabe desselben vorgebbaren Grenzwerts und/oder
vorgebbaren weiteren Grenzwerts für den Pufferspeicher-Füllstand
in jedem Netzknoten wird dennoch erreicht, daß in jedem Netzknoten die Steuerung
der Datenpaketausgabe nach der gleichen Vorschrift erfolgt. Bezogen
auf die Festlegung des vorgebbaren weiteren Grenzwertes gestattet
dies beispielsweise, daß es
für einen
jeden Datenstrom durch das Netz möglich wird, eine größtmögliche Anzahl
von Datenbits anzugeben, die in den von dem Datenstrom durchlaufenen
Netzknoten des Netzes maximal zwischengespeichert sein kann.
-
Die
Erfindung wird nachfolgend in beispielhafter Weise anhand der Zeichnung
erläutert.
In dieser zeigt:
-
1 eine
schematische Darstellung eines Netzknotens in einem Netz;
-
2 ein
Flußdiagramm
zur Erläuterung
eines Ausführungsbeispiels
des erfindungsgemäßen Verfahrens;
und
-
3 eine
schematische Darstellung eines Netzabschnitts.
-
Die 1 zeigt
einen Router 1, welcher einen oder mehrere an seinem Eingang
E eintreffende Datenströme
an einem Ausgang A wieder ausgibt. Der Router 1 weist weitere
Eingänge
und/oder Ausgänge
auf, die im folgenden nicht betrachtet werden und in 1 daher
nicht eingezeichnet sind. Der den Router 1 durchlaufende
Datenstrom enthält
Datenbits, die paketorientiert, d.h. in einzelnen Datenpaketen oder
Zellen (d.h. Datenpakete identischer Paketlänge), übertragen werden.
-
Der
Begriff Datenstrom bezeichnet eine Folge von Datenpaketen, die von
einem bestimmten Sender stammen und für einen bestimmten Empfänger vorgesehen
sind. Ein Datenstrom entspricht daher einer bestimmten Sender-Empfänger-Verbindung.
-
Bezüglich des
betrachteten Ausgangs A umfaßt
der Router 1 üblicherweise
mehrere parallel angeordnete Warteschlangen (Queues), die über eine Schnittstelle
mit dem einen Ausgang A verbunden sind. Der Aufbau einer Warteschlange
ist im unteren Teil der 1 exemplarisch dargestellt.
Die Warteschlange weist einen mit dem Eingang E gekoppelten FiFo-Empfangsspeicher
FiFo_R, einen dem Empfangsspeicher FiFo_R nachgeschalteten Pufferspeicher
PS und einen dem Pufferspeicher PS nachgeschalteten FiFo-Sendespeicher
FiFo_S auf. Sämtliche
Speicher stehen mit einem Prozessor P in bidirektionaler Datenverbindung.
Der Prozessor P steuert die Warteschlange, d.h, die Eingabe, Weitergabe und
Ausgabe von Daten bezüglich
der einzelnen Speicher FiFo_R, PS, FiFo_S.
-
Der
Warteschlange FiFo_R, PS, FiFo_S kann ein einziger Datenstrom zugeordnet
sein oder es ist auch möglich,
daß mehrere
Datenströme
von einer Warteschlange bedient werden, wobei dann die Reihenfolge
der Datenpakete bezüglich
des jeweiligen Datenstroms gewahrt bleiben muß.
-
Betrachtet
wird eine TDM- (Time Divison Multiplex-)Übertragung. Der von dem Router 1 empfangene
Datenstrom wird periodisch in Zeitschlitzen einer Zeitdauer T1 entgegengenommen
und der ausgegebene Datenstrom wird periodisch in Zeitschlitzen
einer Zeitdauer T2 gesendet. Mit X(t) wird die Anzahl der Bits bezeichnet,
die am Eingang E während des
halboffenen Zeitintervalls (t-T1, t] entgegengenommen werden, und
mit Y(t) wird die Anzahl der Bits bezeichnet, die während des
halboffenen Zeitintervalls (t-T2, t] am Ausgang A des Routers 1 ausgegeben
werden.
-
Für eine ideale
Zeitmultiplex-Übertragung gilt
T1=T2=:T und Y(k*T)=X(k*T-D) für
beliebige Zeiten t und für
eine konstante Verweilzeit D. Das heißt, daß die Anzahl der am Ausgang
A des Routers 1 im betrachteten Zeitintervall ausgegebenen
Daten identisch ist mit der Anzahl der am Eingang E des Routers 1 im
gleichen, aber um die Verweilzeit D zurückliegenden Zeitintervall entgegengenommenen
Daten. In diesem Fall weist jedes Datenbit des betrachteten Datenstroms
exakt die Verweilzeit D im Router 1 auf. Hierbei bezeichnet
k eine fortlaufende Nummer zur Indexierung auffeinanderfolgender
Zeitschlitze.
-
In
der Praxis treten jedoch Schwankungen um die "ideale" Verweilzeit D der Datenbits (und damit
auch der Datenpakete) im Router
1 auf. Diese Schwankungen
werden als Jitter J(t) bezeichnet. Der Jitter J(t) bezüglich D
läßt sich
zeitabhängig
durch die folgende Gleichung beschreiben:
-
Eine
zeitunabhängige
obere Grenze G für den
Jitter hat die Eigenschaft, daß die
Bedingung |J(t)| < G
für sämtliche
Zeiten t erfüllt
ist.
-
Allgemein
gilt für
einen Netzknoten beliebigen Typs, daß der Jitter J(t) in etwa dem
Füllstand des
Pufferspeichers in dem Netzknoten entspricht. Das heißt, bei
erschöpfter
Speichermöglichkeit
im Pufferspeicher PS (d.h. vollständig gefülltem Pufferspeicher PS) ist
ein maximaler Jitter zu erwarten. Der Empfangsspeicher FiFo_R und
der Sendespeicher FiFo_S werden dabei als jitterfrei betrachtet.
-
Die
erfindungsgemäße Steuerung
der Ausgabe von in einer Warteschlange befindlichen Datenpaketen
wird anhand 2 erläutert. Sie erfolgt durch den
Prozessor P, welcher hierfür
in geeigneter Weise programmiert ist.
-
Zunächst wird
in einem ersten Initialisierungsschritt eine untere Grenze Bd für den Füllstand des
Pufferspeichers PS eingestellt. In diesem Schritt kann auch eine
obere Grenze Bu für
den Füllstand des
Pufferspeichers PS eingestellt werden.
-
In
einem nächsten
Initialisierungsschritt wird eine feste maximale Bitrate Rmax für den Ausgang
A des Routers 1 vorgegeben. Die Vorgabe einer maximalen
Bitrate Rmax für
den Ausgang A des Routers 1 bedeutet, daß die zeitliche
Ableitung von Y(t) stets kleiner als diese maximale Ausgangs-Bitrate
ist. In der Praxis wird diese maximale Bitrate Rmax am Ausgang A
des Routers 1 (oder eines anderen Netzknotens) häufig durch
eine Begrenzung seitens des Netzbetreibers erzwungen. Beispielsweise
kann die Begrenzung der Ausgangs-Bitrate (d.h. des Durchsatzes)
durch den Router 1 in Abhängigkeit von Gebühren für die Nutzung
des Netzes vereinbart und vorgegeben sein.
-
Die
Ausgabesteuerung von Datenpaketen aus dem Pufferspeicher PS erfolgt
dann gemäß dem folgenden
Zyklus. Mit n wird eine laufende Nummer des Zyklus bezeichnet. Der
Zyklus wird durch Setzen von n=0 begonnen.
-
Es
wird zunächst
der aktuelle Füllstand
B(n) des Pufferspeichers PS im n-ten Zyklus ermittelt.
-
Dann
erfolgt ein Vergleich des aktuellen Füllstands B(n) mit den Grenzen
Bd und gegebenenfalls Bu. Sofern B(n)>Bu gilt, ist der Füllstand des Pufferspeicher
PS zu hoch, d.h. der Pufferspeicher PS muß sofort entleert werden. Hierfür wird das
nächste
Datenpaket, für
welches der Ausgabezeitpunkt festgelegt werden soll, markiert und
anschließend
verworfen. Im Fall B(n)≤Bu
wird geprüft,
ob B(n)>Bd gilt. Ist dies
der Fall, wird die Ausgabezeit Ta(n) für das nächste zur Abfertigung im Pufferspeicher
PS bereit stehende Datenpaket nach der Gleichung Ta(n)=Ts(n)+L/Rmax
ermittelt. Dabei bezeichnet L die Länge (d.h. die Bitanzahl) dieses
Datenpakets und Ts(n) bezeichnet eine Bezugszeit für den n-ten Zyklus.
Z.B. kann Ts(n)=Ta(n-1) sein, wobei Ta(n-1) der (bereits berechnete)
Ausgabezeitpunkt des letzten Bits des im vorausgegangenen Zyklus
n-1 angewiesenen Datenpaketes ist.
-
Andernfalls,
d.h. sofern B(n)≤Bd
gilt, wird Ta(n)= Ts(n)+L/Rmin gesetzt. Rmin bezeichnet dabei eine
Bitrate am Ausgang A, die kleiner als Rmax ist. Rmin stellt eine
minimale garantierte Senderate des Routers 1 dar.
-
Nach
dem "Schedulen" dieses Datenpaketes wird
n inkrementiert und der Zyklus, nun bezeichnet als Z(n+1), wird
für das
nächste
Datenpaket wiederholt.
-
Eine
alternative Möglichkeit
(in 2 nicht dargestellt) bei Feststellung von B(n)≤Bd besteht
darin, daß dem
anzuweisenden Datenpaket in der betrachteten Warteschlange zunächst kein
Ausgabezeitpunkt zugeteilt wird und daß sich der Zyklus auf eine
andere Warteschlange, z.B. eine Warteschlange mit niedrigerer Priorität, verlagert.
In diesem Fall werden in der Folgezeit Datenpakete in dieser anderen Warteschlange
angewiesen. Wechselt der Prozeß im m-ten
Zyklus wieder auf die betrachtete Warteschlange zurück, kann
als Bezugszeit Ts(m) der bereits angewiesene Ausgabezeitpunkt Ta(m-1)
des letzten Bits des im vorausgegangenen Zyklus m-1 angewiesenen
Datenpaketes in der anderen Warteschlange verwendet werden.
-
Der
beschriebene Algorithmus hat zur Folge, daß das System sich bezüglich der
betrachteten Warteschlange in einem "langsamen" Betriebsmodus (oder nach der zuletzt
erläuterten
Alternative in einem Wartezustand) befindet, solange der Füllstand des
Pufferspeichers PS kleiner als die untere Grenze Bd ist. Sofern
der Füllstand
B über
der unteren Grenze Bd liegt, erfolgt in jedem Zyklus eine zeitliche
Festlegung des Ausgabezeitpunkts für ein Datenpaket gemäß der vorstehend
angegebenen Gleichung mit erhöhter
Rate Rmax. Dieser "schnelle" Betriebsmodus wird
solange aufrechterhalten, bis der Füllstand des Pufferspeichers
PS (wieder) unter die untere Grenze Bd absinkt. Nur für den Fall,
daß der
Füllstand
des Pufferspeichers PS größer als
Bu ist, wird einem Datenpaket kein Ausgabezeitpunkt zugewiesen,
sondern das Paket wird markiert und verworfen.
-
3 zeigt
ein Netz 10 bzw. einen Abschnitt eines Netzes, welches
drei Netzknoten 1.1, 1.2 und 1.3 mit
einem Aufbau entsprechend 1 umfaßt. An Übergabepunkten
Z1, Z2 und Z3 werden dem Netz 10 die Datenströme i1, i2
und i3 zugeführt.
Die Datenströme
i1 und i2 gelangen zu dem ersten Netzknoten 1.1, während der
Datenstrom i3 dem zweiten Netzknoten 1.2 zugeleitet wird.
Ein Ausgangsdatenstrom i4 bildet einen weiteren Eingangsdatenstrom für den Netzknoten 1.2.
Datenströme
i5 und i6 werden dem dritten Netzknoten 1.3 zugeleitet.
Datenströme
i7, i8 und i9 werden Ausgabepunkten X1, X2 und X3 des Netzes 10 zugeführt.
-
Obgleich
die Netzknoten 1.1, 1.2 und 1.3 von Typ
und Bauart, insbesondere Größe des Pufferspeichers,
unterschiedlich sein können,
kann durch eine einheitliche Konfiguration der Netzknoten 1.1, 1.2, 1.3 hinsichtlich
Bu und/oder Bd im Netz für
eine jitterarme Datenübertragung
gesorgt werden. Insbesondere kann durch eine einheitliche obere
Grenze Bu für
den Pufferspeicher-Füllstand
eine Limitierung der im Netz für
einen bestimmten Datenstrom abgespeicherten Datenbits gesorgt werden.
Betrachtet werde beispielsweise ein Datenstrom von Z2 nach X3. Dieser
setzt sich aus den Datenstromabschnitten i2, i4 und i9 zusammen.
Er durchläuft
2 Netzknoten, nämlich 1.1 und 1.2.
Durch die genannte netzeinheitliche Auslegung der Netzknoten bezüglich Bu
gilt, daß die im
Netz gespeicherte Zahl von Datenbits für diesen Datenstrom kleiner
oder gleich 2*Bu ist.