DE60222656T2 - Vorrichtung und verfahren für effizientes multicasting von datenpaketen - Google Patents

Vorrichtung und verfahren für effizientes multicasting von datenpaketen Download PDF

Info

Publication number
DE60222656T2
DE60222656T2 DE60222656T DE60222656T DE60222656T2 DE 60222656 T2 DE60222656 T2 DE 60222656T2 DE 60222656 T DE60222656 T DE 60222656T DE 60222656 T DE60222656 T DE 60222656T DE 60222656 T2 DE60222656 T2 DE 60222656T2
Authority
DE
Germany
Prior art keywords
multicast
port
ports
data packets
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60222656T
Other languages
English (en)
Other versions
DE60222656D1 (de
Inventor
Russ San Jose TUCK
David Redwood City SKIRMONT
Puneet San Francisco AGARWAL
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.)
Pluris Inc
Original Assignee
Pluris Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25318108&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60222656(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Pluris Inc filed Critical Pluris Inc
Application granted granted Critical
Publication of DE60222656D1 publication Critical patent/DE60222656D1/de
Publication of DE60222656T2 publication Critical patent/DE60222656T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • 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/17Interaction among intermediate nodes, e.g. hop by hop
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/111Switch interfaces, e.g. port details

Landscapes

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

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung gehört zum Gebiet einer Leitweglenkung von Paketen zwischen Knoten in einer Routerfabric und betrifft insbesondere Verfahren zum Multicasting von Datenpaketen auf Fabricniveau in einem Datenrouter. Insbesondere betrifft die vorliegende Erfindung einen multicastfähigen Port zum Replizieren von Multicastdatenpaketen gemäß dem Oberbegriff von Anspruch 1. Ebenso betrifft die Erfindung ein Verfahren zum Multicasting gemäß dem Oberbegriff von Anspruch 10. Diese Systeme und Verfahren sind aus der US 5,898,687 bekannt.
  • Hintergrund der Erfindung
  • Mit dem Erscheinen und der fortlaufenden Entwicklung des wohlbekannten Internetnetzwerks und ähnlicher Datenpaketnetzwerke ist Rechenmaschinen im Hinblick auf Empfangen, Verarbeiten und Weiterleiten von Datenpaketen viel Aufmerksamkeit gewidmet worden. Solche Maschinen, die im Stand der Technik als Router bekannt sind, weisen typischerweise mehrere Schnittstellen zum Empfangen und Senden von Paketen und eine Schaltungsanordnung an jeder Schnittstelle, die typischerweise einen Prozessor enthält, auf, um Pakete abzuwickeln und zu verarbeiten. Die Schaltungsanordnung an den Schnittstellen ist auf Modulen implementiert, die im Stand der Technik als Leitungskarten bekannt sind, und sämtliche Leitungskarten sind dadurch miteinander verbunden, was als die interne Fabric bekannt ist, die miteinander verbundene Fabrickarten umfasst, die Übertragungen durch die Fabric abwickeln.
  • 1, die mit Stand der Technik bezeichnet ist, veranschaulicht eine Anzahl von miteinander verbundenen Fabricknoten, die in diesem Beispiel mit A bis J bezeichnet sind, von denen jeder Knoten recht gut so betrachtet werden kann, dass er eine Fabrickarte in einer Switchingfabric in einem Router umfasst. Es ist für den Fachmann ersichtlich, dass 1 eine Beispiel- und Teildarstellung von Knoten und Verbindungen in einer Switchingfabric ist und dass es typischerweise viel mehr Knoten und Verbindungen gibt, als diejenigen, die dargestellt sind.
  • Ein Zweck von 1 in diesem Zusammenhang besteht darin, zu veranschaulichen, dass es eine breite Mannigfaltigkeit von alternativen Pfaden gibt, die Daten in einer Switchingfabric nehmen können. Zum Beispiel kann eine Übertragung vom Knoten E zum Knoten J entweder über den Pfad E-F-H-G-J oder alternativ über E-F-D-G-J vor sich gehen. Der Fachmann erkennt auch, dass die Knoten und Verbindungen, die dargestellt sind, lediglich ein winziger Bruchteil der Knoten und Verbindungen sind, die in einem praktischen System vorhanden sein können.
  • In einer herkömmlichen Switchingfabric zum Zeitpunkt der vorliegenden Patentanmeldung sind Fabricknoten in einer solchen Struktur auf Fabrickarten implementiert, die einen Mikroprozessor und Code zur Durchführung einer Flussregelung enthalten. Eine solche Flussregelung ist im Stand der Technik sehr gut bekannt und umfasst einen Prozess zum Überwachen von Ports bei Fabrickarten hinsichtlich Verkehr und Fehler und Inkenntnissetzung von stromaufwärts gelegenen Verbindungen für jeglichen Fehler. D. h., wenn der Knoten G, wie in 1 dargestellt, überlastet wird, setzt die Flussregelung bei G D, H, I und J von dem Problem in Kenntnis (und beliebige andere Knoten, mit denen G verbunden sein kann), und als Antwort beschränken oder setzen diese Knoten Verkehr zu G aus und leiten Verkehr zu alternativen Pfaden um. Bei dieser Flussregelung werden von Knoten empfangene Flussregelungsnachrichten verwendet, um dieselben oder unterschiedliche Flussregelungsnachrichten zu anderen stromaufwärts gelegenen Knoten auszubreiten. In 1 zeigen Pfeile zwischen Knoten Flussregelungsnachrichten an, die geschickt wurden, und der Fachmann versteht auch, dass Verkehr in einer beliebigen Richtung erfolgen kann und dass Flussregelungsnachrichten deshalb auch in beide Richtungen laufen.
  • Ein ernstes Problem bei einer Flussregelung, wie sie herkömmlicherweise durchgeführt wird, besteht darin, dass sich die Stromaufwärtsinkenntnissetzungen, die einer Flussregelung inhärent sind, weiter stromaufwärts ausbreiten und dass sie Verkehr, der nicht zum Erliegen gebracht werden muss, behindern oder zum Erliegen bringen, zum Teil deshalb, weil die Verbindungen von Knoten ziemlich kompliziert und die alternativen Pfade ziemlich zahlreich sein können. Dieser Effekt kann wegen der Komplexität und Verbindung von Knoten einer Fabric zu einer vollständigen Lähmung von Teilen eines Systems oder eines ganzen Netzwerks führen.
  • Es hat im Stand der Technik mehrere Versuche gegeben, eine Flussregelung zu verbessern, aber alle solche Lösungen sind nur zum Teil erfolgreich gewesen und verwenden noch eine Stromaufwärtsausbreitung von Regelungsnachrichten, für die immer noch eine gute Möglichkeit besteht, eine unerwünschte Schwierigkeit hervorzurufen.
  • Ein Verfahren zum Verwalten von Datenverkehr in Knoten, die ein Fabricnetzwerk bilden, ist dem Erfinder bekannt. Jeder Knoten weist mindestens zwei, aber typischerweise mehr, externe Ports auf, und die einzelnen Ports jedes Knotens sind durch einen Schaltmechanismus, der als Kreuzschiene bekannt ist, mit anderen Ports des Knotens intern gekoppelt. Dieses Verfahren beinhaltet die Schritte: Erstellen einer virtuellen Ausgabewarteschlange (VOQ) und eines Warteschlangenverwalters in jedem ankommenden Portpfad des Knotens, der als eine Fabrickarte bezeichnet wird, um ankommenden Datenverkehr bei jedem Port zu verwalten. In diesem Datenleitweglenkungssystem werden alle Daten von einem Eingangsport des Knotens zu einem Ausgangsport des Knotens geschickt, vorausgesetzt dass die Warteschlange in dem Pfad zwischen den Ports weniger als voll ist. Eingangspakete werden in einem Portpfad mit einer vollen Warteschlange ausgesondert, bis das Warteschlangenniveau wieder weniger als voll ist.
  • In einigen Fällen überwacht der Warteschlangenverwalter ein Warteschlangenniveau im Verhältnis zu einem voreingestellten Schwellwert und beginnt damit, Daten mit einer vorbestimmten Rate auszusondern, wenn ein Warteschlangenniveau den Schwellwert erreicht. In anderen Fällen erhöht der Warteschlangenverwalter die Rate eines Aussonderns während ein Warteschlangenniveau über den voreingestellten Schwellwert ansteigt, wobei aller Datenverkehr ausgesondert wird, wenn die Warteschlange vollständig voll ist. Das Verfahren ermöglicht, dass eine Datenverwaltung wirkungsvoll in einem Fabricnetzwerk bewerkstelligt wird, ohne dass eine herkömmliche Flussregelung benötigt wird, die eine Stromaufwärtsausbreitung von Flussregelungsanzeigen erfordert, und auf eine Weise, die weniger Verkehr verliert und weniger kompliziert ist als im Stand der Technik.
  • Hinsichtlich des Beitrags zum oben beschriebenen Stand der Technik von Datenpaketleitweglenkung ist der Erfinder auf den Gedanken gekommen, dass zusätzlich zum Verwalten von Daten, ohne dass Flussregelungsverfahren nach dem Stand der Technik erforderlich sind, andere Datenverwaltungsaufgaben mit geringer Modifikation an den oben beschriebenen Ports ausgeführt werden können. Eine dieser Aufgaben ist eine Erzeugung von Kopien von Paketen zum Multicasting von Daten zu einer Mehrzahl von Netzwerkendzielen.
  • Es ist wohlbekannt, dass Multicasting eine Herstellung mehrerer Kopien von Datenpaketen erfordert, wobei die Kopien alle dieselben Zieladressen aufweisen. Die Anzahl von Kopien, die in einem Multicastingprozess erforderlich sind, ist natür lich eine Funktion der Anzahl von Zielen, die dieselben Daten empfangen sollen. Das massenweise In-die-Welt-Setzen von mehreren Kopien von Paketen zum Multicasting von Daten wird, wie im Stand der Technik bekannt ist, in einigen Fällen durch Datenrouter ausgeführt, die in einer Netzwerktopologie eingerichtet sind. Z. B. werden ein oder mehrere Router, auf denen Multicastsoftware läuft, bereitgestellt, um den erforderlichen gesamten oder zugewiesenen Teil von Multicastpaketen zu replizieren, die dann zu ihren Zielen weitergeroutet werden. Im Gegensatz zu Rundfunkdaten, wobei mehrere Benutzer mit einem gemeinsamen Kundenzugangspunkt verbunden sind, der in einer lokalen Netzwerktopologie beherbergt ist, werden Multicastdaten zu allen Teilnehmerbenutzern getrieben, deren Adressen in einer Multicastgruppe verzeichnet sind, deren Identität typischerweise in einer Datenliste festgestellt ist. Andere Verfahren umfassen eine Verwendung von Multicastservern, die typischerweise für sehr große Multicastoperationen verwendet werden.
  • Ein Nachteil, der Multicastverfahren früherer und gegenwärtiger Technik inhärent ist, wie sie bei einem Datenpaketnetzwerk durchgeführt werden, besteht darin, dass Router, die für ein Multicasting erweitert sind, in einem Umfang von Multicastverkehr, in der Anzahl von Kopien, die von jedem Multicastpaket gemacht werden, und in der Anzahl von Routerports nichtskalierbar sind. Obwohl Multicasting über viele Router oder Multicastserver in einem Netzwerk verteilt sein kann, wo Router verwendet werden, weist jeder Router Grenzen für seine Multicastweiterleitungsleistungsfähigkeit auf. Wie oben beschrieben, werden für sehr große Projekte wegen verfügbarer Verarbeitungsleistung, die für andere Zwecke nicht dediziert ist, am häufigsten Multicastserver verwendet.
  • Es ist wünschenswert, ein Multicastingvermögen in einem Router bereitzustellen, das für große Projekte skalierbar ist, aber keine Engpässe oder andere Probleme in dem Router oder den Routern, der/die zum Multicasting vorgesehen ist/sind, hervorruft.
  • Was offensichtlich benötigt wird, ist ein Verfahren und eine Vorrichtung, um ein Multicastvermögen in einem Datenrouter mit mehreren Routerkarten zu ermöglichen, so dass eine Multicastingaktivität mehreren Multicastbauelementen in dem Router zugeteilt werden kann, wodurch keinerlei Bauelement oder Pfad des Routers in Anspruch genommen wird. Ein solches Verfahren und eine solche Vorrichtung würden für große Anzahlen von Routerports und starken Multicastverkehr skalierbar sein und könnten ähnlich einer Mehrzahl von zusammenwirkenden Routern in einem gegebenen Netzwerk zugeteilt werden, wobei ein im Stand der Technik vorhandenes Erfordernis beseitigt wird, um leistungsfähige Multicastserver für große Zuweisungen zu verwenden.
  • Zusammenfassung der Erfindung
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird ein multicastfähiger Port zum Replizieren von Multicastdatenpaketen bereitgestellt, umfassend mindestens einen Eingangspfad in den Port zum Empfang der Datenpakete, mindestens einen Ausgangspfad aus dem Port zum Ausgeben von Datenpaketen und ein multicastfähiges Bauelement, das mit dem Ausgangs- und Eingangspfad des Ports gekoppelt ist, wobei das multicastfähige Bauelement zum Replizieren und Neuadressieren der replizierten Datenpakete dient. Der Port ist dadurch gekennzeichnet, dass zum Multicasting zugewiesene Datenpakete an dem Port auf dem Eingangspfad ankommen und zum multicastfähigen Bauelement umgeleitet werden, wobei die Pakete repliziert oder neu adressiert werden und zu dem Eingangspfad ausgegeben werden.
  • In einigen Ausführungsformen ist der Port auf einer Karte in einem Datenrouter beherbergt. Auch ist in einigen Ausführungs formen der Port mit anderen Eingangs-/Ausgangsports der Karte gekoppelt. Weiter kann mehr als ein multicastfähiger Port auf derselben Karte angebracht sein. Noch weiter kann es mehrere Karten in dem Datenrouter geben, von denen einzelne mindestens einen multicastfähigen Port beherbergen. In einigen Fällen ist der Datenrouter mit anderen ähnlichen Datenroutern verbunden, die über eine Netzwerktopologie verteilt sind, und einzelne der multicastfähigen Ports, die damit in Zusammenhang stehen, sind für einen Teil eines Multicastprojekts verantwortlich.
  • Der wie soeben oben beschrieben bereitgestellte Port kann in einigen Ausführungsformen als eine integrierte Schaltung implementiert sein und kann entweder ein Teil des IC eines Ports sein oder separat von dem Port als ein separater IC vorliegen. Ungeachtet einer Implementierung gibt es in bevorzugten Ausführungsformen eine dem Prozessor zugeordnete Tabelle, die eine Anweisung zum Multicasting enthält, wobei Tabelleneinträge durch Software konfiguriert sind.
  • In einem anderen Aspekt der Erfindung wird eine multicastfähige Fabrickarte in einem Datenrouter bereitgestellt, umfassend mindestens zwei Ports, die durch Datenpfade miteinander gekoppelt sind, und mindestens einen Multicastprozessor, dadurch gekennzeichnet, dass zum Multicasting zugewiesene Datenpakete an der multicastfähigen Fabrickarte ankommen und am Multicastprozessor abgeliefert werden, in dem sie nach Bedarf zum Multicast repliziert und/oder modifiziert und weitergeleitet werden.
  • In einigen Ausführungsformen ist die Karte durch Portpfade mit anderen Karten in demselben Router gekoppelt. Auch gibt es in einigen Ausführungsformen eine Schalteinrichtung, die auf der Karte vorgesehen ist, wobei die Schalteinrichtung zum Verwalten von Port-zu-Port-Kommunikation dient. Der multicastfähige Port kann eine integrierte Schaltung sein. In bevorzugten Ausführungsformen gibt es eine Tabelle, die eine Anweisung zum Multicasting enthält, wobei Tabelleneinträge durch Software konfiguriert werden.
  • In noch einem anderen Aspekt der Erfindung wird ein Multicastprozessor bereitgestellt, umfassend einen oder mehrere erste Ports zum Kommunizieren mit einem oder mehreren zweiten Ports von einem von Schaltelementen und eine Schaltungsanordnung zum Modifizieren oder Replizieren von zum Prozessor gerouteten Multicastpaketen, dadurch gekennzeichnet, dass Multicastpakete, die von der einen oder den mehreren Fabrickarten erhalten werden, nach Bedarf repliziert und/oder modifiziert werden, und über den einen oder die mehreren ersten Ports zu einem von dem einen oder den mehreren der zweiten Ports weitergeleitet werden.
  • In noch einem anderen Aspekt der Erfindung wird ein multicastfähiger Datenrouter mit einem multicastfähigen Port zum Replizieren von Multicastdatenpaketen bereitgestellt, wobei der Port aufweist: mindestens einen Eingangspfad in den Port zum Empfangen der Datenpakete, mindestens einen Ausgangspfad aus dem Port zum Ausgeben von Datenpaketen und ein multicastfähiges Bauelement, das mit dem Ausgangs- und Eingangspfad des Ports, dem multicastfähigen Bauelement zum Replizieren und Neuadressieren der replizierten Datenpakete gekoppelt ist. Der Router ist dadurch gekennzeichnet, dass zum Multicasting zugewiesene Datenpakete am Port ankommen und zum multicastfähigen Bauelement umgeleitet werden, in dem die Pakete repliziert und neu adressiert und weitergeleitet werden.
  • In einigen Ausführungsformen des Routers, der bereitgestellt wird, ist das multicastfähige Bauelement in der Schaltungsanordnung des multicastfähigen Ports integriert. Auch ist in einigen Ausführungsformen der multicastfähige Port ein Fabrickartenport und kann ein externer Port sein. Es kann auch in bevorzugten Ausführungsformen eine Tabelle geben, die Anweisungen zum Multicasting enthält.
  • In noch einem anderen Aspekt der Erfindung wird ein multicastfähiger Datenrouter mit einer Fabrickarte, die mindestens zwei Ports umfasst, die durch Datenpfade miteinander gekoppelt sind, und mindestens ein Multicastprozessor bereitgestellt, dadurch gekennzeichnet, dass zum Multicasting zugewiesene Datenpakete an der Fabrickarte ankommen und an den Multicastprozessor abgeliefert werden, in dem sie nach Bedarf zum Multicast repliziert und/oder modifiziert und weitergeleitet werden.
  • In einigen Ausführungsformen dieses Routers ist das multicastfähige Bauelement in der Schaltungsanordnung von dem einen der Ports der multicastfähigen Fabrickarte integriert, und in bevorzugten Ausführungsformen gibt es eine Tabelle, die Anweisungen zum Multicasting enthält.
  • In noch einem anderen Aspekt wird ein multicastfähiger Datenrouter, umfassend einen Multicastprozessor mit einem oder mehreren ersten Ports zum Kommunizieren mit einem oder mehreren zweiten Ports von einer oder mehreren Fabrickarten und eine Schaltungsanordnung zum Modifizieren oder Replizieren von zum Prozessor gerouteten Multicastpaketen, bereitgestellt, dadurch gekennzeichnet, dass Multicastpakete, die von der einen oder den mehreren Fabrickarten empfangen werden, nach Bedarf repliziert und/oder modifiziert werden, und über einen oder mehrere der ersten Ports zu einem oder mehreren der zweiten Ports weitergeleitet werden. In diesem Router ist in einigen Ausführungsformen der Multicastprozessor in der Schaltungsanordnung von einem der Ports der Fabrickarte integriert, und es gibt eine Tabelle, die Anweisungen zum Multicasting enthält.
  • In noch einem anderen Aspekt wird ein Verfahren zum Multi casting bereitgestellt, umfassend Schritte: (a) Bereitstellen einer Mehrzahl von Multicastprozessoren in einem Router, wobei jeder einen oder mehrere erste Ports zum Kommunizieren mit zweiten Ports des Routers aufweist; (b) Empfangen von Multicastpaketen an einem der zweiten Ports und Senden der Multicastpakete zu einem von den Multicastprozessoren über die ersten Ports; (c) Replizieren und/oder Modifizieren der Datenpakete zum Multicasting entsprechend dem Multicastprozessor zugeordneten tabellierten Anweisungen; und (d) Weiterleiten der replizierten oder modifizierten Pakete zu einzelnen der zweiten Ports.
  • Bei diesem Verfahren ist in einigen Ausführungsformen der Multicastprozessor als ein Teil eines Ports einer Leitungskarte in dem Router integriert, in einigen anderen Ausführungsformen ist der Multicastprozessor als ein Teil eines Ports einer Fabrickarte im Router integriert. In einigen Fällen ist der Multicastprozessor ein selbstständiges Bauelement, und die zweiten Ports, mit denen die ersten Ports kommunizieren, sind Ports von einer oder mehreren Fabrickarten in dem Router.
  • In einigen Ausführungsformen des Verfahrens gibt es in Schritt (a) eine Mehrzahl von miteinander verbundenen Routern, von denen einzelne Multicastprozessoren aufweisen, und wobei in Schritt (d) replizierte oder modifizierte Pakete zu einzelnen der Mehrzahl von miteinander verbundenen Routern weitergeleitet werden. Einzelnen Multicastprozessoren zugeordnete tabellierte Anweisungen werden periodisch aktualisiert.
  • In den verschiedenen Ausführungsformen der Erfindung die in ausreichendem Detail unten beschrieben sind, wird zum ersten Mal einem Router auf eine Weise ein Multicastingvermögen zur Verfügung gestellt, dass ein Multicastingprojekt schnell und wirkungsvoll durchgeführt werden kann.
  • Kurze Beschreibungen der Zeichnungsfiguren
  • 1 ist eine Darstellung nach dem Stand der Technik, die Fabricknotenverbindungen und eine Stromaufwärtsausbreitung von Flussreglungsnachrichten veranschaulicht.
  • 2 ist eine Darstellung einer Fabrickarte in einer Ausführungsform der vorliegenden Erfindung.
  • 3 ist eine Darstellung eines Fabricnetzwerks von Fabrickarten in einer Ausführungsform der vorliegenden Erfindung.
  • 4 ist eine Darstellung einer Fabrickarte eines Datenrouters mit Multicastingvermögen über einen Multicastport gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 ist ein Blockschaltbild, das Bauelemente des Multicastports von 4 veranschaulicht.
  • 6 ist ein Flussdiagramm, das einen Paketreplikationsprozess einer Multicast-Fabrickarte gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • Beschreibung der bevorzugten Ausführungsformen
  • 2 ist eine Draufsicht auf eine Fabrickarte 201 in einer Ausführungsform der vorliegenden Erfindung. In dieser Ausführungsform gibt es neun (9) Ports auf jeder Karte, statt vier, wie in der Darstellung nach dem Stand der Technik von 1 angezeigt. Dies soll nicht bedeuten, dass der Stand der Technik auf vier Ports pro Knoten beschränkt ist, da 1 bloß beispielhaft war.
  • In der Fabrickarte dieser Ausführungsform, wie in 2 dargestellt, gibt es neun Warteschlangenverwalter 209, einen für jeden externen Port 205, wobei jeder Warteschlangenverwalter von seinem verbundenen externen Port durch eine optische Schnittstelle 207 isoliert ist. Die Zwischen-Knoten-Kommunikation in dieser Ausführungsform erfolgt durch optische Leitungen. Die Warteschlangenverwalter 209 bilden eine Schnittstelle mit einer Kreuzschiene 203, die jeden der neun Ports mit den anderen acht Ports in dieser Ausführungsform intern verbindet, obwohl diese internen Verbindungen der Einfachheit halber nicht dargestellt sind.
  • 3 ist eine Darstellung, die eine Fabric mit miteinander verbundenen Fabrickarten gemäß der Ausführungsform, die oben mit Bezug auf 2 beschrieben ist, veranschaulicht. In dieser Darstellung ist eine Karte 319 so wiedergegeben, dass sie mit neun Nachbarkarten 301, 303, 305, 307, 309, 311, 313, 315 und 317 verbunden ist. Jede der Nachbarkarten ist so veranschaulicht, dass sie acht zusätzliche Ports zum Miteinanderverbinden mit weiteren Nachbarn zusätzlich zu dem einen Port aufweist, der den nahen Nachbarn mit der Karte 319 verbindet. Es ist für den Fachmann aus dieser Darstellung deutlich, dass eine Verbindungskomplexität mit einer sehr großen Rate in die Höhe schnellt, während sich Ports und Karten (Knoten) stark vermehren.
  • Mit Bezug zurück auf 2 tritt jeder Port auf jeder Karte durch ein Warteschlangenverwaltungstor 209 hindurch, wie in 2 angezeigt. Jeder Warteschlangenverwalter umfasst eine temporäre Speicherwarteschlange mit Regelungen zum Verwalten von Fluss in der Ankunftsrichtung. Datenverkehr, der auf einem beliebigen Port ankommt, läuft z. B. durch eine Zuerst-herein-zuerst-heraus (FIFO)-Warteschlange, und der Warteschlangenverwalter wird einfach freigegeben, um allen Verkehr auszusondern, wenn die Warteschlange überfließt. Es gibt in diesem Schema keine Flussregelungsnachrichten, die wie im Stand der Technik erzeugt und stromaufwärts ausgebreitet werden. Die Größe jeder Warteschlange wird so eingestellt, dass unter gewöhnlichen und bis zu einem gewissen Grade ungewöhnlichen Lastbedingungen ein angemessener Fluss ohne Datenverlust zur Verfügung gestellt wird, aber unter extremen Bedingungen werden Daten einfach ausgesondert, bis sich die Situation bereinigt, was die Erfinder als weniger förderlich für einen Datenverlust gefunden haben als die Probleme, die mit einer herkömmlichen Flussregelung verbunden sind, die die stromaufwärts ausgebreiteten Flussreglungsnachrichten verwendet.
  • In einer alternativen Ausführungsform der vorliegenden Erfindung weist jeder Warteschlangenverwalter auf einer Karte ein Vermögen auf, um damit zu beginnen, Pakete bei einem gewissen Schwellwert in einem Warteschlangenaufnahmevermögen, das nicht mehr weit von einer vollen Warteschlange entfernt ist, mit einer vorbestimmten Rate abzulegen. In gewissen Ausführungsformen kann der Warteschlangenverwalter weiter die Paketablegungsrate beschleunigen, während sich eine Warteschlange ständig über den ersten Schwellwert anfüllt. In diesen Ausführungsformen wird die Häufigkeit eines Ablegens von Paketen minimiert und über mehr Verkehr verteilt als es der Fall sein würde, wenn ein Ablegen von Paketen nur bei einer vollen Warteschlange beginnen sollte, wobei alle Pakete abgelegt würden, bis die Warteschlange damit beginnen würde, sich zu leeren.
  • Ein entschiedener Vorteil des Warteschlangenverwaltungsschemas der vorliegenden Erfindung ist, dass die Intelligenz, die erforderlich ist, beträchtlich vermindert ist und es keine künstliche Hinzufügung zur Verkehrsbelastung gibt, indem Flussregelungsnachrichten erzeugt werden.
  • Es ist für den normalen Fachmann ersichtlich, dass die Ausführungsformen der Erfindung, die in dieser Patentbeschreibung beschrieben sind, beispielhaft sind, und in einer Anzahl von Weisen variieren können, ohne dass man vom Geist und Bereich der vorliegenden Erfindung abweicht. Z. B. kann es mehr oder weniger als neun Ports und Warteschlangenverwalter pro Karte geben, und die Größe von jeder Warte-schlange kann variieren.
  • Multicasting von Daten in einer Routerfabric
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird eine Routerfabrickarte, die der Karte von 2 oben entspricht, kraft hinzugefügter Schaltungsanordnung zwecks Ausführung von platineninternem und in einigen Fällen platinenexternem Multicasting von Datenpaketen erweitert.
  • 4 ist eine Draufsicht auf eine Fabrickarte 321 eines Datenrouters mit einem Multicastingvermögen gemäß einer Ausführungsform der vorliegenden Erfindung. In dieser Ausführungsform ist eine Multicast-Fabrickarte 321 mit einem M-Port (Multicastingport) 325 konfiguriert. Die Karte 321 weist auch eine Mehrzahl von virtuellen Ausgabewarteschlangen auf, von denen eine in diesem Beispiel als eine (VOQ) 329 veranschaulicht ist. Typischerweise ist eine VOQ an jedem Port der Karte implementiert, obwohl der Einfachheit halber nicht alle in 4 dargestellt sind. Die Karte 321 weist auch eine Kreuzschienenschalteinrichtung 327, die darauf implementiert ist, und neun (9) Eingangs-/Ausgangsports 323 auf, wie sie mit Bezug auf 2 oben beschrieben wurden.
  • Der M-Port 325 ist in dieser Ausführungsform ein hinzugefügter Eingangs-/Ausgangsport, der in diesem Beispiel mit einem Multicastingvermögen erweitert ist. Jeder Port 323 auf der Karte 321 ist in einer bevorzugten Ausführungsform ein ASIC-Chip. Jedoch kann in gewissen Ausführungsformen ein Chipsatz oder eine andere Implementierung verwendet werden. Die Kreuzschienenschalteinrichtung 327 ist zur Bereitstellung einer Schaltfunktion und Verhandlung zwischen dem Eingangs- und Ausgangsport 323 der Karte 321 angepasst. Die integrierten Bauelemente und Einzelheiten der Funktionalität der Kreuzschienenschalteinrichtung 327 sind in diesem Beispiel nicht veranschaulicht, da solche Einzelheiten für den Bereich dieser Erfindung als nicht signifikant betrachtet werden. Es kann angenommen werden, dass die Zusammensetzung der Routingfabric eines gegebenen Routers in diesem Beispiel eine Mehrzahl von Karten 321 enthält.
  • Die virtuelle Ausgabewarteschlange (VOQ) 329 ist logisch zwischen einem von den Eingangs-/Ausgangsports 323 und der Kreuzschienenschalteinrichtung 327 veranschaulicht. Die VOQ 329 enthält eine Warteschlange für jeden Ausgang (Ausgabe) auf der Karte 321, einschließlich einer für den M-Port 325 und einer für das Multicastingbauelement des M-Ports 325, was in weiterer Einzelheit unten ausgeführt wird. Die Richtung eines Datenflusses von der VOQ 329 in die Einrichtung 327 wird durch einen dazwischen veranschaulichten Richtungspfeil angezeigt. In der tatsächlichen Praxis ist eine VOQ 329 für jeden der neun Ports 323 und eine für den M-Port 325 implementiert, die auf Eingangsverkehr bei jedem Port einwirken. Jede VOQ ist in eine Mehrzahl von Warteschlangen aufgeteilt, die sämtliche Ausgangsziele der Karte 321 darstellen, wie zuvor beschrieben.
  • Die intrinsische Konstruktion der Karte 321 sieht eine Installation von mehr als einem Multicastport (M-Port 325) auf jeder Karte vor, jedoch ist in dieser beispielhaften Darstellung nur ein M-Port dargestellt, und dies wird für den Zweck einer Erklärung der vorliegenden Erfindung als ausreichend erachtet. Zusätzlich können ein oder mehrere Multicastports (325) auf einer beliebigen Karte (321) entsprechend dem geplanten Bedarf aktiviert oder deaktiviert werden. Deshalb können auf einer Fabrickarte (321) mit mehreren Multicastports (325) abhängig von geplanter Last und Bedürfnissen des Multicastsystems ein, zwei oder mehr Multicastports zum Dienst aktiviert werden. Wenn es ein geplantes Volumen einer speziellen Multicastzuweisung erfordert, können einige oder alle Multicastports auf erweiterten Fabrickarten in einem Router für die Dauer der erhöhten Last aktiviert werden. Es wird hierin angemerkt, dass nicht alle Fabrickarten in einem Router für ein Multicasting erweitert werden müssen, aber es kann angenommen werden, dass eine Mehrzahl von Karten in einer Fabric eines beliebigen Routers oder Routern (verteilt) multicasterweitert sein kann.
  • In einer bevorzugten Ausführungsform ist eine Multicastzuweisung so eingerichtet, dass sie sich durch eine Fabric in einem Router fächerförmig ausbreitet, und eine solche Zuweisung kann auch zum Kommunizieren von multicasterweiterten Routern verteilt werden, die überall in der Topologie eines Datennetzwerkes strategisch verteilt sind. Auf diese Weise kann eine natürliche Lastverteilung erzielt werden, und eine Verarbeitung wird wirkungsvoll verteilt, statt dass das ineffiziente gegenwärtige System mehrere Kopien an einem Ort erzeugt und dann alle durch das Netzwerk sendet. Für eine sehr große Zuweisung kann eine Mehrzahl von multicasterweiterten Routern zugewiesene Teile des ganzen Projekts ausführen.
  • Nun wieder zurück zu 4. Datenpakete, die zum Multicasting in einem M-Port 325 bestimmt sind, gelangen in die Karte 321, wie durch einen Richtungspfeil angezeigt, der mit Pakete-ein bezeichnet ist (Eingang zu einem der Ports 323). Pakete können an einem beliebigen der Ports 323 ankommen, die durch Portpfade mit Ausgangsports der Fabrickarte gekoppelt sind. Paket-ein stellt Multicastdatenpakete dar, die für den M-Port 325 bestimmt sind und für den M-Port 325 in die VOQ 329 eingereiht werden. Es wird wieder angemerkt, dass die VOQ 329 als ein Satz von Warteschlangen mit einem Warteschlangenverwalter arbeitet, und die Warteschlangen sind Ausgangsports zugeordnet. Die VOQ 329 verwaltet ankommenden Datenverkehr und arbeitet als eine temporäre Speicherwarteschlange mit einer Regelung zum Verwalten von Datenfluss in der Ankunftsrichtung. Ankommender Datenverkehr wird von einem Eingangsport der Karte 321 zu einem Ausgangsport des Knotens geschickt, vorausgesetzt dass die Warteschlange im Pfad zwischen Ports weniger als voll ist, wie mit Bezug auf 2 oben beschrieben.
  • Ein Datenpaket zum Multicasting wird durch die VOQ 329 auf dieselbe Weise eingereiht, auf die andere Pakete eingereiht werden, außer dass das Warteschlangenziel der M-Port 325 ist, statt das Ziel eines Ausgangs (alle Pakete, die als Multicastpakete gekennzeichnet sind, werden zum M-Port gesendet). In diesem Beispiel laufen Datenpakete zum Multicasting von der VOQ 329 durch die Kreuzschienenschalteinrichtung und in den M-Port 325, wo die Datenpakete gemäß vorbestimmten Anweisungen repliziert werden. In dieser beispielhaften Veranschaulichung werden replizierte Datenpakete durch die Großbuchstaben A, B, C und D dargestellt. Replizierte Datenpakete A-D sind bis auf die Zieladresse miteinander identisch, die durch den M-Port 325 als ein Teil des Replikationsprozesses entsprechend einer Information zugewiesen wird, die in einer Multicastgruppentabelle (nicht dargestellt) gespeichert ist, die für den Multicastport zugänglich ist. Mehr Einzelheiten über interne Bauelemente des M-Ports 325 werden später in dieser Beschreibung insbesondere mit Bezug auf 5 geliefert.
  • Der M-Port 325 empfängt die mit Ziel versehenen Datenpakete, wie durch einen Richtungspfeil veranschaulicht, der von der Einrichtung 327 ausgeht und in Richtung auf den Port 325 verläuft, und repliziert das Datenpaket entsprechend Anweisungen in die Pakete A-D. Die Replikation von ankommenden Paketen in Pakete mit vier neuen Zielen ist nur beispielhaft, und es kann weniger oder viel mehr Replikationen geben, als in diesem Beispiel angezeigt.
  • Der Port 325 weist für die Pakete A-D geeignete Zieladressen zu und reiht dann die Datenpakete in eine Warteschlange ein, was einem Fortgang zum nächsten Punkt in ihren Zielen dient, als ob die replizierten Datenpakete ankommende Nicht-Multicastdatenpakete wären. Die Pakete A-D sind hierin so dargestellt, dass sie den Port 325 zurück in die Einrichtung 327 verlassen.
  • In diesem Beispiel werden replizierte Pakete A, B, C und D von der Karte 321 bei separaten Ausgangsports weggeroutet, wie durch Richtungspfeile angezeigt, die von verschiedenen Ports 323 ausgehen, wobei die Pfeile durch Anzeige der geeigneten Datenpakete A-D und durch Elementziffern 331, 333, 335 bzw. 337 gekennzeichnet sind. In diesem Beispiel führen die Ausgangspfade 331337, die die Datenpakete A-D weiterleiten, zu Eingangspfaden anderer Fabrickarten, die durch ihre neuen Ziele bestimmt sind. Andere Fabrickarten können wiederum eine weitere Paketreplikation liefern. Wenn die Karte 321 eine letzte Karte vor einer Routerausgabe ist, dann werden die replizierten Pakete zu einem nächsten Router zur weiteren Verarbeitung geroutet, was in einigen Projekten mehr Paketreplikation umfassen kann. Es wird hierin angemerkt, dass es nicht erforderlich ist, dass die Pakete A, B, C und D unter Verwendung von separaten Pfaden von der Karte 321 weggeroutet werden, wie veranschaulicht, um die Erfindung durchzuführen.
  • In einer Ausführungsform könnten alle Pakete unter Verwendung eines einzigen oder mehrerer Ports von der Karte 321 weggeroutet werden. Die Verwendung und Auswahl von ausgehenden Ports hängt ganz von Zielzuweisungen der betreffenden Pakete ab. Z. B. ist es nicht erforderlich, dass ein spezielles Multicastpaket, das ein Replikat sein kann, zur weiteren Replikation aufeinanderfolgend zu mehreren multicastfähigen Ports geroutet wird. In der Tat kann eine Bezeichnung von Unicast eine Zeitlang für ein spezielles Paket verwendet werden, wobei bewirkt wird, dass es als ein normales Datenpaket geroutet wird, bis es vielleicht nach einer Leitweglenkung durch mehrere Karten in einem Router in eine Karte gelangt, in der ein weiteres Multicasting ausgeführt wird. Bei Eintritt zur gewünschten Karte wird die Unicast-Bezeichnung von dem Paketheader eines speziellen Pakets abgestreift, wobei das Multicastziel zu einem M-Port auf der Karte offenbart wird. Ein Adressiermanipulationsvermögen kann an einem beliebigen Eingangsport auf einer beliebigen Routerkarte durch eine Portmanipulation von Paketheadern bewerkstelligt werden.
  • Es ist für einen Fachmann ersichtlich, dass die Karte 321 mehr oder weniger Ports 323 aufweisen kann, als in diesem Beispiel veranschaulicht sind, ohne dass man vom Geist und Bereich der vorliegenden Erfindung abweicht. Desgleichen kann mehr als bloß ein M-Port 325, der auf der Karte 321 integriert ist, vorhanden sein. Die Anzahl von sowohl herkömmlichen Ports als auch für ein Multicasting erweiterten Ports sowie ihre Aktivitätszustände während eines Betriebs ist Gegenstand von Konstruktion und Implementierung.
  • 5 ist eine Blockdarstellung, die verschiedene Bauelemente und Anschließbarkeiten des M-Ports 325 von 4 in einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Zusätzlich zur Multicastingrolle des M-Ports 325, wie oben beschrieben, können Datenpakete, die nicht zum Multicasting bestimmt sind, einen Eingang/Ausgang durch diesen Port mit Bedingungen erlangen, die dazu dienen, hereinkommende oder herausgehende Daten während Perioden auszuschließen, wenn der Multicastport aktiv mit Multicasting/Replikations-Aufgaben beschäftigt ist. In diesem Beispiel ist die Tatsache, dass normaler Verkehr den Port 325 während eines aktiven Multicastings nicht verwenden kann, auf die Tatsache zurückzuführen, dass in dieser Ausführungsform Multicastpakete als ankommende Pakete in das System (Karte) rückgeschleift werden. Jedoch können in einer in größerem Maße erweiterten Ausführungsform zusätzliche Bauelemente hinzugefügt werden, um zu ermöglichen, dass sowohl normaler Verkehr als auch Multicastverkehr den Port 325 gleichzeitig verwenden.
  • Der Port 325 ist mit einem Ausgangspfad (von Kreuzschiene zum Ausgang) und einem Eingangspfad (vom Eingang zur Kreuzschiene) veranschaulicht. Diese Pfade umfassen die grundsätzlichen Leitwegpfade des Ports 325 für normalen (Nicht-Multicastverkehr). Ein Multicast (M-Cast)-Prozessor 339 ist als das replizierende Bauelement des Ports 325 vorgesehen. Der Prozessor 339 kann in einigen Ausführungsformen mit Logikgrundschaltungsanordnung als ein integrierter Teil des ASIC-Freigabeports 325 oder als ein separater Chip implementiert sein. Es wird hierin angemerkt, dass der Prozessor 339 mit einem Port versehen ist, um einen Empfang von Daten sowie eine Kommunikation mit anderen Port-Prozessoren auf einer selben Fabrickarte und auf anderen multicastfähigen Fabrickarten zu ermöglichen.
  • Eine Grundfunktionalität in der vorliegenden Ausführungsform der Erfindung umfasst ankommende Multicastpakete, die für den Port 325 bestimmt sind (hierin als ankommende Pakete gekennzeichnet), die in den Port 325 von der Kreuzschienenschalteinrichtung (327, 4) gelangen und die zum Prozessor 339 durch eine Eingabeleitung 341 zur Paketreplikation abgeliefert werden.
  • Die als Pakete A, B, C und D gekennzeichneten Pakete, die im Prozessor 339 veranschaulicht sind, werden durch den Prozessor 339 von einer Leitweginformation, die in der Tabelle 349 gespeichert ist, die auch im Prozessor 339 veranschaulicht ist, einer Zieladresszuweisung unterzogen. Die Tabelle 349 enthält eine Liste von IP-Zielen einer Multicastgruppe für ein gegebenes Multicastprojekt. Die Tabelle 349 wird periodisch aktualisiert und unter aktiven Multicastports ausgebreitet, wie mit Bezug auf 4 oben beschrieben wurde.
  • Der Multicastprozessor 339 repliziert Datenpakete auf Grundlage einer Anweisung, in diesem Beispiel die Pakete A-D. Es wird hierin angemerkt, dass ein ankommendes Datenpaket, das als eine Quelle zur Replikation dient, nach einer Replikation abgelegt werden kann oder mit derselben oder einer neuen ihm zugewiesen Zieladresse zurückbehalten werden kann. Genauer gesagt kann eines der Pakete A-D das Quellpaket (3 Replikationen) sein, oder alle Pakete A-D können Replikationen sein, wobei das Quellpaket abgelegt ist (vier Replikationen). Die Beschaffenheiten von Adressen (entnommen oder nicht) in Tabelle 349 werden wie verwendet aktualisiert, um während eines aktiven Multicastprojekts zu allen Ports aktuelle Information zu liefern. Die Tabelle 349 wird an allen Multicastports in einer Routerfabric und in einigen Fällen unter mehreren Routern periodisch aktualisiert, damit alle Ports hinsichtlich dessen, wie viele Replikationen von Datenpaketen erzeugt werden müssen und welche Endziele den replizierten Paketen zugewiesen werden müssen, auf dem Laufenden bleiben.
  • Sobald der Prozessor 339 die Replikation und Adresszuweisung für einen gegebenen (zugewiesenen) Teil eines Multicastprojekts beendet, werden replizierte Datenpakete, die in diesem Beispiel als A, B, C und D dargestellt sind, über eine beispielhafte Leitung 343 zu dem Eingangspfad des Ports 325 als ankommende Datenpakete übertragen. Die Pakete A-D werden dann in geeigneten Abschnitten einer dem Port 325 zugeordneten VOQ (nicht dargestellt) eingereiht. Die Pakete A-D gelangen schließlich in die Kreuzschienenschalteinrichtung 327 (4) zur Verteilung über verschiedene Pfade entsprechend den zugewiesenen Adressen für die replizierten Datenpakete. Es wird hierin angemerkt, dass die Taktgeschwindigkeit des Ports 325 im Wesentlichen dieselbe wie eine beliebige der Ports 323 (4) ist. Jedoch wird in einer Ausführungsform die Geschwindigkeit einer Replikation unter Verwendung einer erhöhten Taktgeschwindigkeit für den M-Cast-Prozessor 339 über diejenige von anderen ASIC-Bausteinen in der Fabrickarte erhöht.
  • Um eine geeignete Verwaltung eines Datenflusses durch den Port 325 aufrechtzuerhalten, wird ein Rückstau (BP)-Modul 351 bereitgestellt und angepasst, um eine Eingabe von neuen Daten in den Port 325 während einer Replizier(Multicasting)-Aktivität des Prozessors zu verhindern. Das BP-Modul 351 bildet mit dem M-Cast-Prozessor 339 über eine Steuerleitung 345 eine Schnittstelle, um die im Gange befindliche Aktivität des Prozessors zu überwachen. Wenn es bestimmt wird, dass der Prozessor 339 mit Replizieren und Adresszuweisung von Datenpaketen während eines speziellen Multicastprojekts voll beschäftigt ist, setzt das BP-Modul 351 die Kreuzschienenschalteinrichtung (327) über eine Steuerleitung 347 davon in Kenntnis, nicht zusätzliche neue Datenpakete zur Verarbeitung durch den Prozessor einzugeben, bis die augenblickliche Unternehmung beendet ist.
  • Es ist für einen Fachmann ersichtlich, dass der Prozessor 339 eine größere oder geringere Anzahl von Datenpaketen replizieren kann als die Anzahl, die in diesem Beispiel veranschaulicht ist, ohne dass man vom Geist und Bereich der Erfindung abweicht. Die Anzahl von Paketen, die repliziert werden, wird von einer Zuweisung von Daten bestimmt. In einer bevorzugten Ausführungsform empfangen alle aktiven Prozessoren während eines Projekts einen ähnlichen Teil eines Multicastprojekts. Jedoch können in fortschrittlicheren Ausführungsformen vorhandene Netzwerkbelegungsbedingungen einschließlich Vorhersagealgorithmen verwendet werden, um Multicastzuweisungen in Bezug zu Prozessoren, Karten und selbst Routern, die beteiligt sind, zu ändern. Es kann viele solche Ausführungsformen geben.
  • 6 ist ein Flussdiagramm, das grundlegende Schritte einer Datenpaketverarbeitung durch die mit Bezug auf 4 beschriebene Multicast-Fabrickarte veranschaulicht. Gemäß einer Ausführungsform der vorliegenden Erfindung bezeichnet Schritt 353 die Ankunft eines zum Multicasting bestimmten Datenpakets. Das Datenpaket, das durch einen Eingangspfad einer für Multicast freigegebenen Karte ankommt, wird für einen M-Port, der dem Port 325 von 4 entspricht, in eine Warteschlange eingereiht. Die Warteschlangenzuweisung beruht auf einer Zieladressierung des ankommenden Pakets. Eine in diesem Beispiel veranschaulichte gestrichelte Linie von Schritt 353 zu Schritt 361 bezeichnet ein fortlaufendes Überwachen eines Datenflusses zum Multicastingport von Schritt 353 durch ein BP-Modul, das dem Modul 351 von 5 entspricht. Wie mit Bezug auf 5 beschrieben, teilt das BP-Modul 351 der Kreuzschienenschalteinrichtung (327) mit, wenn der Port 325 mit einer Paketreplikations- und Adresszuweisungsaktivität beschäftigt ist.
  • Bei Schritt 355 repliziert der Multicastprozessor im Port von Schritt 353 das Paket die notwendige Anzahl von Malen und weist Zieladressen gemäß einer Multicastgruppentabelle, die der Tabelle 349 von 5 entspricht, zu.
  • In Schritt 357 reiht der Multicastport von Schritt 353 jedes replizierte Paket entsprechend einem Ziel in eine VOQ, die der Warteschlange 329 von 4 entspricht, ein. Eine solche VOQ ist an jedem Eingangs-/Ausgangsport einer Fabrickarte vorhanden. Jedes in eine Warteschlange eingereihte Paket hält sich in einer Warteschlange entsprechend seiner zugewiesenen Zieladresse zum Austritt aus einer Multicastkarte auf. In Schritt 359 wird jedes Paket von der Fabrickarte entlang einem vorbestimmten Pfad zu seinem zugewiesenen Ziel zur weiteren Verarbeitung geroutet, wie für ein gegebenes Multitaskprojekt benötigt. In einigen Fällen führt das Ziel zu einem Eingang an einem Port auf einer anderen Multicastkarte. In einigen Fällen ist eine nächste Karte keine Multicastkarte. In einigen Fällen erfolgt ein Ausgang zu einem nächsten Router oder zu einem IP-Endziel.
  • Es ist für einen Fachmann ersichtlich, dass die Prozessschritte, die in diesem Beispiel veranschaulicht sind, weiter in Unterschritte zerlegt werden können, ohne dass man vom Geist und Bereich der vorliegenden Erfindung abweicht. Z. B. kann ein Unterschritt zur Aktualisierung einer Multicastgruppentabelle vor Schritt 355 eingeschlossen werden. Es ist für einen Fachmann auch ersichtlich, dass die Ausführungsformen der Erfindung, die in dieser Beschreibung beschrieben sind, beispielhaft sind und in einer Anzahl von Weisen oder Konfigurationen variieren können, ohne dass man vom Geist und Bereich der vorliegenden Erfindung abweicht. Z. B. kann eine Fabrickarte mehr oder weniger als neun Ports enthalten, und ein beliebiger oder sämtliche Ports können Multicastingports sein. Desgleichen kann in einigen Ausführungsformen die Taktgeschwindigkeit von eingeschlossenen Multicastingports abhängig von der Last einer Datenpaketübertragung variiert werden und auswählbar sein, wie zuvor beschrieben.
  • Gemäß einer alternativen Ausführungsform kann eine Multicastingkarte mit einem Multicastingport einer Fabrickarte verbunden sein, wobei die Multicastingkarte als eine externe Hinzufügung bereitgestellt ist. In diesem Fall treten Datenpakete zum Multicasting aus der Fabrickarte in die Multicastingkarte ein, wo die Replikation und Zielzuweisungen vorgenommen werden, treten dann aus der Multicastingkarte zurück in die Fabrickarte zur Umleitung entsprechend den neuzugewiesen Adressen. In einigen Fällen kann unter Verwendung eines externen Ports der Ausgang des Ports mit einer nächsten Karte mit einem dedizierten Multicasteingangsport gekoppelt sein.
  • Die vorliegende Erfindung kann in den verschiedensten Konfigurationen von miteinander verbundenen Fabrickarten implementiert sein, und Router, die erweitert sind, um die Erfindung durchzuführen, können in einer gegebenen Netzwerktopologie geographisch verteilt sein, um ein Multicastingvermögen überall in der Topologie zu verbessern. Ein Fachmann erkennt, dass ein Multicastingwirkungsgrad proportional mit einer enormen Rate in die Höhe schnellt, während zusätzliche Karten und Ports zu einzelnen Routern hinzugefügt werden und während ähnlich erweiterte Router in einem Multicastgebiet verteilt werden.
  • Es kann auch viele andere Änderungen im Bereich der Erfindung geben, und der Bereich der Erfindung ist nur durch die Ansprüche, die folgen, beschränkt.

Claims (15)

  1. Multicastfähiger Port (325) zum Replizieren von Datenpaketen, umfassend: – mindestens eine Eingangsleitung (341) von einer Kreuzschienenschalteinrichtung, die angepasst ist, um Datenpakete von der Kreuzschiene zu empfangen, – mindestens eine Ausgangsleitung (343) zu der Kreuzschienenschalteinrichtung, die angepasst ist, um Datenpakete zu der Kreuzschiene zu senden, und – ein multicastfähiges Bauelement, das mit der Eingangs- und Ausgangsleitung (341, 343) des Port (325) gekoppelt ist, wobei das multicastfähige Bauelement angepasst ist, um Datenpakete zu replizieren und/oder neu zu adressieren, gekennzeichnet durch – Einrichtungen zum Umleiten von als Multicastpakete identifizierten Datenpaketen, die auf der Eingangsleitung (341) ankommen, zu dem multicastfähigen Bauelement, und – Einrichtungen zum Ausgeben von replizierten und/oder neuadressierten Datenpaketen von dem multicastfähigen Bauelement zu der Ausgangsleitung (343).
  2. Multicastfähiger Port nach Anspruch 1, bei dem der Port auf einer Karte in einem Datenrouter beherbergt ist.
  3. Multicastfähiger Port nach Anspruch 2, der mit anderen Eingangs-/Ausgangsports der Karte gekoppelt ist.
  4. Multicastfähiger Port nach Anspruch 3, bei dem mehr als ein multicastfähiger Port auf der Karte angebracht ist.
  5. Multicastfähiger Port nach Anspruch 2, bei dem es mehrere Karten im Datenrouter gibt, von denen einzelne mindestens einen multicastfähigen Port beherbergen.
  6. Multicastfähiger Port nach Anspruch 2, bei dem der Datenrouter mit anderen ähnlichen Datenroutern verbunden ist, die über eine Netzwerktopologie verteilt sind, und wobei einzelne der multicastfähigen Ports, die damit in Zusammenhang stehen, für einen Teil eines Multicastprojekts verantwortlich sind.
  7. Multicastfähiger Port nach Anspruch 1, bei dem der Port eine integrierte Schaltung ist.
  8. Multicastfähiger Port nach Anspruch 7, bei dem das multicastfähige Bauelement außerhalb vom Port als eine integrierte Schaltung ausgeführt ist.
  9. Multicastfähiger Port nach Anspruch 1, bei dem es eine Tabelle (349) gibt, die eine Anweisung zum Multicasting enthält, wobei Tabelleneinträge durch Software konfiguriert sind.
  10. Verfahren zum Replizieren von Datenpaketen mittels eines multicastfähigen Ports (325), umfassend die Schritte: – Empfangen von Datenpaketen von einer Kreuzschienenschalteinrichtung über mindestens eine Eingangsleitung (341), – Senden von Datenpaketen zu der Kreuzschienenschalteinrichtung über mindestens eine Ausgangsleitung (343), und – Replizieren und/oder Neuadressieren von Datenpaketen mittels eines multicastfähigen Bauelements, das mit der Eingangs- und Ausgangsleitung (341, 343) des Port (325) gekoppelt ist, gekennzeichnet durch die folgenden Schritte: – Umleiten von als Multicastpakete identifizierten Datenpaketen, die auf der Eingangsleitung (341) ankommen, zu dem multicastfähigen Bauelement, und – Ausgeben von replizierten und/oder neuadressierten Datenpaketen von dem multicastfähigen Bauelement zu der Ausgangsleitung (343).
  11. Verfahren nach Anspruch 10, bei dem der Multicastprozessor als ein Teil eines Port einer Leitungskarte im Router integriert ist.
  12. Verfahren nach Anspruch 10, bei dem der Multicastprozessor als ein Teil eines Port einer Fabrickarte im Router integriert ist.
  13. Verfahren nach Anspruch 10, bei dem der Multicastprozessor ein selbstständiges Bauelement ist und die zweiten Ports, mit denen die ersten Ports kommunizieren, Ports von einer oder mehreren Fabrickarten im Router sind.
  14. Verfahren nach Anspruch 10, bei dem es im Bereitstellungsschritt eine Mehrzahl von miteinander verbundenen Routern gibt, von denen einzelne Multicastprozessoren aufweisen, und bei dem im Weiterleitungsschritt replizierte und/oder modifizierte Pakete zu einzelnen der Mehrzahl von miteinander verbundenen Routern weitergeleitet werden.
  15. Verfahren nach Anspruch 14, bei dem die tabellierten Anweisungen, die einzelnen Multicastprozessoren zugeordnet sind, periodisch aktualisiert werden.
DE60222656T 2001-05-10 2002-04-03 Vorrichtung und verfahren für effizientes multicasting von datenpaketen Expired - Lifetime DE60222656T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/854,234 US6870844B2 (en) 2001-03-06 2001-05-10 Apparatus and methods for efficient multicasting of data packets
US854234 2001-05-10
PCT/US2002/011185 WO2002093840A1 (en) 2001-05-10 2002-04-03 Apparatus and methods for efficient multicassting of data packets

Publications (2)

Publication Number Publication Date
DE60222656D1 DE60222656D1 (de) 2007-11-08
DE60222656T2 true DE60222656T2 (de) 2008-06-26

Family

ID=25318108

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60222656T Expired - Lifetime DE60222656T2 (de) 2001-05-10 2002-04-03 Vorrichtung und verfahren für effizientes multicasting von datenpaketen

Country Status (5)

Country Link
US (1) US6870844B2 (de)
EP (1) EP1388235B1 (de)
AT (1) ATE374482T1 (de)
DE (1) DE60222656T2 (de)
WO (1) WO2002093840A1 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429296B2 (en) 2001-03-06 2013-04-23 Pluris, Inc. Method and apparatus for distributing routing instructions over multiple interfaces of a data router
US8356334B2 (en) * 2001-05-25 2013-01-15 Conexant Systems, Inc. Data network node having enhanced security features
US8935333B2 (en) * 2001-08-09 2015-01-13 International Business Machines Corporation Implementing multicast on a system area network channel adapter
US7519066B1 (en) 2002-05-09 2009-04-14 Silicon Image, Inc. Method for switching data in a crossbar switch
US7289503B1 (en) * 2002-07-10 2007-10-30 Juniper Networks, Inc. Systems and methods for efficient multicast handling
JP4023281B2 (ja) * 2002-10-11 2007-12-19 株式会社日立製作所 パケット通信装置及びパケットスイッチ
US7461167B1 (en) * 2002-11-22 2008-12-02 Silicon Image, Inc. Method for multicast service in a crossbar switch
US7505422B1 (en) 2002-11-22 2009-03-17 Silicon Image, Inc. Preference programmable first-one detector and quadrature based random grant generator
KR100612315B1 (ko) 2003-02-20 2006-08-16 삼성전자주식회사 핑퐁 방지 기능이 구비된 분산형 라우터 및 그를 이용한핑퐁 방지 방법
US7716364B2 (en) * 2003-06-27 2010-05-11 Broadcom Corporation Internet protocol multicast replication
US7953086B2 (en) * 2003-06-27 2011-05-31 Broadcom Corporation Compression of datagram distribution information
WO2005077045A2 (en) * 2004-02-06 2005-08-25 Arris International, Inc. Method and system for replicating a video stream onto separate qam downstream channels
US7489683B2 (en) * 2004-09-29 2009-02-10 Intel Corporation Integrated circuit capable of routing multicast data packets using device vectors
GB2419490A (en) * 2004-10-19 2006-04-26 Agilent Technologies Inc Analysing datagrams in a packet forwarding apparatus making use of a separately retrievable multicast field.
US20060133376A1 (en) * 2004-12-22 2006-06-22 Brocade Communications Systems, Inc. Multicast transmission protocol for fabric services
US7684390B2 (en) * 2004-12-30 2010-03-23 Intel Corporation Integrated circuit capable of transmitting probe packets across a stack of switches
US20070058641A1 (en) * 2005-04-01 2007-03-15 Cicchetti Christopher J Enterprise physical layer switch
US8068490B1 (en) * 2006-02-27 2011-11-29 Cisco Technology, Inc. Methods and systems for multicast group address translation
US20070253426A1 (en) * 2006-04-28 2007-11-01 International Business Machines Corporation Reliable global broadcasting in a multistage network
US7660330B1 (en) * 2006-06-28 2010-02-09 Atrica Israel Ltd. Clock synchronization and distribution over an optical Ethernet network
US7840810B2 (en) * 2007-01-18 2010-11-23 Panasonic Electric Works Co., Ltd. Systems and methods for rejoining a second group of nodes with a first group of nodes using a shared group key
US8730983B1 (en) * 2010-10-31 2014-05-20 Integrated Device Technology, Inc. Method and apparatus for a configurable packet routing, buffering and scheduling scheme to optimize throughput with deadlock prevention in SRIO-to-PCIe bridges
US8949501B1 (en) * 2010-10-31 2015-02-03 Integrated Device Technology, Inc. Method and apparatus for a configurable packet routing, buffering and scheduling scheme to optimize throughput with deadlock prevention in SRIO-to-PCIe bridges
US8553691B2 (en) * 2011-02-22 2013-10-08 Alcatel Lucent Efficient multicasting in a distributed system architecture
KR20150022859A (ko) * 2012-05-28 2015-03-04 후아웨이 테크놀러지 컴퍼니 리미티드 광 네트워크 단말 관리 및 제어 인터페이스 메시지를 전송하는 방법 및 시스템, 및 대응하는 장치
US9832030B2 (en) 2014-01-21 2017-11-28 International Business Machines Corporation Multicast packet routing via crossbar bypass paths
US10348630B2 (en) * 2017-04-24 2019-07-09 Facebook, Inc. Load balancing based on load projections for events
US11159455B1 (en) * 2018-12-28 2021-10-26 Innovium, Inc. Reducing power consumption in an electronic device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4734907A (en) * 1985-09-06 1988-03-29 Washington University Broadcast packet switching network
US4991171A (en) * 1989-09-26 1991-02-05 At&T Bell Laboratories Broadcast packet switch network
US5138614A (en) * 1990-04-12 1992-08-11 At&T Bell Laboratories Transformation method for network conference connections
KR100262682B1 (ko) * 1995-04-15 2000-08-01 최병석 멀티캐스트 atm교환기 및 그멀티캐스트 경합조정방법
US5689506A (en) * 1996-01-16 1997-11-18 Lucent Technologies Inc. Multicast routing in multistage networks
US6353596B1 (en) * 1996-04-12 2002-03-05 Lucent Technologies Inc. System and method for multipoint-to-multipoint multicasting
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
US6052373A (en) * 1996-10-07 2000-04-18 Lau; Peter S. Y. Fault tolerant multicast ATM switch fabric, scalable speed and port expansion configurations
US6188690B1 (en) * 1996-12-12 2001-02-13 Pmc-Sierra, Inc. Method and apparatus for high speed, scalable communication system
US6226292B1 (en) * 1998-03-19 2001-05-01 3Com Corporation Frame replication in a network switch for multi-port frame forwarding
US6201809B1 (en) * 1998-05-28 2001-03-13 3Com Corporation Port redundancy and backpressure translation table apparatus
US6625156B2 (en) * 1998-06-29 2003-09-23 Nortel Networks Limited Method of implementing quality-of-service data communications over a short-cut path through a routed network
US6240075B1 (en) * 1999-01-25 2001-05-29 Trw Inc. Satellite communication routing arbitration techniques
US6400925B1 (en) * 1999-02-25 2002-06-04 Trw Inc. Packet switch control with layered software
US6477169B1 (en) * 1999-05-14 2002-11-05 Nortel Networks Limited Multicast and unicast scheduling for a network device

Also Published As

Publication number Publication date
US6870844B2 (en) 2005-03-22
US20020126669A1 (en) 2002-09-12
WO2002093840A1 (en) 2002-11-21
DE60222656D1 (de) 2007-11-08
EP1388235B1 (de) 2007-09-26
EP1388235A4 (de) 2004-07-21
ATE374482T1 (de) 2007-10-15
EP1388235A1 (de) 2004-02-11

Similar Documents

Publication Publication Date Title
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE60033099T2 (de) Hochkapazitäts WDM-TDM Paketvermittlungseinrichtung
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE3685599T2 (de) Vermittlungssystem fuer datenuebertragung.
DE69908821T2 (de) Datenvermittlungsverfahren und -vorrichtung
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE60119866T2 (de) Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
DE60036682T2 (de) Maschine zur gewichteten ringförmigen Ablaufsteuerung
DE69634928T2 (de) Netzwerkverwaltungssystem mit verbesserter Knotenerkennung und -überwachung
DE3780800T2 (de) Anordnung zur ueberlastregelung fuer paketvermittlungssystem.
DE60214341T2 (de) Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern
DE69832884T2 (de) Wegesucheinheit mit zuteilung von virtuellen kanälen
DE60306228T2 (de) Mittelverwaltungsvorrichtung für ein Satelliten-Telekommunikationssystem
DE4430993C1 (de) Verfahren zur adaptiven Wegesuche in einem Kommunikationsnetz
DE60120807T2 (de) Schaltvorrichtung und Verfahren
DE69233588T2 (de) ATM-Vermittlungsanordnung
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
DE68918275T2 (de) Schnelles, digitales Paketvermittlungssystem.
DE60127366T2 (de) Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher
DE602005002452T2 (de) Vermittlung für integrierte Telekommunikationssnetzwerke
DE60302045T2 (de) Verfahren und System zur geordneten dynamischen Verteilung von Paketströmen zwischen Netzwerkprozessoren
DE2603262A1 (de) Einrichtung zur vermittlung von daten
DE60217685T2 (de) System und verfahren zum vermitteln von daten unter verwendung eines gemeinsamen koppelfeldes
EP1133112B1 (de) Verfahren zum Verteilen einer Datenverkehrslast eines Kommunikationsnetzes und Kommunikationsnetz zur Realisierung des Verfahrens
DE60110934T2 (de) Modularer und skalierbarer switch und verfahren zum verteilen schneller ethernet-datenrahmen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition