-
Die vorliegende Erfindung bezieht
sich auf ein Paketvermittlungsnetz und auf darin enthaltene Elemente
und Hostrechner.
-
Vor dem Senden von Information über ein
herkömmliches
verbindungsorientiertes Netzwerk wird dem Benutzer eine Leitung
entweder durch eine Bereitstellung oder durch eine Signalisierung
bei Bedarf zugewiesen. Während
der Zuweisungsphase kann die Schaltung derart eingerichtet werden,
dass sie benutzerspezifische Leistungskriterien erfüllt. Dies
wird typischerweise von den Verbindungszugangs-Regeln gesteuert. Wenn eine geeignete
Leitung eingerichtet wurde, kann folglich Information zwischen Hostrechnern
mit einer bestimmten Dienstqualität (QoS) gesendet werden.
-
Im Gegensatz dazu weist ein herkömmliches
verbindungsloses Netzwerk keine Anforderung für eine Leitungszuweisung auf
und derartige Netzwerke enthalten keine Verbindungszugangs-Steuerung.
Dies hat zur Folge, dass während
Zeiten von Netzwerküberlastung
das Erfüllen
von Leistungskriterien und dadurch die Zufriedenstellung von Dienstqualitäts(QoS)-Anforderungen
(wie End-zu-End Verzögerung
und Verzögerungsschwankung)
nicht garantiert werden kann.
-
Es wird zunehmend offensichtlich,
dass zukünftige
Netzwerke Dienste ähnlich
den von herkömmlichen verbindungsorientierten
Netzwerken vorgesehenen Diensten und ebenso Dienste ähnlich den
von herkömmlichen
verbindungslosen Netzwerken vorgesehenen Diensten unterstützen müssen. Darüber hinaus
wird es für diese
Dienste wichtig, mit minimaler Komplexität und innerhalb akzeptabler
Leistungskompromisse unterstützt zu
werden.
-
In dem letzten Jahrzehnt war die
Vision für
zukünftige
Breitband-Multimedia-Netzwerke,
dass diese auf der asynchronen Übertragungsmodustechnik
(ATM – Asynchronous
Transfer Mode) und den zugehörigen Netzwerkstandards
basieren würden.
Während
der frühen
Phasen der Standardisierung wurde jedoch entschieden, dass ATM-Netzwerke
verbindungsorientiert werden und eine native verbindungslose Betriebsweise nicht
unterstützen.
ATM-Standards konzentrierten sich eher auf Dienstklassenoptimierung
als eine breitere Netzwerksicht einzunehmen. Zum Beispiel erfordert
eine Optimierung der Trägernutzung
nicht notwendigerweise, dass die Bandbreitennutzung für jede einzelne
unterstützte
Dienstklasse optimiert werden muss. Weiter gesehen erscheint es
wahrscheinlich, dass sich Anwendungen schneller entwickeln werden,
als es für
Netzwerke möglich
ist, ihnen zu folgen.
-
Mögliche
unerwünschte
Aspekte und Komplexitäten
traditioneller ATM-Dienste für
zukünftige
Netzwerke umfassen:
- – Statistisches Multiplexen
innerhalb einer Dienstklasse erfordert eine komplexe Verbindungsfreigabesteuerung
(CAC – connection
admission control) auf Grundlage von „leaky bucket" Quellen-Verkehrs-Deskriptoren.
- – Wenn
statistisches Multiplexen verwendet wird, ist eine Pufferspeichergröße, die
benötigt
wird um keinen Zellenverlust zu erreichen, unbestimmt.
- – Die
feste ATM Zellgröße ist wahrscheinlich
nicht für
alle Dienste geeignet.
- – In
einem durchgeschalteten Netzwerk ist eine Signalisierungsphase unabhängig vom
Verkehrstyp erforderlich, und dies kann möglicherweise einen Leistungs-Flaschenhals
für einige
Typen des verbindungslosen Verkehrs erzeugen.
- – Eine
Zellen-Header-Größe ist ein
weiterer Bandbreiten-Platzbedarf
zusätzlich
zu dem bereits von den Protokollen der höheren Schichten auferlegten
(für eine
AAL5 Adaptierung verbraucht der Zellen-Header 10 Prozent
der verfügbaren
Bandbreite, für
andere AAL's ist
dieser Wert höher).
-
Beispiele von ATM-Netzknoten werden
beschrieben von Cheng L, „Quality
of services based on both call admission and cell scheduling", Computer Networks
and ISDN Systems, vol. 29, Nr. 5, April 1997, S. 555–567, und
dem U.S. Patent 5,555,265. Beide weisen Warteschlangen für entsprechende
Verkehrsklassen auf. Die internationale Patentanmeldung WO 94/14263
beschreibt einen Frame-Relay
Netzknoten, der ebenso Warteschlangen für entsprechende Klassen von
Kommunikationsverkehr aufweist.
-
Traditionelle IP-Netzwerke haben
sich aus dem Konzept der verbindungslosen Transportverfahren entwickelt,
die den Benutzern bis jetzt nur einen Dienst nach bester Möglichkeit
(„best
effort") anbieten.
Jedoch wird nun ein neues Dienstmodell, ein so genanntes dienstintegriertes
(IS – integrated
services) Internet, von der Arbeitsgruppe der IETF (Internet Engineering
Task Force) für
Dienstintegrierung vorgeschlagen und angesprochen.
-
Das IS-Internet wird eine Anzahl
von Dienstklassen mit bestimmen QoS-Vorkehrungen unterstützen.
-
Die hauptsächlich vorgeschlagenen Dienstklassen
sind: ein Garantierter Dienst (GS – Guaranteed Service), welcher
eine garantierte Bandbreite und eine klar definierte Verzögerungsgrenze
unterstützt;
eine
Gesteuerte Last (CL – Controlled
Load), welche eine lockerere Bandbreitengarantie unterstützt;
und
das herkömmliche
Verfahren nach bester Möglichkeit
(BE – Best
Effort).
-
Der Ausdruck „Fluss" wird verwendet, um einen Strom aus
einem oder mehreren Paketen zu kennzeichnen, das/die von einer bestimmten
Anwendung erzeugt und mit einer speziellen QoS-Anforderung übermittelt wird/werden.
-
Um die Bereitstellung verschiedener
Dienstklassen zu unterstützen,
wird das IS-Internet, im Gegensatz zur heutigen TCP/IP Protokollsammlung,
Fluss-Zustands-Information in allen Netzwerk-Routern benötigen.
-
Bisher hat sich die formale Analyse
auf die Klasse des Garantierten Dienstes konzentriert, für die vorgeschlagen
wird, dass die garantierte Verzögerungsgrenze
durch die Verwendung von Token-Bucket-Verkehrs-Deskriptoren in dem CAC Algorithmus
und Schedule-Schemen,
wie der gewichteten fairen Warteschlangenverwaltung (WFQ – Weighted
Fair Queuing), eingehalten wird. Obwohl absolute Verzögerungsgrenzen durch
diesen Ansatz garantiert sind, erscheint es, dass sie übermäßig pessimistisch
sein können
und unter bestimmten Umständen
in unnötig
komplexer Verarbeitung resultieren (das heißt, unter einigen Umständen können die
möglichen
Nutzen von der zusätzlichen
Komplexität
aufgehoben werden).
-
Sollte das der Fall sein, wären alternative
und einfachere Lösungen
wünschenswert,
die realistischere Verzögerungsgrenzen
liefern.
-
Mögliche
unerwünschte
Aspekte und Komplexitäten
eines Garantierten Dienstes für
zukünftige
Netzwerke umfassen:
- – Die von WFQ angebotene Verzögerungssteuerung
kann zu vernachlässigen
sein, wenn der GS unter Bedingungen von Zeitkonkurrenz anstatt Bandbreitenkonkurrenz
arbeitet (das heißt,
kein statistisches Multiplexen).
- – Obwohl
WFQ sowohl Bandbreitenteilung als auch strikte Flussisolation liefert,
kann der Bedarf danach abnehmen, wenn die Grenze für den Pufferspeicher-Rückstand
abnimmt und/oder ein geeigneter oberer Grenzwert auf die maximale-Datagramm-Größe angewendet
wird.
- – Statistisches
Multiplexen innerhalb der GS-Klasse erfordert komplexes CAC auf
Grundlage von Token-Bucket-Verkehrs-Deskriptoren.
- – Eine
Signalisierung nach dem Betriebsmittel-Reservierungs-Setup-Protokoll (RSVP – Resource
Reservation Set-Up Protocol) ist erforderlich, um festzustellen,
ob die erforderliche End-zu-End
Verzögerungsgrenze
unterstützt
werden kann oder nicht.
- – Gegenwärtig wird
WFQ auf einer pro Fluss Basis angewendet, so dass es rechenintensiv
ist und dies kann zu einem möglichen
Leistungs-Flaschenhals führen,
wenn Netzwerkgeschwindigkeiten zunehmen und/oder Datagramm-Größen abnehmen (weniger
Zeit, um das Scheduling der Datagramme zu berechnen).
-
Darüber hinaus wurden herkömmliche
Telekommunikationsnetzwerke auf der Grundlage entwickelt, dass Benutzungsmuster
für das
Netzwerk und Verkehrsstatistiken bekannte und relativ stabile Parameter
sind. Nun wird aber aus dem Wachstum des Internets und der Art,
wie es benutzt wird, offensichtlich, dass diese Parameter zunehmend
unsicher werden. Es wird auch erwartet, dass dieser Trend sich in
die Zukunft hinein fortsetzen wird.
-
Daraus folgt, dass eine zukünftige Netzwerkgestaltung
robust genug sein muss, um mit diesen Ungewissheiten umzugehen,
wobei das nicht durch die Verwendung unnötig komplexer Netzwerksteuerungstechniken
geschehen sollte. Momentane Hinweise zeigen jedoch, dass dies in
dem Bereich der QoS Leistungsgarantien sehr wohl passieren kann.
-
Gemäß der Erfindung ist ein Paketvermittlungsnetzelement
vorgesehen, mit
zumindest einem Eingang zum Empfangen Fluss-basierter
Pakete;
zumindest einem Ausgang mit einer vorbestimmten Bandbreite;
wobei
ein erhaltenes Paket einer ersten oder zweiten Dienstklasse zugehörig ist;
Mitteln,
die jedes erhaltene Paket auf Grundlage seiner Klasse an einen ersten
oder einen zweiten zugehörigen
Paket-Pufferspeicher leiten,
wobei dem ersten Paket-Pufferspeicher
ein vorbestimmter Anteil der Ausgangs-Bandbreite zugewiesen ist
und dem zweiten Paket- Pufferspeicher
der verbleibende Teil der Ausgangs-Bandbreite zugewiesen ist; und
Mitteln,
die Pakete von den ersten und zweiten Paket-Pufferspeichern an einen
Ausgang leiten;
wobei das Paketvermittlungsnetzelement gekennzeichnet
ist durch: Mittel zum Bestimmen eines Bandbreitenbedarfs für Flüsse erster
Klasse, die derart eingerichtet sind, um im Betrieb selektiv für Flüsse erster
Klasse den entsprechenden Bandbreitenbedarf für Flüsse erster Klasse zu ermitteln;
und
Pufferspeicherzugangsmittel für Flüsse erster Klasse, die derart
eingerichtet sind, um im Betrieb selektiv für Flüsse erster Klasse einen Zugang
der Flusspakete erster Klasse in den ersten Paket-Pufferspeicher
zu gewähren,
wenn der zugehörige
Bandbreitenbedarf gedeckt werden kann.
-
Ferner sind vorgesehen ein Verfahren
gemäß Anspruch
13 und ein Paketvermittlungsnetzelement gemäß Anspruch 15.
-
Auf diese Weise bietet eine vergleichsweise
einfache Architektur für
Netzwerkelemente einer ersten Klasse von Paketen vorteilhafterweise
einen Dienst an, der ähnlich
dem Dienst eines herkömmlichen
verbindungsorientierten Netzwerks ist, und einer zweiten Klasse
von Paketen wird ein Dienst, der ähnlich dem Dienst eines herkömmlichen
verbindungslosen Netzwerks ist, angeboten.
-
Vorzugsweise ist das den Zugang gewährende Mittel,
eingerichtet, einen Spitzenwerttest anzuwenden, der Zugang zu dem
ersten Pufferspeicher gewährt,
wenn der aktuell nicht genutzte Teil des vorbe stimmten Anteils der
Ausgangs-Bandbreite den Bandbreitenbedarf des Spitzenwerts decken
kann.
-
Unter einigen Umständen erlaubt
dies die Formulierung einer festen Verzögerungsgrenze, während die
möglichen
Verarbeitungs-Flaschenhälse vermieden
werden, die den Durchsatz komplexerer Schemen beschränken können – Für Flusspakete
erster Klasse, die in den ersten Paket-Pufferspeicher zugelassen
werden, wird die garantierte Verzögerungsgrenze bereitgestellt.
Darüber
hinaus wird dies ohne pro Fluss Scheduling erreicht und sorgt somit
für eine
Skalierbarkeit, die beim Erstellen großer Netzwerke von unmittelbarem und
bekannten Belang ist.
-
In allgemeiner anwendbaren Ausführungsbeispielen
ist das Zugangsgewährungsmittel
eingerichtet, den Spitzenwerttest und einen Pufferspeicher-Fülltest anzuwenden,
der Zugang gewährt,
wenn der erste Paket-Pufferspeicher ausreichend Platz aufweist,
um einen weiteren Fluss aufzunehmen.
-
Derartige Ausführungsbeispiele haben den Vorteil,
dass sie eine garantierte Verzögerungsgrenze auch
dann vorsehen können,
wenn nur eine kleine Anzahl von Flüssen erster Klasse von dem
Element abgewickelt wird. Der Pufferspeicher-Fülltest ist wahrscheinlich überflüssig in
Hochleistungs-Kernvermittlungsnetzelementen, die eine große Anzahl
von Flüssen
erster Klasse abwickeln.
-
In bevorzugten Ausführungsbeispielen
ist das Zugangsgewährungsmittel
ausgebildet, einen Zugang für
Pakete des Flusses erster Klasse in den ersten Paket-Pufferspeicher
nur zu gewähren,
wenn die An zahl der Flüsse,
die der erste Paket-Pufferspeicher aufnehmen kann, minus die Anzahl
der Flüsse,
die aktuell aufgenommen sind, zumindest eins ist, und wenn der freie
Anteil der Ausgangs-Bandbreite, die dem ersten Paket-Pufferspeicher
zugeteilt ist, minus des geplanten Bandbreitenbedarfs des Fluss-Spitzenwerts
größer oder gleich
null ist.
-
Auf diese Weise können genauere Verbindungszugangs-Regeln
herbeigeführt
werden als die garantierte Verzögerungsgrenze
für Pakete
des Flusses erster Klasse vorzusehen, die in den ersten Paket-Pufferspeicher zugelassen
werden.
-
Ferner werden vorzugsweise Mittel
vorgesehen, die Flusspakete erster Klasse in den zweiten Paket-Pufferspeicher
zulassen, wenn diesen der Zugang in den ersten Paket-Pufferspeicher
verwehrt wurde.
-
Auf diese Weise wird für die Zugangssteuerung
ein „weicher
Ausfall" vorgesehen,
indem die Pakete, die nicht in den ersten Paket-Pufferspeicher zugelassen wurden, zum
Weiterleiten während
der Dauer des Flusses oder bis zu dem Zeitpunkt, an dem sie in den
ersten Paket-Pufferspeicher zugelassen werden, in den zweiten Paket-Pufferspeicher zugelassen
werden.
-
Einige Ausführungsbeispiele weisen ein
Klassenbestimmungs-Mittel auf, das ermittelt, ob ein erhaltenes
Paket zu einer ersten oder zweiten Dienstklasse gehört. Dies
ist in Elementen notwendig, wo die Zugehörigkeit eines Pakets zu einer
bestimmten Klasse beispielsweise nicht aus der Schnittstelle zu
ermitteln ist, auf der das Paket ankommt.
-
Weiter vorzugsweise ist das Klassenbestimmungs-Mittel
eingerichtet, einen die Klasse identifizierenden Abschnitt von dem
erhaltenen Paket zu lesen.
-
Auf diese Weise kann eine „Signalisierung
während
der Übertragung
(on the fly)" herbeigeführt werden,
was vorteilhaft die Notwendigkeit für eine getrennte Netzwerk-Signalisierungsphase
beseitigt.
-
Weiter vorzugsweise ist das Mittel
zum Bestimmen eines Bandbreitenbedarfs eingerichtet, einen Informationsabschnitt
für den
Bandbreitenbedarf des Fluss-Spitzenwerts von dem erhaltenen Paket
zu lesen.
-
Wiederum kann auf diese Weise eine „Signalisierung
während
der Übertragung
(on the fly)" herbeigeführt werden,
was vorteilhaft die Notwendigkeit für eine getrennte Netzwerk-Signalisierungsphase
beseitigt.
-
Weiter vorzugsweise ist das Mittel
zum Bestimmen eines Bandbreitenbedarfs derart ausgebildet ist, besondere
Bandbreitenbedarfswerte eines Fluss-Spitzenwerts für jeweilige
einzelne Paketflüsse
zu ermitteln.
-
Auf diese Weise können einzelne Paketflüsse für eine besondere
Behandlung gekennzeichnet werden.
-
Spezielle Ausführungsbeispiele der vorliegenden
Erfindung werden im Folgenden beispielhaft und unter Bezugnahme
auf die beigefügten
Zeichnungen beschrieben, in denen:
-
1 verschiedene
Konfigurationen für
Architekturen von Netwerkelementen erläutert;
-
2 verschiedene
Netzwerkarchitekturen erläutert,
einschließlich
der in 1 gezeigten Netzwerkelemente;
-
3 relative
Verzögerungen
in einem Netzwerk zwischen einem sendenden Hostrechner und einem empfangenden
Hostrechner als eine Funktion differierender Netzwerkimplementierung
erläutert;
-
4 eine
exemplarische Paketstruktur zur Verwendung in Verbindung mit obigem
erläutert;
-
5 eine
exemplarische Konfiguration der Architektur eines Hostrechners erläutert;
-
6 einen
Vergleich zweier Schemen von Verkehrsgestaltungen erläutert; und
-
7 ein
exemplarisches Fluss-Profil darstellt.
-
Ein sendender Hostrechner und ein
empfangender Hostrechner sind mittels eines Netzwerks verbunden,
welches Elemente oder Netzknoten und Verbindungsleitungen aufweist.
Eine auf dem sendenden Hostrechner laufende Anwendung erzeugt Datenpakete
oder Da tagramme, wobei der Begriff „Fluss" zur Bezeichnung eines Stroms von einem
Paket oder mehreren Paketen verwendet wird, das/die von der Anwendung
erzeugt werden und mit einer bestimmten Dienstqualität (QoS)-Anforderung übertragen
wird/werden.
-
Die Dienstanforderung des jeweiligen
Flusses wird für
die Zwecke der Übertragung über das
Netzwerk als eine von zumindest zwei definierten Dienstklassen mit
zugehörigen
Dienstqualitäts
(QoS)-Graden gewählt, wobei
typischerweise eine der beiden eine so genannte Klasse mit begrenzter
Verzögerung
oder eine so genannte Klasse nach bester Möglichkeit ist.
-
Wenn der Fluss über das Netzwerk in einem Modus
mit begrenzter Verzögerung übertragen
werden soll, muss das Netzwerk die diesen bildenden Pakete von Ende
zu Ende in einer Zeit liefern können,
die von der festgesetzten maximalen Verzögerung begrenzt wird. Wenn
der Fluss über
das Netzwerk in einem Modus nach bester Möglichkeit übertragen werden soll, liefert
das Netzwerk die Paketeinheiten, ohne dass eine maximale Verzögerungsgrenze
festgesetzt wird.
-
Die Wahl, welcher dieser Modi zu
verwenden ist, liegt bei der auf dem sendenden Hostcomputer laufenden
Anwendung.
-
Eine Anzahl von Netzwerkelementen
oder Netzknoten alternativer Architektur werden in 1(a) bis 1(d) gezeigt.
Diese Elemente oder Netzknoten können
beispielsweise unter Verwendung bekannter Router-Technologie implementiert
werden, wobei ein typisches Beispiel die von Cisco Inc. erhältliche
Technologie ist.
-
Das in 1(a) gezeigte
Netzwerkelement (1) weist einen Eingangs-Anschluss (2)
oder mehrere Eingangs-Anschlüsse
auf, der/die mit Eingangsverbindungsleitungen (nicht gezeigt) verbunden
ist/sind, um Paket-basierte Flüsse
zu empfangen.
-
Da jedes Netzwerkelement (1)
Netzwerkbetriebsmodi entweder mit begrenzter Verzögerung oder nach
bester Möglichkeit
unterstützt,
ist ein Modus-Identifizierer (3) vorgesehen, um für jedes
von einem Eingang (2) erhaltene Paket zu ermitteln, welchem
der beiden Modi das Paket zugehörig
ist, und dann das Paket an einen geeigneten Paket-Pufferspeicher zu
leiten. Ein einzelner Modus-Identifizierer (3) kann für alle Eingangsanschlüsse vorgesehen
werden oder alternativ kann mehr als einer vorgesehen werden.
-
Ein oder mehrere erste Paket-Pufferspeicher
(4) mit vorbestimmter Größe, der/die zu dem Betriebsmodus
der begrenzten Verzögerung
gehören
und derart bemessen sind, eine bestimmte Anzahl von Flüssen aufzunehmen,
weisen einen oder mehrere zugehörige
Paket-Identifizierer
(5) auf, durch den das Paket vor dem Zugang in einen der
Pufferspeicher (4) durchgeht.
-
Diese Paketidentifizierung kann dann
eine weitere Verarbeitung in einem Verarbeitungselement (6) auslösen. Als
ein Ergebnis dieser weiteren Verarbeitung kann eine Zugangsentscheidung,
typischerweise eine Entscheidung der Verbindungszugangssteuerung
(connection admission control – CAC),
gemacht werden, ob die Pakete des neuen Flusses in einen der ersten
Pufferspeicher (4) zugelassen werden oder nicht.
-
Ein oder mehrere zweite Paket-Pufferspeicher
(7) mit vorbestimmter Größe, der/die zu dem Betriebsmodus
nach bester Möglichkeit
gehören,
speichern die Pakete „nach
bester Möglichkeit", die von dem Modus-Identifizierer
(3) an ihn/sie geleitet wurden. Pakete mit „begrenzter
Verzögerung" können ebenso
an den zweiten Paket-Pufferspeicher geleitet werden, wenn ihnen
der Zugang zu dem ersten Paket-Pufferspeicher verwehrt
wurde, wie im Folgenden erläutert
wird.
-
Jeder der ersten und zweiten Pufferspeicher
(4, 7) weist Pufferspeicher-Ausgabe-Elemente (8, 9)
auf, die jeweils von einem oder mehreren Scheduling-Elementen (10)
gesteuert werden. Jedes Scheduling-Element (10) wird mittels eines
geeigneten Scheduling-Algorithmus gesteuert.
-
Jedes Pufferspeicher-Ausgabe-Element
ist mit einem Ausgangsanschluss (11, 12) verbunden,
der dann mit einer Ausgangsverbindungsleitung (nicht gezeigt) verbunden
ist.
-
Bei physikalisch unterschiedlichen
Ausgangsanschlüssen
reduziert sich das Scheduling tatsächlich auf ein vollständig unabhängiges Scheduling
der entsprechenden Pufferspeicher-Ausgaben (8, 9).
-
Den Ausgangsanschlüssen (11, 12),
die zu dem einen oder mehreren Pufferspeichern (4) für begrenzte
Verzögerung
und dem einen oder mehreren Pufferspeichern (7) nach bester
Möglichkeit
gehören,
werden jeweils vorbestimmte Anteile der gesamten Ausgangs-Bandbreite
zugewiesen.
-
Wie erwähnt, ist es offensichtlich,
dass, obwohl schematisch nur ein einzelner Eingang (2)
in 1(a) gezeigt wird,
jedes derartige Netzwerkelement (1) mehrere Eingänge (2)
aufweisen kann, um Flüsse
von etlichen Hostcomputern oder anderen Netzwerkelementen zu empfangen.
-
Auf ähnliche Weise kann das Netzwerkelement
(1) mehrere Ausgänge
(11, 12) aufweisen, wodurch ein einzelner Pufferspeicher
(4) für
begrenzte Verzögerung
für jeden
Ausgangsanschluss (11) des Modus der begrenzten Verzögerung besteht
und gleiches gilt für
den Pufferspeicher (7) nach bester Möglichkeit.
-
Wenn die zugehörigen Ausgangsverbindungsleitungen
(nicht gezeigt) physikalisch unterschiedlich sind, wird ein Scheduling
völlig
unabhängig.
Wenn jedoch die Ausgangsverbindungsleitungen für den Verkehr mit begrenzten
Verzögerungen
und für
den Verkehr nach bester Möglichkeit
nur virtuell getrennt sind, dann kann, abhängig von der Technologie, ein
Bereich von Multiplexing-Optionen auftreten.
-
Ferner muss außerdem festgestellt werden,
dass die Pufferspeicher für
begrenzte Verzögerung
und nach bester Möglichkeit
(4, 7) ebenso eher virtuell als physikalisch getrennt
sein können.
-
Das in 1(b) gezeigte
Netzwerkelement (13) ist dem in 1(a) gezeigten ähnlich, aber mit einem oder
mehreren ersten und zweiten Eingangsanschlüssen (14, 15)
vorgesehen. Deswegen muss der explizite Modus-Identifizierer (3)
der Darstellung von 1(a) nicht
verwendet werden, da die Sätze
der Eingänge
(14, 15) nun selber als den jeweiligen Modi der
begrenzten Verzögerung
und nach bester Mög lichkeit
zugehörig angesehen
werden können.
Jedoch kann ein expliziter Modus-Identifizierer (3) der 1(a) weiterhin nützlich sein,
um eine Überwachungsfunktion
auszuüben,
damit sichergestellt wird, dass alle ankommenden Pakete den korrekten
Modus aufweisen.
-
Jeder der ersten Eingangsanschlüsse (14),
die zu dem Modus der begrenzten Verzögerung gehören, ist somit direkt mit einem
Paket-Identifizierer
(16) mit zugehörigen
Verarbeitungselement (17) verbunden, wie unter Bezugnahme
auf 1(a) bereits erläutert wurde,
vor einer Verbindung zu einem Pufferspeicher (18) für begrenzte
Verzögerung.
Jeder der zweiten Eingangsanschlüsse
(15), die zu dem Modus nach bester Möglichkeit gehören, ist
direkt mit einem Pufferspeicher (19) nach bester Möglichkeit
verbunden.
-
Wie bei der Darstellung in 1(a) ist jeweils ein Pufferspeicher
für begrenzte
Verzögerung
und nach bester Möglichkeit
(18, 19) mit zugehörigen Pufferspeicher-Ausgabe-Elementen
(20, 21) und einem Scheduling-Element (22)
für den
jeweiligen Ausgangsanschluss (23, 24) für begrenzte
Verzögerung
und nach bester Möglichkeit
vorhanden.
-
Das in 1(c) dargestellte
Netzwerkelement ist in Bezug auf Eingang, Paket-Identifizierer,
zusätzliche
Verarbeitung, Pufferspeicher-Elemente
für begrenzte
Verzögerung
und nach bester Möglichkeit
(26, 27, 28, 29, 30, 31) ähnlich zu
dem in 1(b) dargestellten
Netzwerkelement, wird aber mit nur einem einzelnen Satz von Ausgangsanschlüssen (32)
vorgesehen, die sowohl zu dem Modus der begrenzten Verzögerung als auch
dem Modus nach bester Möglichkeit
gehören.
Für jeden
derartigen Ausgangsanschluss (32) wird eine dua le Pufferspeicher-Struktur
(30, 31) vorgesehen. Daraus folgt, dass für jeden
Ausgangsanschluss (32) die jeweiligen Pufferspeicher für begrenzte
Verzögerung
und nach bester Möglichkeit
von einem einzelnen Pufferspeicher-Ausgabe-Element (33)
unter der Steuerung eines Scheduling-Elements (34) ausgegeben
werden, wobei das Element (33) dann mit diesem einzelnen
Ausgangsanschluss (32) verbunden ist.
-
Da die beiden Pufferspeicher (30, 31)
sich denselben Ausgangsanschluss (32) teilen, wird ein
vollständig
unabhängiges
Scheduling der Ausgabe nicht möglich
sein, so dass komplexere Scheduling-Algorithmen notwendig sind,
um das Pufferspeicher-Ausgabe-Element (33) zu steuern,
und zwischen den beiden Modi können
Interaktionen im Betriebsverhalten auftreten. Es sind eine Reihe
geeigneter Scheduling-Lösungsansätze bekannt.
-
Einfaches Prioritäts-Scheduling wählt immer
das nächste
Paket von dem ersten Pufferspeicher (30), wenn der erste
Pufferspeicher (30) zumindest ein Paket aufweist. Auf diese
Weise wird dem ersten Pufferspeicher (30) in Bezug auf
vollständige
Pakete der bestmögliche
Dienst zugestanden. Wenn der Verkehr mit begrenzter Verzögerung einen
kleinen Teil des Gesamten ausmacht, wird dies einen relativ kleinen
Effekt auf den Verkehr nach bester Möglichkeit haben.
-
Wenn der Wert aus der maximalen Länge eines
Pakets nach bester Möglichkeit
dividiert durch die Verbindungsgeschwindigkeit im Vergleich zu dem
bestimmten Wert der Verzögerungsgrenze
für einen
Netzknoten klein ist, oder auf andere Weise akzeptabel niedrig ist, übt das Verhalten
eines Verkehrs nach bester Möglichkeit
wenig Ein fluss auf den Verkehr des Dienstes mit begrenzter Verzögerung aus.
Wenn dies nicht der Fall ist, kann ein „Aussetzen- Wiederaufnehmen"-Scheduling als eine
Alternative zu dem einfachen Prioritäts-Scheduling angesehen werden.
-
Durch ein „Aussetzen- Wiederaufnehmen"-Scheduling der Pakete
nach bester Möglichkeit
kann eine Übertragung
eines Pakets nach bester Möglichkeit
ausgesetzt werden, sobald ein Paket mit begrenzter Verzögerung zur Übertragung
verfügbar
ist. Somit werden Pakete nach bester Möglichkeit auf der Datenübertragungsschicht
tatsächlich
fragmentiert, um Pakete mit begrenzter Verzögerung unterzubringen.
-
Das in 1(d) gezeigte
Netzwerkelement (35) ist schließlich vorgesehen mit dem einen
ersten Eingang oder mehreren ersten Eingängen (36) und somit
den Modus-Identifizierern (37) und zugehörigen Paket-Identifizierer, zusätzlicher
Verarbeitung, Pufferspeicher-Strukturen für begrenzte Verzögerung und
nach bester Möglichkeit
(38, 39, 40, 41) von 1(a) und dem einzelnen Satz
von Ausgängen
(42) und somit dem einzelnen Pufferspeicher-Ausgabe-Element
(43) und dem Scheduling-Element (44) von 1(c).
-
Es ist offensichtlich, dass die Fähigkeit
des Netzwerkelements (1, 13, 25, 35),
den Betriebsmodus der begrenzten Verzögerung vorzusehen, davon abhängt, sicherzustellen,
dass die Summe der Spitzenwerte aller konkurrierender Flüsse nicht
den Anteil der dem Verkehr mit begrenzter Verzögerung zugewiesenen Ausgangs-Bandbreite übersteigt.
Ein Bestimmen des Spitzenwerts einer Bandbreite für einen
Fluss soll bedeuten, dass der den Fluss erzeugende Hostcomputer den
Verkehr hinsichtlich einer Paket-Unterbrechungs-Zeit lenken muss,
wie wenn die Geschwindigkeit der Ausgangsverbindung des Hostcomputers
auf die bestimmte Spitzen-Bandbreite eingeschränkt wäre. Die Mittel, um die Spitzenwert-Summe
zu steuern, können
entweder ein geeignetes Dimensionieren oder die Anwendung der CAC-Regeln
sein. Jedoch ist die Steuerung der Spitzenwert-Summe eine notwendige,
wenn auch nicht immer ausreichende Bedingung, um einen Betrieb mit
begrenzter Verzögerung
vorzusehen. Abhängig
von der besonderen Konfiguration des Elements kann es auch erforderlich
sein, die Anzahl und Paketgröße von Flüssen mit
begrenzter Verzögerung
zu steuern.
-
Die unten angeführten Gleichungen 1A und 1B
stellen eine Multi-Paket-Verzögerungsgrenze
für ein Element
dar, wobei:
link_rate die Betriebsgeschwindigkeit der betrachteten
Ausgangsverbindungsleitung ist,
mux_ratio das Verhältnis der
Verbindungsleitungs-Geschwindigkeit
des Ausgangsanschlusses zu der Verbindungsleitungs-Geschwindigkeit
des Eingangsanschlusses darstellt,
Nip die
Anzahl von Eingangsanschlüssen
ist, die Flüsse
der Klasse mit begrenzter Verzögerung
(BD) führen und
die Ausgangsverbindungsleitungen ansteuern,
Nflows die
maximale Anzahl von Flüssen
mit begrenzter Verzögerung
ist,
lmax die maximale Größe von Paketen
der Klasse mit begrenzter Verzögerung
ist, und
lbe die maximale Größe von Paketen
nach bester Möglichkeit
ist:
-
Gleichung
1A:
(Gleichung
1B)
-
Es ist offensichtlich, dass ein Verständnis von
Gleichung 1A und Gleichung 1B oder ähnlichen Ausdrücken zusammen
mit einer Steuerung der Spitzenwert-Bandbreite als die Grundlage
für CAC-Regeln
verwendet werden kann, wodurch neue Flüsse darauf geprüft werden
können,
ob sie zugelassen werden können,
ohne eine spezifizierte Verzögerungsgrenze
zu verletzen. Diese bestimmten Gleichungen stellen die ungünstigste Verteilung
von Flüssen über Eingangsanschlüsse dar.
-
Die Gleichungen 1A und 1B sind ausreichend
allgemein, damit sie auf eine Reihe von Situationen angewendet werden
können.
Bei bestimmten besonderen Interessefällen verringern sie sich jedoch
auf eine vereinfachte Form, und zum Zweck der Veranschaulichungen
werden zwei Beispiel dargestellt. In jedem Beispiel wird angenommen,
dass der Term lbe/link_rate klein genug
ist, um vernachlässigt
zu werden.
-
Wenn mux_ratio = Nip:
reduziert sich die Gleichung 1A auf:
-
-
In diesem Fall wird die Verzögerung über dieses
Element automatisch begrenzt, so dass eine Verzögerungsgrenze auch ohne das
Wissen über
die tatsächliche
Anzahl der Flüsse
gesetzt werden kann.
-
Dies kann den Fall eines Zugangsknotens
darstellen, an dem die an Ausgangsverbindungsleitungen verfügbare Bandbreite
derart dimensioniert wurde, um die Summe der Bandbreiten aller Eingangsverbindungsleitungen
aufzunehmen, die Verkehr mit begrenzter Verzögerung führen.
-
Wenn mux_ratio = 1, und Nflows >> Nip >> 1, nähert
sich die Gleichung an :
-
-
Dies kann den Fall eines Netzknoten
eines Kernnetzwerks darstellen, mit gleichen Bandbreiten für die Eingangs-
und Ausgangsverbindungsleitungen und (zum Beispiel) mehr als vier
Sätzen
von Eingangs- und Ausgangsanschlüssen.
In diesem Fall ist ein Betrieb mit begrenzter Verzögerung nicht
länger
automatisch, da eine gewisse Steuerung der Flüsse notwendig ist, die in die
Klasse mit begrenzter Verzögerung
zugelassen wurden, um sicherzustellen, dass eine Verzögerungsgrenze
garantiert werden kann.
-
Eine Spitzen-Bandbreiten-CAC-Überprüfung kann
durch Gleichung 4 ausgedrückt
werden:
-
-
Wobei Pk_flow die
Spitzen-Bandbreite des neuen Flusses ist, der Zugang zur Klasse
mit begrenzter Verzögerung
(BD) fordert, Pk_accum die Summe der Spitzen-Bandbreiten
aller gegenwärtig
angenommenen BD-Flüsse
ist, und Pk_alloc die gesamte dem BD-Verkehr
zugewiesene Bandbreite ist. Dies beschreibt die an neuen Flüssen vorgenommene Überprüfung, wobei
untersucht wird, ob die Summe der Spitzen-Bandbreiten des neuen Flusses und der
gegenwärtig
angenommenen Flüsse
die zugewiesene Bandbreite nicht überschreitet. Der Term Pk_alloc kann kleiner als die Verbindungsrate
gewählt
werden, um einen bestimmten Grad an Bandbreite für die Klasse nach bester Möglichkeit
zu garantieren.
-
In dem durch Gleichung (2) beschriebenen
Fall und unter der Vorraussetzung bekannter Beschränkungen
für Nip und 1max kann
der durch Gleichung (4) beschriebene Test die einzig notwendige
Bedingung für CAC
sein.
-
In dem durch Gleichung (3) beschriebenen
Fall ist es zusätzlich
zum Anwenden des Spitzen-Bandbreite-Tests für das CAC-Verfahren auch notwendig,
Nflows auf einen Wert Nflows_alloc Zu
begrenzen, um eine Verzögerungsgrenze
zu errichten. Jedoch findet, indem eine minimale Spitzen-Bandbreite
Pk_min definiert wird, welche die minimale
Spitzen-Bandbreite
darstellt, mit der jeder Fluss verknüpft werden kann, die Beschränkung auf
Nflows_alloc implizit beim Anwenden der
Spitzen-Bandbreite-CAC-Bedingung
statt. Somit ist Nflows_alloc beschränkt auf:
Pk_alloc/Pk_min und
die Verzögerungsgrenze
Tbound ist dann:
-
-
Es ist offensichtlich, dass in diesem
Beispiel eine notwendige Verzögerungsgrenze
von einem Netzbetreiber gewählt
werden kann, indem lmax und Pk_min spezifiziert
werden.
-
Unter bestimmten Bedingungen kann
es wünschenswert
sein, eine bessere Ausnutzung der BD-Klasse durch Verwendung von
Wissen über
die maximale Paketgröße jedes
einzelnen Flusses zu erreichen. Somit kann jeder Fluss sowohl seinen
Spitzen-Bandbreitenbedarf angeben als auch eine maximale Paketgröße spezifizieren,
wobei l
imax dies für den i-ten Fluss darstellt.
Für die
Netzwerkelemente mit gleichen Eingangs- und Ausgangs-Verbindungsgeschwindigkeiten
und unter Berücksichtigung
von Unterschieden der maximalen Paketgrößen verschiedener Flüsse kann
die Verzögerungsgrenze
von einer allgemeineren Form der Gleichung (3) näherungsweise berechnet weren:
(Gleichung
6) wobei die Summe über alle in den Pufferspeicher
zugelassenen Flüsse
geht. In diesem Fall ist nun eine explizite Steuerung der Flüsse notwendig.
Dies kann erreicht werden, indem eine weitere CAC-Bedingung auf die Paketgröße angewendet
wird, die zusätzlich
zu dem Spitzenwerttest erfüllt
werden muss:
wobei l
max_accum die
Summe der maximalen Paketlängen
aller gegenwärtig
zugelassenen BD-Flüsse
ist, und l
alloc die maximal zulässige Summe
der maximalen Paketlängen
der Flüsse
ist. Es ist offensicht lich, dass dies von einem Netzbetreiber gewählt werden
kann, um eine bestimmte Verzögerungsgrenze
sicherzustellen, und entspricht einer Grenze der Pufferspeicherfüllung für die BD-Warteschlange.
-
Werden die CAC-Regeln zur Zulassung
von Multipaket-Flüssen
in die BD-Klasse betrachtet, wird es offensichtlich, dass diese
Regeln für
den speziellen Fall von Einzelpaket-Flüssen etwas modifiziert werden müssen. Für die zu
der Gleichung (2) gehörenden
Bedingungen prüft
das CAC-Verfahren, ob ausreichend Reserve-Bandbreite zur Verfügung steht
oder nicht, um einen neuen Fluss aufzunehmen, aber das Konzept der Beschreibung
eines Einzelpaket-Flusses hinsichtlich eines kontinuierlichen Spitzenwert-Parameters
ist sinnlos. Jedoch sind Mittel notwendig, Flüsse zuzulassen, die so kurz
wie ein einzelnes Paket sind, wodurch sichergestellt wird, dass
die der BD-Klasse zugewiesene Bandbreite nicht überschritten wird. Eine geeignete Technik
besteht darin, einen Spitzenwert-Parameter zuzuweisen, welcher nach
einer gewissen Zeit, nachdem der Fluss beendet ist, abläuft. Es
gibt verschiedene Möglichkeiten,
einen Spitzen-Bandbreiten-Wert zu wählen, beispielsweise kann das
oben diskutierte Pk_min-Konzept verwendet
werden. Ein bestimmter Pk_min-Wert kann als
Teil des Verfahrens zur Gestaltung des Netzes gewählt werden,
und CAC wird dann als Standard so voreingestellt, diesen Wert als
den Bandbreiten-Parameter
für Einzelpaket-Flüsse zu verwenden.
Unter diesen Betriebsbedingungen läuft der Bandbreite-Zugangstest
für ein
einzelnes Paket genauso ab wie für
Multipaket-Flüsse,
außer
dass Pk_flow (Gleichung 4) durch Pk_min ersetzt wird, viz
-
-
Für
die zur Gleichung (3) gehörenden
Bedingungen prüft
CAC auch, ob ausreichend Reserve-Pufferspeicherplatz verfügbar ist,
und wendet die von Gleichung (7) beschriebenen CAC-Regeln an. Dieser
Typ des CAC-Ansatzes, die Anzahl der Flüsse implizit zu begrenzen,
kann für
einzelne Paketflüsse
genauso angewendet werden. Für
Netzwerke, die das oben beschriebene Pk_min-Konzept
verwenden, kann die Gleichung (7) sowohl für Einzelpaket-Flüsse als
auch für
Flüsse
mit mehreren Paketen angewendet werden.
-
Jedoch würde der CAC-Ansatz mit unabhängigem doppelten
Test wohldurchdachtere CAC-Verfahren ermöglichen, als es mit dem Pk_min- Ansatz möglich ist. In einem Beispiel
eines derartigen Verfahrens weist der CAC-Prozessor, welcher laufende
Summen des verfügbaren
Pufferspeicherplatzes und der Bandbreite unterhält, entweder die gesamte oder
einen Anteil der Reserve-Bandbreite jedem neuen Einzelpaket-Fluss
zu. In dem Fall, in dem ein Anteil zugewiesen wird, kann der Teil
beispielsweise proportional zu dem Verhältnis von Paketgröße zu verfügbarem Pufferspeicherplatz
gewählt
werden. Eine Anwendung einer dieser Ansätze beeinflusst die Form der
früheren
CAC-Tests nicht, sie führt
nur zu bestimmten Fällen
mit etwas unterschiedlichen Definitionen für die CAC-Parameter und -Werte.
-
Ein zusätzlicher Nutzen dieses Ansatzes
liegt darin, dass auch einfaches FIFO-Scheduling verwendet werden
kann, wodurch die Komplexität
und der erhebliche Verarbeitungs-Overhead vermieden werden, die
zu Schemen wie der WFQ gehören.
Das Erlassen einer maximalen Paketgröße ist insbesondere wichtig,
wenn ein FIFO-Scheduling verwendet wird, da es ebenso ermittelt,
ob ein akzeptabler Grad des Teilens von Bandbreite über alle
Flüsse
hinweg stattfindet oder nicht.
-
Wenn beispielsweise ein Anfangspaket
eines neuen Flusses erhalten wird, kann der Paket-Identifizierer
(5, 16, 28, 38), der das Paket
als solches identifiziert hat, veranlassen, dass zusätzliche
Verarbeitung stattfindet, um einen Spitzenwert-Bandbreitenbedarf
dem Fluss für
begrenzte Verzögerung
zuzuordnen. Diese zusätzliche
Verarbeitung kann zum Beispiel die Berechnung eines Bandbreitenbedarfs
auf der Grundlage eines von einem Nutzer vorgeschlagenen Verzögerungsbedarfs
umfassen.
-
Durch eine weitere Verarbeitung in
dem Verarbeitungselement (6, 17, 29, 39)
kann dann festgestellt werden, ob der erste Pufferspeicher (4, 18, 30, 40)
und der zugehörige
Ausgangsanschluss (11, 23, 32, 42) die
CAC-Bedingungen erfüllen
können,
und als daraus folgendes Ergebnis kann entschieden werden, ob der neue
Fluss in den ersten Pufferspeicher (4, 18, 30, 40)
zugelassen wird oder nicht.
-
Es ist offensichtlich, dass die Identifizierung
zwischen bestimmten Flüssen
und zugehörigem
Spitzenwert-Bandbreitenbedarf auf mehrere Arten durchgeführt werden
können.
-
Natürlich gibt es die Möglichkeit,
dass einem neuen Fluss mit begrenzter Verzögerung der Zugang zu dem ersten
Pufferspeicher unter den CAC-Regeln nicht gewährt wird.
-
Ein Ansatz, mit dieser Möglichkeit
umzugehen, liegt darin, die aufgrund der CAC-Regeln zurückgewiesenen
Flusspakete in den zweiten Pufferspeicher zuzulassen, wo diese auf
Grundlage der besten Möglichkeit behandelt
werden. Gleichzeitig kann eine geeignete Meldung über die „zurückgewiesene
Verbindung" an die Quelle
weitergeleitet werden. Nachfolgende Pakete desselben Flusses können weiterhin
Signalisierungsinformation einer „Verbindungs- Anforderung" mitführen, um
die weiterhin bestehende Möglichkeit
sicherzustellen, dass der Fluss eventuell in den ersten Pufferspeicher
zugelassen wird.
-
In der einfachsten Situation tritt
in einem Netzwerkelement eine Verzögerung für den ungünstigsten Fall (worst case)
auf, wenn der Pufferspeicher ein rückständiges Paket von jedem zugelassenen
Fluss enthält, somit
ist die Grenze im ungünstigsten
Fall gleich der Summe der größten Paketgröße eines
jeden zugelassenen Flusses, geteilt durch die Ausgangs-Verbindungsgeschwindigkeit.
Somit hat ein Reduzieren der maximal erlaubten Paketgröße für die Klasse
mit begrenzter Verzögerung
eine umgekehrt proportionale Wirkung auf die Anzahl der Sitzungen,
die aufgenommen werden können,
während
eine bestimmte Verzögerungsgrenze erreicht
wird. Diese Wirkung kann in Betracht gezogen werden, wenn eine maximal
erlaubte Paketgröße für die Klasse
mit begrenzter Verzögerung
gewählt
wird.
-
Wenn ein Fluss akzeptiert wurde,
wird die notwendige Zustandsinformation in einem Speicher (nicht gezeigt)
gespeichert und verbleibt darin, bis der Fluss aufhört. Zu diesem
Zeitpunkt wird ein Löschungsvorgang entweder
durch ein Verfahren mit „weichem
Zustand" (soft-state)
oder durch einen vordefinierten Paket-Identifizierer ausgelöst.
-
Wenn ein Fluss der BD-Klasse in das
Netzwerk zugelassen wurde, unabhängig
davon, ob es sich um einen Einzelpaket- oder einen Multipaket-Fluss
handelt, wurden Bandbreite und/oder Pufferspeicher- platz tatsächlich reserviert,
und diese Betriebsmittel müssen
freigegeben werden, wenn ein Fluss beendet wird. Die reservierten
Betriebsmittel können
entweder durch Time-out-Mechanismen oder durch bestimmte Anforderungen
freigegeben werden. Ein Beispiel für die Verwendung des Ansatzes
der bestimmten Anforderung ist, wenn das letzte Paket eines Flusses
zusätzliche
Verarbeitung innerhalb des Netzknotens auslöst, um dessen reservierte Betriebsmittel
freizugeben. Da jedoch Flüsse
auf einer Spitzenwert-Grundlage zugelassen werden, schreibt dies
vor, dass die Betriebsmittel für
eine Wiederverwendung nicht verfügbar
werden, bis der Zeitablauf seit dem Zulassen des letzten Pakets
einen bestimmten kritischen Wert erreicht, der mit Trelease bezeichnet
wird. Der Wert von Trelease ist Variabel,
da er sowohl von der Größe des letzten
Pakets als auch dem Spitzenwert des Flusses abhängig ist. Für Multipaket-Flüsse ist
Trelea se gleich
-
-
Gibt es jedoch eine spezifizierte
maximal erlaubte Paketgröße für die BD-Klasse,
kann Trelease unabhängig von einer Paketgröße gemacht
werden, unter Verwendung von
-
-
Jedoch wäre das auf Kosten der Reduzierung
der Effizienz bei der Verwendung von Betriebsmitteln, wobei die
tatsächliche
Reduzierung direkt von der maximal erlaubten Paketgröße abhängig ist.
Ein Vorteil dieser Vereinfachung jedoch ist, dass Trelease als
Teil des CAC-Verfahrens
berechnet werden kann, welches dann einen Freigabe- Zähler starten kann, welcher
bei Erreichen eines zu Trelease gleichen
Wertes den Wert von lmax_accum um einen
Betrag gleich li
max und
den Wert von Pk_accum um einen Betrag gleich
Pk_flow verringern kann.
-
Das Freigabe-Verfahren für Einzelpaket-Flüsse ist
identisch zu dem für
Multipaket-Flüsse
beschriebenen Verfahren, mit dem einzigen Unterschied, dass beim
Berechnen von Trelease der Pk_flow-Term
mit dem geeigneten Bandbreiten-Term ersetzt wird. Beispielsweise
würden,
wenn das wie oben erörterte
Pk_min-Konzept verwendet wird, alle Berechnungen
für Betriebsmittel-Freigaben,
die Pk_flow verwenden, stattdessen Pk_min verwenden.
-
Es ist offensichtlich, dass, wenn
ein Fluss zugelassen wurde, dem Fluss-Header-Paket nachfolgende Pakete
des Flusses keine Angabe des Spitzenwert-Bandbreitenbedarfs des
Flusses führen
müssen.
-
Wie erörtert, wird eine Spitzenwert-CAC
verwendet, da sie eine deterministische Grenze der Pufferspeichergröße im ungünstigsten
Fall (worst case) liefert und somit Verbindungsverzögerungen
im ungünstigsten
Fall auf Werte begrenzt, welche sowohl von der maximalen Paketgröße als auch
der maximalen Anzahl von gleichzeitigen Benutzern bestimmt werden.
Folglich kann ein Paketverlust durch Verwendung der Pufferspeichergröße für den ungünstigsten
Fall verhindert werden, und Verbindungsverzögerungen können, wenn notwendig, einfach
durch Aufstellen eines geeigneten Limits der maximalen Paketgröße reduziert
werden. Die Verwendung einer Pufferspeichergröße, die geringer als für den ungünstigsten
Fall ist, führt
zu einer statistischen Wahrscheinlichkeit eines Pufferspeicherüberlaufs
und eines folgenden Paketverlust.
-
Es muss zur Kenntnis genommen werden,
dass CAC-Regeln definiert werden können, welche die Bereitstellung
einer Kombination ohne Paketverluste, zusammen mit einer absoluten
oder ungünstigsten
(worst case) Verzögerungsgrenze,
welche die größte Verzögerung darstellt,
die jemals unter allen Bedingungen beobachtet werden könnte (anders
als ein Fehler), erzwingen.
-
Eine leichte Einschränkung ist
für diese
Feststellung notwendig, da die Grenzen, die bis jetzt als „ungünstigster
Fall" bezeichnet
wurden, nur gültig
sind, wenn die Flüsse
am Eingang eines Netzknotens Spitzenwert-geformt sind, aber es ist
bekannt, dass die Zwischenräume
zwischen den Paketen eines Flusses wahrscheinlich gestört werden,
wenn sich dieser durch das Netzwerk ausbreitet. Dies führt zu einzelnen
transienten Zunahmen des Spitzenwerts, was unter einigen Umständen theoretisch
dazu führen
kann, dass die Grenze für den „ungünstigsten
Fall" durchbrochen
wird. Die Folgen sind entweder ein Paketverlust (wenn der Pufferspeicher
exakt so bemessen wurde, dass er mit der Verzögerungsgrenze für den ungünstigsten
Fall übereinstimmt) oder
eine erhöhte
Verzögerung,
wenn der Pufferspeicher größer als
die Verzögerungsgrenze
für den
ungünstigsten
Fall ist.
-
In einem gut gestalteten Netzwerk
jedoch und wenn die Spitzenwertsumme eines Verkehrs mit begrenzter
Verzögerung
etwas geringer ist als die von dem Scheduler vorgesehene Verarbeitungsrate
(das Bilden einer Prioritäts-Warteschlange
ist in dieser Beziehung ideal), kann jede der transienten Fluktuationen
des Spitzenwerts hinreichend beschränkt werden, um die Verzögerungsgrenze
nicht zu durchbrechen. Tatsächlich ist
gerade das Gegenteil der Fall; in vielen Beispielen sind die Bedingungen
an bestimmten Netzknoten derart, dass die „ungünstigster Fall"-Grenze in statistischer
Hinsicht allzu pessimistisch ist.
-
Es wird deshalb nicht vorgeschlagen,
dass es für
CAC immer passend ist, die Verzögerungsgrenze
für den
ungünstigsten
Fall zu berücksichtigen,
da diese Grenze zunehmend pessimistisch wird, wenn die maximale
Anzahl von Flüssen,
die aufgenommen werden kann, zunimmt. Stattdessen glauben wir, dass
CAC-Regeln in einigen Fällen
etwas gelockert werden können,
wodurch mehr Flüsse
zugelassen werden können,
und dass CAC gemäß der Position
eines Netzknotens auf zumindest drei Arten angewendet werden kann:
-
Wenn die erforderliche Verzögerungsgrenze äquivalent
zu einem relativ kleinen Rückstand
von BD-Paketen ist (zum Beispiel bei einer Verbindung mit geringer
Geschwindigkeit), basiert die Zugangssteuerung auf einer Kombination
eines „Spitzenwertsummentests" und eines „ungünstigster
Fall-Verzögerungstests".
-
Wenn die Verbindungsgeschwindigkeit
derart ist, dass die Verarbeitungszeit eines einzelnen Pakets im
Vergleich zu der erforderlichen Verzögerungsgrenze ausreichend klein
ist, können
statistische Erwägungen zu
der Folgerung führen,
dass nur der „Spitzenwertsummentest" angewendet werden
muss.
-
Zwischen diesen beiden Extremen kann
die Zugangssteuerung geeigneterweise auf einer Kombination aus einem „Spitzenwertsummentest" und einem „ungünstigster
Fall-Verzögerungstest" basieren. Letzterer basiert
auf dem Zulassen von Flüssen
solange, bis die Wahrscheinlichkeit, eine spezifizierte Verzögerung zu überschreiten,
einen bestimmten (kleinen) Wert überschreitet.
-
Darüber hinaus kann es hinsichtlich
des Spitzenbandbreite-Summentests
als praktisch angesehen werden, einen Grad statistischen Multiplexens
anzuwenden, insbesondere für
Netzknoten, welche dazu vorgesehen sind, eine große Anzahl
von Flüssen
zu übertragen.
Dies hat zur Folge, dass die Summe der Spitzenwerte für alle zugelassenen
Sitzungen die zugewiesene Spitzenwertsumme für den Verkehr der Klasse mit begrenzter
Verzögerung überschreiten
kann. Dies kann auf Grundlage des Wissens oder der Wahrscheinlichkeit
erfolgen, dass Hostrechner zeitweise Verkehr mit einem Ausmaß unterhalb
ihrer spezifizierten Spitzenwerte erzeugen.
-
Es wird erwartet, dass zukünftige Netzwerke
sehr wahrscheinlich eine Mischung aus Verkehr nach bester Möglichkeit
und Verkehr mit begrenzter Verzögerung
unterstützen,
wobei die Verwendung einer Spitzenwert-CAC für die Klasse der begrenzten
Verzögerung
nicht notwendigerweise zu einer schlechten Ausnutzung der Verbindung
führt.
Der Grund dafür
liegt darin, dass der Modus nach bester Möglichkeit sich an die vorhandenen
vorbestimmten Anteile derart anpasst, jede Reserve-Bandbreite des
Modus für
begrenzte Verzögerung
zu benutzen. Tatsächlich
bedeutet dies, dass der Modus für
begrenzte Verzögerung
einen garantierten maximalen Anteil der gesamten Bandbreite umfassen
wird, und dass der Modus nach bester Möglichkeit einen garantierten
minimalen Anteil umfassen wird, welcher im Mittel größer sein
wird, als von den Ausnutzungsstatistiken des Modus für begrenzte
Verzögerung
bestimmt. Eine ähnliche
Situation besteht auch hinsichtlich einer Pufferspeicherausnutzung,
wie im Folgenden erläutert
wird.
-
Wenn der Pufferspeicher für begrenzte
Verzögerung
derart dimensioniert ist, jeglichen Paketverlust zu vermeiden, erscheint
er im Mittel übermäßig überdimensioniert,
wenn das Netzwerk nur einen Verkehr mit begrenzter Verzögerung unterstützt. Wenn
es jedoch beide Betriebsmodi unterstützt, könnte jeder nicht gebrauchte
Pufferspeicherplatz, wenn notwendig, zur Verwendung durch den Modus
nach bester Möglichkeit freigegeben
werden. Eine Implementierung dieses Merkmals könnte sein, bestimmte Grade
der Pufferspeicherfüllung
als Metriken zum Anfordern/Freigeben von Pufferspeicherplatz zu
verwenden. Somit sollte es möglich
sein, den gesamten Pufferspeicherplatz derart zu dimensionieren,
dass ein vernünftiger
Grad von Pufferspeicherausnutzung erreicht wird, ohne aber eine
bestimmte Wahrscheinlichkeit eines Paketverlustes akzeptieren zu
müssen.
Anders gesehen, anstatt dass der Modus für begrenzte Verzögerung eine
endliche Wahrscheinlichkeit eines Paketverlustes aufweist, wie es
normalerweise der Fall ist, wird es wahrscheinlich, dass der Modus
nach bester Möglichkeit
einigen Pufferspeicherplatz aufgibt.
-
Durch die Verwendung geeigneter Kombinationen
der in 1(a) bis 1(d) gezeigten Netzwerkelemente
werden eine Vielzahl von Netzwerkgestaltungen verfügbar, welche
sowohl den Modus nach bester Möglichkeit
als auch den Modus für
begrenzte Verzögerung
unterstützten,
wie in 2(a) bis 2(c) gezeigt wird.
-
Wiederum ist, wie hinsichtlich der
Netzwerkelemente erörtert
wurde, zu erkennen, dass, obwohl nur ein einzelner Pfad zwischen
dem sen denden Hostrechner und dem empfangenden Hostrechner gezeigt
wird, die Netzwerkelemente 1a–1d
tatsächlich
Verbindungen mit vielen anderen, einen Teil des Netzwerks bildenden Netzknoten
(nicht gezeigt) des Netzwerks aufweisen.
-
In 2(a) ermöglicht ein
Zugangs-Netzknoten (1), der auf der Netzknotenarchitektur
von 1(a) basiert, und
ein Ausgangs-Netzknoten (25), der auf der Architektur von 1(c) basiert, eine Verbindung
zu jeweils physikalisch getrennten verbindungsorientierten und verbindungslosen
Netzwerken.
-
2(b) zeigt
ein ähnliches
Netzwerkbeispiel wie in 2(a),
welches aber eine Vielzahl von in der Netzknotenarchitektur von 1(b) gezeigter Netzknoten
(13) verwendet, um eine Verbindung zwischen dem Zugangs-Netzknoten
(1) der Netzknotenarchitektur von 1(a) und dem Ausgangs-Netzknoten (25)
der Netzknotenarchitektur von 1(c) herzustellen.
-
2(c) zeigt
ein Netzwerk, welches nur aus Elementen gemäß der Netzknotenarchitektur
(35) von 1(d) besteht.
-
Es ist anzumerken, dass CAC nur an
einem einzelnen Netzknoten oder einer Teilmenge von Netzknoten anstatt
an jedem Netzknoten durchgeführt
werden muss. Es ist möglich,
CAC beispielsweise nur an dem Zugangs-Netzknoten oder an dem Ausgangs-Netzknoten
anzuwenden.
-
Ein wichtiges Merkmal der Erfindung
ist die Fähigkeit,
die Notwendigkeit zur Verhandlung über Verzögerungen beim Erstellen eines Flussmodus
für begrenzte
Verzögerung
zu beseitigen. Dies wird erreicht, indem die Netzwerkverzögerungen
bis zu dem Punkt reduziert werden, an dem sie ein zu vernachlässigender
Teil der gesamten End-zu-End Verzögerung werden. Wie erörtert, verursachen
mehrere Faktoren eine Verzögerung an
einem Element, aber grundsätzlich
werden sie von der Geschwindigkeit der Verbindung des Ausgabe-Anschlusses und des
Füllzustands
des Pufferspeichers bestimmt, welcher andererseits von der maximalen
Paketgröße und den
CAC-Regeln abhängt (das
heißt,
von der maximal erlaubten Anzahl von gleichzeitigen Benutzern und
der Grad des statistischen Multiplexens).
-
Rein schematische Beispiele von Veränderungen
einer relativen Verzögerung
als eine Funktion dieser Parameter werden in 3(a) bis 3(c) gezeigt.
-
3(a) zeigt
eine schematische Darstellung der Bestandteile der gesamten End-zu-End
Verzögerung
für eine
bestimmte Netzwerkkonfiguration mit einer Vielzahl von Netzwerkelementen,
welche einen Bereich von Verbindungsgeschwindigkeiten aufweisen,
die nur Flüsse
für Verbindungsmodi
mit beispielsweise einer maximalen Paketgröße von 1 Kbyte unterstützen und
ein statistisches Multiplexing-Verhältnis von
2.5 verwenden. Es ist für
dieses spezielle Beispiel offensichtlich, dass die gesamte End-zu-End
Verzögerung
von den Verzögerungen
der Netzwerkverbindungen beherrscht wird.
-
Ein Vergleich von 3(a) mit 3(b) zeigt
jedoch, wie diese Verzögerungen
geringer werden, wenn CAC statistisches Multiplexen verhindert (das
heißt,
der momentane Bandbreitenbedarf überschreitet niemals den
zugewiesenen Anteil). Ein Vergleich ferner von 3(c) mit 3(b) zeigt
die zusätzlichen
Verringerungen, die mit einer fünffachen
Reduzierung der Paketgröße erreicht
wird. Es wird aus diesen Vergleichen sofort offensichtlich, dass
die End-zu-End-Verzögerung
zu einem Zeitpunkt von dem Zustand, in dem sie von Verbindungsverzögerungen
beherrscht wird, in den Zustand wechselt, in dem sie von Verzögerungen
der Hostrechner beherrscht wird.
-
Ein weiterer die Verbindungsverzögerung beeinflussender
Faktor ist der Anteil der gesamten Bandbreite, die für einen
Betrieb des Verbindungsmodus zugewiesen wird. Zum Beispiel stellen
in unserem besonderen Beispiel die durch Verringerung der Paketgröße erreichten
Verringerungen der Verzögerung
auch die dar, welche aus der Verringerung der der Klasse für begrenzte
Verzögerung
zugewiesenen Bandbreite von 100% auf 25% der gesamten Bandbreite
der Ausgabe-Verbindung resultieren würden.
-
Aus der vorhergehenden Erörterung
folgt, dass für
die Betriebsklasse mit begrenzter Verzögerung durch die Kombination
von nichtstatistischem Multiplexen (Spitzenwert-dimensionierte Bandbreite),
kleiner Paketgröße, hoher
Verbindungsgeschwindigkeit und einem kleinen Anteil der gesamten
Bandbreiten-Zuweisung die Verbindungsverzögerung auf einem Minimum gehalten
werden kann.
-
Ein Vorteil des Betriebs innerhalb
der von Verzögerungen
durch Hostrechner beherrschten Betriebsbedingungen liegt darin,
dass es für
Anwendungen möglich
ist, ihre eigene End-zu-End Verzögerung
einfach durch ein Setzen geeigneter Betriebsbedingungen steuern
zu können,
ohne dass das Netzwerk beteiligt sein muss; aber sicherlich hängt dies
letztendlich von den Anforderungen der Anwendungen ab. Ein Beispiel
dafür kann
die Ermittlung einer nominalen Rahmengröße für Daten sein, was für den empfangenden
Hostrechner nützlich
sein wird. Dies liegt aber noch immer innerhalb eines tolerierbaren
Verzögerungs-Betriebszustands und
wird von der Rahmenfüll-/Rahmenlesezeit verursacht.
Es muss sicherlich festgehalten werden, dass die Brauchbarkeit der
Erfindung nicht auf den Betrieb in einem Betriebszustand beschränkt ist,
in dem Verzögerungen
durch Hostrechner vorherrschen. Vorteilhafte Betriebsbedingungen
ergeben sich ebenfalls, wenn alle Verzögerungen gleich, aber gering
sind.
-
Wie erwähnt können die Identifizierungen
zwischen gegebenen Flüssen
und den zugehörigen
Spitzenwert-Bandbreiten auf mehrere Arten durchgeführt werden.
Das von IETF definierte Betriebsmittel-Reservierungs-Setup-Protokoll (RSVP – Resource
Reservation Set-Up Protocol) liefert ein derartiges Mittel. Der
RSVP-Pfad und die Resv-Signalisierungsmeldungen
würden
wie normal unter Verwendung von Tspec- und Rspec-Feldern arbeiten,
um den Fluss der BD-Klasse und die Spitzenwertanforderungen Pk_flow für
diesen Fluss zu identifizieren, wobei diese Signalisierungsmeldungen
abschnittsweise (hop by hop) zum Empfänger und dann abschnittsweise
zurück
an den Sender geleitet werden. Für
einen Netzknoten, welcher die in Gleichung 4 beschriebene Spitzenbandbreite-CAC-Regel
anwendet, würde
jeder Abschnitt zurück
an den Sender die Summe der angeforderten Bandbreite Pk_flow und
der vorhandenen akkumulierten Bandbreite Pk_accum mit der
gesamten Bandbreite vergleichen, welche an dem Ausgangs-Anschluss
(Richtung von Sender an Empfänger)
der BD-Klasse (Pk_alloc) zugewiesen ist. Es würde auch
sichergestellt werden, dass andere anwendbare CAC-Regeln auf ähnliche
Weise angewendet würden.
-
Wenn CAC erfolgreich ist, werden
die Spitzenbandbreite für
diesen Fluss, Pk_flow, und der zugehörige Fluss-Klassifizierer
zusammen mit allen anderen für
die CAC-Steuerung verwendeten Parametern in dem Netzknoten gespeichert.
Dieser Zustand wird von RSVP-Meldungen
wie normal aktualisiert. Ein Erhalt von Datenpaketen kann ebenso
verwendet werden, um diesen Zustand zu aktualisieren. Dieser „weiche" Zustand würde daher
entfernt werden, wenn er nicht aktualisiert und die zugehörigen Bandbreite
und Flusszähler
dementsprechend modifiziert würden.
Es ist offensichtlich, dass eine Identifizierung von Flüssen, welche
die CAC passiert haben, den Verkehr überwachen und sicherstellen
muss, dass, wenn die Flüsse
aufhören,
die entsprechenden Änderungen
der Schlüssel-Nutzungsparameter
aufgezeichnet werden. Zum Beispiel wird der korrekte Pk_flow-Wert
von dem Gesamtbetrag des Ausgangs-Anschlusses Pk_accum entfernt.
RSVP-Reservierungen für
die IP-Version 4 werden von Quelladresse/Zieladresse/Anschluß-Triples
identifiziert, die als die Fluss-Klassifizierer wirken. IP-Version 6 weist
den Begriff eines einzelnen Felds mit Namen Fluss-ID auf. Andere
Klassifizierer, die sich auf Gruppen von Sendern oder Empfängern (Adressen-Präfixe), Verkehrstypen (Anschlussnummer/Transportprotokoll)
oder andere Identifizierer beziehen, wie „Tags", sind allgemein bekannt und könnten verwendet
werden, um einen zusammengesetzten Klassifizierer vorzusehen. Mehrere
Flüsse können leicht
in der CAC und in Signalisierungsverfahren unserer Erfindung zusammengefasst
werden, indem einfach die gesamte Spitzenbandbreite der zusammengefassten
Flüsse
summiert wird und dies als ein zusammengesetzter Klassifi zierer
gespeichert wird. Diese zusammengefasste gesamte Spitzenbandbreite,
der Pk_flow-Wert, wird an den nächsten,
flussabwärts
gelegenen Netzknoten gesendet. Das Modus-Identifizierungs-Verfahren
kann auf mehrere Arten erreicht werden und könnte in diesem Fall ein Teil
des allgemeinen „Außerband
(out of band)"-RSVP-Signalisierungs-
und Klassifizierungsverfahrens sein.
-
Wenn CAC ausfällt, wird der Zustand des Klassifizierers
gespeichert, aber keine Betriebsmittel werden zugewiesen. Dieser
Klassifiziererzustand wird verwendet, um eingehende BD-Pakete von
diesem Fluss in den BE-Pufferspeicher dieses Netzknotens umzuleiten,
um die anderen zugelassenen BD-Flüsse in diesem Netzknoten zu
schützen.
Flussabwärts
gelegene Netzknoten, in denen dieser Fluss die CAC passierte, können dieses
Paket noch immer zurück
in die BD-Klasse bringen. RSVP-Messaging kann sicherstellen, dass
der Kunde über
eine unvollständige
Reservierung informiert wird, oder andere Protokolle oder Diagnose-Hilfsmittel
können
diese Rückmeldung
vorsehen. Der Kunde kann an diesem Punkt entscheiden, den Fluss
aufgrund des Ausfalls der BD-Klassen-Anforderung zu beenden, was
dazu führen
würde,
dass der Klassifiziererzustand in allen Netzknoten durch eine Zeitüberschreitung
unterbrochen wird. Wenn der Benutzer fortfährt und BD-Pakete sendet, dann
würden
diese in bestimmten Netzknoten (ausgefallene CAC) den BE-Pufferspeicher
benutzen; einige Zeit später
können
in diesem Netzknoten Betriebsmittel verfügbar werden, was bei einer
Aktualisierung des CAC-Verfahrens dazu führt, dass dieser Fluss in die
BD-Klasse zugelassen wird. Dafür
sind eine Anzahl von Algorithmen möglich, aber ein Beispiel würde sein,
dass ausgefallene Flüsse
in einem Netzknoten auf Grundlage von „zuerst ausgefallen, zuerst
bearbeitet" (First
Failed First Served) gesucht werden, um den Fluss/die Flüsse mit
Pk_flow zu finden, welcher/welche dieses
neu freigegebene Betriebsmittel auffüllen kann/können. Der beste Algorithmus
hängt von
anderen Faktoren ab, wie dem Verrechnungsmodell, der Anzahl verschiedener
Flusstypen und der Zielausnutzung des Netzknotens.
-
Eine Überwachung könnte entweder
an allen Netzknoten oder nur an den Eingangs- und Ausgangs-Netzknoten
dieses verzögerungsbegrenzten
Netzwerks stattfinden, wenn eine ausreichende Kapazität für die Verkehrs-Matrix
und der zugewiesenen Menge der BD-Klassen-Kapazität vorgesehen wurde. Das Überwachen
würde sicherstellen,
dass die Flüsse
der BD-Klasse innerhalb der angegebenen maximalen Paketlänge und
des Spitzenwerts gehalten werden, und ebenso Funktionen implementieren,
wie Paketzählung, Reservierungsverfahren
und Verrechnung.
-
Änderungen
des Routings würden
dazu führen,
dass die Pakete für
diesen Fluss andere Netzknoten benutzen, und der Aktualisierungsmechanismus
würde verwendet,
um CAC in den neuen Netzknoten aufzurufen, während der „weiche" Zustand sicherstellt, dass die alten
Netzknoten die vorher reservierte Bandbreite zurückgeben.
-
Eine alternative Implementierung
könnte
sein, eine so genannte Signalisierung „während der Übertragung (on the fly)" zu verwenden. Dies
vermeidet die Benutzung von RSVP und die zugehörige Hin- und Rückverzögerung,
indem das erste Paket verwendet wird, die erforderlichen Parameter
für diesen
Fluss anzuzeigen. Eine Implementierung wird im Folgenden unter Bezugnahme
auf 4 beschrieben.
-
Die Flusspakte (45) weisen
einen Header-Abschnitt mit einer Anzahl von Feldern und einen Daten
enthaltenden Nutzdatenabschnitt (47) auf.
-
Die ersten beiden Header-Felder (48, 49)
tragen die Quell- und Zieladressen, wobei diese verwendet werden,
die Pakete auf die übliche
Art über
das Netzwerk zu leiten. Andere bekannte Felder können ebenfalls enthalten sein.
-
In dem einfachsten Ausführungsbeispiel
wird das Modus-Identifizierungs-Feld (50) verwendet, um
zwischen Paketen des Modus nach bester Möglichkeit und des Modus mit
begrenzter Verzögerung
zu unterscheiden. Das Paket-Identifizierungs-Feld (51)
wird verwendet, um Pakete mit spezieller Funktionalität anzuzeigen.
-
Das/die Zusatz-Verarbeitungs-Informations-Felder)
(52) wird/werden verwendet, um Netzwerkelementen Informationen
anzuzeigen, wie den wirksamen Spitzendatenwert, welchen der Hostrechner
für seinen Flussmodus
mit begrenzter Verzögerung
gewählt
hat.
-
Alle diese Header-Felder (46)
können
von der Anwendung spezifiziert werden. Alternativ können sie von
dem Eingangs-Netzknoten bei Eintritt in das Netzwerk mit begrenzter
Verzögerung
spezifiziert werden. Der Nutzdatenabschnitt (47) des Pakets
enthält
die über
das Netzwerk an den Ziel-Hostrechner zu übertragende Information.
-
Hinsichtlich der unter Bezugnahme
auf 1 erläuterten
Ausführungsbeispiele
für Netzwerkelemente kann
der Modus-Identifizierer auf diese Weise die Identifizierung des
Modus mittels Lesen des Mo dus-Identifizierungs-Felds (50)
im Header des erhaltenen Pakets (45) durchführen. Auf ähnliche
Weise kann das erste Paket eines neuen Flusses verwendet werden,
um das Verbindungsfreigabesteuerungs-Verfahren (CAC – connection admission control)
zu starten. Nachdem der Paket-Identifizierer das erste Paket eines
neuen Flusses durch das Paket-Identifizierungs-Feld (51)
identifiziert hat, kann er veranlassen, dass der vorgeschlagene Bandbreitenbedarf
von einem Bandbreitenfeld (52) des ersten Pakets gelesen
wird, woraufhin die Spitzenwert-CAC-Entscheidung getätigt werden
kann. Andere derartige Parameter können auf ähnliche Weise erlangt werden.
-
Somit können Flüsse der Klasse mit begrenzter
Verzögerung
unter Verwendung von „Signalisierung während der Übertragung" ohne eine getrennte
Signalisierungsphase errichtet werden.
-
Auf ähnliche Weise kann auch ein
bestimmter Paket-Identifizierer für den Zweck des Sendens von Zwischenpaketen
innerhalb eines Flusses zur Zusatz-Verarbeitung definiert werden,
wodurch Anwendungen dynamisch ihre End-zu-End-Verzögerungsanforderungen
wie erforderlich anpassen können.
-
Alle Pakete können den Modus-Identifizierer
für die
BD-Klasse umfassen. Jedoch kann der Modus-Identifizierer aus dem
ersten „Signalisierungspaket" genommen und als
Teil des Klassifizierers gespeichert (in den Cache genommen) werden,
um dann wiederhergestellt zu werden, wenn ein mit dem Klassifizierer übereinstimmendes
Paket erhalten wird, und dazu verwendet zu werden, um das Paket
in den richtigen Pufferspeicher zu bringen. Alternativ kann der
Modus statisch für
spezifische Klassifizierer und insbesondere für zusammen gesetzte Klassifizierer
konfiguriert werden, um automatisch die BD-Klasse für VPN-Konfigurationen und für bestimmte
Verkehrstypen, wie Telefonieren über
das Internet, vorzusehen.
-
Bei einer „Signalisierung während der Übertragung" umfasst das erste
Paket des Flusses die zugehörige
Spitzenwert-Bandbreite für
den Fluss, Pk_flow, und andere für CAC notwendige
Parameter. Ein neuer Fluss kann in jedem Netzknoten des End-zu-End-Pfades
unter Verwendung derselben CAC-Regeln, wie oben beschrieben, zugelassen
werden. Wenn der Fluss CAC nicht besteht, wird wie vorher ein Fehler-Klassifizierer-Zustand
aufgestellt, aber nun wird eine neue „CAC-nicht-bestanden"-Meldung an den Sender zurückgeschickt.
Dies kann ein neuer ICMP-Code oder ein anderes Mittel sein. Zusätzlich wird
in dem ersten Paket-Header ein „CAC-nicht-bestanden"-Flag gesetzt, so
dass flussabwärts
gelegene Netzknoten und der Empfänger
ebenfalls von dem Fehler benachrichtigt werden. Flussabwärts gelegene
Netzknoten senden keine CAC-Fehler-Meldungen zurück, was andernfalls den Sender überschwemmen
würde.
Die verbleibenden Pakete in dem Fluss, die mit dem Klassifizierer übereinstimmen
und bei denen der BD-Modus gesetzt ist, werden in den BD-Pufferspeicher
zugelassen, aber benutzen den BE-Pufferspeicher in Netzknoten, welche
der Fluss während
CAC ausgelassen hat. Eine Aktualisierung des Signalisierungspakets,
das den Pk_flow-Wert und andere CAC-Parameter
anzeigt, wird verwendet, um Änderungen
im Routing, Zeitüberschreitung
des Klassifizierer-Zustands und spätere Zulassung zu Betriebsmitteln
bei anfänglichem
Fehler während
CAC zu bewältigen.
-
Es ist bekannt, dass mit dem oben
dargestellten Ansatz für
Einzelpaket-Flüsse
eine Spitzenwert-Information nicht in dem Paket-Header versendet
werden muss, so dass das normalerweise für diese Information vorgesehene
Feld auf einen definierten Standardwert, wie beispielsweise null,
gesetzt werden kann und dazu verwendet werden kann, einen Einzelpaket-Fluss
anzuzeigen.
-
Für
das heutige IP v 4 Protokoll kann das vorhergehende Beispiel implementiert
werden, indem Modus- und Paket-Identifizierer-Codes zur Verwendung
in dem TOS-Header-Feld spezifiziert werden. Die notwendige Bandbreite
kann entweder vorkonfiguriert oder in dem IP v 4 Optionsfeld platziert
werden. Für
IP v 6 können
die Modus- und Paket-Identifizierer-Codes in dem Fluss-ID-Feld platziert
werden und der Bandbreitenbedarf kann in dem abschnittsweisen (hop-by-hop)
Erweiterungs-(Optionen)-Header platziert werden. Wenn Information
an den sendenden Hostrechner zurückgesendet
werden muss, können
geeignete ICMP-Meldungen erzeugt werden, beispielsweise Flusszugang
zurückgewiesen
etc.
-
Es ist sehr wahrscheinlich, dass
eine Form einer Fähigkeit
zu Verkehrsverarbeitung innerhalb sowohl des Ausgangs- als auch
des Empfangs-Hostrechnerterminals notwendig wird, abhängig sowohl
von dem verwendeten Anwendungstyp als auch der Anzahl der erzeugten
simultanen Flüsse.
Deswegen wird erwartet, dass Hostrechner im Allgemeinen die duale
Pufferspeichereigenschaft der Netzwerkelemente benutzen werden.
-
Ein Beispiel einer Anordnung einer
derartigen Hostrechner-Architektur
wird in 5 dargestellt.
Der Hostrechner kann zum Beispiel unter Verwendung bekannter Unix-Arbeitsplatzrechner-
oder PC-Technologie implementiert werden, welche mit einer geeigneten
Netzwerk-Schnittstelle ausgestattet ist.
-
In der in 5 gezeigten allgemeinen Hostrechner-Konfiguration
(53) erzeugt Anwendung A (54) einen oder mehrere Flüsse, die
in der Klasse mit begrenzter Verzögerung gesendet werden. Unter
der Annahme, dass diese Betriebsklasse benutzende Anwendungen im
Allgemeinen burst-artige Paketflüsse
erzeugen, werden in einigen Fällen
bei Werten, die, anstatt durch die Anwendung, durch die interne
Betriebsgeschwindigkeit des Hostrechners festgelegt werden, ein
Pufferspeicher (55) für
begrenzte Verzögerung,
eine Pufferspeicher-Zuweisung
und Paketgröße-Steuerungen
(56, 57) zur Hostrechnerleistungs-Steuerung zusammen
mit einem zugehörigen
Scheduling-Element
(58) für
Zwecke der Flussgestaltung vorgesehen. Das Scheduling-Element (58)
wird von einem geeigneten Scheduling-Algorithmus (59) gesteuert.
-
Da Hostrechner prinzipiell simultan
sowohl Flüsse
mit begrenzter Verzögerung
als auch Flüsse
nach bester Möglichkeit
laufen lassen können,
wird ein Pufferspeicher (60) nach bester Möglichkeit
nur vorgesehen, um der Tatsache gerecht zu werden, dass der Scheduling-Algorithmus/die
Scheduling-Algorithmen (59) derart gestaltet werden, den
in dem Pufferspeicher (55) für begrenzte Verzögerung gespeicherten
Paketen höchste Priorität einzuräumen. Die
Anwendung B (61) kann ebenfalls eine ähnliche Kontrolle über die
Pufferspeicher-Zuweisung (nicht gezeigt) und die Paketgröße (62)
ausüben,
wie für
Anwendung A (54) gezeigt wurde.
-
Eine Verkehrsgestaltung ist ein wichtiger
Aspekt für
Flüsse,
für welche
eine begrenzte Verzögerung garantiert
ist. Eine Gestaltung ermöglicht
in erster Linie, dass die Zeit zwischen Ankünften von Paketen, welche von
einer Anwendung erzeugt wurden, modifiziert werden kann, bevor diese
in das Netzwerk eingegeben werden. Somit kann die burst-Artigkeit
eines Paketflusses durch Gestaltung gesteuert werden, was zur Folge
hat, dass eine niedrigere Spitzenbandbreite von dem Netzwerk benötigt wird,
als andernfalls der Fall gewesen wäre. Tatsächlich ist eine Verkehrsgestaltung
einfach ein Kompromiss zwischen dem Bandbreitenbedarf des Netzwerks
und der Verzögerung
des Hostrechners, wobei letztere abnimmt, wenn ersterer zunimmt.
Bis jetzt wurde eine Verkehrsgestaltung im Allgemeinen durch Verwendung
von entweder Token Bucket- oder Leaky Bucket-Gestaltern erreicht, wobei in manchen
Fällen
eine Kombination aus beiden verwendet wird.
-
Es ist bekannt, dass, obwohl eine
Token Bucket-Gestaltung nicht verhindern kann, dass Paket-Bursts in
das Netzwerk gegeben werden, diese die Größe der Bursts begrenzt. Deswegen
beseitigt eine Token Bucket-Gestaltung nicht die Möglichkeit,
dass die Flussrate sofort den spezifizierten Spitzenwert überschreitet, wenn
der momentane Wert über
eine Zeitdauer kalkuliert wird, welche vom Start einer Paketreihe
(was ein einzelnes Paket sein kann) bis zur benachbarten gemessen
wird, wie in
7 dargestellt
wird. Auf Grundlage dieser Definition wird der momentane Spitzenwert
für einen
Fluss bestimmt durch
wobei l
packet die
Größe eines
Pakets in Bits ist und die algebraische Summe eine Summierung über alle
Pakete angibt, die innerhalb der bestimmten betrachteten Zeitspanne
enthalten sind, wobei t
1 bis t
5 in
7 Beispiele darstellen.
-
Wenn der verwendete Gestaltungsvorgang
sicherstellt, dass der momentane Spitzenwert niemals den spezifizierten
Spitzenwert überschreitet,
wird das im Folgenden als genaue Spitzenwertgestaltung bezeichnet.
-
Der Grund, warum eine herkömmliche
Token Bucket-Gestaltung keine genaue Spitzenwertgestaltung liefern
kann, liegt darin, dass der verwendete Scheduling-Algorithmus zulässt, dass,
wenn die geeignete Anzahl von Token verfügbar wird, Pakete unmittelbar
in das Netzwerk gegeben werden. Dies wird in 6 dargestellt, die einen qualitativen
Vergleich zwischen Flüssen,
die durch Token Bucket und einer Spitzenwertgestaltung erzeugt wurden,
für eine
bestimmte momentane Füllung
des Pufferspeichers für
begrenzte Verzögerung
zeigt. Wird angenommen, dass eine genaue Spitzenwertgestaltung niemals
zulässt,
dass der Fluss den spezifizierten, gemäß der Gleichung (11) berechneten
Spitzenwert überschreitet,
ist es aus dem Vergleich der Flüsse
A und C offensichtlich, dass in diesem besonderen Fall der Fluss
in Form des Token Bucket den spezifizierten Spitzenwert überschreitet.
Es soll angemerkt werden, dass, damit die Ausgangsflüsse die
vorgegebenen Formen annehmen, der Token Bucket anfangs voller Token
und die Ausgabeverbindungsgeschwindigkeit deutlich höher als
der spezifizierte Spitzenwert gewesen sein muss. Ebenso wären sowohl
der Bucket-Füllwert
r als auch der Pk_flow-Term in der folgenden
Gleichung (12) gleich dem selben Wert des spezifizierten Spitzenwerts.
-
Obwohl erwartet wird, dass ein kontrollierter
Anteil von Paket-Bündelung
tolerierbar ist, kann es für
einige Implementierungen vorteilhaft sein, genaue Spitzenwertgestaltung
anstatt herkömmlicher
Token Bucket- oder Leaky Bucket-Gestaltung zu verwenden. Dies liefert
eine genaue Kontrolle des momentanen Spitzenwerts. Ein Verfahren,
um eine genaue Spitzenwertgestaltung zu erreichen, wird in
6 gezeigt: zur Vereinfachung
wurden die in
5 gezeigten
Elemente nach bester Möglichkeit
entfernt, zusammen mit den Elementen der Klasse mit begrenzter Verzögerung,
welche nicht zum Gestaltungsverfahren beitragen. Eine Spitzenwertgestaltung
verhindert eine Paket-Bündelung
wirksam dadurch, dass sie garantieren kann, dass die Flussrate in
das Netzwerk niemals den spezifizierten Spitzenwert überschreiten
wird. Ein gutes Beispiel eines Scheduling-Algorithmus, der dies
erfüllt,
ist einer, bei dem die Entscheidung, ein Paket in das Netzwerk zu
geben, auf der Größe des vorhergehenden
Pakets und auf der Zeit basiert, wann es gesendet wurde. Deswegen lässt das
Scheduling-Element kein neues Paket in das Netzwerk zu, bis der
Zeitablauf seit dem Zulassen des vorhergehenden Pakets, τ
nlapse,
die Beziehung
erfüllt, wobei l
packet die
Paketgröße in Bits
und P
k_flow den spezifizierten Spitzenwert
für den
Fluss in Bits/Sekunde darstellt. Das hochgestellte n stellt das
zu sendende Paket und das hochgestellte n – 1 stellt das vorherige gesendete
Paket dar.
-
Es sollte ebenfalls möglich sein,
eine genaue Spitzenwertgestaltung unter Verwendung eines Token Bucket-Gestalters
zu implementieren, vorausgesetzt, es wird eine geeignete Größe des Buckets
in Verbindung mit einer anderen als bisher verwendeten Scheduling-Regel
verwendet. Wenn es beispielsweise eine spezifizierte maximal zulässige Paketgröße für die Klasse
mit begrenzter Verzögerung
gibt, würde
eine Spitzenwertgestaltung unter Verwendung einer Größe des Buckets
erreicht, die gleich ist zu der maximal zulässigen Paketgröße, in Verbindung
mit der Regel, dass keine Pakete gesendet werden können, bis
der Token Bucket voll ist. Wenn der Bucket voll ist, wird der Pufferspeicher
ausgegeben, bis entweder der Token Bucket oder der Pufferspeicher
geleert ist. Es werden dann keine Pakete mehr gesendet, bis der
Token Bucket wieder vollständig voll
ist, und so weiter. Eine Verwendung dieses Ansatzes für die Bedingungen,
die für
den qualitativen Vergleich in 6 angenommen
wurden, würde
zu einer Bündelung ähnlich wie
für Fluss
B dargestellt führen.
-
Jedoch werden herkömmlichere
Gestaltertypen nicht ausgeschlossen, einschließlich diejenigen, welche auf
(r, T)-glatten Scheduling-Algorithmen
basieren.
-
Unabhängig davon, welcher Gestaltungstyp
verwendet wird, ermöglicht
die Hostrechner-Konfiguration (53) in 5, dass Anwendung A die geeigneten Gestalterparameter
in Zusammenhang mit anderen Steuerparametern wählen kann, wie Paketgröße, Pufferspeicherzuweisung
und Spitzenflusswert. Wenn jedoch dieser Hostrechner in einem Netzwerk
verwendet wird, welches IP-integrierte Dienste unterstützt, würde er eine Token
Bucket-Gestaltung verwenden, und die meisten, wenn nicht alle, der
anderen Parameter und der Parameter für den Token Bucket würden als
Konstanten betrachtet werden, nachdem sie für einen neuen Fluss gewählt wurden.
Der hauptsächliche
Grund dafür
liegt darin, dass manche dieser Parameter innerhalb des Netzwerkes
verteilt werden müssen,
und dies umfasst das Einleiten einer RSVP-Signalisierungsphase,
immer dann, wenn diese geändert
werden. Dies ist nicht besonders von Belang, wenn anfangs ein Fluss
aufgebaut wird, wird es aber sonst, da eine Signalisierungsverzögerung strikt
die Rate begrenzt, mit der Änderungen
implementiert werden können.
Dies begrenzt strikt die Steuerung, welche eine Anwendung über sowohl
die Hostrechner-Leistung als auch seine End-zu-End-Verzögerung ausübt, nachdem
ein Fluss eingerichtet ist. Dies ist nicht der Fall, wenn ein Netzwerk
benutzt wird, welches die Klasse mit begrenzter Verzögerung unterstützt.
-
In einem einfachen Ausführungsbeispiel,
das den Betrieb mit begrenzter Verzögerung aufruft, ist die einzige
von dem Netzwerk geforderte Information der von dem Fluss benötigte Spitzenwert,
und dieser kann von einer Signalisierung „während der Übertragung (on the fly)" vorgesehen werden.
Folglich kann die Anwendung nun kontinuierlich die Hostrechner-Leistung
während
der Lebensdauer eines Flusses überwachen
und, wenn notwendig, Pufferspeicher-Zuweisung, Paketgröße, Paketausschuss oder Spitzenwert
so oft wie nötig und
ohne das Netzwerk zu beteiligen anpassen. Dies gewährt der
Anwendung eine viel größere dynamische Kontrolle über die
Hostrechner-Leistung als normalerweise möglich wäre. Wenn beispielsweise die
Anwendung anfangs eine unzureichende Pufferspeichergröße für die gewählte Datenmenge
anfordert, hat sie nun die Option, dass sie Pakete aufgeben, die
Pufferspeichergröße auf Kosten einer
zunehmenden Verzögerung erhöhen, die
Paketgröße auf Kosten
eines reduzierten Bandbreiten-Wirkungsgrads (mehr Header pro Zeiteinheit)
verringern oder einen höheren
Spitzenwert von dem Netzwerk anfordern kann.
-
Während
oben Ausführungsbeispiele
der Erfindung hinsichtlich einer Klasse mit begrenzter Verzögerung und
einer verbindungslosen Klasse nach bester Möglichkeit beschrieben wurden,
sind eine Reihe weiterer Unterklassen möglich.
-
Wenn beispielsweise für die Klasse
mit begrenzter Verzögerung
der Ansatz gewählt
wurde, wonach neue Flüsse
ihre maximale Paketgröße als Teil
des CAC-Verfahrens signalisieren, können separate Klassen für zwei oder
mehrere bestimmte Paketgrößenbereiche
definiert werden. Durch ein getrenntes Steuern der Zuweisungen von
Bandbreite oder Pufferspeicher-Betriebsmitteln für jede dieser Unterklassen
wird eine gewisse Kontrolle über
die Verteilung der Paketgrößen für zugelassene
Flüsse
erreicht, was zu einer Verbesserung der Bandbreiten-Ausnutzung der
gesamten Klasse mit begrenzter Verzögerung führen kann. Ein möglicher
Nutzen kann darin liegen, dass die Wahrscheinlichkeit der Zulassung
von Flüssen
mit kleinen Paketgrößen verbessert wird.
-
Eine weitere Möglichkeit liegt darin, dass
Unterklassen errichtet werden können,
um verschiedene Werte der begrenzten Verzögerung vorzusehen. Dies kann
erreicht werden, indem Pakete in mehrere virtuelle Warteschlangen
innerhalb der Hauptwarteschlange für begrenzte Verzögerung aufgeteilt
werden.
-
Gleichermaßen sind in der Klasse nach
bester Möglichkeit
die Implementierung von Verkehrsverwaltungsfunktionen wie Zufalls-Früh-Erfassung (RED – Random-early
detection), Bilden einer Prioritätswarteschlange,
IETF IntServ, klassen-basiertes Bilden einer Warteschlange (CBQ – class-based
queuing) und andere derartige Techniken nicht ausgeschlossen.