-
TECHNISCHES GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein Computersysteme und insbesondere
ein System und ein Verfahren zur Kommunikation auf Peer-Ebene mit
einer Netzwerkschnittstellenkarte in einem Computersystem.
-
ALLGEMEINER STAND DER TECHNIK
-
In
der Jugendzeit der Datenverarbeitung waren Computersysteme selbständige Prozessoren,
mit denen Peripheriegeräte
wie etwa Displays und Drucker und Eingabegeräte verbunden waren. Jedes Computersystem
war unabhängig
und kommunizierte wenig mit anderen Computersystemen. Heutzutage
ist jedoch wohlbekannt, daß die
Verbindung von Computersystemen in Computernetzwerken, wie zum Beispiel
lokalen Netzwerken oder großflächigen Netzwerken,
das gemeinsame Benutzen von Daten, Diensten und Betriebsmitteln,
die von den verschiedenen Computersystemen, die Teil des Netzwerks bilden,
stark verbessert.
-
Um
zwischen den verschiedenen Computersystemen auf einem Netzwerk zu
kommunizieren, wurden viele Kommunikationsprotokolle entwickelt. Einige
Beispiele für
wohlbekannte Netzwerkprotokolle sind etwa SNA (System Network Architecture), TCP/IP
(Transmission Control Protocol/Internet Protocol), NetBIOS (Network
Basic Input Output System) und IPX/SPX (Internet Packet Exchange/Sequence
Packet Exchange). Fachleute werden jeweils mit diesen Protokollen
und auch mit anderen vertraut sein.
-
Herkömmliche
Netzwerkschnittstellenkarten (NIC), die zur Zeit vertrieben werden,
bestehen aus einer Hostschnittstelle, Media-Zugangsschichtlogik und
einer physischen Schnittstelle. Das Ziel beim NIC-Entwurf ist, Netzwerkpakete
so schnell wie möglich
zu und von einem residenten Host zu transportieren, was gewöhnlich bedeutet,
die Hardware zu minimieren, durch die der Paketstrom verlaufen muß. Host-residente
Software, bestehend aus einem Netzwerktreiber, einem Transportstapel
(wobei es sich um TCP/IP handeln kann) und einer Socket-Schicht-Schnittstelle,
verarbeitet den Paketstrom bzw. -ströme zu Pufferschichttransfers,
die durch eine relativ gleichförmige
Anwendungsprogrammschnittstelle („API") Anwendungen vorgelegt werden. In einer
Unix/Linux-Umgebung wird die API gewöhnlich als „Socket" bezeichnet. In einer Umgebung von Windows®NT/2000
ist die API als „Winsock 2" realisiert. Es sind
andere Schnittstellenschichten möglich,
wie zum Beispiel die TDI-Schnittstellenschicht für Kernel-Zugang in Windows NT. Es sollte jedoch
beachtet werden, daß alle
diese Schnittstellenpunkte an der obersten Position des Transportstapels
auftreten.
-
Einrichtungen
in einem Computersystem, die mit dem Netzwerk kommunizieren möchten, führen dies
zur Zeit auf der Socket-Schicht durch. Wenn zum Beispiel ein RAID-Controller
(Redundant Array of Independant Disks) in dem System vorliegt, führen Netzwerkdateisystemanforderungen
zu Aktivität
in dem Host, diese Anforderungen zu versorgen. Aus dem RAID-Controller
gelesene Datenträger-E/A-Blöcke werden
zuerst in den Hauptspeicher des Computersystems transferiert und
von dort aus durch eine API zu dem Transportstapel. Im Transportstapel
werden die Blöcke
in das gewählte
Protokoll eingekapselt und zur Übertragung
als ein oder mehrere IP-Pakete zu der NIC transferiert.
-
Wie
bereits erwähnt,
ist es wichtig, zu bemerken, daß alle
diese Schnittstellenpunkte an der obersten Position des Transportstapels
auftreten. Deshalb sollte aus der obigen Besprechung ersichtlich
sein, daß alle
Daten zweimal den E/A-Bus des Systems durchlaufen, und diese verschwenderische Datenbewegung
wird deshalb zu einem starken Engpaß für den Netzwerkdurchsatz.
-
Um
die Datentransferraten zu beschleunigen, schlugen vorbekannte Lösungen vor,
daß der Transportstapel
auf die Ebene eines Mezzanin-Busses in dem Computersystem verlagert
wird. Dies erfordert die Verwendung von Coprozessoren, die sich auf
der NIC selbst befinden (gewöhnlich
als „Intelligente
Prozessoren" bekannt),
um den TCP/IP-Stapel auszuführen.
Leider haben sich intelligente Prozessoren als kostspielig erwiesen
und haben manchmal tatsächlich
den Netzwerkdurchsatz vermindert.
-
Es
wird folglich in der Technik ein Verfahren benötigt, um den Netzwerkdurchsatz
zuverlässig
zu vergrößern, ohne
die Kosten des Computersystems als Ganzes wesentlich zu vergrößern.
-
Aus
US-A-5 657 390 ist ein Computerprogrammprodukt bekannt, umfassend:
ein computerbenutzbares Medium mit darin realisierten computerlesbaren
Programmcodemitteln zum Verschlüsseln
und Entschlüsseln
von Informationen, die über
ein Netzwerk zwischen einem in einem Client-Computer ausgeführten Client-Anwendungsprogramm
und einem in einem Server-Computer ausgeführten Server-Anwendungsprogramm
transferiert werden, wobei die computerlesbaren Programmcodemittel
in dem Computerprogrammprodukt folgendes umfassen: computerlesbare
Programmcodemittel zum Bereitstellen einer Socket-Anwendungsprogrammschnittstelle
für ein
Anwendungsschichtprogramm; computerlesbare Programmcodemittel zum
Bereitstellen verschlüsselter
Informationen für
Transportprotokollschichtdienste; computerlesbare Programmcodemittel
zum Verschlüsseln
von aus einem Anwendungsschichtprogramm empfangenen Informationen;
und computerlesbare Programmcodemittel zum Entschlüsseln von aus
Transportprotokollschichtdiensten empfangenen Informationen.
-
Aus
US-A-5 674 003 ist eine Transportschnittstelle auf Socket-Basis
bekannt, mit der man Kommunikationskanäle zwischen abgesetzten Computern über ein
verbindungsorientiertes Fernsprechnetzwerk herstellen kann. An jedem
Endpunkt werden mehrere Sockets erzeugt, jeweils einen für jede Art
von Datenstrom, die zwischen den Computern transferiert werden soll.
Die Sockets werden zu einer Gruppe gruppiert, um dem Computertransportdienstanbieter
anzuzeigen, daß die
Datenströme
aus den Sockets dieselbe Fernsprechverbindung benutzen können, und
es wird eine Dienstqualitätsspezifikation
mit der Socket-Gruppe assoziiert, so daß die Fernsprechverbindung
gemäß den Anforderungen der
Socket-Gruppe hergestellt werden kann. Wenn ein neuer Datenstrom
gesendet werden muß und
bereits eine Fernsprechverbindung hergestellt ist, wird ein neuer
Socket erzeugt und zu der existierenden Socket-Gruppe hinzugefügt. Wenn
der neu hinzugefügte
Socket signifikant die Dienstqualitätsanforderungen der Socket-Gruppe
beeinflußt,
kann eine neue Dienstqualität
mit dem Fernsprechnetzwerk ausgehandelt werden.
-
Aus
EP-A-0 381 265 sind ein System und ein Verfahren bekannt, die automatisch
eine Verbindung zwischen Datenverarbeitungssystemen in unterschiedlichen
Netzwerkdomänen
routen. Als ein Beispiel kann eine Anwendung, die auf einem Datenverarbeitungssystem
ausgeführt
wird, das eine Netzwerkdomäne
wie zum Beispiel TCP verwendet, automatisch unter Verwendung einer
anderen Netzwerkdomäne,
wie zum Beispiel SNA, eine Verbindung zu einem anderen Datenverarbeitungssystem
herstellen. Die Verbindung wird automatisch in der Schicht durchgeführt, die
die Kommunikationsendpunktobjekte enthält. Bei einer bevorzugten Ausführungsform wird
die Verbindung automatisch in der Socket-Schicht des AIX-Betriebssystems
oder in der Socket-Schicht anderer Betriebssysteme auf der Basis
der Berkeley-Version des Betriebssystems UNIX durchgeführt.
-
Kurzfassung der Erfindung
-
Ein
System und ein Verfahren gemäß der Erfindung
werden in den unabhängigen
Ansprüchen dargelegt.
Bevorzugte Formen werden in den abhängigen Ansprüchen dargelegt.
-
Um
die oben beschriebenen Unzulänglichkeiten
des Stands der Technik zu behandeln, stellt die vorliegende Erfindung
zur Verwendung in einem Computersystem mit einem an eine erste und
eine zweite Einrichtung und an Netzwerkschnittstellenschaltkreise
angekoppelten Bus ein System und ein Verfahren bereit, wodurch eine
der ersten und der zweiten Einrichtung über die Netzwerkschnittstellenschaltkreise
mit einem Computernetzwerk kommunizieren kann, und ein Computersystem,
das das System oder das Verfahren umfaßt. Bei einer Ausführungsform
enthält
das System folgendes: (1) zwischen den Bus und die Netzwerkschnittstellenschaltkreise
geschaltete Transportstapelschaltkreise, die Socket-Schicht-Zugang
zu den Netzwerkschnittstellenschaltkreisen über den Bus bereitstellen,
und (2) mit den Transportstapelschaltkreisen assoziierte Kanalsteuerschaltkreise,
die eindeutige Kanäle
zum Ermöglichen
von Peer-to-Peer-Socket-Schicht-Zugang zwischen
der ersten und der zweiten Einrichtung und den Transportschnittstellenschaltkreisen
in dem Computersystem herstellen.
-
Die
vorliegende Erfindung führt
deshalb das allgemeine Konzept ein, kanalisierten Zugang zu Socket-Schicht-Netzwerkschnittstellenhardware
bereitzustellen, um es mehreren Einrichtungen in einem Computersystem
zu erlauben, über
die Schnittstellenhardware mit einem Computernetzwerk zu kommunizieren.
Dadurch kann Peer-to-Peer-Kommunikation
in dem Computersystem stattfinden, wobei andernfalls dazwischentretende
Einrichtungen (wie zum Beispiel Hosts und weitere Busbandbreite)
für andere
Aufgaben befreit werden.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung befinden sich die Netzwerkschnittstellenschaltkreise
auf einer entfernbar in dem Computersystem gekoppelten NIC und werden
aus der folgenden Gruppe ausgewählt:
(1) Netzwerkschnittstellenschaltkreise des Typs 10Base-T, (2) Netzwerkschnittstellenschaltkreise
des Typs 10/100Base-T, (3) Netzwerkschnittstellenschaltkreise des
Typs 100Base-T, (4) optische Netzwerkschnittstellenschaltkreise
des Typs OC-12, (5) optische Netzwerkschnittstellenschaltkreise
des Typs OC-48, (6) optische Netzwerkschnittstellenschaltkreise
des Typs OC-192, (7) optische Netzwerkschnittstellenschaltkreise
des Typs Gigabit Ethernet® und (8) Netzwerkschnittstellenschaltkreise
des Typs Token Ring®. Für Fachleute auf dem relevanten
Gebiet ist jedoch erkennbar, daß die
vorliegende Erfindung vorteilhafterweise mit jeder beliebigen herkömmlichen
oder später
entwickelten Technologie der Strecken oder physischen Schnittstellen betreibbar
ist.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung befinden sich die Transportstapelschaltkreise
auf einer entfernbar in dem Computersystem gekoppelten NIC. Bei
einer verwandten Ausführungsform
der vorliegenden Erfindung befinden sich die Kanalsteuerschaltkreise
auf einer entfernbar in dem Computersystem gekoppelten NIC. Bei
einer noch darzustellenden und zu beschreibenden Ausführungsform
befinden sich die Transportstapelschaltkreise und die Kanalsteuerschaltkreise
beide auf der NIC.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung umfassen die Transportstapelschaltkreise einen
TCP/IP-Stapel. Jeder
Protokollstapel, der zwischen der Socket-Schicht und der physischen Schicht (Netzwerkschnittstellenschaltkreise)
existieren kann, liegt jedoch in dem allgemeinen Schutzumfang der
vorliegenden Erfindung.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung ist die erste Einrichtung einer Hosteinrichtung
für den
Bus. Die Hosteinrichtung kann zum Beispiel ein Prozessor des Computersystems
sein.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung ist die zweite Einrichtung ein Datenträger-Controller
des Computersystems. Ein Datenträger
oder ein Datenträger-Array
kann somit direkt über die
Netzwerkschnittstellenschaltkreise mit einem Computernetzwerk kommunizieren,
ohne den Prozessor oder Speicher des Computersystems zu engagieren.
Alle Einrichtungen, die Teil eines herkömmlichen oder später entwickelten
Computersystems bilden können,
liegen natürlich
in dem allgemeinen Schutzumfang der vorliegenden Erfindung.
-
Es
wurden relativ allgemein bevorzugte und alternative Merkmale der
vorliegenden Erfindung skizziert, damit Fachleute die folgende ausführliche Beschreibung
der Erfindung besser verstehen können.
Im folgenden werden zusätzliche
Merkmale der Erfindung beschrieben, die den Gegenstand der Ansprüche der
Erfindung bilden. Für
Fachleute ist erkennbar, daß sie
ohne weiteres die offengelegte Konzeption und spezifische Ausführungsform
als Grundlage für
den Entwurf oder das Modifizieren anderer Strukturen zur Ausführung derselben
Zwecke der vorliegenden Erfindung verwenden können.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Für ein vollständigeres
Verständnis
der vorliegenden Erfindung wird nun auf die folgenden Beschreibungen
in Verbindung mit den beigefügten Zeichnungen
Bezug genommen. Es zeigen:
-
1 ein
Computernetzwerk, das in Verbindung mit dem System oder Verfahren
der vorliegenden Erfindung operieren kann;
-
2 eine
mit dem Computernetzwerk von 1 verwendbare
NIC, die das System oder Verfahren der vorliegenden Erfindung umfassen
kann;
-
3 ein
beispielhaftes OSI-Modell (Open Systems Interconnect) mit sieben
Schichten, mit dem man eine gemäß den Prinzipien
der vorliegenden Erfindung konstruierte Netzwerkkommunikationsschnittstelle
beschreiben kann;
-
4 einen
gemäß einer
Ausführungsform der
vorliegenden Erfindung konstruierten Kanalvermittlungsmechanismus;
-
5 ein
Flußdiagramm
eines Datenflusses durch ein Netzwerk in der Umgebung eines Servers gemäß dem Stand
der Technik; und
-
6 ein
Flußdiagramm
eines Datenflusses durch ein Netzwerk in der Umgebung eines Servers gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Unter
anfänglicher
Bezugnahme auf 1 ist ein Computernetzwerk 100 dargestellt,
das das System oder ein Verfahren der vorliegenden Erfindung umfassen
kann. Das in 1 dargestellte Netzwerk 100 ist
ein lokales Netzwerk („LAN"), aber die vorliegende
Erfindung ist auf keinerlei Weise auf LAN beschränkt. Wie der Name „LAN" sagt, sind Computer
in dem Netzwerk lokal (d.h. in einem Zimmer oder Gebäude) vernetzt,
so daß verschiedene
Arten von Daten zwischen einzelnen Computern ausgetauscht werden
können.
-
In
dem Netzwerk 100 befinden sich Computer 105, 110, 115, 120, 125.
Die Computer 105, 110, 115, 120, 125 stellen
Benutzern Schnittstellen bereit, sowie möglicherweise rein lokale Anwendungen
für einzelne Benutzer.
Das Netzwerk 100 ist als ein Netzwerk des Typs 10Base-T
dargestellt, aber die vorliegende Erfindung ist auf keinerlei Weise
auf eine bestimmte Topologie von Medienzugangssteuerung/physischer
Schicht beschränkt.
-
Mit
den Computern 105, 110, 115, 120, 125 ist
ein Server 130 verbunden. Der Server 130 verwaltet
den Verkehrsfluß in
dem Netzwerk 100. Außerdem
verwaltet der Server 130 alle Daten in einem zentralen
Speichersystem 140 zur Verwendung durch die Benutzer der
Computer 105, 110, 115, 120, 125.
Das zentrale Speicherungssystem 140 kann ein durch eine
RAID-Steuerung gesteuertes
RAID sein.
-
Nunmehr
mit Bezug auf 2 ist eine mit dem Computernetzwerk 100 von 1 verwendbare NIC 200 dargestellt,
die das System oder Verfahren der vorliegenden Erfindung umfassen
kann. Die NIC 200 ist mit einem der Computer 105, 110, 115, 120, 125 verbunden,
um die Computer 105, 110, 115, 120, 125 mit
dem Netzwerk 100 von 1 zu verbinden. Die
NIC 200 enthält
eine Busschnittstelle 210, die direkt an einen Computer
angeschlossen ist (vielleicht einen Computer 240, der beispielsweise
einen der Computer 105, 110, 115, 120, 125 in 1 repräsentiert).
Die NIC 200 enthält
außerdem
einen Eingabe-/Ausgabechip 220, der zwischen einem der
Computer 105, 110, 115, 120, 125 und
dem Netzwerk weiterzuleitende Daten codiert und decodiert.
-
Der
Eingabe-/Ausgabechip 220 ist mit einem Puffer 225 assoziiert.
Der Puffer 225 besitzt Speicher, dem die Aufgabe gegeben
wird, vorübergehend Informationen
zum Zwecke des Wartens, bis die Zieleinrichtung in der Lage ist,
Daten zu empfangen, zu halten. Wenn der Server 130 um einige
wenige Millisekunden verzögert
wird, bevor er Daten akzeptieren kann, hält deshalb der Puffer 225 die
Daten, bis der Server 130 sie annehmen kann.
-
Als
letztes enthält
die NIC 200 eine Netzwerkschnittstelle 230. Die
Netzwerkschnittstelle 230 ist der Ort, an dem die NIC direkt
an das Netzwerk 100 von 1 angeschlossen
werden kann.
-
Nunmehr
mit Bezug auf 3 ist ein beispielhaftes OSI-Modell
(Open Systems Interconnect) mit sieben Schichten dargestellt, mit
dem man eine gemäß den Prinzipien
der vorliegenden Erfindung konstruierte Netzwerkkommunikationsschnittstelle beschreiben
kann. Fachleute werden mit dem OSI-Modell als Beschreibung der Schnittstelle
zwischen einem Hostsystem und dem Netzwerk vertraut sein. Das OSI-Modell
ist eine der am besten bekannten theoretischen Beschreibungen der
Netzwerkkommunikation, obwohl viele Kommunikationsimplementierungen
einzelne oder mehrere der OSI-Schichten kombinieren oder weglassen.
Eine physische Schicht 370 ist die unterste Schicht und tritt
direkt mit dem Netzwerk in Wechselwirkung. Die physische Schicht 370 enthält die tatsächliche
Bitstromübertragung über die
physischen Verbindungen zu dem Netzwerk hinweg.
-
Die
zweite Schicht ist eine Datenstreckenschicht 360, die Multiplexen
und Framing des Stroms der physischen Schicht zu Nachrichten bereitstellt. Die
Datenstreckenschicht 360 stellt außerdem Fehlerdetektion, Synchronisationsinformationen
und physische Kanalverwaltung bereit.
-
Die
dritte Schicht ist eine Netzwerkschicht 350, die das Routen
von Informationen durch das Netzwerk steuert. Dienste wie etwa Adressierung, Netzwerkinitialisierung,
Vermittlung, Segmentierung und Formatierung werden in der Netzwerkschicht 350 bereitgestellt.
Bestätigung
der Datenablieferung wird entweder in der Netzwerkschicht 350 oder
in der Datenstreckenschicht 360 erzielt.
-
Die
vierte Schicht ist eine Transportschicht 340, die transparente
Datenablieferung, Multiplexen und Abbildung steuert. Zuverlässige Ablieferung
(im Gegensatz zu so gut wie möglich
in den zugrundeliegenden physischen, Datenstrecken- und Netzwerkschichten 370, 360, 350)
wird gegebenenfalls durch die Transportschicht 340 in einer
bestimmten Anwendung erzielt. Dienste wie zum Beispiel Neuübertragung
fehlender Daten, Umordnung von in der falschen Reihenfolge abgelieferten
Daten und Korrektur von Übertragungsfehlern
werden gewöhnlich
in der Transportschicht 340 erzielt.
-
Die
fünfte
Schicht ist eine Sitzungsschicht 330. Die Sitzungsschicht 330 verwendet
die Informationen aus der Transportschicht 340, um Datenelemente
zusammen als gemeinsame Aktivität
zwischen zwei Knoten in dem Netzwerk zu gruppieren, die gewöhnlich als
Sitzung bezeichnet wird.
-
Die
sechste Schicht ist eine Präsentationsschicht 320,
die die Schnittstelle zwischen der Sitzungsschicht 330 und
der obersten siebten Schicht enthält, die eine Anwendungsschicht 310 ist.
Die Präsentationsschicht 320 präsentiert
Informationen zur Verwendung in der Anwendungsschicht 310,
ohne die Integrität
der Sitzungsschicht 330 zu kompromittieren. Die Präsentationsschicht 320 stellt
Dateninterpretation und Format- und Codetransformation bereit, während die
Anwendungsschicht 310 Benutzeranwendungsschnittstellen
und Verwaltungsfunktionen bereitstellt.
-
Nunmehr
mit Bezug auf 4 ist ein Kanalvermittlungsmechanismus
mit der allgemeinen Bezeichnung 400 dargestellt, der gemäß einer
Ausführungsform
der vorliegenden Erfindung konstruiert ist. Obwohl es in 2 nicht
gezeigt ist, befindet sich der Kanalvermittlungsmechanismus 400 vorteilhafterweise
in der NIC 200.
-
Der
Kanalvermittlungsmechanismus 400 leitet Daten zu ihrem
entsprechenden Ziel, so daß Einrichtungen
außerhalb
des Servers auf einer Peer-to-Peer-Basis kommunizieren können, statt Serverbandbreite
zu verwenden. Der Kanalvermittlungsmechanismus 400 basiert
vorzugsweise auf Hardware und kann mehrere Verkehrskanäle gleichzeitig
lenken.
-
Der
Kanalvermittlungsmechanismus 400 ist als acht Eingänge 410 und
acht Ausgänge 420 enthaltend
dargestellt. Jeder Ausgang entspricht einem Kanal, einer Schnittstelle
entweder mit dem Host oder der Peer-Einrichtung. Die Netzwerkschnittstelle kann
deshalb mehrere gleichzeitige Kanäle unterstützen. Obwohl der Kanalvermittlungsmechanismus 400 nur
mit acht Kanälen
arbeiten kann, ist die vorliegende Erfindung auf keinerlei Weise
auf eine konkrete Zahl oder auch nur eine feste Zahl von Kanälen beschränkt.
-
Mit
den durch den Kanalvermittlungsmechanismus 400 zu behandelnden
Daten sind Eingangs-/Ausgangsdeskriptoren assoziiert, die dem Kanalvermittlungsmechanismus 400 Informationen darüber geben,
aus welcher Einrichtung die Daten stammen und was das Ziel der Daten
sein soll. Der Kanalvermittlungsmechanismus 400 liest und
sendet Eingangs-/Ausgangsdeskriptoren zu einer Deskriptor-Vergleichsschaltung 440.
-
Außerdem ist
in 4 eine eigene Menge von Schnittstellenregistern 430 gezeigt.
Die Menge von Schnittstellenregistern 430 enthält Informationen,
die es dem Kanalvermittlungsmechanismus 400 ermöglichen,
den Eingangs-/Ausgangsdeskriptor der ankommenden Daten mit dem entsprechenden
Kanal-Ausgang zu assoziieren, so daß sie zu dem entsprechenden
Ziel gelenkt werden können.
Die Deskriptor-Vergleichsschaltung 440 vergleicht den Eingangs-/Ausgangsdeskriptor
mit den in der eigenen Menge von Schnittstellenregistern 430 vorliegenden Werten.
Die Deskriptor-Vergleichsschaltung 440 übermittelt dann einen Wert
zu einem Controller in dem Kanalvermittlungsmechanismus 400.
Der Prozessor in dem Kanalvermittlungsmechanismus 400 verwendet
den Wert zum Senden der Daten zu ihrem beabsichtigtem Ziel. Der
Nettoeffekt dieser Verarbeitung besteht darin, daß Peer-Einrichtungen
und das Hostsystem jeweils ohne direkte Kenntnis der Ursprungseinrichtung
mit der NIC kommunizieren können;
alle relevanten Informationen befinden sich auf der NIC selbst.
-
Gemäß dieser
Ausführungsform
der vorliegenden Erfindung treten die Daten deshalb zuerst in den
Kanalvermittlungsmechanismus 400 an einem Punkt 410 ein.
Zusammen mit den Daten (vorzugsweise ihnen vorangestellt) befindet
sich ihr Eingangs-/Ausgangsdeskriptor. Der Kanalvermittlungsmechanismus 400 sendet
den Eingangs-/Ausgangsdeskriptor zu der Deskriptor-Vergleichsschaltung 440.
Wenn die Deskriptor-Vergleichsschaltung 440 den
Wert in der eigenen Menge von Schnittstellenregistern 430,
der dem gegebenen Eingangs-/Ausgangsdeskriptor entspricht, findet,
lenkt der Kanalvermittlungsmechanismus 400 die Daten dann
an einem Punkt 420 zu dem entsprechenden Ausgang.
-
Der
Punkt 420 entspricht der zweiten Einrichtung, die das Ziel
der Daten sein soll.
-
Nunmehr
mit Bezug auf 5 ist ein Flußdiagramm
mit der allgemeinen Kennzeichnung 500 dargestellt, das
den Datenfluß durch
ein Netzwerk in der Umgebung eines Servers gemäß dem Stand der Technik angibt.
In diesem Diagramm erfolgt der Datenfluß von einer ersten Einrichtung
zu einer zweiten Einrichtung, die beide mit einem Server verbunden sind.
Die erste und die zweite Einrichtung können Computer, Drucker, einzelne
Laufwerke, Rate-Controller oder beliebige Einrichtungen sein, die
mittels eines Netzwerks und Servers miteinander verbunden werden
können.
-
In
einem Schritt 505 verlassen die in einen oder mehrere Rahmen
eingekapselten Daten das Netzwerk und treten in die NIC des Servers
ein. Als nächstes
(in einem Schritt 510) werden die Daten, von denen in der
NIC die Rahmenkopfteile entfernt wurden und die nun in Paketform
vorliegen, über
den Bus des Servers zu dem Prozessor des Servers geleitet. Die Datenpakete
werden durch einen NIC-Softwaretreiber (in einem Schritt 515)
verarbeitet und gemäß einem
in Software realisierten TCP/IP-Protokoll interpretiert (in einem
Schritt 520). Die Daten werden aus ihren Paketen extrahiert
und erreichen an diesem Punkt die Socket-Schicht (in einem Schritt 525) und
werden in einem Puffer abgelegt. Die Anwendung, für die die
Daten bestimmt sind, liest nun die Daten über die Socket-Schicht (in
einem Schritt 530) aus dem Puffer und verarbeitet sie entsprechend
(in einem Schritt 535).
-
Vorausgesetzt,
daß die
Anwendung nun Daten an das Netzwerk zurückgeben möchte, ist es nun erforderlich,
die Daten über
die Socket-Schicht (in einem Schritt 540) in einen Puffer
zu schreiben. Die Daten verlassen dann die Socket-Schicht (in einem Schritt 545)
und werden gemäß TCT/IP
(in einem Schritt 550) interpretiert, um Pakete zu ergeben.
Die Pakete werden als abgehende Daten (in einem Schritt 555)
durch den NIC-Treiber verarbeitet, werden über den Bus des Servers zu
der NIC geleitet (in einem Schritt 560) und (in einem Schritt 565)
in der NIC geframt und zu dem Netzwerk transferiert. Es ist ersichtlich,
daß dies
ein langer und potentiell betriebsmittelbedürftiger Prozeß ist.
-
Nunmehr
mit Bezug auf 6 ist ein Flußdiagramm
mit der allgemeinen Kennzeichnung 600 gezeigt, das den
Datenfluß durch
ein Netzwerk in der Umgebung eines Servers gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt. Der mit Bezug auf die obige 5 beschriebene
Datenfluß steht stark
im Gegensatz zu dem mit Bezug auf 6 beschriebenen.
Datenrahmen treten in einem Anfangsschritt 610 in die NIC
des Servers ein.
-
In
einem Schritt 620 werden von den Datenrahmen ihre Rahmenkopfteile
entfernt, sie werden gemäß TCP/IP
interpretiert und treten als Nutzinformationen (immer noch innerhalb
der NIC) in die Socket-Schicht ein. In einem Schritt 630 lenken
Kanalschaltkreise in der NIC dann die Daten zu einem entsprechenden
Kanal und letztendlich zu der zweiten Einrichtung. Nur an diesem
Punkt werden die Daten über
den Bus geleitet (im Schritt 640). Wenn zum Beispiel die
zweite Einrichtung mit einem RAID-Controller assoziiert ist, treten
die (Datenträger-E/A-)daten über die
Socket-Schicht (in einem optionalen Schritt 650) in den
RAID-Controller ein. Zu keinem Zeitpunkt müssen die Daten in die Serverhardware
eintreten. Gemäß den Prinzipien
der vorliegenden Erfindung ist der Weg, den Daten überqueren
müssen,
kürzer
und erfordert wesentlich weniger Serverbetriebsmittel als der Weg,
den der Stand der Technik bereitstellt. Tatsächlich muß bei der dargestellten Ausführungsform die
Serverhardware selbst keinerlei Operationen in Bezug auf die Übertragung
von Daten durch die NIC durchführen.
Dadurch kann der Server seine Aufmerksamkeit der Durchführung anderer
Aufgaben widmen, wie zum Beispiel Bereitstellung von Diensten für mit dem
Netzwerk verbundene Benutzer.
-
Obwohl
das Obige mit Bezug auf TCP/IP beschrieben wurde, werden Fachleute
auf dem relevanten Gebiet verstehen, daß die vorliegende Erfindung nicht
auf ein bestimmtes Protokoll beschränkt ist.
-
Der
Entwurf von Serverhardware kann auch von den Prinzipien der vorliegenden
Erfindung Nutzen ziehen. Da die Serverhardware nicht aufgefordert
wird, Netzwerkdatenübertragung
durchzuführen, kann
die Serverhardware für
andere Jobs optimiert werden, zu deren Durchführung der Server aufgefordert
werden kann.
-
Obwohl
die vorliegende Erfindung im einzelnen beschrieben wurde, ist für Fachleute
verständlich,
daß sie
verschiedene Änderungen,
Substitutionen und Modifikationen daran vornehmen können, ohne
von dem beanspruchten Schutzumfang der Erfindung abzuweichen.