DE202018104604U1 - Überlastungsvermeidung in einer Netzwerk-Switch-Vorrichtung - Google Patents

Überlastungsvermeidung in einer Netzwerk-Switch-Vorrichtung Download PDF

Info

Publication number
DE202018104604U1
DE202018104604U1 DE202018104604.7U DE202018104604U DE202018104604U1 DE 202018104604 U1 DE202018104604 U1 DE 202018104604U1 DE 202018104604 U DE202018104604 U DE 202018104604U DE 202018104604 U1 DE202018104604 U1 DE 202018104604U1
Authority
DE
Germany
Prior art keywords
flow control
switch device
upstream
packets
network devices
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.)
Active
Application number
DE202018104604.7U
Other languages
English (en)
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.)
Marvell Israel MISL Ltd
Original Assignee
Marvell Israel MISL Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Publication of DE202018104604U1 publication Critical patent/DE202018104604U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Landscapes

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

Abstract

Netzwerk-Switch-Vorrichtung, umfassend:eine Vielzahl von Ports zum Koppeln über jeweilige Netzwerkverbindungen mit jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen;einen internen Speicher, der so konfiguriert ist, dass er wenigstens einige Pakete, die über entsprechende Ports der Vielzahl von Ports empfangen werden, temporär speichert, undeine Flusssteuerungsmaschine, die konfiguriert ist zumErfassen eines ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung;als Reaktion auf das Erkennen des ersten Überlastungszustands in dem internen Speicher, Triggern der Übertragung einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports der Vielzahl von Ports, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, von der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der Flusssteuerungsnachricht über irgendeinen Port auszulösen, der nicht in der ersten Teilmenge von Ports enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung der Vielzahl von Upstream-Netzwerkvorrichtungen, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten sind, veranlasst wird, die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung vorübergehend auszusetzen; undAlternieren zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, eine Überlastung in dem internen Speicher der Netzwerk-Switch-Vorrichtung zu überwachen.

Description

  • Querverweise auf verwandte Anmeldungen
  • Diese Offenbarung beansprucht die Priorität von U.S. Provisorische Patentanmeldung Nr. 62/544,401 mit dem Titel „Switch Congestion Avoidance“, eingereicht am 11. August 2017, die hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf Netzwerkvorrichtungen, wie Netzwerkschaltvorrichtungen, Bridges, Router usw., und insbesondere auf eine Überlastungsvermeidung in Netzwerkvorrichtungen.
  • HINTERGRUND
  • Eine Netzwerk-Switch-Vorrichtung umfasst typischerweise eine Vielzahl von Ports, die mit verschiedenen Netzwerk-Links gekoppelt sind. Die Netzwerk-Switch-Vorrichtung empfängt typischerweise Pakete über einen der Ports und verarbeitet Adressinformationen in einem Header eines empfangenen Pakets, um zu bestimmen, über welchen anderen Port oder Ports die Netzwerk-Switch-Vorrichtung das Paket übertragen sollte. Während die Netzwerk-Switch-Vorrichtung die Verarbeitung der Pakete durchführt und bis die Ausgangsschnittstellen bereit sind, die Pakete zu übertragen, werden die Pakete vorübergehend in einem internen Speicher der Netzwerk-Switch-Vorrichtung gespeichert. Der interne Speicher wird typischerweise von mehreren Eingangsanschlüssen der Netzwerk-Switch-Vorrichtung gemeinsam genutzt und speichert vorübergehend Pakete, die über die Eingangs-Mehrfachanschlüsse der Netzwerk-Switch-Vorrichtung empfangen werden. Wenn ein bestimmter Port für die Übertragung eines Pakets verfügbar ist, wird das Paket aus dem internen Speicher abgerufen und über den bestimmten Port übertragen.
  • In einigen Situationen empfängt eine Netzwerk-Switch-Vorrichtung Pakete schneller als die Pakete durch die Netzwerk-Switch-Vorrichtung übertragen werden können, zum Beispiel wegen der Überlastung von Downstream-Netzwerkverbindungen, die mit der Netzwerk-Switch-Vorrichtung gekoppelt sind, oder weil die Netzwerk-Switch-Vorrichtung nicht in der Lage ist, neu empfangene Pakete ausreichend schnell zu verarbeiten. In solchen Situationen kann der interne Speicher der Netzwerkvorrichtung überlastet werden. Um den Verlust von Paketen im Falle einer Überlastung im internen Speicher einer Netzwerk-Switch-Vorrichtung zu verhindern, erzeugen einige Netzwerk-Switch-Vorrichtungen Flusssteuerungsnachrichten, die anschließend über entsprechende Ports der Netzwerk-Switch-Vorrichtung übertragen werden, um eine zeitweilige Unterbrechung der Übertragung von Paketen durch vorgelagerte Netzwerkvorrichtungen an die Netzwerk-Switch-Vorrichtung zu bewirken, wodurch eine Speicherüberlastung zu Speichern der Upstream-Netzwerkvorrichtungen (z.B. anderen Netzwerk-Switch-Vorrichtungen, Endpunkt-Netzwerkvorrichtungen usw.) ausgelagert wird. In einer typischen Netzwerk-Switch-Vorrichtung, wenn die Netzwerk-Switch-Vorrichtung eine Überlastung in einem internen Speicher erkennt, der von mehreren Eingangsports geteilt wird, überträgt die Netzwerk-Switch-Vorrichtung eine Flusssteuerungsnachricht über jeden der mehreren Eingangsports. Dementsprechend wird die Übertragung von Paketen gleichzeitig durch mehrere Upstream-Netzwerkvorrichtungen unterbrochen, die über die mehreren Eingangsports mit der Netzwerk-Switch-Vorrichtung verbunden sind. Das gleichzeitige Aussetzen der Übertragung von Paketen durch mehrere Netzwerk-Switch-Vorrichtungen an die Netzwerk-Switch-Vorrichtung kann die Verwendung von Netzwerkverbindungen, die mit der Netzwerk-Switch-Vorrichtung gekoppelt sind, unnötig reduzieren.
  • Zusammenfassung
  • In einer Ausführungsform umfasst eine Technik zum Steuern einer Überlastung bei einer Netzwerk-Switch-Vorrichtung das Empfangen von Paketen an der Netzwerk-Switch-Vorrichtung von jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen, die mit der Netzwerk-Switch-Vorrichtung über jeweilige einer Vielzahl von Ports der Netzwerk-Switch-Vorrichtung gekoppelt sind; zeitweiliges Speichern von wenigstens einigen der empfangenen Pakete in einem internen Speicher der Netzwerk-Switch-Vorrichtung; Erfassen eines ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung mit einer Flusssteuerungsmaschine der Netzwerk-Switch-Vorrichtung; als Reaktion auf Erkennen des ersten Überlastungszustands im internen Speicher, Triggern, mit der Flusssteuerungsmaschine, von Senden einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports der Vielzahl von Ports, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, an die Vielzahl von Upstream-Netzwerkvorrichtungen, ohne Triggern der Übertragung der Flusssteuerungsnachricht über irgendeinen Port, der nicht in der ersten Teilmenge von Ports enthalten ist, um zu veranlassen, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten ist, von der Vielzahl von Upstream-Netzwerkvorrichtungen veranlasst wird, vorübergehend die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung auszusetzen; und Alternieren, mit der Flusssteuermaschine, zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, eine Überlastung in dem internen Speicher der Netzwerk-Switch-Vorrichtung zu überwachen.
  • In einer anderen Ausführungsform umfasst eine Netzwerk-Switch-Vorrichtung eine Vielzahl von Ports zum Koppeln über jeweilige Netzwerkverbindungen mit jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen, einen internen Speicher, der konfiguriert ist, um wenigstens einige Pakete, die über jeweilige Ports der Vielzahl von Ports empfangen werden, temporär zu speichern, und eine Flusssteuerungsmaschine. Die Flusssteuerungsmaschine ist konfiguriert zum: Erfassen eines ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung; als Reaktion auf das Erkennen des ersten Überlastungszustands in dem internen Speicher, Triggern der Übertragung einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports der Vielzahl von Ports, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, von der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der Flusssteuerungsnachricht über irgendeinen Port auszulösen, der nicht in der ersten Teilmenge von Ports enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung der Vielzahl von Upstream-Netzwerkvorrichtungen, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten sind, veranlasst wird, die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung vorübergehend auszusetzen; und Alternieren zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, eine Überlastung in dem internen Speicher der Netzwerk-Switch-Vorrichtung zu überwachen.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer beispielhaften Netzwerk-Switch-Vorrichtung, die hierin beschriebene Flusssteuertechniken gemäß einer Ausführungsform implementiert;
    • 2A ist ein Zeitablauf-Diagramm, das die Bandbreite von Paketen zeigt, die gemäß einer Ausführungsform von jeweiligen Upstream-Netzwerkvorrichtungen über eine Zeit an eine Netzwerkvorrichtung gesendet werden;
    • 2B ist ein Zeitdiagramm, das eine kombinierte Bandbreite von Paketen zeigt, die über die Zeit zu einer Netzwerkvorrichtung durch mehrere Upstream-Netzwerkvorrichtungen übertragen werden, gemäß einer Ausführungsform; und
    • 3 ist ein Flussdiagramm, das eine beispielhafte Technik zum Steuern einer Überlastung in einer Netzwerk-Switch-Vorrichtung gemäß einer Ausführungsform darstellt.
  • Detaillierte Beschreibung
  • In den unten beschriebenen Ausführungsformen empfängt eine Netzwerkvorrichtung (z.B. eine Netzwerk-Switch-Vorrichtung) Pakete von mehreren vorgeschalteten Netzwerkvorrichtungen, die über jeweilige Netzwerkverbindungen mit der Netzwerk-Switch-Vorrichtung verbunden sind, und leitet die Pakete zu beabsichtigten Empfängern der Pakete weiter, wie z.B. Downstream-Endpunktvorrichtungen, die direkt oder indirekt mit der Netzwerk-Switch-Vorrichtung gekoppelt sind. Die Netzwerk-Switch-Vorrichtung umfasst einen internen Speicher zum vorübergehenden Speichern von Paketen, während die Pakete von der Netzwerk-Switch-Vorrichtung verarbeitet werden. In einer Ausführungsform umfasst der interne Speicher einen gemeinsam genutzten Pufferraum, der von mehreren Ports der Netzwerk-Switch-Vorrichtung gemeinsam genutzt wird. Im Falle der Überlastung in dem internen Speicher, etwa wenn die Netzwerk-Switch-Vorrichtung feststellt, dass der gemeinsam genutzte Pufferspeicher im internen Speicher kurz vor der Überlastung steht, erzeugt und überträgt die Netzwerk-Switch-Vorrichtung eine Flusssteuerungsnachricht, um zu bewirken, dass eine oder mehrere der mehreren stromaufwärtigen Netzwerkvorrichtungen den Fluss von Paketen zu der Netzwerk-Switch-Vorrichtung reduzieren, zum Beispiel durch vorübergehendes Aussetzen der Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung oder durch zeitweiliges Reduzieren der Übertragungsrate von Paketen zu der Netzwerk-Switch-Vorrichtung, wodurch eine Überlastung von dem internen Speicher der Netzwerk-Switch-Vorrichtung zu Speichern der einen oder mehreren stromaufwärtigen Netzwerkvorrichtungen ausgelagert wird. In typischen Netzwerk-Switch-Vorrichtungen, bei der Erkennung einer Überlastung in einem gemeinsam genutzten Pufferraum eines internen Speichers einer Netzwerk-Switch-Vorrichtung überträgt die Netzwerk-Switch-Vorrichtung typischerweise eine Flusssteuerungsnachricht über mehrere Ports, die sich den Pufferraum teilen, um zu bewirken, dass Upstream-Netzwerkvorrichtungen, die mit mehreren Ports gekoppelt sind, die den Pufferraum teilen, den Fluss von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend reduzieren, um eine Überlastung in dem gemeinsam genutzten Pufferraum zu vermeiden. Jedoch in einer Ausführungsform, bei Erkennung einer Überlastung in dem gemeinsam genutzten Pufferraum des internen Speichers der Netzwerk-Switch-Vorrichtung wechselt die Netzwerk-Switch-Vorrichtung die Übertragung von Flusssteuerungsnachrichten zwischen verschiedenen Untergruppen von Ports, die sich den Pufferraum teilen, um die Reduzierung des Flusses von Paketen zu der Netzwerk-Switch-Vorrichtung über die Zeit unter verschiedenen Untergruppen von Netzwerk-Switch-Vorrichtung stromaufwärts zu verteilen, die mit den Ports gekoppelt sind, die sich den Pufferraum teilen. Die Verteilung der Reduzierung des Flusses von Paketen zwischen verschiedenen Teilmengen von Upstream-Netzwerkvorrichtungen im Laufe der Zeit ermöglicht es einigen Upstream-Netzwerkvorrichtungen, Pakete an die Netzwerk-Switch-Vorrichtung zu übertragen, während andere Upstream-Netzwerkvorrichtungen die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung aussetzen. Eine solche Verteilung der Reduzierung des Paketflusses zwischen verschiedenen Teilmengen von Netzwerk-Switch-Vorrichtungen verbessert die Verwendung von Netzwerkverbindungen zwischen der Netzwerk-Switch-Vorrichtung und den vorgeschalteten Netzwerkvorrichtungen im Vergleich zu Systemen, die die Reduzierung des Paketflusses zwischen Teilmengen von Upstream-Netzwerkgeräten über die Zeit nicht verteilen, zumindest in einigen Ausführungsformen.
  • 1 ist ein Blockdiagramm eines beispielhaften Switching-Systems 100, das zum Implementieren von hierin beschriebenen Flusssteuertechniken gemäß einer Ausführungsform konfiguriert ist. In einer Ausführungsform ist das Switching-System 100 Teil eines Datenzentrumsnetzwerks, eines Serverfarm-Netzwerks oder eines anderen geeigneten Systems, das ein Umschalten oder Routing zwischen einer großen Anzahl von Netzwerkschnittstellen (z.B. Ports) erfordert. In einer anderen Ausführungsform ist das Switching-System 100 Teil eines anderen Netzwerks als eines Datenzentrumsnetzwerks. Zum Beispiel ist das Switching-System 100 in einigen Ausführungsformen Teil eines Unternehmensnetzwerks. Das Switching-System 100 umfasst eine erste Netzwerkvorrichtung 102 und eine Vielzahl von zweiten Netzwerkvorrichtungen 103. Die zweiten Netzwerkvorrichtungen 103 sind stromaufwärts von den ersten Netzwerkvorrichtungen 102 in Bezug auf Pakete angeordnet, die durch das Switching-System 100 in der Richtung von den zweiten Netzwerkvorrichtungen 103 zu den ersten Netzwerkvorrichtungen 102 fließen, und eine entsprechende zweite Netzwerkvorrichtung 103 wird hierin manchmal als eine „Upstream-Netzwerkvorrichtung“ bezeichnet. Es wird jedoch angemerkt, dass in einigen Konfigurationen eine zweite Netzwerkvorrichtung 103 auch als eine stromabwärtige Netzwerkvorrichtung in Bezug auf Pakete wirkt, die durch das Vermittlungssystem 100 in der Richtung von der zweiten Netzwerkvorrichtung 103 zu der ersten Netzwerkvorrichtung 102 fließen. In einer Ausführungsform ist die erste Netzwerkvorrichtung 102 eine Netzwerk-Switch-Vorrichtung und die zweiten Netzwerkvorrichtungen 103 sind Netzwerkvorrichtungen, z.B. andere Netzwerk-Switch-Vorrichtungen, Endpunktvorrichtungen (z.B. Rechenzentrumsservervorrichtungen, andere Computervorrichtungen, Speichervorrichtungen usw.) usw., die stromaufwärts von der Netzwerkvorrichtung 102 in dem Switching-System 100 angeordnet sind.
  • Die Netzwerkvorrichtung 102 umfasst eine Vielzahl von Schnittstellen (z.B. Ports) 104, 106, die kommunikativ mit jeweiligen Netzwerkverbindungen 105 gekoppelt sind. Die Ports 104 sind mit entsprechenden Upstream-Netzwerkvorrichtungen 103 gekoppelt, und die Ports 106 sind mit jeweiligen Downstream-Netzwerkvorrichtungen in dem Vermittlungssystem 100 gekoppelt, wie zum Beispiel Next-Hop-Switching-Vorrichtungen oder Next-Stage-Switching-Vorrichtungen in dem Switching-System 100 in einer Ausführungsform. Die Ports 104 wirken als Eingangsanschlüsse in Bezug auf Pakete, die durch das Switching-System 100 in der Richtung von den Upstream-Netzwerkvorrichtungen 103 zu der Netzwerkvorrichtung 102 fließen, und die Ports 104 werden hierin manchmal als „Eingangsanschlüsse“ bezeichnet. Die Ports 106 wirken als Ausgangsanschlüsse in Bezug auf Pakete, die durch das Switching-System 100 in der Richtung von den Upstream-Netzwerkvorrichtungen 103 zu der Netzwerkvorrichtung 102 fließen, und die Ports 106 werden hierin manchmal als „Ausgangsanschlüsse“ bezeichnet. Es wird jedoch angemerkt, dass jeder der Ports 104, 106 sowohl als ein Eingangsanschluss für Pakete, die über den Port 104, 106 in die Netzwerkvorrichtung 102 eintreten, als auch als ein Ausgangsanschluss für Pakete, die die Netzwerkvorrichtung 102 über den Port 104, 106 austreten. Obwohl die Netzwerkvorrichtung 102 so dargestellt ist, dass sie vier Eingangsanschlüsse 104 und vier Ausgangsanschlüsse 106 enthält, umfasst die Netzwerkvorrichtung 102 in verschiedenen Ausführungsformen geeignete andere Anzahlen von Eingangsanschlüssen 104 und/oder Ausgangsanschlüssen 106.
  • Die Netzwerkvorrichtung 102 ist in 1 in einer vereinfachten Form dargestellt, die einen Paketprozessor 108 enthält, der eine Weiterleitungsmaschine 110, einen internen Speicher 112 und eine Flusssteuerungsmaschine 114 umfasst. In einigen Ausführungsformen ist der Paketprozessor 108 als eine Pipeline von Verarbeitungseinheiten konfiguriert, wie beispielsweise eine Pipeline von ASIC-Maschinen (application-specific integrated circuit), die konfiguriert sind, um entsprechende Verarbeitungsoperationen an Paketen durchzuführen. In einer solchen Ausführungsform entsprechen die Weiterleitungsmaschine 110 und die Flusssteuermaschine 114 jeweiligen Verarbeitungseinheiten in der Pipeline. In anderen Ausführungsformen verwendet der Paketprozessor 108 zusätzlich oder alternativ eine Parallelverarbeitungsarchitektur, in der mehrere Prozessoren maschinenlesbare Anweisungen ausführen (die in einer oder mehreren mit den mehreren Prozessoren verbundenen Speichervorrichtungen gespeichert sind), um mehrere Pakete parallel zu verarbeiten. Der interne Speicher 112 ist in einer Ausführungsform innerhalb des Paketprozessors 108 (z.B. implementiert auf demselben Chip wie der Paketprozessor 108). In einer anderen Ausführungsform befindet sich wenigstens ein Teil des internen Speichers 112 außerhalb des Paketprozessors 108 (z.B. auf einem von dem Paketprozessor 108 getrennten Chip implementiert), ist jedoch nichtsdestoweniger innerhalb der Netzwerkvorrichtung 102 (z.B. zusammen mit andere Komponenten der Netzwerkvorrichtung 102).
  • Der Paketprozessor 108 ist mit den Eingangsanschlüssen 104 und den Ausgangsanschlüssen 106 gekoppelt und ist dazu konfiguriert, über Eingangsanschlüsse 104 empfangene Pakete zu verarbeiten, um wenigstens einen Ausgangsanschluss 106 zu bestimmen, über welchen die Pakete in einer Ausführungsform zu einer oder mehreren Downstream-Netzwerkvorrichtungen weitergeleitet werden sollen, die mit dem einen oder den mehreren Ausgangsanschlüssen 106 gekoppelt sind. Zum Beispiel ist die Weiterleitungsmaschine 110 des Paketprozessors 108 dazu konfiguriert, basierend auf Informationen von einem Header eines Pakets einen oder mehrere der Ausgangsanschlüsse 106 zu bestimmen, an die das Paket weitergeleitet werden soll. Die Weiterleitungsmaschine 110 enthält oder ist mit einer Weiterleitungsdatenbank (nicht gezeigt) gekoppelt, die Weiterleitungsinformationen (z.B. Portinformationen) speichert, die Adressen zugeordnet sind (z.B. Medienzugriffssteuerungs (MAC) -Adressen, Internetprotokoll (IP) -Adressen usw.) und / oder andere geeignete Information in einer Ausführungsform. In einer Ausführungsform ist die Weiterleitungsmaschine 110 so konfiguriert, dass sie Header-Informationen verwendet, um Informationen in der Weiterleitungsdatenbank nachzuschlagen, die einen oder mehrere Ports 106 angeben, an die das Paket weitergeleitet werden soll. Der Paketprozessor 108 führt auch eine Klassifizierung des Pakets durch, um beispielsweise eine Priorität, mit der das Paket assoziiert ist, einen Paketfluss, zu dem das Paket gehört, usw. in einer Ausführungsform zu bestimmen.
  • Der interne Speicher 112 ist konfiguriert, um empfangene Pakete oder wenigstens Payload-Teile der empfangenen Pakete zu speichern, während die Paket-Header der Pakete oder andere Dateneinheiten, die die Pakete repräsentieren und relevante Header-Informationen und/oder Metadaten enthalten, die den Paketen entsprechen, durch den Paketprozessor 108 verarbeitet werden. In einer Ausführungsform umfasst der interne Speicher 112 einen gemeinsam genutzten Pufferraum, der von mehreren Eingangsanschlüssen 104 gemeinsam genutzt wird und zum Speichern von über die mehreren Eingangsanschlüsse 104 empfangenen Paketen konfiguriert ist. Zum Beispiel umfasst der interne Speicher 112 einen gemeinsam genutzten Pufferraum, der von den Eingangsanschlüssen 104a - 104d gemeinsam genutzt wird und in einer Ausführungsform konfiguriert ist, um über die Eingangsanschlüsse 104a - 104d empfangene Pakete zu speichern.
  • In einigen Szenarien und Ausführungsformen, wenn zum Beispiel Pakete schneller von der Netzwerkvorrichtung 102 empfangen werden, als die Pakete durch die Netzwerkvorrichtung 102 verarbeitet und/oder übertragen werden können, wird der interne Speicher 112 der Netzwerkvorrichtung 102 überlastet. In einer Ausführungsform ist die Flusssteuermaschine 114 oder ein anderer geeigneter Speicherbenutzungsmonitor konfiguriert, den gemeinsam genutzten Pufferraum in dem internen Speicher 112 zu überwachen und basierend auf dem Überwachen des gemeinsam genutzten Pufferraums einen Überlastungszustand des internen Speichers 112 zu erfassen. In einer Ausführungsform bedeutet ein überlasteter Zustand des internen Speichers 112, dass der gemeinsame Pufferraum in dem internen Speicher 112 sich seiner vollen Kapazität nähert, aber noch nicht erreicht hat. Nach Erfassen des überlasteten Zustands des internen Speichers 112 führt die Flusssteuerungsmaschine 114 in einer Ausführungsform eine oder mehrere Operationen zum Verhindern eines Überlaufs des internen Speichers 112 und zum Verhindern eines nachfolgenden Verlusts von Paketen durch, die nicht in dem internen Speicher 112 gespeichert werden können. Zum Beispiel erzeugt die Flusssteuerungsmaschine 114 bei Erkennung des Überlastungszustands in dem Paketspeicher 112 die Übertragung von Flusssteuerungsnachrichten über die Eingangsanschlüsse 104 und löst diese aus, um eine vorübergehende Reduzierung des Paketflusses zu der Netzwerkvorrichtung 102 durch die mit den Eingangsanschlüssen 104 gekoppelten Upstream-Netzwerkvorrichtungen 103 zu bewirken. Zur Vereinfachung der Erklärung wird die Verringerung des Paketflusses hierin als vorübergehende Unterbrechung der Übertragung von Paketen beschrieben. Es ist jedoch anzumerken, dass die Reduzierung des Paketflusses in anderen geeigneten Weisen in anderen Ausführungsformen implementiert ist. Zum Beispiel umfasst die Reduzierung des Paketflusses in einigen Ausführungsformen eine vorübergehende Verringerung der Übertragungsrate von Paketen.
  • Wenn die Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen an die Netzwerkvorrichtung 102 aussetzen, werden die Pakete bei einer Ausführungsform temporär in entsprechenden Speichern 120 gespeichert, die in den Upstream-Netzwerkvorrichtungen 103 enthalten sind oder damit gekoppelt sind. Folglich entlädt eine Unterbrechung der Übertragung von Paketen durch die Upstream-Netzwerkvorrichtungen 103 an die Netzwerkvorrichtung 102 eine Überlastung in dem internen Speicher 112 der Netzwerkvorrichtung 102 zu den Speichern 120 der Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform.
  • In verschiedenen Ausführungsformen ist der verfügbare Speicherplatz zum Speichern von Paketen in den Speichern 120, die in den Upstream-Netzwerkvorrichtungen 103 enthalten sind oder mit diesen gekoppelt sind, relativ größer als der Pufferraum des internen Speichers 112 der Netzwerkvorrichtung 102. Zum Beispiel sind in einer Ausführungsform die jeweiligen Speicher 120, die in den Upstream-Netzwerkvorrichtungen 103 enthalten sind oder mit diesen gekoppelt sind, unabhängig größer als der interne Speicher 112 der Netzwerkvorrichtung 102. Als ein spezifischeres Beispiel in einer Ausführungsform, in der die Netzwerkvorrichtung 102 eine Netzwerk-Switch-Vorrichtung ist und die Upstream-Netzwerkvorrichtungen 103 eine Endpunktvorrichtung, wie zum Beispiel Rechenzentrumsservervorrichtungen, sind, ist der Speicher 120, der in einer entsprechenden Rechenzentrumsservervorrichtung 103 enthalten oder damit verbunden ist, relativ größer als der interne Speicher 112 der Netzwerk-Switch-Vorrichtung 102. In solchen Ausführungsformen entlastet das Aussetzen der Übertragung von Paketen durch die Upstream-Netzwerkvorrichtungen 103 an die Netzwerkvorrichtung 102 eine Überlastung in dem internen Speicher 112 der Netzwerkvorrichtung 102 zu den relativ größeren Speicherplätzen, die in den Speichern 120 verfügbar sind, die in der Upstream-Netzwerkvorrichtungen 103 enthalten oder mit diesen gekoppelt sind. In anderen Ausführungsformen sind die jeweiligen Speicher 120, die in den Upstream-Netzwerkvorrichtungen 103 enthalten sind oder mit diesen gekoppelt sind, gleich groß wie oder kleiner als der interne Speicher 112 der Netzwerkvorrichtung 102. Ein Gesamtspeicherraum von mehreren der jeweiligen Speicher 120 ist jedoch wenigstens in einigen Ausführungsformen größer als der Pufferraum des internen Speichers 112. In solchen Ausführungsformen entlastet das Aussetzen der Übertragung von Paketen durch mehrere Upstream-Netzwerkvorrichtungen 103 an die Netzwerkvorrichtung 102 eine Überlastung in dem internen Speicher 112 der Netzwerkvorrichtung 102 zu dem relativ größeren Gesamtspeicherplatz, der in den Speichern 120 verfügbar ist, die in dem Speicher 102 der mehreren Upstream-Netzwerkvorrichtungen 103 enthalten sind.
  • In verschiedenen Ausführungsformen implementiert die Flusssteuerungsmaschine 114 ein alternierendes Schema, um die Flusssteuerung zwischen verschiedenen Teilmengen der Upstream-Netzwerkvorrichtungen 103 zu ändern, um die Flusssteuerung über die Zeit unter den unterschiedlichen Teilmengen von Upstream-Netzwerkvorrichtungen 103 zu verteilen. Zum Beispiel in einer Ausführungsform, nach dem Erfassen eines ersten Überlastungszustands in dem internen Speicher 112 zu einem ersten Zeitpunkt, triggert die Flusssteuerungsmaschine 114 die Übertragung einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von einem oder mehreren Ports 104 zu einer ersten Teilmenge von einer oder mehreren Upstream-Netzwerkvorrichtungen 103, ohne die Übertragung der ersten Flusssteuerungsnachricht über irgendwelche Ports 104 auszulösen, die nicht in der ersten Teilmenge von Ports 104 enthalten sind. Übertragung der ersten Flusssteuerungsnachricht über die erste Teilmenge von Ports 104 bewirkt, dass Upstream-Netzwerkvorrichtungen 103 in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen an die Netzwerkvorrichtung 102 zeitweilig aussetzen, ohne zu veranlassen, dass irgendeine Upstream-Netzwerkvorrichtung 103 die erste Teilmenge von Upstream-Netzwerkvorrichtungen 103 enthält, um die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung 102 in einer Ausführungsform vorübergehend auszusetzen.
  • In einer Ausführungsform ist die erste Flusssteuerungsnachricht eine Pausenflusssteuerungsnachricht, die konfiguriert ist, um zu bewirken, dass eine Upstream-Netzwerkvorrichtung die Übertragung aller Pakete über eine entsprechende Netzwerkverbindung zu der Netzwerkvorrichtung 102 vorübergehend pausiert. In dieser Ausführungsform unterbricht die Upstream-Netzwerkvorrichtung (z.B. die Upstream-Netzwerkvorrichtung 103) als Reaktion auf die erste Flusssteuerungsnachricht vorübergehend die Übertragung aller Pakete an die Netzwerkvorrichtung 102 über die entsprechende Netzwerkverbindung. In einer anderen Ausführungsform ist die erste Flusssteuerungsnachricht eine Prioritätsflusssteuerungsnachricht (PFC-Nachricht), die konfiguriert ist, um eine Upstream-Netzwerkvorrichtungen zu veranlassen, die Übertragung von Paketen bestimmter oder mehrerer Prioritäten über eine entsprechende Netzwerkverbindung zu der Netzwerkvorrichtung 102 vorübergehend zu pausieren. In dieser Ausführungsform unterbricht die Upstream-Netzwerkvorrichtung (z.B. die Upstream-Netzwerkvorrichtung 103) als Reaktion auf die erste Flusssteuerungsnachricht vorübergehend die Übertragung von Paketen der bestimmten einen oder mehreren Prioritäten über die entsprechende Netzwerkverbindung an die Netzwerkvorrichtung 102, während sie die Übertragung von Paketen mit anderen Prioritäten zu der Netzwerkvorrichtung 102 über die entsprechende Netzwerkverbindung fortsetzt. In einer anderen Ausführungsform ist die erste Flusssteuerungsnachricht eine andere geeignete Flusssteuerungsnachricht. Im Allgemeinen ist „Flusssteuerungsnachricht‟, wie hierin verwendet, irgendeine geeignete Art von Flusssteuerungsnachricht, die konfiguriert ist, um eine Upstream-Netzwerkvorrichtung dazu zu veranlassen, vorübergehend die Übertragung von wenigstens einigen Paketen, wie beispielsweise allen Paketen, nur Paketen mit einer oder mehreren Prioritäten usw. über eine entsprechende Netzwerkverbindung zu der Netzwerkvorrichtung 102 auszusetzen. In ähnlicher Weise bedeutet das zeitweilige Aussetzen der Übertragung von Paketen, wie hierin verwendet, das vorübergehende Aussetzen der Übertragung von wenigstens einigen Paketen, wie beispielsweise allen Paketen, nur Paketen mit einer oder mehreren Prioritäten usw.
  • Mit fortgesetzter Bezugnahme auf 1 fährt die Flusssteuermaschine 114 oder eine andere geeignete Speicherstauüberwachung fort, die Überlastung in dem internen Speicher 112 in einer Ausführungsform zu überwachen. Nach Erfassen eines zweiten Überlastungszustands im internen Speicher 112 zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt triggert die Flusssteuerungsmaschine 114 die Übertragung einer zweiten Flusssteuerungsnachricht über eine zweite Teilmenge von einem oder mehreren Eingangsanschluss 104 zu einer zweiten Teilmenge von einer oder mehreren Upstream-Netzwerkvorrichtungen 103, ohne die Übertragung der zweiten Flusssteuerungsnachricht über irgendeinen Eingangsanschluss 104 zu triggern, der nicht in der zweiten Teilmenge von Eingangsanschlüssen 104 enthalten ist. In einer Ausführungsform unterscheidet sich die zweite Teilmenge von Eingangsanschlüssen 104 von der ersten Teilmenge von Eingangsanschlüssen 104. Zum Beispiel umfasst die zweite Teilmenge von Eingangsanschlüssen 104 in einer Ausführungsform einen oder mehrere Eingangsanschlüsse 104, die nicht in der ersten Teilmenge von Eingangsanschlüssen 104 enthalten sind. In einer Ausführungsform sind die erste Teilmenge von Eingangsanschlüssen 104 und die zweite Teilmenge von Anschlüssen 104 nicht überlappende Teilmengen von Eingangsanschlüssen 104. Übertragung der zweiten Flusssteuerungsnachricht über die zweite Teilmenge von Eingangsanschlüssen 104 bewirkt, dass Upstream-Netzwerkvorrichtungen 103 in der zweiten Teilmenge von Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform die Übertragung von Paketen zu der Netzwerkvorrichtung 102 vorübergehend aussetzen.
  • Zu einem dritten Zeitpunkt, nach dem ersten Mal, nimmt die erste Teilmenge von Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen wieder auf, die an die Netzwerkvorrichtung 102 gerichtet sind. Zum Beispiel nimmt die erste Teilmenge von Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform die Übertragung von Paketen, die an die Netzwerkvorrichtung 102 gerichtet sind, nach Ablauf einer Pausenzeit wieder auf, die in der ersten Flusssteuerungsnachricht spezifiziert ist. In einer anderen Ausführungsform nimmt die erste Teilmenge von Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen, die an die Netzwerkvorrichtung 102 gerichtet sind, nach dem Empfang eines expliziten Befehls zur Wiederaufnahme der Übertragung von Paketen, die an die Netzwerkvorrichtung 102 gerichtet ist, wieder auf.
  • In ähnlicher Weise nimmt zu einem vierten Zeitpunkt nach dem zweiten Zeitpunkt die zweite Teilmenge der Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen wieder auf, die an die Netzwerkvorrichtung 102 gerichtet sind. Zum Beispiel nimmt die zweite Teilmenge der Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform die Übertragung von Paketen, die zu der Netzwerkvorrichtung 102 geleitet werden, nach Ablauf einer Pausenzeit, die in der zweiten Flusssteuerungsnachricht spezifiziert ist, wieder auf. In einer anderen Ausführungsform nimmt die zweite Teilmenge der Upstream-Netzwerkvorrichtung 103 die Übertragung von Paketen, die an die Netzwerkvorrichtung 102 gerichtet sind, nach Empfang einer expliziten Anweisung zum Wiederaufnehmen der Übertragung von Paketen, die an die Netzwerkvorrichtung 102 gerichtet sind, wieder auf.
  • Anschließend triggert die Flusssteuerungsmaschine 114 als Reaktion auf das Erkennen eines Überlastungszustands des internen Speichers 112 die Übertragung einer dritten Flusssteuerungsnachricht über eine dritte Teilmenge von Ports 104 zu einer dritten Teilmenge von Upstream-Netzwerkvorrichtungen 103, und so weiter, bis die letzte Teilmenge von Ports 104 erreicht ist, und das alternierende Schema wiederholt sich in einer Ausführungsform. In einer anderen Ausführungsform wählt die Flusssteuerungsmaschine 114 zufällig oder statistisch Teilmengen von Ports 104 aus, über die Flusssteuerungsnachrichten zu unterschiedlichen Überlastungszeiten im internen Speicher 112 übertragen werden. In anderen Ausführungsformen werden andere geeignete alternierende Schemata verwendet.
  • Da die Flusssteuerungsnachricht 114 die Übertragung von Flusssteuerungsnachrichten über unterschiedliche Teilmengen von Ports 104 zu unterschiedlichen Überlastungszeiten im internen Speicher 112 auslöst, wird die Flusssteuerung in einer Ausführungsform über die Zeit zwischen den Teilmengen der Upstream-Netzwerkvorrichtungen 103 verteilt. Zum Beispiel unterbricht während einer ersten Zeitperiode der Überlastung in dem internen Speicher 112 eine erste Teilmenge von Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen an die Netzwerkvorrichtung 102, während eine zweite Teilmenge von Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform die Übertragung von Paketen an die Netzwerkvorrichtung 102 fortsetzt. Während einer zweiten Zeitperiode einer Überlastung in dem internen Speicher 112 unterbricht die zweite Teilmenge von Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen an die Netzwerkvorrichtung 102 in einer Ausführungsform. Die erste Zeitspanne und die zweite Zeitspanne sind in wenigstens einigen Ausführungsformen gegeneinander versetzt. Versetzen der ersten Zeitperiode und der zweiten Zeitperiode verteilt die Flusssteuerung über die Zeit zwischen den Untergruppen der Upstream-Netzwerkvorrichtungen 103, wodurch in einer Ausführungsform die verfügbare Verbindungsbandbreite über die Zeit zwischen den Teilmengen der Upstream-Netzwerkvorrichtungen 103 verteilt wird.
  • Als ein Beispiel ist in der in 1 dargestellten Ausführungsform ein erster Port 104a der Netzwerkvorrichtung 102 über eine erste Netzwerkverbindung 105a mit einer ersten Upstream-Netzwerkvorrichtungen 103a gekoppelt, und ein zweiter Port 104d der Netzwerkvorrichtung 102 ist über eine zweite Netzwerkverbindung 105b mit einer zweiten Upstream-Netzwerkvorrichtungen 103b gekoppelt. Zu einem ersten Zeitpunkt nach Erfassen eines Überlastungszustands des internen Speichers 112, erzeugt die Flusssteuerung 114 oder ein anderer geeigneter Speicherüberlastungsmonitor eine Übertragung einer Flusssteuerungsnachricht 122 über den Port 104a zu der Upstream-Netzwerkvorrichtungen 103a und löst diese aus, ohne eine Übertragung der Flusssteuerungsnachricht 122 über den Port 104d zu der Upstream-Netzwerkvorrichtungen 103b auszulösen, in einer Ausführungsform. In Reaktion auf die Flusssteuerungsnachricht 122 unterbricht die Upstream-Netzwerkvorrichtung 103a in einer Ausführungsform vorübergehend die Übertragung von Paketen an die Netzwerkvorrichtung 102. Folglich beginnt die Überlastung in dem internen Speicher 112 der Netzwerkvorrichtung 102 in einer Ausführungsform abzunehmen. Die Flusssteuermaschine 114 oder ein anderer geeigneter Speicher-Überlastungsmonitor überwacht weiterhin die Überlastung in dem internen Speicher 112, und wenn sich der interne Speicher 112 zu einem zweiten Zeitpunkt nach dem ersten Mal in einem überlasteten Zustand befindet, erzeugt die Flusssteuerungsmaschine 114 die Übertragung einer Flusssteuerungsnachricht 124 über den Port 104d an die Upstream-Netzwerkvorrichtung 103b und löst sie aus, ohne Auslösen der Übertragung der Flusssteuerungsnachricht 124 über den Port 104a zu der Upstream-Netzwerkvorrichtung 103a. In Reaktion auf die Flusssteuerungsnachricht 124 von der Netzwerkvorrichtung 102 unterbricht die Upstream-Netzwerkvorrichtung 103b in einer Ausführungsform vorübergehend die Übertragung von Paketen an die Netzwerkvorrichtung 102.
  • Die Flusssteuermaschine 114 oder ein anderer geeigneter Speicher-Überlastungsmonitor überwacht weiterhin die Überlastung in dem internen Speicher 112 und wechselt zwischen der Übertragung von Flusssteuerungsnachrichten über den Port 104a und den Port 104d zu unterschiedlichen Zeiten weiter, wodurch in einer Ausführungsform die Flusssteuerung zwischen der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b über die Zeit verteilt wird. Verteilen der Flusssteuerung zwischen der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b über die Zeit verbessert im Allgemeinen die Verwendung der Netzwerkverbindungen 105a und 105b in wenigstens einigen Ausführungsformen. Zum Beispiel führt die Übertragung der Flusssteuerungsnachricht 122 über den Port 104a zu einer ausreichenden Entlastung der Überlastung im internen Speicher 112 und verzögert oder eliminiert die Übertragung der Flusssteuerungsnachricht 124 über den Port 104d in einigen Szenarien und Ausführungsformen.
  • Unter Bezugnahme auf 2A zeigt ein Zeitablaufdiagramm 200 die Bandbreite von Paketen, die gemäß einer Ausführungsform durch die jeweiligen der Upstream-Netzwerkvorrichtungen 103a und 103b von 1 über die Zeit an die Netzwerkvorrichtung 102 übertragen werden. Zu einer Zeit t0 übertragen sowohl die Upstream-Netzwerkvorrichtung 103a als auch die Upstream-Netzwerkvorrichtung 103b Pakete über jeweilige Netzwerkverbindungen 105a und 105b an die Netzwerkvorrichtung 102. Die Netzwerkvorrichtung 102 empfängt Pakete, die von der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b übertragen werden, und speichert zeitweise wenigstens einige der empfangenen Pakete in einem gemeinsam genutzten Puffer in dem internen Speicher 112. Nach Erfassen einer Überlastung in dem geteilten Puffer des internen Speichers 112 zu einem Zeitpunkt t1 überträgt die Netzwerkvorrichtung 102 eine Flusssteuerungsnachricht an die Upstream-Netzwerkvorrichtung 103a, ohne die Flusssteuerungsnachricht an die Upstream-Netzwerkvorrichtung 103b zu übertragen. Zu einem Zeitpunkt t2 als Reaktion auf die zum Zeitpunkt t1 an die Upstream-Netzwerkvorrichtung 103a übertragene Flusssteuerungsnachricht, unterbricht die Upstream-Netzwerkvorrichtung 103a die Übertragung von Paketen über die Netzwerkverbindung 105a an die Netzwerkvorrichtung 102 und puffert stattdessen in einer Ausführungsform Pakete, die zu der Netzwerkvorrichtung 102 zu übertragen sind in dem Speicher 120a, der in der Upstream-Netzwerkvorrichtung 103a enthalten oder damit gekoppelt ist. Da jedoch zu der Zeit t1 keine Flusssteuerungsnachricht zu der Upstream-Netzwerkvorrichtung 103b übertragen wird, überträgt die Upstream-Netzwerkvorrichtung 103b weiterhin Pakete zu der Zeit t2 über die Netzwerkverbindung 105b zu der Netzwerkvorrichtung 102. Die Netzwerkvorrichtung 102 stoppt somit das Empfangen von Paketen über die Netzwerkverbindung 105a von der Upstream-Netzwerkvorrichtung 103a, während weiterhin Pakete über die Netzwerkverbindung 105b von der Upstream-Netzwerkvorrichtung 103b empfangen werden, was zu einer Verringerung der Gesamtbandbreite von Paketen führt, die von der Netzwerkvorrichtung 102 in einer Ausführungsform empfangen werden. Die Netzwerkvorrichtung 102 fährt mit dem vorübergehenden Speichern von wenigstens einigen der Pakete fort, die von der Upstream-Netzwerkvorrichtung 103b in dem internen Speicher 112 empfangen werden, in einer Ausführungsform.
  • Anschließend, wenn die Überlastung im internen Speicher 112 anhält, wie in dem in 2A gezeigten Beispiel, überträgt die Netzwerkvorrichtung 102 zu einer Zeit t3 eine Flusssteuerungsnachricht an die Upstream-Netzwerkvorrichtung 103b, ohne die Flusssteuerungsnachricht an die Upstream-Netzwerkvorrichtung 103a zu übertragen. Als Reaktion auf die zu der Upstream-Netzwerkvorrichtung 103b übertragene Flusssteuerungsnachricht unterbricht die Upstream-Netzwerkvorrichtung 103b zu einem Zeitpunkt t4 die Übertragung von Paketen über die Netzwerkverbindung 105b an die Netzwerkvorrichtung 102. Die Upstream-Netzwerkvorrichtung 103b puffert stattdessen in einer Ausführungsform Pakete, die zu der Netzwerkvorrichtung 102 in dem Speicher 120b zu übertragen sind, der in der Upstream-Netzwerkvorrichtung 103b enthalten oder mit dieser gekoppelt ist. Zwischen dem Zeitpunkt t4 und einem Zeitpunkt t5 wird die Übertragung von Paketen zu der Netzwerkvorrichtung 102 sowohl von der Upstream-Netzwerkvorrichtung 103a über die Netzwerkverbindung 105a als auch von der Upstream-Netzwerkvorrichtung 103b über die Netzwerkverbindung 105b in der dargestellten Ausführungsform ausgesetzt. Die teilweise oder vollständige Reduktion der Übertragung von Paketen erleichtert es dem Paketprozessor 108 der Netzwerkvorrichtung 102, in einem internen Paketspeicher 112 gespeicherte Pakete zu verarbeiten und in einem Ausführungsbeispiel einen Überlastungszustand des internen Paketspeichers 112 abzuschwächen.
  • Weiter mit Bezug auf 2A, zu der Zeit t5 nimmt die Upstream-Netzwerkvorrichtung 103a die Übertragung von Paketen über die Netzwerkverbindung 105a zu der Netzwerkvorrichtung 102 wieder auf, beispielsweise in Reaktion auf eine Flusssteuerungsnachricht, die die Upstream-Netzwerkvorrichtung 103a anweist, die Übertragung an die Netzwerkvorrichtung 102 wiederaufzunehmen, oder nach Ablauf einer Pausenzeit, die in der Flusssteuerungsnachricht angezeigt wird, die zu der Zeit t1 zu der Upstream-Netzwerkvorrichtung 103a gesendet wird. Die Upstream-Netzwerkvorrichtung 103b fährt jedoch mit der Unterbrechung der Übertragung von Paketen über die Netzwerkverbindung 105b zu der Netzwerkvorrichtung 102 fort. Die Netzwerkvorrichtung 102 beginnt mit dem Empfangen von Paketen über die Netzwerkverbindung 105a von der Upstream-Netzwerkvorrichtung 103b und temporären Speichern von wenigstens einigen der empfangenen Pakete in dem internen Speicher 112 in einer Ausführungsform. Zu einer Zeit t6 nimmt die Upstream-Netzwerkvorrichtung 103b die Übertragung von Paketen zu der Netzwerkvorrichtung 102 wieder auf, beispielsweise in Reaktion auf eine Flusssteuerungsnachricht, die die Upstream-Netzwerkvorrichtung 103b anweist, die Übertragung zu der Netzwerkvorrichtung 102 wiederaufzunehmen, oder nach Ablauf einer Pausenzeit, die in der zum Zeitpunkt t3 übertragenen Flusssteuerungsnachricht an die Upstream-Netzwerkvorrichtung 103b angezeigt wird. In dem Beispiel von 2A senden zum Zeitpunkt t6 sowohl die Upstream-Netzwerkvorrichtung 103a als auch die Upstream-Netzwerkvorrichtung 103b erneut Pakete über jeweilige Netzwerkverbindungen 105a und 105b an die Netzwerkvorrichtung 102. Die Netzwerkvorrichtung 102 empfängt Pakete über die Netzwerkverbindung 105a von der Upstream-Netzwerkvorrichtung 103a und über die Netzwerkverbindung 105b von der Upstream-Netzwerkvorrichtung 103b und speichert temporär wenigstens einige der empfangenen Pakete in dem internen Speicher 112 in einer Ausführungsform.
  • Die Netzwerkvorrichtung 102 überwacht weiterhin die Überlastung in dem gemeinsam genutzten Pufferraum im internen Speicher 112 und wechselt selektiv zwischen der Veranlassung einer der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b, die Übertragung von Paketen an die Netzwerkvorrichtung 102 auszusetzen, ohne zu bewirken, dass die andere der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b in einer Ausführungsform die Übertragung von Paketen an die Netzwerkvorrichtung 102 aussetzt. Eine Entscheidung darüber, welche Upstream-Netzwerkvorrichtung 103 ausgesetzt ist, wird basierend auf verschiedenen Überlegungen getroffen, einschließlich zum Beispiel relativer Bandbreiten von jeweiligen Netzwerkverbindungen 105 zwischen der Netzwerkvorrichtung 102 und den Upstream-Netzwerkvorrichtungen 103, einer Rate, mit der der interne Speicher 112 der Netzwerkvorrichtung 102 überlastet wird, Gesamtprioritäten verschiedener Flüsse von den jeweiligen Upstream-Netzwerkvorrichtungen 103 zu der Netzwerkvorrichtung 102, Randomisierung der Aussetzung und dergleichen. Die abwechselnde Flusssteuerung zwischen der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b reduziert im Allgemeinen die Zeitdauer (z.B. die Zeit zwischen t4 und t5), während der die Übertragung von Paketen an die Netzwerkvorrichtung 102 sowohl von der Upstream-Netzwerkvorrichtung 103a über die Netzwerkverbindung 105a als auch der Upstream-Netzwerkvorrichtung 103b über die Netzwerkverbindung 105b unterbrochen werden muss, wodurch die Verbindungsausnutzung der Netzwerkverbindung 105a und der Netzwerkverbindung 105b im Vergleich zu Systemen erhöht wird, in denen eine Überlastung in einem gemeinsam genutzten Puffer einer Netzwerkvorrichtung 102 zu einer gleichzeitigen Aussetzung des Übergangs von Paketen zu mehreren Anschlüssen, die den Puffer teilen, in wenigstens einigen Ausführungsformen führt.
  • Kurz auf 2B Bezug nehmend, veranschaulicht ein Zeitablauf-Diagramm 250 eine kombinierte Bandbreite von Paketen, die an die Netzwerkvorrichtung 102 sowohl von der Upstream-Netzwerkvorrichtung 103a als auch von der Upstream-Netzwerkvorrichtung 103b gemäß einer Ausführungsform gesendet werden. Das Zeitablauf-Diagramm 250 zeigt die kombinierte Bandbreite über die Zeit in einer Ausführungsform, in der der Fluss von Paketen von der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b in Übereinstimmung mit dem Zeitablauf-Diagramm 200 von 2A gesteuert wird. Bezugnehmend auf das Zeitablauf-Diagramm 250 ist zu dem Zeitpunkt t0 die kombinierte Bandbreite von Paketen, die zu der Netzwerkvorrichtung 102 übertragen werden, gleich einer Summe der vollen Bandbreite von Paketen, welche von der Upstream-Netzwerkvorrichtung 103a an die Netzwerkvorrichtung 102 übertragen werden, und die volle Bandbreite von Paketen, die von der Upstream-Netzwerkvorrichtung 103b an die Netzwerkvorrichtung 102 übertragen werden. Zu der Zeit t2 ist die kombinierte Bandbreite von Paketen, die an die Netzwerkvorrichtung 102 übertragen werden, aufgrund der Unterbrechung der Übertragung von Paketen an die Netzwerkvorrichtung 102 durch die Upstream-Netzwerkvorrichtung 103 reduziert, ist jedoch in der dargestellten Ausführungsform nicht vollständig aufgehoben. Der kombinierte Fluss von Paketen zu der Netzwerkvorrichtung 102 wird zum Zeitpunkt t4 vollständig ausgesetzt. Anschließend wird zu dem Zeitpunkt t5 der kombinierte Fluss von Paketen zu der Netzwerkvorrichtung 102 aufgrund der Wiederaufnahme der Übertragung von Paketen zu der Netzwerkvorrichtung 102 durch die Upstream-Netzwerkvorrichtung 103a teilweise wieder aufgenommen. Zu der Zeit t6 wird der kombinierte Fluss von Paketen zu der Netzwerkvorrichtung 102 erhöht, um in der dargestellten Ausführungsform erneut die Bandbreite zum Zeitpunkt t0 anzupassen. In dem Zeitablauf-Diagramm 250 ist der Fluss von Paketen zu der Netzwerkvorrichtung 102 für nur eine relativ kurze Zeitperiode zwischen dem Zeitpunkt t4 und dem Zeitpunkt t5 vollständig unterbrochen. Die Zeitspanne zwischen der Zeit t4 und der Zeit t5, während der der Fluss von Paketen zu der Netzwerkvorrichtung 102 vollständig unterbrochen ist, ist relativ kurz im Vergleich zu Systemen, bei denen eine Überlastung in einem gemeinsam genutzten Pufferraum einer Netzwerkvorrichtung 102 zu einer Unterbrechung der Übertragung von Paketen von mehreren (z.B. allen) Upstream-Netzwerkvorrichtungen zu mehreren (z.B. allen) Eingangsanschlüssen, die einen gemeinsam genutzten Pufferraum teilen. In einigen Ausführungsformen erspart die alternierende Flusssteuerung zwischen der Upstream-Netzwerkvorrichtung 103a und der Upstream-Netzwerkvorrichtung 103b vollständig eine Zeitspanne, während der die Übertragung von Paketen an die Netzwerkvorrichtung 102 sowohl von der Upstream-Netzwerkvorrichtung 103a als auch der Upstream-Netzwerkvorrichtung 103b gleichzeitig ausgesetzt wird.
  • Unter erneuter Bezugnahme auf 1, in einigen Ausführungsformen ist die Flusssteuerungsmaschine 114 oder ein anderer geeigneter Speicher-Überlastungsmonitor konfiguriert, um eine Überlastung in dem internen Speicher 112 durch Überwachen eines aktuellen Füllstands des gemeinsam genutzten Pufferraums in dem internen Speicher 112 und Vergleichen des aktuellen Füllstands des geteilten Pufferraums 112 mit einem Schwellenwert zu überwachen. Die Flusssteuerungsmaschine ist konfiguriert, um eine Flusssteuerung unter den Upstream-Netzwerkvorrichtungen 103 zu verteilen, indem unterschiedliche Schwellenwerte zum Triggern von Flusssteuerungsnachrichten über jeweilige Ports 104 implementiert werden, die mit entsprechenden Upstream-Netzwerkvorrichtungen 103 gekoppelt sind. In einer Ausführungsform ist die Flusssteuermaschine 114 konfiguriert, um zufällig unterschiedliche Schwellenwerte zum Auslösen der Übertragung von Flusssteuerungsnachrichten über verschiedene Ports 104 zu erzeugen. Zum Beispiel umfasst die Flusssteuermaschine 114 einen Zufallsschwellenwertgenerator (nicht gezeigt), der konfiguriert ist, um Sätze von randomisierten Schwellenwerten auszugeben, die jeweiligen Ports 104 oder jeweiligen Teilmengen von Ports 104 zu unterschiedlichen Messzeiten entsprechen. In einer Ausführungsform ist der Zufallsschwellenwertgenerator konfiguriert, um randomisierte Schwellenwerte i*Durchschnitts-Antwortzeit zu erzeugen, wobei i eine zufällig erzeugte Zahl zwischen 0 und 2 ist, und die Durchschnitts-Antwortzeit eine durchschnittliche Zeitspanne zwischen einer Zeit ist, zu der die Flusssteuerungsmaschine 114 eine Flusssteuerungsnachricht erzeugt, und einer Zeit, zu der die Netzwerkvorrichtung 102 tatsächlich das Empfangen von Paketen als Reaktion auf die Flusssteuerungsnachricht stoppt. In anderen Ausführungsformen werden andere geeignete randomisierte Schwellenwerte verwendet.
  • Die Flusssteuerungsmaschine 114 ist konfiguriert, um den Füllstand des geteilten Pufferraums in dem internen Speicher 112 mit jedem der jeweiligen Schwellenwerte zu vergleichen, die den jeweiligen Ports 104 entsprechen. Wenn zu einer gegebenen Messzeit der aktuelle Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 den Schwellenwert überschreitet, der einem bestimmten Port 104 oder einer bestimmten Teilmenge von Ports 104 entspricht, dann erzeugt die Flusssteuerungsmaschine 114 die Übertragung einer Flusssteuerungsnachricht über den bestimmten Port 104 oder die bestimmte Teilmenge von Ports 104 und löst diese aus, ohne die Übertragung der Flusssteuerungsnachricht über andere Ports 104 auszulösen. Somit, zum Beispiel, basierend auf dem Vergleich eines aktuellen Füllstands des geteilten Pufferraums in dem internen Speicher 112 mit jedem der jeweiligen Schwellenwerte, die den jeweiligen Ports 104 zu einem ersten Zeitpunkt entsprechen, erzeugt und triggert die Flusssteuermaschine 114 die Übertragung einer Flusssteuerungsnachricht zu einer oder mehreren ersten Upstream-Netzwerkvorrichtungen 103, ohne die Übertragung der Flusssteuerungsnachricht zu einer anderen oder mehreren der Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform auszulösen. Anschließend, basierend auf dem Vergleich eines aktuellen Füllstands des geteilten Pufferraums in dem internen Speicher 112 mit jedem der jeweiligen Schwellenwerte, die den jeweiligen Anschlüssen 104 zu einem zweiten Zeitpunkt entsprechen, erzeugt und triggert die Flusssteuerungsmaschine 114 in einer Ausführungsform eine Übertragung einer Flusssteuerungsnachricht zu einer oder mehreren zweiten Upstream-Netzwerkvorrichtungen 103, ohne eine Übertragung der Flusssteuerungsnachricht zu anderen Upstream-Netzwerkvorrichtungen 103 auszulösen, und so weiter.
  • Als ein spezifischeres Beispiel ist in einem Beispielszenario ein Schwellenwert, der für den Port 104a zu einem ersten Zeitpunkt erzeugt wird, in einer Ausführungsform relativ niedriger als ein relativ höherer Schwellenwert, der für den Port 104d zum ersten Mal erzeugt wird. In diesem Beispielszenario überschreitet der aktuelle Füllstand beim ersten Mal den relativ niedrigeren Schwellenwert, der dem Port 104a entspricht, überschreitet jedoch nicht den relativ höheren Schwellenwert, der dem Port 104d entspricht. Dementsprechend erzeugt in diesem Szenario die Flusssteuerungsmaschine 114 zum ersten Mal eine Übertragung der Flusssteuerungsnachricht 122 über den Port 104a und löst diese aus, ohne die Übertragung der Flusssteuerungsnachricht 122 über den Port 104d auszulösen. Auf der anderen Seite ist zu einem zweiten Zeitpunkt ein Schwellenwert, der für den Port 104a erzeugt wird, in einer Ausführungsform relativ höher als ein relativ niedrigerer Schwellenwert, der für den Port 104d erzeugt wird, und der gegenwärtige Füllstand zu dem zweiten Zeitpunkt nicht den relativ höheren Schwellenwert überschreitet, der dem Anschluss 104a entspricht, sondern den relativ niedrigeren Schwellenwert entsprechend dem Anschluss 104d überschreitet, selbst wenn beispielsweise der aktuelle Füllstand zu dem zweiten Zeitpunkt der gleiche ist als oder niedriger als der aktuelle Füllstand zur ersten Zeit. Dementsprechend erzeugt in diesem Szenario die Flusssteuerungsmaschine 114 zu einem zweiten Zeitpunkt die Übertragung der Flusssteuerungsnachricht 124 über den Anschluss 104d und löst diese aus, ohne in einer Ausführungsform die Übertragung der Flusssteuerungsnachricht 124 über den Port 104a auszulösen.
  • In einer anderen Ausführungsform ist die Flusssteuerungsmaschine 114 konfiguriert, einen Zeitablaufplan zum Verteilen der Flusssteuerung zwischen den Upstream-Netzwerkvorrichtungen 103 zu verwenden. Zum Beispiel ist die Flusssteuerungsmaschine 114 konfiguriert, einen sich wiederholenden Zeitablaufplan zu verwenden, der eine Vielzahl von Zeitschlitzen zur Übertragung von Flusssteuerungsnachrichten über verschiedene Ports 104 oder über unterschiedliche Teilmengen von Ports 104 spezifiziert, wenn ein aktueller Füllstand des internen Speichers 112 einen vorbestimmten Schwellenwert in verschiedenen der Zeitschlitze überschreitet. Als ein Beispiel spezifiziert der sich wiederholende Zeitablaufplan einen ersten Zeitschlitz zur Übertragung einer Flusssteuerungsnachricht über eine erste Teilmenge von Ports 104, einen zweiten Zeitschlitz zur Übertragung einer Flusssteuerungsnachricht über eine zweite Teilmenge von Ports 104, einen dritten Zeitschlitz zur Übertragung einer Flusssteuerungsnachricht über eine dritte Teilmenge von Ports 104 und so weiter, in einer Ausführungsform. Wenn die letzte geplante Teilmenge von Ports 104 erreicht ist, wird der Zeitablaufplan beginnend mit dem ersten Zeitschlitz wiederholt, der in einer Ausführungsform die Übertragung einer Flusssteuerungsnachricht über die erste Teilmenge von Ports 104 spezifiziert. Die Flusssteuerungsmaschine 114 ist konfiguriert, um den aktuellen Füllstand, der einem aktuellen Zeitschlitz entspricht, des gemeinsam genutzten Pufferraums in dem internen Speicher 112 mit einem vorbestimmten Schwellenwert zu vergleichen. Wenn i) der aktuelle Füllstand des gemeinsam genutzten Pufferraums im internen Speicher 112 den vorgegebenen Schwellenwert überschreitet und wenn ii) der aktuelle Zeitschlitz der erste Zeitschlitz ist, dann löst die Flusssteuermaschine 114 die Übertragung einer Flusssteuerungsnachricht über die erste Teilmenge von einem oder mehreren Ports 104 aus, die für die Flusssteuerung in dem ersten Zeitschlitz spezifiziert sind. Die Flusssteuerungsmaschine 114 triggert die Übertragung der Flusssteuerungsnachricht über die erste Teilmenge von einem oder mehreren Ports 104, ohne eine Übertragung der Flusssteuerungsnachricht über Ports 104 auszulösen, die in der ersten Teilmenge in einer Ausführungsform nicht enthalten sind. Die Flusssteuermaschine 114 oder ein anderer geeigneter Speicher-Überlastungsmonitor überwacht weiterhin den Füllstand des internen Speichers 112 und vergleicht in einer Ausführungsform die aktuellen Füllstände des internen Speichers 112 mit dem vorbestimmten Schwellenwert. Folglich, wenn i) der aktuelle Füllstand des internen Speichers 112 den vorbestimmten Schwellenwert überschreitet und wenn ii) der aktuelle Zeitschlitz der zweite Zeitschlitz ist, dann löst die Flusssteuerungsmaschine 114 die Übertragung einer Flusssteuerungsnachricht über die zweite Teilmenge von einem oder mehreren Ports 104 aus, die für die Flusssteuerung in dem zweiten Zeitschlitz spezifiziert sind, ohne die Übertragung der Flusssteuerungsnachricht über andere Ports 104 zu triggern, die nicht in der zweiten Teilmenge enthalten sind, und so weiter, in einer Ausführungsform.
  • In einer anderen Ausführungsform ist die Flusssteuerungsmaschine 114 konfiguriert, die Flusssteuerung unter den Upstream-Netzwerkvorrichtungen 103 zu verteilen, indem statistisch bestimmt wird, ob Flusssteuerungsnachrichten über jeweilige Ports 104 zu übertragen sind. Zum Beispiel ist die Flusssteuerungsmaschine 114 konfiguriert, in einer Ausführungsform zu bestimmen, ob eine Flusssteuerungsnachricht über einen Port 104 mit einer Wahrscheinlichkeit übertragen werden soll oder nicht, die mit zunehmendem Füllpegel des geteilten Pufferraums des internen Speichers 112 zunimmt. Zum Beispiel bestimmt die Flusssteuermaschine 114, ob Flusssteuerungsnachrichten über entsprechende Ports 104 oder Teilmengen von Ports 104 zu übertragen sind oder nicht, basierend auf einer Wahrscheinlichkeit, die aus einer statistischen Kurve, wie einer frühen Zufallserkennungs (RED) -Kurve oder einer gewichteten frühen Zufallserkennungs (WRED) -Kurve, in einigen Ausführungsformen erhalten wird. Wenn in dieser Ausführungsform der aktuelle Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 unter einem minimalen Schwellenwert liegt, dann überträgt die Flusssteuerungsmaschine 114 keine Flusssteuerungsnachricht über einen der Ports 104. Wenn der aktuelle Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 über einem maximalen Schwellenwert liegt, löst die Flusssteuerungsmaschine 114 die Übertragung einer Flusssteuerungsnachricht über alle Ports 104 aus, die sich den Pufferraum teilen. Wenn jedoch der aktuelle Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 zwischen dem minimalen Schwellenwert und dem maximalen Schwellenwert liegt, bestimmt die Flusssteuermaschine 114 basierend auf einer Wahrscheinlichkeit, ob eine Flusssteuerungsnachricht über jede jeweilige Untergruppe von Port 104 übertragen werden soll oder nicht, wobei die Wahrscheinlichkeit mit zunehmendem Füllpegel des gemeinsam genutzten Pufferraums in dem internen Speicher 112 zunimmt. Die probabilistische Bestimmung, ob eine Flusssteuerungsnachricht über entsprechende Teilmengen von Ports 104 zu übertragen ist oder nicht, führt zu unterschiedlichen Entscheidungen, die für unterschiedliche Teilmengen von Ports 104 in einer Ausführungsform getroffen werden. Dementsprechend löst die Flusssteuerungsmaschine 114 als Reaktion auf das Erkennen überlasteter Zustände im gemeinsam genutzten Pufferraum im internen Speicher 112 die Übertragung von Flusssteuerungsnachrichten über verschiedene Teilmengen von Ports 104 zu unterschiedlichen Zeiten aus, wodurch eine Flusssteuerung unter den entsprechenden unterschiedlichen Teilmengen von Upstream-Netzwerkvorrichtungen 103 in einer Ausführungsform verteilt wird. In einigen Ausführungsformen werden verschiedenen Teilmengen von Ports 104 unterschiedliche Gewichtungen zugewiesen, die es relativ mehr oder weniger wahrscheinlich machen, dass eine Flusssteuerungsnachricht über bestimmte Teilmengen von Ports 104 übertragen wird. In einigen Ausführungsformen erzeugt die Flusssteuerungsmaschine 114 randomisierte Gewichte, die jeweiligen Teilmengen von Ports 104 entsprechen, und wendet verschiedene randomisierte Gewichtungen auf eine Wahrscheinlichkeit an, die basierend auf dem aktuellen Füllstand des geteilten Pufferraums erhalten wird, um zu bestimmen, ob eine Flusssteuerungsnachricht über verschiedene Teilmengen von Ports 104 zu übertragen ist oder nicht.
  • In einigen Ausführungsformen wird die Verteilung der Flusssteuerung durch die Upstream-Netzwerkvorrichtungen 103 zusätzlich zu oder anstelle der Verteilung der Flusssteuerung implementiert, die durch die Netzwerkvorrichtung 102 implementiert wird. Zum Beispiel sind in einer Ausführungsform unterschiedliche Teilmengen von Upstream-Netzwerkvorrichtungen 103 konfiguriert, um zu Flusssteuerungsnachrichten zu verschiedenen Zeiten (z.B. während unterschiedlicher Zeitschlitze) zu antworten. Wenn in dieser Ausführungsform eine Upstream-Netzwerkvorrichtung 103 eine Flusssteuerungsnachricht über eine Netzwerkverbindung empfängt, antwortet die Upstream-Netzwerkvorrichtung 103 nicht notwendigerweise durch Aussetzen der Übertragung von Paketen, wie von der Flusssteuerungsnachricht über die Netzwerkverbindung angewiesen. Stattdessen prüft die Upstream-Netzwerkvorrichtung 103, ob der aktuelle Zeitschlitz zur Flusssteuerung durch die Upstream-Netzwerkvorrichtung 103 bestimmt ist. Wenn der aktuelle Zeitschlitz nicht für die Flusssteuerung durch die Upstream-Netzwerkvorrichtung 103 bestimmt ist, ignoriert die Upstream-Netzwerkvorrichtung 103 in einer Ausführungsform die Flusssteuerungsnachricht. In einer anderen Ausführungsform, wenn der aktuelle Zeitschlitz nicht für die Flusssteuerung durch die Upstream-Netzwerkvorrichtung 103 bestimmt ist, dann sendet die Upstream-Netzwerkvorrichtung 103 in einer Ausführungsform weiterhin Pakete über die Netzwerkverbindung bis zu seinem bestimmten Flusssteuerzeitschlitz und unterbricht dann die Übertragung von Paketen über die Netzwerkverbindung.
  • 3 ist ein Flussdiagramm, das eine beispielhafte Technik 300 zum Steuern einer Überlastung bei einer Netzwerkvorrichtung gemäß einer Ausführungsform darstellt. In einer Ausführungsform implementiert die Netzwerkvorrichtung 102 von 1 die Technik 300 zum Steuern einer Überlastung in dem internen Speicher 112 der Netzwerkvorrichtung 102. Zum Beispiel ist die Flusssteuerungsmaschine 114 der Netzwerkvorrichtung 102 konfiguriert, um wenigstens einen Teil der Technik 300 zu implementieren, um eine Überlastung in dem internen Speicher 112 in einer Ausführungsform zu steuern. Zur Vereinfachung der Erläuterung wird die Technik 300 nachstehend unter Bezugnahme auf die Netzwerkvorrichtung 102 von 1 beschrieben. Jedoch wird die Technik 300 in anderen Ausführungsformen durch geeignete Netzwerkvorrichtungen implementiert, die sich von der Netzwerkvorrichtung 102 von 1 unterscheiden.
  • Bei Block 302 werden Pakete von jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen empfangen, die mit der Netzwerk-Switch-Vorrichtung über jeweilige einer Vielzahl von Netzwerkverbindungen gekoppelt sind, die mit jeweiligen einer Vielzahl von Ports der Netzwerk-Switch-Vorrichtung gekoppelt sind. Zum Beispiel wird die Vielzahl von Paketen über entsprechende Ports 104 empfangen, die über jeweilige Netzwerkverbindungen 105 mit entsprechenden Upstream-Netzwerkvorrichtungen 103 gekoppelt sind.
  • Bei Block 304 werden wenigstens einige der bei Block 302 empfangenen Pakete vorübergehend in einem internen Speicher der Netzwerk-Switch-Vorrichtung gespeichert. Zum Beispiel werden die wenigstens einige der Pakete temporär in dem internen Speicher 112 der Netzwerk-Switch-Vorrichtung 102 gespeichert. Als ein spezifischeres Beispiel werden die wenigstens einigen der Pakete temporär in einem gemeinsam genutzten Pufferraum in dem internen Speicher 112 gespeichert, wobei der Pufferraum zum Speichern von Paketen geteilt wird, die über die Vielzahl von Ports 104 empfangen werden.
  • Bei Block 306 wird ein erster Überlastungszustand in dem internen Speicher erfasst. Zum Beispiel erfasst die Flusssteuerungsmaschine 114 den ersten Überlastungszustand in dem internen Speicher 112 in einer Ausführungsform. Der erste Überlastungszustand zeigt an, dass der gemeinsam genutzte Pufferraum in dem internen Speicher 112 in einer Ausführungsform kurz vor einer Erschöpfung steht. In einer Ausführungsform wird der erste Überlastungszustand basierend auf einem aktuellen Füllstand des gemeinsam genutzten Pufferraums bestimmt. Zum Beispiel wird der erste Überlastungszustand erfasst, wenn der aktuelle Füllstand des geteilten Pufferraums in einer Ausführungsform einen ersten randomisierten Schwellenwert überschreitet. In einer anderen Ausführungsform wird der erste Überlastungszustand erfasst, wenn ein Füllstand des geteilten Pufferraums während eines ersten Zeitschlitzes einen vorbestimmten Schwellenwert überschreitet. In noch einer anderen Ausführungsform wird der erste Überlastungszustand probabilistisch bestimmt, wobei die Wahrscheinlichkeit des Ermitteins des ersten Überlastungszustands mit zunehmendem Füllpegel des gemeinsam genutzten Pufferraums zunimmt. In anderen Ausführungsformen wird der erste Überlastungszustand auf andere geeignete Weise erfasst.
  • Bei Block 308, als Reaktion auf das Erfassen des ersten Überlastungszustands in dem internen Speicher, triggert die Flusssteuerungsmaschine 114 die Übertragung einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports 104, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen 103 gekoppelt sind, ohne die Übertragung der ersten Flusssteuerungsnachricht über einen Port 104 auszulösen, der nicht in der ersten Teilmenge von Ports 104 enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge der Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne zu bewirken, dass eine Upstream-Netzwerkvorrichtung 103, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen 103 enthalten ist, die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung 102 vorübergehend aussetzt.
  • Bei Block 310 wird ein alternierendes Schema verwendet um abwechselnd zu bewirken, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, die Überlastung in dem internen Speicher der Netzwerkschaltvorrichtung zu überwachen. Somit erfasst die Flusssteuerungsmaschine 114 zum Beispiel zu einem Zeitpunkt nach dem Erfassen des ersten Überlastungszustands einen zweiten Überlastungszustand in dem internen Speicher 112. In einer Ausführungsform wird der zweite Überlastungszustand basierend auf einem aktuellen Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 zu der nachfolgenden Zeit bestimmt. Zum Beispiel wird der zweite Überlastungszustand erfasst, wenn der aktuelle Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 zu der nachfolgenden Zeit in einer Ausführungsform einen zweiten randomisierten Schwellenwert überschreitet. In einer anderen Ausführungsform wird der zweite Überlastungszustand detektiert, wenn ein Füllstand des gemeinsam genutzten Pufferraums in dem internen Speicher 112 zu der nachfolgenden Zeit einen vorbestimmten Schwellenwert während eines zweiten Zeitschlitzes überschreitet. In noch einer anderen Ausführungsform wird der zweite Überlastungszustand probabilistisch bestimmt, wobei die Wahrscheinlichkeit des Ermittelns des zweiten Überlastungszustands mit zunehmendem Füllpegel des gemeinsam genutzten Pufferraums zunimmt. In anderen Ausführungsformen wird der zweite Überlastungszustand auf andere geeignete Weise erfasst.
  • Als Antwort auf das Erfassen des zweiten Überlastungszustands des gemeinsam genutzten Pufferraums in dem internen Speicher 112 zu der nachfolgenden Zeit, triggert die Flusssteuerungsmaschine 114 die Übertragung einer zweiten Flusssteuerungsnachricht über eine zweite Teilmenge von Ports, die sich von der ersten Teilmenge von Ports unterscheidet, gekoppelt an eine zweite Teilmenge von Upstream-Netzwerkvorrichtungen, die sich von der ersten Teilmenge von Upstream-Netzwerkvorrichtungen unterscheidet. In einer Ausführungsform triggert die Flusssteuerungsmaschine 114 die Übertragung der zweiten Flusssteuerungsnachricht über die zweite Teilmenge von Ports 104, ohne die Übertragung der zweiten Flusssteuerungsnachricht über irgendeinen Port 104 auszulösen, der nicht in der zweiten Teilmenge von Ports 104 enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen 103 in der zweiten Teilmenge von Upstream-Netzwerkvorrichtungen 103 die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung 102 zeitweilig aussetzen, ohne zu veranlassen, dass irgendwelche Upstream-Netzwerkvorrichtungen 103, die nicht in der zweiten Teilmenge von Upstream-Netzwerkvorrichtungen 103 enthalten sind, vorübergehend die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung 102 aussetzen.
  • In einer Ausführungsform umfasst eine Technik zum Steuern einer Überlastung bei einer Netzwerk-Switch-Vorrichtung das Empfangen von Paketen an der Netzwerk-Switch-Vorrichtung von jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen, die mit der Netzwerk-Switch-Vorrichtung über jeweilige einer Vielzahl von Ports der Netzwerk-Switch-Vorrichtung gekoppelt sind; zeitweiliges Speichern von wenigstens einigen der empfangenen Pakete in einem internen Speicher der Netzwerk-Switch-Vorrichtung; Erfassen eines ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung mit einer Flusssteuerungsmaschine der Netzwerk-Switch-Vorrichtung; als Reaktion auf Erkennen des ersten Überlastungszustands im internen Speicher, Triggern, mit der Flusssteuerungsmaschine, von Senden einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports der Vielzahl von Ports, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, an die Vielzahl von Upstream-Netzwerkvorrichtungen, ohne Triggern der Übertragung der Flusssteuerungsnachricht über irgendeinen Port, der nicht in der ersten Teilmenge von Ports enthalten ist, um zu veranlassen, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten ist, von der Vielzahl von Upstream-Netzwerkvorrichtungen veranlasst wird, vorübergehend die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung auszusetzen; und Alternieren, mit der Flusssteuermaschine, zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, eine Überlastung in dem internen Speicher der Netzwerk-Switch-Vorrichtung zu überwachen.
  • In anderen Ausführungsformen umfasst die Technik jede geeignete Kombination von einem oder mehreren der folgenden Merkmale.
  • Alternieren zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, umfasst: anschließend an das Erfassen des ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung, Erfassen eines zweiten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung mit der Flusssteuerungsmaschine, und als Reaktion auf das Erfassen des zweiten Überlastungszustands in dem internen Speicher, Triggern, mit der Flusssteuerungsmaschine, von Senden einer zweiten Flusssteuerungsnachricht über eine zweite Teilmenge von Ports der Vielzahl von Ports, gekoppelt an eine zweite Teilmenge von Upstream-Netzwerkvorrichtungen der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der zweiten Flusssteuerungsnachricht über einen Port auszulösen, der nicht in der zweiten Teilmenge von Ports enthalten ist, um zu veranlassen, dass Upstream-Netzwerkvorrichtungen in der zweiten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung, die nicht in der zweiten Teilmenge der Upstream-Netzwerkvorrichtungen enthalten ist, veranlasst wird, vorübergehend die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung auszusetzen.
  • Das vorübergehende Speichern von wenigstens einigen der empfangenen Pakete in dem internen Speicher der Netzwerk-Switch-Vorrichtung umfasst das zeitweilige Speichern, in einem gemeinsamen Puffer, der in dem internen Speicher angeordnet ist, von Paketen, die über wenigstens die erste Teilmenge von Ports und die zweite Teilmenge von Ports empfangen werden.
  • Das Erfassen des ersten Überlastungszustands und des zweiten Überlastungszustands in dem internen Speicher umfasst das Erfassen des Überlastungszustands basierend auf dem Überwachen eines Füllstands des gemeinsam genutzten Puffers, der in dem internen Speicher angeordnet ist.
  • Das Erfassen des ersten Überlastungszustands umfasst das Erfassen des ersten Überlastungszustands, wenn der Füllstand des geteilten Puffers ein erstes Überlastungskriterium erfüllt.
  • Das Erfassen des zweiten Überlastungszustands umfasst das Erfassen des zweiten Überlastungszustands, wenn der Füllstand des geteilten Puffers ein zweites Überlastungskriterium erfüllt, das sich von dem ersten Überlastungskriterium unterscheidet.
  • Das Erfassen des ersten Überlastungszustands, wenn der Füllstand des geteilten Puffers das erste Überlastungskriterium erfüllt, umfasst das Erfassen des ersten Überlastungszustands, wenn der Füllstand des geteilten Puffers einen ersten Schwellenwert überschreitet.
  • Das Erfassen des zweiten Stauzustands, wenn der Füllstand des geteilten Puffers das zweite Überlastungskriterium erfüllt, umfasst das Erfassen des zweiten Überlastungszustands, wenn der Füllstand des geteilten Puffers einen zweiten Schwellwert überschreitet, der sich von dem ersten Schwellwert unterscheidet.
  • Die Technik umfasst ferner vor dem Erfassen des ersten Überlastungszustands und dem Erfassen des zweiten Überlastungszustands das Erzeugen des ersten Schwellenwerts und des zweiten Schwellenwerts unter Verwendung eines Zufallszahlengenerators.
  • Das Erzeugen des ersten Schwellenwerts umfasst das Multiplizieren einer durchschnittlichen Flusssteuerungsantwortzeit mit einer ersten Zufallszahl, die von dem Zufallszahlengenerator erzeugt wird, wobei die durchschnittliche Flusssteuerungsantwortzeit basierend auf jeweiligen Flusssteuerungsantwortzeiten jeweiliger Upstream-Netzwerkvorrichtungen der Vielzahl von Upstream-Netzwerkvorrichtungen bestimmt wird, die mit der Netzwerk-Switch-Vorrichtung gekoppelt sind.
  • Das Erzeugen des zweiten Schwellenwerts umfasst das Multiplizieren der durchschnittlichen Flusssteuerungsantwortzeit mit einer zweiten Zufallszahl, die von dem Zufallszahlengenerator erzeugt wird.
  • Das Erfassen des ersten Überlastungszustands umfasst das Erfassen des ersten Überlastungszustands, wenn ein erster Füllstand des geteilten Puffers einen vorbestimmten Schwellenwert während eines ersten Zeitschlitzes überschreitet.
  • Erfassen des zweiten Überlastungszustands umfasst Erfassen des zweiten Überlastungszustands, wenn ein zweiter Füllstand des geteilten Puffers den vorbestimmten Schwellenwert während eines zweiten Zeitschlitzes, der sich von dem ersten Zeitschlitz unterscheidet, überschreitet.
  • Erfassen des ersten Überlastungszustands und des zweiten Überlastungszustands umfasst das probabilistische Bestimmen des ersten Überlastungszustands und des zweiten Überlastungszustands, wobei die Wahrscheinlichkeit des Bestimmens des ersten Überlastungszustands und des zweiten Überlastungszustands mit zunehmendem Füllpegel des geteilten Puffers zunimmt.
  • Auslösen der Übertragung der ersten Flusssteuerungsnachricht umfasst das Auslösen der Übertragung einer ersten Prioritätsflusssteuerungs (PFC) -Nachricht, um zu bewirken, dass die erste Upstream-Netzwerkvorrichtung die Übertragung von Paketen einer bestimmten Priorität für eine erste spezifizierte Zeitspanne an die Netzwerk-Switch-Vorrichtung vorübergehend aussetzt.
  • In einer anderen Ausführungsform umfasst eine Netzwerk-Switch-Vorrichtung eine Vielzahl von Ports zum Koppeln über jeweilige Netzwerkverbindungen mit jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen, einen internen Speicher, der konfiguriert ist, um wenigstens einige Pakete, die über jeweilige Ports der Vielzahl von Ports empfangen werden, temporär zu speichern, und eine Flusssteuerungsmaschine. Die Flusssteuerungsmaschine ist konfiguriert zum: Erfassen eines ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung; als Reaktion auf das Erkennen des ersten Überlastungszustands in dem internen Speicher, Triggern der Übertragung einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports der Vielzahl von Ports, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, von der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der Flusssteuerungsnachricht über irgendeinen Port auszulösen, der nicht in der ersten Teilmenge von Ports enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung der Vielzahl von Upstream-Netzwerkvorrichtungen, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten sind, veranlasst wird, die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung vorübergehend auszusetzen; und Alternieren zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, eine Überlastung in dem internen Speicher der Netzwerk-Switch-Vorrichtung zu überwachen.
  • In anderen Ausführungsformen umfasst die Netzwerk-Switch-Vorrichtung jede geeignete Kombination von einem oder mehreren der folgenden Merkmale.
  • Die Flusssteuerungsmaschine ist konfiguriert zum, anschließend an das Erfassen des ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung, Erfassen eines zweiten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung, und als Reaktion auf das Erfassen des zweiten Überlastungszustands in dem internen Speicher, Triggern von Senden einer zweiten Flusssteuerungsnachricht über eine zweite Teilmenge von Ports der Vielzahl von Ports, gekoppelt an eine zweite Teilmenge von Upstream-Netzwerkvorrichtungen der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der zweiten Flusssteuerungsnachricht über einen Port auszulösen, der nicht in der zweiten Teilmenge von Ports enthalten ist, um zu veranlassen, dass Upstream-Netzwerkvorrichtungen in der zweiten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung, die nicht in der zweiten Teilmenge der Upstream-Netzwerkvorrichtungen enthalten ist, veranlasst wird, vorübergehend die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung auszusetzen.
  • Der interne Speicher ist konfiguriert, um Pakete, die über wenigstens die erste Teilmenge von Ports und die zweite Teilmenge von Ports empfangen wurden, in einem gemeinsam genutzten Puffer temporär zu speichern.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den ersten Überlastungszustand und den zweiten Überlastungszustand in dem internen Speicher basierend auf dem Überwachen eines Füllstands des geteilten Puffers, der in dem internen Speicher angeordnet ist, zu erfassen.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den ersten Überlastungszustand zu erfassen, wenn der Füllstand des geteilten Puffers ein erstes Überlastungskriterium erfüllt.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den zweiten Überlastungszustand zu erfassen, wenn der Füllstand des geteilten Puffers ein zweites Überlastungskriterium erfüllt, das sich von dem ersten Überlastungskriterium unterscheidet.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den ersten Überlastungszustand zu erfassen, wenn der Füllstand des geteilten Puffers einen ersten Schwellenwert überschreitet.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den zweiten Überlastungszustand zu erfassen, wenn der Füllstand des geteilten Puffers einen zweiten Schwellenwert überschreitet, der sich von dem ersten Schwellenwert unterscheidet.
  • Die Flusssteuerungsmaschine ist ferner dazu konfiguriert, vor dem Erfassen des ersten Überlastungszustands und Erfassen des zweiten Überlastungszustands unter Verwendung eines Zufallszahlengenerators den ersten Schwellenwert und den zweiten Schwellenwert zu erzeugen.
  • Die Flusssteuermaschine ist konfiguriert, um den ersten Schwellenwert wenigstens durch Multiplizieren einer durchschnittlichen Flusssteuerungsantwortzeit mit einer ersten Zufallszahl zu erzeugen, die durch den Zufallszahlengenerator erzeugt wird, wobei die durchschnittliche Flusssteuerungsantwortzeit basierend auf jeweiligen Flusssteuerungsantwortzeiten jeweiliger Upstream-Netzwerkvorrichtungen der Vielzahl von Upstream-Netzwerkvorrichtungen bestimmt wird, die mit der Netzwerk-Switch-Vorrichtung gekoppelt sind, und zum Erzeugen des zweiten Schwellenwerts wenigstens durch Multiplizieren der durchschnittlichen Flusssteuerungsantwortzeit mit einer zweiten Zufallszahl, die durch den Zufallszahlengenerator erzeugt wird.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den ersten Überlastungszustand zu erfassen, wenn ein erster Füllstand des geteilten Puffers einen vorbestimmten Schwellenwert während eines ersten Zeitschlitzes überschreitet.
  • Die Flusssteuerungsmaschine ist konfiguriert, um den zweiten Überlastungszustand zu erfassen, wenn ein zweiter Füllstand des geteilten Puffers den vorbestimmten Schwellenwert während eines zweiten Zeitschlitzes, der sich von dem ersten Zeitschlitz unterscheidet, überschreitet.
  • Die Flusssteuermaschine ist konfiguriert, um den ersten Überlastungszustand und den zweiten Überlastungszustand wenigstens durch probabilistische Bestimmung des ersten Überlastungszustands und des zweiten Überlastungszustands zu detektieren, wobei die Wahrscheinlichkeit des Bestimmens des ersten Überlastungszustands und des zweiten Überlastungszustands mit zunehmendem Füllpegel des geteilten Puffers zunimmt.
  • Die Flusssteuerungsmaschine ist konfiguriert, um die Übertragung der ersten Flusssteuerungsnachricht wenigstens durch Auslösen der Übertragung einer ersten Prioritätsflusssteuerungsnachricht (PFC) auszulösen, um zu bewirken, dass die erste Upstream-Netzwerkvorrichtung die Übertragung von Paketen einer bestimmten Priorität an die Netzwerk-Switch-Vorrichtung für einen ersten festgelegten Zeitraum vorübergehend aussetzt.
  • Wenigstens einige der verschiedenen oben beschriebenen Blöcke, Operationen und Techniken können unter Verwendung von Hardware, eines Prozessors, der Firmware-Anweisungen ausführt, eines Prozessors, der Software-Anweisungen ausführt, oder einer beliebigen Kombination davon implementiert sein.
  • Wenn sie in Hardware implementiert ist, kann die Hardware eine oder mehrere diskrete Komponenten umfassen, eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung (ASIC), eine programmierbare Logikvorrichtung (PLD) usw.
  • Wenn sie unter Verwendung eines Prozessors implementiert werden, der Software- oder Firmware-Anweisungen ausführt, können die Software- oder Firmware-Anweisungen in irgendeinem computerlesbaren Speicher wie etwa auf einer Magnetplatte, einer optischen Platte oder einem anderen Speichermedium in einem RAM oder ROM oder Flash-Speicherprozessor gespeichert werden, z.B. Festplattenlaufwerk, optisches Plattenlaufwerk, Bandlaufwerk usw. Die Software- oder Firmwareanweisungen können maschinenlesbare Anweisungen enthalten, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren verschiedene Handlungen ausführen.
  • Während die vorliegende Erfindung unter Bezugnahme auf spezifische Beispiele beschrieben wurde, die nur der Veranschaulichung dienen sollen und die Erfindung nicht beschränken sollen, können Änderungen, Hinzufügungen und/oder Streichungen an den offenbarten Ausführungsformen vorgenommen werden, ohne von der Erfindung abzuweichen. Zum Beispiel können ein oder mehrere Teile von Techniken, die oben beschrieben wurden, in einer anderen Reihenfolge (oder gleichzeitig) durchgeführt werden und immer noch wünschenswerte Ergebnisse erzielen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/544401 [0001]

Claims (10)

  1. Netzwerk-Switch-Vorrichtung, umfassend: eine Vielzahl von Ports zum Koppeln über jeweilige Netzwerkverbindungen mit jeweiligen Upstream-Netzwerkvorrichtungen einer Vielzahl von Upstream-Netzwerkvorrichtungen; einen internen Speicher, der so konfiguriert ist, dass er wenigstens einige Pakete, die über entsprechende Ports der Vielzahl von Ports empfangen werden, temporär speichert, und eine Flusssteuerungsmaschine, die konfiguriert ist zum Erfassen eines ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung; als Reaktion auf das Erkennen des ersten Überlastungszustands in dem internen Speicher, Triggern der Übertragung einer ersten Flusssteuerungsnachricht über eine erste Teilmenge von Ports der Vielzahl von Ports, die mit einer ersten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, von der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der Flusssteuerungsnachricht über irgendeinen Port auszulösen, der nicht in der ersten Teilmenge von Ports enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung der Vielzahl von Upstream-Netzwerkvorrichtungen, die nicht in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten sind, veranlasst wird, die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung vorübergehend auszusetzen; und Alternieren zwischen Veranlassen, dass verschiedene Teilmengen der Vielzahl von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, während die Flusssteuerungsmaschine fortfährt, eine Überlastung in dem internen Speicher der Netzwerk-Switch-Vorrichtung zu überwachen.
  2. Netzwerk-Switch-Vorrichtung nach Anspruch 1, wobei die Flusssteuerungsmaschine konfiguriert ist, zum anschließenden nach Erfassen des ersten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung, Erfassen eines zweiten Überlastungszustands in dem internen Speicher der Netzwerk-Switch-Vorrichtung, und als Reaktion auf das Erkennen des zweiten Überlastungszustands in dem internen Speicher, Triggern der Übertragung einer zweiten Flusssteuerungsnachricht über eine zweiten Teilmenge von Ports der Vielzahl von Ports, die mit einer zweiten Teilmenge von Upstream-Netzwerkvorrichtungen gekoppelt sind, von der Vielzahl von Upstream-Netzwerkvorrichtungen, ohne die Übertragung der Flusssteuerungsnachricht über irgendeinen Port auszulösen, der nicht in der zweiten Teilmenge von Ports enthalten ist, um zu bewirken, dass Upstream-Netzwerkvorrichtungen in der ersten Teilmenge von Upstream-Netzwerkvorrichtungen die Übertragung von Paketen zu der Netzwerk-Switch-Vorrichtung vorübergehend aussetzen, ohne dass irgendeine Upstream-Netzwerkvorrichtung der Vielzahl von Upstream-Netzwerkvorrichtungen, die nicht in der zweiten Teilmenge von Upstream-Netzwerkvorrichtungen enthalten sind, veranlasst wird, die Übertragung von Paketen an die Netzwerk-Switch-Vorrichtung vorübergehend auszusetzen.
  3. Netzwerk-Switch-Vorrichtung nach Anspruch 2, wobei der interne Speicher so konfiguriert ist, dass er Pakete, die über wenigstens die erste Teilmenge von Ports und die zweite Teilmenge von Ports empfangen wurden, in einem gemeinsam genutzten Puffer temporär speichert, und die Flusssteuerungsmaschine konfiguriert ist, um den ersten Überlastungszustand und den zweiten Überlastungszustand in dem internen Speicher basierend auf dem Überwachen eines Füllstands des geteilten Puffers, der in dem internen Speicher angeordnet ist, zu erfassen.
  4. Netzwerk-Switch-Vorrichtung nach Anspruch 3, wobei die Flusssteuerungsmaschine konfiguriert ist, zum Erfassen des ersten Überlastungszustands, wenn der Füllstand des geteilten Puffers ein erstes Überlastungskriterium erfüllt, und Erfassen des zweiten Überlastungszustands, wenn der Füllstand des geteilten Puffers ein zweites Überlastungskriterium erfüllt, das sich von dem ersten Überlastungskriterium unterscheidet.
  5. Netzwerk-Switch-Vorrichtung nach Anspruch 4, wobei die Flusssteuerungsmaschine konfiguriert ist, zum Erfassen des ersten Überlastungszustands, wenn der Füllstand des geteilten Puffers einen ersten Schwellenwert überschreitet, und Erfassen des zweiten Überlastungszustands, wenn der Füllstand des geteilten Puffers einen zweiten Schwellenwert überschreitet, der sich von dem ersten Schwellenwert unterscheidet.
  6. Netzwerk-Switch-Vorrichtung nach Anspruch 5, wobei die Flusssteuerungsmaschine ferner konfiguriert ist, vor dem Erfassen des ersten Überlastungszustands und Erfassen des zweiten Überlastungszustands unter Verwendung eines Zufallszahlengenerators den ersten Schwellenwert und den zweiten Schwellenwert zu erzeugen.
  7. Netzwerk-Switch-Vorrichtung nach Anspruch 6, wobei die Flusssteuerungsmaschine konfiguriert ist, zum Erzeugen des ersten Schwellenwerts wenigstens durch Multiplizieren einer durchschnittlichen Flusssteuerungsantwortzeit mit einer ersten Zufallszahl, die von dem Zufallszahlengenerator erzeugt wird, wobei die durchschnittliche Flusssteuerungsantwortzeit basierend auf jeweiligen Flusssteuerungsantwortzeiten jeweiliger Upstream-Netzwerkvorrichtungen der Vielzahl von Upstream-Netzwerkvorrichtungen bestimmt wird, die mit der Netzwerk-Switch-Vorrichtung gekoppelt sind, und Erzeugen des zweiten Schwellenwerts wenigstens durch Multiplizieren der durchschnittlichen Flusssteuerungsantwortzeit mit einer zweiten Zufallszahl, die durch den Zufallszahlengenerator erzeugt wird.
  8. Netzwerk-Switch-Vorrichtung nach einem der Ansprüche 3 bis 7, wobei die Flusssteuerungsmaschine konfiguriert ist, zum Erfassen des ersten Überlastungszustands, wenn ein erster Füllstand des geteilten Puffers während eines ersten Zeitschlitzes einen vorbestimmten Schwellenwert überschreitet, und Erfassen des zweiten Überlastungszustands, wenn ein zweiter Füllstand des geteilten Puffers während eines zweiten Zeitschlitzes, der sich von dem ersten Zeitschlitz unterscheidet, den vorbestimmten Schwellenwert überschreitet.
  9. Netzwerk-Switch-Vorrichtung nach einem der Ansprüche 3 bis 8, wobei die Flusssteuerungsmaschine konfiguriert ist, den ersten Überlastungszustand und den zweiten Überlastungszustand wenigstens durch probabilistisches Bestimmen des ersten Überlastungszustands und des zweiten Überlastungszustands zu erfassen, wobei die Wahrscheinlichkeit des Bestimmens des ersten Überlastungszustands und des zweiten Überlastungszustands mit zunehmender Füllstand des geteilten Puffers zunimmt.
  10. Netzwerk-Switch-Vorrichtung nach einem der Ansprüche 1 bis 9, wobei die Flusssteuerungsmaschine konfiguriert ist, um die Übertragung der ersten Flusssteuerungsnachricht wenigstens durch Auslösen der Übertragung einer ersten Prioritätsflusssteuerungsnachricht (PFC) auszulösen, um zu bewirken, dass die erste Upstream-Netzwerkvorrichtung die Übertragung von Paketen einer bestimmten Priorität an die Netzwerk-Switch-Vorrichtung für einen ersten festgelegten Zeitraum vorübergehend aussetzt.
DE202018104604.7U 2017-08-11 2018-08-10 Überlastungsvermeidung in einer Netzwerk-Switch-Vorrichtung Active DE202018104604U1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762544401P 2017-08-11 2017-08-11
US62/544,401 2017-08-11
US16/045,488 US10917349B2 (en) 2017-08-11 2018-07-25 Congestion avoidance in a network switch device
US16/045,488 2018-07-25

Publications (1)

Publication Number Publication Date
DE202018104604U1 true DE202018104604U1 (de) 2018-11-22

Family

ID=64662360

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202018104604.7U Active DE202018104604U1 (de) 2017-08-11 2018-08-10 Überlastungsvermeidung in einer Netzwerk-Switch-Vorrichtung

Country Status (3)

Country Link
US (2) US10917349B2 (de)
CN (1) CN109391557B (de)
DE (1) DE202018104604U1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12010028B1 (en) * 2023-05-17 2024-06-11 Huawei Technologies Co., Ltd. Method and apparatus for proactively forming flowlets for a flow in communication network

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10917349B2 (en) 2017-08-11 2021-02-09 Marvell Israel (M.I.S.L) Ltd. Congestion avoidance in a network switch device
US11082347B2 (en) * 2018-03-26 2021-08-03 Nvidia Corporation Techniques for reducing congestion in a computer network
EP3966965A4 (de) * 2019-05-08 2022-11-30 Lenovo (Beijing) Limited Verfahren und vorrichtung zur steuerung des funkverbindungsflusses
US10931588B1 (en) 2019-05-10 2021-02-23 Innovium, Inc. Network switch with integrated compute subsystem for distributed artificial intelligence and other applications
US10931602B1 (en) 2019-05-10 2021-02-23 Innovium, Inc. Egress-based compute architecture for network switches in distributed artificial intelligence and other applications
US11099902B1 (en) 2019-05-10 2021-08-24 Innovium, Inc. Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications
US11328222B1 (en) 2019-05-10 2022-05-10 Innovium, Inc. Network switch with integrated gradient aggregation for distributed machine learning
US11057318B1 (en) * 2019-08-27 2021-07-06 Innovium, Inc. Distributed artificial intelligence extension modules for network switches
CN111200567B (zh) * 2019-12-31 2021-09-10 苏州浪潮智能科技有限公司 一种应用于交换机成员端口的调度方法及调度系统
US11916790B2 (en) * 2020-05-04 2024-02-27 Mellanox Technologies, Ltd. Congestion control measures in multi-host network adapter
US11637784B2 (en) * 2021-03-31 2023-04-25 Nxp Usa, Inc. Method and system for effective use of internal and external memory for packet buffering within a network device
KR20240000896A (ko) * 2022-06-24 2024-01-03 삼성전자주식회사 플로우 스케줄링 방법 및 상기 방법을 수행하는 전자 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905870A (en) * 1996-09-11 1999-05-18 Advanced Micro Devices, Inc Arrangement for initiating and maintaining flow control in shared-medium, full-duplex, and switched networks
US6035333A (en) * 1997-11-24 2000-03-07 International Business Machines Corporation Method and system for providing congestion control in a data communications network
KR100472416B1 (ko) * 2002-11-01 2005-03-11 삼성전자주식회사 패킷 플로우 제어 장치 및 방법
US8018851B1 (en) * 2004-06-30 2011-09-13 Marvell Israel (Misl) Ltd. Flow control for multiport PHY
US7948880B2 (en) * 2004-10-29 2011-05-24 Broadcom Corporation Adaptive dynamic thresholding mechanism for link level flow control scheme
US7593329B2 (en) * 2004-10-29 2009-09-22 Broadcom Corporation Service aware flow control
US9030935B2 (en) * 2011-03-30 2015-05-12 International Business Machines Corporation Device and method for adjusting rate limits for transmission rates of data flows having a certain priority in a transmitter
US8867360B2 (en) * 2012-03-22 2014-10-21 Avaya Inc. Method and apparatus for lossless behavior for multiple ports sharing a buffer pool
US9438527B2 (en) * 2012-05-24 2016-09-06 Marvell World Trade Ltd. Flexible queues in a network switch
US8995277B2 (en) * 2012-10-30 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Method for dynamic load balancing of network flows on LAG interfaces
CN103945431B (zh) * 2013-01-17 2018-04-17 电信科学技术研究院 一种进行网络控制的方法及装置
WO2017199208A1 (en) 2016-05-18 2017-11-23 Marvell Israel (M.I.S.L) Ltd. Congestion avoidance in a network device
US10708200B2 (en) 2016-05-18 2020-07-07 Marvell Israel (M.I.S.L) Ltd. Traffic management in a network switching system with remote physical ports
CN107026716B (zh) * 2017-05-12 2019-07-26 中南大学 一种数据中心网络中基于并发度感知的传输控制方法
US10917349B2 (en) 2017-08-11 2021-02-09 Marvell Israel (M.I.S.L) Ltd. Congestion avoidance in a network switch device
US10749803B1 (en) 2018-06-07 2020-08-18 Marvell Israel (M.I.S.L) Ltd. Enhanced congestion avoidance in network devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12010028B1 (en) * 2023-05-17 2024-06-11 Huawei Technologies Co., Ltd. Method and apparatus for proactively forming flowlets for a flow in communication network

Also Published As

Publication number Publication date
US11558298B2 (en) 2023-01-17
CN109391557A (zh) 2019-02-26
US20210168075A1 (en) 2021-06-03
US20190052566A1 (en) 2019-02-14
US10917349B2 (en) 2021-02-09
CN109391557B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
DE202018104604U1 (de) Überlastungsvermeidung in einer Netzwerk-Switch-Vorrichtung
DE60120807T2 (de) Schaltvorrichtung und Verfahren
DE112009000834B4 (de) Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk
DE112020002493T5 (de) Fat-tree adaptive leitweglenkung
DE69434841T2 (de) Dynamische Zugriffsteuerung für ein ATM-Netz
DE60038538T2 (de) Vermittlungseinrichtung und Vermittlungsverfahren
DE602004002522T2 (de) Dienstgüte-Verfahren basierend auf einer Durchflussregelung in einem verteilten Switch Fabric-Netzwerk
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE69911711T2 (de) Vorrichtung und Verfahren zur Verwaltung von Bandbreite für eine paketbasierte Verbindung
DE69633051T2 (de) Verfahren zur Kontrolle der Datenstromgeschwindigkeit, des Warteschlangenetzknoten und des Paketvermittlungsnetzwerkes
DE602004004706T2 (de) Verfahren und System zur Kommunikationssteuerung
DE60309414T2 (de) Metro-Ethernet Netzwerksystem mit einer selektiven aufwärtigen Pausenachrichtenübermittlung
DE102020105776A1 (de) Kostengünstige Überlastungsisolierung für verlustfreies Ethernet
DE10123821A1 (de) Geschaltete Ethernet-Netzwerke
DE102020207426A1 (de) Auflistung einer CNP-Erzeugung durch eine Vermittlungsstelle
DE60023490T2 (de) Markierungsapparat zum Kreieren und Einfügen einer Priorität in ein Datenpaket
DE60028903T2 (de) Verfahren und Vorrichtung zur Kommunikationskontrolle
DE112006002912T5 (de) Verwaltung von On-Chip-Warteschleifen in geschalteten Netzwerken
DE112011105003T5 (de) Sendevorrichtung, Empfangsvorrichtung, Kommunikationsvorrichtung, Kommunikationssystem und Sendeverfahren
DE102022121268A1 (de) Überlastungssteuerung auf basis von netzwerktelemetrie
EP2415218B1 (de) Steuergerät in einem netzwerk, netzwerk und routingverfahren für nachrichten in einem netzwerk
WO2008023007A1 (de) Verfahren zur steuerung einer lastanpassung in einem funk-kommunikationssystem
DE112011105853B4 (de) Verwaltung der Steuerung des Pufferzulaufs durch den Verbindungsstatus

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012801000

Ipc: H04L0047100000