-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft im Allgemeinen die Netzwerkkommunikation
und betrifft insbesondere die Zutrittssteuerung in einem Netzwerkgerät.
-
Hintergrund
der Erfindung
-
EP-A-0
932 282 offenbart eine Netzwerkeinrichtung und ein entsprechendes
Verfahren zum Steuern des Austauschs von Datenblöcken bzw. Datenrahmen zwischen
Stationen. Die Netzwerkeinrichtung umfasst mehrere Empfangsanschlüsse bzw. Ports,
die ausgebildet sind, Datenblöcke
von Stationen zu empfangen, und umfasst ferner eine Datenblockverarbeitungslogik.
Die Wartezeit auf Grund zu vieler TCP-Verbindungen wird gesteuert,
indem die Anzahl der Verbindungen durch eine Zutrittssteuerung kontrolliert
wird, die Verbindungsinitialisierungspakete verzögert oder sogar verwirft. TCP-Datenströme werden überwacht,
um Eigenschaften eines Paketverlusts zu erzeugen, und wenn ein gewisser
Zustand erfüllt
wird, wird die Warteschlange für
die Verbindungsanforderung deaktiviert.
-
In
Computernetzwerken werden typischerweise eine Anzahl von Netzwerkstationen über ein Kommunikationsmedium
miteinander verbunden. Beispielsweise ist das Ethernet 802.3 ein üblicherweise
verwendetes Nahbereichsnetzwerk-(LAN)Schema, in welchem mehrere
Stationen mit einem gemeinsam benutzten oder speziellen seriellen
Datenweg verbunden sind. Diese Stationen kommunizieren häufig mit
einer Vermittlungseinrichtung oder einer anderen Netzwerkeinrichtung,
die zwischen dem Datenweg und den Stationen angeordnet ist, die
mit diesem Datenweg verbunden sind. Die Vermittlungseinrichtung
steuert typischerweise einen Austausch von Daten und umfasst eine
Logikschaltung zum Empfangen und Weiterleiten von Datenblöcken zu
den entsprechenden Zielen.
-
Wenn
alle Stationen, die mit dem Netzwerk verbunden sind, gleichzeitig
arbeiten und Daten mit hoher Geschwindigkeit senden, kann der Datenverkehr
an der Vermittlungseinrichtung sehr intensiv sein. Folglich können einige
Vermittlungseinrichtungn Datenblöcke
bzw. Datenrahmen verwerfen, wenn ein Überlastungszustand erkannt
wird. In diesem Falle werden die verworfenen Datenblöcke nicht zu
ihren beabsichtigten Zielen weitergeleitet. Ein Nachteil konventioneller
Vermittlungseinrichtungn, die Datenblöcke verwerfen, besteht darin, dass
die Vermittlungseinrichtung in zufälliger Weise die Datenblöcke verwirft,
ohne dass die Art der Daten in den entsprechenden Datenblöcken bzw.
Datenrahmen bestimmt wird.
-
Überblick über die
Erfindung
-
Es
besteht ein Bedarf für
einen Mechanismus für
eine Netzwerkeinrichtung, die selektiv Datenblöcke verwirft, wenn eine Überlastungsbedingung besteht.
Diese und weitere Erfordernisse werden von der vorliegenden Erfindung
erfüllt,
wobei eine Einrichtung mit mehreren Anschlüssen bzw. Ports einen Datenblock
empfängt
und die Art der in dem Datenblock enthaltenen Daten erkennt. Die
Multiporteinrichtung bestimmt dann, ob eine Zutrittssteuerung an dem
empfangenen Datenblock auf der Grundlage der Verfügbarkeit
von Ressourcen in dem Multiportgerät und der Art der in dem Datenblock
enthaltenen Daten auszuführen
ist.
-
Gemäß einem
Aspekt der Erfindung wird eine Netzwerkeinrichtung bereitgestellt,
die den Austausch von Datenblöcken
zwischen Stationen steuert. Die Netzwerkeinrichtung umfasst mehrere
Empfangsanschlüsse
bzw. Ports, die ausgebildet sind, Datenblöcke von den Stationen zu empfangen.
Die Netzwerkeinrichtung umfasst ferner eine Datenblockverarbeitungslogik,
die bestimmt: ob eine Zutrittssteuerung aktiviert ist; eine mit
jedem der empfangenen Datenblöcken
verknüpfte
Priorität
und eine mit jedem der empfangenen Datenblöcke verknüpfte Art auf der Grundlage
einer Information, die in einem Nutzdatenbereich enthalten ist.
Die Datenblockverarbeitungslogik bestimmt ferner, ob einer der empfangenen
Datenblöcke
zu verwerfen ist auf der Grundlage, ob die Zutrittssteuerung aktiviert
ist und auf der Grundlage der Priorität und der Art oder des Typs,
die mit dem empfangenen Datenblock verknüpft sind.
-
Ein
weiterer Aspekt der vorliegenden Erfindung stellt ein Verfahren
in einer Netzwerkeinrichtung bereit, die den Austausch von Datenblöcken zwischen
Stationen steuert. Das Verfahren umfasst das Empfangen von Datenblöcken von
den Stationen und das Bestimmen, ob eine Zusatzsteuerung aktiviert
ist, einer Priorität,
die mit einem ersten Datenblock verknüpft ist, und eines Typs bzw.
einer Art, die mit dem ersten Datenblock verknüpft ist. Das Verfahren umfasst
ferner das Bestimmen, ob der erste Datenblock zu verwerfen ist,
auf der Grundlage, ob die Zusatzsteuerung aktiviert ist, auf der
Grundlage der Priorität
des ersten Datenblocks und auf der Grundlage der Datenart, die mit
dem ersten Datenblock verknüpft
ist.
-
Weitere
Vorteile und Merkmale der vorliegenden Erfindung gehen für den Fachmann
aus der folgenden detaillierten Beschreibung hervor. Die beschriebenen
und gezeigten Ausführungsformen
sind eine Darstellung der besten Art zum Ausführen der Erfindung. Die Erfindung
kann in diversen offenkundigen Hinsichten Modifizierungen unterliegen,
ohne dabei von der Erfindung abzuweichen. Daher sind die Zeichnungen
als lediglich anschaulicher Natur und nicht als einschränkend zu
erachten.
-
Kurze Beschreibung
der Zeichnungen
-
Es
wird auf die begleitenden Zeichnungen Bezug genommen, in denen Elemente
mit der gleichen Bezugszahl durchwegs die gleichen Elemente sind.
-
1 ist
eine Blockansicht eines beispielhaften Systems, in welchem Verfahren
und Systeme gemäß der vorliegenden
Erfindung eingerichtet sind.
-
2 ist
eine beispielhafte detaillierte Blockansicht einer Multiport- bzw.
Multianschluss-Schalteinrichtung
bzw. Vermittlungseinrichtung aus 1.
-
3 ist
eine beispielhafte detaillierte Blockansicht eines Teils der Multiport-Vermittlungseinrichtung
aus 2 gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
4 ist
eine beispielhafte Ansicht eines Kommunikationsprotokolls, das in
einer Ausführungsform
gemäß der vorliegenden
Erfindung verwendet wird.
-
5 bis 7 sind
beispielhafte detaillierte Ansichten der Kopfbereiche aus 4 gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
8 ist
ein Flussdiagramm, das den Verarbeitungsablauf darstellt, der von
der Multiport-Vermittlungseinrichtung
aus 2 gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung ausgeführt wird.
-
Beste Art
zum Ausführen
der Erfindung
-
Die
vorliegende Erfindung wird im Beispiel einer Schalteinrichtung bzw.
Vermittlungseinrichtung in einem paketbasierten Netzwerk, etwa einem Ethernet-(IEEE
802.3)Netzwerk beschrieben. Man erkennt jedoch, dass die vorliegende
Erfindung auch auf andere paketbasierte Systeme, wie sie detailliert nachfolgend
beschrieben sind, sowie auf andere Arten von Systemen im Allgemeinen
anwendbar ist.
-
Überblick über die Schalt- bzw. Vermittlungsarchitektur
-
1 ist
eine Blockansicht eines beispielhaften Systems, in welchem Systeme
und Verfahren gemäß der vorliegenden
Erfindung eingerichtet sind. Das beispielhafte System kann ein paketbasiertes Netzwerk 100 aufweisen,
etwa ein Ethernet-(IEEE 802.3)Netzwerk. Das paketbasierte Netzwerk 100 umfasst
Netzwerkstationen 110, Transformatoren 120, Sender/Empfänger 130 und 140,
einen Netzwerkknoten 150, einen Host- oder Hauptrechner 160, externe
Speicher 170 und Multiport- bzw. Mehrfachanschluss-Schalteinrichtungen
oder Vermittlungseinrichtungen 180. Die Netzwerkstationen 110 können konventionelle
Kommunikationseinrichtungen, etwa Computer, mit unterschiedlichen
Konfigurationen aufweisen. Beispielsweise können die Einrichtungen Daten
bei Netzwerkdatenraten von 10 Megabits pro Sekunde (Mb/s) oder 100
Mb/s senden und empfangen.
-
Jede
10/100 Mb/s-Netzwerkstation 110 kann Daten zu einer Multiport-Vermittlungseinrichtung 180 senden
und von dieser empfangen gemäß einem Hallbduplex- oder Vollduplex-Ethernet-Protokoll.
Das Ethernet-Protokoll ISO/IEC 8802-3 (ANSI/IEEE Std. 802.3, 1993)
definiert einen Halbduplex-Mediumzugriffsmechanismus, der es allen
Stationen 110 ermöglicht,
in gleicher Weise auf den Netzwerkkanal zuzugreifen. Ein Datenverkehr
in einer Halbduplex-Umgebung unterscheidet sich nicht durch das Übertragungsmedium.
Vielmehr kann jede Halbduplex-Station 110 eine Ethernet-Schnittstellenkarte
aufweisen, die einen Mehrfachzugriff mit Trägererfassung mit Kollisionserkennung
(CSMA/CD) verwendet, um den Datenverkehr auf dem Übertragungsmedium
abzuhören.
Die Abwesenheit im Netzwerkdatenverkehr wird erkannt, indem das
Fehlen eines Empfangsträger
an dem Übertragungsmedium
erfasst wird.
-
Jede
beliebige Station 110, die Daten senden muss, versucht
auf den Kanal zuzugreifen, indem eine vorbestimmte Zeitdauer gewartet
wird, die als Zwischenpaketintervall (IPG) bekannt ist, nachdem
der Empfangsträger
auf dem Übertragungsmedium
zurückgesetzt
bzw. nicht erkannt wird. Wenn mehrere Stationen 110 mit
der gleichen Leitung verbunden sind, kann jede der Stationen 110 versuchen, Daten
in Reaktion auf die erkannte Abwesenheit des Empfangsträgers und
nach dem IPG-Intervall zu senden, wodurch möglicherweise eine Kollision
hervorgerufen wird. Somit kann die sendende Station 110 das
Sendemedium überwachen,
um zu bestimmen, ob eine Kollision stattfindet auf Grund des Sendens von
Daten einer weiteren Station 110 auf der gleichen Leitung
und in der gleichen Zeit. Wenn eine Kollision erkannt wird, beenden
beide Stationen 110 das Senden, warten eine zufällige Zeitdauer
ab und versuchen erneut zu senden.
-
Die
10/100 Mb/s-Netzwerkstationen 110, die im Vollduplex-Modus
arbeiten, können
Datenpakete gemäß dem Ethernet-Standard
IEEE 802.3u senden und empfangen. Die Vollduplex-Umgebung liefert eine
Zweiwegekommunikationsverbindung von Punkt zu Punkt, wodurch das
gleichzeitige Senden und Empfangen von Datenpaketen für jeden
Verbindungsteilnehmer möglich
ist (d.h. die 10/100 Mb/s Netzwerkstation 110 und die entsprechende
Multiport-Vermittlungseinrichtung bzw. Schalteinrichtung 180).
-
Die
Transformatoren 120 können
magnetische Transformatoren beinhalten, die eine AC-(Wechselspannungs-)Kopplung
zwischen den Netzwerkstationen 110 und den Sendem/Empfängern 130 ermöglichen.
Die Sender/Empfänger 130 können 10/100
Mb/s Sender/Empfänger
der physikalischen Schicht enthalten, die aus den Multiport-Vermittlungseinrichtungen 180 über entsprechende
serielle mediumsunabhängige
Schnittstellen (SMIIs) oder reduzierte mediumsunabhängige Schnittstellen (RMIIs)
kommunizieren. Jeder der Sender/Empfänger 130 ist ausgebildet,
Datenpakete mit der Multiportschalteinrichtung bzw. Vermittlungseinrichtung 180 und
bis zu vier Netzwerkstationen 110 über die SMII/RMII auszutauschen.
Die SMII/RMII kann bei einer Datenrate arbeiten, die ausreichend
ist, um gleichzeitig das Senden und Empfangen von Datenpaketen für jede der
Netzwerkstationen 110 und dem entsprechenden Sender/Empfänger 130 zu
ermöglichen.
-
Der
Sender/Empfänger 140 kann
einen oder mehrere 1000 Mb/s (d.h. 1 Gb/s) Sender/Empfänger der
physikalischen Schicht aufweisen, die einen Datenaustausch mit Knoten,
etwa dem Netzwerkknoten 150, über beispielsweise ein Hochgeschwindigkeitsnetz werkübertragungsmedium
bereitstellen. Der Netzwerkknoten 150 kann einen oder mehrere
1 Gb/s Netzwerkknoten beinhalten, die Datenpakete bei einer Netzwerkgeschwindigkeit
von 1 Gb/s senden und empfangen. Der Netzwerkknoten 150 kann beispielsweise
einen Server oder einen Zugang zu einem Hochgeschwindigkeitsbasisnetzwerk
enthalten.
-
Der
Host bzw. Hauptrechner 160 kann eine Computereinrichtung
beinhalten, die externe Verwaltungsfunktionen zur Steuerung der
Gesamtfunktion der Multiportschalteinrichtung 180 bereitstellt.
Die externen Speicher 170 können synchrone statische Speicher
mit wahlfreiem Zugriff (SSRAM) enthalten, die externen Speicherplatz
für die
Multiportschalteinrichtungen 180 bereitstellen. Jeder der
externen Speicher 170 kann einen SSRAM mit Pipelineverarbeitung
und Sequenzbildung gemäß „Joint
Electron Device Engineering Council" (JEDEC) oder mit Null-Bus-Umkehrung
(ZBT) aufweisen mit einem 64 Bit-breiten Datenweg und mit einem
17 Bit-breiten Adressenweg. Die externen Speicher 170 können als obere
und untere Bänke
aus 128 K in 64-Bit Wörtern adressierbar
sein. Die Größe der externen
Speicher 170 ist vorzugsweise zumindest 1 Mbyte, wobei
ein Datentransfer bei jedem Taktzyklus durch Pipeline-Bearbeitung
möglich
ist.
-
Die
Multiportschalteinrichtungen 180 leiten selektiv Datenpakete,
die von der Netzwerkstationen 110 und den Netzwerkknoten 150 empfangen
wurden, zu den entsprechenden Zielen gemäß dem geeigneten Übertragungsprotokoll,
etwa dem Ethernet-Protokoll, weiter. Die Multiport-Schalteinrichtungen 180 können in
Kaskade angeordnet werden (über
Leitungen 190), um die Leistungsfähigkeit der Multiportschalteinrichtungen 180 zu
erweitern.
-
2 ist
eine detaillierte Ansicht der Multiportschalteinrichtung 180 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Die Multiportschalteinrichtung 180 umfasst
einen Empfänger 205,
einen Sender 210, einen Datenbus 215, eine Ablauforganisationseinheit 220,
eine Flusssteuerungslogik 225, eine Pufferverwaltungslogik 230,
eine Port- bzw. Anschlussvektorwartereihe (PVQ) 235, Ausgangssteuerungswarteschlangen
bzw. Wartereihen 240, eine interne Regelprüfeinheit
(IRC) 245, Register 250, Verwaltungsinformationsbasis-(MIB)Zähler 255,
eine Host-Schnittstelle 260, eine externe Speicherschnittstelle 265,
eine EEPROM-Schnittstelle 270, eine LED-Schnittstelle 275 und
eine JTAG-Schnittstelle (vereinigte Testaktionsgruppe) 280.
-
Der
Empfänger 250 kann
Mediumzugriffssteuerungs-(MAC)Module und Empfangspuffer, etwa „zuerst
herein, zuerst heraus"-FIFO-Puffer,
aufweisen. Die Empfangsmodule beinhalten Eingangsanschlüsse bzw.
Ports, die SMII, RMII, Gigabit-mediumsunabhängige Schnittstellen (GMII),
10 Bit-Schnittstellen (TBI) und speziell angepasste Schnittstellen zur
Erweiterung mit anderen Multiportschalteinrichtungen 180 (1)
unterstützen.
Die Erweiterungsports- bzw. Anschlüsse (EP) können verwendet werden, um Daten
zwischen anderen Multiportschalteinrichtungen 180 gemäß einem
vorgegebenen Protokoll auszutauschen. Die Erweiterungsports können eine
Kaskadierung der Multiportschalteinrichtungen 180 ermöglichen,
um ein Basisnetzwerk zu bilden. Jedes der Empfangsmodule kann eine
Wartereihenlogik aufweisen, die Datenpakete von den Netzwerkstationen 110 und/oder
dem Netzwerkknoten 150 empfängt und die Pakete in den entsprechenden Empfangs-FIFO's speichert. Die
Warteschlangenlogik kann dann Teile der Pakete zu der IRC 245 zur Verarbeitung
und zu dem externen Speicher 170 zur Speicherung über die
externe Speicherschnittstelle 265 senden.
-
Der
Sender 210 kann MAC-Module und Sendepuffer, etwa in Form
von FIFO-Puffern, aufweisen. Die Sendemodule enthalten Ausgangsanschlüsse bzw.
Ports, die SMII, GMII, TBI und speziell angepasste Schnittstellen
zur Erweiterung mit anderen Multiportschalteinrichtungen 180 unterstützen. Sendemodule
enthalten eine Logik zur Auflösung
der Wartereihen, die Pakete von dem externen Speicher 170 empfängt und
die Pakete in den entsprechenden Sende/FIFO's speichert. Die Sendemodule können die
Datenpakete aus den entsprechenden Sende-FIFO's auslesen und können die Pakete zu den Netzwerkstationen 110 und/oder
Netzwerkknoten 150 senden. In einer alternativen Ausführungsform der
vorliegenden Erfindung werden die Funktionen des Empfängers 305 und
des Senders 210 von einem Sende/Empfänger ausgeführt, der sowohl den Empfang
als auch die Aussendung von Datenpaketen handhabt.
-
Der
Datenbus 215 kann einen oder mehrere Leiter aufweisen,
die den Empfänger 205,
den Sender 210, die IRC 245 und die externe Speicherschnittstelle 265 verbinden.
Die Ablauforganisationseinheit 220 kann eine Logikschaltung
aufweisen, die den Zugriff zu dem externen Speicher 170 durch
die Wartereihenlogik und die Logik zur Auflösung der Wartereihen des Empfängers 205 bzw.
des Senders 210 steuert. Die Multiportschalteinrichtung 180 ist ausgebildet,
eine nichtblockierende Schalteinrichtung bzw. Vermittlungseinrichtung
zu bearbeiten, wobei Netzwerkdaten von den Vermittlungsanschlüssen bzw.
Ports mit den entsprechenden Übertragungsraten
von 10, 100 oder 1000 Mb/s empfangen und gesendet werden. Somit
kann die Ablauforganisationseinheit 220 den Zugriff auf
unterschiedliche Ports steuern, um damit die Anwendung der Bandbreite des
externen Speichers 170 zu optimieren.
-
Die
Flusssteuerungslogik 225 enthält eine Logik, die mit der
Pufferverwaltungslogik 230, der PVQ 235 und den
Ausgangssteuerungswartereihen 240 zusammenarbeitet, um
das Senden von Paketen mittels des Senders 210 zu steuern.
Die Flusssteuerungslogik 225 kann den Sender 210 so
steuern, dass der Sender 210 Pakete in effizienter Weise
auf der Grundlage des Volumens des Datenverkehrs ausgibt. Die Pufferverwaltungslogik 230 umfasst
eine Logikschaltung, die die Ausnutzung des Speichers in der Multiportschalteinrichtung 180 überwacht.
Beispielsweise kann die Pufferverwaltungslogik 230 die Verwendung
von Blockzeigern und die Wiederverwendung von Blockzeigern verwalten,
sobald das Datenpaket zu seinem entsprechenden Ausgangsanschluss
bzw. Anschlüssen
gesendet ist. Die Blockzeiger kennzeichnen die Position von Datenblöcken, die
in dem externen Speicher 170 abgelegt sind und auf eine
Sendung warten.
-
Die
PVQ 235 kann eine Logikschaltung enthalten, die einen Blockzeiger
für die
geeignete Ausgangswartereihe(n) der Ausgangssteuerungswartereihen 240 erhält, der
dem Ausgangsport zum Empfang der Datenblocksendung entspricht. Für mehrfach
kopierte Blöcke
kann die PVQ 235 mehrere Kopien des gleichen Blockzeigers
zu mehr als einer Ausgangswartereihe zuführen. Die Ausgangssteuerungswartereihen 240 können eine
FIFO-ähnliche Ausgangswartereihe
entsprechend jedem der Sendemodule in dem Sender 210 aufweisen.
Jeder der Ausgangswartereihen kann mehrere Prioritätswartereihen
für Blöcke mit
unterschiedlichen Prioritätsebenen
enthalten. Beispielsweise kann eine Wartereihe bzw. Warteschlange
mit hoher Priorität
für Blöcke verwendet
werden, die eine geringere Zugriffswartezeit erfordern (beispielsweise
Blöcke
für Multimediaanwendungen
oder Verwaltungsblöcke).
Die Blockzeiger, die in den FIFO-artigen Ausgangswartereihen gespeichert
sind, können
von der Logik für
die Auflösung
der Wartereihen für
die entsprechenden Sendemodule verarbeitet werden. Die Logik für die Auflösung der
Wartereihen verwendet die Blockzeiger zum Zugreifen auf den externen
Speicher 170, um damit Datenblöcke aus den Speicherplätzen auszulesen,
die durch die Blockzeiger spezifiziert sind.
-
Die
IRC 245 umfasst eine interne Entscheidungsmaschine, die
Entscheidungen hinsichtlich der Blockweiterleitung für Datenpakete
trifft, die von dem Empfänger 205 empfangen
werden. Die IRC 245 überwacht
(d.h. „prüft kurz") den Datenbus 215,
um den Blockzeigerwert und einen Teil des Datenblocks, beispielsweise
die Kopf- bzw. Vorspanninformation eines empfangenen Pakets, einschließlich der
Quelle, des Ziels und der virtuellen lokalen Nahbereichsnetzwerk-(VLAN)Adresseninformation
zu bestimmen. Die IRC 245 kann die Kopfinformation verwenden,
um zu bestimmen, welcher Ausgangsport den an der durch den Blockzeiger
spezifizierten Speicherstelle gespeicherten Datenblock ausgibt.
Die IRC 245 kann somit bestimmen, dass ein gegebener Datenblock
durch einen einzelnen Port (d.h. Einzelausgabe), durch mehrere Ports
(d.h. Mehrfachausgabe), oder durch alle Ports (d.h. Gesamtausgabe) oder
durch keinen Port (d.h. verworfen) ausgegeben sollte.
-
Beispielsweise
kann jeder Datenblock einen Kopf bzw. Vorspann aufweisen, der die
Quelladresse und die Zieladresse angibt. Die IRC 245 kann
damit die Bestimmungsadresse verwenden, um den geeigneten Ausgangsport
zu ermitteln, um damit den Datenblock auszugeben. Der Blockkopf
kann ferner eine VLAN-Adresseninformation, die den Block kennzeichnet,
als Information beinhalten, die für ein oder mehrere Elemente
einer Gruppe aus Netzwerkstationen 110 bestimmt ist. Die
IRC 245 kann alternativ bestimmen, dass ein Datenblock
von einer anderen Multiportschalteinrichtung 180 über den
Erweiterungsport auszugeben ist. Daher bestimmt die IRC 245,
ob ein zwischenzeitlich in dem externen Speicher 170 gespeicherter
Block von einem einzelnen Ausgangsport, von mehreren Ausgangsports,
von keinem Ausgangsport oder von einer anderen Multiportschalteinrichtung 180 auszugeben
ist.
-
Die
IRC 245 kann diese Weiterleitungsentscheidung an die PVQ 235 in
Form eines Weiterleitungsdeskriptors ausgeben. Der Weiterleitungsdeskriptor
kann beispielsweise eine Prioritätsklasse
enthalten, die angibt, ob der Datenblock eine hohe oder eine geringe
Priorität
aufweist, kann ferner einen Portvektor enthalten, der jeden Ausgangsport
kennzeichnet, der den Block senden sollte, kann die Eingangsportnummer
oder kann die VLAN-Information enthalten. Die PVQ 235 kann
den Weiterleitungsdeskriptor zur Ermittlung des Blockzeigers decodieren. Die
PVQ 235 liefert dann den Blockzeiger zu den geeigneten
Ausgangswartereihen innerhalb der Ausgangssteuerwartereihen 240.
-
Die
IRC 245 kann ferner eine Filterung der Schicht 3 durchführen. Beispielsweise
kann die IRC 245 jedes empfangene Datenpaket auf bis zu
128 programmierbare Muster untersuchen und die Pakete auf der Grundlage
des Ergebnisses verarbeiten. Das Ergebnis kann vorgeben, dass die
IRC 245 das Paket verwirft, das Paket zu dem Host 160 weiterleitet,
oder dem Paket eine Anwenderpriorität oder einen Differenzierungsdienstcodierungspunkt
(DSCP) zuweist. Die Anwenderprioritäten und der DSCP können unabhängig entsprechenden
Ausgangsprioritätsklassen
zugeordnet werden.
-
Die
Register 250 weisen Konfigurations- und Statusregister
auf, die von der Host-Schnittstelle 260 verwendet
werden. Die MIB-Zähler 255 stellen
eine statistische Netzwerkinformation in Form von MIB-Objekten zur
Verwendung durch den Host 160 bereit. Die Host-Schnittstelle 260 kann
eine standardmäßige Schnittstelle
umfassen, die es einer externen Verwaltungseinheit, etwa dem Host 160,
ermöglicht,
die Gesamtfunktion der Multiportschalteinrichtung 180 zu
steuern. Die Host-Schnittstelle 260 kann Host-Zugriffe
innerhalb eines vorgegebenen Registerraumes decodieren und Konfigurations-
und Statusinformationen in die Register 250 schreiben und
aus diesen auslesen.
-
Die
externe Speicherschnittstelle 265 umfasst eine standardmäßige Schnittstelle,
die Zugriff auf den externen Speicher 170 ermöglicht.
Die externe Speicherschnittstelle 265 ermöglicht eine
externe Speicherung von Datenpaketen in dem externen Speicher 170 in
einer Transaktion mit direktem Speicherzugriff (DMA) während eines
zugeordneten Zeitfensters, das durch die Ablauforganisationseinheit 220 festgelegt
ist. In einer Ausführungsform
der vorliegenden Erfindung arbeitet die externe Speicherschnittstelle 265 bei
einer Taktfrequenz von mindestens 66 Megahertz und vorzugsweise
bei einer Frequenz von 100 Megahertz und höher.
-
Die
EEPROM-Schnittstelle 270 kann eine Standardschnittstelle
zu einem weiteren externen Speicher, etwa einem EEPROM, aufweisen.
Die LED-Schnittstelle 275 umfasst eine Standardschnittstelle
für eine
externe LED-Logikschaltung. Die LED-Schnittstelle 275 sendet
den Status der Zustände
der Eingangs- und Ausgangsanschlüsse
zu der externen LED-Logikschaltung.
Die LED-Logik kann LED-Anzeigeelemente, die von einem Bediener lesbar
sind, ansteuern. Die JTAG-Schnittstelle 280 enthält eine
standardmäßige Schnittstelle
für eine
externe Testanlage, um beispielsweise das Ausführen eines Grenzabtasttests
an der Multiportschalteinrichtung 180 zu ermöglichen.
-
Die
vorhergehende Beschreibung der Schalteinrichtungen- bzw. Vermittlungsarchitektur bietet
einen Überblick über die
Vermittlungsfunktionen in einem paketbasierten Netzwerk. Eine detailliertere
Beschreibung der Merkmale der vorliegenden Erfindung, wie sie beispielsweise
in der Multiportschalteinrichtung 180 vorgesehen sind,
wird nachfolgend gegeben.
-
Selektive
Zutrittsteuerung in einer Netzwerkeinrichtung
-
Die
vorliegende Erfindung richtet sich an einen Zutrittssteuerungsmechanismus
in einer Netzwerkeinrichtung, etwa einer Multiportschalteinrichtung 180.
Die Multiportschalteinrichtung 180 gemäß der vorliegenden Erfindung
bestimmt, wenn eine Zutrittssteuerungsprozedur auszuführen ist,
auf der Grundlage einer Information, die in einem empfangenen Datenblock
enthalten ist, und auf der Grundlage der Verfügbarkeit von Ressourcen in
der Multiportschalteinrichtung 180.
-
3 zeigt
einen Teil der Multiportschalteinrichtung 180 gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung, in der eine selektive Zutrittssteuerung
ausgeführt
wird. In 3 umfasst die Multiportschalteinrichtung 180 den
Empfänger 205,
die Pufferverwaltungslogik 230, die externe Speicherschnittstelle 265 und
die Portfilterlogik 300.
-
Der
Empfänger 205 umfasst
MAC-Module, die als 310, 312 und 314 benannt
sind und den Eingangsport bzw. Anschlüssen 1 bis N entsprechen. Jedes
MAC-Modul umfasst einen Empfangs-FIFO-Puffer und eine Wartereihenlogik.
Beispielsweise umfasst in Bezug auf 3 das MAC-Modul 310 einen
Empfangs-FIFO-Puffer, der mit 310A bezeichnet ist, und
eine Wartereihenlogik 310B. Die anderen MAC-Module enthalten
in ähnlicher
Weise Empfangs-FIFO-Puffer und Wartereihenlogikschaltungen.
-
Die
Pufferverwaltungslogik 230 umfasst eine Steuerlogik 320 für freie
Pufferwarteschlangen (FBQ) und eine Wartereihe für freie Puffer 330.
Die FBQ 330 speichert Blockzeiger, die Positionen in dem
externen Speicher 170 kennzeichnen, die zum Speichern von
Datenblöcken
verfügbar
sind. Die FBQ-Steuerlogik 320 gemäß der vorliegenden Erfindung
initiiert eine Zutrittssteuerung in der Multiportschalteinrichtung 180,
wenn die Anzahl der verfügbaren
Blockzeiger in der FBQ 330 unter einen vorbestimmten Schwellwert
abfällt.
Die speziel le Anzahl der Blockzeiger, die in der FBQ 330 verbleiben,
bevor die FBQ-Steuerlogik 320 die Zutrittssteuerung initiiert, kann
auf der Grundlage der Erfordernisse des Anwenders festgelegt werden
und kann ferner auch durch den Anwender programmierbar sein. D.h.,
der Anwender kann die Anzahl der Blockzeiger, die in der FBQ 330 vor
der Aktivierung der Zutrittssteuerung verbleiben, mittels der Host-Schnittstelle 260 (2) beispielsweise
auf der Grundlage der Netzwerkbedingungen eingeben.
-
In
einer beispielhaften Ausführungsform
der vorliegenden Erfindung umfasst die FBQ 330 zwei separate „Füllstände" (d.h. Schwellwerte).
Jeder Füllstand
entspricht einer vorbestimmten Anzahl an Blockzeiger, die in der
FBQ 330 verbleiben. Die FBQ-Steuerlogik 320 erkennt,
wenn die FBQ 330 einen der entsprechenden Füllstände erreicht
und sendet ein Zutrittssteuerungssignal zu der Portfilterlogik 300,
wie dies nachfolgend detaillierter beschrieben ist.
-
Die
Portfilterlogik 300 bestimmt gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung eine Priorität, die mit einem empfangenen Datenblock
verknüpft
ist, und bestimmt ferner die Art der Daten, die in dem empfangenen
Datenblock enthalten sind, wie dies nachfolgend detaillierter beschrieben
ist. Wenn die Zutrittssteuerung aktiv ist und die Portfilterlogik 300 einen
Datenblock als eine gewisse Priorität besitzend und als eine gewisse
Datenart enthaltend erkennt, kann die Portfilterlogik 300 dem
entsprechenden MAC-Modul
signalisieren, den Datenblock zu verwerfen.
-
Die
Portfilterlogik 300 ist so dargestellt, dass diese eine
getrennte Komponente zu dem Empfänger 205 ist.
Es sollte jedoch beachtet werden, dass in alternativen Ausführungsformen
der vorliegenden Erfindung die Portfilterlogik 300 auch
ein Teil des Empfängers 205 sein
kann. In einer alternativen Ausführungsform
werden die von der Portfilterlogik 300 ausgeführten Funktionen
durch eine weitere Logikkomponente ausgeführt, etwa die entsprechende
Wartereihenlogik der MAC-Module.
-
In
einer beispielhaften Ausführungsform
der vorliegenden Erfindung kategorisiert die Portfilterlogik 300 Datenblöcke so,
dass diese entweder eine hohe Priorität oder eine geringe Priorität besitzen.
Ein Block mit hoher Priorität
schließt
einen Block ein, der eine geringe Zugriffswartezeit erfordert, etwa
einen Block, der für
eine Verwaltungseinrichtung bestimmt ist, oder ein Datenblock für eine Multimediaanwendung.
Ein Block mit geringer Priorität
kann jeden anderen Block umfassen.
-
In
alternativen Ausführungsformen
der vorliegenden Erfindung ist die Anzahl der mit den Datenblöcken verknüpften Prioritäten größer als
2. Beispielweise kann die Portfilterlogik 300 Blöcke so einstufen,
dass diese eine von drei Prioritätsebnen
aufweisen, etwa gering, mittel und hoch. In einer weiteren Ausführungsform
stuft die Portfilterlogik 300 Blöcke ein, so dass diese eine
von vier Prioritätsebenen aufweisen,
etwa gering, gering-mittel, mittelhoch und hoch. In diesen Fällen entspricht
die Anzahl der Füllstände in der
FBQ 330 den Prioritätsebenen.
Wenn beispielsweise die Multiportschalteinrichtung 180 vier Prioritätsebenen
unterstützt,
kann die Anzahl der Füllstände in der
FBQ 330 vier betragen.
-
Ferner
kann in einigen Ausführungsformen der
vorliegenden Erfindung die Multiportschalteinrichtung 180 Datenblöcke mit
einer Prioritätskennzeichnung
empfangen. Beispielsweise kann ein Ethernet-Block ein 3-Bit-Feld
enthalten, das eine von acht Prioritätsebenen repräsentiert.
In diesem Falle kann die Portfilterlogik 300 die empfangene
Prioritätsinformation
einer entsprechenden Prioritätsebene zuordnen,
die von der Multiportschalteinrichtung 180 unterstützt wird.
Beispielsweise kann die Portfilterlogik 300 die acht Prioritätsebenen
einer hohen oder einer geringen Priorität in der Multiportschalteinrichtung 180 zuordnen.
Alternativ können
die acht Prioritätsebenen,
die mit den empfangenen Datenblöcken verknüpft sind,
drei oder mehreren Prioritätsebenen in
der Multiportschalteinrichtung 180 auf der Grundlage der
Prioritätsebenen,
die von der Multiportschalteinrichtung 180 unterstützt werden,
zugeordnet werden.
-
Die
Portfilterlogik 300 erkennt ferner die Art der Daten, die
in dem Datenbereich des Datenblocks bzw. Datenrahmens enthalten
sind. Beispielsweise ist 4 eine beispielhafte Ansicht
eines Kommunikationsprotokolls 400, das von einer Netzwerkstation 100 und
dem Netzwerkknoten 150 in einer Ausführungsform der vorliegenden
Erfindung verwendet werden kann. Das Kommunikationsprotokoll 400 umfasst
eine Anwendungsschicht 410, eine Transportschicht 420,
eine Netzwerkschicht 430 und eine Datenverbindungsschicht 440.
Die Anwendungsschicht 410 kann die Anwendungen oder die
Programme enthalten, die die Kommunikation initiieren. Die Anwendungsschicht 410 kann
diverse Anwendungsprotokolle, etwa Protokolle für Host-Übertragung, für den Dateiaustausch,
den Fernzugriff, die Authentizierung und die Namensauflösung beinhalten.
Die Anwendungsschicht 410 kann Da ten 412 zu dem
Netzwerk 100 durch Weiterleiten eines Datenpaketes zu der Transportschicht 420 zusammen
mit dem Ziel des Pakets zuführen.
-
Die
Transportschicht 420 kann eine virtuelle Schaltung, eine
Verbindung oder ein Sockel zwischen der Quelle und dem Ziel des
Pakets einrichten. Die Transportschicht 420 kann einen
Kopf bzw. Vorspann 422 und einen Endteil 424 dem
Paket gemäß den Spezifikationen
des entsprechenden Transportprotokolls hinzufügen. Die Transportschicht 420 gibt das
Paket an die Netzwerkschicht 430 zusammen mit der Internetprotokoll-(IP)Adresse
des Ziels weiter.
-
Die
Netzwerkschicht 430 erhält
das Paket von der Transportschicht 420 und bereitet das
Paket für
die Datenverbindungsschicht 440 vor, indem die IP-Adresse
in eine physikalische Adresse, etwa eine MAC-Adresse, umgewandelt
und das Paket bei Bedarf in die erforderlichen Größen unterteilt
wird. Die Netzwerkschicht 430 erzeugt Pakete, die Datagramme
genannt werden, indem ein IP-Kopf 432 und ein Endbereich
den Paketen von der Transportschicht 420 gemäß den Spezifikationen
des relevanten Protokolls hinzugefügt werden. Die Netzwerkschicht 430 gibt
das Datagramm an die Datenverbindungsschicht 440 weiter.
-
Die
Datenverbindungsschicht 440 umfasst ein Datenverbindungsprotokoll,
etwa Ethernet, das dafür
verantwortlich ist, die Daten in zuverlässiger Weise im Netzwerk 100 zu übermitteln.
Die Datenverbindungsschicht 440 wandelt das Datagramm in sein
eigenes Format um, das das Hinzufügen eines Kopfs 442 mit
Quellen- und Ziel-MAX-Adressen und das Hinzufügen eines Endbereichs 444,
der die Prüfsummendaten
enthält,
beinhaltet.
-
5–7 sind
detaillierte Ansichten der Kopfbereiche 422 bis 442 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Wie in 5 gezeigt
ist, enthält
der Kopf 422 ein Quellenportfeld, ein Bestimmungs- bzw.
Zielportfeld, ein Sequenznummernfeld, ein Bestäti gungsnummernfeld, ein Datenoffsetfeld,
ein reserviertes Feld, ein Markierungsfeld, ein Fensterfeld, ein
Prüfsummenfeld
und ein Feld für wichtige
Zeiger. Die Quellenport- und Zielportfelder enthalten Daten, die
die Quelle und das Ziel eines Datenpakets kennzeichnen. Das Sequenznummernfeld
enthält
Daten, die verwendet werden, um die Reihenfolge und die Zuleitung
des Pakets zu dem Ziel sicherzustellen. Das Bestätigungsnummernfeld umfasst
Daten, die das nächste
Byte der Daten kennzeichnen, von denen die Quelle erwartet, dass
diese von dem Ziel empfangen werden.
-
Das
Datenoffsetfeld umfasst Daten, die die Länge des Kopfbereichs 422 kennzeichnen.
Das reservierte Feld kann für
künftige
Erweiterungen verwendet werden. Das Markierungsfeld kann diverse Markierungen
bzw. Flaggen enthalten, etwa für
Wichtigkeit, Bestätigung,
Verschieben, Rücksetzen,
Synchronisieren und Beendigung. Die Wichtigkeitsflagge zeigt an,
ob die Daten in dem Feld für
wichtige Zeiger zulässig
sind. Die Bestätigungsmarkierung
zeigt an, ob die Daten in dem Bestätigungsnummerfeld zulässig sind.
Die Verschiebungs- bzw.
Offsetmarkierung zeigt an, ob die begleitenden Daten an die Anwendung
im Ziel in einer beschleunigten Weise weiterzuleiten sind. Die Rücksetzmarkierung
zeigt an, ob die Verbindung zurückgesetzt
werden soll. Die Synchronisier-(SYN)Markierung wird verwendet, um
eine anfängliche Übereinstimmung
hinsichtlich der Sequenznummern zu erhalten. Die Beendigungs-(FIN) zeigt
die Markierungszeit an, ob die Quelle die Datensendung beendet hat.
-
Das
Fensterfeld umfasst Daten, die die Größe des Speicherraums anzeigen,
den das Ziel für
die Speicherung nicht bestätigter
Daten zur Verfügung hat.
Das Prüfsummenfeld
enthält
einen Prüfsummenwert,
der sowohl den Kopfbereich 422 als auch die Daten 412 abdecken
kann. Das Feld für
den wichtigen Zeiger umfasst Daten, die angeben, ob das Paket eine
höhere
Priorität
gegenüber
dem normalen Datenstrom erhalten soll.
-
In 6 umfasst
der Kopfbereich 432 ein Versionsfeld, ein Kopflängenfeld,
ein Feld für
die Art des Dienstes, ein Gesamtlängenfeld, ein Erkennungsfeld,
ein Markierungsfeld, ein Fragmentoffsetfeld, ein Lebensdauerfeld,
ein Protokollfeld, ein Kopfhilfssummenfeld, eine Quellenadresse
und eine Zieladresse. Das Versionsfeld enthält Daten, die die Version des
verwendeten Protokolls kennzeichnen. Das Kopflängenfeld umfasst Daten, die
die Länge
des Kopfbereichs 432 kennzeichnen. Das Feld für die Art der
Dienste umfasst Daten, die die Qualität des Dienstes kennzeichnen,
der an dem Datagramm durch das Netzwerk 100 geleistet werden
soll.
-
Das
Gesamtlängenfeld
umfasst Daten, die die Länge
des Datagramms (d.h. die Kopfbereiche 422 und 432 und
die Daten 412) kennzeichnet. Das Erkennungsfeld umfasst
Daten, die zum Wiederzusammenstellen eines fragmentierten Datagramms
im Ziel verwendet werden. Das Markierungsfeld umfasst eine oder
mehrere Markierungen oder Flaggen, die beispielsweise angeben, ob
das Datagramm fragmentiert ist. Das Fragmentoffsetfeld umfasst Daten, die
den Anfangspunkt in Bezug zum Beginn des ursprünglich gesendeten Pakets angeben.
-
Das
Lebensdauerfeld umfasst einen Zählerwert,
der die Anzahl an Sprüngen/Verbindungen
angibt, über
die das Paket geleitet wurde. Das Protokollfeld umfasst Daten, die
die Art des Transportprotokolls (beispielsweise Internetsteuerungsnachrichtenprotokoll
(ICMP), Internetgruppenverwaltungsprotokoll (IGMP), Übertragungssteuerungsprotokoll
oder Anwenderdatagrammprotokoll (UDP)) angibt, die an dem Datagramm
im Ziel verwendet werden soll. Das Kopfhilfssummenfeld umfasst einen
Hilfssummenwert, der den Kopfbereich 432 abdeckt. Die Quellen- und
Zieladressenfeld enthalten Adressen, etwa Internetadressen, der
Quelle und des Ziels.
-
Gemäß 7 umfasst
der Kopfbereich 442 ein Zieladressenfeld, ein Quellenadressenfeld
und ein Typ/Längencodierungsfeld.
In einer beispielhaften Ausführungsform
der vorliegenden Erfindung enthalten das Quellen- und das Zieladressenfeld
eine Ethernetadresse für
die Quelle und das Ziel. Das Typ/Längencodierungsfeld umfasst
Daten, die das Datenverbindungsprotokoll kennzeichnen, das zu Verbindung
der Quelle und des Ziels verwendet wird, und umfasst ferner Daten,
die die Länge
des Datenblocks kennzeichnen. Wie zuvor beschrieben ist, kann der
Kopfbereich 442 auch ein Prioritätsfeld enthalten, das eine
mit dem Datenblock verknüpft
Priorität
kennzeichnet. Des weiteren kann der Kopfbereich 442 eine
virtuelle Nahbereichsnetzwerk-(VLAN)Information enthalten.
-
Die
Portfilterlogik 300 erkennt die Art des Datenblocks auf
der Grundlage einer Information, die in dm Nutzdatenbereich eines
empfangenen Datenblocks enthalten ist. Es sollte beachtet werden,
dass der Nutzdatenbereich des Datenblocks die Kopfbereiche 422 und 432 und
die Daten 412 und die Endbereiche 424 und 434 (4)
enthält.
Beispielsweise kann der Nutzdatenbereich des Datenblocks Informationen
enthalten, die sich auf eine Übertragungssteuerungsprotokoll-(TCP)Sitzung
beziehen. In einer beispielhaften TCP-Sitzung kann die Datenumwandlung
zwischen zwei Gerten, etwa zwischen zwei Netzwerkstationen 110 oder
zwischen einer Netzwerkstation 110 und einem Netzwerkknoten 150,
in drei Arten von Pakete unterteilt werden: 1) Initialisierungspakete;
2) Datenpakete; und 3) Entkopplungspakete. Ein Initialisierungspaket
kann erkannt werden, wenn die SYN-Flagge bzw. Markierung des TCP-Kopfes
gesetzt ist. Anders gesagt, eine gesetzte SYN-Flagge in dem Markierungsfeld
des Kopfs 422 (4) zeigt an, dass der Nutzdatenbereich
des Pa kets mit einem Initialisieren einer Verbindung zwischen zwei
Geräten
verknüpft
ist. In einem üblichen Szenario
sendet ein Quellengerät,
etwa eine Netzwerkstation 110, zunächst ein Initialisierungspaket, das
eine Anfangssequenzzahl (ISN_CLIENT) enthält. Diese Sequenznummer kennzeichnet
die speziellen Daten in einem Datenstrom. Das Bestimmungsgerät, etwa
der Netzwerkknoten 150 sendet typischerweise ein Bestätigungspaket
zurück
zur Quelle, die die Sequenzzahl des Klienten bestätigt und
wobei die Anfangssequenzzahl des Servers (ISN_SERVER) enthalten
ist. Das Zielgerät
kann dann mit einem Paket antworten, das die Sequenzzahl des Servers
bestätigt.
-
Nachdem
diese Initialisierungspakete die Verbindung einrichten, können ein
oder mehrere Datenpakete mit der eigentlichen Datenumwandlung zwischen
den beiden Geräten
folgen. Ein Entkopplungspaket folgt auf das bzw. die Datenpakete
und kann erkannt werden, wenn die FIN-Flagge des TCP-Kopfes gesetzt
ist. Anders gesagt, eine gesetzte FIN-Flagge in dem Markierungsfeld
des Kopfes 422 zeigt an, dass die Quelle das Senden von
Daten beendet hat und tatsächlich
die TCP-Sitzung beendet.
-
Die
Portfilterlogik 300 gemäß der vorliegenden
Erfindung erkennt ein Initialisierungspaket auf der Grundlage des
Wertes der SYN-Flagge in dem Markierungsfeld des Kopfes 422.
Die Portfilterlogik 300 verwirft selektiv Initialisierungspakete,
wenn eine Überlastbedingung
auftritt, wie dies nachfolgend detaillierter beschrieben ist.
-
8 zeigt
eine beispielhafte Arbeitsweise der Multiportschalteinrichtung 180 in
einer Ausführungsform
der vorliegenden Erfindung. Die Funktion kann beim Initialisieren
des Netzwerks 100 (1) beginnen.
Es werde angenommen, dass eine Netzwerkstation 110 einen
Datenblock sendet und die Multiportschalteinrichtung 180 den
Datenblock empfängt
[Schritt 810]. Es sei beispielsweise angenommen, dass das
MAC-Modul 310 den Datenblock empfängt. In diesem Falle speichert
der Empfangs-FIFO-Puffer 310A den Datenblock [Schritt 820].
-
Die
Portfilterlogik 300 prüft
einen Bereich des empfangenen Datenblocks und bestimmt die mit dem empfangenen
Datenblock verknüpfte
Priorität
[Schritt 830]. In einer beispielhaften Ausführungsform
der vorliegenden Erfindung prüft
die Portfilterlogik 300 den Kopf des empfangenen Datenblocks
(d.h. den Kopf 442 aus 4), während der
Datenblock in dem Empfangs-FIFO-Puffer 310A gespeichert
wird.
-
Wie
zuvor beschrieben ist, kann die Portfilterlogik 300 die
Priorität
auf der Grundlage der Art des Blockes oder des Ziels des Blockes
erkennen. Beispielsweise wird einem Datenblock für eine Multimediaanwendung
oder einem Datenblock, der für eine
Verwaltungseinrichtung bestimmt ist, ein Block mit hoher Priorität zugeordnet.
Alle anderen Datenblöcke
können
als Blöcke
mit geringer oder normaler Priorität vorgesehen sein. Alternativ
kann die Portfilterlogik 300 die Priorität auf der
Grundlage anderer Kriterien, etwa den speziellen Erfordernissen
des Anwenders, erkennen. In einer weiteren Ausführungsform erkennt die Portfilterlogik 300,
wie dies zuvor beschrieben ist, die Priorität auf der Grundlage einer Prioritätsinformation,
die mit dem Datenblock übermittelt
wird. In dieser Situation kann die Portfilterlogik 300 die
empfangene Prioritätsinformation
einer entsprechenden Prioritätsebene
zuordnen, die von der Multiportschreibstelle 180 unterstützt wird.
-
In
jedem Falle bestimmt zusätzlich
zum Erkennen der dem Datenblock zugeordneten Priorität die Portfilterlogik 300,
die Art der Daten, die in dem Nutzdatenbereich des Datenblocks enthalten
sind [Schritt 840]. Beispielsweise bestimmt die Portfilterlogik 300,
ob der Datenblock mit dem Einrichten einer neuen Verbindung mit
einem weiteren Gerät
verknüpft
ist. Wie zuvor beschrieben ist, kann der Ethernet-Block in seinem
Nutzdatenbereich einen Kopf bzw. Vorspann für ein TCP-Paket (d.h. der Kopf 422 aus 5)
beinhalten, der die entsprechenden Daten (d.h. die Daten 412 aus 4)
als ein Initialisierungspaket erkennt, das beim Initialisieren einer TCP-Sitzung,
beispielsweise die Synchronisiersequenzzahlen, beteiligt ist. In
diesem Falle wird die SYN-Flagge in dem Markierungsfeld des Kopfes 422 gesetzt.
Es sollte auch beachtet werden, dass die Bestätigungsflagge in dem Markierungsfeld
des Kopfs 422 auch gesetzt wird, wenn das Paket mit bestätigenden
Sequenzzahlen zwischen Geräten
verknüpft ist.
-
Es
sei angenommen, dass die Portfilterlogik 300 die Daten
als ein Initialisierungspaket erkennt (beispielsweise ist die SYN-Flagge
gesetzt). In diesem Falle bestimmt die Portfilterlogik 300 dann,
ob eine Zutrittssteuerung aktiv ist [Schritt 850]. In einer beispielhaften
Ausführungsform
bestimmt die Portfilterlogik 300, ob die Zutrittssteuerung
aktiv ist auf der Grundlage, ob ein Signal von der FBQ-Steuerlogik 320 gesetzt
ist. Es sei beispielsweise angenommen, dass die FBQ-Steuerlogik 320 erkennt,
dass die Anzahl verfügbarer
Blockzeiger in der FBQ 330 unter einem ersten Füllstand
liegt. In diesem Falle sendet die FBQ-Steuerlogik 320 ein Zutrittaktivierungssignal, etwa
ADMISSIO_CONTROL_LOW bzw. „Zu trittsteuerung
tiefpegelig", zu
der Portfilterlogik 300. Dieses kann anzeigen, dass die
Portfilterlogik 300 eine Zutrittssteuerungsprozedur an
den ausgewählten
Datenblöcken
mit geringer Priorität
ausführen
soll.
-
Wenn
die Zutrittssteuerung nicht aktiviert wird, verarbeitet die Multiportschalteinrichtung 180 den
Datenblock [Schritt 860]. D.h., in dem obigen Beispiel
greift die Wartereihenlogik 310B auf die FBQ 330 zu,
um einen Blockzeiger zu erhalten, der eine Position in dem externen
Speicher 170 kennzeichnet, und übermittelt den Datenblock,
der in dem Empfangs-FIFO-Puffer 310A gespeichert
ist, und den Blockzeiger zu der externen Speicherschnittstelle 265.
Die externe Speicherschnittstelle 265 übermittelt dann den Datenblock
zu der Stelle in dem externen Speicher 170, der durch den
Blockzeiger angegeben ist. Die Multiportschalteinrichtung 180 verarbeitet
dann die Datenblock, um die Blockweiterleitungsinformation zu erzeugen,
den Datenblock von dem externen Speicher 170 abzurufen
und den Datenblock zu seinem beabsichtigten Ziel oder Zielen weiterzuleiten.
-
Wenn
die Portfilterlogik 300 bestimmt, dass die Zutrittssteuerung
aktiviert ist, bestimmt die Portfilterlogik 300, ob der
Datenblock zu verwerfen ist [Schritt 870]. In einer beispielhaften
Ausführungsform der
vorliegenden Erfindung bestimmt die Portfilterlogik 300,
ob der Datenblock zu verwerfen ist, auf der Grundlage der Priorität das Datenblocks
und der erkannten Datenart, die in den Nutzdaten des Datenblocks
enthalten ist. Wenn beispielsweise die Portfilterlogik 300 einen
Datenblock mit geringer Priorität erkennt
und die Rücktrittssteuerung
für Blöcke mit geringer
Priorität
aktiviert ist, verwirft die Portfilterlogik 300 Blöcke, die
Initialisierungspakete enthalten. Durch Verwerfen der Initialisierungspakete
ermöglicht
die Multiportschalteinrichtung 180, dass Datenübertragen,
die mit „früheren" TCP-Sitzungen verknüpft sind
(d.h. mit einer Sitzung, in der der Initialisierungsbereich der
TCB-Sitzung bereits abgeschlossen ist) abgeschlossen werden, ohne
dass diese Datenumwandlungen verworfen werden.
-
Wenn
die Überlastungsbedingung
für eine vorbestimmte
Zeitdauer weiterbesteht (d.h. die FBQ 330 bleibt unter
dem ersten Füllstand),
verwirft die Multiportschalteinrichtung 180 alle Datenblöcke mit geringer
Priorität.
Dadurch, dass die Initialisierungspakete zuerst verworfen werden,
kann die Multiportschalteinrichtung 180 in selektiver Weise
früheren TCB-Sitzungen eine höhere Wahrscheinlichkeit
verleihen, diese abzuschließen.
Da ferner das Initialisierungspaket verworfen wird, sendet das Zielgerät kein Bestätigungsinitialisierungs paket
zurück
zu der Quelle über
die Multiportschalteinrichtung 180, und das Quellengerät sendet
das Bestätigungsinitialisierungspaket
nicht zurück
zu dem Zielgerät.
Dies hilft weiter bei der Reduzierung der Überlastsituation an der Multiportschalteinrichtung 180.
-
In
alternativen Ausführungsformen
bestimmt die Portfilterlogik 300, dass Datenblöcke mit
andern Prioritäten
zu verwerfen sind, wenn die Zutrittssteuerung aktiviert ist, auf
der Grundlage von Anwendererfordernissen. Beispielsweise sei angenommen,
dass die FBQ-Steuerlogik 320 bestimmt,
dass die Anzahl verfügbarer
Blockzeiger in der FBQ 330 unter einer zweiten Füllstandsmarke
ist. In diesem Falle kann die FBQ-Steuerlogik 320 ein Zutrittssteuerungsaktivierungssignal,
etwa ADMISSION_CONTROL_HIGH bzw. „Zutrittssteuerung-hochpegelig", zu der Portfilterlogik 300 senden.
Dieses zeigt an, dass die Portfilterlogik 300 alle Datenblöcke mit
geringer Priorität und
ausgewählte
Blöcke
mit hoher Priorität
verwerfen soll. D.h., die Portfilterlogik 300 erkennt die
Art der Daten, die in dem Nutzdatenbereich des Datenblocks enthalten
sind [Schritt 840] und bestimmt dann, ob der Datenblock
mit hoher Priorität
zu verwerfen ist [Schritt 870]. Wenn beispielsweise der
Datenblock mit hoher Priorität
als ein ein Initialisierungspaket enthaltender Block erkannt wird,
verwirft die Multiportschalteinrichtung 180 den Datenblock.
Die Multiportschalteinrichtung 180 kann jedoch andere Datenpakete
als die Initialisierungspakete bearbeiten, um eine bestehende TCB-Sitzung
abschließen zu
können.
Wie zuvor beschrieben ist, kann durch Verwerfen von Initialisierungspaketen
die Multiportschalteinrichtung 180 den Datenverkehr auf
dem Netzwerk weiter reduzieren, da Bestätigungspakete und andere Pakete,
die mit dem Einrichten der PCB-Sitzung verknüpft sind, nicht gesendet werden. Wenn
die Überlastbedingung
weiter besteht, kann wiederum die Portfilterlogik 300 alle
empfangenen Datenblöcke
einschließlich
von Datenblöcken
mit hoher Priorität
verwerfen.
-
Zusammengefasst
gilt: Die Portfilterlogik 300 kann entscheiden, Datenblöcke auf
der Grundlage des Status der FBQ 330 und der Art der Daten,
die in dem Datenblock enthalten sind, zu verwerfen. Die Portfilterlogik 300 ist
ausgebildet, einen Teil oder den gesamten Datenblock zu prüfen, um
die Art des Datenpaketes zu bestimmen. D.h., in dem obigen Beispiel
ist die Portfilterlogik 300 ausgebildet, den Status eines
oder mehrerer der Markierungen bzw. Flaggen in dem Kopf 422 zu
erkennen, um die Art eines Datenpakets zu bestimmen.
-
Wenn
die Portfilterlogik 300 entscheidet, den Datenblock zu
verwerfen, sendet die Portfilterlogik 300 ein Signal zu
dem entsprechenden MAC-Modul, das den Datenblock empfangen hat [Schritt 880].
In dem obigen Beispiel sendet die Portfilterlogik 300 ein Signal
zu dem MAC-Modul 310, das angibt, dass der Datenblock zu
verwerfen ist. In einer beispielhaften Ausführungsform sendet die Portfilterlogik 300 ein
Signal zu dem MAC-Modul, das anzeigt, dass der Datenblock "fehlerhaft" ist (d.h. ein nicht
vollständiger Datenblock
oder ein Datenblock, der einen Fehler enthält), obwohl der Datenblock
eigentlich nicht fehlerhaft ist. Dazu ist das MAC-Modul ausgebildet
zu erkennen, dass ein fehlerhafter Block zu verwerfen ist. Dies
vereinfacht vorteilhafterweise die Logikschaltung der MAC-Module,
da das MAC-Modul
bereits ausgebildet ist, als fehlerhaft erkannte Blöcke zu verwerfen.
Alternativ kann die Portfilterlogik 300 ein anderes Signal
(beispielsweise DROP_FRAME bzw. „Block verwerfen") zu senden, das
angibt, dass der Datenblock zu verwerfen ist.
-
In
jedem Falle empfängt
das MAC-Modul 310 das Signal von der Portfilterlogik 300 und
verwirft den Datenblock [Schritt 890]. In diesem Falle
löscht die
Wartereihenlogik 310B den Datenblock aus dem Empfangs-FIFO-Puffer 310A.
Vorteilhafterweise wird der Datenblock im „Eingangsbereich" der Multiportschaltquelle 180 verworfen
(d.h. früh
in der Verarbeitung), ohne dass merkliche Mengen an Ressourcen der
Multiportschalteinrichtung 180 verwendet werden. Beispielsweise
erhält
die Wartereihenlogik 310B keinen Blockzeiger von der FBQ 330 und
leitet den Datenblock nicht zu der externen Speicherschnittstelle 256 weiter.
Dies spart beträchtlich
an Bearbeitungszeit, die mit dem Erhalten eines Blockzeigers und
dem Zurückgeben
des Blockzeigers zu der FBQ 330 verknüpft ist. Anders gesagt, die
Multiportschalteinrichtung 180 unterbricht die gesamte
Verarbeitung, die mit dem Weiterleiten dieses speziellen Datenblocks
zu seinem beabsichtigten Ziel verknüpft ist.
-
Es
ist eine Vorrichtung und ein Verfahren zum Ausführen einer selektiven Zutrittssteuerung
in einer Netzwerkeinrichtung beschrieben. Ein Vorteil der vorliegenden
Erfindung besteht darin, dass die Multiportschalteinrichtung 180 selektiv
Datenblöcke verwerfen
kann, wenn die Zutrittssteuerung aktiviert ist. Ein weiterer Vorteil
der vorliegenden Erfindung besteht darin, dass die Multiportschalteinrichtung 180 Blöcke verwirft,
die mit der Initialisierung einer Verbindung zwischen zwei Gerten
verknüpft
sind, wodurch die Wahrscheinlichkeit eines Abschlusses früherer Sitzungen
erhöht
ist. Ein weiterer Vorteil der vorliegenden Erfindung besteht darin,
dass die Multiportschalteinrichtung 180 bestimmt, ob ein
empfangener Datenblock relativ früh in der Bearbeitung des Datenblocks
zu verwerfen ist. Dies ermög licht
es der Multiportschalteinrichtung eine Verschwendung von Ressourcen
für einen
Datenblock zu vermeiden, der später
verworfen wird, wodurch der Gesamtdatendurchsatz verbessert wird.
-
Es
sind lediglich die bevorzugten Ausführungsformen der Erfindung
und einige wenige Beispiele für
die Vielseitigkeit der vorliegenden Offenbarung gezeigt und beschrieben.
Selbstverständlich kann
die Erfindung in diversen anderen Kombinationen und Zusammensetzungen
praktiziert werden und kann Modifizierungen unterliegen, die innerhalb des
Schutzbereichs des erfindungsgemäßen Konzepts
liegen, wie es hierin zum Ausdruck gebracht ist.
-
Beispielsweise
wurde die vorliegende Erfindung hauptsächlich im Zusammenhang mit
dem Verwerfen von Datenblöcken
auf der Grundlage darauf beschrieben, ob der Datenblock ein Initialisierungspaket
enthält,
das mit einer TCP-Sitzung zwischen zwei Geräten verknüpft ist. Die vorliegende Erfindung kann
auch in Fällen
eingesetzt werden, in denen andere Kriterien verwendet werden, um
zu bestimmen, ob Datenblöcke
zu verwerfen sind. D.h. die Portfilterlogik 300 kann ausgebildet
sein, eine andere Bedingung zu erkennen, die mit dem Nutzdatenbereich
des Datenblocks verknüpft
ist, und kann den Datenblock auf der Grundlage von Anwendererfordernissen
verwerfen.
-
Ferner
ist die vorliegende Erfindung in Verbindung mit dem Bestimmen einer
Priorität,
die mit dem Datenblock verknüpft
ist, und mit dem Entscheiden, ob der Datenblock zu verwerfen ist,
auf der Grundlage der Priorität
des Datenblocks und ob der Datenblock ein Initialisierungspaket
enthält,
beschrieben. Die vorliegende Erfindung kann auch in Situationen
eingesetzt werden, in denen die Priorität des Datenblocks nicht verwendet
wird, um zu bestimmen, ob der Datenblock zu verwerfen ist. D.h.,
die Portfilterlogik 300 kann bestimmen, ob ein Datenblock
zu verwerfen ist, auf der Grundlage, ob der Datenblock ein Initialisierungspaket
enthält
und auf der Grundlage der Verfügbarkeit
von Blockzeigern in der FBQ 330, unabhängig von einer mit dem Datenblock zusammenhängenden
Priorität.
-
Schließlich wurde
die vorliegende Erfindung im Wesentlichen in Bezug zu einer ersten
und einer zweiten Füllstandsmarke
in der FBQ 330 beschrieben, die den Schwellwerten für die Zutrittssteuerung mit
geringer und hoher Priorität
entsprechen. Es sollte jedoch beachtet werden, dass die vorliegende
Erfindung auch in Fällen
eingesetzt werden kann, in denen die FBQ 330 eine beliebige
Anzahl an Füllstandsmarken
enthält,
wie dies zuvor beschrieben ist. Dabei verwirft die Multiportschalteinrichtung 180 die
Initialisierungspakete aus Datenblöcken mit einer Priorität, die der
Ebene entspricht, die in der FBQ 330 erreicht ist. Anders
ausgedrückt,
wenn die FBQ vier Füllstandsmarken
enthält
und die zweite Füllstandsmarke
Datenblöcken
mit einer geringen bis mittleren Priorität entspricht, kann die Multiportschalteinrichtung 180 Datenblöcke mit
einer geringen bis mittleren Priorität, die eine Initialisierungspaketinformation
enthalten, verwerfen.