-
Die
vorliegenden Ausführungen
betreffen Computernetze und sind spezieller auf ein Metro-Ethernet-Netzwerksystem
gerichtet, in dem seine Knoten Upstream-Pausen-Nachrichten senden,
um nur für
ausgewählte
Upstream-Vermittlungen einen Rückstau
zu verursachen.
-
Metro-Ethernet-Netzwerke
sind eine Art von Netzwerk, die aus verschiedenen Gründen in
verschiedenen Anwendungen in der Netzwerk-Industrie favorisiert
wird. Zum Beispiel ist Ethernet ein weit verbreitetes und kostengünstiges
Medium mit zahlreichen Schnittstellen, das in der Lage ist, Nachrichten
mit verschiedenen Datenraten bis in den GBit/s-Bereich auszutauschen.
Ein Metro-Ethernet-Netzwerk ist im Allgemeinen ein öffentlich
zugängliches
Netzwerk, dass einen Metro-Bereich bereitstellt, der typischerweise
von einem einzigen Netzwerkverwalter kontrolliert wird, wie z.B.
einem Internet-Dienstanbieter
("ISP"). Metro-Ethernet
kann zum Anschluss an das globale Internet und zur Verbindung geografisch
getrennter Standorte, wie z.B. verschiedenen Standorten einer Firma,
verwendet werden. Das Metro-Ethernet-Netzwerk wird oft auch von
virtuellen lokalen Netzen ("VLAN") verschiedener Teilnehmer
gemeinsam genutzt, wobei diese Netzwerke so bezeichnet werden, weil
ein erstes VLAN keine Kenntnis von der gemeinsamen Nutzung des Metro-Ethernet-Netzwerkes
durch ein oder mehrere weitere VLANs hat. Auf diese Weise können altbewährte Technologien und
Infrastrukturen benutzt werden, um eine effiziente Datenübertragung
zu ermöglichen.
-
Ein
Metro-Ethernet-Netzwerk enthält
mehrere Knoten, um den Verkehr im Netzwerk weiterzuleiten, wobei
solche Knoten Einrichtungen enthalten, die in der Technik als Switches
und Router bezeichnet werden, und weiterhin wird auf der Grundlage ihrer
Lage im Netzwerk zwischen Netzperipherie-Knoten und Kern-Knoten
unterschieden. Netzperipherie-Knoten werden so bezeichnet, da sie
eine Verbindung zu einem oder mehreren Knoten außerhalb des Metro-Ethernet-Netzwerks
bereitstellen, und sich somit logisch an der Peripherie des Netzwerks
befinden. Umgekehrt befinden sich Kern-Knoten innerhalb der Grenzen,
die durch die logisch sich am Rand des Netzwerks befindenden Netzperipherie-Knoten
definiert werden. Auf jeden Fall nutzen beide Arten von Knoten bekannte
Techniken zur Bedienung des Verkehrs, der von verschiedenen Knoten
eintrifft, und zur Minimierung von vorübergehenden (d.h. kurzzeitigen)
Blockierungen an jedem der Knoten. Nach IEEE 802.3x, der der IEEE-Standard
für die
Blockierungssteuerung ist, und bei Vorliegen einer solchen Blockierung sorgt
ein Knoten für
einen "Rückstau", indem er Pausennachrichten
an alle Upstream-Knoten des Metro-Ethernet-Netzwerks sendet, d.h.
an alle, die Daten an den Knoten senden, der die Blockierung erkennt.
Solche Blockierungen werden von einem Knoten als Reaktion darauf
erkannt, dass sein Puffer-System einen Schwellwert erreicht, wobei
wenn der Schwellwert erreicht wird, ohne Eingreifen der Knoten nicht
mehr in der Lage ist, seine gepufferten Pakete richtig auf die von
dem Knoten nach außen
gehende Verbindung zu senden. Als Reaktion auf eine solche Erkennung
sendet der Knoten eine Pausennachricht an jeden benachbarten Upstream-Knoten,
wodurch all diese benachbarten Knoten den Befehl erhalten, die Übertragung
von Daten zu dem blockierten Knoten zu beenden, so dass der blockierte
Knoten zusätzliche
Zeit erhält,
seinen Blockierungszustand abzubauen, indem er die in seinem Puffer-System gespeicherten
Daten bedient.
-
Als
Reaktion auf Blockierungen in Metro-Ethernet-Netzwerken wurde auch
ein anderes Verfahren vorgeschlagen. In "Selective Backpressure in Switched Ethernet
LANs" von W. Noureddine
und F. Tobagi, veröffentlicht
von Globecom 99, Seite 1256-1263, werden Pakete, die eine gleiche
Metro-Ethernet-Netzwerk-Ziel-MAC-Adresse
gerichtet sind, in einem speziellen Ausgangs-Puffer innerhalb eines Knotens gespeichert.
Wenn die Paket-Belegung
in einem solchen Puffer einen Schwellwert erreicht, wird ein Rückstau auf
alle benachbarten Upstream-Knoten angewendet, die einen Puffer haben,
der Pakete des entsprechenden MAC-Ziels enthält. Ein solches Verfahren hat
jedoch Nachteile. Zum Beispiel ist das Verfahren nicht skalierbar, da
n Puffer (oder Puffer-Speicherplatz) in einem Knoten vorhanden sein
müssen,
der Verkehr zu n verschiedenen MAC-Zielen vermittelt. Die Anzahl
erforderlicher Puffer steigt auch, wenn eine Verkehrs-Klasse eingeführt wird.
Auch können,
wenn einer der Puffer nicht optimal ausgenutzt ist, die unbenutzten
Ressourcen in dem/den suboptimalen Puffer(n) nicht durch anderen
Verkehr mit einem anderen MAC-Ziel benutzt werden, was eine Verschwendung
ist. Weiterhin können
die Kapazitäts-Anforderung
und der Pfad jeder Sitzung, sowie der Netzwerkzustand sich zeitlich ändern, und
somit sind keine Vorkehrungen für
eine lokale Max-Min-Fairness getroffen. Insbesondere gibt es in
dieser vorhandenen Lösung
keine Maßnahmen
zur Unterscheidung zwischen Sitzungen, und der Verkehr jeder der
Sitzungen kann sich mit der Zeit ändern. Manche Sitzungen können im
Leerlauf sein, und manche können
für eine
bestimmte Zeit aktiv werden, und so weiter. Somit besteht Bedarf
an einem "Vermittler" zur gerechten Vergabe
von Bandbreite für
den Status der Sitzungen. Max-Min-Fairness ist ein Ergebnis eines
solchen Vermittlers für
Bandbreite. Bei Max-Min-Fairness wird die Sitzung, welche die wenigste
Bandbreite benötigt,
vom Vermittler zuerst bedient/zugewiesen, und die Prozedur wird
für die
restlichen Sitzungen rekursiv wiederholt, bis die verfügbare Kapazität verteilt
ist.
-
In
zwei weiteren Dokumenten wird ebenfalls eine Reaktion auf Blockierungen
in Metro-Ethernet-Netzwerken vorgeschlagen. Speziell wird in "A Simple Technique
That Prevents Packet Loss and Deadlocks in Gigabit Ethernet" von M. Karol, D.
Lee, S. J. Golestani, veröffentlicht
von ISCOM 99, Seite 26-30, und in "Prevention of Deadlocks and Livelocks
in Lossless, Backpressure Packet Networks" von M. Karol, S. J. Golestani, D. Lee
und veröffentlicht
von INFOCOM 2000, Seite 1333-1342, ein Puffer beschrieben, der von
mehr als einer Sitzung gemeinsam genutzt wird, wobei eine Sitzung
als ein Paket oder mehrere Pakete definiert ist, die zwischen demselben
Eingangs- und Ausgangs-Netzperipherie-Knoten
des Metro-Ethernet-Netzwerks übertragen werden
(d.h. erkennbar an den Adressen in dem für Metro-Ethernet verwendeten
MAC-in-MAC-Adressierungs-Verfahren).
Der Puffer ist in Segmente unterteilt, und jedem Segment wird eine
Identifikations-Nummer gegeben. Jedem Segment ist es erlaubt, gleichzeitig
Pakete mit unterschiedlichen MAC-Adressen zu speichern, ein eintreffendes
Paket kann aber nur in einem Segment gespeichert werden, das zurzeit
Pakete mit derselben MAC-Adresse enthält. Wenn ein Segment bis zu
seiner Grenze gefüllt
ist, erlaubt der Knoten es nicht, dass eintreffende Pakete gespeichert
werden, nicht nur im blockierten Segment, sondern auch in anderen
Segmenten, deren Identifikations-Nummer kleiner ist als die des
blockierten Segmentes. Gleichzeitig wird eine Rückstau-Nachricht an jeden benachbarten Upstream-Knoten
gesendet. Die Upstream-Knoten hören dann
vorläufig
auf, alle Puffer-Segmente zu bedienen, die eine Identifikations-Nummer
haben, die gleich oder kleiner als die des blockierten Segmentes
des Downstream-Knotens
ist. Somit wird im Upstream-Knoten nicht nur verhindert, dass an
das gefüllte
Segment gesendet wird, sondern auch an die anderen Segmente (d.h.
an die mit einem kleineren Identifikations-Code). Es wird ebenfalls
vorläufig
verhindert, dass diese Segmente eintreffende Pakete akzeptieren.
Diese Verfahren bestimmen nicht die Quelle, welche die Blockierung
verursacht. Somit besteht die Möglichkeit,
dass ein Rückstau
auf Quellen angewendet wird, die die Blockierung nicht verursachen,
was dahingehend ungerecht ist, dass diese Quellen benachteiligt
werden (d.h. durch den durch den Rückstau verursachten Stillstand),
obwohl sie die Blockierung nicht verursachen. Weiterhin ist die
Größe jedes Segmentes
starr, das heißt
die Anzahl von Paketen, die in einem Segment gespeichert werden
können,
ist festgelegt. Weiterhin ist der Blockierungs-Mechanismus dahingehend
ineffizient, dass er immer durch den Zustand eines beliebigen Segmentes
ausgelöst
wird, auch wenn die Gesamt-Belegung im Pufferspeicher, der zahlreiche
andere Segmente enthält,
nicht einen Blockierungs-Zustand erreicht hat. Und schließlich hat
diese Lösung keine
Vorkehrungen für
Mehrklassen-Verkehr.
-
In
US-Patent 6,405,258 wird ein System gemäß der Präambel von Anspruch 1 offen
gelegt. Das System erlaubt die Steuerung des Datenflusses auf einer
Anschluss-für-Anschluss-Basis.
Wenn ein einem Sende-Anschluss zugeordneter Puffer einen Schwellwert
erreicht, wird eine Pausen-Nachricht an alle Netzwerk-Knoten gesendet,
die Pakete an diesen Sende-Anschluss senden.
-
In
US-Patent 6,035,333 wird ein Netzwerk-System offen gelegt, das eine
Planung der Pausen im Fall einer Blockierung erlaubt. Durch Planung
der Pausen-Intervalle für
alle Knoten, die in Richtung eines blockierten Ausgangs-Anschlusses
senden, wird der diesen Ausgangs-Anschluss betreffende Verkehr verringert
und Leerlauf-Zeit des Ausgangs-Anschlusses wird vermieden.
-
Im
Dokument
EP 0 748 087
A1 erlaubt ein Zugangskontrollsystem für einen globalen Puffer die
Steuerung des Datenflusses bezüglich
Ausgangs-Anschlüssen,
die virtuellen Abschnitten des globalen Puffers selbst zugeordnet
sind. Wenn ein virtueller Abschnitt des globalen Puffers selbst
einen Schwellwert erreicht, wird eine Pausen-Nachricht erzeugt.
-
Angesichts
des oben Gesagten entsteht ein Bedarf, die Nachteile der bisherigen
Technik zu beseitigen, wie es durch die unten beschriebenen bevorzugten
Ausführungen
erreicht wird.
-
KURZE ZUSAMMENFASSUNG
DER ERFINDUNG
-
In
der bevorzugten Ausführung
gibt es ein Netzwerk-System. Das System enthält einen ersten Netzwerk-Knoten,
und dieser Knoten enthält
einen Eingang zum Empfang eines Paketes, und der Knoten enthält auch
einen Puffer, der mit dem Eingang gekoppelt ist, zur Speicherung
des Paketes. Der erste Netzwerk-Knoten enthält auch Schaltkreise zur Erkennung,
wann eine in dem Puffer gespeicherte Anzahl von Paketen einen Pufferspeicher-Schwellwert überschreitet,
sowie Schaltkreise, die darauf reagieren, wenn die Schaltkreise
zur Erkennung, wann eine in dem Puffer gespeicherte Anzahl von Paketen
einen Pufferspeicher-Schwellwert überschreitet, dies erkennen,
um eine Pausen-Nachricht über
einen Ausgang zu mindestens einem zweiten Netzwerk-Knoten auszugeben.
Die Pausen-Nachricht kennzeichnet eine Nachrichten-Eingangs-Adresse
und eine Nachrichten-Ausgangs-Adresse, wobei die Nachrichten-Eingangs-Adresse und die Nachrichten-Ausgangs-Adresse
einer Netzwerk-Eingangs-Adresse
und einer Netzwerk-Ausgangs-Adresse in einem eine Blockierung verursachenden
Paket entspricht, das vom ersten Netzwerk-Knoten empfangen wird.
Die Pausen-Nachricht gibt an den zweiten Netzwerk-Knoten den Befehl,
eine Zeit lang damit aufzuhören,
Pakete zum ersten Netzwerk-Knoten zu senden, welche die Nachrichten-Eingangs-Adresse
und die Nachrichten-Ausgangs-Adresse
haben.
-
Weitere
Aspekte werden ebenfalls beschrieben und beansprucht.
-
KURZBESCHREIBUNG
DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNG
-
1 zeigt
ein Blockdiagramm eines Netzwerksystems 10, in dem die
bevorzugten Ausführungen
implementiert werden können.
-
2 zeigt
die allgemeine Form jedes Paketes 20, welches das System 10 durchläuft.
-
3 zeigt
ein Blockdiagramm verschiedener Aspekte jedes Metro-Knotens in System 10.
-
4 zeigt
den Betrieb des Knotens MNx aus 3 unter
Verwendung eines Flussdiagramms, das ein Verfahren 40 zeigt.
-
5 zeigt
eine bevorzugte Form einer Pausen-Nachricht.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
1 zeigt
ein Blockdiagramm eines Systems
10, in dem die bevorzugten
Ausführungen
implementiert werden können.
Das System
10 repräsentiert
allgemein ein Metro-Ethernet-Netzwerk, das eine Anzahl von Metro-Knoten
enthält.
Wie bereits früher
im Abschnitt Hintergrund der Erfindung dieses Dokumentes vorgestellt,
werden solche Knoten typischerweise auf der Grundlage ihrer Lage
im Netzwerk als Netzperipherie-Knoten oder Kern-Knoten beschrieben.
Als Beispiel enthält
System
10 fünf
Metro-Netzperipherie-Knoten ME
0 bis ME
4 und neun Metro-Kern-Knoten MC
0 bis
MC
8. Diese Knoten umfassen verschiedene
Aspekte, wie in der Technik bekannt, wie z.B. den Betrieb als Quelle
zum Senden von Paketen oder als Ziel zum Empfang von Paketen. Weiterhin,
wie auch in der Technik bekannt ist, ist System
10 typischerweise
mit Stationen oder Knoten gekoppelt, die zum System
10 extern
sind, wie sie z.B. im globalen Internet oder in entfernten Netzen implementiert
sein können,
wie z.B. an verschiedenen Standorten eines Unternehmens. Somit können diese externen
Knoten Pakete mit dem System
10 kommunizieren. Zum Beispiel
kann ein solcher Knoten, der extern zum Metro-Netzperipherie-Knoten
ME
1, aber mit ihm gekoppelt ist, ein Paket
zu Metro-Netzperipherie-Knoten ME
1 senden.
In diesem Fall wird Metro-Netzperipherie-Knoten ME
1 als
Eingangs-Knoten bezeichnet, weil er in diesem Beispiel der Standort
des Eingangs zum System
10 ist. Weiterhin kann, wenn das
Paket so empfangen wird, es auf verschiedenen Pfaden von System
10 weitergeleitet
werden, und schließlich
wird es einen der anderen Netzperipherie-Knoten erreichen und das
System
10 verlassen, z.B. zu einem anderen externen Knoten.
Dieser letztgenannte Netzperipherie-Knoten, der das Paket weitersendet,
wird als Ausgangsknoten bezeichnet, weil er in diesem Beispiel der
Standort des Ausgangs aus dem System
10 ist. Ein Fachmann
sollte erkennen, dass die Anzahl der in
1 gezeigten
Knoten nur ein Beispiel ist, um die Erläuterung und das Beispiel zu
vereinfachen, wobei in Wirklichkeit das System
10 jede
beliebige Anzahl solcher Knoten enthalten kann. Weiterhin sind die
speziellen gezeigten Verbindungen auch ein Beispiel und sind in
der folgenden Tabelle 1 zusammengefasst, in der jeder Knoten angegeben
ist, sowie der/die andere(n) Knoten, mit dem/denen er verbunden
ist.
Tabelle
1
-
Während die
vorstehende Erläuterung
System 10 wie in der Technik bekannt darstellt, enthält die restliche
Erläuterung
verschiedene Aspekte, mit denen die Verkehrsleistung im System 10 entsprechend
dem Umfang der bevorzugten Ausführungen
der Erfindung verbessert wird.
-
2 zeigt
die allgemeine Form jedes Paketes 20, welches das System 10 durchläuft, gemäß der bevorzugten
Ausführung.
Paket 20 enthält
vier Felder. Ein erstes Feld 201 gibt
die Adresse des Eingangs-Netzperipherie-Knotens an; mit anderen
Worten ist diese Adresse die Adresse des ersten Knotens, mit dem
Paket 20 in Berührung
kam, als Paket 20 von einer externen Quelle an System 10 geliefert
wurde; diese Adresse wird manchmal auch als Metro-Quelladresse bezeichnet.
Ein zweites Feld 202 gibt die Adresse
des Ausgangs-Netzperipherie-Knotens für Paket 20 an. Man
beachte in diesem Zusammenhang, dass Metro-Ethernet-Netzwerke ausreichende
Steuerungen bereitstellen, so dass wenn ein Paket von außerhalb
des Netzes empfangen wird, es eine Quell- und Zieladresse bezüglich zum
Netzwerk externer Knoten enthält.
Als Reaktion und damit das Paket schließlich zu der im Paket angegebenen
Zieladresse geleitet wird, bestimmt der Eingangs-Knoten einen gewünschten
Ausgangs-Netzperipherie-Knoten im System 10, so dass wenn
das Paket an dem Ausgangs-Knoten eintrifft, es zur Zieladresse weitergesendet
werden kann. Dann lokalisiert der Eingangs-Netzperipherie-Knoten im Paket 20 sowohl
seine eigene Adresse, die als Feld 201 gezeigt
wird, als auch die Adresse des Ausgangs-Netzperipherie-Knotens,
die als Feld 202 gezeigt wird.
Fährt man
mit 2 fort, ist ein drittes Feld 203 enthalten,
um das Paket als zu einer gegebenen Klasse zugehörig zu kennzeichnen. Klassen-Informationen,
wie sie in Metro- Ethernet-Netzwerken
benutzt werden, befinden sich noch in Entwicklung, an diesem Punkt
kann jedoch festgestellt werden, dass sie eine Art und Weise darstellen,
verschiedenen Paketen auf der Grundlage der Klasse des Paketes im
Vergleich zu der Klasse anderer Pakete verschiedene Prioritäten zu geben.
Schließlich
enthält
Paket 20 ein Nutzinformations-Feld 204 .
Das Nutzinformations-Feld 204 enthält das Paket,
wie es ursprünglich
vom externen Knoten zum System 10 gesendet wurde. Man beachte daher,
dass diese Paket-Information die Benutzerdaten sowie die ursprünglich gesendete
externe Quelladresse und Zieladresse enthält, wobei diese Adressen an
Knoten außerhalb
des Systems 10 gerichtet sind. Entsprechend enthält das Paket 20 zwei
Sätze von
Adressen, eine (in Feld 204 ), die
zum zu dem System 10 externen Quell- und Ziel-Knoten gehört, und
die andere (in den Feldern 201 und 202 ), die die Eingangs- und Ausgangs-Netzperipherie-Knoten
kennzeichnet. Dieses Verfahren kann man als Einkapselung bezeichnen,
und bezüglich
der Adressierung in der bevorzugten Ausführung kann es dahingehend als
MAC-in-MAC-Einkapselung bezeichnet werden, dass ein Satz von MAC-Adressen
in einem anderen Satz von MAC-Adressen
eingekapselt wird. Man beachte, dass schließlich, wenn Paket 20 seinen
Ausgangs-Knoten MEx erreicht, der Knoten die
Felder 201 , 202 und 203 aus dem Paket entfernt und dann das
verbleibende Nutzinformations-Feld 204 als gesamtes
Paket zur Zieladresse im Nutzinformations-Feld 204 weiterleitet.
Somit weiß bei
Empfang des endgültigen
Paketes am für
System 10 externen Knoten der Zielknoten nichts von der
Information, die zuvor in den Feldern 201 , 202 und 203 bereitgestellt
wurde.
-
3 zeigt
ein Blockdiagramm verschiedener Aspekte der bevorzugten Ausführung, wie
in jedem Metro-Knoten in System 10 enthalten, das heißt entweder
in einem Netzperipherie-Knoten oder einem Kern-Knoten, und somit
wird in 3 der Knoten allgemein als Knoten
MNx gezeigt. Ein Fachmann sollte verstehen, dass
der Knoten MNx verschiedene andere Schaltkreise enthält, die
nicht gezeigt werden, die aber selbstverständlich enthalten sind, um die
in der Technik bekannte Funktionalität zu unterstützen, die
von einem solchen Knoten bereitzustellen ist. Um die Erklärung zu
vereinfachen, zeigt daher 3 stattdessen
diese zusätzlichen Aspekte,
die speziell auf die bevorzugten Ausführungen gerichtet sind. Weiterhin
werden diese Aspekte allgemein im Hinblick auf die Funktionalität beschrieben,
wobei ein Fachmann leicht verschiedene Hardware und/oder Software
zur Implementation der Funktionalität bestimmen kann.
-
Betrachtet
man die in 3 gezeigten Besonderheiten,
wird ein Paket, das zum Knoten MNx gesendet wird,
an einem Eingang 30IN empfangen,
wo jedes solche Paket auf der Grundlage der Klassen-Angabe des Paketes,
wie sie in Feld 203 in 2 angegeben
wird, zu einem von zwei Puffern 30HC und 30LC geschaltet wird. Spezieller werden
in der vorliegenden Erläuterung
zwei solche Klassen in Erwägung
gezogen und werden daher als hohe Klasse, die dem Puffer 30HC entspricht, und niedrige Klasse,
die dem Puffer 30LC entspricht, bezeichnet.
Jeder Puffer 30HC und 30LC repräsentiert eine Paket-Speichereinheit,
die durch verschiedene Einrichtungen gebildet werden kann und durch
eine Steuerung 32 gesteuert wird, wobei verschiedene Aspekte der
Steuerung 32 im Rest dieses Dokumentes genau beschrieben
werden und die Erkennung und die Reaktion auf Paket-Blockierungen
im Knoten MNx umfassen. Struktur und Funktionen
jedes Puffers zur Speicherung der hohen oder niedrigen Klasse von
Paketen sind generell gleich, und werden von der Steuerung 32 logisch
aufgeteilt. Man beachte weiterhin, dass im Knoten MNx als
Beispiel zwei Puffer gezeigt werden, die zwei einzelnen Paket-Klassen
entsprechen, während
in einer alternativen Ausführung
eine andere Anzahl von Puffern, die einer anderen Anzahl von Klassen
entspricht, implementiert werden kann.
-
Schaut
man die Puffer nun detaillierter an und wendet sich zunächst Puffer
30HC zu, wird gezeigt, dass er drei verschiedene
virtuelle Speicherbereiche, VS
HCO, VS
HC1 und VS
HC2, enthält, wobei
jeder Bereich zu einer anderen Sitzung von Paketen der hohen Klasse
gehört.
In Verbindung mit der bevorzugten Ausführung bezeichnet der Begriff "Sitzung" alle Pakete, welche
dieselben Eingangs- und Ausgangs-Metro-Netzperipherie-Knoten haben, wobei diese
Knoten in den Paket-Feldern
201 und
202 festgelegt
werden, wie in
2 gezeigt. Wenn zum Beispiel
mit Bezug auf
1 drei Pakete von Knoten ME
0 zu Knoten ME
2 gesendet
werden, sagt man, dass jedes dieser Pakete zur selben Sitzung gehört. Da diese
Pakete zwischen beliebigen Knoten weitergegeben werden, die zwischen
den Knoten ME
0 und ME
2 angeschlossen
sind, werden diese Pakete somit als zur selben Sitzung gehörig erachtet.
Weiterhin erinnere man sich, dass die Puffer auch im Hinblick auf die
Klassen getrennt sind, so dass die Sitzungs-Pakete der hohen Klasse
an einen Puffer
30HC geleitet werden, während die
Sitzungs-Pakete der niedrigen Klasse an einen anderen Puffer
30LC geleitet werden. Kehrt man zu Puffer
30HC in
3 zurück, entsprechen,
da er drei virtuelle Speicherbereiche für Pakete der hohen Klasse enthält, diese
Bereiche drei verschiedenen Sitzungen und deren Paketen der hohen
Klasse, das heißt
drei Sätzen
von Paketen der hohen Klasse, wobei jeder dieser Sätze im Vergleich
zu den anderen Sätzen
eine andere von einer oder beiden der Adressen eines Metro-Eingangs- oder Ausgangs-Knotens
hat. Als Beispiel nehmen wir im Rest dieses Dokumentes daher an,
dass die drei virtuellen Speicherbereiche von Puffer
30HC den Paketen der hohen Klasse in den
Sitzungen entsprechen, die in der folgenden Tabelle 2 angegeben
werden.
Tabelle
2
-
Während Tabelle
2 drei verschiedene Sitzungen zeigt, beachte man, dass es andere
Pfade durch das System 10 gibt, die verschiedene mögliche Eingangs-
und Ausgangs-Knoten haben, wie z.B. von Knoten ME3 als
Eingangs-Knoten zu Knoten ME2 als Ausgangs-Knoten.
Da diese Kombination in Tabelle 2 nicht gezeigt wird und kein entsprechender
virtueller Speicherplatz in Puffer 30HC vorhanden
ist, kann zum Zeitpunkt des in 3 gezeigten
Beispiels angenommen werden, dass von Knoten MNx kein
Paket empfangen wurde, für
das ein solcher Puffer-Speicherplatz
einzurichten war, oder dass ein solcher Speicherplatz zuvor eingerichtet
wurde, er aber nicht mehr benötigt
und daher abgebaut wurde. Wenn ein solches Paket später empfangen
wird, wird die Steuerung 32 in der Tat einen neuen Speicherplatz
für die
Sitzung zuordnen, während
die Zuordnung eines oder mehrerer der vorhandenen virtuellen Speicherplätze neu
eingestellt wird, um Pufferspeicher-Ressourcen für die neue Sitzung bereitzustellen.
Zusätzlich
dazu ist in der bevorzugten Ausführung
die von der Steuerung 32 zugeordnete Menge an Pufferspeicher
proportional zum für
die Sitzung berechneten Bandbreitenanteil. Der Anteil wird vorzugsweise
neu berechnet, wenn eine Änderung
der Netzwerkbedingungen und der Anforderungen vorliegt, und die
Berechnung wird für
Verkehr der Best-Effort-Klasse regelmäßig durchgeführt, um
eine Max-Min-Fairness zu erreichen. Weiterhin kann, wenn alle Pakete
in einem virtuellen Speicherbereich ausgegeben wurden, der virtuelle
Speicherbereich geschlossen werden, so dass er für eine andere Sitzung zur Verfügung steht.
Hat man den Puffer-Speicherplatz 30HC zugewiesen,
kann man sich auch bezüglich
seines Speicherplatzes für
Pakete der niedrigen Klasse eine vergleichbare Anordnung bezüglich des Puffers 30LC vorstellen. Als Beispiel ist gezeigt,
dass Puffer 30LC die virtuellen
Speicherbereiche VSLC0, VSLC1, VSLC2 und VSLC3 enthält, wobei
hier daher im Gegensatz zu drei für Puffer 30HC vier
Bereiche vorhanden sind, und für
Puffer 30LC entspricht jeder dieser
Bereiche einer anderen Sitzung von Paketen der niedrigen Klasse.
-
Aus
dem oben Gesagten kann ein Fachmann erkennen, dass jeder virtuelle
Speicherbereich in den Puffern 30HC und 30LC als "virtueller" Speicherbereich bezeichnet wird, weil
er eine logisch geteilte Menge des gesamten Speichers im entsprechenden
Puffer repräsentiert,
wobei dieser logische Bereich zu unterschiedlichen Zeiten geändert werden
kann, um eine unterschiedliche Anzahl von Paketen für die entsprechende
Klasse und Sitzung aufzunehmen, wie später noch weiter deutlich wird.
Weiterhin wird oben an jedem virtuellen Speicherbereich durch eine
gestrichelte Linie ein entsprechender Schwellwert gekennzeichnet.
Zum Beispiel gibt es im virtuellen Speicherbereich VSHC0 des
Puffers 30HC einen entsprechenden
Schwellwert THRHC0 . Dieser Schwellwert,
sowie der Schwellwert für
jeden anderen virtuellen Speicherbereich in den Puffern 30HC und 30LC wird
von der Steuerung 32 überwacht.
In der bevorzugten Ausführung
wird jeder solche Schwellwert auch von der Steuerung 32 festgelegt
und kann im Vergleich zur Aufteilung des Schwellwertes für jeden
anderen virtuellen Speicherbereich in den Puffern 30HC und 30LC einen
unterschiedlichen Prozentsatz des Gesamt-Speicherplatzes im Puffer 30HC darstellen. Auf jeden Fall liefert
der Schwellwert für
einen Sitzungs-Bereich in der Tat eine Nenn-Grenze für diesen
Bereich, das heißt
es wird erwartet, dass Pakete dieser Sitzung in dem Bereich untergebracht
werden können,
und wie später
noch ausführlich
erläutert
wird, wenn der Schwellwert überschritten
wird, wird die Sitzung dahingehend als aggressiv betrachtet, dass
sie ihre erwartete erforderliche Pufferung überschritten hat. Zusätzlich dazu
beachte man, dass jeder der Puffer 30HC und 30LC einen zugeordneten globalen Schwellwert
GTHRHC bzw. GTHRLC hat.
Der Begriff global wird benutzt, um anzudeuten, dass dieser Schwellwert
zum Puffer als Ganzes gehört,
im Gegensatz zu den einzelnen Schwellwerten, die zu jedem entsprechenden
virtuellen Speicherbereich gehören
(z.B. Schwellwert THRHC2 für den virtuellen
Speicherbereich VSHC2, THRHC1 für den virtuellen
Speicherbereich VSHC1 und so weiter). Wie
weiter unten erläutert
wird, wird jeder globale Schwellwert GTHRHC und
GTHRLC so eingestellt, dass wenn der Schwellwert
basierend auf der Kombination aller Speicherbereiche, die durch
gültige
Pakete im entsprechenden Puffer belegt sind, überschritten wird, die bevorzugte
Ausführung
ein solches Ereignis als eine erste Anzeige für eine mögliche Verkehrs-Blockierung
für die
in dem Puffer gespeicherte Klasse von Paketen interpretiert. Schließlich beachte
man, dass der Knoten MNx auch einen Server 34 enthält. In der
bevorzugten Ausführung
arbeitet die Steuerung 32 mit der geeigneten Zeitsteuerung,
um ein Paket entweder aus Puffer 30HC oder 30LC auszulesen, und das Paket wird dann
zu Server 34 weitergeleitet. Als Reaktion darauf gibt der
Server 34 das Paket an eine Downstream-Verbindung 34L aus. Dementsprechend kann das Ausgangs-Paket
dann von der Downstream-Verbindung 34L zu
einem anderen Knoten weiterlaufen, entweder im System 10 oder
extern. Auf die gleiche Weise können
im Lauf der Zeit weitere Pakete aus jedem der Puffer 30HC und 30LC an Downstream-Knoten ausgegeben
werden, wodurch Platz in jedem der Puffer frei gemacht wird, um
neu eintreffende Upstream-Pakete zu speichern.
-
4 zeigt
weiterhin den Betrieb des Knotens MNx aus 3 unter
Verwendung eines Flussdiagramms, das ein Verfahren 40 zeigt.
Somit wird angenommen, dass die Schritte des Verfahrens 40 durch
die verschiedenen in 3 gezeigten Anordnungen ausgeführt werden,
wie nun genau beschrieben wird. Verfahren 40 beginnt mit
einem Schritt 42, der den Empfang eines Paketes anzeigt;
somit stellt Schritt 42 einen Wartezustand von Knoten MNx dar, da er den Empfang eines Upstream-Paketes
erwartet. Wenn ein solches Paket eintrifft, geht das Verfahren 40 von
Schritt 42 zu Schritt 44.
-
In
Schritt 44 leitet der Knoten MNx den
Fluss des Verfahrens 40 auf der Grundlage der Metro-Klasse des
im unmittelbar vorangehenden Schritt 42 empfangenen Paketes,
wobei diese Klassen-Information aus dem Klassen-Feld 203 zur Verfügung steht, wie in 2 gezeigt.
Weiterhin und wie oben erwähnt,
werden in einer bevorzugten Ausführung
nur zwei unterschiedliche Metro-Klassen in Erwägung gezogen; somit zeigt Schritt 44 in Übereinstimmung
mit diesem Beispiel alternative Flüsse in zwei entsprechende Richtungen.
Insbesondere wenn Schritt 44 ein Paket einer hohen Klasse
erkennt, fährt
der Fluss mit Schritt 46H fort,
wobei der Knoten MNx in diesem Fall so gesteuert
wird, das Paket in Verbindung mit dem Puffer für Pakete der hohen Klasse 30HC zu verarbeiten. Alternativ, wenn
Schritt 44 ein Paket einer niedrigen Klasse erkennt, fährt der
Fluss mit Schritt 46L fort, wobei
der Knoten MNx in diesem Fall so gesteuert
wird, das Paket in Verbindung mit dem Puffer für Pakete niedriger Klasse 30LC zu verarbeiten. Nach einem der Schritte 46H oder 46L fährt das
Verfahren 40 mit Schritt 48 fort.
-
In
Schritt 48 speichert der Knoten MNx das
Paket bei der Ausgabe im geeigneten virtuellen Speicherbereich des
Puffers, an den das Paket von Schritt 44 weitergeleitet
wurde. Man erinnere sich daran, dass jeder virtuelle Speicherbereich
in jedem der Puffer 30HC und 30LC einer bestimmten Sitzung entspricht;
somit repräsentiert
Schritt 48 die Speicherung des Paketes auf der Grundlage
seiner Sitzung im entsprechenden virtuellen Speicherbereich, vorausgesetzt,
es steht freier Platz im virtuellen Speicherbereich zur Verfügung. Als
erstes Beispiel und mit Bezug auf Tabelle 2 nehmen wir an, dass
ein Paket einer hohen Klasse von Knoten MNx mit Metro-Eingangs-Knoten ME0 und Metro-Ausgangs-Knoten ME1 empfangen
wird, wobei diese beiden Knoten-Adressen aus den Feldern 201 , bzw. 202 erkennbar
sind, wie in 2 gezeigt. Als solches wird
in Schritt 48 dieses erste Beispiel-Paket im virtuellen
Speicherbereich VSHC0 gespeichert, vorausgesetzt
es steht freier Platz in dem virtuellen Speicherbereich zur Verfügung. Als
zweites Beispiel und auch mit Bezug auf Tabelle 2 nehmen wir an,
dass ein Paket einer hohen Klasse von Knoten MNx mit
Metro-Eingangs-Knoten ME1 und Metro-Ausgangs-Knoten
ME2 empfangen wird. Folglich wird in Schritt 48 dieses
zweite Beispiel-Paket im virtuellen Speicherbereich VSHC1 gespeichert,
wieder vorausgesetzt es steht freier Platz in dem virtuellen Speicherbereich
zur Verfügung.
Weitere Beispiele kann ein Fachmann herausfinden, und man beachte
auch, dass eine solche Paket-Speicherung auch in Puffer 30LC und den darin befindlichen virtuellen
Speicherbereichen erreicht werden kann. In einem anderen Aspekt
der bevorzugten Ausführung
wird, wenn der virtuelle Speicherbereich für das empfangene Paket komplett
belegt ist, das Paket jedoch in einem anderen virtuellen Speicherbereich gespeichert.
In diesem Fall wird die Gesamt-Paket-Belegung des erstgenannten
virtuellen Speicherbereichs erhöht,
und es wird angenommen, dass er seinen virtuellen Schwellwert überschritten
hat. Die Gesamt-Paket-Belegung
des letztgenannten virtuellen Speicherbereichs wird jedoch nicht
erhöht,
da das Paket, das seinen Bereich belegt, nicht tatsächlich zu
dem virtuellen Speicherbereich gehört. Somit besteht Flexibilität, ein empfangenes
Paket zu bedienen, auch in Fällen,
in denen der virtuelle Speicherbereich, der der Paket-Metro-Quelle
und dem Ziel entspricht, voll ist. Schließlich, wenn bei Empfang des
Paketes noch kein entsprechender virtueller Speicherbereich in einem
Puffer eingerichtet ist, der der Sitzung des Paketes entspricht
(d.h. dem Eingangs- und Ausgangs-Knoten), richtet Schritt 48 auch
einen solchen virtuellen Speicherbereich ein und speichert dann
das Paket darin. Im Anschluss an das Abspeichern des Paketes in
Schritt 48 fährt
das Verfahren 40 mit Schritt 50 fort.
-
In
Schritt 50 bestimmt Knoten MNx,
ob der Puffer, in dem das Paket gerade gespeichert wurde, nun seinen
entsprechenden globalen Schwellwert erreicht hat, wobei diese Schwellwerte
GTHRHC für
den Puffer 30HC und GTHRLC für
den Puffer 30LC sind. Somit bestimmt
zum Zeitpunkt der Speicherung des Paketes Schritt 50 in
der Tat, ob das Paket nun bewirkt hat, dass der Puffer in seiner
Gesamtheit (d.h. einschließlich
aller Pakete in allen virtuellen Speicherbereichen) seinen entsprechenden
globalen Schwellwert überschritten
hat. Wenn das Paket im Puffer für
Pakete der hohen Klasse 30HC gespeichert
wurde, bestimmt Schritt 50 somit, ob die Gesamtzahl gültiger Pakete,
die dann in dem Puffer gespeichert sind, den globalen Schwellwert
GTHRHC überschreitet,
und auf die gleiche Weise bestimmt, wenn das Paket im Puffer für Pakete
der niedrigen Klasse 30LC gespeichert
wurde, Schritt 50, ob die Gesamtzahl gültiger Pakete, die dann in
dem Puffer gespeichert sind, den globalen Schwellwert GTHRLC überschreitet.
Wie bereits oben erläutert,
interpretiert die bevorzugte Ausführung, wenn ein solcher Schwellwert überschritten
wird, ein solches Ereignis als einen Hinweis auf eine mögliche Verkehrs-Blockierung
für die
Klasse der in dem Puffer gespeicherten Pakete, wobei nun gezeigt
wird, dass diese Aktion zuerst in Verbindung mit Schritt 50 auftritt.
Zu diesem Zweck geht, wenn der relevante globale Schwellwert überschritten
wird, das Verfahren 40 von Schritt 50 zu Schritt 52.
Umgekehrt, wenn der relevante globale Schwellwert nicht überschritten
wird, kehrt das Verfahren 40 von Schritt 50 zurück zu Schritt 42. um
das Eintreffen des nächsten
Paketes zu erwarten. Schließlich
beachte man, dass obwohl im Verfahren 40 gezeigt wird,
dass die Analyse von Schritt 50 für jedes gespeicherte Paket
durchgeführt
wird, in einer alternativen Ausführung
diese Analyse zu anderen Zeiten durchgeführt werden kann, wie z.B. nach
dem Empfang und Speichern mehrerer Pakete oder auf der Grundlage
anderer Ressourcen und/oder Zeit-Gesichtspunkte.
-
In
Schritt 52 bestimmt Knoten MNx,
welche Paket-Belegung oder Sitzung in dem blockierten Puffer ihren
entsprechenden Schwellwert für
ihren entsprechenden virtuellen Speicherbereich überschritten hat. Dieser Schritt
kann wieder jedes Mal nach der Speicherung eines Paketes in einem
Puffer durchgeführt
werden, und vorzugsweise wird Schritt 52 für alle virtuellen
Speicherbereiche in dem blockierten Puffer wiederholt. Weiterhin
erinnere man sich daran, dass während
des Betriebs des Knotens MNx zum Empfang
von Paketen gemäß Verfahren 40 gleichzeitig
der Server 34 Pakete in den Puffern 30HC und 30LC bedient, so dass die bedienten Pakete
an die Downstream-Verbindung 34L ausgegeben
werden, um einen anderen Downstream-Knoten zu erreichen. Somit kann
diese Operation auch das Ausmaß beeinflussen,
in dem jeder virtuelle Speicherbereich mit gültigen Paketen gefüllt wird.
Auf jeden Fall und als Beispiel für Schritt 52 bestimmt
Knoten MNx bezüglich Puffer 30HC , ob die gespeicherten gültigen Pakete
im virtuellen Speicherbereich VSHC0 THRHC0 überschreiten, und
er bestimmt, ob die gespeicherten gültigen Pakete im virtuellen
Speicherbereich VSHC1 THRHC1 überschreiten,
und er bestimmt, ob die gespeicherten gültigen Pakete im virtuellen
Speicherbereich VSHC2 THRHC2 überschreiten.
Sobald eine Paket-Belegung
eines virtuellen Speicherbereichs (oder mehr als eines solchen Bereichs),
die ihren jeweiligen Schwellwert überschreitet, gefunden wurde,
geht das Verfahren 40 von Schritt 52 weiter zu
Schritt 54. Man beachte in diesem Zusammenhang auch, dass
jede Sitzung im blockierten Puffer, die bewirkt, dass der Schwellwert
in ihrem entsprechenden virtuellen Speicherbereich überschritten
wird, im vorliegenden Kontext als aggressive Sitzung betrachtet
wird, das heißt
sie wird als Ursache einer möglichen
Blockierung im Knoten MNx betrachtet, weil
sie versucht, ihren zugewiesenen Speicherbereich (oder den Schwellwert
in dem Bereich) zu vergrößern, und
diese Bedingung wird von Knoten MNx erkannt,
nachdem er erkannt hat, dass sein Puffer 30HC oder 30LC in seiner Gesamtheit seinen entsprechenden
globalen Schwellwert überschritten
hat. Schließlich
nehmen wird daher als im Folgenden zu benutzendes Beispiel an, dass
Schritt 52 nach dem Empfang eines Paketes im virtuellen
Speicherbereich VSHC0 erreicht wurde, und
unter Verwendung des Beispiels in Tabelle 2 ist dieses Paket daher
von Eingangs-Knoten ME0 und läuft zu Ausgangs-Knoten
ME1 (oder hat ihn erreicht). Wir nehmen
auch an, dass bei Empfang dieses Paketes bei der Speicherung des
Paketes im virtuellen Speicherbereich VSHC0 der
Schwellwert THRHC0 überschritten wird.
-
In
Schritt 54 sendet Knoten MNx das,
was hier als Pausen-Nachricht
bezeichnet wird an jeden benachbarten Upstream-Knoten, das heißt an jeden Knoten, der mit
Knoten MNx in Upstream-Richtung direkt verbunden
ist, wobei wegen ihrer Verbindungen solche Knoten in der Lage sind,
Pakete in Downstream-Richtung zum Knoten MNx zu
senden. Man beachte, dass unter IEEE 802.3x ein Typ von Pausen-Nachricht
bekannt ist, und dass ein Knoten gemäß diesem Standard Pausen-Nachrichten
an alle benachbarten Upstream-Knoten sendet. Als Reaktion werden
alle diese Knoten angewiesen, mit dem Senden von Paketen in Downstream-Richtung
zu dem Knoten aufzuhören,
der die Pausen-Nachricht gesendet hat. Wenn Schritt 54 die
Pausen-Nachricht
ausgibt, hat sie im Gegensatz dazu jedoch in der bevorzugten Ausführung die
Form wie die in 5 gezeigte Nachricht 60 und
enthält
vorzugsweise die folgende Information. Die Nachricht 60 enthält ein Pausen-Nachricht-Kennungs-Feld 601 , das einem Knoten, der die Nachricht 60 empfängt, anzeigt,
dass die Nachricht eine Pausen-Nachricht ist. Die Nachricht 60 enthält auch
ein Sitzungs-Kennungs-Feld 602 .
Dieses Feld 602 zeigt sowohl die
Metro-Eingangs-, als auch Ausgangs-Adresse der von Knoten MNx erkannten aggressiven Sitzung, das heißt es kennzeichnet
die Sitzung, die den Schwellwert in ihrem entsprechenden virtuellen Speicherbereich überschritten
hat. Die Nachricht 60 enthält auch ein Verkehrs-Klassen-Feld 603 , das die Klasse der aggressiven Sitzung
anzeigt. Schließlich
enthält
die Nachricht 60 ein Pausenzeit-Feld 604 ,
wobei die Pausenzeit die Zeit angibt, die ein oder mehrere Upstream-Knoten
mit dem Senden von bestimmten Paketen zu Knoten MNx,
der die Pausen-Nachricht 60 ausgegeben hat, aufhören müssen. In
der bevorzugten Ausführung
ist die Länge
der Pausenzeit in Feld 604 , wie
durch Knoten NMx festgelegt, proportional
zur Menge von Paketen, um die die aggressive Sitzung ihren virtuellen
Speicherbereich überschritten
hat. Verschiedene dieser Aspekte können auch auf der Grundlage
des oben angegebenen Beispiels eingeschätzt werden. In diesem Fall
nehmen wir an, dass das System Puffer 30HC als
blockiert erkennt und es auch erkennt, dass die aggressive Sitzung
die ist, welche den virtuellen Speicherplatz VSHC0 belegt.
Auch nehmen wir an, dass die Gesamt-Paket-Belegung der aggressiven
Sitzung PHC0 ist. Die bevorzugte Ausführung berechnet
dann die Menge an Paketen, E, die ihren entsprechenden zugewiesenen
virtuellen Speicherplatz oder den Schwellwert überschritten hat (d.h. E =
PHC0 – THRHC0), und wir nehmen an, dass E in Bit gemessen
wird. Wenn E ermittelt ist, bestimmt die bevorzugte Ausführung die
Zeit, TS, zur Bedienung der Menge E an Paketen
(TS = E/RateHC),
wobei RateHC die Bedienrate des Verkehrs
der hohen Klasse ist. Die bevorzugte Ausführung bestimmt auch die Zeit,
TUP, für
die zu sendende und an den Upstream-Knoten zu liefernde Pausen-Nachricht
(TUP = TM – TP), wobei TM die
Zeit für
die Erzeugung einer Pausen-Nachricht ist, und TP die
zur Übertragung
zum Upstream-Knoten benötigte
Zeit ist. Zusätzlich
dazu bestimmt die bevorzugte Ausführung, ob die aggressive Sitzung
selbst zurzeit einer Pausen-Aktion durch den Downstream-Knoten ausgesetzt
ist. Falls ja, nehmen wir an, dass TDWN die
restliche Pausenzeit ist, die vom Downstream- Knoten auf die aggressive Sitzung angewendet
wird. Aus allen Informationen berechnet die bevorzugte Ausführung die
Zeit, TPAUSE, die benötigt wird, die aggressive Sitzung
im Upstream-Knoten
anzuhalten (TPAUSE = TS +
TUP + TDWN). Diese
Pausenzeit TPAUSE wird dann auf das Pausenzeit-Feld 604 abgebildet. In einem Aspekt der bevorzugten
Ausführung
erhalten jedoch nicht alle benachbarten Upstream-Knoten den Befehl,
für die
Pausenzeit in Feld 604 mit dem
Senden von Paketen aufzuhören.
Stattdessen erhält
jeder solche benachbarte Upstream-Knoten nur den Befehl, mit dem Senden
von Paketen für
die aggressive Sitzung und in der spezifizierten Klasse für die Dauer
der Pausenzeit in Feld 604 aufzuhören. Somit
können
die benachbarten Upstream-Knoten weiter andere Pakete für andere Sitzungen
zum Knoten MNx senden. Als Erklärung erinnere
man sich an das obige Beispiel, in dem Schritt 52 ein Paket
einer hohen Klasse von einer Sitzung mit Eingangs-Knoten ME0 und Ausgangs-Knoten ME1 empfängt, und
wir nehmen an, dass THRHC0 bei der Speicherung
des Paketes im virtuellen Speicherbereich VSHC0 überschritten
wird. Als Folge davon sendet der Knoten MNx eine
Pausen-Nachricht in Form einer Nachricht 60 an jeden benachbarten
Upstream-Metro-Knoten. Als Reaktion darauf wird für die Dauer
der Pausenzeit im Feld 604 der
Pausen-Nachricht jedem der Metro-Knoten das Senden eines Paketes
einer hohen Klasse mit Eingangs-Knoten ME0 und
Ausgangs-Knoten ME1 zum Knoten MNx verboten. Während der Dauer der Pausenzeit in
Feld 604 steht es jedoch jedem
der benachbarten Upstream-Metro-Knoten
frei, Pakete anderer Sitzungen und auch Klassen zum Knoten MNx zu senden, wobei angenommen wird, dass
diese Knoten in der Zwischenzeit keine weiteren Pausen-Nachrichten
empfangen haben, die sich auf diese anderen Pakete beziehen.
-
Aus
den obigen Erklärungen
und Beschreibungen erkennt ein Fachmann, dass die bevorzugten Ausführungen
ein Metro-Ethernet-Netzwerk
mit Knoten ausstatten, die einen seinen Schwellwert überschreitenden
Puffer und darin befindliche aggressive Sitzungen erkennen und als
Reaktion darauf Pausen-Nachrichten an
Upstream-Knoten ausgeben. Man beachte weiterhin in diesem Zusammenhang,
dass wenn ein Upstream-Knoten eine Pausen-Nachricht empfängt, die
sich auf eine bestimmte Klasse und Sitzung bezieht, er mit dem Senden
von Paketen von der Klasse und Sitzung zum erkennenden Knoten aufhört. Diese
Beendigung kann bewirken, dass der Upstream-Knoten selbst seinen
eigenen Puffer über
den globalen Schwellwert des Puffers füllt, wodurch der Upstream-Knoten
für seinen
eigenen Puffer die aggressive(n) Sitzung(en) feststellt und weiter
in Upstream-Richtung Pausen-Nachrichten ausgibt. Auf diese Weise
können
andere Knoten von einer oder mehreren aggressiven Sitzungen Kenntnis
erlangen und bezüglich
dieser Sitzungen gesteuert werden, wodurch die Bedienung dieser
Sitzungen geregelt wird bis sie weniger aggressiv werden, das heißt bis die
Lieferung von Paketen für
solche Sitzungen unter die Toleranz fällt, die durch den virtuellen
Speicherplatz-Schwellwert
der verschiedenen erkennenden Knoten festgesetzt ist. Die bevorzugten
Ausführungen
bieten auch verschiedene Vorteile gegenüber dem bisherigen Stand der
Technik. Anders als beim aktuellen Standard IEEE 802.3x hält die bevorzugte
Ausführung
zum Beispiel nur Metro-Sitzungen an, die zu dem Blockierungs-Zustand
beitragen. Weiterhin ist die Länge
der Pausenzeit proportional zu dem Grad der Aggressivität der aggressiven
Sitzungen, das heißt
Verkehr, der aggressiver ist, wird länger angehalten als weniger
aggressiver Verkehr, wodurch Netzwerk-Ressourcen auf gerechtere
Weise verteilt werden. Als weiterer Vorteil im Gegensatz zum bisherigen
Stand der Technik kann in der bevorzugten Ausführung ein Knoten, der eine
Pausen-Nachricht ausgibt, weiter anderen Verkehr (d.h. nicht aggressiven
Verkehr) von benachbarten Upstream-Knoten empfangen. Als noch weiterer
Vorteil wird in der bevorzugten Ausführung anders als in dem oben
erwähnten
Beitrag "Selective
Backpressure in Switched Ethernet LANs" vorzugsweise ein einzelner Puffer implementiert,
um jede Sitzung einer gleichen Klasse zu überwachen und zu steuern, und
die Aufteilung verschiedener virtueller Speicherbereiche in dem
Puffer wird vorzugsweise mit der Zeit geändert, was auch zu einer Verringerung
von Hardware-Modifikationen und Kosten führt. Als weiterer Vorteil hat
in der bevorzugten Ausführung
anders als in den oben erwähnten
Dokumenten "A Simple
Technique That Prevents Packet Loss and Deadlocks in Gigabit Ethernet" und "Prevention of Deadlocks
and Livelocks in Lossless, Backpressure Packet Networks" jede Sitzung einen
zugeordneten virtuellen Speicherbereich, der auf der Grundlage des
berechneten Bandbreitenanteils der Sitzung berechnet wird, und da
die Bereiche virtuell sind, ist die Zuordnung des Speicherbereichs
nicht starr. In der Tat kann eine solche Zuordnung entsprechend
dem Verkehr und der Netzwerk-Bedingungen
geändert
werden. Weiterhin kann, wenn ein virtueller Speicherbereich von
einer Sitzung nicht gefüllt
wird, er durch Pakete von einer oder mehreren anderen Sitzungen
belegt werden. Somit kann Puffer-Speicherbereich immer effizient
und gerecht genutzt werden. Ebenfalls im Gegensatz zu den beiden letztgenannten
Dokumenten wird in der bevorzugten Ausführung eine Blockierung nur
ausgelöst,
wenn die Paket-Belegung den globalen Schwellwert des Puffers überschreitet.
Daher ist das Verfahren eine Erweiterung des Standards IEEE802.3x,
aber der Grad des Rückstaus,
den eine aggressive Sitzung erhält,
ist proportional zur Anzahl der Pakete, um die die Sitzung ihre
zugewiesene Segment-Grenze überschritten
hat. Obwohl die vorliegenden Ausführungen detailliert beschrieben
wurden, können
verschiedene Ersetzungen, Änderungen und
Abwandlungen der oben dargelegten Beschreibungen durchgeführt werden,
ohne vom Umfang der Erfindung abzuweichen. Zum Beispiel können, obwohl
die gezeigte Ausführung
virtuelle Speicherbereiche mit zwei Klassen zeigt, in einer alternativen
Ausführung
einige Klassen mit einem entsprechende Puffer vorhanden sein, wie
gezeigt, es kann jedoch sein, dass der Puffer nicht in virtuelle Speicherbereiche
aufgeteilt ist, das heißt
alle Pakete für
die Klasse werden nur im Puffer gespeichert. Diese Lösung kann
zusammen mit einem oder mehreren weiteren Puffern vorhanden sein,
die in virtuelle Speicherbereiche unterteilt sind, wobei eine Pausen-Nachricht
gesendet wird, wenn der getrennte Puffer seinen globalen Schwellwert
erreicht und ein oder mehrere virtuelle Speicherbereiche ebenfalls
ihre entsprechenden Schwellwerte erreichen. Als weiteres Beispiel
in einer anderen Ausführung
wird, da für
VLAN-Verkehr mehrere Spanning Trees verfügbar sein können, jeder der Ethernet-Rahmen
durch eine Spanning-Tree-Kennung (ST-id) erweitert. Ein Fachmann
kann weitere Beispiele finden. Somit zeigen diese Beispiele sowie
die oben angegebenen Lehren weiterhin den Umfang der Erfindung,
wie durch die folgenden Ansprüche
definiert.
-
-
-
-
-