-
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.