DE69832769T2 - Netzwerkkommunikationsvorrichtung mit gebundenen Toren für erhöhte Bandbreite - Google Patents

Netzwerkkommunikationsvorrichtung mit gebundenen Toren für erhöhte Bandbreite Download PDF

Info

Publication number
DE69832769T2
DE69832769T2 DE69832769T DE69832769T DE69832769T2 DE 69832769 T2 DE69832769 T2 DE 69832769T2 DE 69832769 T DE69832769 T DE 69832769T DE 69832769 T DE69832769 T DE 69832769T DE 69832769 T2 DE69832769 T2 DE 69832769T2
Authority
DE
Germany
Prior art keywords
ports
port
group
communication device
connected ports
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 - Fee Related
Application number
DE69832769T
Other languages
English (en)
Other versions
DE69832769D1 (de
Inventor
Michael L. Tomball Witkowski
Dale J. Houston Mayer
William J. Houston Walker
Kirk D. Austin Roller
Patricia E. Houston Hareski
Gary B. Spring Kotzur
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.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
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 Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of DE69832769D1 publication Critical patent/DE69832769D1/de
Application granted granted Critical
Publication of DE69832769T2 publication Critical patent/DE69832769T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/467Arrangements for supporting untagged frames, e.g. port-based VLANs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • 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
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Description

  • Die Erfindung betrifft allgemein Netzwerke und insbesondere eine Netzwerkkommunikationsvorrichtung mit einer Portverbindungsarchitektur, durch die ermöglicht wird, dass mehrere Ports verbunden werden, wodurch zwischen zwei beliebigen Vorrichtungen in einem Netzwerksystem eine Verbindung höherer Bandbreite bereitgestellt wird.
  • Netzwerkkommunikationsvorrichtungen sind in einer Vielzahl von Konfigurationen und mit einer Vielzahl von Durchsätzen beziehungsweise Datenübertragungsraten verfügbar, um die Netzwerkfähigkeit zwischen mehreren Netzwerkvorrichtungen, so beispielsweise Computern, Servern, DTEs und dergleichen, zu ermöglichen. Eine Knotenstelle (switch) bietet beispielsweise merkliche Vorteile gegenüber anderen Netzwerkkommunikationsvorrichtungen wie Repeatern oder Nabenstellen, da sie MAC-Adressen (media access control MAC, Medienzugriffssteuerung) von Netzwerkvorrichtungen erlernt beziehungsweise erfährt und fremde Paketsendungen verringert. MAC-Adressen werden Netzwerkvorrichtungen zugewiesen. Sie sind mit Blick auf die in der Industrie notwendige Unterscheidung zwischen Vorrichtungen eindeutig. Mehrere Knotenstellen können umfasst sein, damit die Anzahl der Netzwerkvorrichtungen in einem gegebenen Netzwerksystem vergrößert werden kann. Redundante Verbindungswege zwischen zwei beliebigen Netzwerkvorrichtungen oder zwischen zwei oder mehreren Netzwerkkommunikationsvorrichtungen führen jedoch zum Schleifenlauf von Paketen (packet looping). Der Schleifenlauf von Paketen ist nicht erwünscht, da er die Erzeugung duplizierter Pakete und/oder Broadcast-Überlastungen bewirkt. Merkliche Schleifenläufe von Paketen führen gegebenenfalls zu einer großen Anzahl verloren gegangener beziehungsweise fallen gelassener Pakete und verringern die Leistung eines Netzwerkes drastisch.
  • Der Spannbaumalgorithmus (spanning tree algorithm) dient dem Ausfindigmachen sämtlicher Verbindungswege zwischen Ressourcen in einem Netzwerk und der Deaktivierung redundanter Verbindungswege, um Probleme betreffend Schleifenläufe von Paketen zu verhindern. Obwohl eine redundante Leitung zwischen zwei beliebigen Vorrichtungen gegeben sein kann, wird die redundante Leitung üblicherweise nur als Reserveleitung verwendet, wenn die primäre Leitung ausfällt oder sonstwie unnutzbar wird.
  • Während Netzwerkkommunikationsvorrichtungen die Verbindung mehrerer Computer mit einem oder mehreren Servern ermöglichen, lässt der Spannbaumalgorithmus zu einem bestimmten Zeitpunkt nur einen gültigen Weg zwischen einem Computer und einem Server zu. Versuchen mehrere Computer, die über eine gemeinsame Leitung zwischen zwei Netzwerkkommunikationsvorrichtungen mit einem Server verbunden sind, gleichzeitig auf diesen Server zuzugreifen, so werden die Verkehrsanforderungen an jene Leitung oftmals größer als die verfügbare Bandbreite, was zu einer Überlastung der Leitung führt. Dies führt üblicherweise zu fallen gelassenen Paketen, zu unterbrochenen Verbindungen und zu wiederholten Neuversuchen der Sendung eines Paketes. Die gemeinsame Leitung stellt daher einen Flaschenhals zwischen den beiden Netzwerkkommunikationsvorrichtungen dar.
  • Die Druckschrift US 4,897,841 offenbart eine Vorrichtung zur Verbindung von Ortsbereichsnetzwerken (local area networks) unter Verwendung konkurrenter Breitbandkanäle auf einem Basisnetzwerk.
  • Die Druckschrift US 5,309,426 betrifft Knotenstellen zur Verbindung von Untersystemen in Datenkommunikationssystemen. Die Druckschrift betrifft insbesondere eine kaskadierbare Simplexknotenstelle.
  • Es besteht Bedarf an einer Vergrößerung der verfügbaren Bandbreite zwischen zwei beliebigen Netzwerkkommunikationsvorrichtungen ohne merkliche Modifikationen und ohne eine Vergrößerung der Bandbreite eines gegebenen Ports.
  • Entsprechend der vorliegenden Erfindung wird eine Netzwerkkommunikationsvorrichtung bereitgestellt, umfassend: eine Vielzahl von Ports, wobei jeder Port zum Empfangen und Senden von Datenpaketen konfiguriert ist; und eine Portsteuerschaltung, die mit der Vielzahl von Ports gekoppelt ist und umfasst: einen Portmanager, der so konfiguriert ist, dass er Pakete zwischen der Vielzahl von Ports leitet, und eine Portverbindungsschaltung, die mit dem Portmanager gekoppelt ist, wobei die Portverbindungsschaltung so konfiguriert ist, dass sie wenigstens zwei Ports aus der Vielzahl von Ports zu einer Gruppe verbundener Ports verbindet, sodass die Pakete von den Ports aus der Gruppe verbundener Ports gesendet werden, und die Portverbindungsschaltung des Weiteren so konfiguriert ist, dass sie für jedes über die Gruppe verbundener Ports zu sendende Paket einen verbundenen Port aus der Gruppe verbundener Ports auswählt.
  • In einer Kommunikationsvorrichtung kann mehr als eine Gruppe verbundener Ports definiert sein, wobei jede Gruppe verbundener Ports von zwei Ports bis hinauf zu sämtlichen Ports der Kommunikationsvorrichtung enthalten kann, solange nur jeder Port in nur einer Gruppe verbundener Ports enthalten ist. Ein oder mehrere Portverbindungsregister sind vorzugsweise vorgesehen, um zu identifizieren, welcher Port aus der Vielzahl von Ports in der Netzwerkkommunikationsvorrichtung in jeder Gruppe verbundener Ports verbunden ist. Die vorliegende Erfindung ist auf die Verwendung von Netzwerkknotenstellen anwendbar und wird auch anhand derselben beschrieben, obwohl sie auf andere Netzwerkkommunikationsvorrichtungen gleichermaßen anwendbar ist.
  • Bei einem Ausführungsbeispiel werden die verbundenen Ports paketweise ausgewählt, um eine relativ gleichmäßige Verteilung der von jedem verbundenen Port aus der Gruppe verbundener Ports gesendeten Pakete zu erreichen. Vorzugsweise ist ein Speicher enthalten, in dem die Portsteuerschaltung eine Vielzahl von Einträgen speichert, wobei jeder Eintrag eine in jedem Paket vorgesehene Quellenkennung und eine entsprechende Portkennung aufweist. Die Quellenkennung ist üblicherweise eine MAC-Adresse einer sendenden Vorrichtung, durch die diese Vorrichtung eindeutig identifiziert wird. Werden verbundene Ports für eine paketweise erfolgende Sendung ausgewählt, so programmiert die Portverbindungsschaltung für Pakete, die an einem beliebigen der verbundenen Ports der Gruppe verbundener Ports empfangen werden, die entsprechende Portkennung derart, dass die Gruppe verbundener Ports allgemein dargestellt wird. Auf diese Weise wählt, wenn ein Paket von der Kommunikationsvorrichtung empfangen wird, damit eine Aussendung bezüglich der Gruppe verbundener Ports erfolgen kann, was beispielsweise bei einem Unicast-Paket mit einer Zielkennung der Fall ist, die gleichwertig zu einer an einem verbundenen Port empfangenen Quellenkennung ist, die Kommunikationsvorrichtung dynamisch einen beliebigen Port von den verbundenen Ports aus, um eine gleichmäßige Verteilung des Verkehrs in der Gruppe verbundener Ports zu erreichen. Eine derartige paketweise erfolgende dynamische Auswahl stellt eine gleichmäßige Verkehrsverteilung sicher, kann jedoch zu einem Overhead in Verbindung mit jedem Paket führen.
  • Bei einem alternativen Ausführungsbeispiel programmiert die Portverbindungsschaltung für jeden Eintrag in dem Speicher, der eine Quellenkennung enthält, die an einem verbundenen Port der Gruppe verbundener Ports empfangen worden ist, die Portkennung derart, dass sie einen verbundenen Port aus der Gruppe verbundener Ports identifiziert, um so eine relativ gleichmäßige Verteilung der Quellenkennungen unter den verbunde nen Ports aus der Gruppe verbundener Ports zu erreichen. Auf diese Weise wird jede Quellenkennung, die an der Gruppe verbundener Ports empfangen wird, einem bestimmten verbundenen Port aus der Gruppe verbundener Ports zugewiesen. Der ausgewählte verbundene Port ist nicht notwendigerweise derselbe Port, an dem das Paket empfangen worden ist. Anstatt dessen wird eine Auswahl getroffen, um eine relativ gleichmäßige Verteilung von Kennungen unter den verbundenen Ports zu erreichen. Auf diese Weise wird jedes Unicast-Paket, das von der Kommunikationsvorrichtung empfangen wird, die einen Zielkennung spezifiziert, die zu einer Quellenkennung gleichwertig ist, über denselben ausgewählten verbundenen Port aus der Gruppe verbundener Ports gesendet.
  • Die Zuweisung von Quellenkennungen an bestimmte verbundene Ports und die annähernd gleichmäßige Verteilung von Quellenkennungen unter den verbundenen Ports beruht auf der Annahme, dass jede Vorrichtung mit der Zeit die gleiche Verkehrsmenge erzeugt. Im Betrieb kann jedoch ein Verkehrsungleichgewicht auftreten, bei dem ein verbundener Port eine unverhältnismäßig hohe Verkehrsmenge übernimmt. Bei einem optionalen Ausführungsbeispiel überwacht die Portverbindungsschaltung Unicast-Pakete, die über jeden verbundenen Port aus der Gruppe verbundener Ports gesendet werden, und nimmt eine periodische Neuprogrammierung der Portkennung jedes Eintrages aus der Vielzahl von Einträgen in dem Speicher vor, um so eine relativ gleichmäßige Verteilung des Unicast-Paketverkehrs unter den verbundenen Ports aus der Gruppe verbundener Ports zu erreichen. Auf diese Weise werden die Zuweisungen verbundener Ports dynamisch angepasst.
  • Bei einem weiteren erfindungsgemäßen Ausführungsbeispiel mit VLAN-Kapazitäten enthält jeder der Einträge in dem Speicher, der eine Quellenkennung aufweist, die an einem nichtverbundenen Port empfangen worden ist, eine Bitmap mit einem Bit, das jedem der verbundenen Ports entspricht. Die Bitmaps sind für das Rundsenden (broadcast) und die Handhabung von Multicast-Paketen sowie für die Verteilung rundgesendeter (broadcast) Multicast-Pakete in den Gruppen verbundener Ports besonders nutzbringend. Die Portverbindungsschaltung programmiert jede Bitmap jedes Eintrages aus der Vielzahl von Einträgen derart, dass ein verbundener Port aus der Gruppe verbundener Ports derart zugewiesen wird, dass eine relativ gleichmäßige Verteilung der Zuweisungen verbundener Ports an den nichtverbundenen Ports entsprechende Quellenkennungen erreicht wird. Zusätzlich kann der Speicher eine Standardbitmaptabelle enthalten, die eine Standardbitmap für jeden Port aus der Vielzahl von Ports für die Quellen-MAC-Adressen ent hält, die nicht in Erfahrung gebracht wurden. In diesem Fall enthält jede der Standardbitmaps ein Bit, das jedem der verbundenen Ports entspricht, wobei die Portverbindungsschaltung jede der Standardbitmaps derart programmiert, dass ein verbundener Port aus der Gruppe verbundener Ports zugewiesen wird, um so eine relativ gleichmäßige Verteilung der Zuweisungen verbundener Ports unter der Vielzahl von Ports zu erreichen.
  • Für den Fall von Broadcast-Paketen, die von nichtverbundenen Ports empfangen und an verbundene Ports gemäß Bestimmung durch die Portsteuerschaltung gesendet werden, überwacht die Portverbindungsschaltung der Kommunikationsvorrichtung diejenigen Pakete, die von jedem verbundenen Port aus der Gruppe verbundener Ports gesendet werden, und nimmt eine periodische Neuprogrammierung jeder Bitmap jedes Eintrages aus der Vielzahl von Einträgen vor, um so eine relativ gleichmäßige Verteilung des Broadcast-Paketverkehrs unter den verbundenen Ports aus der Gruppe verbundener Ports zu erreichen.
  • Ein paketbasiertes Netzwerksystem entsprechend der vorliegenden Erfindung kann wenigstens zwei Netzwerkkommunikationsvorrichtungen enthalten, von denen jede eine Gruppe verbundener Ports einschließlich wenigstens zweier verbundener Ports umfasst. Eine verbundene Leitung ist zwischen die Gruppen verbundener Ports der jeweiligen Kommunikationsvorrichtungen gekoppelt, wobei die verbundene Leitung eine Verbindungsleitung zwischen jeweiligen verbundenen Ports der beiden Vorrichtungen enthält. Für jedes Paket, das von jedweder Vorrichtung empfangen wird, und das über die verbundene Leitung an eine andere Vorrichtung gesendet werden soll, wählt jede Vorrichtung einen der zugehörigen verbundenen Ports aus. Die Auswahl erfolgt derart, dass eine gleichmäßige Verteilung der Pakete auf der Leitung verbundener Pakete gegeben ist, wobei vorausgesetzt wird, dass jeder der verbundenen Ports mit der gleichen Geschwindigkeit und bei der gleichen Bandbreite betrieben wird. Entsprechend dem Vorbeschriebenen kann die Auswahl der verbundenen Ports paketweise erfolgen, oder indem ein verbundener Port jeder Quellenkennung zugewiesen wird. Werden die verbundenen Ports zugewiesen, so weist die Kommunikationsvorrichtung die von den verbundenen Ports empfangenen Quellenkennungen unter den verbundenen Ports gleichmäßig zu und weist darüber hinaus die verbundenen Ports unter den Quellenkennungen, die von den nichtverbundenen Ports empfangen werden, ebenfalls gleichmäßig zu. Die Zuweisung kann auf Grundlage des Random-Algorithmus (zufallsbedingt), des Round-Robin-Algorithmus (Reigen), des Sequenz-Algorithmus (sequenziell) und dergleichen erfolgen.
  • Die Gruppen verbundener Ports zwischen zwei Kommunikationsvorrichtungen können verbundene Ports enthalten, die mit unterschiedlichen Geschwindigkeiten und bei unterschiedlichen Bandbreiten arbeiten. In diesem Fall versuchen die miteinander über eine verbundene Leitung gekoppelten Vorrichtungen jeweils, den Verkehr auf der verbundenen Leitung im Verhältnis zu den Bandbreiten der verbundenen Ports zu verteilen. Zudem kann ein Netzwerksystem entsprechend der vorliegenden Erfindung mehrere Vorrichtungen und mehrere Gruppen verbundener Ports zwischen den jeweiligen Vorrichtungen enthalten. Daher kann eine Vorrichtung mehrere Gruppen verbundener Ports aufweisen, von denen jede eine Anzahl verbundener Ports umfasst, solange nur eine verbundene Leitung zwischen zwei beliebigen Vorrichtungen besteht.
  • Entsprechend der vorliegenden Erfindung ist ein Verfahren zum Verbinden von Ports einer Netzwerkkommunikationsvorrichtung mit einer Vielzahl von Ports, die Pakete senden und empfangen, vorgesehen, wobei das Verfahren die nachfolgenden Schritte umfasst: Definieren wenigstens zweier Ports aus der Vielzahl von Ports als verbundene Ports, die eine Gruppe verbundener Ports bilden; Empfangen eines Paketes; Bestimmen, dass das empfangene Paket über die Gruppe verbundener Ports gesendet werden soll; Auswählen eines der verbundenen Ports; und Senden des Paketes über den ausgewählten verbundenen Port.
  • Ist die Spannbaumfunktion einsetzbar, so kann des Weiteren ein Schritt des Modifizierens der Spannbaumfunktion ausgeführt werden, um eine Deaktivierung eines der verbundenen Ports zu verhindern.
  • Man geht davon aus, dass eine Netzwerkkommunikationsvorrichtung mit verbundenen Ports entsprechend der vorliegenden Erfindung eine im Vergleich zu einer einzelnen Verbindung höhere Bandbreitenkapazität zwischen zwei beliebigen Vorrichtungen ermöglicht. Eine beliebige Anzahl verbundener Ports kann in einer verbundenen Leitung zwischen zwei Kommunikationsvorrichtungen enthalten sein, um die verfügbare Bandbreite um eine verhältnismäßige Menge zu vergrößern. Jede Vorrichtung behandelt ihre Gruppe verbundener Ports derart, als würde es sich um einen einzelnen Port handeln. Auf diese Weise wird zur Vermeidung eines Schleifenlaufes von Paketen jedes Paket über nur einen der verbundenen Ports gesendet, wobei die an einem verbundenen Port empfangenen Pakete nicht an einen weiteren verbundenen Port aus derselben Gruppe verbundener Ports neugesendet werden. Um die höchstmögliche Bandbreite in der verbundenen Leitung zu erreichen, verteilt jede Vorrichtung den Verkehr auf jedem verbun denen Port so gleichmäßig wie möglich. Die Verkehrsverteilung hängt von einem Auswahlkriterium betreffend die Auswahl verbundener Ports ab, wobei ein beliebiges Verfahren von mehreren Verfahren eingesetzt werden kann, so beispielsweise das Random-Verfahren, das Round-Robin-Verfahren und dergleichen. Die Auswahl eines verbundenen Ports zur Sendung eines Paketes erfolgt entweder paketweise oder durch Zuweisung einer Quellenkennung (MAC-Adresse), was bereits beschrieben wurde. Bei dem zuweisungsbasierten Ausführungsbeispiel können der Verkehr dynamisch überwacht und die Zuweisungen periodisch angepasst werden, um die höchste Bandbreite in jeder verbundenen Leitung zu erreichen.
  • Ein tieferes Verständnis der vorliegenden Erfindung ergibt sich aus einer Betrachtung der nachfolgenden Detailbeschreibung bevorzugter Ausführungsbeispiele derselben in Zusammenschau mit der begleitenden Zeichnung, die sich wie folgt zusammensetzt.
  • 1 ist ein vereinfachtes Blockdiagramm eines einer erfindungsgemäßen Implementierung entsprechenden Netzwerksystems mit verbundenen Ports zwischen zwei Netzwerkknotenstellen.
  • 2 ist ein perspektivisches Diagramm, das eine Netzwerkknotenstelle zeigt, die an mehreren verbundenen Ports beteiligt ist.
  • 3 ist ein Diagramm, das eine Gruppe verbundener Ports zwischen zwei Netzwerkknotenstellen zeigt, wobei die Gruppe verbundener Ports verschiedene Bandbreiten aufweist.
  • 4A und 4B sind Flussdiagramme, die die Vorgänge bei einer beispielhaften Paketversendung an der Netzwerkknotenstelle von 1 erläutern.
  • 5 ist ein Diagramm, das ein beispielhaftes Broadcast-Paket zeigt, das über eine Gruppe verbundener Ports zwischen zwei Netzwerkknotenstellen versendet wird, ohne dass eine Duplizierung des Paketes erfolgen würde.
  • 6 ist ein beispielhaftes Blockdiagramm einer erfindungsgemäßen Netzwerkknotenstelle, die für die Unterstützung verbundener Ports ausgelegt ist.
  • 7A bis 7C sind Blockdiagramme, die die Organisation des Speichers von 6 darstellen.
  • 8 ist ein Flussdiagramm, das den Vorgang einer beispielhaften Initialisierung und Programmierung der Netzwerkknotenstelle von 6 erläutert.
  • 9A und 9B sind Flussdiagramme, die weitere Vorgänge im Zusammenhang mit der Paketsendung an der Netzwerkknotenstelle von 6 erläutern.
  • 10 ist ein Blockdiagramm, das beispielhaft die optionale dynamische Überwachung des Verkehrs sowie Eigenschaften des Lastausgleiches darstellt.
  • 1 ist ein vereinfachtes Blockdiagramm eines Netzwerksystems 100 mit erfindungsgemäßen verbundenen Ports zwischen zwei Netzwerkknotenstellen 102, 106. Das Verbinden der Ports beinhaltet das Verbinden zweier oder mehrerer Ports zu einer Gruppe verbundener Ports und das Behandeln der Gruppe verbundener Ports derart, als würde es sich um einen einzigen Port handeln, mit der Ausnahme, dass der Verkehrsfluss an jedem der verbundenen Ports zugelassen ist. Eine Gruppe verbundener Ports einer Knotenstelle wird portweise mit einer entsprechenden Gruppe verbundener Ports einer anderen Knotenstelle gekoppelt, wodurch eine kombinierte verbundene Leitung beziehungsweise eine „fat pipe" zwischen den beiden Knotenstellen geschaffen wird. Der Spannbaumalgorithmus wird an jeder der Knotenstellen 102, 106 modifiziert, um eine Deaktivierung eines beliebigen der verbundenen Ports zu verhindern, wobei der Schleifenlauf von Paketen verhindert wird, indem jedes Paket nur bezüglich eines verbundenen Ports ausgesendet wird. Darüber hinaus werden an einem beliebigen verbundenen Port empfangene Pakete nicht an andere verbundene Ports in derselben Gruppe verbundener Ports weitergeleitet. Ebenso wenig werden an einem beliebigen verbundenen Port empfangene Pakete nicht an andere verbundene Ports in derselben Gruppe verbundener Ports weitergeleitet. Auf diese Weise stellt eine verbundene Leitung eine größere Bandbreite für die Kommunikation zwischen Knotenstellen bereit, als dies andernfalls ohne Portverbindung möglich wäre.
  • Bei den nachstehend beschriebenen Ausführungsbeispielen kann jede Knotenstelle eine beliebige Anzahl von Gruppen verbundener Ports unterstützen, obwohl eine verbundene Leitung nur zwischen zwei Knotenstellen vorhanden ist. Im Allgemeinen kann jede Gruppe verbundener Ports eine beliebige Untergruppe aller Ports bis hin zur vollen Anzahl der Knotenstellenports enthalten. Gleichwohl kann ein Port auch in nur einer Gruppe verbundener Ports enthalten sein. Man beachte, dass die vorliegende Erfindung anhand von Knotenstellen beschrieben wird. Die Konzepte betreffend redundante Ports und die Verbindung von Ports sind jedoch auf über Knotenstellen hinausgehende Netzwerkkommunikationseinrichtungen gleichermaßen anwendbar.
  • Wie in 1 gezeigt ist, umfasst das Netzwerksystem 100 vier Netzwerkvorrichtungen 110, 114, 116 und 118, denen MAC-Adressen A, B, C beziehungsweise D zugewiesen sind. Jede der Netzwerkknotenstellen 102 und 106 enthält eine Vielzahl von Ports, von denen jeder dem Empfang und dem Senden von Daten dient. Insbesondere enthält die Netzwerkknotenstelle 102 eine Vielzahl von Ports 104, während die Netzwerkknotenstelle 106 eine Vielzahl von Ports 108 enthält. Die Ports 104, 108 können alle vom gleichen Typ sein, und sie können auch alle mit der gleichen Geschwindigkeit betrieben werden. Alternativ können die Ports 104, 108 eine Kombination von Ports verschiedener Typen und verschiedener Geschwindigkeiten enthalten. So können beispielsweise einige Ports entsprechend Ethernet 10Base-T mit 10 Mbit pro Sekunde (Mbps) betrieben werden, während andere mit 100 Mbps oder auch mit beiden Geschwindigkeiten 10 und 100 betrieben werden. Die vorliegende Erfindung ist mit Blick auf die Ports nicht auf einen bestimmten Typ oder eine bestimmte Geschwindigkeit beschränkt.
  • Jede der Netzwerkvorrichtungen 110, 114, 116 und 118 kann als Personalcomputer oder Laptop mit Netzwerkschnittstellenkarten (network interface card NIC), Server, DTE-Vorrichtung (data terminal equipment DTE), Netzwerkcontroller oder andere beliebige Typen von Netzwerkvorrichtung ausgebildet sein. Die Netzwerkvorrichtungen 110, 114, 116 und 118 sind mit Ports 130, 132, 134 beziehungsweise 136 gekoppelt, und zwar mittels entsprechender Leitungen 112. Die Leitungen 112 können beliebige geeignete Arten von Übertragungsmedien sein, darunter Kabel, die in einem typischen Netzwerk üblicherweise zur Verbindung von Netzwerkvorrichtungen Verwendung finden. So können die Leitungen 112 beispielsweise Twisted-Pair-Kabel mit RJ-45-Steckern sein, wenn das Netzwerksystem 100 auf einer Ethernetarchitektur beruht. Die Leitungen 112 können auch Fern- und/oder Drahtlosverbindungen umfassen.
  • Das Netzwerksystem 100 kann ein Ortsbereichsnetzwerk (local area network LAN), ein Großbereichsnetzwerk (wide area network WAN) oder eine beliebige andere Art von Netzwerk sein. Es kann darüber hinaus auf einer beliebigen Netzwerkarchitektur, so beispielsweise Ethernet, Token Ring, ATM oder einer anderen einem Fachmann auf dem einschlägigen Gebiet bekannten Architektur beruhen. Bei dem gezeigten Ausführungsbeispiel ist das Netzwerksystem 100 ein Shared-Media-Netzwerk, das Daten in Form von Paketen austauscht, wobei jede der Vorrichtungen 110, 114, 116 und 118 sowie die Netzwerkknotenstellen 102, 106 mittels des Sendens und Empfangens von Paketen kommunizieren. Jedes Paket kann vom Unicast-, Multicast- oder Broadcast-Typ sein. Unicast-Pakete enthalten typischerweise eine Quellenkennung oder eine Adresse, die die sendende Vorrichtung identifiziert, und eine Zielkennung oder Adresse, die die beabsichtigte Zielvorrichtung identifiziert. Die Kennungen oder Adressen liegen vorzugsweise in Form von MAC-Adressen vor, die eindeutig zugewiesen sind, um bestimmte Vorrichtungen zu identifizieren. Broadcast- und Multicast-Pakete enthalten Quellenadressen und sollen an alle anderen Vorrichtungen in dem Netzwerk oder an eine bestimmte Untergruppe hiervon rundgesendet (broadcast) werden. Broadcast-Pakete enthalten keine Zieladresse; dafür ist ihr Gruppenbit derart gesetzt, dass eine Identifizierung dahingehend erfolgen kann, dass es sich um ein Broadcast-Paket handelt. Ein Multicast-Paket stellt eine Quellenadresse zusammen mit einer oder mehreren Zieladressen bereit, wobei auch hier das Gruppenbit gesetzt ist. Im Sinne der vorliegenden Offenbarung werden Multicast-Pakete und Broadcast-Pakete gleich behandelt.
  • Die Netzwerkknotenstelle 102 enthält eine Portsteuerschaltung 154, die mit jedem der Ports 104 gekoppelt ist, um den Verkehrsfluss der Ports 104 zu steuern. Die Netzwerkknotenstelle 102 enthält zudem eine Portverbindungsschaltung 106, die mit der Portsteuerschaltung 154 gekoppelt oder auf andere Weise darin integriert ist. Auf gleiche Weise enthält die Netzwerkknotenstelle 106 eine Portsteuerschaltung 150, die mit jedem der zugehörigen Ports 108 gekoppelt ist, um den Datenverkehr zu steuern, sowie eine Portverbindungsschaltung 152, die mit der Portsteuerschaltung 150 gekoppelt oder auf andere Weise darin integriert ist. Die Portsteuerschaltung 154, 150 verwaltet beziehungsweise managt den Betrieb der jeweiligen Ports 104, 108 der jeweiligen Knotenstellen 102, 106, wobei die Portverbindungskomponenten 156, 150 Portverbindungsinformationen enthalten und die Portverbindung für die jeweiligen Knotenstellen 102, 106 erleichtern. Obwohl sie in den Netzwerkknotenstellen 102, 106 integriert dargestellt sind, können die Portverbindungskomponenten 156, 152 bei einem alternativen Ausführungsbeispiel auch außerhalb der Knotenstellen 102, 106 befindlich sein.
  • Die Portsteuerschaltung 154, 150 jeder Netzwerkknotenstelle 102 und 106 untersucht jedes empfangene Paket und nimmt Filterfunktionen wahr, um eine fremde Paketerzeugung zu verringern. Insbesondere untersucht jede der Portsteuerschaltungen 154 und 150 jedes Paket und „lernt" beziehungsweise „erfährt" die Quellen-MAC-Adresse jedes empfangenen Paketes und verknüpft jene Quellenadresse mit dem bestimmten Port, über den das Paket empfangen worden ist, oder weist sie zu. Ports einer Knotenstelle können auf beliebige Weise identifiziert werden, so beispielsweise mittels einer Portnummer. Anschließend untersucht die Portsteuerschaltung 154, 150 die Zieladresse jedes Paketes, falls vorhanden, und sendet dieses Paket an den Zielport, der der in Erfahrung gebrachten MAC-Adresse entspricht. Wird beispielsweise ein Paket von der Netzwerkvorrichtung 110 an den Port 130 mit der Quellen-MAC-Adresse A gesendet, so erfährt die Portsteuerschaltung 154 der Netzwerkknotenstelle 102 die MAC-Adresse A und weist die Portnummer des Ports 130 der MAC-Adresse A zu. Enthält das empfangene Paket eine Ziel-MAC-Adresse B, die die Vorrichtung 114 bezeichnet, und hat die Portsteuerschaltung 154 die zugehörige MAC-Adresse B bereits mit dem Port 132 verknüpft, dann leitet die Netzwerkknotenstelle 102 das Paket an den Port 132 weiter.
  • Ist jedoch die Ziel-MAC-Adresse für ein empfangenes Paket der Portsteuerschaltung 154 noch nicht bekannt, so wird das empfangene Paket an sämtliche anderen Ports 104 oder an alle verknüpften Ports, wie nachstehend noch beschrieben wird, rundgesendet (broadcast). Eine auf diese Weise erfolgende Rundsendung des Paketes stellt sicher, dass die gewünschte Zielvorrichtung das Paket auch tatsächlich erhält. Anschließend erfährt, wenn die mit der unbekannten Zieladresse verknüpfte Netzwerkvorrichtung antwortet, indem ein Datenpaket mit ihrer eigenen Adresse als Quellenadresse in dem Paket gesendet wird, die Portsteuerschaltung 154 der Netzwerkknotenstelle 102 die MAC-Adresse und weist sie demjenigen Port zu, über den das Paket empfangen wurde. Ist beispielsweise die MAC-Adresse B der Portsteuerschaltung 154 nicht bekannt, so wird das empfangene Paket an alle anderen Ports 104 einschließlich des Ports 132 rundgesendet, sodass die Vorrichtung 114 das Paket erhält. Die Vorrichtung 114 antwortet gegebenenfalls, indem ein Paket mit der Quellen-MAC-Adresse B gesendet wird, sodass die Portsteuerschaltung 154 die MAC-Adresse B erfährt und die Portnummer des Ports 132 der MAC-Adresse B zuweist. Enthält das Paket die Ziel-MAC-Adresse A, so muss die Knotenstelle 102 das Paket nicht rundsenden (broadcast), sondern sendet das Paket über den Port 130.
  • Eine Netzwerkknotenstelle unterstützt direkt nur eine endliche Anzahl von Netzwerkvorrichtungen, da bei ihr eine physikalische Beschränkung auf eine endliche Anzahl von Ports gegeben ist. Viele Knotenstellen enthalten jedoch einen oder mehrere Uplink-Ports, um ähnliche Uplink-Ports anderer Netzwerkknotenstellen zu verbinden, wodurch die Größe des Netzwerksystems erweitert wird. Gleichwohl sind derartige Uplink-Verbindungen auf die Bandbreite eines einzelnen Ports beschränkt, da der Spannbaumalgorithmus redundante Leitungen beseitigt.
  • Die Netzwerkknotenstelle 102 enthält eine Gruppe 120 verbundener Ports, die zwei Ports 140 und 142 umfasst. Die Portverbindungsschaltung 156 vereinfacht den Betrieb bei der Unterstützung der Gruppe 120 verbundener Ports. Die Netzwerkknotenstelle 106 umfasst zudem eine Gruppe 122 verbundener Ports mit den beiden Ports 144 und 146, wobei die Portverbindungsschaltung 152 die Gruppe 122 verbundener Ports unterstützt. Der Port 142 ist über eine Leitung 124 mit dem Port 144 gekoppelt, während der Port 140 über eine Leitung 126 mit dem Port 146 gekoppelt ist. Das Paar von Leitungen 124, 126 zusammengenommen wird als verbundene Leitung 148 bezeichnet. Obwohl die verbundene Leitung 148 gemäß 1 nur zwei Ports jeder Netzwerkknotenstelle 102, 106 koppelt, können mehr als zwei Ports enthalten sein. Weist jeder verbundene Port aus einer Gruppe verbundener Ports eine Bandbreite von 100 Mbs im Halbduplexbetrieb auf, dann ist bedingt durch die Portverbindung die zusammengenommene Datenbandbreite zwischen den Netzwerkknotenstellen 102, 106 vermöge der verbundenen Leitung 148 gleich 400 Mbs im Vollduplexbetrieb. Die Portverbindungsschaltung 156, 152 der jeweiligen Netzwerkknotenstellen 102, 106 ermöglicht eine Kommunikation über die Leitung 148 verbundener Ports nach Aufbau der verbundenen Leitung 148.
  • Die Portsteuerschaltung 154, 150 jeder Knotenstelle 102, 106 behandelt aufgrund des Wirkens der Portverbindungsschaltung 156, 152 die zugehörige Gruppe 120, 122 verbundener Ports derart, als würde es sich um einen einzelnen Port handeln. Zum Senden eines Paketes von der Gruppe 120 verbundener Ports wählt die Knotenstelle 120 nur einen der verbundenen Ports 140, 142 aus. Dieses Auswahlkriterium versetzt die Knotenstelle 102 in die Lage, den Verkehr in der Gruppe 120 verbundener Ports gleichmäßig zu verteilen, wodurch die Datenübertragungsrate beziehungsweise der Durchsatz des Verkehrs ansteigen. Die Knotenstelle 102 erfährt oder verknüpft MAC-Adressen der an ihrem Port empfangenen Pakete aus der Gruppe verbundener Pakete auf eine von zwei Weisen. Eine MAC-Adresse wird entweder einem verbundenen Port 140 oder 142 oder der gesamten Gruppe 120 verbundener Ports zugewiesen. Derartige Adresszuweisungen dienen mehr dem Zweck des Senders als dem des Empfangens von Paketen. Wird die MAC-Adresse einem bestimmten verbundenen Port zugewiesen, so muss die Zuweisung nicht bezüglich desselben Ports erfolgen, der das Paket empfangen hat. Nachfolgende Pakete mit derselben Adresse können an einem beliebigen Port aus der Gruppe verbundener Ports empfangen werden, ohne dass dies Auswirkungen auf die Zuweisung hätte. Die Knotenstelle 106 arbeitet bedingt durch das Wirken der Portverbindungsschaltung 152 auf ähnliche Weise.
  • Ein Beispiel für einen Vorgang der Portverbindung ist nachstehend beschrieben. Es sei angenommen, dass die Netzwerkvorrichtung 110 ein Unicast-Paket an den Port 130 der Knotenstelle 102 mit der Quellenadresse A und einer Zieladresse C sendet. Hat die Knotenstelle 102 die Adresse C nicht vorher erfahren, das heißt, verfügt sie nicht über eine Kenntnis der mit der Ziel-MAC-Adresse C verknüpften Portnummer, so nimmt sie eine Rundsendung (broadcast) des Paketes an alle Ports 104 ausgenommen den Empfangsport 130 vor. Zudem wählt die Knotenstelle 102 lediglich einen verbundenen Port 140 oder 142 aus der Gruppe 120 verbundener Ports aus, um das Paket zu senden. Wie nachstehend noch beschrieben wird, beschreibt die Zuweisung an die Gruppe verbundener Ports oder an jedweden verbundenen Port zwei verschiedene Betriebsweisen beziehungsweise zwei alternative Ausführungsbeispiele. Ein Ziel beider Ausführungsbeispiele besteht darin, den Netzwerkverkehr unter den verbundenen Ports gleichmäßig zu verteilen. Bei dem gezeigten Ausführungsbeispiel wirkt die Knotenstelle 102 derart, dass die MAC-Adressen allgemein Gruppen verbundener Ports zugewiesen werden. Daher weist die Knotenstelle 102 der Gruppe 120 verbundener Ports und nicht jedwedem verbundenen Port 140 oder 142 die MAC-Adresse C zu. Auf diese Weise erfolgt die Bestimmung dahingehend, welcher verbundene Port 140 oder 142 aus der Gruppe 120 verbundener Ports zu verwenden ist, paketweise.
  • Da üblicherweise gewünscht wird, dass die richtige Reihenfolge der Pakete für jeden Quellenport erhalten bleibt, stellen die Portsteuerschaltung 154 und die Portverbindungsschaltung 156 zudem sicher, dass die Pakete in derselben Reihenfolge gesendet werden, in der sie von den jeweiligen Ports empfangen worden sind. Ein Verfahren zur Sicherstellung der richtigen Reihenfolge besteht darin, dass die Portsteuer- und die Portverbindungsschaltung 154, 156 die Pakete zwischen den verbundenen Ports 140 und 142 alternativ zuweist und verteilt. Wird beispielsweise die Quellenadresse C durch die Knotenstelle 102 der Gruppe 120 verbundener Ports zugewiesen, so wird ein erstes Paket mit der Zieladresse C, das an die Vorrichtung 116 gesendet werden soll, dem verbundenen Port 142 zugewiesen, während das nächste Paket mit der Zieladresse C dem verbundenen Port 140 zugewiesen wird, und so weiter. Die Zuweisung dreier oder mehrerer verbundener Ports erfolgt auf ähnliche Weise, wodurch der Verkehr, so beispiels weise durch die Verwendung einer paketweise erfolgenden Round-Robin-Zuweisung der Pakete, gleichmäßig verteilt wird.
  • Die Knotenstelle 102 stellt darüber hinaus sicher, dass die Pakete in derselben Reihenfolge gesendet werden, in der sie empfangen worden sind. Wie die richtige Sendereihenfolge hergestellt wird, kann von der jeweiligen Hardwarekonfiguration abhängen. Es ist nicht notwendig, dass ein verbundener Port die vollständige Sendung eines Paketes abwartet, bevor das nächste Paket an einen anderen verbundenen Port gesendet wird. Es reicht vielmehr aus, wenn die Knotenstelle 102 mit der Sendung eines früheren Paketes an einem Port beginnt, bevor die Sendung eines nachfolgenden Paketes an dem nächsten verbundenen Port in die Wege geleitet wird. So ist beispielsweise eine einzelne Schlange für die gesamte Gruppe 120 verbundener Pakete definiert, wobei die Pakete in der richtigen Reihenfolge in die Schlange eingereiht und gesendet werden. Mit Blick auf das paketweise arbeitende Ausführungsbeispiel hält die Netzwerkknotenstelle, die Pakete an einer Gruppe verbundener Ports empfängt, die richtige Reihenfolge der Pakete ein. So wird beispielsweise ein erstes Paket, das von der Netzwerkknotenstelle 106 an dem Port 144 mit einer Adressierung an die Vorrichtung 116 empfangen worden ist, an die Vorrichtung 116 gesendet, bevor ein nächstes Paket, das von dem Port 146 empfangen wird, auch an die Vorrichtung 116 zugestellt wird.
  • Es sei angenommen, dass die Netzwerkknotenstelle 112 den Port 142 auswählt. Die Knotenstelle 106 empfängt das Paket mit der Quellenadresse A an dem Port 144 mit der Zieladresse C. Hat die Knotenstelle 106 vorher nicht ein Paket mit der MAC-Adresse A erhalten, so weist sie die MAC-Adresse A der Gruppe 122 verbundener Ports oder jedwedem verbundenen Port 144 oder 146 zu. Die Knotenstelle 106 wirkt derart, dass Adressen einem bestimmten verbundenen Port aus einer Gruppe verbundener Ports und eben nicht der Gruppe verbundener Ports allgemein zugewiesen werden, was vorstehend im Zusammenhang mit der Netzwerkknotenstelle 102 beschrieben worden ist. Bei diesem alternativen Ausführungsbeispiel werden Pakete, die mittels der Netzwerkknotenstelle 106 an eine Vorrichtung mit einer gegebenen Zieladresse über die Gruppe 122 verbundener Ports gesendet werden sollen, über denselben verbundenen Port gesendet, dem jene Zieladresse zugewiesen worden ist. Dieses MAC-Zuweisungsausführungsbeispiel arbeitet unter der Annahme, dass die meisten Vorrichtungen in etwa dieselbe Datenmenge erzeugen, und weist den inhärenten Vorteil auf, dass die Paketreihenfolge pro Quellenport automatisch eingehalten wird. Wie nachstehend noch beschrieben wird, kann eine Knotenstelle, die unter Verwendung bestimmter Portzuweisungen arbeitet, Zuweisungen dynamisch ändern, wenn die Verkehrslast nicht gleichmäßig verteilt ist.
  • Bei dem gezeigten Ausführungsbeispiel weist die Knotenstelle 106 den verbundenen Port 146 der MAC-Adresse A zu. Verfügt die Netzwerkknotenstelle 106 über keine Kenntnis der Ziel-MAC-Adresse C, so nimmt sie eine Rundsendung (broadcast) des Paketes an alle ihre Ports 108 einschließlich des Ports 134, jedoch ausschließlich der Ports 144 und 146 der Gruppe 122 verbundener Ports vor, da die Gruppe 122 verbundener Ports den „Quellenport" darstellt. Die Netzwerkvorrichtung 116 empfängt auf diese Weise das Paket mit der Adresse A. Die Netzwerkvorrichtung 116 antwortet, indem sie ein Unicast-Paket an die Knotenstelle 106 mit der Quellenadresse C und der Zieladresse A sendet. Die Netzwerkknotenstelle 106 empfängt das Paket an dem Port 134 und weist die MAC-Adresse C der Vorrichtung 116 dem Port 134 zu. Die Netzwerkknotenstelle 106 bestimmt, dass die MAC-Adresse A dem verbundenen Port 146 zugewiesen wird, und sendet das Paket über den Port 144 an die Knotenstelle 102. Die Netzwerkknotenstelle 102 empfängt das Paket an der Gruppe 120 verbundener Ports, weist die MAC-Adresse C zu und sendet anschließend das Paket über den Port 130 zum Zwecke einer Zuteilung an die Netzwerkvorrichtung 110. Man beachte, dass beliebige nachfolgende Pakete, die von der Knotenstelle 106 an einem beliebigen der Ports 108 und nicht an den Ports 144 und 146 mit der Zieladresse A empfangen werden, über den Port 146 gesendet werden, da dieser der MAC-Adresse A zugewiesen ist.
  • Da die Netzwerkknotenstelle 102 Pakete paketweise sendet, werden nachfolgende Pakete, die von jedweder Vorrichtung 110 oder 114 mit der Zieladresse C gesendet werden, von der Knotenstelle 102 über jedweden verbundenen Port 140 oder 142 gesendet. Entsprechend empfängt die Knotenstelle 106 Pakete mit der Ziel-MAC-Adresse C an jedem verbundenen Port 144 oder 146. Die Portsteuerschaltung 150 der Knotenstelle 106 erkennt in Zusammenarbeit mit der Portverbindungsschaltung 152 die Tatsache, dass die Ports 144 und 146 in derselben Gruppe 122 verbundener Ports enthalten sind, und nimmt keine Änderung der Zuweisung der MAC-Adresse C vor. Es sei zudem angenommen, dass die Knotenstelle 106 den verbundenen Port 144 der MAC-Adresse B zuweist. Für den Fall, dass die Vorrichtung 118 zwei Pakete sendet, von denen jedes die Quellenadresse D aufweist, darunter ein erstes Paket mit der Zieladresse A und ein zweites Paket mit der Zieladresse B, sendet die Knotenstelle 106 das erste Paket über den verbundenen Port 146 und das zweite Paket über den Port 144 an die Knotenstelle 102. Die Knotenstelle 102 empfängt die beiden Pakete mit der Quellenadresse D an ver schiedenen verbundenen Ports 140 beziehungsweise 142. Gleichwohl erkennt die Portsteuerschaltung 154 der Knotenstelle 102 in Zusammenarbeit mit der Portverbindungsschaltung 156 die Tatsache, dass die Ports 140 und 142 in derselben Gruppe 120 verbundener Ports enthalten sind, und nimmt keine Änderung der Zuweisung der MAC-Adresse D vor.
  • Eine Portverbindung entsprechend der vorliegenden Erfindung vergrößert die Bandbreite zwischen zwei beliebigen Verbindungsstellen dadurch effektiv, dass die Pakete unter der Vielzahl verbundener Ports verteilt werden, anstatt dass dies über einen einzigen Port erfolgen würde. Mit Blick auf das Netzwerksystem 100 von 1 senden beide Knotenstellen 102 und 106 jedes Paket auf jedwedem der beiden verbundenen Ports, was die Datenübertragungsrate zwischen den beiden Netzwerkknotenstellen 102, 106 im Vergleich zu einem einzelnen Uplink-Port effektiv verdoppelt. Eine Gruppe verbundener Ports mit drei Ports verdreifacht im Vergleich zu einem einzelnen Port die Datenübertragungsrate effektiv.
  • Die relative Zunahme der Bandbreite kann von den Auswahl- und Zuweisungskriterien abhängen. Die Zuweisung von Adressen an Gruppen verbundener Ports bietet im Allgemeinen den Vorteil, dass der Verkehr inkrementell oder paketweise verteilt wird, wodurch eine gleichmäßige Verteilung des Verkehrs sichergestellt wird. Die Zuweisung an bestimmte Ports bietet den Vorteil, dass die Portverbindungsschaltung 156 oder 152 eine anfängliche Auswahlbestimmung vornimmt, wobei die Portauswahl nachstehend primär in der Hardware vorgenommen wird. Zudem wird die Paketreihenfolge pro Quellenport bei diesem Ausführungsbeispiel automatisch eingehalten, ohne dass weitere Logik oder Schaltungen erforderlich wären. Gleichwohl kann eine bestimmte Zuweisung verbundener Ports zu einer ungleichmäßigen Verteilung führen, was dann auftritt, wenn einige Vorrichtungen merklich größere Verkehrsmengen als andere erzeugen. In letzterem Fall wird eine dynamische Überwachung und Anpassung der Zuweisungen eingesetzt, um die Zuweisungen derart zu modifizieren, dass eine relativ gleichmäßige Verkehrsverteilung unter den verbundenen Ports für jede Gruppe verbundener Ports erreicht wird.
  • Die Portverbindung kann in Verbindung mit dem Konzept virtueller LANs (VLANs) eingesetzt werden, was immer dann erfolgt, wenn Ports oder Vorrichtungen in eine oder mehrere Untergruppen-LANs gruppiert werden sollen. VLANs können auf mehrere verschiedene Weisen definiert werden, so beispielsweise als VLAN-Bitmap oder Gruppe von Bits, die ein VLAN darstellen. Die Zugehörigkeit eines spezifischen Ports zu einem VLAN wird dadurch dargestellt, dass das entsprechende Bit in der VLAN-Bitmap ist, was zum Ausdruck bringt, ob der Port ein Element jenes VLAN ist. Jeder Port enthält eine VLAN-Bitmap, die die VLAN-Zugehörigkeit identifiziert. Sind VLAN-Kapazitäten aktiviert, so sendet eine Knotenstelle Pakete von einem Port in einem VLAN nur an diejenigen anderen Ports, die Elemente desselben VLAN sind. Bei dem beschriebenen Ausführungsbeispiel dürfen sich VLANs überlappen, sodass ein Port oder mehrere Ports in zwei oder mehreren VLANs enthalten sein können.
  • Wie nachstehend noch beschrieben wird, können VLAN-Bitmaps von der Portverbindungsschaltung einer erfindungsgemäßen Knotenstelle verwendet werden, um verbundene Ports MAC-Adressen zum Rundsenden und zur Ermittlung verlorener Pakete zuzuweisen. Ein VLAN kann mehrere Gruppen verbundener Ports enthalten, wobei jede Gruppe verbundener Ports in mehr als einem VLAN enthalten sein kann. Enthält ein VLAN einen verbundenen Port, so enthält er effektiv sämtliche verbundenen Ports in jener Gruppe verbundener Ports.
  • 2 ist ein perspektivisches Diagramm eines Netzwerksystems 200 mit einer Netzwerkknotenstelle 204, die an mehreren Gruppen verbundener Ports beteiligt ist. Das Netzwerksystem 200 umfasst vier Netzwerkknotenstellen 202, 204, 206 und 208, wobei die Knotenstellen 202, 206 und 208 jeweils eine Gruppe 210, 216 beziehungsweise 220 verbundener Ports umfassen, und wobei die Knotenstelle 204 drei entsprechende Gruppen 212, 214 und 218 verbundener Ports umfasst. Die Knotenstellen 202, 204, 206 und 208 enthalten die Controller und die Portverbindungskomponenten (nicht gezeigt), wie dies vorstehend anhand 1 beschrieben wurde. Die Gruppen 212, 214 und 218 verbundener Ports der Knotenstelle 204 sind mit den Gruppen 210, 216 beziehungsweise 220 verbundener Ports verbunden. Die Gruppen 212, 214 und 218 verbundener Ports umfassen vier, zwei beziehungsweise drei verbundene Ports. Jeder verbundene Port jeder Gruppe verbundener Ports jeder Knotenstelle ist mit einem entsprechenden Port einer entsprechenden Gruppe verbundener Ports einer weiteren Knotenstelle verknüpft. Insbesondere koppeln vier getrennte Leitungen einer verbundenen Leitung 244 die vier verbundenen Ports der Gruppen 210, 212 verbundener Ports miteinander. Auf gleiche Weise koppeln zwei getrennte Leitungen der verbundenen Leitung 246 die beiden verbundenen Ports der Gruppen 214 und 216 verbundener Ports und die drei getrennten Leitungen 248 der drei verbundenen Ports der Gruppen 218, 220 verbundener Ports miteinander.
  • 3 ist ein Diagramm eines Netzwerksystems 300, das erläutert, dass Gruppen verbundener Ports verschiedene Bandbreiten enthalten können. Netzwerkknotenstellen 302, 308 enthalten einen beziehungsweise mehrere Ports 304 und 310, die bei einer Geschwindigkeit arbeiten, und einen beziehungsweise mehrere Ports 306 und 312, die mit einer anderen und größeren Geschwindigkeit arbeiten. Eine Gruppe 314 verbundener Ports an der Knotenstelle 302 enthält Ports 320 und 322 von den Ports 304 sowie Ports 324 und 326 von den Ports 306. Auf ähnliche Weise enthält die Gruppe 316 verbundener Ports an der Knotenstelle 306 Ports 330 und 332 von den Ports 310 sowie Ports 334 und 336 von den Ports 312. Eine verbundene Leitung 350, die zwischen den Gruppen 314 und 316 verbundener Ports besteht, enthält Leitungen 340, 342, 344 und 346 zum Koppeln der Ports 320 und 330, 322 und 332, 324 und 334 beziehungsweise 326 und 336. Die Leitungen 340 und 342 weisen eine geringere Bandbreite als die Leitungen 344 und 346 auf.
  • Die Verteilung von Paketen über die verbundene Leitung 350 wahrt vorzugsweise das Verhältnis der Bandbreitenkapazitäten der enthaltenen Ports. Arbeiten beispielsweise die Ports 306, 312 beim Zehnfachen der Geschwindigkeit der Ports 304, 310, so werden annähernd zehnmal so viele Pakete über die Leitungen 344, 346 gesandt, als dies bei den Leitungen 340, 342 der Fall ist. Im Allgemeinen entspricht das Verhältnis des Paketverkehrs durch jeden der Ports einer Gruppe verbundener Ports dem Verhältnis der Bandbreiten der verschiedenen Ports der Gruppe verbundener Ports. Eine derartige Verkehrsverteilung ermöglicht die Maximierung der Datenübertragungsrate einer Netzwerkknotenstelle, ohne dass eine Überlastung einer einzelnen Leitung auftreten würde.
  • 4A und 4B sind Flussdiagramme, die beispielhalber die Vorgänge bei der Paketsendung der Netzwerkknotenstellen 102, 106 von 1 erläutern. Wie vorstehend beschrieben wurde, weist die Knotenstelle 102 der Gruppe verbundener Ports allgemein MAC-Adressen zu, während die Knotenstelle 106 bestimmte verbundene Ports jeder MAC-Adresse zuweist. Das Flussdiagramm behandelt beide Fälle. Sind VLAN-Kapazitäten implementiert oder aktiviert, dann sendet jede Knotenstelle 102, 106 Pakete nur an diejenigen Ports in demselben VLAN, die mit der Quellen-MAC-Adresse verknüpft sind. Sind die VLAN-Kapazitäten nicht aktiviert, so werden Pakete an alle anderen Ports in der Knotenstelle weitergeleitet. Werden verbundene Ports eingesetzt, so werden solche Broadcast-Pakete an lediglich einen Port unter den Ports aus der Gruppe verbundener Ports weitergeleitet, und zwar zusätzlich zu sämtlichen anderen (nicht den Ursprung darstellenden) Ports in der Knotenstelle.
  • 4A beschreibt den Normalbetrieb beim Empfangen von Paketen und beim Bestimmen, ob die Quellen-MAC-Adresse bekannt ist, sowie das nachfolgende Senden des Paketes. Bei dem ersten Schritt 406 empfängt die Knotenstelle ein Paket, woraufhin die Knotenstelle bei dem nächsten Schritt 408 die Quellen-MAC-Adresse aus dem Paket abruft. Bei dem nächsten Entscheidungsschritt 410 bestimmt die Knotenstelle, ob die Quellen-MAC-Adresse bekannt ist. Die Portsteuerschaltung 150, 154 enthält vorzugsweise einen (nicht gezeigten) Speicher zum Speichern der MAC-Adresse und der damit verknüpften Portnummern oder Kennungen der Gruppen verbundener Ports. Ist die Quellen-MAC-Adresse bekannt, so geht das Verfahren zu dem nächsten Schritt 412 über, wo die Knotenstelle den verknüpften Port oder die verknüpfte Gruppe verbundener Ports mit dem Quellenport vergleicht, an dem das Paket empfangen worden ist. Das Verfahren geht zu dem Entscheidungsschritt 414 über, wo eine Anfrage gestellt wird, ob der Quellenport derselbe wie der verknüpfte Port ist, oder ob der Quellenport in derselben Gruppe verbundener Ports wie die damit verknüpfte Gruppe verbundener Ports befindlich ist.
  • Passen die Quellen- und zugewiesenen Portnummern, oder ist der Quellenport ein Element der zugewiesenen Gruppe verbundener Ports gemäß Bestimmung in dem Schritt 414, so geht das Verfahren zu dem Schritt 452 über, was nachstehend noch beschrieben wird. Passen die Quellen- und zugewiesenen Portnummern nicht, oder ist der Quellenport kein Element der zugewiesenen Gruppe verbundener Ports, so bestimmt die Knotenstelle, dass die Netzwerkvorrichtung, die mit der Quellen-MAC-Adresse verknüpft ist, an einen anderen Port versetzt wurde. Ist dies der Fall, so macht das Verfahren bei dem nächsten Schritt 420 weiter, wo die Knotenstelle den Quellenport der MAC-Adresse zuweist, wenn der Quellenport nicht verbunden ist. Ist der Quellenport verbunden, so weist die Knotenstelle die MAC-Adresse entweder einem bestimmten verbundenen Port oder der Gruppe verbundener Ports allgemein zu. Man beachte, dass für den Fall, dass die MAC-Adresse einem bestimmten verbundenen Port zugewiesen ist, dies nicht der Quellenport sein muss, sondern ein beliebiger anderer verbundener Port in der derselben Gruppe verbundener Ports wie der Quellenport sein kann. Eine derartige MAC-adressenweise erfolgende Zuweisung stellt den Versuch dar, einen gleichmäßigen Verkehrsfluss unter den verbundenen Ports herzustellen. Zudem wird die VLAN-Information, falls enthalten, aktualisiert. Das Verfahren geht anschließend zu dem nächsten Schritt 452 über.
  • Unter Rückgriff auf den Entscheidungsschritt 410 erfährt für den Fall, dass bestimmt wird, dass die Quellen-MAC-Adresse neu ist, die Knotenstelle die neue MAC-Adresse in dem nächsten Schritt 430 und aktualisiert gegebenenfalls die VLAN-Information. Im Allgemeinen wird ein neuer Eintrag im Speicher für die neue MAC-Adresse gemacht. Das Verfahren geht zu dem nächsten Entscheidungsschritt 432 über, bei dem die Knotenstelle bestimmt, ob der Quellenport verbunden ist. Ist der Quellenport gemäß Bestimmung in dem Schritt 430 verbunden, so geht die Knotenstelle zu dem nächsten Schritt 434 über, um die MAC-Adresse entweder einem verbundenen Port oder einer Gruppe verbundener Ports des Quellenports zuzuweisen. Erfolgt die Zuweisung an einen bestimmten verbundenen Port, so muss die Zuweisung wiederum nicht der Quellenport sein, sondern es kann ein anderer Port in derselben Gruppe verbundener Ports der Quellenport sein. Das Verfahren geht sodann zu dem Schritt 452 über. Unter Rückgriff auf den Schritt 432 wird für den Fall, dass bestimmt wird, dass der empfangene Port nicht ein verbundener Port ist, der Quellenport der neuen MAC-Adresse in dem nächsten Schritt 436 zugewiesen, woraufhin das Verfahren zu dem Schritt 452 übergeht.
  • In dem Schritt 452 bestimmt die Knotenstelle, ob das empfangene Paket eine Unicast- oder Broadcast-Ziel-MAC-Adresse aufweist. Für den Fall einer Unicast-Adresse geht das Verfahren zu dem nächsten Schritt 454 über und identifiziert die Ziel-MAC-Adresse aus dem Paket. Bei dem nächsten Schritt 455 bestimmt die Knotenstelle, ob die Ziel-MAC-Adresse auf ähnliche Weise, wie vorstehend für den Quellenport beschrieben, bekannt ist. Ist die Ziel MAC-Adresse des Paketes bekannt, so geht das Verfahren zu dem nächsten Schritt 456 über und bestimmt, ob die MAC-Adresse einem bestimmten Port oder einer Gruppe verbundener Ports zugewiesen ist. Ist die Zuweisung an einen verbundenen Port anstelle eines bestimmten Ports erfolgt, so geht das Verfahren zu dem nächsten Schritt 457 über, wo die Knotenstelle einen bestimmten Port zum Senden des Paketes zuweist. Ist die Zieladresse bereits vorher einem bestimmten Port gemäß Bestimmung in dem Schritt 456 oder nach Zuweisung eines verbundenen Ports in dem Schritt 457 zugewiesen worden, so geht das Verfahren zu dem Schritt 458 über, wo die Knotenstelle bestimmt, ob die Quellen- und Zielports beider in derselben Gruppe verbundener Ports verbunden sind. Gehören die Quellen- und Zielports zu derselben Gruppe verbundener Ports, so geht das Verfahren zu dem Schritt 466 über, wo das Paket fallen gelassen wird, woraufhin das Verfahren zu dem Schritt 406 für ein weiteres Paket übergeht.
  • Unter Rückgriff auf den Schritt 458 bestimmt für den Fall, dass die Knotenstelle bestimmt, dass die Ziel- und Quellenports nicht Elemente derselben Gruppe verbundener Ports sind, die Knotenstelle bei dem nächsten Schritt 460, ob die VLAN-Kapazitäten aktiviert sind. Sind die VLAN-Kapazitäten nicht aktiviert, so geht das Verfahren zu dem Schritt 476 über, wo die Knotenstelle das Paket an den Zielport sendet, woraufhin das Verfahren zu dem Schritt 406 für ein weiteres Paket übergeht. Ist das VLAN gemäß Bestimmung in dem Schritt 460 aktiviert, so geht das Verfahren zu dem nächsten Entscheidungsschritt 464 über, wo die Knotenstelle bestimmt, ob der Zielport ein Element desselben VLAN wie der Quellenport ist. Wird bestimmt, dass der Zielport nicht Teil desselben VLAN wie der Quellenport ist, so geht das Verfahren zu dem Schritt 466 über, wo die Knotenstelle das Paket fallen lässt. Ansonsten geht die Knotenstelle zu dem Schritt 476 über und sendet das Paket an den Zielport. Wie vorstehend beschrieben, kehrt das Verfahren sodann zu dem Schritt 406 zurück.
  • Unter Rückgriff auf die Schritte 452 und 455 geht das Verfahren für den Fall, dass das Paket ein Broadcast-Paket ist, oder die Ziel-MAC-Adresse nicht bekannt ist, zu dem Entscheidungsschritt 462 über und bestimmt, ob das VLAN aktiviert ist. Ist das VLAN aktiviert, so geht das Verfahren zu dem nächsten Schritt 474 über, wo die Knotenstelle einen verbundenen Port für jede Gruppe verbundener Ports in dem VLAN ausschließlich der Gruppe verbundener Ports des Quellenports, falls verbunden, zuweist. Das Verfahren geht sodann zu dem nächsten Schritt 478 über, wo die Knotenstelle das Paket an sämtliche Ports in dem VLAN einschließlich beliebiger zugewiesener verbundener Ports sendet, woraufhin das Verfahren zu dem Schritt 406 übergeht. Auf diese Weise vermeidet die Knotenstelle Schleifenläufe von Paketen, indem das Paket nur an einen Port für jede Gruppe verbundener Ports gesendet wird. Unter Rückgriff auf den Schritt 462 geht für den Fall, dass bestimmt wird, dass das VLAN nicht aktiviert ist, das Verfahren zu dem nächsten Schritt 470 über, wo die Knotenstelle einen verbunden Port für jede der Gruppen verbundener Ports in der Netzwerkknotenstelle zuweist, während eine Gruppe verbundener Ports ausgeschlossen wird, wenn der Quellenport Element jener Gruppe verbundener Ports ist. Das Verfahren geht sodann zu dem nächsten Schritt 472 über, wo die Knotenstelle das Paket an sämtliche Ports einschließlich der zugewiesenen verbundenen Ports sendet, woraufhin das Verfahren zu dem Schritt 406 für ein weiteres Paket zurückkehrt.
  • In 5 ist ein Diagramm des Netzwerksystems 500 dargestellt, wobei die Sendung eines Paketes durch eine Gruppe verbundener Ports zwischen zwei Netzwerkknotenstel len, ohne dass eine Duplizierung des Paketes erfolgen würde, dargestellt ist. Das Netzwerksystem 500 enthält zwei Netzwerkknotenstellen 508, 510. Die beiden Netzwerkknotenstellen 508, 510 implementieren eine Portverbindung, während sie verhindern, dass an einem Port in einer Gruppe verbundener Ports empfangener Datenverkehr an irgendeinen der anderen Ports in derselben Gruppe verbundener Ports weitergeleitet wird. Dies gilt sowohl für Unicast- wie auch für Broadcast-Verkehr. Eine Gruppe 542 verbundener Ports an der Netzwerkknotenstelle 508 enthält zwei verbundene Ports 538 und 540. An der Netzwerkknotenstelle 510 enthält eine Gruppe 544 verbundener Ports zwei Ports 534 und 536. Die Gruppen 542 und 544 verbundener Ports sind zu der verbundenen Leitung 530 zusammengefasst.
  • Ein Unicast-Paket 460, das von einer Netzwerkknotenstelle 508 von einer Netzwerkvorrichtung 502 empfangen worden ist, und das an ein unbekanntes Ziel adressiert ist, wird von der Netzwerkknotenstelle 508 rundgesendet (broadcast). Die Netzwerkknotenstelle 508 sendet das Unicast-Paket jedoch an sämtliche Ports, die nicht Teil einer Gruppe 542 verbundener Ports (und die nicht dem ursprünglichen Port entsprechen) sind, und an lediglich einen der Ports in der Gruppe 542 verbundener Ports. Die Netzwerkknotenstelle 508 wählt einen spezifischen verbundenen Port, so beispielsweise den Port 540, zum Senden des Unicast-Paketes 560 an die Netzwerkknotenstelle 510 über die verbundene Leitung 530 aus.
  • Die Gruppe 544 verbundener Ports an der Netzwerkknotenstelle 510 empfängt das Paket an einem der zugehörigen verbundenen Ports. Die Netzwerkknotenstelle 510 nimmt eine Rundsendung (broadcast) des Paketes 560 an sämtliche zugehörigen Ports ausschließlich derjenigen Ports vor, die zu der zugehörigen Gruppe 544 verbundener Ports gehören, wenn die Zieladresse unbekannt ist. Die Netzwerkvorrichtungen 512, 516, 526 und 524, die mit der Knotenstelle 510 über die Ports 548, 550, 552 beziehungsweise 554 verbunden sind, empfangen das Paket. War das Paket 560 ein Broadcast-Paket, das an die Knotenstelle 508 von der Netzwerkvorrichtung 502 gesendet worden ist, so ist die Verarbeitung dieses Broadcast-Paketes durch die Knotenstellen 508 und 510 ähnlich der Verarbeitung des Unicast-Paketes mit einem unbekannten Ziel gemäß vorstehender Beschreibung.
  • In 6 ist ein detaillierteres Blockdiagramm einer Netzwerkknotenstelle 600 gezeigt, die implementiert ist, um verbundene Ports entsprechend der vorliegenden Erfindung zu unterstützen. Die Netzwerkknotenstelle 600 kann entweder als eine der Knotenstellen 102 oder 106 oder als beide in dem Netzwerksystem 100 von 1 oder als Netzwerkknotenstelle 202, 204, 206, 208, 302, 308, 508, 510, siehe vorherige Beschreibung, verwendet werden. Die Netzwerkknotenstelle 600 weist bestimmte verbundene Ports jeder MAC-Adresse zu, anstatt dass sie eine paketweise erfolgende dynamische Verteilung des Verkehrs vornehmen würde, wie vorstehend anhand der Knotenstelle 102 beschrieben worden ist. Die Netzwerkknotenstelle 600 implementiert das Portverbinden unter Verwendung einer Kombination aus Hardware und Software. Die Hardware umfasst eine Vielzahl von Registern und Speichern zur Definition verbundener Ports und zur Zuweisung von MAC-Adressen an bestimmte verbundene Ports. Die an der Netzwerkknotenstelle 600 arbeitende Software enthält einen modifizierten Spannbaum, die Zuweisung von Standard-VLAN-Bitmaps und die dynamische Neuzuweisung von MAC-Adressen an bestimmte verbundene Ports.
  • Bei dem gezeigten Ausführungsbeispiel enthält die Netzwerkknotenstelle 600 sechs ähnliche Vierercontroller (quad controller) beziehungsweise Quad-Kaskaden-Vorrichtungen (QC-Vorrichtungen) 602, die jeweils vier Ports 603 enthalten. Die QC-Vorrichtungen 602 können auf beliebige Weise implementiert sein. Sie können beispielsweise in einer ASIC-Packung (application specific integrated circuit) oder als IC-Chip (integrated circuit), wie gezeigt, implementiert sein. Bei dem gezeigten Ausführungsbeispiel arbeitet jeder Port 603 mit 10 Mbps im Halbduplexbetrieb und für eine gesamte Datenübertragungsrate von 20 Mbps pro Port im Vollduplexbetrieb. Jede der QC-Vorrichtungen 602 enthält vorzugsweise eine Prozessorschnittstelle, die mit einem QC/CPU-Bus 604 gekoppelt ist, sowie eine Busschnittstelle, die mit einem Hochgeschwindigkeitsbus (high speed bus HSB) 606 gekoppelt ist. Der HSB 606 enthält einen Datenabschnitt 606a und verschiedene Steuer- und Statussignale 606b.
  • Der HSB 606 und der QC/CPU-Bus 604 sind darüber hinaus mit einem EPSM (Ethernet Packet Switch Manager) 610 gekoppelt, der bei dem gezeigten Ausführungsbeispiel als ASIC implementiert ist, obwohl die vorliegende Erfindung nicht auf eine bestimmte physikalische oder logische Implementierung beschränkt ist. Der EPSM 610 ist darüber hinaus mit einem Speicher 612 über einen Speicherbus 614 gekoppelt, der einen Daten- und Adressabschnitt 614a und Steuersignale 614b enthält.
  • Der HSB 66 ist mit einer TLAN-Portschnittstelle (Thunder-LAN-Portschnittschnelle, TPI) 620 gekoppelt, die wiederum mit einem PCI-Bus (peripheral component interconnect PCI) 622 mit Daten- und Adresssignalen 622a und damit verknüpften Steuer- und Sta tussignalen 622b verknüpft ist. Der PCI-Bus 622 ist mit vier TLANs 626 gekoppelt, die auf beliebige gewünschte Weise implementiert sein können. Die TLANs 626 sind vorzugsweise TNETE100 ThunderLANTM-PCI-EthernetTM-Controller, die von Texas Instruments, Inc. (TI) hergestellt werden, wobei jeder einen Port 650 integriert hat. Mit Blick auf den EPSM 610 arbeitet die TPI 620 auf dem HSB 606 auf ähnliche Weise wie eine weitere QC-Vorrichtung 602 zur Schnittstellenbildung für vier Ports. Aus diesem Grunde „sieht" der EPSM 610 effektiv sieben (7) Viererportvorrichtungen (quad port). Bezüglich des PCI-Busses 622 emuliert die TPI 620 einen Standard-PCI-Bus bis zu einem Grad, der für einen angemessenen Betrieb des TLAN 626 notwendig ist, wodurch üblicherweise eine Schnittstelle mit PCI-Speichervorrichtungen gebildet ist. Der PCI-Bus 622 ist mit einem Prozessor oder einer zentralen Verarbeitungseinheit (central processing unit CPU) 630 gekoppelt, die wiederum mit einem lokalen Prozessorbus 632 zur Kopplung der CPU 630 mit dem örtlichen RAM 634, einem lokalen Flash-RAM 636 und gegebenenfalls einer seriellen Portschnittstelle 638 gekoppelt ist. Die serielle Portschnittstelle 638 ist vorzugsweise als UART oder dergleichen ausgebildet. Bei dem gezeigten Ausführungsbeispiel ist die CPU eine mit 32 Bit und 33 MHz betriebene i960RP-CPU von Intel, wiewohl die CPU 630 auch als beliebiger anderer geeigneter Prozessor ausgebildet sein kann.
  • Die CPU 630 verwaltet im Allgemeinen die Initialisierung und Konfigurierung der TPI 620 und des EPSM 610 bei Inbetriebnahme der Netzwerkknotenstelle 600. Die CPU 630 überwacht Statistiken, sammelt sie und verwaltet und steuert darüber hinaus während des Betriebes die Funktionen der verschiedenen Vorrichtungen der Netzwerkknotenstelle 600. Die CPU 630 aktualisiert darüber hinaus Hash-Tabellendaten in dem Speicher 612 durch den EPSM 610. Der EPSM 610 wiederum steuert den Zugriff auf den Speicher 612 und führt die DRAM-Refresh-Zyklen durch, wodurch Refresh-Vorgänge aus der CPU 630 entfernt werden. Die CPU 630 wirkt zudem als zusätzlicher Netzwerkport für verschiedene Zwecke und wird im Rahmen der vorliegenden Offenbarung oft als PORT28 bezeichnet. Dies bedeutet, dass die Ports 603, 650 und die CPU 630 zusammengenommen jeweils Ports PORT0 bis PORT28 inkorporieren. Die CPU 630 ist darüber hinaus mit dem EPSM 610 über einen CPU-Bus 618 gekoppelt, der einen Adressen- und Datenabschnitt 618a und damit verbundene Steuer- und Statussignale 618b enthält. Der Adressen- und Datenabschnitt 618a wird vorzugsweise zwischen Adress- und Datensignale multiplexiert.
  • Die Hardware der Netzwerkknotenstelle 600 entsprechend diesem Ausführungsbeispiel der vorliegenden Erfindung unterstützt die Portverbindung durch mehrere Hardware-Komponenten, darunter: ein Paar von Portverbindungsregistern 658, 660, die in dem EPSM 610 vorgesehen sind; eine VLAN-Bitmap, die in den Hash-Tabelleneinträgen der Hash-Tabelle 654 enthalten ist, die wiederum in dem Speicher 612 vorgesehen ist; eine Vielzahl von Standard-VLAN-Bitmaps 652 in dem Speicher 612 einschließlich einer Standard-VLAN-Bitmap für jeden Port PORT0 bis PORT27; sowie mehrere VLAN-Aktivierungsbits in einem Hash-Tabellendefinitionsregister 662, das in dem EPSM 610 angeordnet ist. Ein Globalaktivierungsbit 656 ist darüber hinaus enthalten, wobei die VLAN-Definition für jeden der Ports PORT0 bis PORT27 entsprechend einer Standard-VLAN-Bitmap gegeben ist, die in einem VLAN-Register 664 definiert ist, wenn das Globalaktivierungsbit 656 gesetzt ist. Ist das Globalaktivierungsbit 656 gesetzt, so werden die Standard-VLAN-Bitmaps 652 und insbesondere die VLAN-Bitmaps in der Hash-Tabelle 654 nicht verwendet oder auf andere Weise unterdrückt.
  • Die Portverbindungsregister 658, 660 liegen im Allgemeinen in Form von Bitmaps vor, die die Ports identifizieren, die Elemente einer anderen Gruppe verbunderner Ports sind. Insbesondere enthält jedes Register 658, 660 wenigstens 28 Bit (0 bis 27), wobei jedes Bit einen der Ports 602, 650 oder die Ports PORT0 bis PORT27 darstellt. So legt beispielsweise das Setzen der Bits 24 und 25 bei gleichzeitiger Löschung der übrigen Bits die Ports PORT24 und PORT25 als zu der Gruppe verbundener Ports gehörig fest. Das Register 658 identifiziert eine erste Gruppe verbundener Ports, während das Register 660 eine zweite Gruppe verbundener Ports identifiziert. Obwohl die Knotenstelle 600 lediglich zwei Portverbindungsregister 658, 660 zur Unterstützung von bis zu zwei Gruppen verbundener Ports enthält, ist einsichtig, dass mehr Portverbindungsregister vorhanden sein können, um mehr als zwei Gruppen verbundener Ports, so gewünscht, zu definieren. Die CPU 630 führt Software aus, die während des Betriebes VLAN-Bitmaps definiert, und hält vorzugsweise neben weiterer Information eine Kopie der VLAN-Bitmap-Zuweisungen in dem Speicher 634 bereit. Man beachte, dass die Implementierung der VLANs gegenüber der Implementierung des Portverbindungsschemas optional ist. Per se wird die Netzwerkknotenstelle 600 auch zur Unterstützung der Portverbindung in Netzwerken eingesetzt, wo VLANs nicht implementiert sind.
  • Die Netzwerkknotenstelle 600 bedient sich der VLAN-Bitmap bei jedem Hash-Eintrag in der Hash-Tabelle 654 als Teil der Portverbindungsimplementierung. Sind VLANs nicht implementiert, so wird die VLAN-Bitmap in jedem Hash-Eintrag vollständig auf 1 gesetzt, um anzuzeigen, dass Broadcast-Pakete an sämtliche Ports in dem System gesendet werden, und dass alle Ports über Unicast-Pakete kommunizieren können. Sind VLANs implementiert, so wird die VLAN-Bitmap in jedem Eintrag in der Hash-Tabelle 654 von der Netzwerkknotenstelle 600 verwendet, um zu identifizieren, über welche Ports Broadcast-, Multicast- und unbekannte Broadcast-Pakete bei der Weiterleitung gesendet werden sollen, und um zu identifizieren, welche Ports unter Verwendung von Unicast-Paketen kommunizieren können. Die Verwendung von VLAN-Bitmap-Feldern beruht auf dem Setzen der VLAN-Aktivierungsbits in dem Hash-Tabellendefinitionsregister 662. In der Netzwerkknotenstelle 600 können VLANs und Portverbindung konkurrent verwendet werden, wobei die VLAN-Bitmaps vorzugsweise sogar dann zur Portverbindung verwendet werden, wenn die VLANs nicht benötigt werden oder nicht definiert sind. Unabhängig davon, ob bei Definition und Verwendung verbundener Ports VLANs gebraucht werden oder nicht, werden die VLAN-Bitmaps in den Hash-Tabelleneinträgen verwendet, um sicherzustellen, dass bei der Paketweiterleitung Schleifenläufe nicht zwischen Ports in derselben Gruppe verbundener Ports auftreten. Mit Blick auf verbundene Ports setzt die Netzwerkknotenstelle 600 lediglich eines der Bits, das einen Port in einer Gruppe verbundener Ports in der VLAN-Bitmap in jedem Eintrag in der Hash-Tabelle darstellt.
  • Um dazu beizutragen, dass bei der Broadcast-Abbildung (broadcast mapping) eine gleichmäßige Verteilung des Broadcast-Verkehrs unter den Ports in einer Gruppe verbundener Ports gegeben ist, setzt die CPU 630 mittels Software verschiedene Portbits in jedem VLAN-Bitmap-Feld für sämtliche Hash-Einträge, wo die Gruppe verbundener Ports in der VLAN-Bitmap enthalten ist. Auf diese Weise ergibt sich, wenn der Broadcast-Verkehr an die Gruppe verbundener Ports gesendet wird, auf Basis der Quellenadresse eine zufällige Verteilung unter den Ports in der Gruppe verbundener Ports, um zu einer gleichmäßigen Verteilung der Verkehrslast beizutragen. Eine Vornahme dieser Maßnahme unterstützt die Knotenstelle dabei, das volle Bandbreitenpotential in der Gruppe verbundener Ports so weit als möglich auszunutzen. Die Standard-VLAN-Bitmaps sind eine Reihe von Bitmaps für jeden Port und werden auf ähnliche Weise wie die Hash-Eintrags-VLAN-Bitmaps verwendet, mit der Ausnahme, dass die Verwendung dann erfolgt, wenn ein Paket mit einer unbekannten Quellen-MAC-Adresse an einem Port empfangen wird. Die gesetzten Bits, die die verbundenen Ports darstellen, werden auf ähnliche Weise verteilt; sie werden jedoch unter sämtlichen Ports oder unter sämtlichen Ports in dem VLAN verteilt.
  • 7A ist ein Blockdiagramm, das die Organisierung des Speichers 612 von 6 darstellt. Der Speicher 612 wird zu verschiedenen Zwecken verwendet, darunter die Speicherung der Hash-Tabelle 654, die Speicherung der Pakete von Verkehrsdaten sowie die Speicherung der Pro-Port-Standard-VLAN-Bitmaps 652 für die Ports der Netzwerkknotenstelle 600. Der Speicher 612 ist vorzugsweise in drei Hauptabschnitte unterteilt, enthaltend die Hash-Tabelle 654, die Standard-VLAN-Bitmaps 652 und den Paketspeicherabschnitt 704. Die Hash-Tabelle 654 dient als Netzwerkvorrichtungsidentifikationsabschnitt zur Identifikation einer oder mehrerer Netzwerkvorrichtungen, die direkt oder indirekt mit der Netzwerkknotenstelle 600 über die Ports PORT0 bis PORT27 gekoppelt sind. Die Größe der Hash-Tabelle 654 kann auf Grundlage der Anzahl der Vorrichtungen und der gewünschten damit verknüpften Adressen und Einträge programmiert werden. Die Hash-Tabelle 654 kann an einer beliebigen Stelle in dem Speicher 612 angeordnet werden; sie ist jedoch bei dem gezeigten Ausführungsbeispiel vorzugsweise am Anfang des Speichers 612 angeordnet. Die Standard-VLAN-Bitmaps 652 sind vorzugsweise angrenzend an die Hash-Tabelle 654 oder in der Nähe derselben gespeichert. Die Größe des Paketspeicherabschnittes 704 stellt vorzugsweise auf das Gleichgewicht zwischen dem verbleibenden Speicher 612, der von dem Hash-Speicherabschnitt 654 nicht verwendet wird, und dem Standard-VLAN-Bitmap-Abschnitt 652 ab.
  • 7B ist ein Blockdiagramm der Organisierung der Hash-Tabelle 654 des Speichers 612. Die Hash-Tabelle 654 ist in zwei Abschnitte unterteilt, die einen ersten Hash-Eintragsabschnitt 706 für primäre Hash-Einträge und einen zweiten Ketten-Hash-Eintragsabschnitt 708 für Ketten-Hash-Einträge umfasst. In dem gezeigten Ausführungsbeispiel enthält jeder Abschnitt 706, 708 bis zu 8 K Einträge, von denen jeder eine Länge von 16 Byte aufweist.
  • 7C ist ein Diagramm, das die Organisation eines Hash-Tabelleneintrages 710 darstellt, der repräsentativ für jeden der Einträge in der Hash-Tabelle 654 ist, darunter sowohl für den primären Hash-Eintragsabschnitt 706 wie auch den (Ketten-Hash-Eintragsabschnitt 708. Jeder Eintrag 710 entspricht einer MAC-Adresse von Netzwerkvorrichtungen, die mit der Netzwerkknotenstelle 600 gekoppelt sind. Jeder der primären Einträge ist an einem Hash-Schlüssel angeordnet, der durch das „Hashen" (Kontrollsummieren) der MAC-Adresse für jene Vorrichtung bestimmt ist. Insbesondere wird jeder Netzwerkvorrichtung eine 48 Bit lange MAC-Hardware-Adresse zugeordnet, die einen eindeutigen numerischen Wert darstellt, der jeder Netzwerkvorrichtung während des Herstellungsvorganges oder durch Setzen von Jumpern (Brücken) oder Knotenstellen während der Installation des Netzwerkes zugewiesen wird. Ein Teil der MAC-Adresse wird dem Hersteller von IEEE (Institute of Electrical and Electronics Engineers) zugewiesen und ist sämtlichen Komponenten von jenem Hersteller gemeinsam. Der zweite Teil der Hardware-Adresse ist ein eindeutiger Wert, der dem Hardware-Hersteller zugeordnet ist.
  • Die ersten 6 Byte, nämlich die Bytes 5 bis 0, des Hash-Tabelleneintrages 710 enthalten die MAC-Adresse der Vorrichtung, die mit jenen Eintrag verknüpft ist. Die Netzwerkknotenstelle 600 fügt daher einen Hash-Tabelleneintrag für jede Netzwerkvorrichtung hinzu, sodass ein Datenpaket mit der zugehörigen Quellen-MAC-Adresse gesendet wird.
  • Das nächste Byte (6) des Hash-Tabelleneintrages 710 enthält eine binäre Portnummer (PortNum), die die damit verknüpfte Portnummer identifiziert, mit der die Vorrichtung verbunden ist, wobei die Portnummer für PORT0 gleich 0, die Portnummer für PORT1 gleich 1, die Portnummer PORT28 (für die CPU 630) gleich 28 ist, und so weiter. Das nächste Byte (7) ist ein Steuer- und Altersinformationsbyte (Control/Age), enthaltend ein gültiges Byte (VALIDENTRY), durch das identifiziert wird, ob der Eintrag gültig ist oder nicht, wobei eine logische „1" angibt, dass der Eintrag gültig ist, wohingegen eine logische „0" angibt, dass der Eintrag nicht gültig ist, was üblicherweise Leereintrag genannt wird. Das Control/Age-Byte enthält eine binäre Altersnummer (AGE), die die verstrichene Zeit seit der letzten mit dieser Vorrichtung verknüpften Quellenadresse angibt.
  • Die nächsten vier Byte (11:8) legen einen 29 Bit langen VLAN-Bitmap-Wert fest, der die Portgruppierungen, falls verwendet, darstellt. Jedes Bit des VLAN-Wertes entspricht einem jeweiligen Port und ist gesetzt, wenn die Vorrichtung oder der Port mit jenem Port gruppiert wird. Die VLAN-Bitmaps aktivieren die Ports PORT0 bis PORT28 der Netzwerkknotenstelle 600, damit eine Gruppierung in einer beliebigen gewünschten Kombination erfolgt, um eine Mehrzahl verschiedener VLANs zu bilden. Werden beispielsweise die ersten fünf Ports PORT0 bis PORT4 zusammengruppiert, so ist der VLAN-Wert für jeden Hash-Eintrag, der in der Gruppe enthalten sein soll, gleich 0000001Fh, wobei "h" einen hexadezimalen Wert bezeichnet. Ein VLAN-Wert aus lauter Einsen 1FFFFFFFh bezeichnet keine VLAN-Gruppierung für jene Vorrichtung. Man beachte, dass es für eine Vorrichtung möglich ist, mit mehr als einer Gruppe verknüpft zu werden. Für jede VLAN-Bitmap kann dasjenige Bit, das den Port selbst (als Quellenport) darstellt, gesetzt oder auch nicht gesetzt sein, was von dem jeweiligen Ausführungsbeispiel abhängt. Die Netzwerkknotenstelle 600 enthält eine Logik, um sicherzustellen, dass ein von einem Port empfangenes Paket nicht von diesem Port zurückgesendet wird, sodass das zugehörige VLAN-Bit in der VLAN-Bitmap gegebenenfalls gesetzt werden kann. Alternativ ist für den Fall, dass eine Netzwerkknotenstelle auf VLAN-Bitmaps zur Weiterleitung von Paketen beruht, erwünscht, dass das VLAN-Bit, das den Quellenport darstellt, nicht gesetzt ist.
  • Die letzten vier Byte (15:12) des Hash-Tabelleneintrages 710 sind eine Verbindungsadresse (link adress; LINK A[31:0]), die auf den nächsten Eintrag verweist, der einen identischen Hash-Schlüssel gegebenenfalls in dem Ketten-Hash-Eintragsabschnitt 708 aufweist. MAC-Adressen werden entsprechend einem von mehreren Algorithmen „gehasht". So werden beispielsweise zwei Abschnitte wie die 13–16-Bits jeder MAC-Adresse logisch kombiniert oder verglichen, um einen entsprechenden Hash-Schlüssel zu berechnen. Jeder Abschnitt wird unter Verwendung einer EXOR-Logik (exklusives ODER) bitweise zur Bildung eines 13–16-Bit-Hash-Schlüssels kombiniert. Es ist einsichtig, dass viele andere bekannte Hash-Algorithmen verwendet werden können, um beliebige Kombinationen der Adressbits durch Kombination zu erstellen, was einem Fachmann auf dem einschlägigen Gebiet geläufig ist, und dass die vorliegende Erfindung nicht auf ein spezielles Hash-Schema beschränkt ist. Der Hash-Schlüssel wird als aktuelle Adresse oder als Offset-Adresse zum Ausfindigmachen eines entsprechenden Hash-Eintrages des primären Hash-Eintragsabschnittes 706 verwendet. Obwohl die MAC-Adressen eindeutig sind, kann der Hash-Schlüssel nicht eindeutig sein, sodass zwei verschiedene MAC-Adressen denselben Hash-Schlüssel „hashen".
  • Der Ketten-Hash-Eintragsabschnitt 708 ist vorgesehen, um MAC-Adressen mit duplizierten Hash-Schlüsseln für verschiedene Vorrichtungen zu speichern. Der nächste Eintrag wird an der nächsten verfügbaren Speicherstelle in dem Ketten-Hash-Eintragsabschnitt 708 gespeichert. Auf diese Weise wird für den Fall, dass zwei Adressen zweier verschiedener Vorrichtungen denselben Hash-Schlüssel „hashen", der erste oder „primäre" Eintrag in dem primären Hash-Eintragsabschnitt 706 gespeichert, während der zweite Eintrag in dem Ketten-Hash-Eintragsabschnitt 708 gespeichert wird, und die Linkadresse (Verbindungsadresse) des primären Eintrages auf den zweiten Eintrag verweist. „Hasht" eine weitere MAC-Adresse denselben Hash-Schlüssel wie die ersten beiden, so wird jeder zusätzliche Eintrag in dem Ketten-Hash-Eintragsabschnitt 708 gespeichert und in aufeinanderfolgender Abfolge unter Verwendung der Linkadressen verbunden. Dies bedeutet, dass der erste auf den zweiten verweist, der zweite auf den dritten verweist, und so weiter. Jeder Eintrag entspricht dem Format des Hash-Tabelleneintrages 710. Das Format der Linkadressen kann auf geeignete Weise definiert werden. Die Linkadresse enthält üblicherweise einen Basisadressabschnitt, der auf den Hash-Speicherabschnitt 702 innerhalb des Speichers 712 verweist, sowie einen Offset-Abschnitt auf den aktuellen Eintrag innerhalb des Hash-Speicherabschnittes 702. Die unteren Adressbyte können auf 0 gesetzt werden, wenn eine Byteanordnung gewünscht ist.
  • Bei dem bevorzugten Ausführungsbeispiel ist die Linkadresse jedes Eintrages in der Kette derart gesetzt, dass sie auf den Anfang der Standard-VLAN-Bitmap 652 verweist. Daher tritt für den Fall, dass die Linkadresse gleich der Anfangsadresse der Standard-VLAN-Bitmaps 652 ist, ein Hash-Verlust an der Quellen-MAC-Adresse auf. In diesem Fall wird die VLAN-Bitmap in den Standard-VLAN-Bitmaps 652 entsprechend dem Quellenport als VLAN-Bitmap für das aktuelle Paket verwendet, um festzustellen, an welche Ports das Paket gesendet werden soll. Da die MAC-Adresse die CPU veranlasst, die neuen MAC-Adressen in die Hash-Tabelle 654 einzugeben, bedienen sich nachfolgende Pakete mit derselben Quellen-MAC-Adresse des VLAN in der Hash-Tabelle 654.
  • Im Allgemeinen wird dasjenige Bit, dass der Portnummer eines verbundenen Ports entspricht, für die Standard-VLAN-Bitmaps jedes verbundenen Ports und die VLAN-Bitmaps der den verbundenen Ports zugewiesenen MAC-Einträge, so vorhanden, gesetzt. Die Bits für die anderen verbundenen Ports in derselben Gruppe verbundener Ports sind gelöscht („cleared"). Für jede Standard-VLAN-Bitmap verbundener Ports werden zudem diejenigen Bits, die den anderen Bits in demselben VLAN entsprechen, gesetzt, wenn das VLAN dieselbe Gruppe verbundener Ports enthält. Die VLAN-Bitmaps für Einträge in der Hash-Tabelle 654, die den MAC-Adressen entsprechen, die an den verbundenen Ports empfangen worden sind, weisen Bits auf, die derart gesetzt sind, dass sie den anderen Ports in einem VLAN entsprechen, wenn jenes VLAN die entsprechende Gruppe verbundener Ports enthält.
  • Man beachte, dass die VLANs überlappen können, und dass zwei oder mehr VLANs in derselben Gruppe verbundener Ports enthalten können. Ist eine Gruppe verbundener Ports in mehreren VLANs enthalten, so enthalten die Standard-VLAN-Bitmaps für die verbundenen Ports der Gruppe verbundener Ports sämtliche Ports aller VLANs, an denen die Gruppe verbundener Ports beteiligt ist. Da die VLAN-Bitmaps für die Ports der Gruppe verbundener Ports sämtliche Ports aus allen VLANs enthält, an denen der verbundene Port beteiligt ist (mit Modifikationen für die Bits der Gruppe verbundener Ports), wird der über einen verbundenen Port empfangene Broadcast-Verkehr an alle VLANs gesendet.
  • 8 ist ein Flussdiagramm, das den Vorgang einer beispielhaften Initialisierung und Neuprogrammierung der Netzwerkknotenstelle 600 von 6 zeigt. Die Netzwerkknotenstelle 600 wird bei der vorliegenden Erfindung mit Standardwerten für die verschiedenen Parameter, so beispielsweise die VLAN-Zugehörigkeit und die Portverbindungsinformation, initialisiert. Die Netzwerkknotenstelle 600 überwacht optional den Verkehr an den Ports, insbesondere den Verkehr an den verbundenen Ports, und weist dynamisch VLAN-Bits neu zu, um den Verkehr gegebenenfalls auszugleichen.
  • Wie in 8 gezeigt ist, erfasst die Netzwerkknotenstelle 600 von 6 eine Eingabe eines Anwenders, um das Setzen der Initialisierungswerte anzugeben, oder um jene Werte in einem ersten Entscheidungsschritt 804 neuzuprogrammieren. Man beachte, dass eine Initialisierungs- oder Treiberroutine von der CPU 630 bei Inbetriebnahme oder Rücksetzung (Reset) der Netzwerkknotenstelle 600 ausgeführt werden kann, wobei die Routine in einem nichtflüchtigen Speicher, so beispielsweise in einem Flash-RAM 636, gespeichert wird. Eine Treiberroutine kann darüber hinaus in dem Speicher 634 geladen sein. Ein Anwender programmiert die Netzwerkschnittstelle 600 über den Software-Port 638 oder durch Ausführen eines extern angeordneten Verwaltungsprogramms und durch Zugreifen auf die CPU 630 über einen der Ports PORT0 bis PORT27. Auf diese Weise kann die Netzwerkknotenstelle 600 anfänglich mit Zuweisungen verbundener Ports und VLAN-Zuweisungen programmiert werden, und sie kann auch zu einem beliebigen Zeitpunkt während der Betriebsphase programmiert werden.
  • Zeigt bei dem Schritt 804 der Netzwerkverwalter (Administrator) oder Manager an, dass eine Initialisierung oder Neuprogrammierung der Netzwerkknotenstelle 600 gewünscht wird, so geht das Verfahren zu dem nächsten Schritt 806 über, wo Zuweisungen betreffend die Gruppe verbundener Ports empfangen werden, und anschließend zu dem Schritt 808, wo VLAN-Zuweisungen empfangen werden. Die CPU 630 empfängt die Zuweisung betreffend die Gruppe verbundener Ports und programmiert die Portverbindungsregister 658, 660 entsprechend. Die CPU 630 empfängt anschließend bei dem nächsten Schritt 810 die Aktivierungsbitzuweisungen, umfassend die VLAN-Aktivierungsbits und das Globalaktivierungsbit 656. Die Aktivierungsbits umfassen ein VLAN-Gruppen-Broadcast-Aktivierungsbit, ein VLAN-Verlust-Broadcast-Aktivierungsbit und ein VLAN-Unicast-Aktivierungsbit. Wird das VLAN-Gruppen-Broadcast- Aktivierungsbit gleich 1 gesetzt, so veranlasst dies die Netzwerkknotenstelle 600, Broadcast- und Multicast-Pakete nicht an Ports weiterzuleiten, deren Bits in dem VLAN-Bitmap-Feld des Hash-Tabelleneintrages der Quellen-MAC-Adresse des Paketes auf 0 gesetzt sind. Ist die MAC-Adresse nicht in der Hash-Tabelle 654 vorhanden, so wird die Standard-VLAN-Bitmap für den Quellenport verwendet. Ist das VLAN-Verlust-Broadcast-Aktivierungsbit auf 1 gesetzt, so veranlasst dies die Netzwerkknotenstelle 600, Broadcast-Pakete aufgrund von Hash-Verlusten von Zieladressen nicht an diejenigen Ports weiterzuleiten, deren Bits in dem VLAN-Bitmap-Feld des Hash-Tabelleneintrages der Quellen-MAC-Adresse des Paketes auf 0 gesetzt sind. Ist die Quellen-MAC-Adresse nicht in der Hash-Tabelle 654 enthalten, so wird die Standard-VLAN-Bitmap für den Quellenport verwendet. Ist das VLAN-Unicast-Aktivierungsbit auf 1 gesetzt, so wird die Netzwerkknotenstelle 600 veranlasst, Unicast-Pakete nicht an Ports weiterzuleiten, deren Bits in dem VLAN-Bitmap-Feld des Hash-Tabelleneintrages der MAG-Adresse des Paketes auf 0 gesetzt sind. Ist die Quellen-MAC-Adresse nicht in der Hash-Tabelle 654 enthalten, so wird die Standard-VLAN-Bitmap für den Quellenport verwendet.
  • Von dem Schritt 810 geht das Verfahren zu dem Schritt 812 über, wo die Standard-VLAN-Bitmaps 652 für sämtliche Ports entsprechend den VLAN-Zuweisungen programmiert werden, die bei dem Schritt 808 empfangen worden sind. Wurden jedoch bei dem Schritt 806 Zuweisungen betreffend eine Gruppe verbundener Ports empfangen, so erfolgt eine Zuweisung der Bits entsprechend den verbundenen Ports in jedem VLAN. Dies ergibt sich bei dem nächsten Schritt 814, wo die Netzwerkknotenstelle 600 diejenigen Bits, die den verbundenen Ports entsprechen, unter den VLAN-Standardbitmaps für jedes VLAN verteilt. Nur eines von den Bits verbundener Ports in jeder Standard-VLAN-Bitmap ist gesetzt, sodass die verbundenen Ports in jedem VLAN portweise in den Pro-Port-Standard-VLAN-Bitmaps 652 verteilt werden.
  • Enthält beispielsweise ein VLAN Ports PORT0 bis PORT4 und PORT24, wobei PORT24 mit PORT25 und PORT26 verbunden ist, so enthält das VLAN effektiv die Gruppe verbundener Ports mit Ports PORT24 bis PORT26. Die Standard-VLAN-Bitmap für jeden der Ports PORT0 bis PORT4 enthält sämtliche nichtverbundenen Ports PORT0 bis PORT4 plus einen der verbundenen Ports. Die VLAN-Bitmap für einen gegebenen Port kann derart definiert werden, dass sie jenen Port enthält; sie kann jedoch auch nicht auf diese Weise definiert werden. Die im Zusammenhang mit dieser Offenbarung beschriebenen VLAN-Bitmaps enthalten ihren eigenen Port, wobei einsichtig sein sollte, dass Pakete im Allgemeinen nicht an den Empfangsport zurückgesendet werden. Eine sepa rate Logik in der Netzwerkknotenstelle 600 stellt beispielsweise sicher, dass Pakete nicht an den Empfangsport weitergeleitet werden. Ist eine derartige Logik jedoch nicht vorgesehen, so ist der Quellenport der VLAN-Bitmaps für eine gegebene MAC-Adresse nicht gesetzt. Die Standard-VLAN-Bitmap für Port PORT0 kann Ports PORT0 bis PORT4 und PORT24 enthalten (oder alternativ PORT0 ausschließen), die Standard-VLAN-Bitmap für PORT1 kann Ports PORT0 bis PORT4 und PORT25 enthalten (oder alternativ PORT1 und so weiter ausschließen), die Standard-VLAN-Bitmap für Port PORT2 kann Ports PORT0 bis PORT4 und PORT26 enthalten, die Standard-VLAN-Bitmap für Port PORT3 kann Ports PORT0 bis PORT4 und PORT24 enthalten, und die Standard-VLAN-Bitmap für Port PORT4 kann Ports PORT0 bis PORT4 und PORT25 enthalten. Auf diese Weise werden die drei verbundenen Ports PORT24 bis PORT26 unter den fünf nichtverbundenen Ports PORT0 bis PORT4 verteilt.
  • Das Verfahren geht zu dem nächsten Entscheidungsschritt 815 über, um zu bestimmen, ob Einträge in der Hash-Tabelle 654 vorhanden sind, und falls dies der Fall ist, ob diese Einträge neuprogrammiert werden sollen. Wird die Netzwerkknotenstelle 600 zurückgesetzt oder anderweitig betriebsbedingt initialisiert, so sind keine Hash-Tabelleneinträge vorhanden. Wird jedoch die Netzwerkknotenstelle 600 während des Betriebes nach dem Erfahren mehrerer MAC-Adressen und deren Speicherung in der Hash-Tabelle 654 programmiert, so bestehen wenigstens zwei Optionen, die zwei verschiedenen Ausführungsbeispielen entsprechen. Bei einem ersten Ausführungsbeispiel werden die Einträge in der Hash-Tabelle 654 ignoriert, und die gesamte Hash-Tabelle 654 wird so initialisiert, als ob keine MAC-Adresse empfangen worden wäre, woraufhin das Verfahren zu den Schritten 815 bis 818, die nachstehend noch beschrieben werden, übergeht. Die Netzwerkknotenstelle 600 erfährt erneut sämtliche MAC-Adressen beim nachfolgenden Betrieb. Dies kann erwünscht sein, da eine Neuprogrammierung merkliche Änderungen des Netzwerksystems bedingen kann.
  • Sind in der Hash-Tabelle 654 alternativ Hash-Einträge vorhanden, und ist deren Erhaltung gewünscht, so geht das Verfahren von dem Schritt 815 zu dem Schritt 816 über, wo die Netzwerkknotenstelle 600 die VLAN-Bitmaps jedes der Einträge in der Hash-Tabelle 654 verteilt und neuprogrammiert. In diesem Fall werden die verbundenen Ports in den VLAN-Bitmaps in den Hash-Tabelleneinträgen jedoch MAC-adressenweise verteilt. Bei dem vorgenannten Beispiel betreffend VLANs mit Ports PORT0 bis PORT4 und einer Gruppe verbundener Ports mit Ports PORT24 bis PORT26 wird davon ausgegangen, dass drei Vorrichtungen mit entsprechenden MAC-Adressen A, B und C mit Ports PORT2, PORT3 beziehungsweise PORT4 gekoppelt sind, und dass die Hash-Tabelle 654 Einträge für jeden enthält. Die VLAN-Bitmap des Eintrages für die MAC-Adresse A kann Ports PORT0 bis PORT4 und PORT24 enthalten, die VLAN-Bitmap für den Eintrag der MAC-Adresse B kann Ports PORT0 bis PORT4 und PORT25 enthalten, und der Eintrag für die MAC-Adresse C kann Ports PORT0 bis PORT4 und PORT26 enthalten. Dies erfolgt bei dem Versuch, eine gleichmäßige Verteilung unter der Annahme zu erreichen, dass die Vorrichtungen mit der Zeit in dem Netzwerksystem annähernd dieselbe Menge von Paketen erzeugen.
  • Bei dem nächsten Schritt 818 werden je nach Wunsch des Anwenders die Aktivierungsbits gesetzt, die vorher in dem Block 810 spezifiziert worden sind. Schließlich ist noch ein Schritt 820 mitaufgenommen, um darzustellen, dass die Spannbauminformation, die zur Festlegung der Routen (Laufwege) zwischen Netzwerkvorrichtungen verwendet wird, derart modifiziert ist, dass Änderungen in der Information betreffend verbundene Ports mitaufgenommen sind. Das Verfahren kehrt zu dem Schritt 804 zurück, bis eine Neuprogrammierung, eine Rücksetzung oder eine Initialisierung vorgenommen werden.
  • 9A und 9B sind Flussdiagramme, die den Vorgang einer Paketsendung bei der Netzwerkknotenstelle 600 von 6 zeigen. 9A beschreibt den Normalbetrieb beim Empfangen von Paketen und beim Nachschlagen der Quellen-MAC-Adresse in der Hash-Tabelle 654 und dem nachfolgenden Verwalten des Verkehrsflusses durch die verbundenen Ports. 9B beschreibt die Bestimmung des Pakettyps, das Zieladressen „hashen" und Nachschlagen sowie das Senden des Paketes. In dem ersten Schritt 906 empfängt die Netzwerkknotenstelle 600 ein Paket, woraufhin bei dem nächsten Schritt 908 der EPSM 610 die Quellen-MAC-Adresse A hasht und ein Hash-Tabellennachschlagen in der Hash-Tabelle 654 vornimmt. Bei dem nächsten Entscheidungsschritt 910 bestimmt der EPSM 610, ob die Quellen-MAC-Adresse in der Hash-Tabelle 654 aufgefunden wurde. Wurde die Quellenadresse gefunden, so geht das Verfahren zu dem Schritt 912 über, wo der EPSM 610 diejenigen zugewiesenen Portnummern in der Hash-Tabelle 654, die der Quellen-MAC-Adresse entsprechen, mit der Portnummer des tatsächlichen Quellenports vergleicht. Bei dem nächsten Schritt 914 bestimmt der EPSM 610, ob die Quellen- und zugewiesenen Portnummern passen. Passen die Quellen- und zugewiesenen Portnummern, so geht das Verfahren zu dem Schritt 952 über, der nachstehend noch beschrieben wird. Die VLAN-Bitmap in dem Eintrag in der Hash-Tabelle 654 wird zum Senden verwendet, was ebenfalls nachstehend noch beschrieben wird.
  • Passen die Quellen- und zugewiesenen Portnummern gemäß Bestimmung in dem Schritt 914 nicht, so geht das Verfahren zu dem Schritt 916 über und vergleicht die Portverbindungsregister 658, 660 mit den Quellen- und zugewiesenen Portnummern. In dem Schritt 918 wird nachgefragt, ob die Quellen- und zugewiesenen Portnummern in derselben Gruppe verbundener Ports verbunden sind. Ist dem so, so geht das Verfahren zu dem Schritt 952 über. Ist dem nicht so, so geht für den Fall, dass die Quellen- und zugewiesenen Ports gemäß Bestimmung in dem Schritt 918 nicht verbunden sind, das Verfahren zu dem Schritt 920 über, wo das Standard-VLAN für den neuen Quellenport abgerufen wird. Alternativ wird die Standard-VLAN-Bitmap nicht abgerufen, und es wird die VLAN-Bitmap in der Hash-Tabelle 654 verwendet. In jedwedem Fall wurde, obwohl die MAC-Adresse unbekannt ist, die damit verknüpfte Vorrichtung an einen anderen Port versetzt, und die Inhalte der VLAN-Bitmap in dem Hash-Speicher sind nicht mehr gültig. Von dem Schritt 920 geht das Verfahren zu dem Schritt 932 über, der nachstehend noch beschrieben wird.
  • Normalerweise erzeugt der EPSM 610 für den Fall, dass die Quellen- und zugewiesenen Portnummern nicht passen, einen Interrupt an der CPU 630, wodurch angezeigt wird, dass die mit der Quellen-MAC-Adresse verknüpfte Vorrichtung an einen anderen Port versetzt wurde. Der Interrupt an der CPU 630 ist als „Port-Miss"-Interrupt bekannt. Bei einer Anordnung mit verbundenen Ports werden Pakete von derselben MAC-Adresse jedoch typischerweise gleichmäßig auf die verbundenen Ports innerhalb derselben Gruppe verbundener Ports verteilt, weshalb das Merkmal eines „Port-Miss"-Interrupts bei denjenigen Paketen, die an Ports innerhalb derselben Gruppe verbundener Ports empfangen worden sind, effektiv deaktiviert ist. Dies ist eine Funktion der Portverbindungsregister 658, 660. Aus diesem Grund überprüft der EPSM 610 für den Fall, dass dies so ist, und die zugewiesenen Ports nicht passen, in dem Schritt 916 jedes Portverbindungsregister 658, 660, um zu bestimmen, ob beide Bits, die den Quellenport und den vorab zugewiesenen Port in dem Hash-Speicher für die Quellen-MAC-Adresse darstellen, gesetzt sind. Sind beide Bits in demselben Portverbindungsregister gesetzt, so werden die Quellen- und zugewiesenen Ports verbunden, und es wird kein Interrupt an der CDU 630 erzeugt.
  • Unter Rückgriff auf den Entscheidungsschritt 910 geht das Verfahren für den Fall, dass die Quellen-MAC-Adresse neu und nicht in der Hash-Tabelle 654 vorhanden ist, zu dem Schritt 930 über, wo ein Interrupt an der CPU 630 erzeugt wird, um einen neuen Hash-Eintrag in der Hash-Tabelle 654 für die neue MAC-Adresse zu erzeugen. Wie vorste hend bereits beschrieben wurde, verweist für den Fall, dass ein Hash-Verlust auftritt, die Linkadresse die Hardware auf den Anfang der Standard-VLAN-Bitmaps 652. Die Standard-VLAN-Bitmap wird verwendet, um zu bestimmen, welche Ports zugelassen sind, wenn das VLAN aktiviert ist. Von dem Schritt 930 oder 920 geht das Verfahren zu dem Entscheidungsschritt 932 über, wo bestimmt wird, ob der Quellenport verbunden ist. Ist der Quellenport verbunden, so geht das Verfahren zu dem Schritt 934 über, wo die CPU 630 einen der verbundenen Ports der Gruppe verbundener Ports der MAC-Adresse zuweist. Der zugewiesene verbundene Port ist nicht notwendigerweise der Quellenport, an dem das Paket empfangen worden ist, sondern es wird anstatt dessen eine Zuweisung vorgenommen, um den Verkehr in der Gruppe verbundener Ports auszugleichen. Die Nummern der verbundenen Ports werden den MAC-Adressen gemäß Round-Robin-Verfahren, Random-Verfahren oder einem beliebigen anderen Verfahren zugewiesen, um die MAC-Adressen gleichmäßig über die Ports der Gruppe verbundener Ports zu verteilen (oder um eine Proportionalbandbreite zu erreichen). Die VLAN-Bitmap des neuen oder modifizierten Eintrages in der Hash-Tabelle 654 wird entsprechend der Zuweisung der verbundenen Ports programmiert. Insbesondere werden die Bits in der VLAN-Bitmap in Entsprechung zu den Ports in demselben VLAN oder denselben VLANs gesetzt. Von dem Schritt 934 geht das Verfahren zu dem Schritt 942 über, wo bestimmt wird, ob ein verbundener Port oder mehrere verbundene Ports in der Standard-VLAN-Bitmap des Quellenports vorhanden ist beziehungsweise sind, was nachstehend noch beschrieben wird.
  • Unter Rückgriff auf den Schritt 932 wird die Portnummer des aktuellen Quellenports für den Fall, dass bestimmt wird, dass der Quellenport kein verbundener Port ist, der MAC-Adresse zugewiesen, und der Hash-Tabelleneintrag wird bei dem Schritt 940 aktualisiert. Das Verfahren geht zu dem nächsten Schritt 942 über, wo festgestellt wird, ob ein verbundener Port oder mehrere verbundene Ports in der Standard-VLAN-Bitmap des Quellenports vorhanden ist beziehungsweise sind. Ist dem nicht so, so geht das Verfahren zu dem Schritt 952 über. Enthält die Standard-VLAN-Bitmap einen oder mehrere Gruppen verbundener Ports, obwohl der Quellenport selbst nicht verbunden ist, so geht das Verfahren zu dem Schritt 944 über, wo die Software einen der verbundenen Ports der MAC-Adresse zuweist. Dies wird erreicht, indem das entsprechende Bit in der VLAN-Bitmap des Eintrages in der Hash-Tabelle 654 auf ähnliche Weise, wie vorstehend bereits beschrieben wurde, gesetzt wird, um eine gleichmäßige Verteilung des Verkehrs zu erreichen. Anschließend geht das Verfahren zu dem nächsten Schritt 952 über.
  • Bei dem Schritt 952, siehe 9B, wird bestimmt, ob das empfangene Paket ein Broadcast- oder ein Multicast-Paket ist. Wenn nicht, so ist das Paket ein Multicast-Paket, und das Verfahren geht zu dem Schritt 954 über, um die Zieladresse in der Hash-Tabelle 654 nachzuschlagen. Bei dem nächsten Schritt 956 wird bestimmt, ob die Ziel-MAC-Adresse in der Hash-Tabelle 654 aufgefunden worden ist. Ist sie aufgefunden worden, so bestimmt bei dem nächsten Schritt 658 der EPSM 610, ob das VLAN-Unicast-Aktivierungsbit gesetzt ist. Ist es nicht gesetzt, so sendet die Netzwerkknotenstelle 600 das Unicast-Paket bei dem Schritt 964 an den Zielport, und das Verfahren kehrt zu dem Schritt 906 zurück. Ist das VLAN-Unicast-Aktivierungsbit gemäß Bestimmung in dem Schritt 958 gesetzt, so wird bei dem nächsten Schritt 960 bestimmt, ob der Zielport Teil des VLAN des Quellenports ist. Ist die Quellen-MAC-Adresse aufgefunden worden, und passt der Quellenport, oder war er in derselben Gruppe verbundener Ports wie der zugewiesene Port befindlich, so wird die VLAN-Bitmap in der Hash-Tabelle 654 verwendet, wohingegen entgegengesetztenfalls die Standard-VLAN-Bitmap für den Quellenport verwendet wird. Wird bei dem Schritt 960 bestimmt, dass der Zielport nicht Teil des VLAN des Quellenports ist, so geht das Verfahren zu dem Schritt 962 über, bei dem die Netzwerkknotenstelle 600 das Paket fallen lässt (drop). Von dem Schritt 962 kehrt das Verfahren zu dem Schritt 906 für das nächste Paket zurück. Ist der Zielport Teil des VLAN des Quellenports, so geht das Verfahren zu dem Schritt 964 über, bei dem die Netzwerkknotenstelle 600 das Unicast-Paket an den Zielport sendet, woraufhin das Verfahren zu dem Schritt 906 zurückkehrt.
  • Unter Rückgriff auf den Schritt 956 geht das Verfahren für den Fall, dass die Ziel-MAC-Adresse nicht in der Hash-Tabelle 654 aufgefunden worden ist, zu dem Entscheidungsschritt 966 über, um zu bestimmen, ob das VLAN-Verlust-Broadcast-Aktivierungsbit gesetzt ist. Ist dem nicht so, so geht das Verfahren zu dem Schritt 968 über, wo die Netzwerkknotenstelle 600 das Paket von sämtlichen nichtverbundenen Ports und einem verbundenen Port für jede Gruppe verbundener Ports gemäß Definition durch die Portverbindungsregister 658, 660 sendet, woraufhin das Verfahren zu dem Schritt 906 zurückkehrt. Die ausgewählten Ports können vordefiniert und dynamisch bestimmt werden, und war zu dem Zeitpunkt, wenn der Schritt 968 ausgeführt wird. Bei einem bevorzugten Ausführungsbeispiel ist das VLAN-Verlust-Broadcast-Aktivierungsbit gesetzt, wenn die Portverbindung aktiviert ist, sodass die Netzwerkknotenstelle 600 jedes Paket einfach von allen anderen Ports sendet, und zwar unabhängig von den Bits in den Portverbindungsregistern 658, 660, wenn die Portverbindung nicht aktiviert ist.
  • Ist das VLAN-Verlust-Broadcast-Aktivierungsbit gemäß Bestimmung bei dem Schritt 906 gesetzt, so geht das Verfahren zu dem Entscheidungsschritt 970 über, wo abgefragt wird, ob die Quellen-MAC-Adresse aufgefunden worden ist. Ist dem so, so geht das Verfahren zu dem Schritt 972 über, um auf die VLAN-Bitmap von dem Quellen-Hash-Tabelleneintrag zuzugreifen. Entgegengesetztenfalls, das heißt für den Fall, dass die Quellen-MAC-Adresse nicht aufgefunden worden ist, geht das Verfahren zu dem Schritt 974 über, um auf die Standard-VLAN-Bitmap zum Empfangen des Ports zuzugreifen. Von jedwedem der Schritte 972 oder 974 geht das Verfahren zu dem Schritt 976 über, wo die Netzwerkknotenstelle 600 das Paket von denjenigen Ports, die in der abgerufenen VLAN-Bitmap angezeigt sind, sendet. Diese VLAN-Bitmap ist entweder die VLAN-Bitmap in der Hash-Tabelle 654 oder die Standard-VLAN-Bitmap, wenn die MAC-Adresse neu oder an einen anderen Port versetzt worden ist. Von dem Schritt 976 geht das Verfahren zu dem Schritt 906 für das nächste Paket über.
  • Unter Rückgriff auf den Schritt 952 wird für den Fall, dass bestimmt wird, dass das Paket ein Broadcast-Paket ist, bestimmt, ob das VLAN-Gruppen-Broadcast-Aktivierungsbit bei dem nächsten Schritt 978 gesetzt ist. Ist das VLAN-Gruppen-Broadcast-Aktivierungsbit nicht gesetzt, so geht das Verfahren zu dem Schritt 968, siehe vorstehende Beschreibung, über, wohingegen das Verfahren, wenn das Bit gesetzt ist, zu dem Schritt 970 übergeht, siehe ebenfalls vorstehende Beschreibung. Ein Broadcast- oder Multicast-Paket wird auf ähnliche Weise wie ein Unicast-Paket mit unbekanntem Zielport behandelt.
  • 10 ist ein Blockdiagramm, das eine beispielhafte optionale Überwachung des dynamischen Verkehrs sowie Eigenschaften des Lastausgleiches erläutert. Gemäß vorstehender Beschreibung weist die Netzwerkknotenstelle 600 einen verbundenen Port jeder MAC-Adresse zu, die an einer Gruppe verbundener Ports „residiert", oder von einem verbundenen Port in jener Gruppe verbundener Ports empfangen worden ist. Auf diese Weise wird Unicast-Verkehr, der als Zieladresse eine MAC-Adresse innehat, die in einer Gruppe verbundener Ports residiert, stets an den zugewiesenen verbundenen Port gesendet. Obwohl die Zuweisungen gleichmäßig verteilt sind, werden sie zufällig oder willkürlich erstellt, wobei einige in Betrieb befindliche Vorrichtungen merklich aktiver als andere sein können. So kann beispielsweise eine MAC-Adresse, die in einer Gruppe verbundener Ports residiert, einem Server entsprechen, wobei ein Großteil des Verkehrs von der Netzwerkknotenstelle 600 an jenem Server anfällt. Dies kann zu einem Ungleichgewicht beim Verkehr an den verbundenen Ports, denen der Server zugewiesen ist, führen. In jenem Fall ist wünschenswert, weitere MAC-Adressen von jenem verbundenen Port an andere verbundene Ports derselben Gruppe verbundener Ports zu versetzen. Eine derartige Neuzuweisung sollte Rücksicht auf die Relativbandbreite der verbundenen Ports nehmen. Ist die Bandbreite gleichwertig, so sollte der Verkehrsfluss so gleich wie möglich sein. Ist die Bandbreite von zwei oder mehr verbundenen Ports nicht gleich, so muss das Geschwindigkeits- oder Bandbreitenverhältnis der verbundenen Ports berücksichtigt werden.
  • Auf ähnliche Weise können eine oder mehrere Vorrichtungen, die mit nichtverbundenen Ports der Netzwerkknotenstelle 600 gekoppelt sind, mit der Zeit eine merklich größere Menge an Broadcast-Verkehr als andere Vorrichtungen verursachen, die mit anderen nichtverbundenen Ports der Netzwerkknotenstelle 600 gekoppelt sind. Unabhängig davon, ob und wann Zuweisungen gebraucht werden oder nicht, können die Zuweisungen betreffend verbundene Ports verschiedener Vorrichtungen einer gegebenen Gruppe verbundener Ports albeit-gleichmäßig MAC-adressenweise verteilt werden, was zu einem ungleichmäßigen Broadcast-Verkehrsfluss an den verbundenen Ports der Gruppe verbundener Ports führt. VLAN-Bitmap-Einstellungen werden angepasst, um den Broadcast-Verkehr neuzuverteilen, und um einen gleichmäßigeren Verkehrsfluss zu erreichen. Erneut sollte die Relativbandbreite der verbundenen Ports bei der Bestimmung der Neuzuweisungen berücksichtigt werden.
  • Bei dem Schritt 1002 sammelt die CPU 630, die in Zusammenarbeit mit dem EPSM 610 arbeitet, kontinuierlich statistische Informationen der Ports PORT0 bis PORT27, um Verkehrsmuster sowohl für Unicast- wie auch für Broadcast-Pakete auszuwerten, und zwar insbesondere über die verbundenen Ports jeder Gruppe verbundener Ports. Eine derartige Überwachung erfolgt MAC-adressenweise, um die Verkehrsmenge zu bestimmen, die an jeder MAC-Adresse anfällt. Eine derartige Überwachung unterscheidet zudem zwischen Unicast- und Broadcast-Verkehr, um die Art der vorzunehmenden Anpassungen zu bestimmen.
  • Von dem Schritt 1002 geht das Verfahren zu zwei verschiedenen Schritten über, was von der Art der Anpassungen abhängt, die vorzunehmen sind. Beide Wege werden durch einen Betrieb der Netzwerkknotenstelle 600 dahingehend beschritten, dass Unicast- und Broadcast-Verkehr ausgeglichen werden. Gemäß dem einen Weg berechnet bei einem nächsten Schritt 1008 die CPU 630 das Verhältnis des Unicast-Verkehrs, der von jedem der verbundenen Ports der Gruppe verbundener Ports gesendet worden ist, und vergleicht anschließend das berechnete Verhältnis mit dem Verhältnis der Bandbreiten der Ports des verbundenen Ports, siehe Schritt 1010. Wird ermittelt, dass das Verkehrsverhältnis ähnlich dem Verhältnis der Bandbreiten ist, so geht die Netzwerkknotenstelle 600 zu dem optionalen Schritt 1012 über, um zu bestimmen, ob mehr Bandbreite nötig ist oder gewünscht wird. Die Bestimmung kann auf verschiedene Weisen erfolgen, so beispielsweise mittels Überwachung der Schlangen für die verbundenen Ports oder mittels Zählen der Anzahl fallen gelassener Pakete, so vorhanden. Ist eine Erhöhung der Bandbreite erwünscht, so geht das Verfahren zu dem Schritt 1014 über, wo der Netzwerkverwalter oder Manager alarmiert wird. Eine derartige Alarmierung erfolgt auf eine von mehreren verschiedenen Weisen, so beispielsweise durch eine Nachricht oder einem gesetzten Merker (flag) in der Netzwerkknotenstelle 600 oder durch Senden derselben an die Verwaltungsbasis oder Konsole. Der Netzwerkadministrator kann durch Hinzunahme weiterer Ports zu einer Gruppe verbundener Ports oder mehreren Gruppen verbundener Ports reagieren, um das Bandbreitenproblem zu beheben. Von dem Schritt 1014 oder von dem Schritt 1012 kehrt das Verfahren, wenn die Bandbreite ausreichend ist, zu dem Schritt 1002 zurück.
  • Unter Rückgriff auf den Schritt 1010 geht das Verfahren für den Fall, dass die CPU 630 bestimmt, dass das Unicast-Verkehrsverhältnis der verbundenen Ports nicht mit dem Bandbreitenverhältnis der Ports vergleichbar ist, zu dem Schritt 1016 über, wo die verbundenen Ports der mit der Gruppe verbundener Ports verknüpften MAC-Adressen neuzugewiesen werden, um den Verkehr auszugleichen. Insbesondere weist die CPU 630 die verbundenen Ports den Hash-Tabelleneinträgen zu, um eine gleichmäßige Verteilung des Verkehrs entsprechend den bei dem Schritt 1002 gesammelten statistischen Daten zu erreichen. Das Verfahren geht sodann zu dem optionalen Schritt 1002 über, um zu bestimmen, ob weitere Bandbreite notwendig ist.
  • Gemäß dem zweiten Weg berechnet die CPU 630 das Verhältnis des Broadcast-Verkehrs der verbundenen Ports bei dem Schritt 1018 aus dem Schritt 1002. Bei dem Schritt 1020 bestimmt die CPU 630, ob die VLAN-Bitmap-Neuzuweisung vorgenommen werden sollte, um den Broadcast-Verkehr über eine Gruppe verbundener Ports oder mehrere hiervon auszugleichen. Bedürfen die VLAN-Bitmaps keiner Neuzuweisung, so geht das Verfahren zu dem Schritt 1012 über, wie vorstehend beschrieben wurde. Wird bei dem Schritt 1020 bestimmt, dass eine Neuzuweisung erwünscht ist, um gleichmäßiger verteilten Broadcast-Verkehr zu erhalten, so geht das Verfahren zu dem nächsten Schritt 1022 über und nimmt Neuzuweisungen der VLAN-Bitmap-Einstellungen der ver bundenen Ports vor. Das Verfahren geht sodann zu dem Schritt 1012, siehe vorstehende Beschreibung, über.
  • Auf diese Weise wird der Verkehr über die verbundenen Ports optional überwacht, und die MAC-Adressenzuweisungen und/oder die VLAN-Bitmap-Zuweisungen werden während des Betriebs dynamisch modifiziert, um den Verkehr gleichmäßiger zu verteilen.
  • Es ist einsichtig, dass eine Netzwerkkommunikationsvorrichtung mit verbundenen Ports entsprechend der vorliegenden Erfindung im Vergleich zu einer einzelnen Uplink-Verbindung eine höhere Bandbreitenkapazität zwischen zwei beliebigen Vorrichtungen ermöglicht. Eine beliebige Anzahl verbundener Ports kann in einer verbundenen Leitung zwischen zwei Vorrichtungen enthalten sein, um die verfügbare Bandbreite um eine proportionale Menge zu erhöhen. Jede Vorrichtung behandelt ihre Gruppe verbundener Ports, als würde es sich um einen einzelnen Port handeln. Aus diesem Grunde wird jedes Paket, um Schleifenläufe von Paketen zu vermeiden, über nur einen der verbundenen Ports versendet, und die an einem verbundenen Port empfangenen Pakete werden nicht an einen weiteren verbundenen Port derselben Gruppe verbundener Ports neugesendet. Um die höchstmögliche Bandbreite in der verbundenen Leitung zu erreichen, verteilt jede Kommunikationsvorrichtung den Verkehr an jedem verbundenen Port so gleichmäßig wie möglich. Die Verkehrsverteilung hängt von dem Auswahlkriterium für die ausgewählten verbundenen Ports ab, wobei ein beliebiges von mehreren Verfahren verwendet werden kann, so beispielsweise das Random-Verfahren, das Round-Robin-Verfahren und dergleichen. Die Auswahl eines verbundenen Ports zur Sendung eines Paketes erfolgt entweder paketweise oder mittels der Zuweisung einer Quellenkennung (MAC-Adresse), wie vorstehend beschrieben wurde. Bei dem zuweisungsbasierten Ausführungsbeispiel wird der Verkehr dynamisch überwacht, und die Zuweisungen werden periodisch angepasst, um die höchstmögliche Bandbreite in jeder verbundenen Leitung zu erhalten.
  • Obwohl ein System und Verfahren entsprechend der vorliegenden Erfindung anhand eines bevorzugten Ausführungsbeispieles beschrieben worden sind, ist nicht beabsichtigt, dass die hier spezifisch offenbarte Form eine Beschränkung darstellen soll. Es ist vielmehr beabsichtigt, sämtliche Alternativen, Abwandlungen und gleichwertigen Ausgestaltungen mit in den Schutzbereich aufzunehmen, soweit sie im Schutzumfang gemäß den nachfolgenden Ansprüchen enthalten sind.

Claims (25)

  1. Netzwerk-Kommunikationsvorrichtung (102), die umfasst: eine Vielzahl von Ports (104), wobei jeder Port zum Empfangen und Senden von Datenpaketen konfiguriert ist; und eine Port-Steuerschaltung (104), die mit der Vielzahl von Ports (104) gekoppelt ist und umfasst: einen Port-Manager, der so konfiguriert ist, dass er Pakete zwischen der Vielzahl von Ports (104) leitet, und eine Port-Verbindungsschaltung (156), die mit dem Port-Manager gekoppelt ist, wobei die Port-Verbindungsschaltung so konfiguriert ist, dass sie wenigstens zwei der Vielzahl von Ports (140, 142) zu einer Gruppe (120) verbundener Ports verbindet, so dass die Pakete von den Ports der Gruppe verbundener Ports gesendet werden, und die Port-Verbindungsschaltung (156) des Weiteren so konfiguriert ist, dass sie für jedes über die Gruppe verbundener Ports zu sendendes Paket einen verbundenen Port der Gruppe verbundener Ports auswählt.
  2. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 1, wobei die Port-Verbindungsschaltung (156) wenigstens ein Port-Verbindungsregister (658) enthält, das so konfiguriert ist, dass es identifiziert, welche der Vielzahl von Ports (104) in der Gruppe (120) verbundener Ports verbunden sind.
  3. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 1 oder Anspruch 2, wobei die Port-Verbindungsschaltung (156) so konfiguriert ist, dass sie einen verbundenen Port (120) paketweise auswählt, um eine relativ gleichmäßige Ver teilung durch verbundene Ports (140, 142) der Gruppe verbundener Ports gesendete Pakete zu erreichen.
  4. Netzwerk-Kommunikationsvorrichtung (102) nach den Ansprüchen 1 bis 3, wobei: jedes der Pakete Quellen-Kennungen enthält; und die des Weiteren umfasst: einen Speicher, der mit der Port-Steuerschaltung (156) gekoppelt ist, wobei der Speicher so konfiguriert ist, dass er eine Vielzahl von Einträgen speichert und jeder der Vielzahl von Einträgen eine eindeutige Quellen-Kennung und eine entsprechende Port-Kennung enthält.
  5. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 4, die des Weiteren für jeden Eintrag in dem Speicher, der eine Quellen-Kennung enthält, die an einem verbundenen Port (140, 142) der Gruppe (120) verbundener Ports empfangen wurde, die Port-Steuerschaltung (154) umfasst, die so konfiguriert ist, dass sie die entsprechende Port-Kennung so programmiert, dass sie die Gruppe verbundener Ports darstellt.
  6. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 4, wobei die Pakete Unicast-Pakete mit einer Ziel-Kennung enthalten, und die Port-Verbindungsschaltung (156) so konfiguriert ist, dass sie für jeden Eintrag in dem Speicher, der eine Quellen-Kennung enthält, die an jedem verbundenen Port (140, 142) der Gruppe (120) verbundener Ports empfangen wurde, die Port-Kennung so programmiert, dass sie einen verbundenen Port der Gruppe verbundener Ports identifiziert, um eine relativ gleichmäßige Verteilung von Quellen-Kennungen unter den verbundenen Ports der Gruppe verbundener Ports zu erreichen; und der Port-Manager so konfiguriert ist, dass er die Port-Kennung, die einer Ziel-Kennung eines Unicast-Paketes entspricht, verwendet, um einen verbundenen Port (140, 142) zum Senden des Unicast-Paketes über die Gruppe (120) verbundener Ports zu senden.
  7. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 6, wobei die Port-Verbindungsschaltung (156) so konfiguriert ist, dass sie Unicast-Pakete überwacht, die über jeden verbundenen Port (140, 142) der Gruppe (120) verbundener Ports gesendet werden, und die Port-Verbindungsschaltung des Weiteren so konfiguriert ist, dass sie die Port-Kennung jedes der Vielzahl von Einträgen periodisch neu programmiert, um eine relativ gleichmäßige Verteilung von Unicast-Paketverkehr unter den verbundenen Ports der Gruppe verbundener Ports zu erreichen.
  8. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 4, wobei jeder der Vielzahl von Einträgen in dem Speicher, der eine Quellen-Kennung hat, die an einem nichtverbundenen Port der Vielzahl von Ports (104) empfangen wurde, des Weiteren eine Bitmap enthält, die ein Bit hat, das jedem der verbundenen Ports (140, 142) entspricht; und die Port-Verbindungsschaltung (156) so konfiguriert ist, dass sie jede Bitmap jedes der Vielzahl von Einträgen programmiert, um einen verbundenen Port der Gruppe verbundener Ports so zuzuweisen, dass eine relativ gleichmäßige Verteilung von Zuweisungen verbundener Ports zu Quellen-Kennungen erreicht wird, die nicht verbundenen Ports entsprechen.
  9. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 8, wobei der Speicher eine Standard-Bitmaptabelle enthält, die eine Standard-Bitmap für jeden der Vielzahl von Ports enthält, wobei jede der Standard-Bitmaps ein Bit enthält, das jedem der verbundenen Ports entspricht; und die Port-Verbindungsschaltung (156) so konfiguriert ist, dass sie jede der Standard-Bitmaps so programmiert, dass ein verbundener Port (140, 142) der Gruppe (120) verbundener Ports so zugewiesen wird, dass eine relativ gleichmäßige Ver teilung von Zuweisungen verbundener Ports unter der Vielzahl von Ports (104) erreicht wird.
  10. Netzwerk-Kommunikationsvorrichtung (102) nach Anspruch 8, wobei die Pakete Broadcast-Pakete enthalten, die von nicht verbundenen Ports empfangen werden, um sie zu den verbundenen Ports (140, 142) zu senden, die von der Port-Steuerschaltung (154) bestimmt werden; wobei die Port-Verbindungsschaltung (156) so konfiguriert ist, dass sie durch jeden verbundenen Port (140, 142) der Gruppe (120) verbundener Ports gesendete Broadcast-Pakete überwacht, und die Port-Verbindungsschaltung des Weiteren so konfiguriert ist, dass sie jede Bitmap jedes der Vielzahl von Einträgen periodisch neu programmiert, um eine relativ gleichmäßige Verteilung von Broadcast-Paketverkehr unter den verbundenen Ports der Gruppe verbundener Ports zu erreichen.
  11. Paketbasiertes Netzwerksystem (100), das umfasst: eine erste (102) und eine zweite (106) Netzwerk-Kommunikationsvorrichtung nach einem der Ansprüche 1–10; eine verbundene Leitung (148), die zwischen die Gruppen (120, 122) verbundener Ports der ersten und der zweiten Netzwerk-Kommunikationsvorrichtungen gekoppelt ist, wobei die verbundene Leitung eine Verbindungsleitung (124, 126) zwischen entsprechenden verbundenen Ports der Gruppen verbundener Ports enthält; wobei die erste Netzwerk-Kommunikationsvorrichtung (102) so konfiguriert ist, dass sie einen ihrer verbundenen Ports (140, 142) für jedes von ihr empfangene Paket zum Senden zu der zweiten Netzwerk-Kommunikationsvorrichtung (106) auswählt; und die zweite Netzwerk-Kommunikationsvorrichtung (106) so konfiguriert ist, dass sie einen ihrer verbundenen Ports (144, 146) für jedes von ihr empfangene Paket zum Senden zu der ersten Netzwerk-Kommunikationsvorrichtung (102) auswählt.
  12. Netzwerksystem (100) nach Anspruch 11, wobei die erste (102) und die zweite (106) Netzwerk-Kommunikationsvorrichtung jeweils so konfiguriert sind, dass sie verbundene Ports (140, 142, 144, 146) zum Senden von Paketen auswählt, um Pakete gleichmäßig auf der Leitung (148) verbundener Ports zu verteilen.
  13. Netzwerksystem (100) nach Anspruch 12, wobei die erste (102) und die zweite (106) Netzwerk-Kommunikationsvorrichtung so konfiguriert sind, dass sie verbundene Ports (120, 122) paketweise auswählen.
  14. Netzwerksystem (100) nach Anspruch 12, wobei jedes Paket eine eindeutige Quellenkennung enthält und die erste (102) sowie die zweite (106) Netzwerk-Kommunikationsvorrichtung so konfiguriert sind, dass sie verbundene Ports (140, 142, 144, 146) auswählen, indem sie jeder Quellen-Kennung einen verbundenen Port zuweisen.
  15. Netzwerksystem (100) nach Anspruch 14, wobei: die erste Netzwerk-Kommunikationsvorrichtung (102) so konfiguriert ist, dass sie durch die erste Gruppe (120) verbundener Ports empfangene Quellen-Kennungen ihren verbundenen Ports (140, 142) annähernd gleich zuweist; die erste Netzwerk-Kommunikationsvorrichtung (102) so konfiguriert ist, dass sie verbundene Ports (120) unter durch ihre nichtverbundenen Ports empfangenen Quellen-Kennungen annähernd gleich zuweist; die zweite Netzwerk-Kommunikationsvorrichtung (106) so konfiguriert ist, dass sie durch die zweite Gruppe (122) verbundener Ports empfangene Quellen-Kennungen ihren verbundenen Ports (144, 146) annähernd gleich zuweist; und die zweite Netzwerk-Kommunikationsvorrichtung (106) so konfiguriert ist, dass sie verbundene Ports (122) unter durch ihre nichtverbundenen Ports empfangenen Quellen-Kennungen annähernd gleich zuweist.
  16. Netzwerksystem (100) nach Anspruch 11, wobei: die Gruppen (120, 122) verbundener Ports verbundene Ports (140, 142, 144, 146) enthalten, die bei verschiedenen Bandbreiten arbeiten; und wobei die erste (102) und die zweite (106) Netzwerk-Kommunikationsvorrichtung (102) so konfiguriert sind, dass sie verbundene Ports so auswählen, dass auf jedem verbundenen Port gesendete Pakete proportional zu seiner Bandbreite verteilt werden.
  17. Netzwerksystem (100) nach Anspruch 11, das des Weiteren umfasst: eine dritte Netzwerk-Kommunikationsvorrichtung (202) nach einem der Ansprüche 1 bis 10; wobei die erste Netzwerk-Kommunikationsvorrichtung (102) eine weitere Vielzahl von Ports und eine weitere Gruppe (212) verbundener Ports enthält, die wenigstens zwei verbundene Ports enthält; eine zweite verbundene Leitung (244), die zwischen die dritte Gruppe (212) verbundener Ports der dritten Kommunikationsvorrichtung (202) und die weitere Gruppe verbundener Ports der ersten Netzwerk-Kommunikationsvorrichtung gekoppelt ist, wobei die verbundene Leitung eine Verbindungsleitung zwischen entsprechenden verbundenen Ports der dritten und der weiteren Gruppe verbundener Ports enthält; wobei die erste Kommunikationsvorrichtung so konfiguriert ist, dass sie für jedes durch die erste Kommunikationsvorrichtung (102) empfangene Paket, das zu der dritten Kommunikationsvorrichtung (202) gesendet werden soll, einen ihrer verbundenen Ports auswählt; und die dritte Kommunikationsvorrichtung so konfiguriert ist, dass sie für jedes durch die dritte Kommunikationsvorrichtung (202) empfangene Paket, das zu der ersten Kommunikationsvorrichtung (102) gesendet werden soll, einen ihrer verbundenen Ports auswählt.
  18. Netzwerksystem nach einem der Ansprüche 11 bis 17, wobei die erste (102) und die zweite (106) Kommunikationsvorrichtung Netzwerk-Switches sind.
  19. Verfahren zum Verbinden von Ports einer Netzwerk-Kommunikationsvorrichtung (102) mit einer Vielzahl von Ports (104), die Pakete senden und empfangen, das die folgenden Schritte umfasst: Definieren wenigstens zwei (140, 142) der Vielzahl von Ports als verbundene Ports, die eine Gruppe (120) verbundener Ports bilden; Empfangen eines Paketes; Bestimmen, dass das empfangene Paket über die Gruppe (120) verbundener Ports gesendet werden soll; Auswählen eines der verbundenen Ports (140, 142); und Senden des Paketes über den ausgewählten verbundenen Port (140, 142).
  20. Verfahren nach Anspruch 19, das des Weiteren den Schritt des Modifizierens einer Spannbaum-Funktion umfasst, um Deaktivierung eines der verbundenen Ports (140, 142) zu verhindern.
  21. Verfahren nach Anspruch 19, wobei der Auswählschritt das zufällige Auswählen verbundener Ports umfasst.
  22. Verfahren nach Anspruch 19, das des Weiteren die folgenden Schritte umfasst: Abrufen einer Quellen-Kennung aus dem Paket; Bestimmen einer Port-Kennung des ausgewählten verbundenen Ports (140, 142); Speichern der Quellen-Kennung mit der Port-Kennung des ausgewählten verbundenen Ports (140, 142); anschließendes Empfangen eines Broadcast-Paketes mit einer identischen Quellen-Kennung; Abrufen der Port-Kennung des ausgewählten verbundenen Ports (140, 142); und Rundsenden des Broadcast-Paketes zu ausgewählten der Vielzahl von Ports, das das Senden des Broadcast-Paketes über den ausgewählten verbundenen Port einschließt.
  23. Verfahren nach Anspruch 22, das des Weiteren die folgenden Schritte umfasst: Empfangen einer Vielzahl von Paketen an den nicht verbundenen Ports; Abrufen einer Quellen-Kennung aus jedem Paket; Zuweisen eines der verbundenen Ports (140, 142) für jede eindeutige Quellen-Kennung, um Zuweisungen verbundener Ports unter den eindeutigen Quellen-Kennungen gleichmäßig zu verteilen; und Speichern jeder eindeutigen Quellen-Kennung zusammen mit einer Port-Kennung des entsprechenden zugewiesenen verbundenen Ports.
  24. Verfahren nach Anspruch 19, das des Weiteren die folgenden Schritte umfasst: Empfangen eines Paketes an einem verbundenen Port (140, 142); Abrufen einer Quellen-Kennung aus dem Paket; Zuweisen eines der verbundenen Ports (140, 142) der gleichen Gruppe (120) verbundener Ports zu der Quellen-Kennung; und Speichern der Quellen-Kennung zusammen mit einer Port-Kennung des zugewiesenen verbundenen Ports.
  25. Verfahren nach Anspruch 24, das des Weiteren die folgenden Schritte umfasst: Empfangen einer Vielzahl von Paketen an den verbundenen Ports (140, 142); Abrufen einer Quellen-Kennung aus jedem Paket; Zuweisen eines der verbundenen Ports für jede eindeutige Quellen-Kennung, um eindeutige Quellen-Kennungen unter den verbundenen Ports der Gruppe (120) verbundener Ports gleichmäßig zu verteilen; und Speichern jeder eindeutigen Quellen-Kennung zusammen mit einer Port-Kennung des entsprechenden zugewiesenen verbundenen Ports.
DE69832769T 1997-09-23 1998-09-17 Netzwerkkommunikationsvorrichtung mit gebundenen Toren für erhöhte Bandbreite Expired - Fee Related DE69832769T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/936,072 US6665733B1 (en) 1996-12-30 1997-09-23 Network communication device including bonded ports for increased bandwidth
US936072 1997-09-23

Publications (2)

Publication Number Publication Date
DE69832769D1 DE69832769D1 (de) 2006-01-19
DE69832769T2 true DE69832769T2 (de) 2006-07-13

Family

ID=25468136

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69832769T Expired - Fee Related DE69832769T2 (de) 1997-09-23 1998-09-17 Netzwerkkommunikationsvorrichtung mit gebundenen Toren für erhöhte Bandbreite

Country Status (5)

Country Link
US (2) US6665733B1 (de)
EP (1) EP0910195B1 (de)
JP (1) JPH11168494A (de)
DE (1) DE69832769T2 (de)
TW (1) TW431096B (de)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665733B1 (en) * 1996-12-30 2003-12-16 Hewlett-Packard Development Company, L.P. Network communication device including bonded ports for increased bandwidth
US6393483B1 (en) * 1997-06-30 2002-05-21 Adaptec, Inc. Method and apparatus for network interface card load balancing and port aggregation
US6359879B1 (en) 1998-04-24 2002-03-19 Avici Systems Composite trunking
US6765919B1 (en) * 1998-10-23 2004-07-20 Brocade Communications Systems, Inc. Method and system for creating and implementing zones within a fibre channel system
EP1129439A1 (de) * 1998-11-11 2001-09-05 NCR International, Inc. Vorrichtungen und netzwerke zum austauschen von digitalen daten
WO2000072531A1 (en) * 1999-05-24 2000-11-30 Broadcom Corporation Apparatus and method for distributing a load across a trunk group
EP1180285A1 (de) * 1999-05-24 2002-02-20 Advanced Micro Devices, Inc. Vorrichtung und verfahren zum mehrfachtoranschluss in einer netzvermittlung
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US6731599B1 (en) 1999-07-01 2004-05-04 Nortel Networks Limited Automatic load sharing-trunking
US6981155B1 (en) 1999-07-14 2005-12-27 Symantec Corporation System and method for computer security
EP1210665A4 (de) 1999-07-14 2008-12-03 Recourse Technologies Inc SYSTEM UND VERFAHREN ZUM VERHINDERN DER DETEKTION EINES AUSGEWäLTEN, AUF EINEM RECHNER LAUFENDEN PROZESS
US7117532B1 (en) 1999-07-14 2006-10-03 Symantec Corporation System and method for generating fictitious content for a computer
US7203962B1 (en) 1999-08-30 2007-04-10 Symantec Corporation System and method for using timestamps to detect attacks
US6643287B1 (en) 1999-11-24 2003-11-04 Pluris, Inc. Apparatus and method for forwarding encapsulated data packets on a network having multiple links between nodes
US6765866B1 (en) 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
GB2361830B (en) * 2000-04-26 2002-01-30 3Com Corp Stackable network units including registers for identifying trunk connection status of stacked units
KR100628822B1 (ko) * 2000-07-14 2006-09-27 인터내셔널 비지네스 머신즈 코포레이션 통신 제어 방법 및 장치
US6944127B1 (en) * 2000-08-07 2005-09-13 Bbnt Solutions Llc System for detecting spurious network traffic
US6934262B1 (en) * 2000-08-26 2005-08-23 Cisco Technology, Inc. Method and apparatus for restricting the assignment of VLANs
CA2422221A1 (en) 2000-09-12 2002-03-21 International Business Machines Corporation System and method for controlling the multicast traffic of a data packet switch
US7266079B2 (en) 2000-09-18 2007-09-04 Broadcom Corporation Dynamic network load balancing over heterogeneous link speed
US8520679B1 (en) 2001-01-24 2013-08-27 Advanced Medical Devices, Inc. Trunking distribution systems and methods
NL1017870C2 (nl) 2001-04-18 2002-10-25 Marc Van Oldenborgh Werkwijze voor invers multiplexen.
NL1018463C2 (nl) 2001-07-04 2003-01-08 Marc Van Oldenborgh Werkwijze, inrichting en programmatuur voor digitaal inverse multiplexen.
WO2003032555A2 (en) 2001-10-05 2003-04-17 Aware, Inc. Systems and methods for multi-pair atm over dsl
ATE314768T1 (de) * 2001-10-08 2006-01-15 Cit Alcatel Verfahren zur lastverteilung zwischen mehreren gemeinsamen betriebsmitteln in einem kommunikationsnetzwerk und netzwerk zur anwendung des verfahrens
US7574597B1 (en) 2001-10-19 2009-08-11 Bbn Technologies Corp. Encoding of signals to facilitate traffic analysis
US7313135B2 (en) 2002-01-31 2007-12-25 Mosaid Technologies, Inc. Trunking in a matrix
US6973082B2 (en) 2002-02-01 2005-12-06 Fujitsu Limited Forwarding packets to aggregated links using distributed ingress card processing
US7356608B2 (en) * 2002-05-06 2008-04-08 Qlogic, Corporation System and method for implementing LAN within shared I/O subsystem
US7143196B2 (en) * 2002-05-06 2006-11-28 Silverstorm Technologies, Inc System and method for span port configuration
US7328284B2 (en) * 2002-05-06 2008-02-05 Qlogic, Corporation Dynamic configuration of network data flow using a shared I/O subsystem
US7404012B2 (en) * 2002-05-06 2008-07-22 Qlogic, Corporation System and method for dynamic link aggregation in a shared I/O subsystem
US7447778B2 (en) * 2002-05-06 2008-11-04 Qlogic, Corporation System and method for a shared I/O subsystem
US7930423B2 (en) * 2002-06-14 2011-04-19 Alcatel-Lucent Usa Inc. Dynamic load balancing within a network
US20050091394A1 (en) * 2003-10-27 2005-04-28 Schneider Automation Inc. Software configurable dual cable redundant Ethernet or bus configuration
US7702817B2 (en) * 2003-10-28 2010-04-20 Microsoft Corporation Wireless network access technologies for retrieving a virtual resource via a plurality of wireless network interfaces
US7693158B1 (en) 2003-12-22 2010-04-06 Extreme Networks, Inc. Methods and systems for selectively processing virtual local area network (VLAN) traffic from different networks while allowing flexible VLAN identifier assignment
KR100606341B1 (ko) * 2003-12-22 2006-07-28 엘지노텔 주식회사 에이티엠 교환 시스템의 가입자 장치에서의 포트번호설정방법
US7430203B2 (en) * 2004-01-29 2008-09-30 Brocade Communications Systems, Inc. Fibre channel zoning hardware for directing a data packet to an external processing device
JP4441362B2 (ja) * 2004-09-10 2010-03-31 株式会社日立製作所 ポート割当装置及びポート割当方法
US7782789B2 (en) 2004-09-23 2010-08-24 Harris Corporation Adaptive bandwidth utilization for telemetered data
US7903638B2 (en) * 2005-02-09 2011-03-08 Alcatel Lucent Communication link bonding apparatus and methods
US20060215689A1 (en) * 2005-03-24 2006-09-28 Alcatel System-level communication link bonding apparatus and methods
US20060251253A1 (en) * 2005-03-31 2006-11-09 Intel Corporation Cryptographically signed network identifier
CN1874341B (zh) * 2005-05-30 2010-08-18 华为技术有限公司 实现业务传输线路绑定的方法
US7813279B2 (en) * 2006-01-13 2010-10-12 Futurewei Technologies, Inc. System for rate management of aggregate-rate communication services
US7817550B2 (en) * 2006-01-13 2010-10-19 Futurewei Technologies, Inc. System for rate-control of aggregate-rate communication services
US7881192B2 (en) * 2006-01-13 2011-02-01 Futurewei Technologies, Inc. System for providing aggregate-rate communication services
US20070165520A1 (en) * 2006-01-18 2007-07-19 Messing Jeffrey P Port trunking between switches
ATE555575T1 (de) * 2006-03-06 2012-05-15 Nokia Corp Aggregation von vci-routing-tabellen
EP1995917A4 (de) * 2006-03-16 2011-08-24 Fujitsu Ltd Kommunikationsknoten und kommunikationsrouten-auswahlverfahren
CN101496349B (zh) * 2006-07-24 2013-09-11 华为技术有限公司 提供聚合速率通信业务的系统
JP4834493B2 (ja) * 2006-08-25 2011-12-14 アラクサラネットワークス株式会社 ネットワーク中継装置、および、ネットワーク中継装置の制御方法
US8031632B2 (en) * 2006-08-30 2011-10-04 Hewlett-Packard Development Company, L.P. Method and system of implementing virtual local area networks (VLANS) with teamed communication ports
US8208386B2 (en) * 2007-03-05 2012-06-26 Hewlett-Packard Development Company, L.P. Discovery of network devices
JP4900474B2 (ja) * 2007-03-15 2012-03-21 富士通株式会社 情報処理装置、ノード位置取得方法及びプログラム並びに通信システム
DE102007022704B4 (de) * 2007-05-15 2010-12-09 Siemens Ag Verfahren zum Einrichten eines logischen Verbindungspfads in einem verbindungsorientierten paketvermittelten Kommunikationsnetzwerk
JP4740897B2 (ja) * 2007-05-24 2011-08-03 株式会社日立製作所 仮想ネットワーク構成方法及びネットワークシステム
CN101060518B (zh) * 2007-06-05 2012-11-14 中兴通讯股份有限公司 一种多线路绑定的业务信息发送和接收设备
CN101809934B (zh) * 2007-06-19 2014-07-02 北卡罗来纳科姆斯科普公司 用于使用管理端口电路的方法、系统和计算机程序产品
US8898331B2 (en) * 2007-07-09 2014-11-25 Hewlett-Packard Development Company, L.P. Method, network and computer program for processing a content request
US20090043415A1 (en) * 2007-08-06 2009-02-12 Chevron U.S.A. Inc. System and Method for Distributed Control of a Plant Process
US8077613B2 (en) 2007-12-03 2011-12-13 Verizon Patent And Licensing Inc. Pinning and protection on link aggregation groups
US8284654B2 (en) * 2007-12-03 2012-10-09 Verizon Patent And Licensing Inc. Bandwidth admission control on link aggregation groups
EP2220849B1 (de) * 2007-12-12 2019-03-13 Nokia Technologies Oy Adressenzuweisungsprotokoll
US8020013B2 (en) * 2008-03-05 2011-09-13 Inscape Data Corporation Adjustable-voltage power-over-ethernet (PoE) switch
KR100935325B1 (ko) 2008-07-25 2010-01-06 주식회사 다산네트웍스 네트워크 스위치들을 연결하기 위한 장치
US8837508B2 (en) * 2008-07-30 2014-09-16 Adtran, Inc. Systems and methods for allocating bonding engines in network communications
EP2326996A1 (de) * 2008-09-06 2011-06-01 Lord Corporation Bewegungskontrollsystem mit digitaler verarbeitungsverbindung
US9264307B2 (en) 2008-11-12 2016-02-16 Teloip Inc. System, apparatus and method for providing improved performance of aggregated/bonded network connections between remote sites
US9692713B2 (en) 2008-11-12 2017-06-27 Teloip Inc. System, apparatus and method for providing a virtual network edge and overlay
US9929964B2 (en) 2008-11-12 2018-03-27 Teloip Inc. System, apparatus and method for providing aggregation of connections with a secure and trusted virtual network overlay
US8155158B2 (en) 2008-11-12 2012-04-10 Patricio Humberto Saavedra System, apparatus and method for providing aggregated network connections
US9264350B2 (en) 2008-11-12 2016-02-16 Teloip Inc. System, apparatus and method for providing improved performance of aggregated/bonded network connections with multiprotocol label switching
US9426029B2 (en) 2008-11-12 2016-08-23 Teloip Inc. System, apparatus and method for providing improved performance of aggregated/bonded network connections with cloud provisioning
US8316558B2 (en) * 2008-12-16 2012-11-27 Skechers U.S.A., Inc. Ii Shoe
TWI466510B (zh) * 2009-02-12 2014-12-21 Realtek Semiconductor Corp 處理裝置及傳輸方法
US8675661B1 (en) * 2009-05-07 2014-03-18 Sprint Communications Company L.P. Allocating IP version fields to increase address space
US8977784B2 (en) * 2010-04-30 2015-03-10 Intel Corporation Port teaming
TWI419515B (zh) * 2010-07-29 2013-12-11 Cybertan Technology Inc The network bandwidth upper limit statistics and adjustment method of network equipment
US8908517B2 (en) * 2011-03-10 2014-12-09 Cisco Technology, Inc. Traffic distribution across a plurality of attachment circuits of a multihome site with a computer network using hashing algorithm
US20120320918A1 (en) * 2011-06-14 2012-12-20 International Business Business Machines Bridge port between hardware lan and virtual switch
US9641438B2 (en) 2011-12-15 2017-05-02 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US8285141B1 (en) * 2011-12-15 2012-10-09 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US8849112B2 (en) 2011-12-15 2014-09-30 Level 3 Communications, Llc Apparatus, system, and method for asymmetrical and dynamic routing
US9252970B2 (en) * 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
US9213676B2 (en) * 2012-02-02 2015-12-15 Dialogic Incorporated Hardware device name resolution for deterministic configuration in a network appliance
US8750122B1 (en) * 2012-03-22 2014-06-10 Avaya, Inc. Method and apparatus for layer 2 loop prevention in a multi-node switch cluster
US20140088780A1 (en) * 2012-09-26 2014-03-27 Hongxia Chen Automatic local electric management system
TWI505675B (zh) * 2013-03-06 2015-10-21 Ic Plus Corp 網路交換器與資料更新方法
JP5954236B2 (ja) * 2013-03-28 2016-07-20 日立金属株式会社 ネットワーク中継装置
US10129148B2 (en) 2014-08-18 2018-11-13 Red Hat Israel, Ltd. Table-based load balancing for bonded network interfaces
CN106922211A (zh) 2014-09-17 2017-07-04 特洛伊普公司 用于提供以多协议标签交换改善聚合/捆绑网络连接的性能的系统、装置和方法
EP3809640A1 (de) 2014-12-01 2021-04-21 Genesis Technical Systems, Corp. Kleinzellen-backhaul
US20190028409A1 (en) * 2017-07-19 2019-01-24 Alibaba Group Holding Limited Virtual switch device and method
CN109327397A (zh) * 2017-08-01 2019-02-12 阿里巴巴集团控股有限公司 数据发送、数据重发、数据处理方法与装置
US10659336B1 (en) * 2018-10-31 2020-05-19 Hewlett Packard Enterprise Development Lp Server access times

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3723973A (en) 1970-09-30 1973-03-27 Honeywell Inf Systems Data communication controller having dual scanning
US4521879A (en) * 1977-11-25 1985-06-04 Klaus Gueldenpfennig Digital private branch exchange
US4897841A (en) 1989-01-11 1990-01-30 Hughes Lan Systems, Inc. System and method for bridging local area networks using concurrent broadband channels
CA2011935A1 (en) 1989-04-07 1990-10-07 Desiree A. Awiszio Dual-path computer interconnect system with four-ported packet memory control
JP2803262B2 (ja) * 1989-12-15 1998-09-24 日本電気株式会社 パケット・スイッチ
DE69221338T2 (de) * 1991-01-18 1998-03-19 Nat Semiconductor Corp Steuervorrichtung für Wiederholerschnittstelle
US5293486A (en) 1991-06-28 1994-03-08 Digital Equipment Corporation Deterministic method for allocation of a shared resource
US5241587A (en) * 1991-07-03 1993-08-31 Teltone Corporation Polling controller
US5291479A (en) * 1991-07-16 1994-03-01 Digital Technics, Inc. Modular user programmable telecommunications system with distributed processing
US5742760A (en) 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US5490252A (en) 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
JPH06187302A (ja) * 1992-12-18 1994-07-08 Fujitsu Ltd 転送要求キュー制御方式
US5309426A (en) 1993-01-26 1994-05-03 International Business Machines Corporation High performance cascadable simplex switch
US5515376A (en) 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5412653A (en) 1993-10-15 1995-05-02 International Business Machines Corporation Dynamic switch cascading system
US5561669A (en) 1994-10-26 1996-10-01 Cisco Systems, Inc. Computer network switching system with expandable number of ports
US5592472A (en) 1994-10-27 1997-01-07 Hewlett-Packard Company High performance path allocation system and method for a fiber optic switch for a fiber optic network
US5546385A (en) * 1995-01-19 1996-08-13 Intel Corporation Flexible switching hub for a communication network
US6115748A (en) 1995-07-19 2000-09-05 Fujitsu Network Communications, Inc. Prioritized access to shared buffers
US5682484A (en) * 1995-11-20 1997-10-28 Advanced Micro Devices, Inc. System and method for transferring data streams simultaneously on multiple buses in a computer system
US5856999A (en) * 1996-01-24 1999-01-05 Motorola Inc. Apparatus and method for data transmission on bonded data channels of a communications network utilizing a single serial communications controller
US5732087A (en) 1996-05-10 1998-03-24 Mitsubishi Electric Information Technology Center America, Inc. ATM local area network switch with dual queues
US6665733B1 (en) * 1996-12-30 2003-12-16 Hewlett-Packard Development Company, L.P. Network communication device including bonded ports for increased bandwidth
US6260073B1 (en) * 1996-12-30 2001-07-10 Compaq Computer Corporation Network switch including a switch manager for periodically polling the network ports to determine their status and controlling the flow of data between ports
US5862338A (en) * 1996-12-30 1999-01-19 Compaq Computer Corporation Polling system that determines the status of network ports and that stores values indicative thereof
US6098109A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Programmable arbitration system for determining priority of the ports of a network switch
US6201789B1 (en) * 1996-12-30 2001-03-13 Compaq Computer Corporation Network switch with dynamic backpressure per port
US6098110A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
US5742587A (en) * 1997-02-28 1998-04-21 Lanart Corporation Load balancing port switching hub

Also Published As

Publication number Publication date
DE69832769D1 (de) 2006-01-19
EP0910195B1 (de) 2005-12-14
US6665733B1 (en) 2003-12-16
US7333485B2 (en) 2008-02-19
EP0910195A2 (de) 1999-04-21
TW431096B (en) 2001-04-21
US20040068589A1 (en) 2004-04-08
EP0910195A3 (de) 1999-05-12
JPH11168494A (ja) 1999-06-22

Similar Documents

Publication Publication Date Title
DE69832769T2 (de) Netzwerkkommunikationsvorrichtung mit gebundenen Toren für erhöhte Bandbreite
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE69827201T2 (de) Verfahren und system zur server-netzwerkvermittlung-mehrverbindung
DE112012001320B4 (de) Prioritätsgestützte Flusssteuerung in einer Switching-Netzwerkarchitektur mit einem Protokoll einer verteilten Struktur (Distributed Fabric Protocol DFP)
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
DE69908295T2 (de) Virtuelles lokales netz mit mehrfachsendeschutz
DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE60317155T2 (de) Netzwerkeinheiten zur Verwendung in und Organisation von Kaskadensystemen
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE69812777T2 (de) Verbindung von Ethernetkompatiblen Netzwerken
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE69918332T2 (de) Virtuelle lokale netze mit prioritätsregeln
DE60125678T2 (de) Vermittlungstelle mit Flusssteurungverwaltung
DE69635511T2 (de) Verfahren und gerät zum weglenken von nachrichten in einem knoten-netz
EP3932020B1 (de) Verfahren zum routen von telegrammen in einem automatisierungsnetzwerk, datenstruktur, automatisierungsnetzwerk und netzwerkverteiler
DE60215416T2 (de) Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren
DE60217988T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen mit Blockierung der Einfügung
DE69735576T2 (de) Vorrichtung für automatische Segmentierung und Port zu Segment Verteilung
DE69926432T2 (de) Rückwandverdrahtung mit zugeordneter Bandbreite für Datenvermittlung
DE69636370T2 (de) Verfahren zum senden von nachrichten innerhalb einer gruppe von untergruppen in einem netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee