DE60027639T2 - Buffersystem mit Überlastregelung mit verbindungsweiser Verkehrsverwaltung - Google Patents

Buffersystem mit Überlastregelung mit verbindungsweiser Verkehrsverwaltung Download PDF

Info

Publication number
DE60027639T2
DE60027639T2 DE60027639T DE60027639T DE60027639T2 DE 60027639 T2 DE60027639 T2 DE 60027639T2 DE 60027639 T DE60027639 T DE 60027639T DE 60027639 T DE60027639 T DE 60027639T DE 60027639 T2 DE60027639 T2 DE 60027639T2
Authority
DE
Germany
Prior art keywords
memory
level
partition
size
count
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
DE60027639T
Other languages
English (en)
Other versions
DE60027639D1 (de
Inventor
Marie-Claude Hull Quebec Bonneau
Tom Ottawa Ontario K1Y 4B9 Davis
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.)
Nokia Canada Inc
Original Assignee
Alcatel Canada 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 Alcatel Canada Inc filed Critical Alcatel Canada Inc
Publication of DE60027639D1 publication Critical patent/DE60027639D1/de
Application granted granted Critical
Publication of DE60027639T2 publication Critical patent/DE60027639T2/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
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • 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/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft ein Verfahren und ein System zum Puffern von Datenpaketen an einem Wartepunkt in einer digitalen Kommunikationseinrichtung, wie einem Netzknoten.
  • Allgemeiner Stand der Technik
  • Um eine statistische Multiplexierung in einer digitalen Kommunikationseinrichtung zum Speichern und Weiterleiten auszuführen, reihen solche Einrichtungen Datenpakete für eine nachfolgende Verarbeitung oder Übertragung typischerweise in einer gemeinsamen Speicherressource, wie einem Speicherpuffer, in eine Warteschlange ein. An einem solchen Wartepunkt, kann die gemeinsame Speicherressource von Verkehrsströmen, die mit verschiedener Qualität von Diensteklassen, Schnittstellenports und vereinigten Pools oder Gruppen von Verkehrsströmen verbunden sind, gemeinsam genutzt werden. Bei Verkehr mit solch vielen Facetten setzen solche Kommunikationseinrichtung häufig irgendeine Art von Überlastregelungssystem ein, um sicherzustellen, dass die gemeinsame Speicherressource unter den verschiedenen Verkehrsströmen "fair" zugeteilt wird.
  • Bei einem Kommunikationssystem mit asynchronem Übertragungsmodus (ATM) ist beispielsweise der elementarste Verkehrsstrom eine virtuelle Verbindung, die zu einer Anzahl von verschiedenen Arten der Qualität von Dienstekategorien gehören kann. Die Arbeitsgruppe ATM Forum Traffic Management hat fünf (5) Verkehrsklassen oder Dienstekategorien definiert, die sich durch die Parametersätze unterscheiden, die Garantien für Quellenverhalten und Dienstequalität (QoS) beschreiben. Diese Kategorien beinhalten Dienstekategorien mit konstanter Bitrate (CBR), in Echtzeit variabler Bitrate (rtVBR), nicht in Echtzeit variabler Bitrate (nrtVBR), verfügbarer Bitrate (ABR) und nicht spezifizierter Bitrate. Die Dienstekategorien mit ABR und UBR sollen Datenverkehr tragen, der keine spezifischen Zellenverlust- oder Verzögerungsgarantien aufweisen. Ein Dienst mit UBR spezifiziert keine mit dem Verkehr zusammenhängende Garantien, während Dienste mit ABR versuchen, eine minimale nutzbare Bandbreite bereitzustellen, die als minimale Zellenrate (MCR) bezeichnet wird. Die Arbeitsgruppe ATM Forum Traffic Management und die Internationale Telekommunikationsvereinigung (ITU) schlugen auch eine neue Dienstekategrie vor, die als garantierte Rahmenrate (GFR) bezeichnet wird. Die GFR soll einen einen Dienst ähnlich der UBR bereitstellen, aber mit einer garantierten minimalen Bandbreite auf einer Rahmenebene, die durch eine MCR-Garantie auf Zellenniveau abgebildet wird.
  • Bei einer ATM-Einrichtung, wie einem Netzumschalter, kann der Speicherpuffer an jedem gegebenen Wartepunkt zu einer Mehrzahl von Warteschlangen organisiert werden, die Datenpakete als Aggregate für zu einer der Servicekategorien gehörigen VCs enthalten. Alternativ kann jede Warteschlange einer bestimmten VC zugeordnet sein. Ungeachtet der Struktur der Warteschlangenbildung stellt jede VC einen Verkehrsstrom dar und Gruppen von VCs, die über eine oder mehrere Warteschlagen gehen, können als "Verkehrsstromsätze" betrachtet werden. Zum Beispiel stellen zu einer Bestimmten Diensteklasse oder Eingangs/Ausgansg-Port gehörige VCs eine Verkehrsstrommenge dar. Wenn der Speicherpuffer überlastet wird, kann es wünschenswert sein, seine Nutzung unter den Servicekategorien und unter verschiedenen Verkehrsstromsätzen und deren individuellen Verkehrsströmen zuzuteilen. Insbesondere in einem Netz, in dem Verbindungen mit GFR und ABR um Pufferplatz wetteifern, kann es wünschenswert sein, eine faire Verteilung des Speicherpuffers zwischen diesen Dienstekategorien und zwischen den einzelnen Verkehrsströmen oder -gruppen davon zu erreichen.
  • Es gibt eine Anzahl von Schemata der fairen Pufferzuweisung (FBA). Ein Schema zum annehmbaren Zuweisen von Pufferplatz ist es, Pakete auf der basierend auf einer Überwachung selektiv zu verwerfen. Als Beispiel dieses Schemas in einer ATM-Umgebung wird ein Paket markiert (d.h. sein CLP-Feld wird auf 1 gesetzt), wenn die entsprechende Verbindung ihre MCR übersteigt, und wenn eine Überlastung auftritt, wird Pakten, bei denen eine Feld für die Zellenverlustpriorität (CLP) auf Null gesetzt ist, eine Verwerfpriorität gegenüber Paketen gegeben, deren CLP-Feld auf Eins gesetzt ist. Siehe ATM Forum Technical Comittee, (Lebensliste der Arbeitsgruppe Traffic Management)", ATM Forum, btd-tm-01.02, Juli 1998. Dieses Schema schaffte es jedoch nicht, ungenutzten Pufferplatz unter Verbindungen fair zu verteilen.
  • Ein weiteres bekanntes Schema basiert auf mehrfachen Pufferfüllstandsschwellen, wobei ein gemeinsam genutzter Puffer mit diesen Schwellen partitioniert wird. Bei diesem Schema tritt ein Verwerfen von Paketen auf, wenn die Belegung der Warteschlangen eine der Schwellen überschreitet und die Verbindung ihren fairen Anteil am Puffer überstiegen hat. Der faire Pufferanteil einer Verbindung wird auf der Basis des MCR-Wertes der Verbindung und der Summe der MCRs aller aktiven Verbindungen berechnet, die den gemeinsam genutzten Puffer nutzen. Diese Technik stellt jedoch keinen Anteil des Puffers proportional zur MCR bereit, weil freier (d.h. zugewiesener, aber nicht genutzter) Puffer, der als
    Figure 00030001
    definiert werden kann, wobei Qs der Pufferfüllstand, Qi die Puffersegmentzählung für eine Verbindung i, und
    Figure 00030002
    der faire Anteil des Puffers ist, der der Verbindung zugewiesen ist, unter den Verbindungen zufällig verteilt wird.
  • Ein weiteres Schema für eine faire Zuweisung von Pufferplatz über selektives Verwerfen basiert auf dynamischen Schwellen pro VC. Siehe Choudhury, A. K., and Hahne, E. L., "Dynamic Queue Length Threshold in a Shared Memory ATM Switch", Proceedings of I. E. E. E. Infocom, 96, März 1996, Seiten 679 bis 686. Bei diesem Schema wird die zu jeder VC gehörige Schwelle basierend auf dem ungenutzten Pufferplatz und dem MCR-Wert einer Verbindung periodisch erweitert. Ein Verwerfen von Paketen tritt auf, wenn die Belegung der VC größer als die Schwelle der VC ist. Dieses Verfahren reserviert Pufferspeicher, um einen Überlauf zu verhindern. Die Menge an reserviertem Pufferplatz hängt von der Anzahl aktiver Verbindungen ab. Wenn es nur eine aktive Verbindung gibt, wird der Puffer nicht vollständig genutzt, d.h. eine gemeinsame Nutzung des gesamten Puffers ist nicht gestattet.
  • Die WO 97/43869 offenbart ein Verfahren für die gemeinsame Nutzung eines Puffers, um ein übermäßiges Abonnieren eines gemeinsamen Puffers zu verwalten. Die WO 97/43869 verwendet kein wirklich hierarchisches Modell. Der Puffer wird nur innerhalb von Kanälen der gleichen Ebene geteilt, die Verkehrsströmen des gleichen Niveaus zugewiesen sind. Die Größen der Pufferanteile, die verschiedenen Strömen zugewiesen werden, werden dynamisch berechnet. Das Berechnungsverfahren verwendet eine Nachschlagetabelle (LUT), die einen Skalierungsfaktor bestimmt, der auf die Anteilgröße angewendet wird, aber nur, wenn eine Überlastung auftritt. Wenn es keine Überlast gibt, wird der Speicher unter den wetteifernden Nutzern basierend auf gegebenen konstanten Gewichten gemeinsam genutzt, wie in der ersten Zeile der LUT (Seite 9) zu sehen ist. Dies verbietet eine Zuweisung des gesamten Puffers.
  • Die US 5546389 offenbart eine gemeinsame Nutzung eines Pufferspeichers unter Prioritätsklassen. Ein Verfahren verwendet dynamisch geregelte Schwellen. Diese Schwellen werden berechnet, um eine gegebene Verlustwahrscheinlichkeit für die Klasse mit der höchsten Priorität aufrechtzuerhalten, indem die Schwellen von Klassen mit niedrigerer Priorität entsprechend eingestellt/verringert werden. Dieses Verfahren ist dafür bestimmt, eine Zuweisung innerhalb von Nutzern mit verschiedenen Prioritätsniveaus zu verwalten. Die Berechnung der Schwelle steht nicht mit einer Überlastung des Puffers in Zusammenhang und überwacht nicht einen solchen Belegungsindex für den Puffer über die Zeit. Sie betrachtet nicht eine Gesamtbelegung des Puffers, um die Schwellen für jeden Teilpuffer zu berechnen. Das Problem ist hier anders. Die optimale Nutzung eines Puffers wird nicht angesprochen, aber statt dessen versucht das Verfahren, eine gegebene Qualität zu erreichen/aufrechtzuerhalten – wenigstens für die Ebene mit der höchsten Priorität. In dieser Anmeldung gibt es kein Risiko oder Problem, das mit einer übermäßigen Abonnierung verbunden ist. Ein solches Problem wird nicht angesprochen.
  • Choudhury et al. offenbart in "Dynamic queue length thresholds for shared-memory packet switches" (IEEE/ACM Transactions on Networking, IEEE Bd. 6, Nr. 2, S. 130–140, 1. April 1998) die Implementierung einer gemeinsamen Nutzung eines Puffers basierend auf entweder statischen Schwellen (ST), zurückgestellten (PO) oder dynamischen Schwellen (DT). Er zielt darauf, das Problem zu lösen, einen Mechanismus für die gemeinsame Nutzung eines Puffers zu haben, der die Einfachheit von ST-Zugängen mit der Anpassungsfähigkeit von solchen mit PO bietet. Er offenbart ein DT-Verfahren, bei für jede Warteschlange ihre eigenen Schwelle zu jedem Zeitpunkt proportional zum ungenutzten Platz im Puffer berechnet wird. Dies ist ein gewichteter Zugang und er trägt immer dazu bei, ungenutzte Ressourcen unter verschiedenen Warteschlangen fair zu teilen. Dieser Zugang, wie er in der Beschreibung der Anmeldung erläutert wird, trifft auf die gleiche Einschränkung, dass jede Warteschlange ihren Anteil erhält, sogar wenn sie ihn nicht benötigt. Dies führt zur Unmöglichkeit einer gemeinsamen Nutzung des gesamten Puffers. Dies taucht in dem genannten Dokument, Seite 2, auf, wo zu lesen ist: "das DT-Verfahren hält bewusst eine kleine Menge an Puffersplatz in Reserve".
  • Derselbe Autor offenbart in "Dynamic queue length thresholds for multipriority traffic" (Teletraffic science and engineering, Bd. 2A, 22. Juni 1997, S. 561–570) auch eine Erweiterung des vorhergehenden DT-Verfahrens auf Klassen mit verschiedenen Verlustwahrscheinlichkeiten. Das Hauptprinzip bleibt das gleiche mit den gleichen Nachteilen.
  • Der oben genannte Stand der Technik verteilt ungenutzten Pufferplatz nicht fair unter Verbindungen oder Verkehrsstromgruppen und stellt insbesondere keine zur MCR proportionale annehmbare Anteilsverteilung des Puffers bereit. Einige FBA-Schemata aus dem Stand der Technik sorgen auch nicht für eine gemeinsame Nutzung des gesamten Puffers. Ein weiterer Nachteil bei einigen FBA-Schemata aus dem Stand der Technik ist die Tatsache, dass das Thema mehrere Verkehrsstromgruppen, die um dieselbe Pufferressource wetteifern, nicht angesprochen wird. Die Erfindung strebt an, einige oder alle dieser und weiterer Einschränkungen des Standes der Technik zu überwinden oder beseitigen.
  • Kurzdarstellung der Erfindung
  • Ein Aspekt der Erfindung betrifft ein Verfahren zur Partitionierung eines Speicherpuffers. Das Verfahren schließt das Definieren einer Hierarchie von Speicherpartitionen ein, einschließlich wenigstens einer oberen Ebene und einer unteren Ebene, wobei eine nicht zur unteren Ebene gehörende Speicherpartition aus einer oder mehreren Tochterspeicherpartitionen besteht. Die Größe jeder Speicherpartition der oberen Ebene wird bereitgestellt und eine nominelle Partitionsgröße für die Tochterpartitionen einer gegebenen nicht zur unteren Ebene gehörenden Speicherpartition wird basierend auf der Überlastung der gegebenen Speicherpartition dynamisch berechnet. Die Größe jeder Tochterspeicherpartition wird als gewichtete Menge ihrer nominellen Partitionsgröße dynamisch berechnet. Diese Schritte werden iteriert, um die Größe jeder Speicherpartition auf jeder Ebene der Hierarchie dynamisch zu bestimmen. Die Speicherpartitionen auf der untersten Ebene der Hierarchie stellen den Platz dar, der (einzelnen oder angehäuften) Verkehrsströmen zugewiesen wird, und die Größe der Partition auf jeder Ebene stellt eine Schwelle für die Speicherbelegung für den Verkehrsstrom dar.
  • Die Speicherpartitionen sind vorzugsweise "weich" im Gegensatz zu "harten" Partitionen, dadurch, dass wenn der von den zu einer gegebenen Partition gehörigen Paketen belegte Speicherplatz die Größe der Partition übersteigt, dann zu dieser Partition gehörige eingehende Pakete nicht automatisch verworfen werden. In den hier beschriebenen Ausführungsformen stellt jede Speicherpartition Pufferplatz dar, der einer Gruppe oder einer Menge aus einem oder mehreren Verkehrströmen auf verschiedenen Ebenen der Granularität zugewiesen wird. Zum Beispiel kann eine Speicherpartition der dritten Ebene bezüglich aller zu einem bestimmten Ausgangsport gehörigen Verkehrströme bereitgestellt sein und kann eine Speicherpartition der zweiten Ebene zu einer Untermenge jener Verkehrsströme gehören, die zu einer bestimmten Dienstekategorie gehören. Daher kann die Größe einer gegebenen Partition als Ziel-Speicherbelegungsgröße für die Gruppe von Verkehrsströmen betrachtet werden, die der gegebenen Speicherpartition entsprechen. Auf der untersten Ebene der Hierarchie wirkt die Partitionsgröße jedoch als Schwelle für die Menge an Speicher, die von einem (einzelnen oder angehäuften) Verkehrsstrom belegt werden kann. Wenn diese Schwelle überschritten wird, wird das Verwerfen von Paketen ermöglicht. Auf diese Weise sickert eine angehäufte Überlastung auf höheren Ebenen durch die Hierarchie nach unten, um die Speicherbelegungsschwellen für einzelne Verkehrsströme zu bewirken. Das Nettoergebnis ist die faire Verteilung von Pufferplatz unter Gruppen von Verkehrsströmen und deren einzelnen Mitgliedern.
  • Ein weiterer Aspekt der Erfindung betrifft ein Verfahren zum Puffern von Datenpaketen. Das Verfahren umfasst: (a) Definieren einer Hierarchie von Verkehrsstrommengen, die wenigstens eine obere Ebene und eine untere Ebene beinhaltet, wobei jede nicht zur unteren Ebene gehörende Verkehrsstrommenge eine oder mehrere Verkehrsstromuntermenge umfasst; (b) Bereitstellen einer Ziel-Speicherbelegungsgröße für jede Verkehrsstrommenge der oberen Ebene; (c) dynamisches Bestimmen einer Ziel-Speicherbelegungsgröße für jede Verkehrsstrommenge, die eine Elternverkehrsstrommenge aufweist, basierend auf einer Überlastung der Elternverkehrsstrommenge; (d) Messen der tatsächlichen Menge an Speicher, der von den zu jedem Verkehrsstrom der unteren Ebene gehörigen Paketen belegt ist; und (e) Ermöglichen des Verwerfens von zu einer gegebenen Verkehrsstrommenge der unteren Ebene gehörigen Paketen in dem Fall, in dem die tatsächliche Speicherbelegungsgröße des entsprechenden Verkehrsstrom der unteren Ebene dessen Ziel-Speicherbelegungsgröße überschreitet.
  • In den hier beschriebenen Ausführungsformen wird eine Ziel-Speicherbelegungsgröße für eine gegebene Verkehrsstrommenge vorzugsweise berechnet, indem eine nominelle Ziel-Belegungsgröße für die Tochterverkehrsstrommengen eines gemeinsamen Elters berechnet wird. Die Ziel-Speicherbelegungsgröße für jede solche Tochterverkehrsstrommenge wird dann auf eine gewichtete Menge an nomineller Ziel-Belegungsgröße eingestellt. Die nominelle Ziel-Belegungsgröße für eine gegebene Gruppe von Tochterverkehrsstrommengen ändert sich vorzugsweise in Übereinstimmung mit einer vorher spezifizierten Funktion in Antwort auf die Überlastung ihrer gemeinsamen Elternverkehrsstrommenge. Zum Beispiel setzen die hier beschriebenen Ausführungsformen geometrische und fallende Exponentialfunktionen zur Berechnung der nominellen Ziel-Belegung basierend auf der Überlastung ein, die als eine Disparität zwischen der Ziel- und der gemessenen Speicherbelegungsgröße einer Elternverkehrsstrommenge definiert ist.
  • In den offenbarten Ausführungsformen ist die Erfindung im Kontext eines ATM-Kommunikationssystems implementiert. In diesen Ausführungsformen wird der in Schritt (e) angegebene Vergleich vor oder bei Empfang der ersten Zelle eines Rahmens der ATM-Anpassungsebene 5 (AAL5) ausgeführt, um ein frühes Verwerfen von Paketen entsprechend dem Ergebnis des Vergleichs zu bewirken.
  • Das Puffersystem der Erfindung skaliert gut zu große Systeme, die viele hierarchische Ebenen einsetzen. Dies ist so, weil es relativ wenige zu jeder hierarchischen Ebene gehörige Zustandsvariablen gibt. Außerdem können die meisten Berechnungen im Hintergrund ausgeführt werden und können Nachschlagetabellen verwendet werden, wodurch die Verarbeitungsanforderungen für die zeitkritische Ankunft von Paketen minimiert werden. Das Puffersystem ermöglicht die gemeinsame Nutzung des gesamten Puffers, wie als Beispiel unten ausführlicher erörtert wird.
  • Kurze Beschreibung der Zeichnungen
  • Das vorhergehende und weitere Aspekte der Erfindung werden aus der folgenden Beschreibung spezieller Ausführungsformen davon und den beigefügten Zeichnungen deutlicher, die nur als Beispiel die Prinzipien der Erfindung darstellen. In den Zeichnungen, in denen gleiche Elemente gleiche Bezugszahlen aufweisen (und in denen einzelne Elemente eindeutige alphabetische Beifügungen tragen), ist:
  • 1 ein Systemblockdiagramm einer herkömmlichen Umschalterarchitektur, die verschiedene Wartepunkte darin darstellt;
  • 2 ein Systemblockdiagramm eines Puffersystems gemäß einer ersten Ausführungsform der Erfindung, das an einem der in 1 gezeigten Wartepunkte eingesetzt wird;
  • 3 ein Venn-Diagramm, das zeigt, wie Speicher in der ersten Ausführungsform hierarchisch partitioniert wird;
  • 4 ein Diagramm, das die hierarchische Ziegel-Partitionierung des Speichers in der ersten Ausführungsform in Baumform zeigt;
  • 5 ein Systemblockdiagramm eines Puffersystems gemäß einer zweiten Ausführungsform der Erfindung;
  • 6 ein Diagramm, das in Baumform zeigt, wie der Speicher in der zweiten Ausführungsform hierarchisch paritioniert ist;
  • 7 ein Diagramm, das in Baumform einen alternativen Zugang zur hierarchischen Partitionierung des Speichers in der zweiten Ausführungsform zeigt;
  • 8 ein Systemblockdiagramm eines Puffersystems gemäß einer dritten Ausführungsform der Erfindung;
  • 9 ein Hardware-Blockdiagramm eines Abschnitts des Puffersystems der dritten Ausführungsform; und
  • 10 ein Diagramm, das in Baumform zeigt, wie der Speicher der dritten Ausführungsform hierarchisch paritioniert ist.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • 1 ist ein Diagramm der Architektur eines herkömmlichen Netzumschalters oder -knotens 9, wovon ein Beispiel der 36170 (Warenzeichen) ATM-Umschalter ist, der von Newbridge Networks Corporation, Kanata, Ontario, Kanada, hergestellt wird. Der Knoten 9 umfasst eine Vielzahl von Eingangs- und Ausgangsleitungskarten 11A und 11B zum Anschluss an das Netz (nicht gezeigt) über physikalische Anschlussports. Die Eingangsleitungskarten 11A sind so konfiguriert, dass sie Paketverkehr vom Netzwerk über Eingangsports 19 empfangen und Pakete über Ausgangsports 20 zu einem Umschaltkern 13 übertragen. Der Umschaltkern 13 leitet, wie in der Technik bekannt, jedes Paket zu den geeigneten Ausgangsleitungskarten 11B. Diese Leitungskarten sind so konfiguriert, dass sie Paketverkehr vom Umschaltkern 13 über Eingangsports 19 empfangen und Pakete über Ausgangsports 20 zum Netz übertragen.
  • Die Leitungskarten 11A und 11B sowie der Umschaltkern 13 sind "Speicher- und Weitergabe-"Einrichtungen und bieten somit einen Punkt, QP, im Knoten 9, an dem Pakete in einem Speicher oder Puffer für eine nachfolgende Verarbeitung durch die Einrichtung in Warteschlangen eingereiht werden (nachfolgend "Wartepunkt"). An jedem Wartepunkt ist ein Pufferverwaltungssystem als Teil der Speicher- und Weiterleitungsfunktionalität bereitgestellt.
  • 2 zeigt ein Beispiel eines Pufferverwaltungssystems 10, das in der Ausgangsleitungskarte 11B eingesetzt wird. Das System 10 umfasst eine gemeinsame Speicherressource, wie einen physikalischen Speicher 12, von dem Teile, wie nachfolgend erörtert, verschiedenen Trabanten oder logischen Verkehrsströmen, wie VCs, 25 zugewiesen werden, die von einem angehäuften Eingangsstrom 18 getragen oder auf ihm multiplexed werden. Eine Steuerung, wie das Warteschlangenverwaltungsmodul (QMM) 24 organisiert und verwaltet den Speicher 12 gemäß einem ausgewählten Warteschema. In der dargestellten Ausführungsform setzt das QMM 24 beispielsweise ein Schema der angehäuften Warteschlangenbildung ein, das auf Diensteklasse und Ausgangsport basiert. Insbesondere organisiert das QMM 24 den Speicher 12 zu mehrfachen Mengen 15 logischer Warteschlangen 17. In jeder Menge 15 gibt es vorzugsweise eine Warteschlange hinsichtlich jeder Diensteklasse des Kommunikationsprotokolls. Bei Anwendung auf ATM-Kommunikationen kann zum Beispiel jede Menge 15 sechs (6) Warteschlangen 17 hinsichtlich der Dienstekategorien CBR, rtVBR, nrtVBT, ABR, UBR und GFR umfassen. Alternativ können die zu zwei oder mehreren Dienstekategorien gehörigen Pakete in einer gemeinsamen Warteschlange gespeichert werden, in welchem Fall es ein geringeres als ein 1:1-Verhältnis zwischen Warteschlange und Dienstekategorie geben kann. Auf jeden Fall entspricht die Anzahl von Mengen 15 vorzugsweise der Anzahl von Ausgangsports 20 der Leitungskarte 11B, wobei jede Menge von Warteschlangen Pakete enthält, die für den entsprechenden Ausgangsport bestimmt sind.
  • Folglich entscheidet das QMM 24, wenn der Eingangsport 19 die Pakete des angehäuften Eingangsstroms 18 empfängt, basierend auf bestimmten Kriterien, die unten ausführlicher beschrieben sind, ob ein gegebenes Paket gespeichert oder verworfen werden soll. Wenn ein Paket gespeichert werden soll, reserviert das QMM 24 die geeignete Menge an Speicher, ordnet jedes Paket der geeigneten logischen Warteschlange 17 zu und speichert das Paket im Speicher 12. Beim dargestellten Umschalter 36170 (Warenzeichen) basiert die Funktion des Anfügens eines eingehenden Paketes an eine gegebene logische Warteschlange 17 teilweise auf Kopf- und Adressinformation, die vom Paket getragen wird, und gespeicherter Information über die Verbindungskonfiguration, aber es ist selbstverständlich, dass andere Umschalter verschiedene andere Mechanismen einsetzen können, um diese Fähigkeit bereitzustellen. Entscheidungseinrichtungen (arbiters) 22 multiplexieren jeweils Pakete von den logischen Warteschlangen auf ihre entsprechenden Ausgangsports 20 entsprechend einem ausgewählten Diensteplanungsschema, wie dem gewichteten fairen Einreihen in Warteschlangen (WFQ). Wenn eine Warteschlange/Paket von einer Entscheidungseinrichtung 22 bedient wird, wird der entsprechende Speicherblock frei gemacht, wird dem QMM 24 gemeldet, welche Warteschlange bedient wurde, und wird das Paket an den entsprechenden Ausgangsport 20 für eine Übertragung über einen angehäuften Ausgangsstrom 21 geliefert.
  • Die Venn- und Baumdiagramme von 3 und 4 zeigen, wie der physikalische Speicher in hierarchischer Weise in Übereinstimmung mit dem Schema zum Einreihen in Warteschlangen, das unter Bezugnahme auf 2 beschrieben wurde, partitioniert sein kann. In diesem Beispiel gibt es vier Ebenen in der hierarchischen Partitionierung des Speichers 12. Auf einer ersten oder oberen Ebene wird der Speicher logisch zu einem gemeinsam genutzten Pufferplatz 14 partitioniert, der eine Untermenge (weniger als oder gleich) der Menge des festen physikalischen Speichers 12 einnimmt. Der überschüssige Speicherplatz über dem gemeinsam genutzten Pufferplatz stellt freien, nicht zugewiesenen Platz dar. Auf einer zweiten Ebene wird der dem gemeinsamen Puffer 14 zugewiesener Speicherplatz unter den verschiedenen Ausgangsports 20 der Leitungskarte 11B partitioniert. Auf einer dritten Ebene wird der jedem Ausgangsport zugewiesene Speicherplatz weiter zu Diensteklassen partitioniert. Auf einer vierten oder unteren Ebene wird der jeder Diensteklasse zugewiesene Speicherplatz unter einzelnen Verkehrsströmen weiter partitioniert. Im Falle von ATM-Kommunikationen können diese Verkehrsströme einzelne VCs sein, wie gezeigt, wie Schaltungen für virtuelle Kanäle (VCC) und Schaltungen für virtuelle Wege (VPC), aber bei anderen Arten von Kommunikationssystemen bilden weitere Arten von logischen Paketströmen Verkehrsströme. Zum Beispiel sind bei Netzen mit Internetprotokoll (IP) nach Kennzeichnung umgeschaltete Wege eine Form von Verkehrsstrom. Ebenso bilden logische Paketströme, die sich aus den Weiterleitungsregeln eines Paketklassifizierers wirksam Verkehrsströme.
  • Im Allgemeinen können auf jeder Ebene der hierarchischen Partitionierung des Speichers 12 eine oder mehrere Speicherpartitionen bestehen, wobei jede solche Partition weiter in eine oder mehrere Partitionen unterteilt ist, die hier einzeln als "Tochter"partition bezeichnet wird, die sich auf einer direkt darunterliegenden Ebene der Hierarchie befindet. Die Ausnahme davon tritt natürlich auf der untersten Ebene der Hierarchie auf, bei der Speicherpartitionen nicht weiter unterteilt sind. Ebenso weist eine Partition, die sich auf der obersten Ebene der Hierarchie befindet, keine "Eltern"partition auf.
  • Bei der vorliegenden Anmeldung (d.h. Kommunikationssystemen) gibt es auch eine entsprechende Verkehrsstromhierarchie, da jede Speicherpartition (z.B. gemeinsam genutzter Puffer, Ports, Klassen und VCs) Speicherplatz darstellt, der theoretisch einer Gruppe oder Menge von einem oder mehreren Verkehrsströmen mit verschiedenen Ebenen der Granularität zugewiesen ist. Zum Beispiel besteht in der in 3 und 4 gezeigten Ausführungsform eine Verkehrsstrommenge der vierten Ebene aus einer einzelnen VC 25a und besteht eine Verkehrsstrommenge der zweiten Ebene aus einer Gruppe von VCs 25(P1) , einschließlich der VC 25a, die zum Ausgangsport Nr. 1 gehört (Bezugszahl 20a in 2). Aus dem vorliegenden Beispiel ist ersichtlich, dass eine gegebene Verkehrsstrommenge aus einem oder mehreren Verkehrsströmen besteht, die hier als "Tochter"menge bezeichnet werden, die sich auf einer direkt darunterliegenden Ebene der Hierarchie befinden. Die Ausnahme davon tritt auf der untersten Ebene der Hierarchie auf, bei der die Verkehrsstrommengen keine definierten Untermengen aufweisen. Ebenso weist eine Verkehrsstrommenge, die sich auf der obersten Ebene der Hierarchie befindet, keine "Eltern"menge auf.
  • Die Speicherpartitionen sind "weich" im Gegensatz zu "harten" Partitionen, was bedeutet, dass wenn der von zu einer gegebenen Partition gehörigen Paketen belegte Speicherplatz die Größe der Partition übersteigt, dann das QMM 24 nicht automatisch zu dieser Partition gehörige eingehende Pakete verwirft. Statt dessen kann die Größe einer gegebenen Partition als Ziel-Speicherbelegungsgröße für die Verkehrsstrommenge betrachtet werden, die dieser Speicherpartition entspricht. Auf der untersten Ebene der Hierarchie wirkt die Partitionsgröße jedoch als Schwelle für die Menge an Speicher, die von einem einzelnen Verkehrsstrom belegt werden kann. Wenn diese Schwelle überschritten wird, ermöglicht das QMM 24 das Verwerfen von Paketen. Insbesondere kann das QMM so konfiguriert sein, dass ein Verwerfen von Paketen oder Zellen (auf der ATM-Ebene) bewirkt wird, oder dass ein frühes Verwerfen von Rahmen oder teilweisen Rahmen für einen auf Rahmen basierenden Verkehr (auf der AAL-Ebene) bewirkt wird.
  • Die Größe jeder Partition ist im Allgemeinen variabel und wird vom QMM 24 dynamisch bestimmt, um die angehäufte Überlastung des Speichers 12 zu regeln. Insbesondere wird auf jeder Ebene der Hierarchie die angehäufte Überlastung in einer gegebenen Elternspeicherpartition geregelt, indem eine nominelle Partitionsgröße berechnet wird, die auf jede ihrer Tochterpartitionen (die auf der direkt darunter liegenden Ebene bestehen) angewendet werden kann. Der Wert der nominellen Partitionsgröße für die Tochterpartitionen eines gemeinsamen Elters kann auf einer Anzahl von Faktoren basieren, wie dem Grad an Überlastung, ihrer Änderungsrate oder sogar nur dem Bestehen oder Nichtbestehen einer Überlastung in der Elternpartition. Unten werden spezifische Ausführungsformen gegeben. Ungeachtet der Funktion wird dieser Vorgang über die gesamte Hierarchie rekursiv ausgeführt, um die Größe für jede Partition auf jeder Ebene der Hierarchie dynamisch zu bestimmen. Auf diese Weise sickert eine angehäufte Überlastung auf höheren Ebenen durch die Hierarchie nach unten, um die Speicherbelegungsschwellen für alle Verkehrsströme zu bewirken.
  • Es wird nun eine zweite Ausführungsform, die in Software implementiert ist, erörtert, um einen spezifischen Algorithmus zum Berechnen der Partitionsgrößen zu beschreiben. Unter zusätzlicher Bezugnahme auf 5 und 6 ist diese stärker vereinfachte Ausführungsform auf ein Pufferuntersystem 10' mit einem einzigen Port gerichtet, bei dem der Speicher zu einem gemeinsam genutzten Speicherpuffer 14' konfiguriert ist, der insbesondere für ATM-ABR- und -UBR-Verkehr bereitgestellt ist. Der verbleibende Teil des Speichers 12 kann anderen ATM-Dienstekategorien zugewiesen, wie vorher beschrieben, oder für Überzuweisungszwecke reserviert sein. 6 zeigt die hierarchische Partitionierung des Speichers unter Verwendung einer Baumstruktur. Da das Untersystem 10' nur einen Ausgangsport besitzt, wurde in dieser Hierarchie keine Vorkehrung für eine Partitionierung des Speichers unter Ausgangsports getroffen wie in der vorher erörterten Ausführungsform. Somit besitzt die hierarchische Partitionierung des Speichers 12 und die entsprechende Verkehrsstromhierarchie nur drei Ebenen, nämlich den gemeinsam genutzten Puffer 14', Dienstekategorien 16 und VCs 25.
  • Der folgende Pseudo-Code zeigt den Algorithmus, der vom QMM 24 in dieser Ausführungsform ausgeführt wird.
  • PSEUDO-CODE
  • VARIABLENDEFINITION:
  • Pro Puffer
    • • TBS – Eine Konstante, die eine Zielgröße für den Puffer mit der Einheit Zellen bereitstellt.
    • • B_count – Zähler zum Messen der Gesamtzahl von im Puffer gespeicherten Zellen, wodurch die gerade verwendete Menge des gemeinsam genutzten Puffers reflektiert wird.
    • • Last_B_count – Eine Variable zum Beinhalten der Messung der Gesamtzahl von im Puffer gespeicherten Zellen während einer vorherigen Iteration.
    • • TSCS – Eine Steuervariable, die verwendet wird, um eine Zielgröße (als Anzahl von Zellen) für eine Diensteklasse im Puffer einzustellen. TSCS variiert basierend auf einer Disparität zwischen TBS und B_count über die Zeit, wie unten ausführlicher erläutert.
    • • FM – Eine Konstante, die verwendet wird, um eine untere Grenze für TSCS bereitzustellen.
    • • D1, D2, D3 und D4 – Konstanten, die verwendet werden, um eine geometrische Reihe oder Progression zu bewirken, wie unten ausführlicher beschrieben.
  • Pro Diensteklasse
    • • SC_count [i] – Zähler zum Messen der Anzahl von Zellen in der Diensteklasse i, wodurch die tatsächliche Speicherbelegung für die Diensteklasse reflektiert wird.
    • • Last_SC_count [i] – Eine Variable zum Beinhalten der Messung der Gesamtzahl von Zellen in der Diensteklasse i während einer vorherigen Iteration.
    • • Wsc [i] – Eine Konstante, die verwendet wird, um ein Gewicht für die Diensteklasse i zu spezifizieren.
    • • TVCS[i] – eine Steuervariable, die verwendet wird, um eine Zielgröße für eine Verbindung in der Diensteklasse i einzustellen. TVCS[i] variiert basierend auf einer Disparität zwischen TSCS*wsc[i] und SC_count[i] über die Zeit, wie unten ausführlicher erläutert.
    • • TCSmin und TCSmax – Konstanten, die verwendet werden, um Mindest- und Höchstbeschränkungen für den Wert von TVCX[i] anzuwenden.
  • Pro Verbindung
    • • VC_count[i][j] – Zähler zum Messen der Anzahl der für die Verbindung j der Diensteklasse i gespeicherten Zellen. (Es ist zu bemerken, dass die Anzahl von zu jeder Diensteklasse gehörigen Verbindungen variieren kann und somit j entsprechend für jeden Wert von i einen anderen Bereich haben kann.)
    • • MCR[i][j] – Konstante, die die MCR oder das Gewicht der VC j der Diensteklasse i angibt.
    • • VCT[i][j] – Variable für die Schwelle für das Verwerfen von Zellen für die Verbindung j der Diensteklasse i. Die Schwelle für das Verwerfen von Zellen ist proportional zum entsprechenden TVCS[i]; insbesondere VCT[i][j] = TVCS[i]*MCR[i][j].
  • INITIALISIERUNG:
    • (100) TSCS := TBS*FBS
    • (102) TVCS[i] := 1 ∀ i; i ∊ {1 .. N}, wobei N die Anzahl von Diensteklassen ist.
  • TSCS PERIODISCH BERECHNEN:
    • (104) falls ((B_count > TBS) & (B_count > Last_B_count))
    • (106) TSCS := TSCS*(1 – D1)
    • (108) ansonsten falls (B_count < TBS)
    • (110) TSCS := TSCS/(1 – D2)
    • (112) beende falls
    • (114) der Einschränkung unterworfen, dass TBS*FBS ≤ TSCS ≤ TBS
    • (116) Last_B_Count := B_count
  • TVCS[i] (∀ i) PERIODISCH BERECHNEN:
    • (118) falls ((SC_count[i] > TSCS*wsc[i]) & (SC_count[i] > Last_SC_count[i]))
    • (120) TVCS[i] := TVCS[i]*(1 – D3)
    • (122) ansonsten falls (SC_count[i] < TSCS*wsc[i])
    • (124) TVCS[i] := TVCS[i]/(1 – D4)
    • (126) beende falls
    • (128) der Einschränkung unterworfen, dass TCSmin ≤ TVCS[i] ≤ TCSmax
    • (130) Last_SC_Count[i] := SC_count[i]
  • BEI ANKUNFT VON ZELLEN FÜR VC[I][J]:
    • (132) VCT[i][j] := TVCS[i]*MCR[i][j]
    • (134) falls (VC_count[i][j] > VCT[i][j])
    • (136) ermögliche EPD
    • (138) beende falls
  • Der Algorithmus schließt das dynamische Berechnen einer Ziel-Speicherbelegungsgröße, d.h. Speicherpartitionsgröße, für jede Verkehrsstrommenge ein. Dies ist in 6 durch durchgezogene Linien symbolisiert, die verwendet werden, um jede Einheit darzustellen. Die tatsächliche Menge an Speicher, die von jeder Verkehrsstrommenge belegt ist, wird ebenfalls von dem Algorithmus gemessen und ist in 6 durch konzentrische gestrichelte Linien symbolisiert. Es ist zu bemerken, dass die tatsächliche Speichergröße, die durch irgendeine Verkehrsstrommenge belegt ist, geringer oder größer als ihre Zielgröße sein kann.
  • Der Algorithmus verwendet laufende und historische Überlastungsinformation für eine gegebene Speicherpartition/Verkehrsstrommenge, um die nominelle Zielgröße für ihre Tochtermengen zu bestimmen. Allgemein gesprochen berechnet der Algorithmus dynamisch für jede Verkehrsstrommenge
    • (a) eine Ziel-Speicherbelegungsgröße, und
    • (b) eine Steuervariable, die die nominelle Ziel-Speicherbelegungsgröße für die Tochtermengen der Elternmenge darstellt.
  • In dem Algorithmus, der rekursiv ist, wird die Ziel-Speicherbelegungsgröße in Schritt (a) für die vorliegende Verkehrsstrommenge berechnet, indem die von seinem Elter berechnete Steuervariable mit einem vorher festgelegten Gewicht oder Faktor multipliziert wird. Diese Gewichte, die pro Verkehrsstrommenge bereitgestellt werden, ermöglichen es, dass jede Tochtermenge eines gemeinsamen Elters eine unterschiedliche Ziel-Belegung aufweist.
  • Der Wert der in Schritt (b) berechneten Steuervariablen hängt von der Überlastung der vorliegenden Verkehrsstrommenge ab. In dem Algorithmus wird eine Überlastung als bestehend betrachtet, wenn die Ziel-Speicherbelegungsgröße die tatsächliche Speicherbelegungsgröße einer gegebenen Menge übersteigt. Bei jeder Iteration des Algorithmus wird der Wert der Steuervariablen verringert, wenn gerade eine Überlastung besteht und wenn die Verkehrsstrommenge vorher eine Überlastung zeigte. Diese historische Überlastungsinformation basiert vorzugsweise auf der letzten Iteration des Algorithmus. Hingegen wächst der Wert der Steuervariablen, wenn für die Verkehrsstrommenge keine Überlastung besteht. Somit basiert in dieser Ausführungsform die Zielbelegung für die Tochtermengen eines gemeinsamen Elters auf einer Disparität zwischen der Ziel- und der tatsächlichen Speicherbelegung des Elters.
  • Die Schritte (a) und (b) werden für jede Verkehrsstrommenge auf einer bestimmten Ebene ausgeführt, um die jeweiligen Zielbelegungen für dessen Tochtermengen auf der nächstniedrigeren Ebene der Hierarchie zu berechnen. Eine weitere Iteration dieser Schritte wird auf der nächstniedrigeren Ebene ausgeführt usw., bis Zielbelegungen für die Verkehrsströme auf der untersten Ebene der Hierarchie berechnet sind.
  • Zum Beispiel basiert die Zielbelegung für die Diensteklassen 16A und 16B auf einer Disparität 30 zwischen der Ziel- und der gemessenen Belegung des gemeinsam genutzten Puffers 14'. Ebenso basiert die Zielbelegung für jede VC 25(A1) bis 25(AN) auf einer Disparität 34A zwischen der Ziel- und der gemessenen Belegung für die Diensteklasse 16A. Wenn ein AAL-Rahmen oder eine Zelle empfangen wird, identifiziert der Algorithmus die entsprechende VC und bestimmt, ob ihre tatsächliche Speicherbelegung ihre Ziel-Speicherbelegungsgröße übersteigt, in welchem Fall der Rahmen oder die Zelle dem Verwerfen unterzogen wird. Auf diese Weise sickert eine Überlastung auf höheren Ebenen der Verkehrsstromhierarchie durch die kaskadierte hierarchische Struktur, um die Schwellen von einzelnen Verbindungen zu bewirken.
  • Unter zusätzlicher Bezugnahme auf den Pseudo-Code stellt TBS die Ziel-Speicherbelegungsgröße für den Puffer 14 dar. TBS ist auf der höchsten Ebene ein festgelegter Wert. TSCS stellt eine nominelle Zielgröße für alle Diensteklassen 16 dar und TSCS*wsc[i] stellt die Zielgröße für eine bestimmte Diensteklasse dar. Der Faktor wsc[i] ist das auf eine bestimmte Diensteklasse angewendete Gewicht, um zu gestatten, dass verschiedene Klassen verschiedene Ziel-Belegungsgrößen aufweisen. Ebenso stellt TVCS[i] eine nominelle Zielgröße für die VCs 25 in einer bestimmten Diensteklasse i dar und stellt TVCX[i]*MCR[i][j], was gleich VCT[i][j] ist, die Zielgröße sowie die Schwelle für das Verwerfen von Zellen für eine bestimmte VC dar. Der Faktor MCR[i][j] stellt eine zur MCR proportionale Verteilung von Pufferplatz innerhalb einer Diensteklasse bereit. TSCS und die Werte für jedes TVCS[i] und VCT[i][j] werden periodisch berechne und variieren somit im Allgemeinen über die Zeit.
  • Es wird eine Vielfalt von Zählern (B_Count, SC_Count [i], VC_Count [i][j]) eingesetzt, um die tatsächliche Speicherbelegungsgröße der verschiedenen Verkehrsstrommengen zu messen. Diese werden vom QMM 24 immer dann aktualisiert, wenn eine Zelle, d.h. ein in ATM-Systemen verwendetes Paket mit fester Größe, im Puffer 14 gespeichert oder aus ihm entfernt wird. (Das Aktualisieren von Zählern ist im Pseudo-Code nicht ausdrücklich gezeigt.)
  • Die Zeilen 100–102 des Pseudo-Codes initialisieren TSCS und TVCS[i] ∀ i. TSCS wird auf eine Zielgröße von TBS*FBS initialisiert. FBS ist vorzugsweise gleich 1/N, wobei N die Anzahl von Diensteklassen 16 im gemeinsam genutzten Puffer 14' ist. Dies hat den Effekt eines gleichmäßigen anfänglichen Zuteilens des Speicherpuffers unter jeder Diensteklasse. Weitere Initialisierungswerte sind ebenfalls möglich. TVCS[i] wird für jede Verbindung vorteilhafterweise auf i initialisiert.
  • Die Zeilen 104–116 betreffen die periodische Berechnung von TSCS. Zeile 104 prüft, ob die tatsächliche Belegung des gemeinsam genutzten Puffers 14' größer als seine Ziel-Belegung ist und wächst. Wenn ja, wird in Zeile 106 TSCS geometrisch um einen Faktor 1 – D1 verringert, wobei 0 < D1 < 1, z.B. 0,1. Zeile 108 prüft, ob die tatsächliche Belegung des gemeinsam genutzten Puffers 14' geringer als seine Zielgröße ist. Wenn ja, wird in Zeile 110 TSCS geometrisch um einen Faktor 1/(1 – D2) vergrößert, wobei 0 < D2 < 1, z.B. 0,05. Die Werte von D1 und D2 werden vorzugsweise so gewählt, dass wenn sich die Zielbelegung verringert, sie es mit größerer Geschwindigkeit tut, als wenn sie sich erhöht, wie durch die jeweiligen Werte 0,1 und 0,05 veranschaulicht. Fachleute auf diesem Gebiet erkennen, dass D1 und D2 regeln, wie schnell das System auf Zustandsänderungen reagiert, und dass etwas Experimentieren bei der Auswahl geeigneter Werte für D1 und D2 für jede bestimmte Anwendung erforderlich sein kann, eine optimale oder kritisch gedämpfte Reaktionszeit dafür zu finden.
  • Zeile 114 beschränkt TSCS auf vorgeschriebene Höchst- und Mindestgrenzen für TBS bzw. TBS*FB. Die Höchstgrenze verhindert, dass Diensteklassen einen Ziel-Belegungswert jenseits der Verfügbarkeit des gemeinsam genutzten Puffers erhalten. Die Mindestgrenze begrenzt TSCS, um sicherzustellen, dass es nicht auf Werte iteriert, die bewirken würden, dass Konvergenzzeiten leiden.
  • Die Zeilen 118–130 betreffen die periodische Berechnung von TVCS[i] hinsichtlich der Diensteklasse i. Zeile 118 prüft, ob die tatsächliche Belegung der Diensteklasse i größer als ihre Zielgröße ist und wächst. Wenn ja, wird in Zeile 120 TVCS[i] geometrisch um einen Faktor 1 – D3 verringert, wobei 0 < D3 < 1, z.B. 0,1. Zeile 122 prüft, ob die tatsächliche Größe der Diensteklasse i größer als ihre Zielgröße ist und wächst. Wenn ja, wird in Ziele 124 TVCS[i] geometrisch um einen Faktor 1/(1 – D4) erhöht, wobei 0 < D4 < 1, z.B. 0,05. Die Werte von D3 und D4 werden vorzugsweise so gewählt, dass wenn sich TVCS[i] verringert, es es mit größerer Geschwindigkeit tut, als wenn es sich erhöht, wie durch die jeweiligen Werte 0,1 und 0,05 veranschaulicht.
  • Zeile 128 beschränkt TVCS[i] auf vorgeschriebene Höchst- und Mindestgrenzen, um sicherzustellen, dass Konvergenzzeiten nicht übermäßig sind. TCSmax ist vorzugsweise gleich TBS/LR, wobei LR die Leitungsrate des entsprechenden Ausgangsports ist. Diese obere Grenze stellt auch sicher, dass eine Verbindung nie mehr als TBS Pufferplatz erhalten kann. TCSmin ist vorzugsweise gleich TBS/MCRmin, wobei MCRmin die minimale MCR aller Verbindungen ist. Dies stellt eine konservative untere Grenze bereit.
  • Bei dieser Ausführungsform bewirkt das QMM 24 ein frühes Verwerfen von Paketen (EPD) und somit werden die Zeilen 132–138 aktiviert, wenn eine Zelle Beginn des Pakets (SOP) vom QMM 24 empfangen wird. (Im AALS-ATM-Anpassungsebenen-Protokoll gibt die Zelle Ende des Pakets (EOP) den Beginn des nächsten Pakets an). Die Ziel-Speicherbelegungsgröße oder Schwelle für VC j der Diensteklasse i wird in Zeile 132 berechnet, wenn eine SOP-Zelle empfangen wird. Die Schwelle ist gleich TVCS[i], multipliziert mit der MCR der Verbindung. Wie früher erwähnt sorgt dies für eine zur MCR proportionale Verteilung des Pufferplatzes, der der Diensteklasse i zugeteilt wird. Zeile 134 prüft, ob die Anzahl von für die VC j gespeicherten Zellen VCT[i][j] übersteigt, ihre Zielbelegung. Wenn ja, wird in Zeile 136 das EPD ermöglicht und das QMM 24 verwirft anschließend alle zum AAL5-Rahmen gehörigen Zellen. Die Zeilen 132 bis 138 werden bei Ankunft der nächsten SOP-Zelle erneut ausgeführt. Bei der Alternative kann das System eine Politik des teilweisen Verwerfens von Paketen (PPD) ausführen. Immer noch alternativ kann Zeile 136 so modifiziert werden, dass ein Verwerfen von Zellen per se ausgeführt wird, wobei die Zeilen 132–138 bei Ankunft jeder Zelle ausgeführt werden.
  • Diese Ausführungsform ist leicht auf Systeme skalierbar, die eine große Zahl von Diensteklassen und Verbindungen aufweisen, da es relativ wenige zu dem gemeinsam genutzten Puffer und den Diensteklassen gehörige Zustandsvariablen gibt. Außerdem können die meisten Berechnungen im Hintergrund ausgeführt werden, wodurch Verarbeitungsanforderungen bei der zeitkritischen Zellenankunft minimiert werden.
  • Diese Ausführungsform gestattet auch eine gemeinsame Nutzung des gesamten Puffers. Um zu sehen, warum das so ist, wird ein Extremfall betrachtet, in dem alle zur Diensteklasse 16B gehörige VCs aufhören, Zellen zu übertragen. In diesem Fall beginnt der gemeinsam genutzte Puffer 14', sich schnell zu leeren, was bewirkt, dass die gemessene Puffergröße signifikant geringer als die Ziel-Puffergröße ist. Dies bewirkt, dass die Zielgrößen für die Diensteklassen 16A und 16B sich bis auf das Niveau von TBS, der Zielgröße für den Puffer, erhöhen. Der Reihe nach erhöht sich TVCS[i] für alle Verbindungen auf eine Größe, die ermöglicht, dass die Belegung der Dienstekategorie TBS erreicht. Folglich wird der gesamte Puffer für alle übertragenden Verbindungen der Diensteklasse 16A verfügbar und die gemeinsame Nutzung des gesamten Puffers wird erreicht. Darüber hinaus wird bemerkt, dass jede VC 25(A1) bis 25(AN) der Diensteklasse 16A einen Anteil des Pufferplatzes erhält, der dieser Diensteklasse im Verhältnis zur MCR der Verbindung zugeteilt wird. Folglich wird der momentan ungenutzte Pufferplatz der Diensteklasse 16A im Verhältnis zu den MCRs der Verbindungen innerhalb der Diensteklasse verteilt.
  • Das Verfahren zum Zuweisen von Pufferplatz wurde besonders unter Bezugnahme auf die Verkehrsstromhierarchie mit drei Ebenen beschrieben, wie in 6 gezeigt. Fachleute auf dem Gebiet werden verstehen, dass das Verfahren in Bezug auf eine Verkehrsstromhierarchie mit n Ebenen angewendet werden kann.
  • Beispielsweise zeigt 7 eine Hierarchie mit vier Ebenen, bei der der Speicher 12 der zweiten Ausführungsform unter mehrfachen Ausgangsports 20 partitioniert ist. Die Ebene der Portpartitionen ist zwischen den Ebenen für den gemeinsam genutzten Puffer 14' und die Diensteklassen 16 angeordnet. In dieser Hierarchie basiert die Ziel- Speicherbelegungsgröße für jeden Port auf der Disparität 30 zwischen den Ziel- und gemessenen Speicherbelegungsgrößen des gemeinsam genutzten Puffers 14' und basieren die Zielgrößen für zu einem gegebenen Port gehörige Diensteklassen 16 auf einer Disparität 32A oder 32B zwischen den Ziel- und gemessenen Speicherbelegungsgrößen für den gegebenen Port. Insbesondere lassen wird g{x, y} eine diskrete oder iterative Funktion darstellen, bei der x > y und x wächst, dann verringert sich g{x, y} geometrisch, und wenn x < y, dann wächst g{x, y}. Die nominellen Ziel-Belegungsgrößen für die verschiedenen Einheiten in der in 3 gezeigten Hierarchie können sein:
    TBS = konstant,
    TPS = g{B_count, TBS},
    TSCS[i] = g{P_count[i], wp[i]*TPS},
    TVCS[i, j] = g{SC_count[i, j], wsc[i, j]*TSCS[i]} und
    VCT[i, j, k] = TVCS[i, j]*MCR[i, j, k].
  • Im vorhergehenden stellt TPS eine nominelle Speicherbelegung für Ports dar und ist wp[i] ein zu jedem Port i gehöriges Gewicht. Das Produkt wp[i]*TPS stellt die Zielgröße für jeden bestimmten Port dar, der nicht gleich zu sein braucht. Ebenso stellt Wsc[i, j]*TSCS[i] die Zielgröße für eine bestimmte zum Port i gehörige Diensteklasse j dar.
  • Es sollte auch bemerkt werden, dass g{x, y} alternativ andere Progressionen als geometrische bereitstellen kann, die lineare, hyperbolische, logarithmische oder fallende exponentielle Progressionen einschließen aber nicht darauf beschränkt sind. Jede Art Progression liefen unterschiedliche Konvergenzgeigenschaften. Auch braucht g{x, y} nicht notwendigerweise historische Überlastungsinformation zu betrachten.
  • Beispielsweise zeigen 810 eine weitere Ausführungsform der Erfindung, die in Hardware implementiert ist, welche nur die laufende Überlastung betrachtet. Diese Ausführungsform ist auf ein Pufferuntersystem 10'' gerichtet, bei dem ein physikalischer Speicher 12 zu einem gemeinsam genutzten Speicherpuffer 14' partitioniert ist, der für nur einen aus ABR- und UBR-Verkehr oder alternativ für Verkehr aus beiden Klassen bereitgestellt ist. Der verbleibende Teil des Speichers 12 kann anderen ATM-Dienstekategorien zugewiesen, wie vorher beschrieben, oder für Überzuweisungszwecke reserviert sein. 10 ist ein Baumdiagramm, das die hierarchische Partitionierung des Speichers für dieses Schema der Warteschlangenbildung zeigt. Da das Untersystem 10'' nur einen Ausgangsport und keine Partitionierung unter Diensteklassen umfasst, weist die Hierarchie der Speicherpartitionierung und der entsprechenden Verkehrsströme nur zwei Ebenen auf, nämlich den gemeinsam genutzten Puffer 14'' und die VCs 25.
  • 9 zeigt die Hardware 40, die im QMM 24 des Moduls dieser Ausführungsform eingebaut ist, um zu bestimmen, ob ein Verwerfen von Paketen ermöglicht oder abgeschaltet werden soll. Die Hardware 40 umfasst drei Eingaben, wie folgt:
  • Qs:
    Ein Zähler hinsichtlich der Gesamtzahl von Zellen, die den gemeinsam genutzten Puffer 14'' belegen, wodurch die tatsächliche Belegungsgröße des gemeinsam genutzten Puffers reflektiert wird. Dieser Zähler wird bei Ankunft/Abgang einer Zelle vom QMM 24 inkrementiert/dekrementiert.
    VC-Count j:
    Ein Zähler hinsichtlich der Gesamtzahl von Zellen, die durch VC j eingenommen wird. Dieser Zähler von bei Ankunft/Abgang einer zu VC j gehörenden Zelle vom QMM 24 inkrementiert/dekrementiert.
    MCR j:
    Der MCR-Wert der VC j.
  • Das QMM 24 verwendet die Hardware 40 immer dann, wenn eine Zelle Ende des Paketes (eines AAL-Rahmens) ankommt, in welchem Fall eine Überlastungskontrolle ausgeführt wird. Der Qs-Zähler oder die -Variable wird einer Quanitisierungsfunktion 42 zugeführt, die eine quantisierte Überlastungsvariable CS-Qs erzeugt, die einen vorher spezifizierten Wertebereich aufweist, z.B. 0 bis 2047 (d.h. eine 11-Bit-Größe). Die Quantisierungsfunktion bildet Qs auf CS_Qs ab, basierend auf der Leitungsrate des Ausgangsports 20. Für einen gegebenen Wert von Qs wird beispielsweise ein Ausgangsport mit einer Leitungsrate von 1,6 Mb/s auf einen niedrigeren quantisierten Wert CS_Qs abgebildet, als ein Ausgansgport mit einer Leitungsrate von 800 kb/s. Tabelle 1 unten zeigt ein Beispiel dieser Abbildung für einige übliche standardisierte Leitungsraten, wobei die vorher bereitgestellte Zielgröße für den gemeinsam genutzten Puffer 14'' 32k Zellen beträgt.
  • Figure 00210001
    Tabelle 1
  • Es sollte erkannt werden, dass CS_Qs somit einer Disparität zwischen der Ziel- und der tatsächlichen Speicherbelegung des gemeinsam genutzten Puffers 14'' entspricht. Es sollte auch bemerkt werden, dass die Funktion, die die Überlastung misst, abhängig von der Leitungsrate des Ausgangsports unterschiedlich ist.
  • Die Ziel-Speicherbelegung oder Schwelle, VCT, für eine Verbindung j, die eine EOP-Zelle umfasst, wird berechnet, indem die MCR der Verbindung mit einem vorher festgelegten Wert multipliziert wird, der aus einer Nachschlagetabelle 44 basierend auf der quantisierten Überlastungsvariablen CS_Qs für den gemeinsam genutzten Puffers ausgewählt wird. Die Nachschlagetabelle 44 liefert in der Tat vorher berechnete Werte einer vorher festgelegten Funktion. Tabelle 2 zeigt ein Beispiel einer solchen vorher festgelegten Funktion in Bezug auf einen Ausgangsport OC-12.
  • Figure 00210002
    Tabelle 2
  • Diese Tabelle liefert eine fallende Exponentialfunktion, wenn CS-Qs im Bereich von 489–1697 liegt; einen Höchstwert von 120,96, wenn CS_Qs im Bereich von 0–488 liegt, wobei der gemeinsam genutzte Puffer relativ unbelastet ist; und einen Mindestwert von 0, wenn CS_Qs im Bereich von 1698–2047 liegt, wobei der gemeinsam genutzte Puffer als sehr überlastet angesehen wird.
  • Wenn die Zelle Ende des Pakets ankommt, vergleicht ein Komparator 46 die Speicherbelegungsschwelle für die VC, d.h. VCT, mit VC_count[j], und wenn die letztere größer als die erstere ist, wird ein EPD-Signal 48 eingeschaltet. Anderenfalls wird die EOP-Zelle gespeichert und das EPD-Signal 48 abgeschaltet.
  • Fachleute auf dem Gebiet werden verstehen, dass während die hier beschriebenen Ausführungsformen Speicherpartitions-/Verkehrsstromhierarchien mit zwei, drei oder vier Ebenen offenbarten, viel kompliziertere Hierarchien aufgebaut werden können. Weitere mögliche Hierarchien beinhalten (von der oberen Ebene zur unteren Ebene):
    • • Puffer, Port, Dienstekategorie, Gruppen von virtuellen Schaltungen, einzelne virtuelle Schaltungen;
    • • Puffer, Port, Dienstekategorie, Warteschlange, virtuelle Schaltung;
    • • Puffer, Port, Dienstekategorie, virtuelle Wegeanhäufung (VPA) und virtuelle Schaltung;
    • • Puffer, Port, Dienstekategorie, virtuelles privates Netz (VPN) und virtuelle Schaltung;
    • • Puffer, Port, Dienstekategorie, VPN, VPA und virtuelle Schaltung.
  • Ebenso werden Fachleute auf dem Gebiet erkennen, dass zahlreiche Modifikationen und Variationen an der bevorzugten Ausführungsform vorgenommen werden können, ohne den Geist der Erfindung zu verlassen.
  • Wo technischen Merkmalen, die in irgendeinem Anspruch genannt sind, Bezugszeichen folgen, wurden diese Bezugszeichen für den alleinigen Zweck eingefügt, die Verständlichkeit der Ansprüche zu erhöhen, und folglich haben solche Bezugszeichen keine einschränkende Wirkung für den Umfang jedes Elements, das als Beispiel durch solche Bezugszeichen identifiziert wird.

Claims (18)

  1. Verfahren zum Partitionieren eines Speicherpuffers, welches umfasst: (a) Definieren einer Hierarchie von Speicherpartitionen (14', 20, 16, 25), wobei die Hierarchie wenigstens eine oberste Ebene (14') und eine unterste Ebene (25) umfasst, wobei jede Speicherpartition, die sich nicht auf der untersten Ebene befindet, aus einer oder mehreren Tochter-Speicherpartitionen besteht; (b) Bereitstellen der Größe (TBS) jeder Speicherpartition der obersten Ebene (14'); (c) dynamisches Berechnen einer nominellen Partitionsgröße (TSCS*Wsc[i], VCT[i][j]) für die Tochterpartitionen (20, 16, 25) einer gegebenen Speicherpartition (14', 20, 16), die sich nicht auf der untersten Ebene befindet; (d) dynamisches Aktualisieren der Größe jeder Tochter-Speicherpartition basierend auf einer Gewichtung (Wsc[i], MCR[i][j]) der nominellen Partitionsgröße in Schritt (c); dadurch gekennzeichnet, dass die in Schritt (c) berechnete nominelle Partitionsgröße (TSCS*Wsc[i], VCT[i][j]) auf einer regelmäßig aktualisierten Steuervariablen (TSCS, TVCS[i]) basiert, die der jeweiligen Tochterpartition zugeordnet ist, und dadurch, dass es ferner den Schritt umfasst: (e) Wiederholen der Schritte (c) und (d), um die Größer jeder Speicherpartition auf jeder Ebene der Hierarchie zu aktualisieren: wobei die Speicherpartitionen auf der untersten Ebene der Hierarchie (25) den Speicherplatz darstellen, der einem Verkehrsstrom zugewiesen ist, und die Größe (VCT[i][j]) der Partition (25) der untersten Ebene eine Speicherbelegungsschwelle (VCT[i][j]) für den entsprechenden Verkehrsstrom ist.
  2. Verfahren nach Anspruch 1, bei dem die Steuervariable (TSCS, TVCS[i]) für eine gegebene Gruppe von Tochterspeicherpartitionen wächst, wenn die Elternspeicherpartition nicht überlastet ist, und kleiner wird, wenn die Elternspeicherpartition überlastet ist.
  3. Verfahren nach Anspruch 1 oder 2, bei dem die Hierarchie wenigstens drei Ebenen (14', 16, 25) umfasst.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem jede Speicherpartition zu einer vorher festgelegten Sammlung von Paketen gehört und die Überlastung einer gegebenen Speicherpartition mit einer Disparität zwischen der Größe (TSCS*Wsc[i], VCT[i][j]) der gegebenen Speicherpartition und der tatsächlichen Größe (B_count, SC_count[i]) der Speicherbelegung der entsprechenden Sammlung von Paketen korreliert ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Überlastung einer gegebenen Speicherpartition zum Zwecke der Berechung einer nominellen Partitionsgröße in Schritt (c) auf gegenwärtiger und vergangener Überlastung der gegebenen Speicherpartition basiert.
  6. Verfahren zum Puffern von Paketen in einer Kommunikationseinrichtung, wobei das Verfahren umfasst: (a) Definieren einer Hierarchie von Verkehrsstrommengen (14', 20, 16, 25), wobei jede Ebene der Hierarchie auf eine entsprechende Ebene der Hierarchie von Speicherpartitionen (14', 20, 16, 25) des Verfahrens nach einem der Ansprüche 1 bis 5 abgebildet wird; (b) Messen der tatsächlichen Menge an Speicher, die von den Paketen belegt ist (SC_count[i]), die zu jedem Verkehrsstrom (25) der untersten Ebene gehören; und (c) Ermöglichen des Wegwerfens von Paketen, die zu einer gegebenen Verkehrsstrommenge der untersten Ebene gehören, falls die tatsächliche Größe (SC_count[i]) der Speicherbelegung des entsprechenden Verkehrsstroms (25) der untersten Ebene seine Zielgröße (VCT[i][j]) der Speicherbelegung übersteigt, dadurch gekennzeichnet, dass die Partition des Speicherpuffers unter den Verkehrsstrommengen (14', 20, 16, 25) und die Zielgröße (VCT[i][j]) der Speicherbelegung unter Anwendung des Verfahrens nach einem der Ansprüche 1 bis 5 aktualisiert werden.
  7. Verfahren nach Anspruch 6, das das Messen der tatsächlichen Menge an Speicher, die von jeder Verkehrsstrommenge (14', 20, 16, 25) der Hierarchie belegt wird, (B_count, SC_count[i]) umfasst.
  8. Verfahren nach Anspruch 6 oder 7, bei dem die Zielgröße (TSCS*Wsc[i], VCT[i][j]) der Speicherbelegung für einen Verkehrsstrom, der sich nicht auf der obersten Ebene befindet, auf einen vorher festgesetzten Bereich begrenzt ist.
  9. Verfahren nach einem der Ansprüche 6 bis 8, bei dem die Zielgröße der Speicherbelegung für eine Verkehrsstrommenge, die sich nicht auf der obersten Ebene befindet, (a) bis zu einer Untergrenze (TBS*FBS, TCSmin) abnimmt, wenn die gemessene Größe (B_count, SC_count[i]) der Speicherbelegung seiner Elternverkehrsstrommenge zunimmt und deren Zielgröße (TSCS*Wsc[i], VCT[i][j]) übersteigt, und (b) bis zu einer Obergrenze (TBS, TCSmax) zunimmt, wenn die tatsächliche Größe (B_count, SC_count[i]) seiner Elternverkehrsstrommenge geringer als deren Zielgröße (TSCS*Wsc[i], VCT[i][j]) ist.
  10. Verfahren nach einem der Ansprüche 6 bis 9, bei dem eine Verkehrsstrommenge der untersten Ebene einen einzelnen Verkehrsstrom umfasst, der aus der Gruppe ausgewählt ist, die aus einer virtuellen Verbindung, einem mit Kennsatz geschaltetem Kanal und einem logischen Paketstrom besteht, der sich aus den Übermittlungsregeln eines Paketklassifizierers ergibt.
  11. Kommunikationsvorrichtung mit einer Wartestelle (10), an welchen Stellen Pakete gespeichert werden, gekennzeichnet durch eine Einrichtung (19, 20) zum Empfangen und Zuordnen eines jeden Pakets zu einem Verkehrsstrom, wobei der Verkehrsstrom zu einer untersten Ebene in einer Hierarchie von Verkehrsstrommengen mit mehreren Ebenen gehört, die auch eine oberste Ebene aufweist, wobei jede Verkehrsstrommenge, die nicht zur obersten Ebene gehört, eine Untermenge einer Verkehrsstrommenge ist, die sich auf einer höheren Ebene der Hierarchie befindet, und jede Verkehrsstrommenge, die nicht zur untersten Ebene gehört, eine Obermenge von wenigstens einer Verkehrsstrommenge auf einer niedrigeren Ebene der Hierarchie ist; eine Einrichtung zum dynamischen Bestimmen einer Zielgröße (TSCS*Wsc[i], VCT[i][j]) der Speicherbelegung für jeden Verkehrsstrom (20, 16, 25), der sich nicht auf der obersten Ebene befindet, wobei die Zielgröße der Speicherbelegung für jede Verkehrsstrommenge der obersten Ebene vorher festgelegt ist; und eine Einrichtung, um ein gegebenes Paket der Möglichkeit des Wegwerfens zu unterziehen, falls die gemessene Größe (B_count, SC_count[i]) der Speicherbelegung des entsprechenden Verkehrsstroms dessen Zielgröße der Speicherbelegung übersteigt, und das gegebene Paket anderweitig zu speichern, dadurch gekennzeichnet, dass die Bestimmung der Zielgröße (TSCS*wsc[i], VCT[i][j]) auf einer regelmäßig aktualisierten Steuervariablen (TSCS, TVCS[i]) basiert, die dem jeweiligen Verkehrsstrom zugeordnet ist, der sich nicht auf der obersten Ebene befindet.
  12. Vorrichtung nach Anspruch 11, bei der sich die Zielgröße (TSCS*wsc[i], VCT[i][j]) der Speicherbelegung für einen Verkehrsstrom, der sich nicht auf der obersten Ebene befindet, entsprechend einer vorher festgelegten Funktion als Reaktion auf eine Disparität zwischen der Zielgröße (TSCS*wsc[i], VCT[i][j]) und der gemessenen Größe (B_count, SC_count[i]) der Speicherbelegung der entsprechenden Verkehrsstromobermenge ändert.
  13. Vorrichtung nach Anspruch 11 oder 12, bei der die Zielgröße (TSCS*Wsc[i], VCT[i][j]) der Speicherbelegung für jeden Verkehrsstrom, der sich nicht auf der obersten Ebene befindet, auf einen vorher festgesetzten Bereich begrenzt ist.
  14. Vorrichtung nach einem der Ansprüche 11 bis 13, bei dem die Zielgröße (TSCS*wsc[i], VCT[i][j]) der Speicherbelegung für einen gegebenen Verkehrsstrom, der sich nicht auf der obersten Ebene befindet, (a) bis zu einer Untergrenze (TBS*FBS, TCSmin) abnimmt, wenn die gemessene Größe (B_count, SC_count[i]) der Speicherbelegung der entsprechenden Verkehrsstromobermenge zunimmt und ihre Zielgröße (TSCS*wsc[i], VCT[i][j]) übersteigt, und (b) bis zu einer Obergrenze (TBS, TCSmax) zunimmt, wenn die tatsächliche Größe (B_count, SC_count[i]) der entsprechenden Verkehrsstromobermenge geringer als deren Zielgröße (TSCS*wsc[i], VCT[i][j]) ist.
  15. Vorrichtung nach einem der Ansprüche 11 bis 14, bei der ein Verkehrsstrom aus einem aus einer virtuellen Verbindung, einem mit Kennsatz geschaltetem Kanal und einem logischen Paketstrom besteht, der sich aus den Übermittlungsregeln eines Paketklassifizierers ergibt
  16. Vorrichtung nach einem der Ansprüche 11 bis 14, bei der die Vorrichtung ein Kommunikationsprotokoll mit asynchronem Übertragungsmodus (ATM) anwendet und die Pakete ATM-Zellen sind.
  17. Vorrichtung nach Anspruch 16, bei der die tatsächliche Speicherbelegung einer Verbindung direkt vor oder bei Empfang der ersten Zelle eines Blocks einer ATM-Adaptionsschicht (AAL) mit ihrer Zielbelegung vergleichen wird und ein frühes Wegwerfen (EFD) eines Blocks entsprechend dem Ergebnis des Vergleichs ausgeführt wird.
  18. Vorrichtung nach Anspruch 17, bei der die ATM-Zellen zu ATM-Dienstkategorien gehören, die eine Verkehrscharakteristik mit Mindestzellenrate (MCR) festlegen, und die Ziel-Speicherbelegung für eine gegebene Verbindung mit ihrer MCR in der entsprechenden Speicherpartition gewichtet wird.
DE60027639T 1999-05-27 2000-05-26 Buffersystem mit Überlastregelung mit verbindungsweiser Verkehrsverwaltung Expired - Lifetime DE60027639T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US320471 1989-03-08
US09/320,471 US6657955B1 (en) 1999-05-27 1999-05-27 Buffering system employing per traffic flow accounting congestion control

Publications (2)

Publication Number Publication Date
DE60027639D1 DE60027639D1 (de) 2006-06-08
DE60027639T2 true DE60027639T2 (de) 2007-05-10

Family

ID=23246576

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60027639T Expired - Lifetime DE60027639T2 (de) 1999-05-27 2000-05-26 Buffersystem mit Überlastregelung mit verbindungsweiser Verkehrsverwaltung

Country Status (4)

Country Link
US (1) US6657955B1 (de)
EP (1) EP1056245B1 (de)
AT (1) ATE325486T1 (de)
DE (1) DE60027639T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0961441A1 (de) * 1998-05-29 1999-12-01 Siemens Aktiengesellschaft Verfahren zum Entfernen von ATM-Zellen aus einer ATM-Kommunikationseinrichtung
US7023864B2 (en) * 2000-05-01 2006-04-04 Riverdelta Networks, Inc Data packet discarding
US6775293B1 (en) * 2000-06-30 2004-08-10 Alcatel Canada Inc. Method and apparatus for monitoring buffer contents in a data communication system
US6978306B2 (en) * 2000-08-10 2005-12-20 Pts Corporation Multi-tier video delivery network
US6882799B1 (en) * 2000-09-28 2005-04-19 Nortel Networks Limited Multi-grained network
US6922396B1 (en) 2000-12-29 2005-07-26 Cisco Technology, Inc. System and method for managing time sensitive data streams across a communication network
US6847641B2 (en) * 2001-03-08 2005-01-25 Tellabs San Jose, Inc. Apparatus and methods for establishing virtual private networks in a broadband network
JP2002288105A (ja) * 2001-03-26 2002-10-04 Hitachi Ltd ストレージエリアネットワークシステム、その運用方法、ストレージ、データ転送量監視装置
US7545814B2 (en) * 2002-02-28 2009-06-09 Nokia Corporation Method and system for dynamic remapping of packets for a router
US7725528B1 (en) 2002-03-06 2010-05-25 Rockwell Automation Technologies, Inc. System and methodology providing optimized data exchange with industrial controller
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
SE525800C2 (sv) * 2002-10-30 2005-04-26 Packetfront Sweden Ab Anordning och router i ett bredbandsnät som arbetar genom överföring av paketflöden, med ett av en central processorenhet omkopplat mjukvaruflöde och ett hårdvaruomkopplat accelerarat flöde
US7391786B1 (en) * 2002-11-27 2008-06-24 Cisco Technology, Inc. Centralized memory based packet switching system and method
US6920111B1 (en) * 2003-03-21 2005-07-19 Cisco Technology, Inc. Multiple update frequencies for counters in a multi-level shaping system
KR100501717B1 (ko) * 2003-05-09 2005-07-18 삼성전자주식회사 Udp/tcp/ip 네트워크에서 버퍼관리를 기반으로 한음성 및 데이터 통합 전송방법
US7321863B2 (en) * 2003-08-06 2008-01-22 Travelocity.Com Lp Systems, methods, and computer program products for storing and retrieving product availability information from a storage cache
JP4432388B2 (ja) 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US20050066109A1 (en) * 2003-09-23 2005-03-24 Veazey Judson E. Method and apparatus for designing a computer system
JP4621604B2 (ja) * 2006-02-20 2011-01-26 株式会社東芝 バス装置、バスシステムおよび情報転送方法
US8194690B1 (en) * 2006-05-24 2012-06-05 Tilera Corporation Packet processing in a parallel processing environment
US20080063004A1 (en) * 2006-09-13 2008-03-13 International Business Machines Corporation Buffer allocation method for multi-class traffic with dynamic spare buffering
US7889685B2 (en) * 2006-12-22 2011-02-15 Intel Corporation System and method for platform resilient VoIP processing
US8019910B2 (en) * 2007-07-31 2011-09-13 Hewlett-Packard Development Company, L.P. Transaction flow control in PCI express fabric
US20090319248A1 (en) * 2008-06-18 2009-12-24 Eads Na Defense Security And Systems Systems and methods for a simulated network traffic generator
US20110194426A1 (en) * 2010-02-09 2011-08-11 Chien Fang Hierarchical queuing and scheduling
US20120140615A1 (en) * 2010-12-03 2012-06-07 Gong Michelle X Method, station and computer readable medium for downlink multi-user multiple access category medium access and error recovery
US8755271B2 (en) * 2011-01-28 2014-06-17 Broadcom Corporation Dynamic memory bandwidth allocation
EP2754050B1 (de) * 2011-09-05 2016-12-07 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur speicherung von daten
US8665725B2 (en) * 2011-12-20 2014-03-04 Broadcom Corporation System and method for hierarchical adaptive dynamic egress port and queue buffer management
US20140105218A1 (en) * 2012-10-12 2014-04-17 Prashant H. Anand Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4g ip network/equipment for better traffic performance
US9154441B2 (en) * 2013-01-25 2015-10-06 Broadcom Corporation Adaptive buffer allocation management
US9195599B2 (en) * 2013-06-25 2015-11-24 Globalfoundries Inc. Multi-level aggregation techniques for memory hierarchies
US10305819B2 (en) * 2015-05-13 2019-05-28 Cisco Technology, Inc. Dynamic protection of shared memory used by output queues in a network device
US9866401B2 (en) * 2015-05-13 2018-01-09 Cisco Technology, Inc. Dynamic protection of shared memory and packet descriptors used by output queues in a network device
CN110708253B (zh) * 2018-07-09 2023-05-12 华为技术有限公司 一种报文控制方法、流表更新方法和节点设备
JP7180485B2 (ja) * 2019-03-22 2022-11-30 株式会社デンソー 中継装置およびキュー容量制御方法
US11868652B2 (en) * 2021-02-25 2024-01-09 SK Hynix Inc. Utilization based dynamic shared buffer in data storage system

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4511964A (en) * 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
US5014265A (en) * 1989-11-30 1991-05-07 At&T Bell Laboratories Method and apparatus for congestion control in a data network
US5247634A (en) * 1990-03-20 1993-09-21 Hewlett-Packard Company Method of managing memory allocation by association of memory blocks with a tree structure
JP3110035B2 (ja) * 1990-06-07 2000-11-20 株式会社東芝 携帯可能電子装置
ATE130112T1 (de) * 1990-09-03 1995-11-15 Ibm Rechner mit erweitertem virtuellem speicher.
US5313454A (en) * 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
DE4323405A1 (de) * 1993-07-13 1995-01-19 Sel Alcatel Ag Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
US5860149A (en) * 1995-06-07 1999-01-12 Emulex Corporation Memory buffer system using a single pointer to reference multiple associated data
US5872769A (en) * 1995-07-19 1999-02-16 Fujitsu Network Communications, Inc. Linked list structures for multiple levels of control in an ATM switch
US5901139A (en) * 1995-09-27 1999-05-04 Nec Corporation ATM cell buffer managing system in ATM node equipment
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
US6034945A (en) * 1996-05-15 2000-03-07 Cisco Technology, Inc. Method and apparatus for per traffic flow buffer management
GB9618128D0 (en) * 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
EP0894380A4 (de) * 1996-12-06 2001-05-16 Fujitsu Network Communications Verfahren zur flusssteuerung von atm-verkehr
JP3525656B2 (ja) * 1996-12-06 2004-05-10 株式会社日立製作所 パケット交換機、および輻輳通知方式
KR100216368B1 (ko) * 1997-06-11 1999-08-16 윤종용 Atm 스위치에서 셀 손실율 개선을 위한 역방향압력 신호를 이용한 입력 버퍼 제어기 장치 및 논리버퍼 크기 결정알고리즘
US6044418A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
US6070202A (en) * 1998-05-11 2000-05-30 Motorola, Inc. Reallocation of pools of fixed size buffers based on metrics collected for maximum number of concurrent requests for each distinct memory size
US6377546B1 (en) * 1998-05-12 2002-04-23 International Business Machines Corporation Rate guarantees through buffer management
US6539024B1 (en) * 1999-03-26 2003-03-25 Alcatel Canada Inc. Method and apparatus for data buffer management in a communications switch
US6405256B1 (en) * 1999-03-31 2002-06-11 Lucent Technologies Inc. Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion

Also Published As

Publication number Publication date
DE60027639D1 (de) 2006-06-08
EP1056245A2 (de) 2000-11-29
ATE325486T1 (de) 2006-06-15
EP1056245A3 (de) 2004-05-12
US6657955B1 (en) 2003-12-02
EP1056245B1 (de) 2006-05-03

Similar Documents

Publication Publication Date Title
DE60027639T2 (de) Buffersystem mit Überlastregelung mit verbindungsweiser Verkehrsverwaltung
DE60034504T2 (de) Vorrichtung zur Weiterleitung von Paketen und Verfahren zum Setzen von Paketprioritäten
DE69732398T2 (de) System zur Verkehrssteuerung und Überlastregelung für Paketnetzwerke
DE60034120T2 (de) Routing-vorrichtung
DE69833588T2 (de) Dynamische, geschwindigkeitsbasierte Ablauffolgesteuerung für ATM-Netzwerke
DE60113967T2 (de) Mehrstufige ablaufsteuerungsverfahren zum paketmultiplexen in einem kommunikationsnetzwerk
DE69114084T2 (de) Unterstützung für Datenverkehr mit konstanter Bitrate in Breitbandvermittlungsschaltern.
DE69717455T2 (de) Verfahren und anlage zur steuerung von quellengeschwindigkeit in einem atm netzwerk
DE69530641T2 (de) Verkehrssteuerungssystem mit verteilter Rate-Berechnung und verbindungsgestützter Flusssteuerung
DE69818846T2 (de) Paketnetzwerk
DE69634857T2 (de) Ablaufsteuerung für eine informationspaketvermittlung
DE69935006T2 (de) Vorrichtung und verfahren zum setzen von prioritäten für multicast-sendepakete in einer netz-dienstklasse
DE69936958T2 (de) Verkehrsformer
DE69733129T2 (de) Verfahren und Vorrichtung zur Übertragung von Datenpaketen mit Prioritäten
DE29825153U1 (de) Schalteraufbau eines ATM-Schalters mit großer Kapazität und Mehrklassenkern
DE60132437T2 (de) Verfahren und einrichtung zur steuerung von informationen unter verwendung von kalendern
DE69838274T2 (de) Steuerung der Bandbreite einer dynamischen ATM-Verbindung
DE60022243T2 (de) Verfahren in ATM Vermittlungsstellen zur optimalen Verwaltung eines Puffers mit dynamischen Schwellwerten für die Länge von Warteschlangen
DE69633051T2 (de) Verfahren zur Kontrolle der Datenstromgeschwindigkeit, des Warteschlangenetzknoten und des Paketvermittlungsnetzwerkes
DE69912172T2 (de) Verfahren und Vorrichtung zur Steuerung der Verkehrsflüsse in einem Paketvermittlungsnetz
DE69728386T2 (de) Verfahren und netzwerkelement zur übertragung von datenpaketen in einem fernübertragungsnetz
DE69629890T2 (de) ATM-Vermittlungssystem und Prioritätensteuerungsverfahren
DE69628435T2 (de) Reglementierung von datenverkehr für breitbandnetze
DE60036428T2 (de) Paketkommunikationssystem und darin benutzte netzseitige Vorrichtung, sowie Zeitschlitzzuweisungsverfahren.
DE60304580T2 (de) Schalteinheit mit skalierbarer und &#34;QOS&#34;-berücksichtigender Datenflusssteuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition