DE60024228T2 - Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung - Google Patents

Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung Download PDF

Info

Publication number
DE60024228T2
DE60024228T2 DE60024228T DE60024228T DE60024228T2 DE 60024228 T2 DE60024228 T2 DE 60024228T2 DE 60024228 T DE60024228 T DE 60024228T DE 60024228 T DE60024228 T DE 60024228T DE 60024228 T2 DE60024228 T2 DE 60024228T2
Authority
DE
Germany
Prior art keywords
packet
queue
packets
forwarding device
traffic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60024228T
Other languages
English (en)
Other versions
DE60024228D1 (de
Inventor
I. Tal LAVIAN
Stephen Lau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nortel Networks Ltd filed Critical Nortel Networks Ltd
Application granted granted Critical
Publication of DE60024228D1 publication Critical patent/DE60024228D1/de
Publication of DE60024228T2 publication Critical patent/DE60024228T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2458Modification of priorities while in transit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Description

  • 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 21A24A, 21B24B 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 21a24A 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.

Claims (21)

  1. Verfahren, das zur Verwendung in einer Paket-Weiterleitungseinrichtung (17) geeignet ist, gekennzeichnet durch die folgenden Schritte: Überwachen des Bandbreitenverbrauchs durch einen oder mehrere Typen von in der Paket-Weiterleitungseinrichtung (17) empfangenem Paketverkehr (25) unter Einschluss der Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund von Verkehr, der einer bestimmten Ziel-Netzwerkadresse zugeordnet ist; Feststellen, ob der Bandbreitenverbrauch durch eine oder mehrere Typen des Paketverkehrs (25) einen Schwellenwert übersteigt; und automatisches Ändern der Zuordnung von zumindest einem Typ des Paketverkehrs des einen Typs oder der mehreren Typen von Paketverkehr von einer Warteschlange, die eine erste Priorität hat, zu einer Warteschlange, die eine zweite Priorität hat, wenn der Bandbreitenverbrauch den Schwellenwert übersteigt.
  2. Verfahren nach Anspruch 1, das weiterhin den Empfang von Programmcode in der Paket-Weiterleitungseinrichtung (17) nach der Installation der Paket-Weiterleitungseinrichtung (17) in einem Paket-Kommunikations-Netzwerk umfasst, und bei dem das Überwachen, Feststellen und automatische Ändern durch die Ausführung des Programmcodes realisiert wird.
  3. Verfahren nach Anspruch 2, bei dem das Empfangen des Programmcodes das Empfangen einer Folge von virtuellen Maschinenbefehlen umfasst, und bei dem die Ausführung des Programmcodes die Ausführung der Folge von virtuellen Maschinenbefehlen unter Verwendung einer virtuellen Maschine umfasst, die in der Paket-Weiterleitungseinrichtung (17) enthalten ist.
  4. Verfahren nach Anspruch 3, bei dem der Empfang der Folge von virtuellen Maschinenbefehlen den Empfang einer Folge von Java-Bytecodes umfasst, und bei dem die Ausführung der Folge von virtuellen Maschinenbefehlen unter Verwendung einer Java-Maschine die Ausführung der Folge von Java-Bytecodes in einer virtuellen Java-Maschine umfasst, die in der der Paket-Weiterleitungseinrichtung enthalten ist.
  5. Verfahren nach Anspruch 1, bei dem die Überwachung des Bandbreitenverbrauchs durch einen oder mehrere Typen von Paketverkehr (25), der in der Paket-Weiterleitungseinrichtung (17) empfangen wird, die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund des Verkehrs umfasst, der einem physikalischen Port auf der Weiterleitungseinrichtung (17) zugeordnet ist.
  6. Verfahren nach Anspruch 1, bei dem die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund des der bestimmten Netzwerkadresse zugeordneten Verkehrs (25) die Feststellung einer Messung des Bandbreitenverbrauchs aufgrund des Verkehrs (25) umfasst, der einer bestimmten Medienzugangssteuer- (MAC-) Adresse zugeordnet ist.
  7. Verfahren nach Anspruch 1, bei dem die Überwachung des Bandbreitenverbrauchs durch einen oder mehrere Typen von Paketverkehr, der in der Paket-Weiterleitungseinrichtung (17) empfangen wird, die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung aufgrund des Verkehrs umfasst, der einem bestimmten Kommunikationssprotokoll zugeordnet ist.
  8. Verfahren nach Anspruch 7, bei dem die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund von Verkehr (25), der dem bestimmten Kommunikationsprotokoll zugeordnet ist, die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund von Verkehr (25) umfasst, der zumindest einem der folgenden Protokolle zugeordnet ist: Dateiübertragungsprotokoll, FTP, Hypertext-Übertragungsprotokoll, HTTP, Übertragungssteuerprotokoll/Internetprotokoll, TCP/IP.
  9. Paket-Weiterleitungseinrichtung (17) mit: einer Mehrzahl von Eingangs/Ausgangs-, I/O-, Ports zum Senden und Empfangen von Paketen von Informationen; ersten und zweiten Warteschlangen zum Puffern der Pakete vor der Aussendung über einen oder mehrere der I/O-Ports, wobei Pakete (25), die in der ersten Warteschlange gepuffert werden, eine höhere Übertragungspriorität haben, als Pakete (25), die in der zweiten Warteschlange gepuffert werden, und gekennzeichnet durch: eine Warteschlangen-Zuordnungslogik zum Zuordnen der zu puffernden Pakete (25) in entweder der ersten Warteschlange oder der zweiten Warteschlange entsprechend einem Pakettyp, der jedem Paket (25) zugeordnet ist, wobei jedes der Pakete (25) zumindest einem einer Vielzahl von Pakettypen zugeordnet ist; und einen oder mehrere Agenten (157) zur Überwachung des Bandbreitenverbrauchs durch Pakete (25), die einem ersten Pakettyp der Vielzahl von Pakettypen zugeordnet sind, wobei die Überwachung des Bandbreitenverbrauchs die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund von Verkehr umfasst, der einer bestimmten Ziel-Netzwerkadresse zugeordnet ist, und zur automatischen Änderung der Zuordnung von Paketen (25), die dem ersten Pakettyp zugeordnet sind, von der ersten Warteschlange zu der zweiten Warteschlange, wenn der Bandbreitenverbrauch von Paketen (25), die dem ersten Pakettyp zugeordnet sind, einen Schwellenwert übersteigt.
  10. Vorrichtung (17) nach Anspruch 9, die weiterhin folgendes umfasst: eine Verarbeitungseinheit (10), die mit der Vielzahl von I/O-Ports verbunden ist, wobei die Verarbeitungseinheit einen Speicher (32) und einen Prozessor (31) einschließt; und eine Datenkommunikations-Schnittstelle zum Empfang von Programmcode in dem Speicher (32) der Verarbeitungseinheit (10) nach der Installation der Paket-Weiterleitungseinrichtung (17) in einem Paket-Kommunika-tions-Netzwerk, wobei der eine oder mehrere Agenten durch Ausführen des Programmcodes in dem Prozessor (31) der Verarbeitungseinheit (10) realisiert wird (werden).
  11. Vorrichtung (17) nach Anspruch 10, bei der die Paket-Weiterleitungseinrichtung (17) weiterhin Programmcode umfasst, der bei seiner Ausführung durch die Verarbeitungseinheit (10) eine virtuelle Maschine realisiert, und bei dem der über die Datenkommunikations-Schnittstelle empfangene Programmcode eine Folge von Befehlen umfasst, die von der virtuellen Maschine ausgeführt werden, um einen oder mehrere Agenten zu realisieren.
  12. Vorrichtung (17) nach Anspruch 11, bei dem der über die Datenkommunikations-Schnittstelle empfangene Programmcode eine Folge von Java-Bytecodes umfasst, und bei der die virtuelle Maschine eine virtuelle Java-Maschine ist.
  13. Vorrichtung (17) nach Anspruch 9, bei der der erste Pakettyp Pakete (25) umfasst, die einen bestimmten einen der I/O-Ports zugeordnet sind.
  14. Vorrichtung (17) nach Anspruch 9, bei dem der erste Pakettyp Pakete (25) umfasst, die einer bestimmten Netzwerkadresse zugeordnet sind.
  15. Vorrichtung (17) nach Anspruch 14, bei dem die bestimmte Netzwerkadresse eine bestimmte Medienzugriffssteuer-, MAC, Adresse ist.
  16. Vorrichtung (17) nach Anspruch 9, bei der der erste Pakettyp Pakete (25) umfasst, die einen bestimmten Kommunikationsprotokoll zugeordnet sind.
  17. Vorrichtung (17) nach Anspruch 16, bei dem das bestimmte Kommunikationsprotokoll ein Hypertext-Übertragungsprotokoll, HTTP, ist.
  18. Vorrichtung (17) nach Anspruch 16, bei dem das bestimmte Kommunikationsprotokoll ein Dateiübertragungsprotokoll, FTP, ist.
  19. Kommunikationsnetzwerk, das eine Paket-Weiterleitungseinrichtung (17) umfasst, wobei die Paket-Weiterleitungseinrichtung (17) folgendes einschließt: eine Vielzahl von Eingangs-/Ausgangs-, I/O-, Ports zum Senden und Empfangen von Paketen (25) an Informationen von einer oder mehreren anderen Einrichtungen in dem Kommunikationsnetzwerk; erste und zweite Warteschlangen zum Puffern der Pakete (25) vor der Aussendung über einen oder mehrere I/O-Ports, wobei in der ersten Warteschlange gepufferte Pakete (25) eine höhere Übertragungspriorität als Pakete (25) haben, die in der zweiten Warteschlange gepuffert werden, gekennzeichnet durch: eine Warteschlangen-Zuordnungslogik zur Zuordnung der Pakete (25), die in entweder der ersten Warteschlange oder der zweiten Warteschlange zu puffern sind, entsprechend einem Pakettyp, der jedem Paket (25) zugeordnet ist, wobei jedes der Pakete (25) zumindest einem einer Vielzahl von Pakettypen zugeordnet ist; und einen oder mehrere Agenten (157) zur Überwachung des Bandbreitenverbrauchs durch Pakete (25), die einem ersten Pakettyp der Vielzahl von Pakettypen zugeordnet sind, wobei die Überwachung des Bandbreitenverbrauchs die Feststellung einer Messung des Bandbreitenverbrauchs in der Paket-Weiterleitungseinrichtung (17) aufgrund von Verkehr umfasst, der einer bestimmten Ziel-Netzwerkadresse zugeordnet ist, und zur automatischen Änderung der Zuordnung von Paketen (25), die dem ersten Pakettyp zugeordnet sind, von der ersten Warteschlange zu der zweiten Warteschlange, wenn der Bandbreitenverbrauch von Paketen (25), die dem ersten Pakettyp zugeordnet sind, einen Schwellenwert übersteigt.
  20. Kommunikationsnetzwerk nach Anspruch 19, bei dem die Paket-Weiterleitungseinrichtung (17) weiterhin folgendes einschließt: eine Verarbeitungseinheit (10), die mit der Vielzahl von I/O-Ports gekoppelt ist, wobei die Verarbeitungseinheit (10) einen Speicher (32) und einen Prozessor (31) einschließt; und eine Datenkommunikations-Schnittstelle zum Empfang von Programmcode in dem Speicher (32) der Verarbeitungseinheit (10) nach der Installation der Paket-Weiterleitungseinrichtung (17) in dem Kommunikationsnetzwerk, wobei der eine oder mehrere Agenten durch eine Ausführung des Programmcodes in dem Prozessor (31) der Verarbeitungseinheit (10) realisiert ist (sind).
  21. Kommunikationsnetzwerk nach Anspruch 20, bei dem die Paket-Weiterleitungseinrichtung (17) weiterhin Programmcode einschließt, der bei seiner Ausführung durch die Verarbeitungseinheit (10) eine virtuelle Maschine realisiert, und wobei der über die Datenkommunikations-Schnittstelle empfangene Programmcode eine Folge von Befehlen einschließt, die von der virtuellen Maschine ausgeführt werden, um einen oder mehrere Agenten zu realisieren.
DE60024228T 1999-01-08 2000-01-07 Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung Expired - Lifetime DE60024228T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US227389 1988-08-02
US22738999A 1999-01-08 1999-01-08
PCT/US2000/000428 WO2000041368A2 (en) 1999-01-08 2000-01-07 Dynamic assignment of traffic classes to a priority queue in a packet forwarding device

Publications (2)

Publication Number Publication Date
DE60024228D1 DE60024228D1 (de) 2005-12-29
DE60024228T2 true DE60024228T2 (de) 2006-08-10

Family

ID=22852911

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60024228T Expired - Lifetime DE60024228T2 (de) 1999-01-08 2000-01-07 Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung

Country Status (6)

Country Link
US (1) US7710871B2 (de)
EP (1) EP1142213B1 (de)
AU (1) AU2224900A (de)
CA (1) CA2358525C (de)
DE (1) DE60024228T2 (de)
WO (1) WO2000041368A2 (de)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570876B1 (en) * 1998-04-01 2003-05-27 Hitachi, Ltd. Packet switch and switching method for switching variable length packets
JP3590949B2 (ja) 2000-08-17 2004-11-17 松下電器産業株式会社 データ伝送装置およびデータ伝送方法
US20020080808A1 (en) * 2000-12-22 2002-06-27 Leung Mun Keung Dynamically modifying network resources for transferring packets in a vlan environment
US7099332B2 (en) * 2000-12-29 2006-08-29 Telefonaktiebolaget Lm Ericsson (Publ) Emergency calling with a VoIP device in a VLAN environment
US7099330B2 (en) * 2001-01-10 2006-08-29 Lucent Technologies Inc. Method and apparatus for integrating guaranteed-bandwidth and best-effort traffic in a packet network
JP3598985B2 (ja) * 2001-03-21 2004-12-08 日本電気株式会社 キュー割り当てシステムおよびパケット交換機のキュー割り当て方法
TWI227080B (en) * 2001-05-31 2005-01-21 Via Tech Inc Network switch providing congestion control and method thereof
US6976096B1 (en) * 2001-06-02 2005-12-13 Redback Networks Inc. Method and apparatus for controlling the admission of data into a network element
GB2377117B (en) * 2001-06-27 2004-08-18 Cambridge Broadband Ltd Method and apparatus for providing communications bandwidth
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
US20030236869A1 (en) * 2002-06-04 2003-12-25 Emmot Darel N. Data management system and method
US7457234B1 (en) * 2003-05-14 2008-11-25 Adtran, Inc. System and method for protecting communication between a central office and a remote premises
JP4123088B2 (ja) * 2003-08-06 2008-07-23 株式会社日立製作所 ストレージネットワーク管理装置及び方法
US7907615B2 (en) * 2004-03-12 2011-03-15 At&T Intellectual Property Ii, L.P. Method and apparatus to manage network addresses for private voice communications
US20050220096A1 (en) 2004-04-06 2005-10-06 Robert Friskney Traffic engineering in frame-based carrier networks
US8923292B2 (en) * 2004-04-06 2014-12-30 Rockstar Consortium Us Lp Differential forwarding in address-based carrier networks
JP2005333434A (ja) * 2004-05-20 2005-12-02 Matsushita Electric Ind Co Ltd 無線モジュール
US7620046B2 (en) * 2004-09-30 2009-11-17 Intel Corporation Dynamically assigning packet flows
US8023408B2 (en) * 2004-11-19 2011-09-20 International Business Machines Corporation Dynamically changing message priority or message sequence number
US8140985B2 (en) * 2005-01-20 2012-03-20 Microsoft Corporation Transactions for an application domain manager
US7411909B2 (en) * 2005-02-17 2008-08-12 Cisco Technology, Inc. System and method for regulating data traffic in a network
JP2008546328A (ja) * 2005-06-06 2008-12-18 モビディア インコーポレイテッド スケジュールされたパケット送給システム及び方法
KR100745679B1 (ko) * 2005-12-08 2007-08-02 한국전자통신연구원 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치
GB0606367D0 (en) * 2006-03-30 2006-05-10 Vodafone Plc Telecommunications networks
US20070258445A1 (en) * 2006-05-02 2007-11-08 Harris Corporation Systems and methods for protocol filtering for quality of service
US7756134B2 (en) 2006-05-02 2010-07-13 Harris Corporation Systems and methods for close queuing to support quality of service
US7894509B2 (en) 2006-05-18 2011-02-22 Harris Corporation Method and system for functional redundancy based quality of service
US8665892B2 (en) * 2006-05-30 2014-03-04 Broadcom Corporation Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
ES2370779T3 (es) 2006-06-15 2011-12-22 Nokia Siemens Networks S.P.A. Método para la clasificación de paquetes basado en el tipo de protocolo y en prioridades.
US7856012B2 (en) * 2006-06-16 2010-12-21 Harris Corporation System and methods for generic data transparent rules to support quality of service
US8064464B2 (en) 2006-06-16 2011-11-22 Harris Corporation Method and system for inbound content-based QoS
US8516153B2 (en) 2006-06-16 2013-08-20 Harris Corporation Method and system for network-independent QoS
US7990860B2 (en) * 2006-06-16 2011-08-02 Harris Corporation Method and system for rule-based sequencing for QoS
US7916626B2 (en) 2006-06-19 2011-03-29 Harris Corporation Method and system for fault-tolerant quality of service
US8730981B2 (en) 2006-06-20 2014-05-20 Harris Corporation Method and system for compression based quality of service
US7769028B2 (en) 2006-06-21 2010-08-03 Harris Corporation Systems and methods for adaptive throughput management for event-driven message-based data
US8300653B2 (en) * 2006-07-31 2012-10-30 Harris Corporation Systems and methods for assured communications with quality of service
US7822594B2 (en) * 2006-08-07 2010-10-26 Voltaire Ltd. Service-oriented infrastructure management
US7957335B2 (en) 2007-08-23 2011-06-07 Cisco Technology, Inc. Dynamic power usage management based on historical traffic pattern data for network devices
US8428186B1 (en) 2007-12-27 2013-04-23 Exalt Communications Incorporated Decision directed DC offset removal
US8260956B2 (en) * 2008-03-14 2012-09-04 Microsoft Corporation Data transmission queuing using fault prediction
US9262357B2 (en) 2008-09-29 2016-02-16 International Business Machines Corporation Associating process priority with I/O queuing
US9141446B2 (en) * 2008-10-24 2015-09-22 Sap Se Maintenance of message serialization in multi-queue messaging environments
US8201168B2 (en) * 2008-12-25 2012-06-12 Voltaire Ltd. Virtual input-output connections for machine virtualization
US8638799B2 (en) * 2009-07-10 2014-01-28 Hewlett-Packard Development Company, L.P. Establishing network quality of service for a virtual machine
JP5347836B2 (ja) * 2009-08-25 2013-11-20 富士通株式会社 通信装置および通信方法
US8611356B2 (en) 2009-11-13 2013-12-17 Exalt Communications Incorporated Apparatus for ethernet traffic aggregation of radio links
US8612649B2 (en) 2010-12-17 2013-12-17 At&T Intellectual Property I, L.P. Validation of priority queue processing
US8751777B2 (en) 2011-01-28 2014-06-10 Honeywell International Inc. Methods and reconfigurable systems to optimize the performance of a condition based health maintenance system
US10678602B2 (en) * 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US8615773B2 (en) 2011-03-31 2013-12-24 Honeywell International Inc. Systems and methods for coordinating computing functions to accomplish a task using a configuration file and standardized executable application modules
US8473643B2 (en) * 2011-05-05 2013-06-25 Hitachi, Ltd. Method and apparatus of tier storage management awareness networking
CN102893560B (zh) * 2011-05-16 2015-11-25 华为技术有限公司 一种数据流传送方法及网络设备
JP2012244282A (ja) * 2011-05-17 2012-12-10 Kddi Corp 優先クラス制御方式
US8990770B2 (en) 2011-05-25 2015-03-24 Honeywell International Inc. Systems and methods to configure condition based health maintenance systems
US8726084B2 (en) 2011-10-14 2014-05-13 Honeywell International Inc. Methods and systems for distributed diagnostic reasoning
US8832649B2 (en) 2012-05-22 2014-09-09 Honeywell International Inc. Systems and methods for augmenting the functionality of a monitoring node without recompiling
US9438527B2 (en) * 2012-05-24 2016-09-06 Marvell World Trade Ltd. Flexible queues in a network switch
US9083563B2 (en) * 2012-06-29 2015-07-14 Avaya, Inc. Method for reducing processing latency in a multi-thread packet processor with at least one re-order queue
US8832716B2 (en) 2012-08-10 2014-09-09 Honeywell International Inc. Systems and methods for limiting user customization of task workflow in a condition based health maintenance system
US9455933B2 (en) * 2014-01-25 2016-09-27 Cisco Technology, Inc. Flexible deterministic binary scheduler
US9274710B1 (en) * 2014-03-31 2016-03-01 Amazon Technologies, Inc. Offset-based congestion control in storage systems
WO2016014044A1 (en) * 2014-07-22 2016-01-28 Hewlett-Packard Development Company, Lp Node-based compute device with protocol-based priority
JP6420354B2 (ja) 2015-02-18 2018-11-07 インテル・コーポレーション 優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション
KR102642689B1 (ko) * 2016-11-16 2024-03-05 삼성전자주식회사 전자 장치 및 그 트래픽 제어 방법
JP6864746B2 (ja) 2016-12-15 2021-04-28 アビニシオ テクノロジー エルエルシー 異種イベントキュー
US10757076B2 (en) * 2017-07-20 2020-08-25 Nicira, Inc. Enhanced network processing of virtual node data packets
EP4248590A1 (de) * 2020-11-20 2023-09-27 Telefonaktiebolaget LM Ericsson (publ) Verfahren und system für effiziente ein-/ausgabeübertragung in netzwerkvorrichtungen
US11601369B1 (en) * 2021-09-01 2023-03-07 Arbor Networks, Inc. Mitigation of network attacks by prioritizing network traffic

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58116190A (ja) 1981-12-29 1983-07-11 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン 文書取扱装置
JPH0824779B2 (ja) * 1987-12-10 1996-03-13 蛇の目ミシン工業株式会社 ミシンのリモート速度制御コントローラ
US5103459B1 (en) * 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
US5504936A (en) * 1991-04-02 1996-04-02 Airtouch Communications Of California Microcells for digital cellular telephone systems
JP3272496B2 (ja) * 1993-07-27 2002-04-08 松下電器産業株式会社 スペクトラム拡散通信装置
JP2801967B2 (ja) * 1994-02-09 1998-09-21 エヌ・ティ・ティ移動通信網株式会社 Cdma移動通信方法及びシステム
US5802110A (en) * 1994-02-16 1998-09-01 Matsushita Electric Industrial Co., Ltd. Wireless mobile system
US5504744A (en) * 1994-03-09 1996-04-02 British Telecommunications Public Limited Company Broadband switching network
JP2980156B2 (ja) * 1994-05-12 1999-11-22 エヌ・ティ・ティ移動通信網株式会社 送信電力制御方法および該制御方法を用いたスペクトル拡散通信装置
US5442625A (en) * 1994-05-13 1995-08-15 At&T Ipm Corp Code division multiple access system providing variable data rate access to a user
US5596601A (en) * 1994-08-30 1997-01-21 Lucent Technologies Inc. Method and apparatus for spread spectrum code pulse position modulation
US5596333A (en) * 1994-08-31 1997-01-21 Motorola, Inc. Method and apparatus for conveying a communication signal between a communication unit and a base site
US5563874A (en) * 1995-01-27 1996-10-08 Bell Communications Research, Inc. Error monitoring algorithm for broadband signaling
US5790554A (en) * 1995-10-04 1998-08-04 Bay Networks, Inc. Method and apparatus for processing data packets in a network
AU2588797A (en) 1996-03-29 1997-10-22 Motorola, Inc. Apparatus and method for spectrum management in a multipoint communication system
JP3525656B2 (ja) * 1996-12-06 2004-05-10 株式会社日立製作所 パケット交換機、および輻輳通知方式
US5862338A (en) 1996-12-30 1999-01-19 Compaq Computer Corporation Polling system that determines the status of network ports and that stores values indicative thereof
US6094434A (en) 1996-12-30 2000-07-25 Compaq Computer Corporation Network switch with separate cut-through buffer
US6304551B1 (en) * 1997-03-21 2001-10-16 Nec Usa, Inc. Real-time estimation and dynamic renegotiation of UPC values for arbitrary traffic sources in ATM networks
US5889772A (en) * 1997-04-17 1999-03-30 Advanced Micro Devices, Inc. System and method for monitoring performance of wireless LAN and dynamically adjusting its operating parameters
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6104700A (en) 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6424624B1 (en) 1997-10-16 2002-07-23 Cisco Technology, Inc. Method and system for implementing congestion detection and flow control in high speed digital network
JP3436871B2 (ja) * 1997-10-23 2003-08-18 株式会社東芝 通信資源管理方法及びノード装置
US6188698B1 (en) * 1997-12-31 2001-02-13 Cisco Technology, Inc. Multiple-criteria queueing and transmission scheduling system for multimedia networks
US6345038B1 (en) 1998-05-12 2002-02-05 International Business Machines Corporation Improving access to congested networks
US6373841B1 (en) * 1998-06-22 2002-04-16 Agilent Technologies, Inc. Integrated LAN controller and web server chip
US6167445A (en) 1998-10-26 2000-12-26 Cisco Technology, Inc. Method and apparatus for defining and implementing high-level quality of service policies in computer networks
US6438106B1 (en) 1998-12-22 2002-08-20 Nortel Networks Limited Inter-class schedulers utilizing statistical priority guaranteed queuing and generic cell-rate algorithm priority guaranteed queuing

Also Published As

Publication number Publication date
EP1142213B1 (de) 2005-11-23
EP1142213A2 (de) 2001-10-10
CA2358525A1 (en) 2000-07-13
US7710871B2 (en) 2010-05-04
WO2000041368A2 (en) 2000-07-13
DE60024228D1 (de) 2005-12-29
WO2000041368A3 (en) 2000-12-28
AU2224900A (en) 2000-07-24
CA2358525C (en) 2008-04-01
US20040076161A1 (en) 2004-04-22
WO2000041368A9 (en) 2001-10-04

Similar Documents

Publication Publication Date Title
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE60029879T2 (de) System zur mehrschichtigen Bereitstellung in Computernetzwerken
DE69926109T2 (de) Paketversendegerät mit einer Flussnachweistabelle
DE69934644T2 (de) Netzwerkvermittlungseinrichtung mit auf der Basis von Benutzung verteilten Umleitungsdatenbanken
DE10100842B4 (de) Kommunikationsvorrichtung mit Mehrschichten-Klassenidentifikation und Prioritätssteuerung
DE60021846T2 (de) Leitweglenkungsanordnung
US8619793B2 (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
DE69812777T2 (de) Verbindung von Ethernetkompatiblen Netzwerken
DE112020002484T5 (de) System und verfahren zur erleichterung der feinkörnigen flusssteuerung in einer netzwerkschnittstellensteuerung (nic)
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
DE69434330T2 (de) Übertragungsvorrichtgung und verfahren
DE60031274T2 (de) Mehrfachanschlussverfahren und -gerät für vituelle ports
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE60217253T2 (de) Centrale und regelbasierte Verkehrsverwaltung
DE602005006070T2 (de) Interner Lastausgleich in einem Datenschalter mit verteiltem Netzwerkprozess
DE69936966T2 (de) Kommunikationseinrichtung mit variabler Paketlänge
DE19929516B4 (de) Hochgeschwindigkeits-Netzwerkschalter
DE69827351T2 (de) Mehrfach-virtuelle Wegsucher
DE60120321T2 (de) Dienstqualitätenanpassung und -bereitstellung für einen Datenkommunikationsschalter und zugehöriges Verfahren
DE60309414T2 (de) Metro-Ethernet Netzwerksystem mit einer selektiven aufwärtigen Pausenachrichtenübermittlung
DE602004005785T2 (de) Dynamische Leitweglenkung in einem inhaltbasierten verteilten Netzwerk
DE102007038964A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Netzwerkdaten
DE112004000122T5 (de) Vorrichtung und Verfahren zum Konfigurieren des Datenebenenverhaltens auf Netzwerkweiterleitungselementen
DE10297269T5 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache

Legal Events

Date Code Title Description
8364 No opposition during term of opposition