-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf das Gebiet der Telekommunikation,
und insbesondere auf die dynamische Zuordnung von Verkehrsklassen
zu Warteschlangen mit unterschiedlichen Prioritätsgraden.
-
Hintergrund
der Erfindung
-
Der
Fluss von Paketen durch paketvermittelte Netzwerke wird durch Switches
und Router gesteuert, die Pakete auf der Grundlage von Zielinformation
weiterleiten, die in den Paketen selbst enthalten ist. Ein typischer
Switch oder Router schließt
eine Anzahl von Eingangs-/Ausgangs- (I/O) Modulen ein, die mit einer
Vermittlungsstruktur verbunden sind, wie z. B. einem Kreuzschienenverteiler
oder einer Vermittlung mit gemeinsam genutztem Speicher. Bei manchen
Switches und Routern wird die Vermittlungsstruktur mit einer höheren Frequenz
als die Übertragungsfrequenz
der I/O-Module betrieben, so dass die Vermittlungsstruktur Pakete
an ein I/O-Modul schneller liefern kann, als das I/O-Modul sie an das
Netzwerk-Übertragungsmedium
abgeben kann. Bei diesen Geräten
werden Pakete üblicherweise
in einer Warteschlange in dem I/O-Modul angeordnet, um auf die Übertragung
zu warten.
-
Ein
Problem, das auftreten kann, wenn Pakete in Warteschlangen in dem
I/O-Modul oder an einer anderen Stelle in einem Switch oder Router
angeordnet werden, besteht darin, dass sich die Warteschlangen-Verzögerung pro
Paket in Abhängigkeit von
der Menge an Verkehr ändern
kann, die von dem Switch abgewickelt wird. Veränderliche Warteschlangen-Verzögerungen
neigen dazu, Datenströme
zu beeinträchtigen,
die durch eine Echtzeit-Abtastung erzeugt werden (beispielsweise
Audio und Video), weil die ursprünglichen
Zeitverzögerungen
zwischen aufeinanderfolgenden Paketen in dem Strom das Abtastintervall übertragen
und daher erforderlich sind, um die Quellen-Information getreu wiederzugeben. Ein
weiteres Problem, das sich aus der Anordnung von Paketen in einer
Warteschlange in einem Switch oder Router ergibt, besteht darin,
dass Daten von einer relativ wichtigen Quelle, wie z.B. einem gemeinsam
genutzten Server, durch Daten von weniger wichtigen Quellen behindert
werden, was zu einem Flaschenhals führt.
-
Eine
mögliche
Lösung
hierfür
ist in der internationalen Anmeldung Nr. WO 99 00949 beschrieben.
In dieser Anmeldung ist ein Verfahren beschrieben, durch das Warteschlangen
mit einer Priorität versehen
werden und die Priorität
eines Datenflusses abgesenkt werden kann. Datenflüsse sind
jedoch Pakete, die innerhalb des Teilnetzes weitergeleitet werden
und daher keine Kopffeld-Modifikation
erfordern. Daher ist ein Verfahren zur Zuteilung einer Priorität zu Paketen
von oder zu Quellen/Zielen außerhalb
des Teilnetzes erforderlich.
-
Zusammenfassung
der Erfindung
-
Ein
Verfahren und eine Vorrichtung zur dynamischen Zuordnung von Verkehrsklassen
zu einer Prioritäts-Warteschlange
gemäß den Ansprüchen 1 bzw.
9 werden offenbart. Der Bandbreitenverbrauch durch eine oder mehrere
Arten von Paketverkehr, der in einem Paket-Weiterleitungsgerät empfangen
wird, wird überwacht.
Die Warteschlangen-Zuordnung von zumindest einem Typ von Paketverkehr
wird automatisch von einer Warteschlange, die eine erste Priorität hat, zu
einer Warteschlange geändert,
die eine zweite Priorität
hat, wenn der Bandbreitenverbrauch den Schwellenwert übersteigt.
-
Weitere
Merkmale und Vorteile der Erfindung werden aus den beigefügten Zeichnungen
und aus der nachfolgenden ausführlichen
Beschreibung ersichtlich.
-
Kurze Beschreibung
der Zeichnungen
-
Die
vorliegende Erfindung wird in Form eines Beispiels und ohne Beschränkung in
den Figuren der beigefügten
Zeichnungen erläutert,
in denen gleiche Bezugsziffern ähnliche
Elemente bezeichnen, und in denen:
-
1 eine
Paket-Weiterleitungseinrichtung zeigt, die zur Realisierung von
Ausführungsformen der
vorliegenden Erfindung verwendet werden kann;
-
2A eine
Warteschlangen-Füll-Logik zeigt,
die durch eine Warteschlangen-Verwaltung in einem Viertach-Schnittstellengerät realisiert
ist;
-
2B eine
Warteschlangen-Entleerungs-Logik gemäß einer Ausführungsform
zeigt;
-
3 den
Fluss eines Paketes innerhalb des Switches nach 1 zeigt;
-
4 die
Speicherung eines Eintrages in einer Adressenauflösungstabelle
zeigt, die von einer Adressenauflösungseinheit verwaltet wird;
-
5 ein
Diagramm der Softwarearchitektur für den Switch nach 1 gemäß einer
Ausführungsform
ist; und
-
6 ein Beispiel einer dynamischen Zuordnung
von Verkehrsklassen zu einer Prioritäts-Warteschlange zeigt.
-
Ausführliche
Beschreibung
-
Eine
Paket-Weiterleitungseinrichtung, in der ausgewählte Klassen von Netzwerk-Verkehr dynamisch
für eine
Prioritäts-Warteschlangenbildung
zugeordnet werden können,
wird beschrieben. Bei einer Ausführungsform
schließt
die Paket-Weiterleitungseinrichtung
eine virtuelle Java-Maschine zur Ausführung von vom Benutzer codierten
Java-Applets ein, die von einem Netzwerk-Verwaltungsserver (NMS)
empfangen werden. Eine Java-zu-Native Schnittstelle (JNI) ist vorgesehen,
um es den Java-Applets zu ermöglichen,
eine Fehlerinformation und Verkehrsstatistiken von der Geräte-Hardware
zu gewinnen, und um es den Java-Applets
zu ermöglichen,
Konfigurations-Information zu der Geräte-Hardware zu schreiben, unter
Einschluss von Information, die anzeigt, welche Verkehrsklassen
in Prioritäts-Warteschlangen
angeordnet werden sollten. Die Java-Applets realisieren vom Benutzer
festgelegte Verkehrsverwaltungs-Richtlinien auf der Grundlage der
Echtzeit-Auswertung der Fehlerinformation und der Verkehrsstatistiken,
um eine dynamische Steuerung der Prioritäts-Warteschlangen-Zuordnungen zu schaffen.
Diese und andere Gesichtspunkte und Vorteile der vorliegenden Erfindung
werden nachfolgend beschrieben.
-
1 zeigt
eine Paket-Weiterleitungseinrichtung 17, die zur gerätemäßigen Ausgestaltung von
Ausführungsformen
der vorliegenden Erfindung verwendet werden kann. Für die Zwecke
der vorliegenden Beschreibung wird angenommen, dass die Paket-Weiterleitungseinrichtung 17 ein
Switch oder eine Vermittlung ist, die Pakete zwischen Eintritts- und
Austrittsports auf der Grundlage von Medien- Zugangssteuerungs- (MAC-) Adressen innerhalb
der Pakete vermittelt. Bei einer alternativen Ausführungsform
kann die Paket-Weiterleitungseinrichtung 17 ein Router
sein, der Pakete entsprechend der Ziel-Internetprotokoll- (IP-)
Adressen weiterleitet, oder ein Router-Switch, der sowohl eine MAC-Adressen-Vermittlung
als auch eine IP-Adressen-Routenführung ausführt. Die hier beschriebenen
Techniken und Strukturen sind allgemein auf eine Einrichtung anwendbar,
die Pakete in einem Paketvermittlungs-Netzwerk weiterleitet. Weiterhin
wird der Ausdruck Paket hier allgemein verwendet, um auf eine eine
feste Länge
aufweisende Zelle, einen eine veränderliche Länge aufweisenden Rahmen oder
irgendeine andere Informationsstruktur Bezug zu nehmen, die hinsichtlich
ihrer Zieladresse in sich abgeschlossen ist.
-
Der
Switch 17 schließt
eine Vermittlungsstruktur 12 ein, die mit einer Vielzahl
von I/O-Einheiten (lediglich die I/O-Einheiten 1 und 16 sind
gezeigt) und mit einer Verarbeitungseinheit 10 gekoppelt
ist. Die Verarbeitungseinheit schließt zumindest einen Prozessor 31 ein
(der ein Mikroprozessor, digitaler Signalprozessor oder Mikrocontroller
sein kann), der mit einem Speicher 32 über einen Bus 33 gekoppelt ist.
Bei einer Ausführungsform
schließt
jede I/O-Einheit 1, 16 vier physikalische Ports
P1–P4
ein, die mit einer Vierfach-Medienzugangs-Steuerung (QMAC) 14A, 14B über jeweilige
Sendeempfänger-Schnittstelleneinheiten 21A–24A, 21B–24B gekoppelt
sind. Jede I/O-Einheit 1, 16 schließt weiterhin
ein Vierfach-Schnittstelleneinrichtung
(QID) 16A, 16B, eine Adressenauflösungseinheit
(ARU) 15A, 15B und einen Speicher 18A, 18B ein,
die in der in 1 gezeigten Weise miteinander
verbunden sind. Vorzugsweise ist der Switch 17 modular,
wobei zumindest die I/O-Einheiten 1, 16 auf (nicht
gezeigten) Port-Karten gerätemäßig ausgebildet
sind, die in einer (nicht gezeigten) Rückwandebene des Switch oder
der Vermittlung 17 installiert sein können. Bei einer Ausgestaltung
schließt
jede Port-Karte vier I/O-Einheiten ein und unterstützt daher
bis zu 16 physikalische Ports. Die Switch-Rückwandebene
schließt
Einschubschlitze für
bis zu sechs Port-Karten
ein, so dass der Switch 17 entsprechend den Notwendigkeiten
des Kunden skaliert werden kann, um zwischen 16 und 96 physikalische
Ports zu unterstützen.
Bei alternativen Ausführungsformen
kann jede I/O-Einheit 1, 16 mehr oder weniger
physikalische Ports unterstützen,
und jede Port-Karte kann mehr oder weniger I/O-Einheiten 1, 16 unterstützen, und
der Switch 17 kann mehr oder weniger Port-Karten unterstützen. Beispielsweise
kann die in 1 gezeigte I/O-Einheit 1 dazu verwendet
werden, vier 10baseT-Übertragungsleitungen
(das heißt
10 Mbps (Megabit pro Sekunde), verdrillte Adern), oder vier 100baseF-Übertragungsleitungen
(100 Mbps, Lichtleitfaser) zu unterstützen, während eine unterschiedliche
I/O-Einheit (nicht gezeigt) zur Unterstützung einer einzelnen 100baseF-Übertragungsleitung (1000 Mbps,
Lichtleitfaser) verwendet werden kann. Nichts was hier beschrieben
wird, sollte als beschränkende
Ausführungsformen
der vorliegenden Erfindung zur Verwendung mit einem bestimmten Übertragungsmedium, einer
bestimmten I/O-Einheit, Port-Karte oder Gerätegestell-Konfiguration betrachtet werden.
-
Unter
erneuter Bezugnahme auf 1 wird, wenn ein Paket 25 an
einem physikalischen Port P1 empfangen wird, es an den entsprechenden
physikalischen Sendeempfänger 21A geliefert,
der irgendeine erforderliche Signalaufbereitung (beispielsweise eine
optisch-/elektrische Signalumwandlung) ausführt und das Paket 25 dann
an die QMAC 14A weiterleitet. Die QMAC 14A puffert
Pakete, die von den vier physikalischen Sendeempfängern 21a–24A empfangen
werden, in der erforderlichen Weise und leitet ein Paket zu einer
Zeit an die QID 16A weiter. Eine Empfangslogik innerhalb
der QID 16A benachrichtigt die ARU 15A, dass das
Paket 25 empfangen wurde. Die ARU berechnet einen Tabellenindex
auf der Grundlage der Ziel-MAC-Adresse in dem Paket 25 und
verwendet den Index zur Identifikation eines Eintrages in einer
Weiterleitungstabelle, die der Ziel-MAC-Adresse entspricht. In Paket-Weiterleitungseinrichtungen,
die auf anderen Protokollschichten des Paketes arbeiten (beispielsweise
Router), kann eine Weiterleitungstabelle auf der Grundlage einer
anderen Zielinformation indexiert sein, die in dem Paket enthalten
ist.
-
Gemäß einer
Ausführungsform
zeigt der Weiterleitungstabellen-Eintrag, der auf der Grundlage
der Ziel-MAC-Adresse identifiziert wird, den Switch-Austrittsport
an, für
den das Paket 25 bestimmt ist, und außerdem, ob das Paket Teil eines MAC-Adressen-basierten
virtuellen örtlichen
Netzwerkes (VLAN) oder eines Portbasierten VLAN ist. (Nebenbei sei
gesagt, dass ein VLAN eine logische Gruppierung von MAC-Adressen
(eines MAC-Adressen-basierten VLAN) oder eine logischen Gruppierung
von physikalischen Ports (eines Port-basierten VLAN) ist). Der Weiterleitungstabellen-Eintrag
zeigt weiterhin an, ob das Paket 25 in einer Prioritäts-Warteschlange
in der I/O-Einheit anzuordnen ist, die den Ziel-Port enthält.
-
Wie
dies weiter unten erläutert
wird, kann die Prioritäts-Warteschlangenbildung
auf der Grundlage einer Anzahl von Bedingungen bestimmt werden,
unter Einschluss von, jedoch ohne Beschränkung auf die Tatsache, ob
das Paket einen Teil eines bestimmten IP-Flusses bildet, oder ob
das Paket für
einen bestimmten Port, ein bestimmtes VLAN oder eine bestimmte MAC-Adresse
bestimmt ist.
-
Gemäß einer
Ausführungsform
segmentiert die QID 16A, 16B das Paket 25 in
eine Vielzahl von eine feste Länge
aufweisenden Zellen 26 zur Übertragung über die Vermittlungsstruktur 12.
Jede Zelle schließt
ein Kopffeld 28 ein, das sie als Bestandteil des Paketes 25 identifiziert
und das den Ziel-Port für die
Zelle (und damit für
das Paket 25) identifiziert. Das Kopffeld 28 der
Zelle schließt
weiterhin ein Bit 29 ein, das anzeigt, ob die Zelle die
Anfangszelle eines Paketes ist, sowie ein Bit 30, das anzeigt,
ob das Paket 25, zu der die Zelle gehört, in einer Prioritäts-Warteschlange oder
einer Warteschlange besten Bemühens
auf der Ziel-I/O-Einheit einzuordnen ist.
-
Die
Vermittlungsstruktur 12 leitet jede Zelle an die I/O-Einheit
weiter, die durch das Zellen-Kopffeld 28 angezeigt ist.
In dem in 1 gezeigten Beispiel des Datenflusses
wird angenommen, dass die einen Bestandteil des Paketes 25 bildenden
Zellen 26 an die I/O-Einheit 16 weiterzuleiten
sind, wo sie an eine Sendelogik innerhalb der QID 16B geliefert
werden. Die Sendelogik in der QID 16B schließt eine (nicht
gezeigte) Warteschlangen-Verwaltung ein, die eine Prioritäts-Warteschlange und
eine Warteschlange besten Bemühens
in dem Speicher 18B unterhält. Bei einer Ausführungsform
ist der Speicher 18B in eine Gruppe von Puffern aufgelöst, die
jeweils groß genug
sind, um ein vollständiges
Paket aufzunehmen. Wenn die Anfangszelle des Paketes 25 an
die QID 16B geliefert wird, gewinnt die Warteschlangen-Verwaltung
einen Puffer von der Gruppe und hängt den Puffer entweder an
die Prioritäts-Warteschlange
oder die Warteschlange besten Bemühens an, in Abhängigkeit
davon, ob das Prioritätsbit 30 in der
Anfangszelle gesetzt ist. In einer Ausführungsform sind die Prioritäts-Warteschlange und
die Warteschlange besten Bemühens
jeweils durch eine verkettete Liste realisiert, wobei die Warteschlangen-Verwaltung
jeweilige Zeiger auf den Anfang und das Ende jeder verketteten Liste
führt.
Einträge
werden zum Ende der Warteschlangenliste durch Weiterschalten des
End-Zeigers hinzugefügt,
so dass dieser auf einen neu zugeteilten Puffer zeigt, der an die
verkettete Liste angehängt
wurde, und die Einträge
werden von dem Anfang der Warteschlange dadurch abgenommen, dass
der Anfangs-Zeiger weitergeschaltet wird, so dass er auf den nächsten Puffer
in der verketteten Liste zeigt, während der verbrauchte Puffer
zu der Gruppe zurückgeliefert
wird.
-
Nachdem
ein Puffer an entweder die Prioritäts-Warteschlange oder die Warteschlange
besten Bemühens
angehängt
wurde, werden die Anfangszelle und die nachfolgenden Zellen dazu
verwendet, das Paket 25 in dem Puffer neu zusammenzufügen. Schließlich wird
das Paket 25 von dem Anfang der Warteschlange abgenommen
und an einen Austritts-Port über
die QMAC 14B und den physikalischen Sendeempfänger (beispielsweise 23B)
in einer Austrittsoperation geliefert. Dies ist in Form eines Beispiels
in 1 durch den Austritt des Paketes 25 aus
dem physikalischen Port P3 der I/O-Einheit 16 gezeigt.
-
2A zeigt
die Warteschlangen-Fülllogik, die
durch die Warteschlangen-Verwaltung
in der QID verwirklicht ist. Beginnend mit dem Block 51 wird
eine Zelle von der Vermittlungsstruktur in der QID empfangen. Das
Anfangs-Zellenbit in dem Zellen-Kopffeld wird an dem Entscheidungsblock 53 überprüft, um festzustellen,
ob die Zelle die Anfangszelle eines Paketes ist. Wenn dies der Fall
ist, wird das Prioritätsbit in
dem Zellen-Kopffeld an dem Entscheidungsblock 55 überprüft, um festzustellen,
ob ein Eintrag in der Prioritäts-Warteschlange
oder in der Warteschlange besten Bemühens für die Paket-Zusammenfügung zuzuteilen
ist. Wenn das Prioritätsbit
gesetzt ist, wird ein Eintrag in der Prioritäts-Warteschlange am Block 57 zugeteilt,
und der Prioritäts-Warteschlangen-Eintrag
wird am Block 59 dem Teil des Zellen-Kopffeldes zugeordnet,
der die Zelle als ein Bestandteil eines bestimmten Paketes identifiziert.
Wenn das Prioritätsbit
in dem Zellen-Kopffeld nicht gesetzt ist, so wird im Block 61 ein
Eintrag in der Warteschlange besten Bemühens zugeteilt, und der Eintrag
der Warteschlange besten Bemühens
wird im Block 63 dem Teil des Zellen-Kopffeldes zugeordnet,
der die Zelle als Bestandteil eines bestimmten Paketes identifiziert.
-
Wenn
bei erneuter Betrachtung des Entscheidungsblockes 53 das
Anfangs-Zellenbit
in dem Zellen-Kopffeld nicht gesetzt ist, so wird der dem Zellen-Kopffeld
zugeordnete Warteschlangen-Eintrag am Block 65 identifiziert.
Die Zuordnung zwischen dem Zellen-Kopffeld und dem am Block 65 identifizierten Warteschlangen-Eintrag
wurde vorher in entweder dem Block 59 oder dem Block 63 bestimmt. Weiterhin
kann die Identifikation des Warteschlangen-Eintrages im Block 65 die
Inspektion des Prioritätsbits
in der Zelle einschließen,
um die Identifikationsbemühungen
entweder auf die Prioritäts-Warteschlange
oder die Warteschlange besten Bemühens einzuengen. Im Block 67 wird
die Zelle mit der vorhergehenden Zelle in dem Warteschlangen-Eintrag in
einer Paket-Zusammenfügungs-Operation
kombiniert. Wenn die Zusammenfügungs-Operation
im Block 67 zu einem vervollständigten Paket (Entscheidungsblock 69)
führt,
so wird das Paket im Block 71 als übertragungsbereit markiert.
In einer Ausführungsform
wird das Paket durch Setzen einer Flagge markiert, die dem Warteschlangen-Eintrag
zugeordnet ist, in dem das Paket neu zusammengefügt wurde. Andere Techniken
zur Anzeige, dass ein Paket übertragungsbereit
ist, können
in alternativen Ausführungsformen
verwendet werden.
-
2B zeigt
die Warteschlangen-Entleerungs-Logik gemäß einer Ausführungsform.
Am Entscheidungsblock 75 wird der Eintrag am Anfang der Prioritäts-Warteschlange überprüft, ob diese
ein Paket enthält,
das übertragungsbereit
ist. Wenn dies der Fall ist, wird das Paket am Block 77 übertragen,
und der entsprechende Prioritäts-Warteschlangen-Eintrag
wird von dem Anfang der Prioritäts-Warteschlange
abgennmmen und am Block 79 neu zugeteilt. Wenn ein übertragungsbereites
Paket am Anfang der Prioritäts-Warteschlange nicht
vorhanden ist, so wird der Eintrag am Anfang der Warteschlange besten Bemühens am
Entscheidungsblock 81 überprüft. Wenn
ein Paket am Anfang der Warteschlange besten Bemühens übertragungsbereit ist, wird
es am Block 83 übertragen,
und der entsprechende Eintrag der Warteschlange besten Bemühens wird
von dem Anfang der Warteschlange besten Bemühens abgehoben und im Block 85 wird
die Zuteilung aufgehoben. Es sei bemerkt, dass in der in 2B gezeigten Ausführungsform
Pakete von der Warteschlange besten Bemühens lediglich dann entleert
werden, nachdem die Prioritäts-Warteschlange
entleert wurde. In alternativen Ausführungsformen kann ein Zeitgeber,
Zähler
oder ein ähnliches
Logikelement verwendet werden, um sicherzustellen, dass die Warteschlange
besten Bemühens 105 zumindest
genauso oft mit Diensten versorgt wird, oder zumindest, nachdem
jede N Anzahl von Paketen von der Prioritäts-Warteschlange übertragen wurden, wodurch zumindest
ein Schwellenwert des Dienstes für
die Warteschlange besten Bemühens
sichergestellt wird.
-
3 zeigt
den Fluss eines Paketes innerhalb des Switches 17 nach 1.
Ein Paket wird in dem Switch am Block 91 empfangen und
dazu verwendet, im Block 93 einen Eintrag in einer Weiterleitungs-Tabelle
zu identifizieren, die als die Adressenauflösungs- (AR-) Tabelle bezeichnet
wird. Am Entscheidungsblock 95 wird das Prioritätsbit in
dem AR-Tabelleneintrag überprüft, um festzustellen,
ob das Paket zu einer Verkehrsklasse gehört, die für eine Prioritäts-Warteschlangenbildung
ausgewählt wurde.
Wenn das Prioritätsbit
gesetzt ist, wird das Paket im Block 97 in Zellen segmentiert,
deren jeweilige Prioritätsbits
in ihren Kopffeldern gesetzt sind. Wenn das Prioritätsbit nicht
gesetzt ist, wird das Paket im Block 99 in Zellen segmentiert,
deren jeweilige Prioritätsbits
in ihren Zellen-Kopffeldern gelöscht sind.
Die Bestandteil-Zellen jedes Paketes werden zu einer Austritts-I/O-Einheit durch die
Vermittlungsstruktur weitergeleitet. In der Austritts-I/O-Einheit wird
das Prioritätsbit
jeder Zelle überprüft (Entscheidungsblock 101)
und dazu verwendet, die Zelle zu einem Eintrag in entweder der Prioritäts-Warteschlange 103 oder
in der Warteschlange 105 besten Bemühens zu lenken, wo sie mit
anderen Zellen kombiniert wird, um das Paket neu zusammenzufügen.
-
4 zeigt
die Speicherung eines Eintrages in der Adressenauflösungs- (AR-)
Tabelle, die von der ARU verwaltet wird. Bei einer Ausführungsform wird
die AR-Tabelle in
einem Hochgeschwindigkeits-Speicher mit wahlfreiem Zugriff (SRAM)
geführt,
der mit der ARU verbunden ist. Alternativ kann die AR-Tabelle in
einem Speicher in einer anwendungsspezifischen integrierten Schaltung
(ASIC) enthalten sein, die die ARU einschließt. Allgemein speichert die
ARU einen Eintrag in der AR-Tabelle
in Abhängigkeit
von der Paket-Weiterleitungsinformation von der Verarbeitungseinheit.
Die Verarbeitungseinheit liefert Paket-Weiterleitungs-Information, die
in jeder AR-Tabelle in dem Switch zu speichern ist, immer dann,
wenn eine neue Zuordnung zwischen einer Zieladresse und einem Switch-Austritts-Port gelernt wird.
Bei einer Ausführungsform
wird eine Adressen-zu-Port-Zuordnung
durch Senden eines Paketes, das eine unbekannte Austrittsport-Zuordnung hat, an
jedem der Austritts-Port des Switches und durch Zuordnen der Zieladresse
des Paketes zu dem Austritts-Port gelernt, von dem eine Bestätigung empfangen
wird. Nach dem Lernen der Zuordnung zwischen dem Austritts-Port
und der Zieladresse gibt die Verarbeitungseinheit eine Weiterleitungsinformation
ab, die beispielsweise eine Identifikation des neu zugeordneten
Austritts-Ports, die Ziel- MAC-Adresse, eine
Identifikation des VLAN, das der MAC-Adresse zugeordnet ist (falls
vorhanden), eine Identifikation des VLAN, das dem Austritts-Port
zugeordnet ist (falls vorhanden), die Ziel-IP-Adresse, den Ziel-IP-Port
(beispielsweise Übertragungs-Steuerprotokoll
(TCP), universelles Geräte-Protokoll
(UDP) oder ein anderer IP-Port) und das IP-Protokoll einschließt (beispielsweise
HTTP, FTP oder ein anderes IP-Protokoll). Die Quellen-IP-Adresse,
der Quellen-IP-Port und das Quellen-IP-Protokoll können ebenfalls
geliefert werden, um vollständig
einen Endezu-Ende-IP-Datenfluss zu identifizieren.
-
Gemäß 4 wird
eine Weiterleitungs-Information 110 von der Verarbeitungseinheit
am Block 115 empfangen. Am Block 117 speichert
die ARU die Weiterleitungs-Information in einem AR-Tabelleneintrag.
Am Entscheidungsblock 119 wird die in dem AR-Tabelleneintrag
gespeicherte physikalische Austrittsport-Identifikation mit der
Prioritäts-Konfigurations-Information
verglichen, um festzustellen, ob Pakete, die für den Austritts-Port bestimmt
sind, für
eine Prioritäts-Austritts-Warteschlangenbildung
ausgewählt
wurden. Wenn dies der Fall ist, wird das Prioritätsbit in dem AR-Tabelleneintrag
im Block 127 gesetzt. Danach werden ankommende Pakete,
die den neu gespeicherten Tabelleneintrag indexieren, in der Prioritäts-Warteschlange
angeordnet, um auf die Übertragung
zu warten. Wenn Pakete, die für
den Austritts-Port bestimmt sind, nicht für eine Prioritäts-Warteschlangenbildung
ausgewählt
wurden, so wird am Entscheidungsblock 121 die in dem AR-Tabelleneintrag
gespeicherte MAC-Adresse mit der Prioritäts-Konfigurationsinformation
verglichen, um festzustellen, ob Pakete, die für die MAC-Adresse bestimmt
sind, für
eine Prioritäts-Austritts-Warteschlangenbildung
ausgewählt
wurden. Wenn dies der Fall ist, wird das Prioritätsbit in dem AR-Tabelleneintrag im
Block 127 gesetzt. Wenn für die MAC-Adresse bestimmte
Pakete nicht für
die Prioritäts-Austritts-Warteschlangenbildung
ausgewählt
wurden, so wird am Entscheidungsblock 123 die VLAN-Identifikation,
die in dem AR-Tabelleneintrag
gespeichert ist (falls vorhanden), mit der Prioritäts-Konfigurationsinformation verglichen,
um festzustellen, ob für
das VLAN bestimmte Pakete für
eine Prioritäts-Austritts-Warteschlangenbildung
ausgewählt
wurden. Wenn dies der Fall ist, wird das Prioritätsbit in dem AR-Tabelleneintrag
im Block 127 gesetzt. Wenn für das VLAN bestimmte Pakete
nicht für
die Prioritäts-Austritts-Warteschlangenbildung
ausgewählt
wurden, so wird am Block 125 der durch die IP-Adresse, den IP-Port
und das IP-Protokoll in der AR-Tabelle identifizierte IP- Datenfluss mit der
Prioritäts-Konfigurationsinformation
verglichen, um festzustellen, ob Pakete, die einen Teil des IP-Datenflusses
bilden, für
die Prioritäts-Austritts-Warteschlangenbildung
ausgewählt wurden.
Wenn dies der Fall ist, so wird das Prioritätsbit in dem AR-Warteschlangen-Eintrag
gesetzt, andernfalls wird das Prioritätsbit nicht gesetzt. Es können noch
weitere Kriterien bei der Zuordnung der Prioritäts-Warteschlangen in alternativen
Ausführungsformen
in Betracht gezogen werden. Beispielsweise kann die Prioritäts-Warteschlangenbildung
für ein
bestimmtes IP-Protokoll spezifiziert werden (beispielsweise FTP,
HTTP). Weiterhin kann der Eintritts-Port, die Quellen-MAC-Adresse
oder das Quellen-VLAN eines Paketes ebenfalls dazu verwendet werden, festzustellen,
ob das Paket in der Prioritäts-Austritts-Warteschlange
anzuordnen ist. Im Einzelnen wird bei einer Ausführungsform die Prioritäts-Warteschlangenbildung
oder die Warteschlangenbildung besten Bemühens von einseitig gerichtetem
Verkehr auf der Grundlage von Ziel-Parametern bestimmt (beispielsweise
Austritts-Port, Ziel-MAC-Adresse oder Ziel-IP-Adresse), während die
Prioritäts-Warteschlangenbildung
oder die Warteschlangenbildung besten Bemühens von Sammelsende-Verkehr
auf der Grundlage von Quellen-Parametern bestimmt wird (beispielsweise
Eintritts-Port, Quellen-MAC-Adresse oder Quellen-IP-Adresse).
-
5 ist
ein Diagramm der Software-Architektur der Switches 17 nach 1 gemäß einer
Ausführungsform.
Ein Betriebssystem 143 und Geräte-Treiber 145 sind
für eine
Schnittstellenverbindung mit der Geräte-Hardware 141 vorgesehen.
Beispielsweise sind Geräte-Treiber
vorgesehen, um Konfigurationsinformation und AR-Speichereinträge in die ARU's in jeweiligen I/O-Einheiten
zu schreiben. Weiterhin führt
das Betriebssystem 143 Speicherverwaltungsfunktionen und
andere Systemdienste in Abhängigkeit
von Anforderungen einer Software höherer Ebene aus. Im Allgemeinen
erstrecken die Gerätetreiber 145 die
von dem Betriebssystem bereitgestellten Dienste und werden als Antwort
auf Anforderungen für
einen Betriebssystem-Dienst aufgerufen, die gerätespezifische Operationen beinhalten.
-
Der
Geräte-Verwaltungs-Code 147 wird
von der Prozessoreinheit (beispielsweise dem Element 10 nach 1)
ausgeführt,
um Funktionen auf der Systemebene auszuführen, unter Einschluss der Verwaltung
von Weiterleitungs-Einträgen
in den verteilten AR-Tabellen und der Verwaltung der Weiterleitung
von Einträgen
in einer Master-Weiterleitungstabelle, die in dem Speicher der Verarbeitungseinheit geführt wird.
Der Geräte-Verwaltungs-Code 147 schließt weiterhin
Routinen zum Aufrufen von Gerätetreiber-Diensten
ein, beispielsweise zur Abfrage der ARU für Verkehrsstatistiken und Fehlerinformation,
oder zum Schreiben einer aktualisierten Konfigurationsinformation
in die ARU's, unter
Einschluss der Prioritäts-Warteschlangenbildungs-Information.
Weiterhin schließt
der Geräte-Verwaltungs-Code 147 Routinen
zum Schreiben einer aktualisierten Konfigurationsinformation in
die ARU's ein, wie
dies nachfolgend anhand der 6 beschrieben
wird. Bei einer Ausgestaltung ist der Geräte-Verwaltungs-Code 147 ein
nativer Code, was bedeutet; dass der Geräte-Verwaltungs-Code 147 ein
kompilierter Satz von Befehlen ist, die direkt von einem Prozessor
in der Verarbeitungseinheit ausgeführt werden können, um die
Geräte-Verwaltungsfunktionen
auszuführen.
-
Bei
einer Ausführungsform
unterstützt
der Geräte-Verwaltungs-Code 147 den
Betrieb eines Java-Klienten 160, der eine Anzahl von Java-Applets einschließt, unter
Einschluss eines Überwachungs-Applets 147,
eines Richtlinien-Durchsetzungs-Applets 159 und
eines Konfigurations-Applets 161. Ein Java-Applet ist eine
Instanzierung einer Java-Klasse, die ein oder mehrere Methoden für eine Selbst-Initalisierung
(beispielsweise einer Konstruktor-Methode, die als „Applet()" bezeichnet wird)
und ein oder mehrere Methoden zur Kommunikation mit einer steuernden
Anwendung einschließt.
Typischerweise ist die steuernde Anwendung für ein Java-Applet ein Web-Browser,
der auf einem Allzweck-Computer abläuft. In der in 5 gezeigten
Software-Architektur ist jedoch eine Java-Anwendung, die als die Daten-Kommunikationsschnittstelle
(DCl) 153 bezeichnet wird, die steuernde Anwendung für die Überwachungs-,
Richtliniendurchsetzungs- und Konfigurations-Applets 157, 159, 161.
Die DCl-Anwendung 153 wird von einer virtuellen Java-Maschine 149 ausgeführt, um
das Herunterladen von Java-Applets von einem Netzwerk-Verwaltungsserver
(NMS) 170 zu verwalten. Eine Bibliothek von Java-Objekten 155 wird
zur Verwendung durch die Java-Applets 157, 159, 161 und
die DCI-Anwendung 153 bereitgestellt.
-
Bei
einer Ausgestaltung liefert der NMS 170 Java-Applets an
den Switch 17 in einem Hypertext-Übertragungsprotokoll- (HTTP-)
Datenstrom. Andere Protokolle können
ebenfalls verwendet werden. Die Bestandteil-Pakete des HTTP-Datenstroms sind
an die IP-Adresse des Switches adressiert und werden an die Verarbeitungseinheit
gelenkt, nachdem sie von der I/O-Einheit empfangen wurden, die mit
dem NMS 170 gekoppelt ist. Nach der Authentifizierung des
HTTP-Datenstromes
speichert die DCl-Anwendung 153 die in dem Datenstrom gelieferten
Java-Applets in dem Speicher der Verarbeitungseinheit und führt eine
Methode zum Aufruf für
jedes Applet aus. Ein Applet wird dadurch aufgerufen, dass der virtuellen
Java-Maschine 149 die Adresse der Konstruktor-Methode des
Applets geliefert wird und bewirkt wird, dass die virtuelle Java-Maschine 149 die
Ausführung
des Applet-Codes beginnt. Der die virtuelle Java-Maschine 149 definierende
Programm-Code wird ausgeführt,
um die Plattform-unabhängigen
Byte-Codes der Java-Applets 157, 159, 161 in
native Befehle zu interpretieren, die von einem Prozessor innerhalb
der Verarbeitungseinheit ausgeführt
werden können.
-
Gemäß einer
Ausführungsform
kommunizieren das Überwachungs-Applet 157,
das Richtlinien-Durchsetzungs-Applet 159 und das Konfigurations-Applet 161 mit
dem Geräte-Verwaltungs-Code 147 über die
Java-Native Schnittstelle (JNI) 151. Die JNI 151 ist
im Wesentlichen eine Anwendungsprogrammierschnittstelle (API) und
liefert einen Satz von Methoden, der von den Java-Applets 157, 159, 161 aufgerufen
werden kann, um Mitteilungen zu senden und Antworten von dem Geräte-Verwaltungs-Code 147 zu
empfangen. Bei einer Realisierung schließt die JNI 151 Verfahren
ein, durch die das Überwachungs-Applet 157 den
Geräte-Verwaltungs-Code 147 auffordern
kann, Fehlerinformation und Verkehrsstatistiken von der Geräte-Hardware 141 zu
gewinnen. Die JNI 151 schließt weiterhin Methoden ein, durch
die das Konfigurations-Applet 161 den Geräte-Verwaltungs-Code 147 auffordern
kann, Konfigurationsinformation in die Geräte-Hardware 141 zu schreiben.
Im Einzelnen schließt
die JNI 151 eine Methode ein, durch die das Konfigurations-Applet 161 anzeigen
kann, dass die Prioritäts-Warteschlangenbildung
für bestimmte
Klassen von Verkehr ausgeführt
werden sollte, unter Einschluss von, jedoch ohne Beschränkung auf
die vorstehend anhand der 4 diskutierten
Verkehrsklassen. Auf diese Weise kann ein vom Benutzer codiertes
Konfigurations-Applet 161 von der virtuellen Java-Maschine 149 innerhalb
des Switches 17 ausgeführt
werden, um eine Methode in der JNI 151 aufzurufen, um den
Geräte-Verwaltungs-Code 147 aufzufordern,
Information zu schreiben, die ausgewählte Verkehrsklassen für die Warteschlangenbildung
in der Prioritäts-Austritts-Warteschlange
zuteilt. Im Ergebnis ordnet das Konfigurations-Applet 161 virtuelle
Warteschlangen zu, die von den ausgewählten Verkehrsklassen definiert
sind, um in die Prioritäts-Austritts-Warteschlange
eingeführt
zu werden.
-
Obwohl
eine virtuelle Java-Maschine 149 und Java-Applets 157, 159, 161 beschrieben
wurden, können
andere virtuelle Maschinen, Interpreter und Script-Sprachen in alternativen
Ausführungsformen
verwendet werden. Weiterhin können,
wie dies weiter unten erläutert
wird, mehr oder weniger Java-Applets verwendet werden, um die Überwachungs-,
Richtliniendurchsetzungs- und Konfigurations-Funktionen in alternativen Ausführungsformen auszuführen.
-
6 zeigt ein Beispiel der dynamischen Zuordnung
von Verkehrsklassen zu einer Prioritäts-Warteschlange. Ein Beispiel
eines Netzwerkes schließt
Switches A und B ein, die an physikalischen Ports 32 bzw. 1 miteinander
gekoppelt sind. Es sei angenommen, dass ein Netzwerk-Administrator
oder anderer Benutzer feststellt, dass ein wichtiger Server 175 am
Port 2 des Switches A eine relativ hohe Dienstgüte (QoS)
erfordert, und dass zumindest in dem Switch B die erforderliche
QoS dadurch bereitgestellt werden kann, dass sichergestellt wird,
dass zumindest 20% der Austrittskapazität des Switches B, Port 1,
für Verkehr
reserviert wird, der für
die MAC-Adresse des Servers 175 bestimmt ist. Eine Möglichkeit,
um sicherzustellen, dass 20% der Austrittskapazität für Verkehr
reserviert wird, der für
den Server 175 bestimmt ist, besteht darin, eine Prioritäts-Warteschlangenbildung
für Pakete
zuzuordnen, die für
die MAC-Adresse des Servers 175 bestimmt sind, jedoch nicht
für anderen
Verkehr. Obwohl eine derartige Zuordnung einen Prioritäts-Austritt
für den Server-Verkehr
sicherstellen würde,
kann dies jedoch auch zu einer unnötig hohen Bandbreiten-Zuteilung
für den
Server 175 führen,
was möglicherweise anderen
wichtigen Verkehr aushungern läßt oder
anderen wichtigen Verkehr in einem Flaschenhals zwischen weniger
wichtigem Verkehr in der Warteschlange besten Bemühens zurückläßt. Beispielsweise
sei angenommen, dass es zumindest zwei andere MAC-Adressen-Ziele,
die MAC-Adresse A und die MAC-Adresse B gibt, denen der Benutzer
eine Prioritäts-Warteschlangenbildung
zuordnen möchte, solange
die Austrittskapazität,
die für
den für
den Server bestimmten Verkehr erforderlich ist, zur Verfügung steht.
In diesem Fall würde
es wünschenswert sein,
den MAC-Adressen-A- und MAC-Adressen-B-Verkehr so zu konfigurieren,
dass er entweder in der Prioritäts-Warteschlange
oder der Warteschlange des besten Bemühens gemäß vorhandener Verkehrsbedingungen
angeordnet wird. In zumindest einer Ausführungsform wird dies unter
Verwendung von Überwachungs-,
Richtliniendurchsetzungs- und Konfigurations-Applets erreicht, die
auf den Switch B heruntergeladen wurden und die in einem Java-Klienten
in dem Switch B ausgeführt
werden, wie dies weiter oben anhand der 5 beschrieben
wurde.
-
6 schließt Beispiele von Pseudocode-Programmlisten
von Überwachungs-,
Richtliniendurchsetzungs- und Konfigurations-Applets 178, 179, 180 ein,
die verwendet werden können,
um sicherzustellen, dass zumindest 20% der Austrittskapazität des Switches
B, Port 1, für
Verkehr reserviert wird, der für
den Server 175 bestimmt ist, jedoch ohne unnötige Verweigerung
einer Prioritäts-Warteschlangen-Zuordnung
für Verkehr,
der für
die MAC-Adressen A und B bestimmt ist. Nach der Initalisierung misst
das Überwachungs-Applet 178 wiederholt
die Leitungs-Nutzung des Ports 1 durch die Geräte-Hardware.
Bei einer Ausführungsform
führt die
ARU in der I/O-Einheit, die den Port 1 verwaltet, eine
Zählung
der Anzahl von Paketen, die für
bestimmte Austritts-Ports bestimmt sind, von Paketen, die für bestimmte
MAC-Adressen bestimmt sind, von Paketen, die für bestimmte VLANS bestimmt
sind, von Paketen, die einen Teil eines bestimmten IP-Flusses bilden, von
Paketen, die ein bestimmtes IP-Protokoll haben, usw, aus. Die ARU
verfolgt weiterhin die Anzahl von Fehlern, die diesen unterschiedlichen
Verkehrsklassen zugeordnet sind, die Anzahl von Paketen von jeder
Klasse von Verkehr, die verworfen wurden, und andere Statistiken.
Durch Feststellen der Änderung
dieser unterschiedlichen Statistiken pro Zeiteinheit kann ein Nutzungsfaktor erzeugt
werden, der die prozentuale Nutzung der Kapazität eines Austritts-Ports, einer I/O-Einheit
oder des gesamten Switches darstellt. Fehlerraten und Paket-Verwerfungs-Raten
können
ebenfalls erzeugt werden.
-
Bei
einer Ausführungsform
misst das Überwachungs-Applet 178 die
Leitungsnutzung durch Aufrufen von Methoden in der JNI zum Lesen
der Port 1-Leitungs-Nutzung,
die sich aus Verkehr bestimmt, der für die MAC-Adresse A und für die MAC-Adresse
B bestimmt ist, alle 10 Millisekunden.
-
Das
Richtlinien-Durchsetzungs-Applet 179 schließt Variablen
zur Aufnahme der prozentualen Leitungsnutzung des Verkehrs, der
für die MAC-Adresse
A bestimmt ist (A%), der prozentualen Leitungsnutzung des Verkehrs,
der für
die MAC-Adresse B bestimmt ist (B%), die Warteschlangen-Zuordnung
(das heißt
Priorität
oder bestes Bemühen)
des Verkehrs, der für
die Server-MAC-Adresse (QA_S) bestimmt ist, die Warteschlangen-Zuordnung
von Verkehr, der für
die MAC-Adresse A (QA_A) bestimmt ist, und die Warteschlangen-Zuordnung
von Verkehr, der für
die MAC-Adresse B bestimmt ist, ein. Weiterhin wird eine Konstante,
DELTA, als 5% definiert, und die Warteschlangen-Zuordnungen für die MAC-Adresse
A, die MAC-Adresse
B und den Server-MAC-Adressenverkehr werden anfänglich auf die Prioritäts-Warteschlange
gesetzt.
-
Das
Richtlinien-Durchsetzungs-Applet 179 schließt weiterhin
eine Endlosschleife ein, in der die prozentualen Leitungsnutzungen
A% und B% von dem Überwachungs-Applet 178 gewonnen
und dazu verwendet werden, festzustellen, ob die Warteschlangen-Zuordnungen
QA_A und QA_B geändert werden
sollten. Wenn die MAC-Adresse des A-Verkehrs und die MAC-Adresse
des B-Verkehrs beide der Prioritäts-Warteschlange
zugeordnet sind (die Ausgangskonfiguration) und die Summe der prozentualen
Leitungsnutzungen A% und B% 80% übersteigt,
so verbleibt weniger als 20% an Leitungsnutzung für den für den Server
bestimmten Verkehr. In diesem Fall wird der an die MAC-Adresse A
gerichtete Verkehr von der Prioritäts-Warteschlange zu der Warteschlange
besten Bemühens
neu zugeordnet (Codeanweisung 181). Wenn der Verkehr für die MAC-Adresse
A der Warteschlange besten Bemühens
zugeordnet wird und der Verkehr für die MAC-Adresse B der Prioritäts-Warteschlange
zugeordnet wird, so wird der Verkehr für die MAC-Adresse A der Prioritäts-Warteschlange
neu zugeordnet, wenn die Summe der prozentualen Leitungsnutzungen
A% und B% unter 80% abzüglich
DELTA absinkt (Codeanweisung 183). Der DELTA-Parameter
ergibt einen Totbereich, um eine schnelle Änderung der Prioritäts-Warteschlangen-Zuordnung
zu vermeiden.
-
Wenn
der Verkehr für
die MAC-Adresse A der Warteschlange besten Bemühens zugeordnet ist und der
Verkehr für
die MAC-Adresse B der Prioritäts-Warteschlange zugeordnet
ist und die prozentuale Leitungsnutzung B% 80% übersteigt, so verbleibt weniger
als 20% der Leitungsnutzung für
den Serverbestimmten Verkehr. Entsprechend wird der Verkehr für die MAC-Adresse
B von der Prioritäts-Warteschlange
neu zu der Warteschlange besten Bemühens zugeordnet (Codeanweisung 185).
Wenn der Verkehr für
die MAC-Adresse B der Warteschlange besten Bemühens zugeordnet ist und die
prozentuale Leitungsnutzung B% unter 80% abzüglich DELTA absinkt, so wird
der Verkehr für die
MAC-Adresse neu der Prioritäts-Warteschlange
zugeteilt (Codeanweisung 187). Obwohl dies in dem Beispiel
der Pseudocode-Auflistung nach 6 nicht
speziell vorgesehen ist, kann das Richtlinien-Durchsetzungs-Applet 179 den
für die
MAC-A- und MAC-B-Adressen
bestimmten Verkehr stärker
symmetrisch dadurch behandeln, dass zusätzliche Anweisungen eingefügt werden,
die bedingt den für
die MAC-Adresse A bestimmten Verkehr der Prioritäts-Warteschlange zuordnen,
nicht jedoch den für
die MAC-Adresse B bestimmten Verkehr. In dem Beispiel der Pseudocode-Auflistung
nach 6 ergibt das Richtlinien-Durchsetzungs-Applet 179 eine
Verzögerung
von 5 Millisekunden an dem Ende jedes Durchlaufs durch die Endlosschleife,
bevor diese wiederholt wird.
-
Das
Konfigurations-Applet 180 schließt Variablen QA_A und QA_B
ein, um die Warteschlangen-Zuordnungen des Verkehrs aufzunehmen,
der für
die MAC-Adressen
A bzw. B bestimmt ist. Variablen LAST_QA_A und LAST_QA_B können ebenfalls vorgesehen
sein, um die Historie (das heißt
die letzten vergangenen Werte) der QA_A- und QA_B-Werte aufzuzeichnen.
Die LAST_QA_A- und LAST_QA_B-Variablen werden initalisiert, um anzuzeigen,
dass für
die MAC-Adressen
A und B bestimmter Verkehr der Prioritäts-Warteschlangen zugeordnet
ist.
-
Ähnlich wie
die Überwachungs-
und Richtlinien-Durchsetzungs-Applets 178, 179 schließt das Konfigurations-Applet 180 eine
Endlosschleife ein, in der eine Codefolge, gefolgt von einer Verzögerung, ausgeführt wird.
In dem Beispiel der Auflistung nach 6 besteht
die erste Operation, die von dem Konfigurations-Applet 180 in der Endlosschleife
ausgeführt
wird, darin, die Warteschlangen-Zuordnungen QA_A
und QA_B von dem Richtlinien-Durchsetzungs-Applet 179 zu
gewinnen. Wenn die von QA_A angezeigte Warteschlangen-Zuordnung
von der Warteschlangen-Zuordnung verschieden ist, die durch LAST_QA_A
angezeigt wird, so wird eine JNI-Methode aufgerufen, um den Gerätecode aufzufordern,
die Warteschlangen-Zuordnung des für die MAC-Adresse A bestimmten
Verkehrs entsprechend dem neuen QA_A-Wert zuzuordnen. Der neue QA_A-Wert
wird dann in die Variable LAST_QA_A kopiert, so dass nachfolgende
Warteschlangen-Zuordnungs-Änderungen
festgestellt werden. Wenn die von QA_B angezeigte Warteschlangen-Zuordnung von
der durch LAST_QA_B angezeigten Warteschlangen-Zuordnung verschieden
ist, so wird eine JNI-Methode aufgerufen, um den Geräte-Code
aufzufordern, die Warteschlangen-Zuordnung des für die MAC-Adresse B bestimmten
Verkehrs entsprechend dem neuen QA_B-Wert umzukonfigurieren. Der
neue QA_B-Wert wird dann in die LAST_QA_B-Variable kopiert, so dass
nachfolgende Warteschlangen-Zuordnungs-Änderungen festgestellt werden.
Durch diese Operation und die Operation der Überwachungs- und Richtlinien-Durchsetzungs-Applets 178, 179 wird
für die
MAC-Adressen A und B bestimmter Verkehr dynamisch zu der Prioritäts-Warteschlange
entsprechend der Echtzeit-Auswertungen der Verkehrsbedingungen in
dem Switch zugeordnet.
-
Obwohl
eine Realisierung mit drei Applets in 6 gezeigt
ist, können
in einer alternativen Ausführungsform
mehr oder weniger Applets verwendet werden. Beispielsweise können die
Funktionen der Überwachungs-,
Richtliniendurchsetzungs- und Konfigurations-Applets 178, 179, 180 in
einem einzigen Applet realisiert werden. Alternativ können mehrfache
Applets vorgesehen werden, um eine Richtliniendurchsetzung oder
andere Funktionen unter Verwendung unterschiedlicher Warteschlangen-Zuordnungs-Kriterien
durchzuführen.
Beispielsweise kann ein Richtlinien-Durchsetzungs-Applet Prioritäts-Warteschlangen-Zuordnungen auf der
Grundlage der Ziel-MAC-Adressen machen, während ein weiteres Richtlinien-Durchsetzungs-Applet
Prioritäts-Warteschlangen-Zuordnungen
auf der Grundlage von Fehlerraten oder der Leitungsnutzung von Protokollen höherer Ebene
durchführt.
Mehrfache Überwachungs-Applets
oder Konfigurations-Applets
können in ähnlicher
Weise vorgesehen werden.
-
Obwohl
die Warteschlangen-Zuordnungs-Richtlinie auf der Grundlage der Ziel-MAC-Adresse in 6 gezeigt ist, können Millionen von unterschiedlichen
Warteschlangen-Zuordnungs-Kriterien in anderen Ausführungsformen
verwendet werden. Beispielsweise können anstelle der Überwachung
und Aktualisierung der Warteschlangen-Zuordnung auf der Grundlage
von Verkehr zu Ziel-MAC-Adressen Warteschlangen auf der Grundlage
anderer Verkehrsmuster aktualisiert werden, unter Einschluss von
Verkehr an bestimmte Ziel-Ports, Verkehr von bestimmten Quellen-Ports,
Verkehr von bestimmten Quellen-MAC-Adressen, Verkehr, der einen
Teil eines bestimmten IP-Datenflusses bildet, Verkehr, der unter
Verwendung eines bestimmten Protokolls übertragen wird (beispielsweise
HTTP, FTP oder andere Protokolle) usw. Weiterhin können Warteschlangen-Zuordnungen
auf der Grundlage von Umgebungsbedingungen aktualisiert werden, wie
z.B. Tageszeit, Änderungen
der Netzwerk-Konfiguration (beispielsweise aufgrund eines Ausfalls oder
einer Überlastung
an anderen Netzwerk-Knoten), Fehlerraten, Paket-Verwerfungs-Raten, und so weiter. Überwachungs-,
Richtliniendurchsetzungs- und Konfigurations-Applets, die viele
oder alle der vorstehend beschriebenen Kriterien kombinieren, können realisiert
werden, um eine hochentwickelte Verkehrsabwicklungs-Fähigkeit
in einem Paket-Weiterleitungs-Gerät zu schaffen.
-
Obwohl
eine dynamische Zuordnung von Verkehrsklassen zu einer Prioritäts-Austritts-Warteschlange
besonders hervorgehoben wurde, können die
hier beschriebenen Verfahren und Vorrichtungen alternativ zur Zuordnung
von Verkehrsklassen zu einem hierarchischen Satz von Warteschlangen
an irgendeiner Stelle in einer Paket-Weiterleitungseinrichtung verwendet
werden, unter Einschluss von, jedoch ohne Begrenzung auf, Eintritts-Warteschlangen und
Warteschlangen, die mit der Zustellung und dem Empfang von Paketen
von der Vermittlungsstruktur verbunden sind. Weiterhin können, obwohl
die Warteschlangen-Zuordnung von Verkehrsklassen in Ausdrücken eines
Paares von Warteschlangen (Priorität und bestes Bemühen) beschrieben
wurde, zusätzliche
Warteschlangen in einer Prioritäts-Hierarchie verwendet
werden, ohne von dem Grundgedanken und dem Schutzumfang der vorliegenden
Erfindung abzuweichen.
-
In
der vorstehenden Beschreibung wurde die Erfindung unter Bezugnahme
auf bestimmte Ausführungsbeispiele
beschrieben. Es ist jedoch zu erkennen, dass verschiedene Modifikationen
und Abänderungen
an den speziellen Ausführungsbeispielen durchgeführt werden
können,
ohne von dem breiteren Grundgedanken und Schutzumfang der Erfindung
abzuweichen, der in den beigefügten
Ansprüchen
angegeben ist. Entsprechend sollen die Beschreibung und die Bezeichnungen
in einer erläuternden
und nicht beschränkenden
Weise aufgefasst werden.