DE69935587T2 - Verfahren und vorrichtung zur weiterleitung von paketen von einer mehrzahl konkurrierender warteschlangen zu einem ausgang - Google Patents

Verfahren und vorrichtung zur weiterleitung von paketen von einer mehrzahl konkurrierender warteschlangen zu einem ausgang Download PDF

Info

Publication number
DE69935587T2
DE69935587T2 DE69935587T DE69935587T DE69935587T2 DE 69935587 T2 DE69935587 T2 DE 69935587T2 DE 69935587 T DE69935587 T DE 69935587T DE 69935587 T DE69935587 T DE 69935587T DE 69935587 T2 DE69935587 T2 DE 69935587T2
Authority
DE
Germany
Prior art keywords
queues
bandwidth
packets
queue
output
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
DE69935587T
Other languages
English (en)
Other versions
DE69935587D1 (de
Inventor
Deepak J. Cupertino AATRESH
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.)
Riverstone Networks Inc
Original Assignee
Riverstone Networks Inc
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 Riverstone Networks Inc filed Critical Riverstone Networks Inc
Application granted granted Critical
Publication of DE69935587D1 publication Critical patent/DE69935587D1/de
Publication of DE69935587T2 publication Critical patent/DE69935587T2/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
    • 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]
    • 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/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes

Description

  • TECHNISCHES GEBIET
  • Die Erfindung betrifft allgemein einen Mehrport-Switch mit hoher Bandbreite zum Beispiel zur Verwendung in Gigabit-Ethernet-Netzwerken. Insbesondere betrifft die Erfindung das Puffern von Paketen in einem Switch und das Aufrechterhalten von Dienstqualität (QoS) in dem gesamten Switch.
  • ALLGEMEINER STAND DER TECHNIK
  • Netzwerke dienen zum Transfer von Voice, Video und Daten zwischen verschiedenen Netzwerkeinrichtungen. In Netzwerken befinden sich Netzwerkeinrichtungen wie etwa Switch zum Anleiten des Transfers von Netzwerkverkehr zwischen den verschiedenen Netzwerkeinrichtungen. Netzwerkverkehr ist in der Regel Burst-artig, und um Netzwerkverkehr-Bursts zu kompensieren, wurden Speicherpuffer in Switch-Entwürfe integriert. Speicherpuffer erlauben es einem Switch, Pakete vorübergehend zu speichern, wenn eine ankommende Datenrate höher als eine abgehende Datenrate ist. Wenn mehr als ein Puffer Pakete aufweist, die um denselben Ausgang konkurrieren, müssen bestimmte Pakte in den Puffern warten, und es wird ein bestimmter Mechanismus benötigt, um zu bestimmen, wie Paketwettbewerb aufgelöst wird.
  • Um Wettbewerb aufzulösen und einem Netzwerk-Switch höhere QoS zu geben, sind zwei verschiedene Pufferverwaltungsverfahren bekannt, Prioritäts-Warteschlangen und gewichtete faire Warteschlangen. Bei dem Prioritäts-Warteschlangenverfahren werden konkurrierenden Warteschlangen verschiedene Prioritäten zugewiesen, und Pakete werden aus den Warteschlangen in strikter Prioritätsreihenfolge weitergeleitet. Zum Beispiel puffern mit Bezug auf 1 vier Warteschlangen A, B, C und D Pakete, die um denselben Ausgang 20 konkurrieren, der eine endliche Bandbreite aufweist. Um den Wettbewerb aufzulösen, werden den Warteschlangen verschiedene Prioritäten zugewiesen, wie zum Beispiel eine erste, eine zweite, eine dritte und eine vierte Priorität. Pakete werden ähnlich priorisiert und gemäß ihrer Priorität in Warteschlangen eingereiht. Die in Warteschlangen eingereihten Pakete werden in Prioritätsreihenfolge zu dem Ausgang weitergeleitet, so daß alle Pakete aus Warteschlangen höherer Priorität vor jeglichen Paketen aus Warteschlangen niedriger Priorität weitergeleitet werden. Obwohl Prioritäts-Warteschlangen gut funktionieren, wenn Wettbewerb zwischen Warteschlangen besteht, werden die Pakete höherer Priorität auf Kosten von Paketen niedriger Priorität wietergeleitet. Wenn Pakete höherer Priorität den größten Teil der endlichen Ausgangsbandbreite aufbrauchen, wird den Paketen niedriger Priorität Bandbreite versagt und sie können sich in der gesamten Switch-Architektur anstauen, wodurch potentiell die Latenz bis zu einem Punkt vergrößert wird, an dem Pakete fallen gelassen werden. Einige wenige Pakete aus einem Transfer fallen zu lassen, kann erfordern, einen gesamten Strom von Paketen neu zu senden, wodurch praktisch die Nachteile verloren gehen, die durch die Priorisierung der konkurrierenden Warteschlangen an erster Stelle erhalten wurden.
  • Bei dem gewichteten fairen Warteschlangenverfahren werden konkurrierenden Warteschlangen Gewichte zugewiesen, und Pakete werden proportional zu den jeder Warteschlange zugewiesenen Gewichten aus den Warteschlangen weitergeleitet. Zum Beispiel puffern mit Bezug auf 2 vier Warteschlangen A, B, C und D Pakete, die um denselben Ausgang 30 mit endlicher Bandbreite konkurrieren. Um Konkurrenz aufzulösen, wird jeder Warteschlange ein Prozentsatz oder ein Gewicht zugewiesen, der bzw. das die Menge der für diese Warteschlange reservierten Bandbreite repräsentiert. Betrüge die gesamte verfügbare Bandbreite des Ausgangs 100 Byte pro Sekunde, dann würde mit als 20%, 25%, 15% und 40% zugewiesenen Warteschlangengewichten Warteschlange A 20 Byte pro Sekunde an den Ausgang weiterleiten, Warteschlange B 25 Byte pro Sekunde an den Ausgang weiterleiten, Warteschlange C würde 15 Byte pro Sekunde an den Ausgang weiterleiten und Warteschlange D würde 40 Byte pro Sekunde an den Ausgang weiterleiten, wobei jeder Anteil jede Sekunde weitergeleitet wird.
  • Obwohl das gewichtete faire Warteschlangenverfahren gut dafür funktioniert, das Problem des Verhungerns zu verhindern, das bei Prioritäts-Warteschlangen auftritt und eine maximale Flußrate für jede Warteschlange herzustellen, wird häufig Ausgangsbandbreite verschwendet, wenn eine der Warteschlangen keine zu dem Ausgang weiterzuleitenden Pakete enthält. Bandbreite wird verschwendet, weil der Prozentsatz der Ausgangsbandbreite, der für die bestimmte Warteschlange reserviert ist, reserviert wird, ob Pakete warten oder nicht. Wenn versucht wird, die übrige Bandbreite bei dem Verfahren der gewichteten fairen Warteschlangen zu verteilen, besteht keine offensichtliche Verfahrensweise zum Verteilen der übrigen Bandbreite zwischen den Warteschlangen, weil den Warteschlangen keine Priorität relativ zueinander zugewiesen ist.
  • Ein zusätzlicher Nachteil der gewichteten fairen Warteschlangen besteht darin, daß die Bandbreitengrenzen nicht flexibel sind und sie sich deshalb nicht an Schwankungen von Verkehrsmustern anpassen. Es ist schwer, vorherzusagen, an welche Stelle die strengen Bandbreitengrenzen für optimale Netzwerkleistungsfähigkeit gesetzt werden sollen, insbesondere wenn sich Verkehrsmuster dauernd ändern. Außerdem erfordert das Setzen von Bandbreitengrenzen eine präzise Abstimmung durch einen Netzwerkadministrator.
  • Zusätzlich zu den Nachteilen des Warteschlangenverhungerns und der verschwendeten Bandbreite, die sich aus den Prioritäts- und gewichteten fairen Warteschlangen ergeben, implementieren vorbekannte Switches die Prio ritäts- und gewichteten fairen Warteschlangenverfahren unter Verwendung von Vielzweck-Zentralverarbeitungseinheiten (CPU) in Verbindung mit anwendungsspezifischer Software. Obwohl Softwareanwendungen im allgemeinen leichter zu entwickeln und flexibler zu aktualisieren sind als in anwendungsspezifisch integrierte Schaltungen (ASIC) eingebettete Logik, nehmen in Software durchgeführte Operationen in der Regel mehr Zeit in Anspruch und weisen relativ zu in ASICs eingebetteter Logik ein größeres Overhead auf. Mit zunehmenden Bandbreitenanforderungen für Netzwerke wird die Geschwindigkeit, mit der konkurrierende Pakete aus Puffern freigegeben werden, von größerer Wichtigkeit.
  • Im Bezug auf die oben angegebenen Nachteile des Stands der Technik wird eine Möglichkeit benötigt, das Verhungern von priorisierten Warteschlangen zu vermeiden, während unbenutzte Bandbreite mit Geschwindigkeiten, die zum Beispiel von Gigabit-Ethernet-Netzwerken erfordert werden, logisch verteilt wird.
  • Aus der Schrift EP-A-0 648 062, AT&T, ist ein Verfahren zur adaptiven Steuerung von Fenstern und Raten in Netzwerken bekannt, in denen ein periodisches Ein-Bit-Rückkopplungssignal mit systematischer Dämpfung und Steuerung des Verstärkungssignals kombiniert wird, um eine Minimalbandbreite und einen fairen Anteil übriger verfügbarer Bandbreite unter virtuellen Leitungen in dem Netzwerk auf rechtzeitige Weise zu erzielen. Bei diesem Verfahren erfolgt die Verteilung der unbenutzten Bandbreite "proportional zu den CIR (vereinbarte Informationsrate) jeder aktiven virtuellen Leitung.
  • Aus der Schrift US-5748629 = D2 (Fujitsu Network Communication) ist ein System und ein Verfahren bekannt, bei dem zusätzliche Bandbreite teilweise im garantierten Verfahren und teilweise im Reigenverfahren verteilt wird. Gemäß D2 wird die Bandbreite, die zu einem Ausgang verteilt wird, entweder als zugeteilte Bandbreite oder als dynamische Bandbreite definiert. Zugeteilte Bandbreite bedeutet Bandbreite, die einem bestimmten Verkehr "spezifisch zugewiesen" ist, und dynamische Bandbreite bedeutet Bandbreite, die zugeteilt, aber unbenutzt ist, oder Bandbreite, die nicht zugeteilt ist.
  • KURZFASSUNG DER ERFINDUNG
  • Ein Verfahren und eine Vorrichtung gemäß der vorliegenden Erfindung werden in den unabhängigen Ansprüchen definiert, auf die der Leser nun verwiesen wird. Bevorzugte Merkmale werden in den abhängigen Ansprüchen definiert.
  • Ein Verfahren und eine Vorrichtung zum Weiterleiten von Paketen aus konkurrierenden Warteschlangen zu einem Ausgang mit einer endlichen Bandbreite umfassen: Priorisieren jeder Warteschlange der mehreren Warteschlangen mit einer Priorität, die relativ zu den anderen Warteschlangen der mehreren Warteschlangen fest ist, wodurch ein fester Priorisierungsbereich definiert wird, der eine Warteschlange höchster Priorität und eine Warteschlange niedrigster Priorität enthält; Vergeben eines Anteils der Bandbreite des Ausgangs an jede der Warteschlangen; Aufbrauchen mindestens eines Teils der Bandbreite des Ausgangs mit Paketen aus den Warteschlangen gemäß den vergebenen Anteilen, wodurch ein unverbrauchter Teil übrig bleibt, wenn mindestens eine der Warteschlangen den vergebenen Anteil der mindestens einen Warteschlange nicht ausschöpft; und Verteilen von einhundert Prozent des unverbrauchten Teils der Bandbreite an die Warteschlangen auf Festprioritätsbasis, wobei einhundert Prozent des unverbrauchten Teils der Bandbreite zuerst der Warteschlange der höchsten Priorität und dann einhundert Prozent eines etwaigen übrigen Teils des unverbrauchten Teils der Bandbreite Warteschlangen niedrigerer Priorität warteschlangenweise gemäß dem festen Priorisierungsbereich angeboten werden, bis die gesamte Bandbreite verbraucht ist oder keine weiteren Pakete in Warteschlangen vorliegen. Ferner wird bei einer bevorzugten Ausführungsform die Logik zur Durchführung des Warteschlangenmanagements in eine anwendungsspezifische integrierte Schaltung eingebettet.
  • Das Verfahren und die Vorrichtung der Erfindung werden vorzugsweise in einem Mehrport-Switch mit hoher Bandbreite implementiert, in dem Pakete gepuffert werden, bevor sie aus dem Switch ausgegeben werden. Die Architektur des Mehrport-Switch enthält Datenstrecken, die mit Eingangs-/Ausgangssteuerungen verbunden sind, die mit einem Koppelfeld verbunden sind. Die Datenstrecken stellen die Datenwege zwischen anderen Einrichtungen in dem Netzwerk und dem Mehrport-Switch bereit. Es können mehrere Datenstrecken verschiedener Typen und Kapazitäten vorliegen, die mit dem Mehrport-Switch verbunden sind. Vorzugsweise sind die Datenstrecken verdrillte Doppelleitungen und optische Fasern, die Pakete variabler Länge gemäß dem Ethernet-Protokoll mit 10, 100 und 1000 Mbps führen.
  • Die Eingangs-/Ausgangssteuerungen sind zwischen die Strecken der Daten 35 und das Koppelfeld geschaltet, um Paketsteuerung zwischen den Datenstrecken und dem Koppelfeld bereitzustellen. Zu Paketsteuerfunktionen gehört das Senden und Empfangen von und zu den Datenstrecken und das Puffern ankommender und/oder abgehender Pakete, um Fluktuationen der Netzwerkverkehrsraten zu berücksichtigen.
  • Die Eingangs-/Ausgangssteuerungen führen dem Koppelfeld außerdem durch das Koppelfeld zu verarbeitende Pakete zu.
  • Das Koppelfeld stellt die physischen Datenwege zur Verbindung verschiedener Datenstrecken des Switch bereit. Zusätzlich teilt das Koppelfeld durch das Koppelfeld zu übertragende Pakete auf eine Weise ein, die die Bandbreite des Koppelfelds maximiert.
  • Da Wettbewerb auftritt, wenn auf verschiedenen Datenstrecken ankommende Pakete auf derselben Datenstrecke ausgegeben werden sollen, enthält die Eingangs-/Ausgangssteuerungsarchitektur Eingangspaketpufferungs- und Warteschlangenmanagementfunktionen, die bei der Minimierung von Paketverlusten helfen. Da das Koppelfeld in der Lage sein kann, Pakete einer Ausgangsdatenstrecke schneller zuzuführen, als die Datenstrecke, die Pakete empfangen kann, enthält Eingangs-/Ausgangssteuerungsarchitektur zusätzlich Ausgangspufferung und Warteschlangenmanagement. Die bevorzugte Ausführungsform der Erfindung wird mit Bezug auf Ausgangspaketpufferung und Warteschlangenmanagement beschrieben, obwohl die Erfindung gleichermaßen auf Eingangspaketpufferung und -warteschlangenmanagement anwendbar ist.
  • Bei der bevorzugten Ausführungsform enthalten die Eingangs-/Ausgangssteuerungen Ausgangswarteschlangenmanager, die eingebettete Logik benutzen, um Paketwarteschlangen zu verwalten, die Datenpakete repräsentieren, die in einem Ausgangspuffer gespeichert sind. Der Puffer kann eine integrierte Schaltung eines dynamischen Direktzugriffsspeichers (DRAM) sein und die Warteschlangen in dem Ausgangswarteschlangenmanager repräsentieren die in dem Puffer gespeicherten Pakete. Die Ausgangspuffer können in die E/A-Steuerungen integriert oder extern dieser angeordnet sein. Bei der bevorzugten Ausführungsform befinden sich die Ausgangspuffer neben den E/A-Steuerungen und sind nicht auf dieselben Schaltungen wie die E/A-Steuerungen integriert. Die Ausgangswartschlangenmanager sind integrierte Schaltungen, die anwendungsspezifische Einrichtungen enthalten, wie zum Beispiel Zähler und Komparatoren, um die Logik zu erzeugen, die das Warteschlangenmanagement ausführt. Die Ausgangswarteschlangenmanager sind durch eine Programmierschnittstelle einstellbar und können zum Beispiel durch einen Netzwerkadministrator gesteuert werden. Die Programmierschnittstelle ermöglich warteschlangenspezifische Einstellbarkeit, die während des Betriebes des Switch manipuliert werden kann, um eine spezifizierte QoS bereitzustellen.
  • Bei der bevorzugten Ausführungsform werden Pakete variabler Länge auf der Basis bestimmter Eigenschaften der Pakete in vier Kategorien priorisiert. Die für die Priorisierung interessierenden Paketeigenschaften umfassen Quelle und/oder Ziel des Pakets, die Art der in dem Paket geführten Informationen oder das Alter des Pakets. Ein Paket, das Videokonferenzdaten führt, kann zum Beispiel eine höhere Priorität aufweisen, als ein Paket, das E-Mail führt, weil die Qualität der Videokonferenz beeinträchtigt wird, wenn Pakete verzögert werden, während ein E-Mail-Transfer gegenüber Paketverzögerungen toleranter ist. Mit jedem Port einer Eingangs-/Ausgangssteuerung sind vier Warteschlangen assoziiert, die die eingerichteten Paketprioritätskategorien verfolgen. Die vier Warteschlangen verfolgen die vier Prioritätskategorien, und sowohl die Paketals auch die Warteschlangenprioritäten werden für Beschreibungszwecke als Steuerung (CTRL), hoch (HI), mittel (MED) und niedrig (LO) bezeichnet, wobei Steuerung die höchste Priorität und niedrig die niedrigste Priorität ist. Das Warteschlangenverfahren ist nicht auf vier Warteschlangen beschränkt und kann herauf- oder herabskaliert werden.
  • Die Eingangs-/Ausgangssteuerungen empfangen Pakete von dem Koppelfeld, und wenn die Pakete nicht unmittelbar zu einer Datenstrecke weitergeleitet werden, werden die Pakete in Speicher gepuffert, und die entsprechende Warteschlange in dem Warteschlangenmanager wird mit Informationen bezüglich des gepufferten Pakets aktualisiert. Wenn Prioritäts-Warteschlangen das einzige benutzte Warteschlangenmanagementverfahren ist, werden alle Pakete einer höheren Priorität aus den priorisierten Warteschlangen vor jeglichen Paketen einer niedrigeren Priorität weitergeleitet. Zum Beispiel werden jegliche Pakete in der Steuerwarteschlange vor Paketen aus den Warteschlangen für hoch, mittel oder niedrig zu einer assoziierten Datenstrecke weitergeleitet. Bei dem Warteschlangenmanagementverfahren der Erfindung werden gewichtete faire Warteschlangen in Verbindung mit Prioritäts-Warteschlangen implementiert, um die endliche Bandbreite eines Ausgangs besser auszunutzen.
  • Im Betrieb wird jeder der vier Prioritäts-Warteschlangen ein jeweiliger Anteil der gesamten Ausgangsdatenstreckenbandbreite zugeteilt, die über einen designierten Zeitraum verbraucht werden soll. Während jedes designierten Zeitraums werden Pakete in Prioritätsreihenfolge gemäß ihren zugeteilten Anteilen aus den Warteschlangen an die assoziierte Datenstrecke freigegeben, so daß die zugeteilten Pakete in der Steuerwarteschlange vor den zugeteilten Paketen in der Hoch-Warteschlange freigegeben werden usw. Der Schlüssel für das Warteschlangenmanagementverfahren der Erfindung besteht darin, daß, wenn eine Warteschlange während eines designierten Zeitintervalls nicht ihre gesamte zugeteilte Bandbreite verbraucht, die übrige Bandbreite auf Prioritätsbasis den anderen Warteschlangen zugeteilt wird. Das heißt, übrige Bandbreite wird zuerst der Steuerwarteschlange angeboten, und wenn in der Steuerwarteschlange genug Pakete warten, verbraucht die Steuerwarteschlange die gesamte übrige Bandbreite. Wenn dagegen die Steuerwarteschlange nicht die gesamte übrige Bandbreite verbraucht hat, wird die übrige Bandbreite der Warteschlange mit der nächst niedrigeren Priorität angeboten usw., bis alle verfügbare Ausgangsbandbreite verbraucht ist oder bis keine Pakete in dem Ausgangspuffer bleiben.
  • Einer der Hauptbetriebsgesichtspunkte des gewichteten Prioritätswarteschlangenverfahrens der Erfindung ist der Ausgleich zwischen Latenz und Fehler. Das Problem des Ausgleich von Latenz und Fehler erschwert sich durch den Umstand, daß Paketlängen über einen großen Umfang variieren können. Im Kontext der Erfindung ist Latenz die Zeitdauer, die zwischen dem Eintritt eines ersten Pakets aus einer bestimmten Warteschlange in eine assoziierte Ausgangsdatenstrecke und dem Eintritt des nächsten Pakets aus derselben Warteschlange in dieselbe Ausgangsdatenstrecke, nachdem alle anderen Prioritätswarteschlangen ihre zugeteilte Bandbreite angeboten bekommen haben, abläuft. Fehler ist ein Maß dafür, wie nahe der tatsächliche Bandbreitenverbrauch einer bestimmten Ausgangsdatenstrecke den hergestellten Bandbreitenzuteilungsanteilen für die Datenstrecke kommt. Fehler wird verursacht, weil, nachdem ein Paket mit dem Senden aus einem Puffer auf eine Datenstrecke beginnt, das Paket weiter gesendet wird, bis die Übertragung abgeschlossen ist. Wenn das Senden eines Pakets länger als das warteschlangenspezifische Zeitintervall dauert, das für die bestimmte Warteschlange zugeteilt ist, wird die Paketübertragung fortgesetzt und der Fehler wächst proportional zu der verbrauchten Überschußzeit. Beim Ausgleich von Latenz und Fehler erzeugt eine relativ lange Bandbreitenzuteilungs-Zykluszeit eine hohe Paketlatenz, aber eine niedrige Fehlerrate, und wenn die Latenz zu hoch ist, können Warteschlangen praktisch zwischen Zykluszeiten verhungern und Pakete können anfangen, fallen gelassen zu werden. Eine relativ kurze Bandbreitenzuteilungs-Zykluszeit erzeugt dagegen eine niedrige Paketlatenz, aber eine hohe Fehlerrate, da mehr Pakete die relativ kurzen warteschlangenspezifischen Zeitintervalle überschreiten, die für Paketübertragung zugeteilt sind.
  • Vorteile der Erfindung sind zum Beispiel, daß das Warteschlangenmanagementverfahren das unnötige Fallenlassen von Paketen vermeidet, indem jeder Warteschlange Bandbreite zugeteilt wird und es sich automatisch an Änderungen der Netzwerkverkehrsmuster anpaßt, indem unverbrauchte Bandbreite in Prioritätsreihenfolge verteilt wird. Zusätzlich ist das Warteschlangenmanagementverfahren flexibel, weil die im Voraus festgelegten Bandbreitenzuteilungen automatisch eingestellt werden, wenn Warteschlangen mehr Bandbreite als notwendig zugeteilt ist. Da die Logik für das gewichtete Prioritätswarteschlangenverfahren in anwendungsspezifisch integrierte Schaltungen eingebettet ist, kann das Verfahren ferner leicht in einem Switch mit hoher Bandbreite, wie zum Beispiel einem Gigabit-Ethernet-Switch verwendet werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Abbildung eines vorbekannten Warteschlangenverfahrens gemäß dem Stand der Technik.
  • 2 ist eine Abbildung eines gewichteten fairen Warteschlangenverfahrens gemäß dem Stand der Technik.
  • 3 ist eine Abbildung der grundlegenden Switch-Architektur der bevorzugten Ausführungsform der Erfindung.
  • 4 ist eine erweiterte Abbildung einer bevorzugten Architektur einer Eingangs-/Ausgangssteuerung mit einer Datenstrecke gemäß der Erfindung.
  • 5 ist eine erweiterte Abbildung einer bevorzugten Architektur einer Eingangs-/Ausgangssteuerung mit zwei Datenstrecken gemäß der Erfindung.
  • 6 ist eine Abbildung des gewichteten Prioritätswarteschlangenverfahrens gemäß der Erfindung.
  • 7 ist ein Prozeßflußdiagramm zum Weiterleiten von Paketen gemäß der Erfindung.
  • 8 ist eine Abbildung der grundlegenden Hardwarearchitektur zur Durchführung von gewichteten Prioritäts-Warteschlangenverfahren gemäß der Erfindung.
  • 9 ist eine Abbildung von zur Zuteilung von Bandbreite zwischen vier Prioritäts-Warteschlangen verwendeten internen Registerwerten.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 3 ist eine Abbildung der grundlegenden Architektur eines Switch 38 zum Weiterleiten von Paketen variabler Länge, die die bevorzugte Ausführungsform der Erfindung enthält. Obwohl für Beschreibungszwecke ein vierkanaliger Switch gezeigt ist, kann der Switch weniger Kanäle aufweisen, vorzugsweise aber mehr. Die bevorzugte Architektur enthält Datenstrecken 52, 54, 56 und 58, die mit Eingangs-/Ausgangs-(E/A-)Steuerungen 42, 44, 46 und 48 verbunden sind, die mit einem Koppelfeld 40 verbunden sind.
  • Die mit den E/A-Steuerungen 42-48 verbundenen Datenstrecken 52-58 stellen das Medium zum Transferieren von Datenpaketen in und aus dem Switch 38 bereit. Bei einer bevorzugten Ausführungsform basiert die Anzahl der mit jeder E/A-Steuerung verbundenen Datenstrecken auf der Bandbreitenkapazität der Datenstrecke. Zum Beispiel repräsentieren in 3 die Einfach- und Doppeldatenstrecken, 52, 54 und 56 Verbindungen mit 1000 Megabit pro Sekunde (Mbps), und die acht Datenstrecken 58 repräsentieren Verbindungen mit 10 und/oder 100 Mbps, obwohl diese Verbindungsbandbreiten größer oder kleiner sein können und die Anzahl der Datenstrecken pro E/A-Steuerungen größer oder kleiner sein kann. Außerdem besteht der physische Aufbau der Datenstrecken vorzugsweise aus verdrillten Doppelleitungen und/oder optischen Einmodenfasern, obwohl andere Datenstrecken möglich sind, wie zum Beispiel Koaxialkabel, optische Mehrmodenfaser, Infrarot- und/oder Hochfreugenzstrecke.
  • Die E/A-Steuerungen 42-48 sind direkt mit den Datenstrecken 52-58 und durch Eingangsverbindungen 62, 64, 66 und 68 und durch Ausgangsverbindungen 72, 74, 76 und 78 mit dem Koppelfeld 40 verbunden. Die E/A-Steuerungen stellen Paketsteuerung zwischen den Datenstrecken und dem Koppelfeld bereit. Die E/A-Steuerungen empfangen ankommende Pakete aus den Datenstrecken und transformieren die Pakete in digitale Datenpakte, die mit dem Switch 38 kompatibel sind. Die E/A-Steuerungen senden außerdem abgehende Daten auf die Datenstrecken. Die E/A-Steuerungen puffern ankommende und/oder abgehende Pakete, und die E/A-Steuerungen können bestimmte Netzwerkverkehrssteuerung durchführen. Schließlich liefern die E/A-Steuerungen dem Koppelfeld Pakete zur Verarbeitung durch das Koppelfeld. Das Puffern von Paketen und das Verwalten der gepufferten Warteschlangen steht im Brennpunkt der Erfindung, die nachfolgend ausführlich beschrieben wird.
  • Das Koppelfeld 40 stellt die physischen Datenwege zum Verbinden der verschiedenen Switch-Kanäle und letztendlich der Datenstrecken 52-58 des Switch 38 bereit. Das Koppelfeld teilt außerdem Pakete für den Fluß durch das Koppelfeld dergestalt ein, daß die Bandbreite des Koppelfelds maximiert wird. Vorzugsweise ist das Koppelfeld eine integrierte Schaltung, die Pakete mit Raten weiterleiten kann, die jede einzelne Datenstrecke übersteigen.
  • Da Wettbewerb auftritt, wenn auf verschiedenen Datenstrecken ankommende Pakete auf derselben Datenstrecke ausgegeben werden sollen, enthält die E/A-Steuerungsarchitektur Eingangspaketpufferungs- und Warteschlangenmanagementfunktionen, die dabei helfen, Paketverluste zu minimieren. Da das Koppelfeld Pakete einer Ausgangsdatenstrecke schneller zuführen kann, als die Datenstrecke die Pakete empfangen kann, enthält die E/A-Steuerungsarchitektur zusätzlich Ausgangspaketpufferung und -warteschlangenmanagement. Die bevorzugte Ausfüh rungsform der Erfindung wird mit Bezug auf Ausgangspaketpufferung und -warteschlangenmanagement beschrieben, obwohl die Erfindung gleichermaßen auf Eingangspaketpufferung und -warteschlangenmanagement anwendbar ist.
  • 4 ist eine ausführlichere Abbildung einer bevorzugten Architektur einer E/A-Steuerung 42 von 3, die eine einzige Datenstrecke 52 aufweist. Bei der bevorzugten Ausführungsform enthält die E/A-Steuerung einen Ausgangswarteschlangenmanager 82, der eine Paketwarteschlange verwaltet, die Datenpakete repräsentiert, die in einem Ausgangspuffer gespeichert sind. Der Ausgangswarteschlangenmanager ist während des Betriebs des Switch durch eine Programmierschnittstelle völlig einstellbar. Die Programmierschnittstelle stellt die warteschlangenspezifische Einstellbarkeit bereit, die manipuliert werden kann, während der Switch in Betrieb ist, um eine spezifizierte QoS bereitzustellen. Der Puffer ist eine integrierte Schaltung aus dynamischem Direktzugriffsspeicher (DRAM), in dem die Pakete gespeichert werden, und die Warteschlangen 84, 86, 88 und 90 in dem Ausgangswarteschlangenmanager repräsentieren die in dem Puffer gespeicherten Pakete. Der Ausgangspuffer kann in die E/A-Steuerung integriert oder außerhalb der E/A-Steuerung angeordnet sein, und bei der bevorzugten Ausführungsform befindet sich der Ausgangspuffer neben der E/A-Steuerung und ist nicht auf dieselbe Schaltung wie die E/A-Steuerung integriert, obwohl dies für die Erfindung nicht kritisch ist.
  • Bei der bevorzugten Ausführungsform werden Pakete auf der Basis bestimmter Eigenschaften der Pakete priorisiert. Die für die Priorisierung interessierenden Paketeigenschaften umfassen Quelle und/oder Ziel des Pakets, die Art der in dem Paket geführten Informationen oder das Alter des Pakets. Ein Paket, das Videokonferenzdaten führt, kann zum Beispiel eine höhere Priorität aufweisen, als ein Paket, das E-Mail führt, weil die Qualität der Videokonferenz beeinträchtigt wird, wenn Pakete verzögert werden, während ein E-Mail-Transfer gegenüber Paketverzögerungen toleranter ist. Die vier Warteschlangen 84-90 in 4 verfolgen die vier Prioritätskategorien, und sowohl die Paket- als auch die Warteschlangenprioritäten werden für Beschreibungszwecke als Steuerung (CTRL), hoch (HI), mittel (MED) und niedrig (LO) bezeichnet, wobei Steuerung die höchste Priorität und niedrig die niedrigste Priorität ist. Jede der vier priorisierten Warteschlangen ist als acht Register in bezug auf acht Pakete enthaltend abgebildet, obwohl die genaue Anzahl für die Erfindung nicht kritisch ist. Die Kapazität der Warteschlangen kann auch durch eine Programmierschnittstelle geändert werden. Die E/A-Steuerung von 4 empfängt Pakete durch die Eingangsverbindung 72 aus dem Koppelfeld, und wenn das Paket nicht unmittelbar für die Ausgabe auf der Datenstrecke 52 weitergeleitet wird, wird das Paket im Speicher gepuffert und die entsprechende Warteschlange in dem Warteschlangenmanager wird mit Informationen bezüglich des gepufferten Pakets aktualisiert. Bei der bevorzugten Ausführungsform ist die Designierung von Paket- und/oder Warteschlangenprioritäten während des Betriebes oder im Verlauf durch eine Programmierschnittstelle änderbar.
  • 5 ist eine ausführlichere Abbildung einer E/A-Steuerung 46 von 3, die zwei Datenstrecken 56 und 56a aufweist. Die mit den beiden Datenstrecken verbundene E/A-Steuerung enthält separate Ausgangswarteschlangenmanager 94 und 96 für jede der Datenstrecken. Wie bei der E/A-Steuerung von 6 besitzen die beiden Warteschlangenmanager von 5 vier Prioritäts-Warteschlangen 100, 102, 104, 106 bzw. 110, 112, 114, 116, wobei jede Warteschlange acht Register in bezug auf acht Pakete enthält. Die Ausgangswarteschlangenmanager stehen eindeutig mit den beiden mit der E/A-Steuerung verbundenen Datenstrecken in Beziehung und beide Ausgangswarteschlangenmanager empfangen Pakete von dem Koppelfeld durch dieselbe Eingangsverbindung 76. Obwohl sie nicht in ausführlicher Ansicht abgebildet ist, besitzt eine E/A-Steuerung 48 aus 3, die acht Datenstrecken 58 aufweist, acht Ausgangswarteschlangenmanager in eindeutiger Entsprechung mit den acht Datenstrecken.
  • 6 ist eine Abbildung von vier Warteschlangen 130, 132, 134 und 136 in bezug auf einen einzigen Ausgangswarteschlangenmanager (siehe 4), mit dem das bevorzugte Ausgangswarteschlangenmanagementverfahren beschrieben wird. Wie oben beschrieben, werden, wenn herkömmliche Prioritäts-Warteschlangen das einzige verwendete Warteschlangenmanagementverfahren sind, alle Pakete einer höheren Priorität vor jeglichen Paketen einer niedrigeren Priorität weitergeleitet. Wenn zum Beispiel bei Prioritäts-Warteschlangen etwaige Pakete in der Steuerwarteschlange 130 von 6 vorliegen, werden diese Pakete vor Paketen aus der Hoch-, der Mittel- oder der Niedrig-Warteschlange über den Ausgangsbus 142 zu der Datenstrecke 140 weitergeleitet. Bei dem Warteschlangenmanagementverfahren der Erfindung wird ein faires Warteschlangenverfahren in Verbindung mit einem Prioritätswarteschlangenverfahren implementiert, um die endliche Bandbreite des Ausgangs besser auszunutzen.
  • 6 zeigt die Paketpriorität in bezug auf jede Warteschlange 130-136 zusätzlich zu alternativen Beispielen dafür, wie die gesamte Datenstreckenbandbreite auf die vier Warteschlangen aufgeteilt werden kann. In Beispiel 1 werden der Steuerprioritätswarteschlange 130 10% der gesamten Datenstreckenbandbreite zugeteilt, der Hoch-Prioritätswarteschlange 132 werden 30% der gesamten Datenstreckenbandbreite zugeteilt, der Mittel-Prioritätswarteschlange 134 werden 15% der gesamten Datenstreckenbandbreite zugeteilt und der Niedrig-Prioritätswarteschlange 136 werden 45% der gesamten Daten streckenbandbreite zugeteilt. Bei der bevorzugten Ausführungsform ist die Bandbreitenzuteilung während des Betriebs des Netzwerk-Switch völlig einstellbar (Laufzeit-programmierbar) und wird durch eine Programmierschnittstelle durchgeführt.
  • Im Betrieb wird jeder Warteschlange ihr jeweiliger Anteil oder Prozentsatz der Gesamtbandbreite über einen designierten Zeitraum zugeteilt. Während jedes designierten Zeitraums werden Pakete in Prioritätsreihenfolge auf die Datenstrecke 140 freigegeben, so daß die Pakete in der Steuerwarteschlange 130 vor den Paketen in der Hoch-Warteschlange 132 freigegeben werden usw. Der Schlüssel für das Warteschlangenmanagementverfahren der Erfindung besteht darin, daß, wenn eine Warteschlange ihre gesamte zugeteilte Bandbreite während eines designierten zeitlichen Intervalls nicht verbraucht, die übrige Bandbreite auf Prioritätsbasis den anderen Warteschlangen zugeteilt wird. Das heißt, übrige Bandbreite wird zuerst der Steuerwarteschlange angeboten, und wenn die Steuerwarteschlange genug wartende Pakete aufweist, wird die gesamte übrige Bandbreite durch die Steuerwarteschlange verbraucht. Wenn dagegen die Steuerwarteschlange die übrige Bandbreite nicht ganz aufbraucht, wird die übrige Bandbreite der Warteschlange mit der nächst niedrigeren Priorität angeboten usw., bis alle verfügbare Ausgangsbandbreite verbraucht ist oder keine Pakete in dem kombinierten Ausgangspuffer übrigbleiben.
  • Als Beispiel für die Funktionsweise beziehe man sich wieder auf Beispiel 1 von 6. Während eines designierten Zeitraums werden 10% der gesamten Datenstreckenbandbreite der Steuerprioritätswarteschlange 130 angeboten und man nehme beispielsweise an, daß die Steuerprioritätswarteschlange mehr als genug Pakete aufweist, um 10% der Datenstreckenbandbreite zu verbrauchen, und somit werden die 10% der Bandbreite verbraucht. Als nächstes werden der Hoch-Prioritäts- warteschlange 132 30% der Bandbreite angeboten, und man nehme beispielsweise an, daß die Hoch-Prioritätswarteschlange mehr als genug Pakete aufweist, um ihre 30% der Bandbreite zu verbrauchen, und somit werden die 30% der Bandbreite verbraucht. Als nächstes werden der Mittel-Prioritätswarteschlange 134 15% der Bandbreite angeboten, und man nehme beispielsweise an, daß die Mittel-Prioritätswarteschlange keine auf Weiterleitung wartende Pakete aufweist. Um eine Verschwendung der zugeteilten Bandbreite zu vermeiden und die Ausnutzung der verfügbaren Bandbreite der Datenstrecke zu maximieren, werden die 15% der Datenstreckenbandbreite, die der Mittel-Prioritätswarteschlange für das vorliegende Zeitintervall zugeteilt sind, in Prioritätsreihenfolge den Warteschlangen höherer Prioritäten angeboten. Das heißt, die 15% der zugeteilten Datenstreckenbandbreite aus der Mittel-Prioritätswarteschlange werden zuerst vollständig der Steuerprioritätswarteschlange angeboten. Wenn in der Steuerprioritätswarteschlange genug Pakete warten, verbraucht sie alle übrige Bandbreite, oder wenn die Steuerprioritätswarteschlange nicht alle übrige Bandbreite verbraucht, wird die verbleibende übrige Bandbreite der Hoch-Prioritätswarteschlange angeboten. Wenn ferner die Hoch-Prioritätswarteschlange die übrige Bandbreite nicht verbraucht, wird die übrige Bandbreite der Niedrig-Prioritätswarteschlange 136 angeboten. Unter dieser priorisierten Verteilung übriger Bandbreite wird niemals übrige Bandbreite verschwendet, solang gepufferte Pakete vorliegen.
  • Zugeteilte Bandbreite kann bei dem gewichteten Prioritätswarteschlangenverfahren durch die Programmierschnittstelle eingestellt werden, um eine bestimmte QoS zu spezifizieren und um verschiedene Verkehrsmuster zu erzeugen. Zum Beispiel werden mit Bezug auf das Beispiel 2 von 6 der Steuerprioritätswarteschlange 130 30% der gesamten Datenstreckenbandbreite zugeteilt, der Hoch-Prioritätswarteschlange 132 werden 0% der gesamten Datenstreckenbandbreite zugeteilt, der Mittel- Prioritätswarteschlange 134 werden 50% der gesamten Datenstreckenbandbreite zugeteilt und der Niedrig-Prioritätswarteschlange 136 werden 20% der gesamten Datenstreckenbandbreite zugeteilt. Wenn einer Warteschlange, wie zum Beispiel der Hoch-Prioritätswarteschlange 0% der Bandbreite zugeteilt werden, teilen sich effektiv die Warteschlange mit 0% zugeteilter Bandbreite und die Warteschlange nächsthöherer Priorität übrige Bandbreite gemäß einem reinen Prioritätsschema. In Beispiel 2 wird etwaige übrige Bandbreite aus der Steuerprioritätswarteschlange zuerst der Hoch-Prioritätswarteschlange angeboten, obwohl der Hoch-Prioritätswarteschlange 0% der Bandbreite zugeteilt sind. In Beispiel 3 wird etwaige der Hoch-Prioritätswarteschlange angebotene übrige Bandbreite gemäß einem reinen Prioritätsschema gemeinsam zwischen der Hoch-Prioritätswarteschlange und der Mittel-Prioritätswarteschlange benutzt, obwohl der Mittel-Prioritätswarteschlange 0% der Bandbreite zugeteilt sind.
  • Einer der Hauptbetriebsaspekte des gewichteten Prioritätswarteschlangenverfahrens der Erfindung ist der Ausgleich zwischen Latenz und Fehler. Im Kontext der Erfindung ist Latenz die Zeitdauer, die zwischen dem Eintritt eines ersten Pakets aus einer bestimmten Warteschlange in eine Ausgangsdatenstrecke und dem Eintritt des nächsten Pakets aus derselben Warteschlange in dieselbe Ausgangsdatenstrecke, nachdem allen anderen Prioritätswarteschlangen ihre zugeteilte Bandbreite angeboten wurde, abläuft. Zum Beispiel ist mit Bezug auf Beispiel 1 von 6 Latenz der Zeitraum, der beginnt, wenn ein erstes Paket aus der Steuerprioritätswarteschlange ausgegeben wird, und dann endet, wenn alle anderen Prioritätswarteschlangen ihre zugeteilte Bandbreite verbraucht haben und während eines neuen Zuteilungszyklus ein zweites Paket aus der Steuerprioritätswarteschlange 130 ausgegeben wird. Die Latenz von Paketen steht direkt mit der gewählten Bandbreitenzuteilungs-Zykluszeit in Beziehung, wobei die Bandbreitenzuteilungs-Zykluszeit das Gesamtzeitintervall für einen Bandbreitenzuteilungszyklus ist. Wenn zum Beispiel die Bandbreitenzuteilungs-Zykluszeit für die Warteschlangen von 6 eine Millisekunde (ms) beträgt, erhält die Steuerprioritätswarteschlange alle eins ms 0,10 ms der Gesamtbandbreite, die Hoch-Prioritätswarteschlange 132 erhält alle eins ms 0,30 ms der Gesamtbandbreite, die Mittel-Prioritätswarteschlange 134 erhält alle eins ms 0,15 ms der Gesamtbandbreite und die Niedrig-Prioritätswarteschlange 136 erhält alle eins ms 0,45 ms der Gesamtbandbreite. Die Bandbreitenzuteilungs-Zykluszeit ist voll programmierbar, und Paketlatenz wird unter Verwendung von Paketgrößen gemessen, die in einem Zeitintervall, das einer spezifischen Warteschlange zugeteilt wird, vollständig weitergeleitet werden können.
  • Der Fehler ist ein Maß dafür, wie nahe der tatsächliche Bandbreitenverbrauch einer Zielausgangsdatenstrecke den festgelegten Bandbreitenzuteilungsanteilen kommt. Der Fehler wird verursacht, weil, nachdem ein Paket mit dem Senden aus einem Puffer auf eine Datenstrecke beginnt, das Paket weiter gesendet wird, bis die Übertragung abgeschlossen ist. Wenn das Senden eines Pakets länger als das warteschlangenspezifische Zeitintervall (Zeitschlitz) dauert, das für die bestimmte Warteschlange zugeteilt ist, wird die Paketübertragung fortgesetzt und der Fehler wächst proportional zu der verbrauchten Überschußzeit. Der Fehler tritt am stärksten in Übertragungsprotokollen auf, die Pakete variabler Länge zulassen, weil die Größe des auf Transfer wartenden Pakets unvorhersehbar ist. Wenn zum Beispiel der Steuerprioritätswarteschlange alle eins ms 0,10 ms der Datenstreckenbandbreite erlaubt sind und ein Steuerprioritätspaket 0,15 ms braucht, um vollständig von einem Puffer zu der Ausgangsdatenstrecke gesendet zu werden, dann werden für den aktuellen Bandbreitezutei lungszyklus 0,05 ms unzugeteilter Übertragungszeit von der Steuerprioritätswarteschlange benutzt und deshalb müssen die 0,05 ms aus der den Warteschlangen niedrigerer Priorität verfügbaren Übertragungszeit eliminiert werden.
  • Beim Ausgleich von Latenz und Fehler zur Bereitstellung einer spezifizierten QoS erzeugt eine relativ lange Bandbreitenzuteilungs-Zykluszeit eine höhere Paketlatenz, aber eine niedrige Fehlerrate. Wenn die Latenz zu hoch ist, können Warteschlangen praktisch zwischen Zykluszeiten verhungern und Pakete fangen an, fallengelassen zu werden. Andererseits erzeugt eine relativ kurze Bandbreitenzuteilungs-Zykluszeit eine relativ niedrige Paketlatenz, aber eine hohe Fehlerrate, da mehr Pakete die relativ kurzen warteschlangenspezifischen Zeitintervalle überschreiten, die für Paketübertragung zugeteilt werden. Bei Implementierung von gewichteten Prioritätswarteschlangen in einem Ethernet-Netzwerk mit 100 Mbps, bei dem Paketgrößen im Bereich von 64 Byte bis 1500 Byte liegen, weist eine Bandbreitenzuteilungs-Zykluszeit oder Latenz von 1,28 ms einen Fehler von ungefähr 9,38% auf, und eine Latenz von 163,84 ms einen Fehler von ungefähr 0,7%. Die Fehlerverteilung skaliert sich mit anderen Datenraten.
  • 7 ist ein Prozeßflußdiagramm zum Weiterleiten von Paketen gemäß einer bevorzugten Ausführungsform der Erfindung. In einem ersten Schritt 150 wird eine Gruppe konkurrierender Warteschlangen relativ zueinander von einer Warteschlange höchster Priorität bis zu einer Warteschlange niedrigster Priorität priorisiert. In einem nächsten Schritt 152 werden der Gruppe priorisierter Warteschlangen Teile der Bandbreite eines Ausgangs zugeteilt. In einem nächsten Schritt 154 wird die Bandbreite des Ausgangs von Paketen aus den priorisierten Warteschlangen gemäß den jeder Warteschlange zugeteilten Teilen der Bandbreite verbraucht. In einem nächsten Schritt 156 wird die Bandbreite, die nicht gemäß dem zugeteilten Teil durch die Warteschlangen verbraucht wird, auf Prioritätsbasis an die Warteschlangen verteilt. Bei der bevorzugten Ausführungsform wird die unverbrauchte Bandbreite vor allen anderen Warteschlangen erst der Warteschlange mit der höchsten Priorität angeboten, und die unverbrauchte Bandbreite wird erst dann der niedrigsten Priorität angeboten, nachdem die Bandbreite allen Warteschlangen höherer Priorität angeboten wurde.
  • 8 ist eine Abbildung der grundlegenden Architektur einer Hardwareimplementierung des bevorzugten gewichteten Prioritätswarteschlangenverfahrens. Die bevorzugte Hardware enthält vier priorisierte Warteschlangen 180, 182, 184 und 186, einen Multiplexer 190, Prioritätslogik 194 und Logik 198 für gewichtete faire Warteschlangen, in einen ASIC eingebettet. Die Logik für gewichtete faire Warteschlangen enthält Register 200, 202, 204, 206 und 208, einen Zähler 210 und Komparatoren 220, 222, 224 und 226. Die Register dienen zum Festlegen der Bandbreitenzuteilungsanteile der Warteschlangen. Der Zähler wird in regelmäßigen Zeitintervallen nach Vorschrift durch einen Systemtakt von einem Maximalwert dekrementiert. Die Komparatoren vergleichen den Zählerwert mit den Registerwerten, um zu bestimmen, welche Prioritätswarteschlange Zugang zu dem Ausgang 230 erhalten soll. Wenn der Zählerwert unter einen der Registerwerte abfällt, wird der jeweilige Komparator ausgelöst und es wird ein Auswahlsignal von dem Komparator zu der Prioritätslogik gesendet. Das Auswahlsignal identifiziert der Prioritätslogik, welcher zugeteilte Teil der Bandbreite aktiv ist. Die Prioritätslogik leitet das Signal zu dem Multiplexer und der Multiplexer überwacht die Warteschlangen, um zu bestimmen, ob Pakete in der gewählten Warteschlange warten. Wenn das Überwachen bestimmt, daß Pakete in der gewählten Warteschlange warten, werden die Pakete zu dem Ausgang weitergeleitet, bis der Zählerwert die nächste Prioritätswarteschlange auslöst. Wenn dagegen nicht genug Pakete vorliegen, um die gesamte Zuteilung von Bandbreite zu verbrauchen, wird die Prioritätslogik aufgerufen, um die unverbrauchte Bandbreite in strikter Prioritätsreihenfolge zu verteilen.
  • 9 zeigt die fünf Registerwerte, die die vier warteschlangenspezifischen Zeitintervalle (Zeitschlitze) entsprechend den Bandbreitenzuteilungen von Beispiel 1 von 6 repräsentieren. Während jedes Bandbreitenzuteilungszyklus zählt der 14-Bit-Zähler von dem Maximalwert von 16384 (214) herunter und der Zählerwert wird mit den vier kleineren Registerwerten verglichen. Bandbreite wird den jeweiligen Warteschlangen zugeteilt, wenn der Zählerwert in einem warteschlangenspezifischen Zeitintervall (Zeitschlitz) liegt, das durch die Registerwerte festgelegt wird.
  • Bei der bevorzugten Ausführungsform besitzt der Zähler 16 Bit, obwohl nicht unbedingt alle 16 Bit benutzt werden. Tabelle 1 gibt die Beziehung zwischen der gewählten Auflösung des Zählers und der Latenz und dem Fehler eines Systems, das 32-Byte-Zellen mit 100 Mbps sendet, an.
  • Der Flexibilität halber kann der Betrieb des Switch als ein reiner Prioritätswarteschlangenmodus gewählt werden, oder der Betrieb des Switch kann als gewichteter Prioritätswarteschlangenmodus gewählt werden, auf den sich die Erfindung konzentriert.
  • TABELLE 1 BITAUFLÖSUNG IM VERGLEICH ZU LATENZ UND FEHLER
    Figure 00230001
  • Figure 00240001

Claims (20)

  1. Verfahren zum Weiterleiten von Paketen von einer Mehrzahl konkurrierender Warteschlangen (84, 86, 88, 90) zu einem Ausgang mit endlicher Bandbreite, mit den folgenden Schritten: Priorisieren (150) jeder Warteschlange der mehreren Warteschlangen mit einer Priorität, die relativ zu den anderen Warteschlangen der mehreren Warteschlangen fest ist, wodurch ein fester Priorisierungsbereich definiert wird, der eine Warteschlange höchster Priorität und eine Warteschlange niedrigster Priorität enthält; Vergeben (152) eines Anteils der Bandbreite des Ausgangs an jede der Warteschlangen (84, 86, 88, 90) ; Aufbrauchen (154) mindestens eines Teils der Bandbreite des Ausgangs mit Paketen aus den Warteschlangen (84, 86, 88, 90) gemäß den vergebenen Anteilen, wodurch ein unverbrauchter Teil übrig bleibt, wenn mindestens eine der Warteschlangen (84, 86, 88, 90) den vergebenen Anteil der mindestens einen Warteschlange nicht ausschöpft; und Verteilen (156) von einhundert Prozent des unverbrauchten Teils der Bandbreite an die Warteschlangen (84, 86, 88, 90) auf Festprioritätsbasis, wobei einhundert Prozent des unverbrauchten Teils der Bandbreite zuerst der Warteschlange der höchsten Priorität angeboten und dann einhundert Prozent eines etwaigen übrigen Teils des unverbrauchten Teils der Bandbreite Warteschlangen (84, 86, 88, 90) niedrigerer Priorität warteschlangenweise gemäß dem festen Priorisierungsbereich angeboten wird, bis die gesamte Bandbreite aufgebraucht ist oder keine weiteren Pakete in Warteschlangen vorliegen.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Priorisierens der mehreren Warteschlangen (84, 86, 88, 90) einen Schritt des Priorisierens jeder der Warteschlangen (84, 86, 88, 90) mit einer verschiedenen Priorität relativ zu den anderen Warteschlangen der Warteschlangen umfaßt.
  3. Verfahren nach Anspruch 2, ferner mit einem Schritt des Priorisierens der Pakete in einen Priorisierungsbereich, der direkt mit dem Priorisierungsbereich der Warteschlangen (84, 86, 88, 90) in Beziehung steht.
  4. Verfahren nach Anspruch 2, wobei der Schritt des Verteilens des unverbrauchten Teils der Bandbreite die folgenden Schritte umfaßt: Anbieten des unverbrauchten Teils an die Warteschlange der höchsten Priorität vor allen anderen der Warteschlangen (84, 86, 88, 90); und Anbieten des unverbrauchten Teils an die Warteschlange der niedrigsten Priorität erst nachdem der unverbrauchte Teil Warteschlangen höherer Priorität der Warteschlangen (84, 86, 88, 90) angeboten wurde.
  5. Verfahren nach Anspruch 4, wobei der Schritt des Aufbrauchens der Bandbreite einen Schritt des Weiterleitens der Pakete an einen Ausgangsport (230) eines Mehrport-Switch (38) umfaßt.
  6. Verfahren nach Anspruch 1, wobei der Schritt des Vergebens von Anteilen der Bandbreite den Schritt des Benutzens einer Programmierschnittstelle zum Setzen von Registerwerten in Schaltkreisen, die den unvergebenen Anteilen der Bandbreite entsprechen, umfaßt.
  7. Verfahren nach Anspruch 6, wobei der Schritt des Aufbrauchens (154) von Bandbreite die folgenden Schritte umfaßt: Ändern eines Taktzählerwerts in bezug auf einen Systemtakt; und Vergleichen des Taktzählerwerts mit den Registerwerten, um Bandbreitenverbrauch zu steuern.
  8. Verfahren nach Anspruch 7, wobei der Schritt des Vergleichens einen Schritt des Eingebens des Zählerwerts und eines der Registerwerte in eine Komparatorschaltung umfaßt.
  9. Anwendungsspezifische integrierte Schaltung „ASIC" mit mehreren Warteschlangen (84, 86, 88, 90) in bezug auf um denselben Ausgang konkurrierende Pakete, wobei der Ausgang eine Bandbreitenkapazität aufweist, umfassend: ein Mittel zum Identifizieren einer festen Prioritätsreihenfolge unter den mehreren Warteschlangen (84, 86, 88, 90), wobei eine Warteschlange unter den Warteschlangen (84, 86, 88, 90) eine höchste Priorität aufweist und eine andere Warteschlange unter den Warteschlangen (84, 86, 88, 90) eine niedrigste Priorität aufweist; ein Mittel zum Vergeben eines Prozentsatzes (200, 202, 204, 206, 208) der Bandbreitenkapazität des Ausgangs an jede der Warteschlangen (84, 86, 88, 90); ein Mittel zum Weiterleiten von Paketen zu dem Ausgang gemäß den vergebenen Prozentsätzen; und ein Mittel zum Verteilen von einhundert Prozent einer etwaigen unbenutzten Bandbreitenkapazität an die mehreren Warteschlangen (84, 86, 88, 90) gemäß der festen Prioritätsreihenfolge dergestalt, daß die Warteschlange mit der höchsten Priorität zuerst einhundert Prozent der unbenutzten Bandbreitenkapazität angeboten bekommt und dann Warteschlangen niedriger Priorität einhundert Prozent einer etwaigen übrigen unbenutzten Bandbreite warteschlangenweise gemäß der festen Prioritätsreihenfolge von höchster Priorität zu niedrigster Priorität angeboten bekommen, bis alle Bandbreitenkapazität verteilt ist oder bis keine Pakete weiterzuleiten bleiben.
  10. ASIC nach Anspruch 9, wobei das Mittel zum Vergeben in für die Warteschlangenvermittlung spezifischen Schaltkreisen ausgebildet wird.
  11. ASIC nach Anspruch 9, wobei das Mittel zum Vergeben laufzeitprogrammierbare Register (200, 202, 204, 206, 208) enthält, die auf Registerwerte gesetzt werden, die Zeitintervalle definieren.
  12. ASIC nach Anspruch 11, wobei das Mittel zum Weiterleiten einen Taktzähler enthält, der Zählerwerte erzeugt.
  13. ASIC nach Anspruch 12, wobei das Mittel zum Weeterleiten von Paketen mehrere Komparatoren enthält, wobei jeder Komparator einen ersten Eingang zum Empfangen eines der Zählerwerte und einen zweiten Eingang zum Empfangen eines der Registerwerte aufweist.
  14. Mehrport-Switch (38) mit Eingangsports (72) zum Empfangen von Paketen, Ausgangsports (62) zum Senden von Paketen und einem Koppelfeld zum Lenken von Paketen von den Eingangsports zu den Ausgangsports, wobei der Mehrport-Switch ferner den ASIC von Anspruch 9 umfaßt.
  15. Mehrport-Switch (38) nach Anspruch 14, wobei der ASIC mit Speicher verbunden ist, der Pakete in dem Mehrport-Switch (38) speichert, die bereits durch das Koppelfeld weitergeleitet wurden.
  16. Verfahren zum Weiterleiten von Paketen variabler Länge von einem Ausgangspuffer zu einem Ausgangsport eines Mehrport-Switch, mit den folgenden Schritten: Priorisieren (150) von Ausgangswarteschlangen (84, 86, 88, 90), die Informationen speichern, die die konkurrierenden Pakete variabler Länge repräsentieren, so daß jede Ausgangswarteschlange in bezug auf die anderen der Ausgangswarteschlangen (84, 86, 88, 90) eine unterschiedliche feste Priorität aufweist; Vergeben (152) von Bandbreite des Ausgangsports unter den priorisierten Ausgangswarteschlangen (84, 86, 88, 90) dergestalt, daß die priorisierten Ausgangswarteschlangen vergebene Anteile der Bandbreite besitzen; Weiterleiten (154) von konkurrierenden Paketen variabler Länge, die durch die in den priorisierten Ausgangswarteschlangen gespeicherten Informationen repräsentiert werden, von dem Ausgangspuffer zu dem Ausgangsport gemäß den Bandbreitenvergaben; Überwachen (156) des Weiterleitens der konkurrierenden Pakete variabler Länge, um Bandbreitenvergaben zu erkennen, die durch die konkurrierenden Pakete variabler Länge verbrauchte Bandbreite übersteigen; Anbieten von einhundert Prozent etwaiger übriger Bandbreitenzuteilungen, die durch das Überwachen erkannt werden, an eine Ausgangswarteschlange der höchsten Priorität der priorisierten Ausgangswarteschlangen (84, 86, 88, 90), die ein zu dem Ausgangsport des Mehrport-Switch weiterzuleitendes Paket variabler Länge enthält; und Anbieten von einhundert Prozent etwaiger übriger Teile der übrigen Bandbreitenvergaben an Ausgangswarteschlangen niedrigerer Priorität warteschlangenweise, bis alle übrigen Teile der übrigen Bandbreitenvergaben aufgebraucht sind, wobei die übrigen Teile der übrigen Bandbreitenvergaben in Prioritätsreihenfolge von höchster Priorität zu niedrigster Priorität den priorisierten Ausgangswarteschlangen angeboten werden.
  17. Verfahren nach Anspruch 16, wobei der Schritt des Speicherns die folgenden Schritte umfaßt: Priorisieren (150) der konkurrierenden Pakete variabler Länge; und Speichern der priorisierten konkurrierenden Pakete variabler Länge in ähnlich priorisierten Warteschlangen (84, 86, 88, 90) der priorisierten Ausgangswarteschlangen.
  18. Verfahren nach Anspruch 16, wobei der Schritt des Vergebens (152) von Bandbreite einen Schritt des Setzens von Zeitintervalle repräsentierenden Registerwerten in einer anwendungsspezifischen integrierten Schaltung auf Warteschlangen spezifischer Basis umfaßt, während der Mehrport-Switch Pakete weiterleitet.
  19. Verfahren nach Anspruch 18, ferner mit einem Schritt des Benutzens einer Programmierschnittstelle zum Übersteuern des Schritts des Anbietens von übrigen Bandbreitenvergaben an die Ausgangswarteschlange der höchsten Priorität, wodurch Bandbreite auf reiner Prioritätsbasis verteilt wird.
  20. Verfahren nach Anspruch 16, ferner mit einem Schritt des Justierens eines warteschlangenspezifischen Zeitintervalls, um eine Paketlatenzkenngröße des Mehrport-Switch zu ändern.
DE69935587T 1998-05-29 1999-05-13 Verfahren und vorrichtung zur weiterleitung von paketen von einer mehrzahl konkurrierender warteschlangen zu einem ausgang Expired - Lifetime DE69935587T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/087,064 US6067301A (en) 1998-05-29 1998-05-29 Method and apparatus for forwarding packets from a plurality of contending queues to an output
PCT/US1999/010592 WO1999063712A1 (en) 1998-05-29 1999-05-13 Method and apparatus for forwarding packets from a plurality of contending queues to an output
US87064 2002-03-01

Publications (2)

Publication Number Publication Date
DE69935587D1 DE69935587D1 (de) 2007-05-03
DE69935587T2 true DE69935587T2 (de) 2007-11-29

Family

ID=22202906

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69935587T Expired - Lifetime DE69935587T2 (de) 1998-05-29 1999-05-13 Verfahren und vorrichtung zur weiterleitung von paketen von einer mehrzahl konkurrierender warteschlangen zu einem ausgang

Country Status (6)

Country Link
US (1) US6067301A (de)
EP (1) EP1080560B1 (de)
AU (1) AU746167B2 (de)
CA (1) CA2329019C (de)
DE (1) DE69935587T2 (de)
WO (1) WO1999063712A1 (de)

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407983B1 (en) 1998-02-20 2002-06-18 Adc Telecommunications, Inc. Circuit and method for shaping traffic in a virtual connection network
US6570876B1 (en) * 1998-04-01 2003-05-27 Hitachi, Ltd. Packet switch and switching method for switching variable length packets
US6359900B1 (en) * 1998-04-09 2002-03-19 Novell, Inc. Method and system for controlling access to a resource
US6252849B1 (en) * 1998-06-30 2001-06-26 Sun Microsystems, Inc. Flow control using output port buffer allocation
DE69840947D1 (de) * 1998-09-10 2009-08-13 Ibm Paketvermittlunganpassungseinrichtung für Datenpaketen mit variabler Länge
JP3765931B2 (ja) * 1998-10-15 2006-04-12 富士通株式会社 バッファ制御方法及びバッファ制御装置
US6885657B1 (en) 1998-11-30 2005-04-26 Broadcom Corporation Network telephony system
US7382736B2 (en) * 1999-01-12 2008-06-03 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
US6229795B1 (en) * 1999-01-13 2001-05-08 Qualcomm Incorporated System for allocating resources in a communication system
US7406098B2 (en) * 1999-01-13 2008-07-29 Qualcomm Incorporated Resource allocation in a communication system supporting application flows having quality of service requirements
US6519260B1 (en) * 1999-03-17 2003-02-11 Telefonaktiebolaget Lm Ericsson (Publ) Reduced delay priority for comfort noise
JP2000270023A (ja) * 1999-03-18 2000-09-29 Fujitsu Ltd Lan中継交換装置
JP3439373B2 (ja) * 1999-05-12 2003-08-25 日本電気通信システム株式会社 競合優先制御回路
WO2000076152A1 (en) * 1999-06-03 2000-12-14 Fujitsu Network Communications, Inc. Method and system for transmitting traffic in a virtual tunnel of a transmission line
US6785285B1 (en) 1999-06-03 2004-08-31 Fujitsu Network Communications, Inc. Method and system for providing broadcast channels over an emulated subnetwork
US6658006B1 (en) 1999-06-03 2003-12-02 Fujitsu Network Communications, Inc. System and method for communicating data using modified header bits to identify a port
US6665301B1 (en) * 1999-06-03 2003-12-16 Fujitsu Network Communications, Inc. Transmission slot allocation method and map for virtual tunnels in a transmission line
US6760332B1 (en) 1999-06-03 2004-07-06 Fujitsu Network Communications, Inc. ATM multicasting system and method
US6501758B1 (en) 1999-06-03 2002-12-31 Fujitsu Network Communications, Inc. Hybrid ATM/TDM transport over a common fiber ring
US6728265B1 (en) * 1999-07-30 2004-04-27 Intel Corporation Controlling frame transmission
US6721789B1 (en) * 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US6795865B1 (en) * 1999-10-08 2004-09-21 Microsoft Corporation Adaptively changing weights for fair scheduling in broadcast environments
US6940861B2 (en) * 2000-03-14 2005-09-06 General Instrument Corporation Data rate limiting
US6910133B1 (en) * 2000-04-11 2005-06-21 Cisco Technology, Inc. Reflected interrupt for hardware-based encryption
US6654811B1 (en) * 2000-04-13 2003-11-25 Nokia Inc. Backpressure arrangement in client-server environment
IL163684A0 (en) * 2000-05-31 2005-12-18 Given Imaging Ltd Measurement of electrical characteristics of tissue
US7302704B1 (en) 2000-06-16 2007-11-27 Bbn Technologies Corp Excising compromised routers from an ad-hoc network
US6678782B1 (en) * 2000-06-27 2004-01-13 International Business Machines Corporation Flow architecture for remote high-speed interface application
AU2008203424B2 (en) * 2000-07-27 2010-05-27 Extreme Networks, Inc. Voice and data wireless communications network and method
US6404772B1 (en) 2000-07-27 2002-06-11 Symbol Technologies, Inc. Voice and data wireless communications network and method
US6424657B1 (en) * 2000-08-10 2002-07-23 Verizon Communications Inc. Traffic queueing for remote terminal DSLAMs
US7801158B2 (en) * 2000-10-16 2010-09-21 Verizon Communications Inc. Congestion and thru-put visibility and isolation
US6724759B1 (en) * 2000-08-11 2004-04-20 Paion Company, Limited System, method and article of manufacture for transferring a packet from a port controller to a switch fabric in a switch fabric chipset system
US6731631B1 (en) * 2000-08-11 2004-05-04 Paion Company, Limited System, method and article of manufacture for updating a switching table in a switch fabric chipset system
US6804731B1 (en) 2000-08-11 2004-10-12 Paion Company, Limited System, method and article of manufacture for storing an incoming datagram in switch matrix in a switch fabric chipset system
US7126916B1 (en) * 2000-08-24 2006-10-24 Efficient Networks, Inc. System and method for packet bypass in a communication system
US20020154633A1 (en) * 2000-11-22 2002-10-24 Yeshik Shin Communications architecture for storage-based devices
US6956849B1 (en) * 2000-12-01 2005-10-18 Cisco Technology, Inc. Bandwidth management and connection admission control in a network
US6987732B2 (en) * 2000-12-15 2006-01-17 Tellabs San Jose, Inc. Apparatus and methods for scheduling packets in a broadband data stream
US7002980B1 (en) * 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US7002985B2 (en) * 2001-01-16 2006-02-21 Motorola, Inc. Method and apparatus for organizing and scheduling multimedia data transfers over a wireless channel
US7486686B2 (en) * 2001-02-26 2009-02-03 Vitesse Semiconductor Corporation Method and apparatus for scheduling data on a medium
US7110359B1 (en) * 2001-03-05 2006-09-19 Advanced Micro Devices, Inc. System and method for dynamically updating weights of weighted round robin in output queues
US6950396B2 (en) * 2001-03-20 2005-09-27 Seabridge Ltd. Traffic control method and system
US6978144B1 (en) * 2001-04-19 2005-12-20 Cisco Technology, Inc. Method and system for managing real-time bandwidth in a wireless network
US6956866B1 (en) * 2001-05-23 2005-10-18 Cisco Technology, Inc. Method and apparatus for collecting statistics from elements at multiple collection rates
GB2375927B (en) * 2001-05-26 2004-09-29 Cambridge Broadband Ltd Method and apparatus for communications bandwidth allocation
US7266606B2 (en) * 2001-06-29 2007-09-04 Tropic Networks Inc. Cascaded policing systems and methods
US7263063B2 (en) * 2001-07-06 2007-08-28 Sri International Per hop behavior for differentiated services in mobile ad hoc wireless networks
US7881202B2 (en) * 2002-09-25 2011-02-01 Broadcom Corporation System and method for dropping lower priority packets that are slated for wireless transmission
US7839785B2 (en) * 2001-09-27 2010-11-23 Broadcom Corporation System and method for dropping lower priority packets that are slated for transmission
US7447197B2 (en) * 2001-10-18 2008-11-04 Qlogic, Corporation System and method of providing network node services
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7317683B2 (en) * 2001-11-01 2008-01-08 International Business Machines Corporation Weighted fair queue serving plural output ports
US7187684B2 (en) * 2001-11-01 2007-03-06 International Business Machines Corporation Weighted fair queue having extended effective range
US7310345B2 (en) 2001-11-01 2007-12-18 International Business Machines Corporation Empty indicators for weighted fair queues
US7280474B2 (en) * 2001-11-01 2007-10-09 International Business Machines Corporation Weighted fair queue having adjustable scaling factor
US7103051B2 (en) * 2001-11-01 2006-09-05 International Business Machines Corporation QoS scheduler and method for implementing quality of service with aging time stamps
US6982986B2 (en) * 2001-11-01 2006-01-03 International Business Machines Corporation QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows
US7046676B2 (en) * 2001-11-01 2006-05-16 International Business Machines Corporation QoS scheduler and method for implementing quality of service with cached status array
US7453801B2 (en) * 2001-11-08 2008-11-18 Qualcomm Incorporated Admission control and resource allocation in a communication system supporting application flows having quality of service requirements
US7269198B1 (en) 2001-11-19 2007-09-11 Bbn Technologies Corp. Systems and methods for beaconing in wireless networks with low probability of detection
US7421257B1 (en) 2001-11-30 2008-09-02 Stragent, Llc Receiver scheduling in ad hoc wireless networks
US7085831B2 (en) * 2002-01-16 2006-08-01 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US7996507B2 (en) * 2002-01-16 2011-08-09 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US7245626B1 (en) 2002-01-17 2007-07-17 Juniper Networks, Inc. Systems and methods for permitting queues to oversubscribe
US7382793B1 (en) * 2002-01-17 2008-06-03 Juniper Networks, Inc. Systems and methods for determining the bandwidth used by a queue
US7684422B1 (en) * 2002-01-17 2010-03-23 Juniper Networks, Inc. Systems and methods for congestion control using random early drop at head of buffer
US7558197B1 (en) * 2002-01-17 2009-07-07 Juniper Networks, Inc. Dequeuing and congestion control systems and methods
US7257125B1 (en) 2002-01-22 2007-08-14 Marvell International Ltd. Quality of service half-duplex media access controller
EP1506644B8 (de) * 2002-03-08 2015-01-28 Intellectual Ventures I LLC Gemeinsame geteilte kommunikstionskanalverwendung mit verschiedenen dienstklassenanforderungen
US7257124B2 (en) * 2002-03-20 2007-08-14 International Business Machines Corporation Method and apparatus for improving the fairness of new attaches to a weighted fair queue in a quality of service (QoS) scheduler
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US20040003069A1 (en) * 2002-06-28 2004-01-01 Broadcom Corporation Selective early drop method and system
CA2393373A1 (en) 2002-07-15 2004-01-15 Anthony Gerkis Apparatus, system and method for the transmission of data with different qos attributes.
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7627721B2 (en) * 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US8478811B2 (en) * 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US7961723B2 (en) * 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US8176298B2 (en) * 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US7924828B2 (en) * 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
US7154902B1 (en) * 2002-10-21 2006-12-26 Force10 Networks, Inc. Epoch-based packet switching
US7304942B1 (en) 2002-11-15 2007-12-04 Cisco Technology, Inc. Methods and apparatus for maintaining statistic counters and updating a secondary counter storage via a queue for reducing or eliminating overflow of the counters
US7599287B2 (en) * 2002-11-15 2009-10-06 Cisco Technology, Inc. Tokens in token buckets maintained among primary and secondary storages
US7983239B1 (en) 2003-01-07 2011-07-19 Raytheon Bbn Technologies Corp. Systems and methods for constructing a virtual model of a multi-hop, multi-access network
US7571287B2 (en) 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US7489701B2 (en) * 2003-04-02 2009-02-10 Alcatel-Lucent Usa Inc. Customer-specific traffic shaping
US7688736B1 (en) * 2003-05-05 2010-03-30 Marvell International Ltd Network switch with quality of service flow control
US20040246902A1 (en) * 2003-06-02 2004-12-09 Weinstein Joseph J. Systems and methods for synchronizing multple copies of a database using datablase digest
US7881229B2 (en) 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
US7606927B2 (en) 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US8166204B2 (en) * 2003-08-29 2012-04-24 Raytheon Bbn Technologies Corp. Systems and methods for automatically placing nodes in an ad hoc network
US8769164B2 (en) * 2003-09-18 2014-07-01 International Business Machines Corporation Methods and apparatus for allocating bandwidth for a network processor
US7668083B1 (en) 2003-10-28 2010-02-23 Bbn Technologies Corp. Systems and methods for forwarding data in a communications network
US7369512B1 (en) 2003-11-06 2008-05-06 Bbn Technologies Corp. Systems and methods for efficient packet distribution in an ad hoc network
US7532623B2 (en) * 2004-03-24 2009-05-12 Bbn Technologies Corp. Methods for wireless mesh multicasting
US7460768B2 (en) * 2004-04-15 2008-12-02 Chris Tanner Audio-only combined DVD and CD player
US8665719B2 (en) * 2004-05-03 2014-03-04 Alcatel Lucent Variable packet-size backplanes for switching and routing systems
US7391721B1 (en) 2004-07-08 2008-06-24 Cisco Technology, Inc. Maintaining counters and updating a secondary counter storage
US7428239B1 (en) * 2004-08-26 2008-09-23 Software Site Applications, Limited Liability Company Apparatus and method for priority queuing with segmented buffers
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7685250B2 (en) * 2005-03-09 2010-03-23 Intel Corporation Techniques for providing packet rate pacing
US20060294228A1 (en) * 2005-05-16 2006-12-28 Cinnober Financial Technology Ab Systems and methods for preventing server overload
US7870265B2 (en) * 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
US8270298B2 (en) * 2005-08-26 2012-09-18 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for flow control in UMTS using information in UBS field
US8259566B2 (en) * 2005-09-20 2012-09-04 Qualcomm Incorporated Adaptive quality of service policy for dynamic networks
US9521584B2 (en) * 2005-10-17 2016-12-13 Qualcomm Incorporated Method and apparatus for managing data flow through a mesh network
CN101346634B (zh) * 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
US20070104186A1 (en) * 2005-11-04 2007-05-10 Bea Systems, Inc. System and method for a gatekeeper in a communications network
ES2376284T3 (es) 2005-12-22 2012-03-12 Electronics And Telecommunications Research Institute Procedimiento para operación de transmisión/recepción discontinua para reducir el consumo de energ�?a en un sistema celular.
US8018845B2 (en) * 2006-01-25 2011-09-13 Cisco Technology, Inc Sampling rate-limited traffic
US7697436B2 (en) * 2006-02-15 2010-04-13 Fujitsu Limited Bandwidth allocation
US8554943B1 (en) * 2006-03-31 2013-10-08 Emc Corporation Method and system for reducing packet latency in networks with both low latency and high bandwidths requirements
US20070237074A1 (en) * 2006-04-06 2007-10-11 Curry David S Configuration of congestion thresholds for a network traffic management system
US8005041B2 (en) 2006-05-08 2011-08-23 Ipwireless, Inc. Wireless communication system, apparatus for supporting data flow and method therefor
US8112525B2 (en) * 2006-05-16 2012-02-07 Oracle International Corporation Engine near cache for reducing latency in a telecommunications environment
US8001250B2 (en) * 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US8171466B2 (en) * 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8219697B2 (en) * 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US7873049B2 (en) * 2006-06-28 2011-01-18 Hitachi, Ltd. Multi-user MAC protocol for a local area network
US20080043766A1 (en) * 2006-08-21 2008-02-21 Daniel Measurement And Control, Inc. Method and System of Message Prioritization in a Control System
US20080052397A1 (en) * 2006-08-24 2008-02-28 Ramanathan Venkataraman Future locking of resources
US8259688B2 (en) 2006-09-01 2012-09-04 Wi-Lan Inc. Pre-allocated random access identifiers
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US20080147551A1 (en) * 2006-12-13 2008-06-19 Bea Systems, Inc. System and Method for a SIP Server with Online Charging
US9667430B2 (en) * 2006-12-13 2017-05-30 Oracle International Corporation System and method for a SIP server with offline charging
US8234425B1 (en) 2007-06-27 2012-07-31 Marvell International Ltd. Arbiter module
US7949817B1 (en) 2007-07-31 2011-05-24 Marvell International Ltd. Adaptive bus profiler
US8160085B2 (en) * 2007-12-21 2012-04-17 Juniper Networks, Inc. System and method for dynamically allocating buffers based on priority levels
US9596324B2 (en) * 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US7895353B2 (en) * 2008-02-29 2011-02-22 Oracle International Corporation System and method for providing throttling, prioritization and traffic shaping during request processing via a budget service
US8131915B1 (en) 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US8683085B1 (en) 2008-05-06 2014-03-25 Marvell International Ltd. USB interface configurable for host or device mode
KR100947618B1 (ko) * 2008-08-27 2010-03-15 한국전자통신연구원 데이터 처리 시스템
US8423710B1 (en) 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US8139504B2 (en) * 2009-04-07 2012-03-20 Raytheon Bbn Technologies Corp. System, device, and method for unifying differently-routed networks using virtual topology representations
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
US9098383B1 (en) * 2009-09-23 2015-08-04 Nvidia Corporation Consolidated crossbar that supports a multitude of traffic types
US8688922B1 (en) 2010-03-11 2014-04-01 Marvell International Ltd Hardware-supported memory management
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
US20120278514A1 (en) * 2011-04-26 2012-11-01 Brocade Communications Systems, Inc. Systems and Methods for Notification of Quality of Service Violation
US8867560B2 (en) * 2012-07-30 2014-10-21 Cisco Technology, Inc. Managing crossbar oversubscription
US8819309B1 (en) 2013-06-14 2014-08-26 Arm Limited Low latency bypass buffer
US10218632B2 (en) 2016-03-04 2019-02-26 International Communications Corp. Intelligent control and management matrix, apparatus, system, and a method thereof
US10069755B1 (en) 2016-07-01 2018-09-04 Mastercard International Incorporated Systems and methods for priority-based allocation of network bandwidth
US11074211B2 (en) * 2018-06-12 2021-07-27 Intel Corporation Management of priority of data transmission on a bus
US20240098155A1 (en) * 2021-01-19 2024-03-21 Dejero Labs Inc. Systems and methods for push-based data communications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231633A (en) * 1990-07-11 1993-07-27 Codex Corporation Method for prioritizing, selectively discarding, and multiplexing differing traffic type fast packets
US5426635A (en) * 1993-09-08 1995-06-20 At&T Corp. Method for adaptive control of windows and rates in networks
US5425029A (en) * 1993-09-20 1995-06-13 Motorola, Inc. Fast packet adaptation method for ensuring packet portability across diversified switching type networks
DE69328380T2 (de) * 1993-12-31 2000-10-12 Ibm Verfahren und vorrichtung zur vermittlung von mehreren verkehrsklassen
US5956342A (en) * 1995-07-19 1999-09-21 Fujitsu Network Communications, Inc. Priority arbitration for point-to-point and multipoint transmission
US5870629A (en) * 1996-03-21 1999-02-09 Bay Networks, Inc. System for servicing plurality of queues responsive to queue service policy on a service sequence ordered to provide uniform and minimal queue interservice times

Also Published As

Publication number Publication date
EP1080560A1 (de) 2001-03-07
EP1080560A4 (de) 2005-04-06
CA2329019A1 (en) 1999-12-09
US6067301A (en) 2000-05-23
WO1999063712A1 (en) 1999-12-09
CA2329019C (en) 2003-09-23
AU746167B2 (en) 2002-04-18
DE69935587D1 (de) 2007-05-03
AU3988999A (en) 1999-12-20
EP1080560B1 (de) 2007-03-21

Similar Documents

Publication Publication Date Title
DE69935587T2 (de) Verfahren und vorrichtung zur weiterleitung von paketen von einer mehrzahl konkurrierender warteschlangen zu einem ausgang
DE69533695T2 (de) Busarbitrierungsverfahren für fernmeldevermittlung
DE69636825T2 (de) Verzögerungsminimalisierungssystem mit garantierter Bandbreite für Echtzeitverkehr
DE69530641T2 (de) Verkehrssteuerungssystem mit verteilter Rate-Berechnung und verbindungsgestützter Flusssteuerung
DE60128413T2 (de) Gekennzeichneter Prioritätswarteschlangescheduler
DE69635880T2 (de) Anlage und Methode zur Übertragung von Paketen, geeignet für eine grosse Anzahl von Eingangstoren
DE10350504B4 (de) Verfahren und Vorrichtung zum Festlegen bzw. Zuteilen einer verfügbaren Verknüpfungsbandbreite zwischen paketvermittelten Datenflüssen
DE60112178T2 (de) Verfahren und Gerät zur Ablaufsteuerung in Echtzeit in Satelliten Kommunikationsnetzen
DE69735333T2 (de) Digitales Netzwerk mit Gruppiervorrichtung für virtuelle Nachrichten-Übertragungspfade mit ähnlicher Übertragungsgeschwindigkeit zur Erleichterung eines effizienten Übertragungsablaufs
DE69817756T2 (de) ATM Zellenübertragungsplanung
DE69937862T2 (de) Bandbreitensteuerung mit zwei Komponenten, zur Anwendung in digitalen Kommunikationssystemen mit mehreren Klassen
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE60113967T2 (de) Mehrstufige ablaufsteuerungsverfahren zum paketmultiplexen in einem kommunikationsnetzwerk
DE69818846T2 (de) Paketnetzwerk
DE69835781T2 (de) Vorrichtung mit einem gewichteten gerechten Warteschlangenverfahren und mit adaptiver Umverteilung der Bandbreite
DE60110760T2 (de) Auslese-ablaufsteuerung für nicht aufeinander-folgende daten
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
DE60132437T2 (de) Verfahren und einrichtung zur steuerung von informationen unter verwendung von kalendern
DE102007038964A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Netzwerkdaten
DE19929516B4 (de) Hochgeschwindigkeits-Netzwerkschalter
DE69738386T2 (de) Verbesserungen in oder sich beziehend auf eine ATM-Vermittlungsstelle
DE60110934T2 (de) Modularer und skalierbarer switch und verfahren zum verteilen schneller ethernet-datenrahmen
DE60028903T2 (de) Verfahren und Vorrichtung zur Kommunikationskontrolle
EP1433352B1 (de) Verteilte übermittlung von verkehrsströmen in kommunikationsnetzen
DE60304580T2 (de) Schalteinheit mit skalierbarer und "QOS"-berücksichtigender Datenflusssteuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition