-
Gebiet der
Erfindung
-
Das
Gebiet der Erfindung betrifft vernetzte Vorrichtungen und Kommunikationsprotokolle.
-
Hintergrund
der Erfindung
-
Es
ist sehr bekannt, Lagen von Kommunikationsprotokollen zu verwenden,
um Daten zwischen Vorrichtungen zu übertragen. Es ist für ein Protokoll,
das für
das Übertragen
von Daten vorgesehen ist, nicht ungewöhnlich, dass es dies durch
Hinzufügen
eines Kopfabschnittes zu den Daten durchführt, um eine Einheit zu bilden,
und dann diese Einheit auf ein weiteres Protokoll überträgt, das
im Allgemeinen als ein Protokoll eines niedrigeren Niveaus angesehen
wird. Das Hinzufügen
eines Kopfabschnittes zu der Einheit, die von einem Protokoll eines
höheren
Niveaus zur Verfügung
gestellt wird, wird oft als ein Einkapseln der Einheit bezeichnet. Soweit
ist es nicht ungewöhnlich, über Lagen
von Protokollen zu sprechen, wenn Einheiten, die durch Protokolle
eines höheren
Niveaus gebildet werden, in den Datenabschnitten von Protokollen
eines niedrigeren Niveaus eingekapselt werden. Die Einheit, die
durch eine vorgegebene Protokolllage gebildet wird, wird oft durch einen
Namen bezeichnet, der einige der Eigenschaften des Protokolls, das
die Einheit ausgebildet hat und/oder der ausgebildeten Einheit,
angeben kann. Einige der Namen umfassen "Datagramm", "Paket" und "Rahmen", sind jedoch nicht
darauf begrenzt.
-
Eine
Gruppe von Protokollen, die ausgebildet sind, um miteinander zu
kooperieren, wird oft als eine Suite bezeichnet. Eine allgemeine
Suite von Protokollen ist die TCP/IP-Suite und umfasst unter anderem
ein IP-, TCP- und UDP-Protokoll. Das Internetprotokoll (IP), das
durch IETF RFC791 definiert ist, entspricht dem Routing-Lagen-Datagramm-Dienst
(routing layer datagram service) der TCP/IP-Suite und wird von den
weiteren Protokollen innerhalb der Suite verwendet, um Rahmen von
Host zu Host zu routen. Der IP-Kopfabschnitt enthält Routing-Informationen
und Steuerinformationen, die die Auslieferung des Datagramms betreffen.
Das Benutzer-Datagramm-Protokoll
(UDP: User Datagram Protocol), das durch IETF RFC768 definiert ist,
stellt einen einfachen, jedoch unzuverlässigen Nachrichtendienst für übertragungsorientierte
Dienste zur Verfügung. Jeder
UDP-Kopfabschnitt trägt
sowohl einen Quell-Port-Identifizierer und einen Ziel-Port-Identifizierer,
die es Protokollen von hohen Niveaus ermöglichen, bestimmte Anwendungen
und Dienste zwischen Hosts anzusprechen. Das Übertragungssteuerprotokoll
(Transmission Control Protocol) (TCP), das durch IETF RFC793 definiert
ist, stellt ein zuverlässiges Übertragen
eines Datenstroms und einen virtuellen Verbindungsdienst für Anwendungen
durch die Verwendung einer sequenzierten Bestätigung mit einer Zurückübertragung
von Paketen, wenn erforderlich, zur Verfügung.
-
Der
Stand der Technik umfasst das U.S.-Patent Nr. 5,742,604, das eine
Tunneltechnik beschreibt, bei der Pakete eingekapselt werden, um
die Kommunikation zwischen Switchen eines Netzwerkes zu verbessern, und
ein europäisches
Patent Nr.
EP 0 700 231 ,
das ebenfalls eine Tunneltechnik offenbart, wobei jedoch verbindungslose
Clients und Server durch Senden von Paketen über virtuelle Schaltkreise
miteinander kommunizieren.
-
Zusammenfassung
der Erfindung
-
Der
vorliegende erfinderische Gegenstand betrifft Verfahren zum Interagieren
mit einer Zielvorrichtung mit einem ersten und davon verschiedenen
zweiten Speicherbereich über
ein Netzwerk, umfassend: Empfangen eines ersten Pakets, das (a)
eine erste Netzwerkadresse, die einem ersten Speicherbereich zugeordnet ist,
und (b) eine Adresse einer Position in dem ersten Speicherbereich
enthält;
Empfangen eines zweiten Pakets, das (a) eine zweite Netzwerkadresse,
die dem zweiten Speicherbereich zugeordnet ist, und (b) eine Adresse
einer Position in dem zweiten Speicherbereich enthält, wobei
die erste Netzwerkadresse von der zweiten Netzwerkadresse verschieden
ist, und Verwenden der ersten und zweiten Netzwerkadresse, um das erste
und zweite Paket über
das Netzwerk an den ersten bzw. zweiten Speicherbereich zu routen.
-
In
bevorzugten Ausführungsformen
erleichtern Kommunikationsprotokolle und Verfahren in vorteilhafter
Weise die Kommunikation zwischen disaggregierten Elementen, insbesondere über Peer-to-Peer-(masterlose)Netzwerke
und auch Vorrichtungen, die ausgebildet sind, um wie derartige disaggregierte
Elemente zu arbeiten. Solche Vorrichtungen implementieren im Allgemeinen
eines oder mehrere der beschriebenen Verfahren und Protokolle und
verwenden Netzwerkadressen, um entweder auf eigene Speicherbereiche
oder auf Speicherbereiche in anderen Vorrichtungen zuzugreifen.
Vielfältige
Ausführungsformen
der hierin beschriebenen Protokolle und Verfahren umfassen eine
oder mehrere einer Anzahl von einzigartigen Merkmalen. Solche Merkmale
umfassen Paket-Atomarität,
blinde ACKs, NAT-Bridging,
Sperren, Multicast-Spanning (Mehrpunkt-Übergreifen) und Spiegeln, sowie
Authentifizierung, sind jedoch nicht notwendigerweise darauf beschränkt.
-
Paket-Atomarität
-
Eine
Paket-Atomarität
für ein
Paket liegt vor, wenn ein Befehl, der in seinem Kopfabschnitt enthalten ist,
ausgeführt
werden kann, ohne dass das Paket mit einem vorangehenden oder nachfolgenden
Paket kombiniert werden muss. Ein Protokoll weist Paket-Atomarität auf, wenn
jedes Paket oder zumindest im Wesentlichen alle Pakete, die über das
Protokoll übertragen
werden, eine Paket-Atomarität
aufweist/aufweisen. Ein Protokoll mit Paket-Atomarität umfasst üblicherweise
eine Gruppe von Befehlen, wobei jeder der Befehle autonom ist und
ohne eine Annahme eines vorangehenden Zustandes ausgeführt werden
kann. In Fällen,
in denen ein Paket verwendet wird, um einen Abschnitt eines größeren Datenblocks
zu übertragen,
kann man eine Paket-Atomarität
erhalten, indem ein Identifizierer eingefügt wird, der die relative Position
der Daten in dem Paket in dem größeren Datenblock
angibt.
-
Paket-Atomarität ist wünschenswert,
da diese die Verwendung einer verbindungslosen Kommunikation zwischen
Vorrichtungen ermöglicht.
Dazu kann ein Protokoll eines höheren
Niveaus mit einer Paket-Atomarität
an der Spitze entweder einer Verbindung, die auf einem Protokoll,
wie z.B. TCP, basiert oder einem verbindungslosen Protokoll, wie
z.B. UDP, implementiert werden. Protokolle mit Paket-Atomarität können auch in
vorteilhafter Weise Merkmale von Verbindungsprotokollen eines niedrigeren
Niveaus, wie z.B. das IP-Protokoll nutzen, um Merkmale des Protokolls
mit Paket-Atomarität
einfacher zu implementieren und zu erweitern.
-
Es
ist vorgesehen, dass ein bevorzugtes Verfahren zum Erreichen einer
Paket-Atomarität darin
besteht, jeden Paketbefehl zu vermeiden, der auf einen Datenblock
ausgeführt
wird, der größer ist
als der, der in einem einzelnen Paket enthalten sein kann, und einen
eindeutigen Blockidentifizierer in dem Kopfabschnitt jedes Pakets,
das Daten betrifft, einzufügen.
Es ist auch vorgesehen, dass, wenn zwei Vorrichtungen miteinander
kommunizieren, es vorteilhaft ist, die Dateneinheit des Pakets auf
eine Größe anzupassen,
die der kleineren der zwei Blockgrößen der Vorrichtungen entspricht.
-
Es
ist vorgesehen, dass eine Begrenzung der Größen der Paketdatenblöcke, so
dass sie dem kleinsten physikalischen Block einer Vorrichtung, zu
der ein Paket gesendet wird, entspricht, zu einer Erhöhung der Gesamtleistungsfähigkeit
führt,
indem die Verarbeitungszeit in dem Ziel vermindert wird, sogar wenn
eine Erhöhung
der Paketgröße bislang
ein bevorzugtes Verfahren zum Erhöhen der Leistungsfähigkeit
des Netzwerkes war.
-
Es
ist auch vorgesehen, ein bevorzugtes Verfahren zum Kommunizieren
eines Datenblockes an eine Vorrichtung für die nachfolgende Bearbeitung
durch die Vorrichtung ein Unterteilen des Datenblocks in Unterblöcke umfassen
kann, wobei die Vorrichtung die Unterblöcke bearbeitet, ohne zunächst den
Block wieder zusammenzusetzen oder die Pakete umzuordnen.
-
Vorrichtungen,
die bevorzugte Verfahren der Kommunikation verwenden, können ein
Verfahren des Anforderns von Daten von einer zweiten Vorrichtung
verwenden, wobei die Daten in der zweiten Vorrichtung physikalisch
oder logisch in Untereinheiten unterteilt sind, und das anfordernde
Gerät nur
eine einzelne Untereinheit von der zweiten Vorrichtung anfordern
kann, indem eine Zahl, wie z.B. eine logische Blockadresse, die die
angeforderte Untereinheit identifiziert, einer Speichervorrichtung
zur Verfügung
gestellt wird, wobei die Untereinheit an das anfordernde Gerät in einem
einzigen Datenpaket übertragen
wird.
-
Blind-ACK
-
Ein
Blind-ACK ist eine inhärente
Bestätigung
des Empfangs eines Pakets. Es ist vorgesehen, dass eine Begrenzung
der Datenübertragungen
von Datenblöcken,
die in ein einziges Paket passen, und ein Einfügen eines Speicherpositions-Identifizierers,
der dem zu übertragenden
Datenblock entspricht, das Senden eines Bestätigungspakets überflüssig macht.
In bevorzugten Ausführungsformen
kann ein anforderndes Gerät eine Übertragung
starten, indem ein Paket gesendet wird, das einen geeigneten Befehl
und einen Identifizierer eines zu übertragenden Datenblockes umfasst.
Wenn das anfordernde Gerät
nachfolgend ein Übertragungspaket
empfängt,
das den Identifizierer des zu übertragenden
Datenblockes umfasst, wird nichts Weiteres durchgeführt. Wenn
jedoch, nachdem eine Time-out-Periode verstrichen ist, die anfordernde
Vorrichtung kein solches Übertragungspaket
empfangen hat, wird es einfach erneut anfragen, dass der Datenblock übertragen wird.
Daher muss die übertragende
Vorrichtung keine anderen Daten erneut übertragen, um die zusätzlichen Anfragen
zu bedienen und muss keine Bestätigung
eines Empfangs von dem anfordernden Gerät empfangen. Im Wesentlichen
dient das Fehlen des erneuten Anfragens nach Daten, die in einem
Paket enthalten sind, durch das anfordernde Gerät als eine Bestätigung,
dass das Paket empfangen worden ist.
-
NAT-Bridging
-
Bevorzugte
Ausführungsformen
unterstützen
NAT-Bridging, die Fähigkeit, über eine
NAT-(Netzwerkadressübersetzung)-Brücke zu kommunizieren,
ohne auf ein Tunnel auszuweichen. Daher ist es bevorzugt, dass ein
erstes Element ein Paket senden kann, das ein zweites Element anweist,
eine Datenübertragung
zwischen dem zweiten Element und einem dritten Element anzuregen,
wobei das zweite Element und das dritte Element durch eine Brücke, wie
z.B. eine NAT voneinander getrennt sind. Somit umfasst ein bevorzugtes
Netzwerk ein Protokoll mit einem Befehl, um zwei Peer anzuweisen, über eine
Brücke
zu kommunizieren, insbesondere, wenn die Brücke eine NAT ist. In einem
Beispiel eines bevorzugten Verfahrens kann das erste Element etwas
anderes als ein Speicherelement sein, wobei das zweite und das dritte
Element Speicherelemente (SEs) sind. Ein Senden eines geeigneten
Befehls an das zweite Element, ein SE auf der gleichen Seite eines NAT
wie das erste Element bewirkt, dass das zweite Element eine Datenübertragung
zu dem dritten Element, ein SE auf der entgegen gesetzten Seite
des NAT bezüglich
des ersten Elementes, startet. In weniger bevorzugten Ausführungsformen
kann das erste Element die IP-Adresse des zweiten Elements bei einer Übertragungsanfrage
an das dritte Element verwenden. In einem solchen Fall kann die
Antwort durch das dritte Element durch den NAT eher an das zweite
Element als zurück
an das erste Element gerichtet sein.
-
Sperren
-
Bevorzugte
Verfahren und Protokolle umfassen die Fähigkeit, bei der eine Vorrichtung,
die Daten an eine Empfangsvorrichtung überträgt, Daten sperrt, so dass das Übertragen
der Vorrichtung die Modifikation der übertragenen Daten verhindert,
bis die Empfangsvorrichtung die Daten entsperrt.
-
Multicasting (Mehrpunkt-Übertragung)
-
Das
Verwenden von Multicasting-Fähigkeiten
von Protokollen eines niedrigeren Niveaus (möglicherweise mit Modifikationen)
ermöglicht
es, eine Plattenredundanz zu implementieren, wie z.B. durch Spiegeln und
RAID-Operationen, und ein Platten-(Disc-)Spanning auf eine Weise zu unterstützen, die
für höhere Niveaus
transparent ist.
-
Authentifizierung
-
Eine
Authentifizierung stellt die Fähigkeit
zur Verfügung,
eine unzulässige
oder böswillige
Beeinträchtigung
der Kommunikation zwischen Vorrichtungen zurückzuweisen, so dass eine Empfangsvorrichtung
in absoluter Weise authentifizieren kann, dass ein bestimmtes Paket
von einer vertrauenswürdigen
Quelle kommt und nicht beschädigt
worden ist, wenn es zu der Empfangsvorrichtung weitergeleitet wird.
Es ist vorgesehen, dass die Authentifizierung insbesondere wichtig
ist, wenn Daten in einer Vorrichtung modifiziert werden, und somit
können
einige Ausführungsformen
eine Authentifizierung nur in Bezug mit Befehlen vorsehen, die eine Modifikation
der Daten bewirken.
-
Ein
bevorzugtes Verfahren zum Übertragen
von Daten an eine Zielvorrichtung mit Hilfe eingekapselter Pakete
verwendet eingekapselte Datenpakete, die einen Datenblock, einen
Identifizierer, der den Datenblock auf eine Speicherposition in
einem Speicherbereich der Zielvorrichtung abbildet und ein Token
(oder eine Gruppe von Token), die durch die Zielvorrichtung verwendet
wird, um festzustellen, ob der Befehl ausgeführt wird, umfasst. In einigen
Fällen
wird das Verfahren nur angewendet, wenn der auszuführende Befehl
einem Befehl entspricht, der bewirkt, dass die Zielvorrichtung die
Inhalte der Speicherposition mit den Inhalten des Datenblocks des
eingekapselten Pakets ersetzt. In bevorzugten Ausführungsformen
werden Speicherbereiche bestimmten Vorrichtungen zugeordnet, und
ein Befehl wird nur ausgeführt,
wenn die Quelle des Befehls der Vorrichtung, die mit einem von dem
Befehl betroffenen Speicherbereich zugeordnet ist, entspricht. In
einigen Ausführungsformen
kann die Zielvorrichtung eine Anzahl von von einer bestimmten Quelle
empfangenen Befehlen aufnehmen und das Ausführen der Befehle anhalten,
nachdem eine bestimmte Anzahl von Befehlen von dieser Quelle empfangen
worden ist.
-
Es
ist vorgesehen, dass Token abgeleitet werden können, indem eine Kombination
von mindestens einem der Folgenden verwendet wird: MAC-Adresse der
Befehlsquelle, MAC-Adresse der Zielvorrichtung, der Speichereinheit-Identifizierer
und der Speicherbereich-Identifizierer. Die Verwendung des Speichereinheit- und/oder
des Speicherbereich-Identifizierers, um das Token abzuleiten, ermöglicht es,
dass eine Zielvorrichtung überprüft, dass
jeder dieser Identifizierer nicht manipuliert worden ist, da das
Token ursprünglich
abgeleitet wurde. Das Akzeptieren eines Befehls, der von einer bestimmten
Quelle bereitgestellt wird, kann in einigen Fällen teilweise von einer Berechnung
abhängen,
die einen Schlüssel
berücksichtigt,
der zuvor von der Quelle an die Zielvorrichtung bereitgestellt wird.
-
Es
ist bevorzugt, dass das Akzeptieren eines bestimmten Tokens als
Authentifizierung der Quelle eines Befehls nicht von einer vorherigen
oder nachfolgenden Akzeptanz von weiteren Tokens abhängt und
dass ein bestimmtes Token nur einmal verwendbar ist, um eine Quelle
in der Zielvorrichtung zu authentifizieren. Es ist auch bevorzugt,
dass zu einem vorgegebenen Zeitpunkt eine Mehrzahl von Token für das Authentifizieren, dass
ein Befehl von einer bestimmten Quelle empfangen wurde, verfügbar ist.
-
Externer Zugriff
auf internen Speicher
-
Vorrichtungen,
die externe Netzwerkadressen verwenden, um auf interne Speicherbereiche (NAIS-Vorrichtungen)
zuzugreifen, sind insbesondere gut angepasst, um als Elemente einer
disaggregierten Komponente zu arbeiten. Insbesondere implementieren
bevorzugte Vorrichtungen ein segmentiertes Speichermodell, so dass
der Speicher, der durch solche Vorrichtungen bereitgestellt wird,
als in Speicherbereiche und die Speicherbereiche als in Speicherblöcke unterteilt
angesehen werden können,
wobei jeder Speicherbereich einer Netzwerkadresse zugeordnet ist,
und wobei jeder Speicherblock innerhalb eines Speicherbereichs einem
Identifizierer zugeordnet ist, der für den Speicherbereich eindeutig
ist. Netzwerkverkehr, der mit einer beliebigen momentan einem Speicherbereich
einer Vorrichtung zugeordneten Adresse adressiert wird, wird durch
die Vorrichtung aufgenommen und in geeigneter Weise verarbeitet.
Somit kann eine einzelne Netzwerkadresse verwendet werden, um sowohl
ein Paket über
ein Netzwerk an eine Vorrichtung zu routen, als auch in der Vorrichtung
an einen bestimmten Speicherbereich zu routen.
-
Bevorzugte
NAIS-Vorrichtungen haben die Fähigkeit,
Speicherbereiche zu alloziieren und sowohl einen Namen als auch
eine Netzwerkadresse jedem alloziierten Speicherbereich zuzuordnen.
In einigen Fällen ändert sich
die zugeordnete Netzwerkadresse während einer Zeitdauer, während der
Name im Wesentlichen für
einen bestimmten Speicherbereich gleich bleibt, während der
Speicherbereich alloziiert bleibt. Es ist vorgesehen, dass das Zuordnen
eines Namens zu einem beliebigen alloziierten Speicherbereich es
ermöglicht,
einen Speicherbereich zu identifizieren, sogar wenn die Netzwerkadresse,
die diesem Speicherbereich zugeordnet ist, sich geändert hat,
seitdem der Speicherbereich alloziiert wurde. In bevorzugten Netzwerken
werden Netzwerkadressen, die Speicherbereichen zugeordnet werden,
dynamisch auf eine Weise zugeordnet, die derjenigen entspricht,
die verwendet wird, um Netzwerkadressen Netzwerkschnittstellen zuzuordnen.
-
Disaggregierung
-
Die
Verfahren und Vorrichtungen, die hierin beschrieben werden, sind
insbesondere vorteilhaft, wenn die Vorrichtungen Elementen entsprechen,
die aus Komponenten, wie z.B. persönlichen Videorecordern (PVRs),
herausgenommen worden sind und mit einem Netzwerk verbunden werden,
so dass sie von mehreren Vorrichtungen gemeinsam genutzt werden
können.
In solchen Fällen
stellen die Elemente, obwohl sie nicht in einer Komponente eingebaut
sein müssen,
die Funktionalität
eines eingebauten Elements zur Verfügung. Ein „disaggregierter" PVR umfasst üblicherweise
ein Controller-Element und ein Speicherelement in dem Controller-Element,
das mit dem Speicherelement über
ein Netzwerk kommuniziert, das den Controller und die Speicherelemente
miteinander verbindet und verwendet Netzwerkadressen, um auf Daten
in einem Speicherbereich, der dem Controller-Element zugeordnet
ist, zuzugreifen.
-
Spanning (Übergreifen)
-
Es
ist vorgesehen, dass der Speicher, der von einer NAIS-Vorrichtung
bereitgestellt wird, sich mehrere NAIS-Vorrichtungen übergreifen
kann, insbesondere wenn die NAIS-Vorrichtung einer Speichervorrichtung (SD),
einer Vorrichtung, die hauptsächlich
dazu dient, Speicher für
andere Vorrichtungen zur Verfügung
zu stellen, entspricht. Als ein Beispiel kann eine erste SD, die
eine Anfrage empfängt,
Speicher für
eine Vorrichtung alloziieren, keine ausreichende Kapazität haben,
um der Anfrage nachzukommen. Wenn jedoch andere SDs verfügbare Kapazitäten zur
Benutzung aufweisen, kann die erste SD einen Speicher in einem oder
mehreren der anderen SDs alloziieren, um der Anfrage, die diese
zuvor empfangen hat, nachzukommen. In einigen Fällen wird dies dadurch durchgeführt, indem
die erste SD die anderen SDs steuert, so dass die Übertragungen, die
Daten der SDs beeinträchtigen,
immer durch die erste SD hindurchlaufen. In anderen Fällen können Multicast-Fähigkeiten
des Netzwerks verwendet werden, so dass Übertragungen durch eine der
anderen SDs laufen, ohne die erste SD zu durchlaufen.
-
Spiegeln
-
Es
ist vorgesehen, dass Spiegeln und Unterstützung für andere Formen der Redundanz
vorgesehen werden können,
indem eine einzelne Anfrage von mehreren NAIS-SDs empfangen wird.
In einigen Fällen
kann eine Multicast-IP-Adresse Speicherbereichen auf verschiedenen
SDs zugeordnet werden. Alternativ kann eine erste SD angewiesen
werden, Pakete, die für
eine zweite SD adressiert sind, zu erkennen, so dass Schreibanfragen
(und möglicherweise
Leseanfragen und andere Anfragen), die an die zweite SD gesendet
werden, von der ersten SD verwendet werden, die in der zweiten SD
gespeicherten Daten zu spiegeln. Bei einer weiteren Alternative
können
Sendepakete auf ähnliche
Weise als Multicast-Pakete verwendet werden, dies ist jedoch eine
weniger bevorzugte Option.
-
Vielfältige Aufgaben,
Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden
aus der nachfolgenden ausführlichen
Beschreibung der bevorzugten Ausführungsformen der Erfindung
gemeinsam mit den beigefügten
Zeichnungen, in denen gleiche Bezugszeichen gleiche Komponenten
angeben, offensichtlicher.
-
Kurzbeschreibung
der Zeichnungen
-
1 zeigt
eine schematische Ansicht eines Split-id-Pakets.
-
2 zeigt
eine detaillierte Ansicht des Split-id-Pakets SID der 1.
-
3 zeigt
eine schematische Ansicht einer Ausführungsform des SID-Pakets der 1.
-
4 zeigt
eine schematische Ansicht einer Ausführungsform des SID-Pakets der 1.
-
5 zeigt
eine schematische Ansicht einer Ausführungsform des SID-Pakets der 1.
-
6 zeigt
eine schematische Ansicht einer Ausführungsform des SID-Pakets der 1.
-
7 zeigt
eine schematische Ansicht eines Speichermodells, das Multisegmentadressen
verwendet.
-
8A zeigt
eine schematische Ansicht eines Speichersystems, das das Modell
von SID4 verwendet.
-
8B zeigt
eine schematische Ansicht eines Speichersystems, das das Modell
von SID4 verwendet.
-
8C zeigt
eine schematische Ansicht eines Speichersystems, das das Modell
von SID4 verwendet.
-
9 zeigt
eine schematische Ansicht eines Speichersystems in einem IP-Netzwerk.
-
10A zeigt eine schematische Ansicht eines mit
Token versehenen Pakets.
-
10B zeigt eine schematische Ansicht eines mit
Token versehenen Pakets.
-
10C zeigt eine schematische Ansicht eines mit
Token versehenen Pakets mit dem Token in dem Steuerabschnitt eines
gekapselten Pakets.
-
11 zeigt
eine schematische Ansicht eines PSAN-Pakets.
-
12 zeigt
eine schematische Ansicht eines mit Token versehenen PSAN-Pakets.
-
13 zeigt
eine schematische Ansicht eines Split-ID-PSAN-Pakets.
-
14 zeigt
eine schematische Ansicht eines mit Token versehenen, Split-ID-PSAN-Pakets.
-
15 zeigt
eine schematische Ansicht eines TRANSFER-Pakets.
-
16 zeigt
eine schematische Ansicht eines REQUEST-Pakets.
-
17 zeigt
eine schematische Ansicht eines REQUEST-LOCK-Pakets.
-
18 zeigt
eine schematische Ansicht eines ACK-Pakets.
-
19 zeigt
eine schematische Ansicht eines ERROR-Pakets.
-
20 zeigt
eine schematische Ansicht eines RELEASE-PARTITION-Pakets.
-
21 zeigt
eine schematische Ansicht eines GO-TRANSFER-Pakets.
-
22 zeigt
eine schematische Ansicht eines GO-REQUEST-Pakets.
-
23 zeigt
eine schematische Ansicht eines GO-REQUEST-LOCK-Pakets.
-
24 zeigt
eine schematische Ansicht eines FIND-Pakets.
-
25 zeigt
eine schematische Ansicht eines FIND-RESPONSE-Pakets.
-
26 zeigt
eine schematische Ansicht eines NAME-RESOLUTION-REQUEST-Pakets.
-
27 zeigt
eine schematische Ansicht eines NAME-RESOLUTION-RESPONSE-Pakets.
-
28 zeigt
eine schematische Ansicht eines SET-MULTICAST-IP-Pakets.
-
29 zeigt
eine schematische Ansicht eines RELEASE-MULTICAST-IP-Pakets.
-
30 zeigt
eine schematische Ansicht eines SET-LBA-OFFSET-Pakets.
-
31 zeigt
eine schematische Ansicht einer gemeinsamen genutzten NAIS-Speichervorrichtung.
-
32 zeigt
eine schematische Ansicht von NAIS-Speichervorrichtungen mit übergreifendem
alloziierten Speicher.
-
33 zeigt
eine schematische Ansicht einer gespiegelten NAIS-Speichervorrichtung.
-
34 zeigt
eine schematische Ansicht einer RAID-Vorrichtung, die mithilfe von
NAIS-Speichervorrichtungen implementiert ist.
-
35 zeigt
eine schematische Ansicht eines PC-Netzwerks, das eine gemeinsame
NAIS-Vorrichtung umfasst.
-
36 zeigt
eine schematische Ansicht eines Heimunterhaltungssystems, das NAIS-Vorrichtungen umfasst.
-
37 zeigt
eine schematische Ansicht eines digitalen Einzelbild- und Videofotografiersystems,
das NAIS-Vorrichtungen umfasst.
-
Ausführliche
Beschreibung
-
Wie
nachfolgend ausführlicher
beschrieben wird, umfassen bevorzugte Protokolle ein oder mehrere mit
Token versehene Pakete, Split-id-Pakete ("SID-Pakete") oder atomare Pakete. Ein mit Token
versehenes Paket entspricht einfach einem Paket, das ein Authentifizierungs-Tokenumfasst.
Ein Split-id-Paket entspricht einem Paket, das ein einkapselndes
und ein eingekapseltes Paket umfasst, wobei das Split-id-Paket ebenfalls einen
Identifizierer umfasst, der so aufgeteilt ist, dass ein Abschnitt
des Identifizierers von dem eingekapselten Paket erhalten wird,
während
ein weiterer Abschnitt von dem einkapselnden Paket erhalten wird.
Ein atomares Paket entspricht einem Paket, das in ausreichendem
Maße in
sich selbst enthalten ist, dass jeder Befehl, den es enthält, ausgeführt werden
kann, ohne zunächst
mit weiteren Daten von vergangenen oder künftigen Paketen kombiniert
werden zu müssen.
Ein am meisten bevorzugtes Protokoll umfasst ein oder mehrere atomare,
mit Token versehene Split-id-Pakete
("ATSID-Pakete"), d.h. Pakete, die
atomar sind, mit Token versehen sind und eine Split-id umfassen.
-
Split-ID-Pakete
-
Wie
oben angegeben, entspricht ein SID-Paket einem Paket, das ein einkapselndes
und ein eingekapseltes Paket umfasst, wobei das SID-Paket auch einen
Identifizierer umfasst, der aufgeteilt ist, so dass mindestens ein
Segment des Identifizierers in dem eingekapselten Paket angeordnet
ist, während
mindestens ein weiteres Segment in dem einkapselnden Paket angeordnet
ist. Mit Bezug auf 1 umfasst das SID-Paket 100 eine
Split-id ("SID") 130. In
vielen Ausführungsformen
umfassen sowohl das einkapselnde als auch das eingekapselte Paket
Steuerabschnitte, und die SID-Segmente werden in diesen Steuerabschnitten
angeordnet. Mit Bezug auf 2 umfasst
ein SID-Paket 200 einen
Steuerabschnitt 210 und einen Datenabschnitt 220, die
ein Paket 250 umfassen. Das Paket 250 umfasst
einen Steuerabschnitt 260 und einen Datenabschnitt 270, wobei
die Segmente 231 und 232 des SID 130 zwischen
dem Steuerabschnitt 210 und dem Steuerabschnitt 260 aufgeteilt
sind.
-
Es
soll angemerkt werden, dass ein SID mehr als zwei Segmente umfassen
kann. Wie in 3 gezeigt ist, kann das SID 130 zwei
oder mehr als zwei Segmente in dem Steuerabschnitt 310 und
ein einzelnes Segment in dem Steuerabschnitt 350 umfassen.
Wie in 4 gezeigt ist, kann das SID 130 zwei
oder mehr als zwei Segmente in dem Steuerabschnitt 450 und
ein einzelnes Segment in dem Steuerabschnitt 410 umfassen.
Wie in 5 gezeigt ist, kann das SID 130 zwei
oder mehr als zwei Segmente sowohl in dem Steuerabschnitt 510 als
auch in dem Steuerabschnitt 550 umfassen. Das SID 130 kann
auch auf mehrere mehrfach gekapselte Pakete aufgeteilt sein. Wie
in 6 gezeigt ist, umfasst das SID 130 mindestens
drei Segmente, die zwischen den Steuerabschnitten von mindestens
drei Paketen aufgeteilt sind, wobei mindestens ein Segment in jedem
der mindestens drei Pakete angeordnet ist.
-
SID-Pakete
können
in vorteilhafter Weise für
die Kommunikation zwischen zwei Vorrichtungen verwendet werden,
die ein Speichermodell implementieren, in dem Multisegmentadressen
Speicherpositionen identifizieren. Ein solches Speichermodell ist
in 7 angegeben. In 7 ist ein
Speichersystem 700 in Speicherbereiche 710 bis 740 aufgeteilt
und jeder Speicherbereich ist in Speicherblöcke (1 bis 3 im Bereich 710,
1 bis 4 im Bereich 720, 1 bis 2 im Bereich 730 und
1 bis 3 im Bereich 740) unterteilt. In dem Modell der 7 kann
jeder bestimmte Speicherblock mit einer einzelnen Adresse, die zwei
Segmente, ein Speicherbereichsegment und ein Speicherblocksegment
umfasst, identifiziert werden. Eine Schreibweise einer Adresse, die
Segmente X und Y umfasst, besteht darin, es in der Form (X, Y) zu
schreiben. Somit würde
Block 710 durch die Adresse (41,1), Block 713 durch
die Adresse (41,3) und Block 743 durch die Adresse (44,3)
identifiziert werden. Wenn SID-Pakete in Verbindung mit einem solchen
Modell verwendet werden, kann der SID der Multisegmentadresse gleichgesetzt
werden. In einer bevorzugten Ausführungsform würde das
Speicherbereichssegment in dem Steuerabschnitt des einkapselnden
Pakets angeordnet werden und das Speicherblocksegment würde in dem
Steuerabschnitt des eingekapselten Pakets angeordnet sein. Somit
könnte
die hierin für Multisegmentadressen
verwendete Schreibweise auch für
Split-IDs verwendet werden.
-
Es
sollte angemerkt werden, dass bei einigen Ausführungsformen das Modell 700 eng
mit der physikalischen Struktur der Speichervorrichtung verbunden
ist, während
bei anderen Ausführungsformen
das Modell 700 einfach einem logischen Konstrukt entsprechen
kann, das auf ein System aufgesetzt ist, das eine vollständig dissimilare
Struktur aufweist. Als ein Beispiel einer eng verbundenen Implementation
kann das Modell 700 verwendet werden, um den Speicherplatz
einer einzelnen Festplatte mit Speicherbereichen 710 bis 740, die
Partitionen auf der Festplatte entsprechen, zu beschreiben. Bei
einer solchen Implementation würde
das Speicherbereichsegment einer Split-ID, die einen Block identifiziert,
wahrscheinlich einem Partitions-Identifizierer
entsprechen und das Speicherblocksegment würde wahrscheinlich einer logischen
Blockadresse entsprechen, die dem Block innerhalb der Partition
zugeordnet ist. In einer weniger eng verbundenen Implementation
kann der Speicherbereich 700 einen Speicher umfassen, der
durch mehrere separate Vorrichtungen bereitgestellt wird, die an
getrennten Orten angeordnet sind, wie z.B. ein Speichernetzwerk,
das mehrere Speichervorrichtungen umfasst, die miteinander durch
ein überörtliches
Netzwerk verbunden sind. Die tatsächliche physikalische Struktur
der Speichervorrichtung, die ein Multisegment-Speichermodell implementiert,
ist im Allgemeinen nicht von Belang, solange sie ein Multisegment-Adressieren
unterstützt
und somit in vorteilhafter Weise Split-ID-Pakete verwendet, um zu
kommunizieren.
-
Die
Verwendung des SID-Pakets ist insbesondere vorteilhaft, wenn das
Speichermodell in einem Speichersystem implementiert wird, das mit
einem Netzwerk verbunden ist, wobei jedes ihrer Speicherbereiche
einer Netzwerkadresse zugeordnet ist und das Speichersystem ausgebildet
ist, um Pakete zu überprüfen, die Netzwerkadressen,
die den Speicherbereichen in dem Speichersystem zugeordnet sind,
zu überprüfen. Wie in 8 gezeigt ist, ist das Speichersystem 800 mit
dem Netzwerk 890 über
die Netzwerkschnittstelle 801 verbunden. Der Speicher,
der durch das System 800 bereitgestellt wird, umfasst alloziierte
Bereiche 810B und 810D und nicht alloziierte Bereiche 810A, 810C und 810E.
Die Netzwerkschnittstelle 801 ist der Netzwerkadresse 50
zugeordnet. Der Speicherbereich 810B ist der Netzwerkadresse
51 zugeordnet. Der Speicherbereich 810D ist einer Netzwerkadresse
52 zugeordnet. Ein Speicherblock 821 wird durch die ID
(51,1) identifiziert, Block 822 durch die ID (51,3), Block 823 durch
ID (52,1) und Block 824 durch ID (52,2). Somit sind dem
Speichersystem 800 drei Netzwerk-IDs zugeordnet, von denen
zwei den Speicherbereichen zugeordnet sind. Jedes Paket mit einer
Zieladresse von 50, 51 oder 52 sollte durch das System 800 überprüft werden,
wobei Pakete, die mit den Adressen 51 und 52 adressiert sind, verwendet
werden, um die Inhalte der Speicherbereiche 810B bzw. 810D zu
manipulieren. In alternativen Ausführungsformen kann ein Speichersystem
Mehrfachverbindungen zu einem Netzwerk umfassen, wie in den 8B und 8C gezeigt
ist. In 8B ist das System 800B mit
einem Netzwerk 890B über
die Netzwerkschnittstellen 802A und 802B verbunden.
Die Netzwerkadresse 50 ist einer Schnittstelle 802A, die
Adresse 51 802B und die Adresse 53 dem alloziierten Speicherbereich 810F zugeordnet.
Block 825 wird durch ID (53,1) und Block 826 durch
ID (53,2) identifiziert. In 8C ist
das System 8000 mit einem Netzwerk 890C über Netzwerkschnittstellen 803A, 803C und 803E verbunden und
weist drei alloziierte Speicherbereiche, 810G, 810H und 810J und
sechs Netzwerkadressen 50 bis 55 auf. Die Netzwerkadresse 50 ist
der Schnittstelle 803A, 52 803B, 54 803C, 51 dem
Speicherbereich 810J, 53 dem Speicherbereich 810H und
55 810G zugeordnet. Es sollte angemerkt werden, dass es in 8C eine
Netzwerkschnittstelle für
jeden Netzwerkspeicherbereich gibt. Obwohl eine solche Ausführungsform
eine weniger bevorzugte ist, kann in einem solchen Fall eine einzelne
Adresse jeder Kombination von Schnittstellen und Speicherbereich
zugeordnet sein, so dass die Adressen 51, 53 und 55 nicht benötigt werden.
-
Es
sollte angemerkt werden, dass die Speichersysteme 800A, 800B und 800C Netzwerkadressen
verwenden, um auf interne Speicherbereiche zuzugreifen. Vorrichtungen,
die Netzwerkadressen verwenden, um auf interne Speicherbereiche
(NAIS-Vorrichtungen) zuzugreifen, sind nicht auf Speichersyteme
und Vorrichtungen begrenzt. Als ein Beispiel kann eine NAIS-Vorrichtung,
wie z.B. eine digitale Kamera, einfach einen internen Speicher umfassen,
der von anderen Vorrichtungen zugreifbar ist. Obwohl er Speicher
enthält,
besteht der Hauptzweck der digitalen Kamera nicht darin, Speicher
für andere
Vorrichtungen zur Verfügung
zu stellen, und aufgrund der begrenzten Größe des Speichers würde sie üblicherweise
in dieser Funktion nicht gut funktionieren. Wenn jedoch die Kamera
eine NAIS-Vorrichtung ist, kann eine weitere Vorrichtung in der
Lage sein, mithilfe der hierin beschriebenen Verfahren auf die Inhalte
des Speichers in der Kamera zuzugreifen und/oder zu manipulieren.
-
Es
ist momentan vorgesehen, dass die Verwendung von SID-Paketen am
vorteilhaftesten ist, wenn das Speichermodell in einer NAIS-Vorrichtung,
wie z.B. ein Speichersystem, das mit einem IP-Netzwerk verbunden
ist, implementiert wird und die Netzwerkadressen, die den Speicherbereichen
zugeordnet sind, IP-Adressen sind. In 9 umfasst
ein Speichersystem 900 eine Netzwerkschnittstelle 901 und
alloziierte Speicherbereiche 910A und 910B und
ist mit einem IP-Netzwerk 990 verbunden. Die Netzwerkschnittstelle 901 ist
einer MAC-Adresse 00:0A:B1:01:FC:22 und der IP-Adresse 3.3.3.3 zugeordnet. Der Speicherbereich 910A ist
der IP-Adresse 3.3.3.4 und 910B der Adresse 3.3.3.5 zugeordnet
worden. Ein Speicherblock 910 wird durch die ID (3.3.3.4,1)
identifiziert und Block 914 durch ID (3.3.3.4,4). Für Speichervorrichtungen,
die in IP-Netzwerken gespeichert sind, kann die Netzwerkadresse
der Netzwerkschnittstellen und/oder der Speicherbereiche dynamisch
alloziiert werden. Als ein Beispiel kann ein Netzwerkadress-Server,
wie z.B. ein DHCP-Server, verwendet werden, um dynamisch IP-Adressen
zu alloziieren.
-
In
einigen Fällen
kann ein Speichermodell drei oder mehrere Niveaus der Trennung umfassen
und eine ID verwenden, die drei oder mehrere Segmente umfasst, um
einen bestimmten Speicherblock zu identifizieren. Wenn in solchen
Fällen
das Netzwerk eine Adressierungshierarchie unterstützt, kann
diese Hierarchie teilweise oder vollständig verwendet werden, um Blöcke in ähnlicher
Weise zu identifizieren. Somit könnte
eine Vorrichtung, die mit einem Netzwerk, auf dem IP- und UDP-Pakete
verwendet werden, verbunden ist, IP-Adressen Gruppen von Speicherbereichen
und UDP-Portnummern jedem Speicherbereich innerhalb einer Gruppe
von Speicherbereichen zuordnen. Alternativ könnte eine einzelne IP-Adresse
als Adresse mit vier Segmenten angesehen werden, wobei jedes Segment
dabei hilft, einen bestimmten Speicherbereich auf ähnliche Weise
zu identifizieren, wie IP-Adressen verwendet werden, um Vorrichtung
innerhalb Unter-Netzwerken zu identifizieren.
-
In
einigen Ausführungsformen
dienen die Abschnitte eines Protokolls, das Split-ID-Pakete betrifft,
als Erweiterungen zu dem Protokoll des einkapselnden Pakets, da
eine Split-id erfordert, dass die Steuerabschnitte sowohl des einkapselnden
als auch des eingekapselten Pakets verfügbar sind, um den Wert der
Split-id festzustellen. Dies ist insbesondere der Fall, wenn die
Steuerabschnitte von Paketen als Kopfabschnitte implementiert werden,
auf die der Datenabschnitt des Pakets folgt, so dass der Kopfabschnitt
des eingekapselten Pakets unmittelbar auf den Kopfabschnitt des
einkapselnden Pakets folgt. Es ist vorgesehen, dass bei einigen Ausführungsformen
eine Multisegmentadresse verwendet werden kann, um Speicherpositionen
zu identifizieren, bei denen die Multisegmentadresse Teil des Steuerabschnittes
eines einzelnen Pakets ist, wie z.B. einem IP-Paket. Somit kann
das gleiche Speichermodell und ein Multisegmentadressieren implementiert
werden, indem der Speicherblock-Identifizierer
dem Kopfabschnitt eines IP-Pakets hinzugefügt wird, wobei der Zieladressabschnitt
des IP-Kopfabschnittes einer IP-Adresse entspricht, die einer Speicherposition
zugeordnet ist.
-
Mit Token
versehene Pakete
-
Wie
oben angegeben, entspricht ein mit Token versehenes Paket einfach
einem Paket, das ein Authentifizierungs-Token umfasst, wobei ein
Authentifizierungs-Token einem Wert oder einer Gruppe von Werten entspricht,
die verwendet werden, um die Quelle des Pakets und/oder mindestens
ein Teil der Inhalte des Pakets zu authentifizieren. 10A zeigt ein mit Token versehenes Paket 1000A,
das ein Token 1040 umfasst. 10B zeigt
ein mit Token versehenes Paket 1000B, das mindestens zwei
mit Token versehene Segmente 1041 und 1042 umfasst.
In bevorzugten Ausführungsformen
stellt das Token einen Teil des Steuerabschnittes eines gekapselten
Pakets, das in 10C gezeigt ist, dar. In 10C umfasst das Paket 1000C einen Steuerabschnitt 1010 und
einen Datenabschnitt 1020, wobei der Datenabschnitt 1020 ein
gekapseltes Paket mit einem Steuerabschnitt 1030 und einem
Datenabschnitt 1035 umfasst, und das Token 1040C ist
innerhalb des Steuerabschnittes 1030 angeordnet.
-
Es
ist bevorzugt, dass die Authentifizierungs-Token mit Hilfe eines
oder mehreren Algorithmen und/oder Datenwerten auf eine Weise erzeugt
werden, die wahrscheinlich verhindert, dass nicht autorisierte Vorrichtungen
Token generieren, die dazu führen,
dass nicht gültige
Pakete als gültig
akzeptiert werden. Ungültige
Pakete entsprechen Paketen, die aus einer anderen Quelle stammen
als einer Quelle, die in einem Token identifiziert ist ("falsche Pakete") oder Datenwerte
umfasst, die anscheinend von der Quelle bereitgestellt werden, jedoch
nicht Werten entsprechen, die dem Paket durch die in dem Token identifizierte
Quelle hinzugefügt
wurden ("korrupte
Pakete"). Bei einigen
Ausführungsformen
können
Token einer verschlüsselten
Gruppe von Daten entsprechen, die mithilfe eines zuvor von der Quelle
bereitgestellten Schlüssels
entschlüsselt werden.
In anderen Fällen
können
Teile des validierten Paketes als ein Schlüssel verwendet werden, um das Token
zu entschlüsseln.
Es sollte angemerkt werden, dass andere Verschlüsselungsmechanismen oder nicht verschlüsselte Token
auch verwendet werden können.
Als ein Beispiel kann bei einer weniger bevorzugten Ausführungsform
ein Token einfach eine nicht verschlüsselte Datenkette umfassen,
durch die eine Vorrichtung, die ein Paket empfängt, angewiesen worden ist,
diese der Quellvorrichtung zuzuordnen. Wenn das Token mit der Datenkette,
die zuvor der Zielvorrichtung bereitgestellt worden ist, übereinstimmt,
wird das Paket als gültig akzeptiert.
-
Atomare Pakete
-
Wie
oben angegeben, entspricht ein atomares Paket einem Paket, das in
ausreichendem Maß in
sich selbst enthalten ist, so dass jeder Befehl, den es enthält, ausgeführt werden
kann, ohne dass es zuerst mit Daten von voraus gegangenen oder künftigen
Paketen kombiniert werden muss. Atomarität erhält man hierin durch Begrenzen
des Datentransfers auf einen einzigen Speicherblock und durch Einfügen eines
Positions-Identifizierers
in jedes Paket, das verwendet wird, um einen Speicherblock zu übertragen.
-
ATSID-Pakete
-
Wie
oben angegeben, entspricht ein ATSID-Paket einem Paket, das atomar
ist, mit Token versehen ist und eine Split-id umfasst und die vorangehenden
Erörterungen bezogen
auf atomar, mit Token versehen und Split-ID-Pakete sind im Allgemeinen
für ATSID-Pakete
gültig.
Es ist vorgesehen, dass ATSID-Pakete insbesondere vorteilhaft sind,
wenn diese auf Datenübertragungspakete
angewendet werden, wie z.B. solche, die einen Befehl umfassen, der
eine Vorrichtung anweist, den Inhalt eines Datenblockes mit den
Inhalten des Datenabschnittes des Pakets zu ersetzen oder Pakete,
die auf eine Anfrage nach Daten von einer weiteren Vorrichtung erzeugt
werden. In jedem Fall ist es bevorzugt, dass ein ATSID-Paket verwendet
wird, um Daten zu übertragen.
Wie mit Bezug auf die obigen bevorzugten Ausführungsformen beschrieben ist,
umfasst ein ATSID-Paket ein erstes Paket, das ein zweites Paket
einkapselt, wobei ein Token in dem Steuerabschnitt des eingekapselten
Pakets enthalten ist und eine Multisegmentadresse zwischen dem Steuerabschnitt
des einkapselnden Pakets und der Steuerabschnitt des eingekapselten
Pakets aufgeteilt ist.
-
PSAN-Protokoll
-
Ein
bevorzugtes Speicherbereichnetzwerk-("SAN")-Protokoll
umfasst Kombinationen von ATSID-Paketen, mit Token versehenen Paketen,
Split-ID-Paketen und umfasst auch die oben beschriebenen Merkmale, wie
z.B. Paketatomarität,
Blind-ACKs, NAT-Bridging,
Sperren, Mehrpunkt-Übergreifen
und Spiegeln und Authentifizierung. Es ist bevorzugt, dass das hierin
als "PSAN-Protokoll" bezeichnete Protokoll
mehrere Unterprotokolle, wie z.B. ein Blockübertragungsprotokoll und ein
Namen-Auflösungs-Sendeprotokoll (Name
Resolution Broadcast Protocol) umfasst. Die PSAN-Unterprotokolle können als Gruppen von Regeln
angesehen werden, die bei der Bildung und Interpretation von Paketen
verwendet werden, sowie die Software und/oder Hardware, die von
einer bestimmten Vorrichtung verwendet werden, um diese Regeln auszuführen, wenn
mit anderen Vorrichtungen kommuniziert wird. In einigen Fällen kann
eine Vorrichtung nur eine Untergruppe der PSAN-Unterprotokolle implementieren.
-
Das
PSAN-Protokoll wird vorzugsweise auf eine Weise implementiert, bei
der Pakete 1100 (siehe 11), die
gemäß dem PSAN-Protokoll
("PSAN-Pakete") gebildet werden,
einen Steuerabschnitt 1110 und möglicherweise einen Datenabschnitt
(Datenabschnitt 1120 in der Ausführungsform der 11)
aufweisen, wobei der Steuerabschnitt 1110 als ein Kopfabschnitt
implementiert wird, der, wenn anwendbar, von dem Datenabschnitt 1120 gefolgt
ist. Der Steuerabschnitt jedes PSAN-Pakets umfasst einen Befehl 1101,
der das Format des Restes des Steuerabschnitts des Pakets und die
Funktion des Pakets identifiziert. In bevorzugten Ausführungsformen
umfasst der Befehlswert die ersten Bits eines Pakets und vorzugsweise
das erste Byte (8 Bit) des Pakets, wobei jedoch alternative Ausführungsformen
den Befehlswert anders anordnen können.
-
In
einigen Fällen
kann der Befehl 1101 als zum "Ausführen" angesehen werden,
dadurch dass eine Empfangsvorrichtung den Wert des Befehls evaluiert
und abhängig
von diesem Wert einen äquivalenten
Befehl oder Gruppe von Befehlen ausführt. Somit kann ein Paket als
ein Befehl angesehen werden, da dieses als ein Befehl für eine Empfangsvorrichtung
bearbeitet wird, um einen bestimmten Verfahrensschritt oder Gruppe von
Verfahrensschritten vorzunehmen.
-
Da
das Format des Steuerabschnittes eines bestimmten Pakets anhand
des Befehlswerts, den dieser enthält, bestimmt werden kann, wird
auf die bereitgestellten Formate, die darin beschrieben sind, durch
den entsprechenden Befehlswert oder genauer, den dem entsprechenden
Befehlswert zugeordneten Namen Bezug genommen. Die nachfolgende
Tabelle (Tabelle 1) identifiziert bevorzugte Werte für eine bevorzugte
Gruppe von Befehlen:
Tabelle
1
-
Es
ist vorgesehen, dass einige Ausführungsformen
des PSAN-Protokolls im Wesentlichen oder vollständig aus den in Tabelle 1 aufgeführten Befehlen
bestehen, obwohl die tatsächlichen
Werte für
die Befehle von den gezeigten abweichen können.
-
Eine
Mehrzahl der PSAN-Pakete und/oder Split-ID-Pakete werden mit Token
versehen, wie in den 12 bis 14 gezeigt.
In 12 umfasst ein Paket 1200 einen Befehl 1201 und
ein Authentifizierungs-Token 1202. In bevorzugten Ausführungsformen
umfasst ein Token 1202 ein ASCII 1202A gefolgt
von einem Begrenzer 1202B. In 13 umfasst
ein Paket 1300 einen Befehlswert 1301 und ein
Segment einer Split-ID 1303. In 14 umfasst
ein Paket 1400 einen Befehlswert 1401 und sowohl
ein Token (1402A und 1402B) als auch ein Segment
einer Split-ID 1403.
-
In
bevorzugten Ausführungsformen
werden PSAN-Pakete in Protokollpaketen eines niedrigeren Niveaus,
wie z.B. als IP-UDP- oder IP-TCP-Pakete, gekapselt und ein zweites
Segment von jedem PSAN-Split-ID-Paket umfasst die Netzwerkadresse
des einkapselnden Pakets. In einer bevorzugtesteten Ausführungsform
umfasst das zweite Segment eines Split-ID-Pakets die Ziel-IP-Adresse
eines einkapselnden IP-Pakets.
-
In
bevorzugten Ausführungsformen
werden die Speicherblöcke
eines Speicherbereichs einer Vorrichtung sequenziell auf eine Weise
nummeriert, die ähnlich
zu der Verwendung von logischen Blockadressen ("LBAs")
in Plattenpartionen ist, und das Segment 1403 umfasst das Äquivalent
des LBA des Speicherblockes innerhalb seines Speicherbereichs. Somit
kann das Segment 1403 hierin als ein "LBA" bezeichnet
werden, jedoch sollte in solchen Fällen beachtet werden, dass
das Segment 1403 jedem Identifizierer entsprechen kann, der
in Verbindung mit einem Segment, das in einem einkapselnden Paket
gefunden wird, eindeutig einen Speicherblock identifiziert. Da die
Netzwerkadresse bei einer bevorzugten Ausführungsform eine IP-Adresse umfasst,
kann das Segment einer Split-ID, die in einem einkapselnden Paket
gefunden wird, hierin als eine IP-Adresse bezeichnet werden, es
sollte jedoch beachtet werden, dass in solchen Fällen das Segment, das in einem
einkapselnden Paket angeordnet ist, jedem Identifizierer entsprechen
kann, der in Verbindung mit Segment 1403 einen Speicherblock
eindeutig identifiziert.
-
PSAN-Protokoll-Blockübertragung
-
Das
PSAN-Blockübertragungsprotokoll
besteht im Wesentlichen aus einem TRANSFER-Befehl, REQUEST-Befehl,
einem REQUEST-LOCK-Befehl, einem RELEASE-PARTITION-Befehl, einem
ACK-Befehl und einem ERROR-Befehl. In einer bevorzugten Ausführungsform
umfasst das PSAN-Blockübertragungsprotokoll
auch eine entsprechende Gruppe von "GO"-Befehlen,
die verwendet werden, um eine weitere Vorrichtung zu veranlassen,
TRANSFER-, REQUEST- und REQUEST-LOCK-Befehle
an eine dritte Vorrichtung zu senden. Die GO-Befehle sind GO TRANSFER,
GO REQUEST und GO REQUEST LOCK. Ausführungsformen, die ein Multicast
(Mehrpunkt-Übertragung)
unterstützen,
umfassen auch einen SET-MULTICAST-IP-Befehl,
einen RELEASE-MULTICAST-IP-Befehl und einen SET-LBA-OFFSET-Befehl. Bei bevorzugten Ausführungsformen
entspricht der Wert jedes Befehls den Werten der Tabelle 1.
-
Ein
bevorzugtes TRANSFER-Paket 1500 umfasst, wie in 15 gezeigt
ist, sowohl einen Steuerabschnitt 1510 und einen Datenabschnitt 1520.
Der Steuerabschnitt umfasst einen Befehl 1501, ein Token (1502A und 1502B)
und einen LBA 1503. Das TRANSFER-Paket wird verwendet,
um Daten entweder als ein "Schreiben" oder als eine Antwort
auf ein REQUEST-Paket zu senden. Eingekapselte PSAN-TRANSFER-Pakete entsprechen
ATSID-Paketen, da sie ein Token und eine Split-ID enthalten und
atomar sind, da der Befehl des Pakets nur auf Daten, die in einem
Datenabschnitt 1520 des Pakets enthalten sind, angewendet
wird, wodurch TRANSFER-Pakete zu ATSID-Paketen werden.
-
Unabhängig ob
er als ein anfängliches
Schreiben oder als eine Antwort auf eine Anfrage erzeugt wird, hat
das Ausführen
eines TRANSFER-Befehls die gleiche Wirkung, d.h. das Ersetzen des
Inhalts einer Speicherposition in der Empfangsvorrichtung mit den
Inhalten des Datenabschnittes 1520 des Pakets. Ein PSAN-TRANSFER-Befehl
ist vorzugsweise auf eine einzelne Speicherposition beschränkt und
umfasst alle Daten, die die Speicherposition betreffen. Somit hängt der
TRANSFER-Befehl nicht von irgendwelchen weiteren Paketen für die Ausführung ab.
Die Übertragungen,
die mehrere Speicherblöcke
einschließen,
werden, sogar wenn die Blöcke
sequenziell sind, durch die Verwendung von Mehrfachübertragungs-Befehlen/Paketen
mit einem Paket pro Speicherblock durchgeführt.
-
Wenn
ein TRANSFER-Befehl von einer ersten Vorrichtung an eine zweite
Vorrichtung gesendet wird, ist es vorteilhaft, die Größe des Datenabschnitts 1520 auf
die Größe des kleineren
der zwei Blockgrößen der Vorrichtungen
einzustellen. Das Begrenzen der Paketdatenblockgrößen auf
den kleinsten physikalischen Block einer Vorrichtung, zu der ein
Paket gesendet wird, fuhrt oft zu einem Ansteigen der Gesamtleistungsfähigkeit,
indem die Verarbeitungszeit bei dem Ziel verringert wird, sogar
wenn das Vergrößern der
Paketgröße bislang
ein bevorzugtes Verfahren war, die Leistungsfähigkeit des Netzwerks zu erhöhen. In
Fällen,
in denen die physikalischen Blockgrößen zwischen zwei Kommunikationsvorrichtungen
verschieden sind, kann das Kommunizieren eines Datenblocks an eine
Vorrichtung für
die nachfolgende Manipulation durch die Vorrichtung das Unterteilen
des Datenblockes in Unterblöcke
umfassen, wobei die Vorrichtung die Unterblöcke manipuliert, ohne zuerst
den Block erneut zusammenzusetzen oder die Pakete umzuordnen.
-
Es
sollte angemerkt werden, dass die Größe des Datenabschnittes der
Rückübertragung
kleiner ist als die maximal zulässige
Größe für ein Datenpaket
ansonsten zulassen würde.
Ein Verringern der Größe des Datenblockes
kann zu einer erhöhten
Leistungsfähigkeit
führen,
indem eine Verarbeitung für
das Senden und/oder Empfangen in einer Vorrichtung eliminiert wird
und/oder indem die verwendete Zeit, während der auf zusätzliche
zu empfangende Pakete gewartet wird, eliminiert wird.
-
Bei
einer bevorzugten Ausführungsform
wird ein TRANSFER-Befehl, der eine LBA mit dem Wert "0" umfasst, verwendet, um einen Speicherbereich
an eine Vorrichtung zu alloziieren, wobei der Speicherbereich im
Allgemeinen für
eine Vorrichtung reserviert wird (einen "Client"), bis die Vorrichtung einen RELEASE-PARTITION-Befehl ausgibt. Einmal
alloziiert, ist ein Speicherbereich vorzugsweise für keine
Vorrichtung zugänglich,
die nicht ein Token bereitstellt, die ihren Zugang autorisiert,
so dass eine Vorrichtung, die anfordert, dass ein Speicherbereich
alloziiert wird, den Zugriff auf die alloziierte Partition steuert.
In einigen Fällen
benötigt
die Alloziierung keine Validierung der Quelle des Pakets und somit
kann das Token einen NULL-Wert umfassen. Bei bevorzugten Ausführungsformen
umfasst der Datenabschnitt des TRANSFER-Befehls, der verwendet wird,
um einen Speicherbereich zu alloziieren, einen Namen, ein Token,
eine ID-Zeichenkette, Authentifizierungs-Tags, Partitionsgröße und Personalitäts-Tags.
-
Der
Name ist vorzugsweise eine Zeichenkette oder ein anderer eindeutiger
Identifizierer, der mit einem alloziierten Speicherbereich zusätzlich zu
irgendwelchen zugeordneten IP-Adressen zugeordnet werden soll. Es
ist bevorzugt, dass IP-Adressen zu dynamischen Speicherbereichen
alloziiert werden. Somit erfordert das Zugreifen auf einen Speicherbereich
im Allgemeinen zuerst ein Identifizieren der IP-Adresse, die diesem Speicherbereich
zugeordnet ist. Durch Angeben eines Namens, wenn die Alloziierung
eines Speicherbereichs angefragt wird, kann der bestimmte Name zu
einem späteren
Zeitpunkt verwendet werden, um die IP-Adresse, die diesem Speicherbereich
zugeordnet ist, zu bestimmen, sogar wenn die IP-Adresse nicht der
ursprünglich dem
Speicherbereich zugeordneten IP-Adresse entspricht.
-
Das
Token entspricht einem Token, wie es zuvor mit Bezug zu mit Token
versehenen Paketen beschrieben ist. Die ID-Zeichenkette entspricht
einem öffentlichen
Partitionsnamen, der verwendet wird, um beschreibenden Text in Alloziierungsstatus-Antworten zur Verfügung zu
stellen. Die Authentifizierungs-Tags entsprechen einer Gruppe von
Tags, die verwendet werden, um den Typ der für den alloziierten Speicherbereich in
Kraft zu setzende Authentifizierung zu definieren. Die Partitionsgröße entspricht
einfach der Speichermenge, nach der eine Vorrichtung für die Alloziierung
anfragt. Die Personalitäts-Tags
entsprechen einer Gruppe von Werten, die vielfältige durch eine Speichervorrichtung
bereitgestellte Optionen für
einen alloziierten Speicherbereich, wie z.B. eine Einmal-Schreib-Partitionierung
oder Bandbreiten-Alloziierung, bereitstellen.
-
Ein
bevorzugtes REQUEST-Paket 1600 umfasst, wie in 16 gezeigt,
einen Steuerabschnitt 1610. Der Steuerabschnitt umfasst
einen Befehl 1601, ein Token (1602A und 1602B)
und eine LBA 1603. Ein REQUEST-Befehl wird von einer Sendevorrichtung
verwendet, um anzufragen, dass eine Empfangsvorrichtung die Inhalte
des Datenblocks, der durch die LBA identifiziert ist, und die IP-Adresse,
die als die Zieladresse des einkapselnden IP-Pakets bereitgestellt
wird, an die Empfangs-/Sendevorrichtung überträgt. Eine
Vorrichtung, die ein REQUEST-Paket empfängt, antwortet mit einem TRANSFER-Paket.
-
Es
sollte angemerkt werden, dass der Empfang eines TRANSFER-Pakets,
das die gleiche LBA wie in REQUEST-Paket umfasst, als eine Bestätigung dient,
dass ein REQUEST-Paket empfangen worden ist.
-
Auf ähnliche
Weise muss die Vorrichtung, die das REQUEST-Paket empfangen hat
und das TRANSFER-Paket gesendet hat, kein ACK-Paket von der Quelle
des REQUESTS empfangen, da das Fehlen des Empfangens eines angefragten
Pakets durch erneutes Senden des REQUEST-Pakets behandelt werden kann.
Somit wird bei bevorzugten Ausführungsformen
ein REQUEST erneut gesendet, wenn ein entsprechendes TRANSFER-Paket
(d.h. mit derselben LBA) nicht innerhalb einer Zeitdauer empfangen
worden ist.
-
Bei
einer bevorzugten Ausführungsform
wird ein REQUEST-Befehl, der eine LBA des Werts "0" umfasst,
verwendet, um anzufragen, dass ein Vorrichtungsreport verfügbar ist.
Bei bevorzugten Ausführungsformen
kann eine Antwort auf eine solche Anfrage eine oder mehrere der
folgenden Informationen umfassen: Version, Gesamtkapazität, verfügbare Kapazität, Geschwindigkeit,
Zuverlässigkeit,
Portabilität
und QoS-Fähigkeit.
In einigen Fällen
müssen
Statusanfragen keine Validierung der Quelle des Pakets erfordern
und somit kann das Token einen NULL-Wert umfassen.
-
Bei
einer bevorzugten Ausführungsform
wird ein REQUEST-Befehl, der eine LBA mit dem Wert "1" und ein NULL-Token umfasst, verwendet,
um anzufragen, dass eine Vorrichtung die Eigenschaften eines Speicherbereichs
mitteilt. Bei bevorzugten Ausführungsformen
umfasst jede Antwort auf eine solche Anfrage eine oder mehrere der
folgenden Angaben: ID-Zeichenkette, und Größe, wobei die Größe der Größe des alloziierten
Speicherbereichs entspricht, und wobei die ID-Zeichenkette der öffentlichen
Zeichenkette entspricht, die als Teil der Alloziierungsanfrage bereitgestellt
wird.
-
Ein
bevorzugtes REQUEST-LOCK-Paket 1700 umfasst, wie in 17 gezeigt,
einen Steuerabschnitt 1710. Der Steuerabschnitt umfasst
einen Befehl 1701, ein Token (1702A und 1702B)
und eine LBA 1703. Das Empfangen eines REQUEST-LOCK-Pakets instruiert
eine Vorrichtung, sowohl den Inhalt eines bestimmten Speicherblocks
(zusammen mit einem REQUEST-Paket) zu übertragen als auch seine Inhalte
zu "sperren", d.h. jeden nachfolgenden
Zugriff auf den Speicherblock zu verhindern, bis ein TRANSFER-Befehl
von der Vorrichtung empfangen wird, die die Sperrung angefragt hat,
oder bis ein Time-out auftritt. Wenn eine nachfolgende Anfrage von
der gleichen anfragenden Vorrichtung nach dem gleichen Speicherblock
empfangen wird, wird jeder Zähler,
der die Time-out-Zeitdauer herunterzählt, zurückgesetzt, so dass die zweite
Anfrage im Wesentlichen eine neue Sperrungsanfrage auslöst. In einigen
Fällen
kann eine Sperrung durch einen nachfolgenden Empfang eines REQUEST-(nicht
ein REQUEST-LOCK-)-Befehl für
den gleichen Speicherblock von der Vorrichtung, die die Sperrung
angefragt hat, aufgehoben werden. In einigen Fällen kann ein REQUEST LOCK
einen gesamten Speicherbereich und nicht nur einen einzelnen Speicherblock
sperren.
-
Ein
bevorzugtes ACK-Paket 1800 umfasst, wie in 18 gezeigt,
einen Steuerabschnitt 1810. Der Steuerabschnitt umfasst
einen Befehl 1801 und eine LBA 1803. Dieser Befehl
bestätigt
eine erfolgreiche Übertragung
und muss nicht verwendet werden, wenn ein TRANSFER-Befehl nicht
als Folge eines REQUEST-Befehls ausgegeben wird. In solchen Fällen ist
der Empfang eines TRANSFER-Befehls wesentlich, um die Inhalte des
Datenabschnittes des Pakets in den identifizierten Speicherblock
zu schreiben. Ist dieser Prozess beendet, kann eine ACK-Nachricht
an die Quelle des TRANSFER-Befehls gesendet werden, um zu kommunizieren,
dass der Befehl ausgeführt
worden ist.
-
Ein
bevorzugtes ERROR-Paket
1900 umfasst, wie in
19 gezeigt
ist, einen Steuerabschnitt
1910. Der Steuerabschnitt umfasst
einen Befehl
1901, eine LBA
1903 und eine Fehlernachricht
1904,
die einen Fehlercode
1904A, eine Textnachricht
1904B und
einen Begrenzer
1904C umfasst. Ein ERROR-Paket wird verwendet,
um anzugeben, dass eine angefragte Operation aus einem bestimmten
Grund nicht abgeschlossen werden konnte und wird im Allgemeinen
anstelle eines ACK- oder TRANSFER-Befehls als Antwort auf einen REQUEST-
oder TRANSFER-Befehl gesendet. Die nachfolgenden Fehlernachrichten
können
in vorteilhafter Weise in einer bevorzugten Ausführungsform implementiert werden:
Tabelle
2
-
In
einigen Fällen
kann eine Ausführungsform
des PSAN-Protokolls im Wesentlichen oder möglicherweise nur aus den Nachrichten,
die in Tabelle 2 aufgeführt
sind, bestehen.
-
Ein
bevorzugtes RELEASE-PARTITION-Paket 2000 umfasst, wie in 20 gezeigt,
einen Steuerabschnitt 2010. Der Steuerabschnitt umfasst
einen Befehl 2001 und ein Token (2002A und 2002B).
Der RELEASE-PARTITION-Befehl wird im Allgemeinen von einer Vorrichtung
ausgegeben, die zuvor mithilfe eines TRANSFER-Befehls, wie er oben
beschrieben ist, angefragt hat, dass eine Partition alloziiert wird.
Das Ausführen
eines RELEASE-PARTITION-Befehls umfasst im Allgemeinen das Löschen von
Daten, die in dem Speicherbereich enthalten sind, das Freigeben
der IP-Adresse,
die diesem Speicherbereich zugeordnet ist, und ansonsten das Verfügbarmachen
der Speicherblöcke
in dem Speicherbereich für
eine künftige
Alloziierung.
-
Es
ist bevorzugt, dass eine Vorrichtung in der Lage ist, Datenübertragungen
zwischen zwei weiteren Vorrichtungen anzufragen, sogar solche, die
durch eine Brücke,
wie z.B. eine NAT-Brücke
voneinander getrennt sind. Somit umfassen bevorzugte Ausführungsformen "GO"-Versionen der TRANSFER-,
REQUEST- und REQUEST-LOCK-Pakete,
wobei die GO-Versionen der Pakete ausgebildet sind, um die Information
zur Verfügung
zu stellen, die eine zweite Vorrichtung anfordern würde, um
eine Übertragung
zu einer dritten Vorrichtung durchzuführen.
-
Ein
bevorzugtes GO-TRANSFER-Paket 2100 umfasst, wie in 21 gezeigt,
einen Steuerabschnitt 2110 und einen Datenabschnitt 2120.
Der Steuerabschnitt umfasst einen Befehl 2101, ein Token
(2102A und 2102B), Split-ID-Segmente 2103, 2105 und 2107 und
ein zweites Token 2106. Die Split-ID-Segmente 2103 und 2107 sind
LBAs und das Segment 2105 entspricht einer IP-Adresse eines
Speicherbereichs an einer dritten Vorrichtung, die mit einer LBA 2107 verwendet
werden soll, um einen Speicherblock an der dritten Vorrichtung zu
identifizieren. Die LBA 2103 ist mit der Ziel-IP-Adresse
des GO-TRANSFER-Pakets verbunden, um einen Speicherblock in einem
bestimmten Speicherbereich einer zweiten Vorrichtung zu identifizieren,
die den GO-TRANSFER-Befehl empfängt.
Nach dem Empfang eines GO-TRANSFER-Pakets von einer ersten Vorrichtung
sendet eine zweite Vorrichtung einen TRANSFER-Befehl, der im Wesentlichen
die Inhalte in dem durch die LBA 2103 identifizierten Block
in den durch die IP-Adresse 2105 und den LBA 2107 identifizierten Block
schreibt, wobei das zweite Token 2106 einen solchen Schreibvorgang
autorisiert.
-
Ein
bevorzugtes GO-REQUEST-Paket 2200 umfasst, wie in 22 gezeigt,
einen Steuerabschnitt 2210. Der Steuerabschnitt umfasst
einen Befehl 2201, ein Token (2202A und 2202B),
Split-ID-Segmente 2203, 2205 und 2207 und
ein zweites Token (2206A und 2206B). Die Split-ID-Segmente 2203 und 2207 entsprechen
LBAs, und das Segment 2205 entspricht einer IP-Adresse
eines Speicherbereichs an einer dritten Vorrichtung, die mit der
LBA 2207 verwendet werden soll, um einen Speicherblock
an der dritten Vorrichtung zu identifizieren. Der LBA 2203 ist
mit der Ziel-IP-Adresse des GO-REQUEST-Pakets verbunden, um einen Speicherblock
in einem bestimmten Speicherbereich einer zweiten Vorrichtung zu
identifizieren, die das GO-REQUEST-Paket empfängt. Nach dem Empfang eines
GO-REQUEST-Pakets von einer ersten Vorrichtung sendet eine zweite
Vorrichtung einen REQUEST-Befehl, durch den angefragt wird, dass
der Block, der durch die IP-Adresse 2205 und den LBA 2207 identifiziert
wird, wobei das zweite Token (2206A und 2206B) eine
solche Anfrage autorisiert, an die zweite Vorrichtung übertragen
wird, die die übertragenen
Daten verwendet, um die Inhalte des durch die LBA 2203 und
die Ziel-IP-Adresse des GO-REQUEST-Pakets
identifizierten Blocks zu ersetzen.
-
Ein
bevorzugtes GO-REQUEST-LOCK-Paket 2300 umfasst, wie in 23 gezeigt,
einen Steuerabschnitt 2310. Der Steuerabschnitt umfasst
einen Befehl 2301, ein Token (2302A und 2302B),
Split-ID-Segmente 2303, 2305 und 2307 und
ein zweites Token (2306A und 2306B). Dieses Paket
wird auf die gleiche Weise wie ein GO-REQUEST-Paket verwendet, stellt jedoch die zusätzlichen
Merkmale zur Verfügung,
die in einem REQUEST-LOCK-Befehl, der zuvor beschrieben ist, gefunden
werden.
-
Ein
bevorzugtes SET-MULTICAST-IP-Paket 2800 umfasst, wie in 28 gezeigt,
einen Steuerabschnitt 2810, der einen Befehl 2801,
ein Token (2802A und 2802B) und eine Multicast-IP-Adresse
(oder eine andere Form einer Multicast-Adresse) 2809 umfasst.
Das Paket wird verwendet, um eine Vorrichtung anzuweisen, dass sie
die angegebene Multicast-IP-Adresse mit einem alloziierten Speicherbereich
zuordnen sollte, so dass Pakete, wie z.B. das TRANSFER- und TRANSFER-REQUEST-Paket,
die die zugeordnete Multicast-Adresse umfassen, auf den Speicherbereich,
der der Multicast-Adresse zugeordnet ist, zugreifen können. In
einigen Fällen
verhindert das Einstellen einer Multicast-IP-Adresse die Verwendung
einer Unicast-IP-Adresse, um auf einen einer Multicast-IP-Adresse
zugeordneten Speicherbereich zuzugreifen. In weiteren Fällen kann
ein Speicherbereich sowohl einer Unicast- als auch einer Multicast-IP-Adresse
zugeordnet werden, so dass jede Adresse verwendet werden kann, um
auf in dem Speicherbereich enthaltene Daten zuzugreifen. Nach dem
Empfang eines SET-MULTICAST-IP-Pakets gibt eine Vorrichtung wahrscheinlich
ein IP-Gruppenmanagement-Protokoll(IGMP)Verbindungsnachricht (IP
Group Management Protocol Join Message) aus und antwortet danach
auf IGMP-Anfragen.
-
Ein
bevorzugtes RELEASE-MULTICAST-IP-Paket 2900 umfasst, wie
in 29 gezeigt, einen Steuerabschnitt 2910,
der einen Befehl 2901, ein Token (2902A und 2902B)
und eine Multicast-IP-Adresse (oder eine andere Form einer Multicast-Adresse) 2909 umfasst.
Eine Vorrichtung, die dieses Paket empfängt, wird die angegebene Multicast-IP-Adresse
von jeder Partition, der es zuvor zugeordnet wurde, lösen.
-
Ein
bevorzugtes SET-LBA-OFFSET-Paket 3000 umfasst, wie in 30 gezeigt,
einen Steuerabschnitt 3010, der einen Befehl 3001,
ein Token (3002A und 3002B) und ein LBA-Offset 3009 umfasst.
Dieser Befehl wird verwendet, um eine LBA-Startadresse für einen
Speicherbereich einzustellen. Somit wird in Fällen, bei denen die niedrigstwertige
LBA für
einen Speicherbereich andererseits „Eins" sein könnte, nach dem Empfang dieses
Pakets der Offset-Wert spezifiziert.
-
Die
Verwendung von Multicasting (Mehrpunkt-Übertragung), insbesondere IP-Multicasting und IGMP-Protokoll,
was durch die SET-MULTICAST-IP- und RELEASE-MULTICAST-IP-Pakete,
die zuvor beschrieben wurden, erleichtert wird, ist insbesondere
vorteilhaft, wenn versucht wird, ein Spiegeln des Speicherbereichs
zu implementieren. Einen ersten Speicherbereich auf einen zweiten
Speicherbereich zu spiegeln, erfordert einfach, dass beide Speicherbereiche
einer gemeinsamen Multicast-Adresse über den
SET-MULTICAST-IP-Befehl einander zugeordnet werden. Nachfolgende
vorgenommene TRANSFER-Befehle, die diese Adresse verwenden, führen zu
Aktualisierungen der Daten, die in beiden Speicherbereichen enthalten
sind.
-
Die
Verwendung des Multicasting ist auch vorteilhaft, wenn eine Speichervorrichtung
eine Anfrage empfängt,
mehr Speicher zu alloziieren, als diese verfügbar hat. Bei einem derartigen
Fall kann die Speichervorrichtung der Anfrage nachkommen, indem
der anfragenden Vorrichtung einen Zugang zu einem virtuellen Speicherbereich,
der vorrichtungsübergreifend
ist, bereitgestellt wird, wobei mehrere Speicherbereiche bereitgestellt
werden, um der Anfrage nachzukommen. Bei einem solchen Fall können die
Partitionen, die verwendet werden, um der Anfrage nachzukommen,
einer Multicast-IP-Adresse zugeordnet werden, und alle außer einer kann
einem LBA-Offset (über
den SET-LBA-OFFSET-Befehl) zugeordnet werden. Die Speichervorrichtungen, die
die alloziierten Partitionen umfassen, würden dann die LBA jedes Pakets,
das über
die Multicast-Adresse empfangen wird, überprüfen und wenn die LBA des Pakets
im Bereich der LBAs, die einem Speicherbereich zugeordnet sind,
die dieses enthält,
liegt, wird das Paket wie beabsichtigt benutzt.
-
PSAN-Protokoll-Sendenamenauflösung
-
Ein
bevorzugtes FIND-Paket 2400 umfasst, wie in 24 gezeigt
ist, einen Steuerabschnitt 2410 umfassend einen Befehl 2401.
Das Paket wird als eine Sendeanfrage von einer anfragenden Vorrichtung
ausgegeben, die eine IP-Adresse für jeden zugreifbaren Speicherbereich
sucht. Jede Vorrichtung, die ein solches Sendepaket empfängt, das
einen zugeordneten Speicherbereich umfasst, sollte mit einem oder
mehreren FIND-RESPONSE-Paketen antworten, wobei ein FIND-RESPONSE-Paket von
einer Vorrichtung für
jeden alloziierten Speicherbereich dieser Vorrichtung gesendet wird.
-
Ein
bevorzugtes FIND-RESPONSE-Paket 2500 umfasst, wie in 25 gezeigt,
einen Steuerabschnitt 2510, der einen Befehl 2501 und
eine IP-Adresse 2508 umfasst. Die IP-Adresse 2508 entspricht
der IP-Adresse, die einem bestimmten Speicherbereich zugeordnet
ist.
-
Ein
bevorzugtes NAME-RESOLUTION-REQUEST-Paket 2600 umfasst,
wie in 26 gezeigt, einen Steuerabschnitt 2610,
der einen Befehl 2601 und einen Namen 2609 umfasst.
Jede Vorrichtung, die einen alloziierten Speicherbereich umfasst,
der dem Namen 2609 zugeordnet ist, sollte mit einem NAME-RESOLUTION-RESPONSE-Paket antworten,
das die IP-Adresse, die momentan dem Speicherbereich zugeordnet
ist, umfasst. Als Ergebnis kann eine Vorrichtung, die anfragt, dass
ein Speicherbereich alloziiert wird, die momentane IP-Adresse, die
dem Namen zugeordnet ist, erhalten, indem eine NAME-RESOLUTION-REQUEST
mit dem in der Anfrage angegebenen Namen ausgegeben wird, um den
Speicherbereich zu alloziieren.
-
Ein
bevorzugtes NAME-RESOLUTION-RESPONSE-Paket 2700 umfasst,
wie in 27 gezeigt, einen Steuerabschnitt 2710,
der einen Befehl 2701, einen Namen 2709 und eine
IP-Adresse 2708 umfasst. Ein NAME-RESOLUTION-RESPONSE-Paket
wird infolge eines NAME RESOLUTION REQUEST, wie oben beschrieben,
ausgegeben.
-
PSAN-Protokoll-Authentifizierung
-
Es
ist bevorzugt, dass Ausführungsformen
des PSAN-Protokolls zumindestens vier und in einigen Fällen mindestens
fünf Niveaus
der Paket-Authentifizierung unterstützt, so dass eine Vorrichtung,
die ein PSAN-Protokoll implementiert, eines von mindestens sechs
Niveaus von Sicherheit auswählen
kann. Wie hierin beschrieben, entspricht das Niveau 0 dem niedrigsten
Niveau der Authentifizierung und das Niveau 5 dem höchsten Niveau
der Authentifizierung. Alle bevorzugten Ausführungsformen unterstützen zumindest
die Niveaus 0 bis 2.
-
Eine
Vorrichtung, die in Niveau 0 betrieben wird, würde jede Anfrage von jeder
Quelle akzeptieren.
-
Eine
Vorrichtung, die bei Niveau 1 betrieben wird, weist Pakete zurück, die
einen Speicherbereich betreffen und von einer Quelle erhalten werden,
die nicht dem Client, der ursprünglich
den Speicherbereich alloziiert hat, entspricht. Eine solche Zurückweisung
muss auf Quellen-Identifizierern basieren, die in einem empfangenen
Paket, wie z.B. der Quellen-MAC oder IP-Adresse, die in dem Paket
enthalten ist, enthalten sind. Die Verwendung einer MAC-Validierung
stellt ein signifikantes Niveau für einen Hardwareschutz in einer
Netzwerkschnittstellenkarte (NIC) vor dem Ausspähen von IPs zur Verfügung, begrenzt
jedoch die Flexibilität,
da nur ein Client auf den alloziierten Speicherbereich zugreifen
kann. Sogar wenn ein Zugriff von nur einer einzelnen Vorrichtung
wünschenswert
ist, kann das Ersetzen dieser Vorrichtung zu Datenverlust führen, wenn
kein Mechanismus zum Übertragen
einer MAC-Adresse verfügbar
ist. Die IP-Validierung stellt oft einen geringeren Schutz gegen
Ausspähen
zur Verfügung,
da die Quellen-IP-Adresse eines Pakets einfacher manipuliert werden
kann, jedoch ein einfacheres gemeinsames Nutzen der alloziierten
Speicherbereiche ermöglicht.
Leider ist durch einen bestehenden ausreichenden Zugang zu der Hardware und
Software, die mit der Vorrichtung verbunden sind, ein Ausspähen von
sowohl MAC- als auch IP-Adressen möglich.
-
Eine
Vorrichtung, die bei Niveau 2 betrieben wird, verwendet rotierende
Schlüssel,
um zufällige
oder bösartige
Pakete von Clients, die nicht den Synchronisationskeim für den rotierenden
Schlüssel
enthalten, zurückzuweisen.
Der rotierende Schlüssel
entspricht einer speziellen Klasse von Schlüsseln, die es ermöglicht, dass
dem Empfänger
der Pakete ein variables Fenster von gültigen rotierenden Paketschlüsseln zur
Verfügung
gestellt wird. Einmal verwendet, kann kein Paketschlüssel in
einer einzelnen Synchronisation erneut benutzt werden. Das Rotieren
der Schlüssel
innerhalb des gleitenden Fensters erfolgt, da jedes Paket bestätigt oder
zeitlich begrenzt ist. Die Fensternatur dieses Schemas richtet sich
an eine variable Gültigkeitsdauer,
die für
jede IP eindeutig ist und an eine Außer-der-Reihe-Paketflexibilität. Eine
Synchronisation des rotierenden Schlüsselfensters des Empfängers wird
aufrecht erhalten, da ein Gleitender-Durchschnitt-Fenster, in dem
die empfangenen gültigen
Pakete empfangen werden, verwendet wird, um die Position des Fensters
des Empfängers
zu berechnen.
-
Die
Verwendung einer systolischen Verarbeitung der Paketschlüssel ermöglicht es,
dass der Client die Länge
des Schlüssels
steuert und damit die maximale momentane Verarbeitungslast, die
erforderlich ist, um die Paketschlüssel zu authentifizieren. Eine
Authentifizierung wird weiterhin beschleunigt, indem die Paket-LBA
verwendet wird, um die Paket-LBA in eine viel kleinere Gruppe von
Schlüsseln
innerhalb des gleitenden Fensters zu indexieren.
-
Eine
Paketvalidierung mit rotierendem Schlüssel des Niveaus 2 stellt einen
erheblich größeren Schutz zur
Verfügung
als Niveau 0 oder Niveau 1, während
gleichzeitig eine größere Flexibilität bereitgestellt
wird, Daten zwischen Clients gemeinsam zu nutzen. Sie berücksichtigt
auch Sicherheitsfragen in besonderen Fällen, die bei Multicast-Paketen auftreten.
-
Neue
Fenster werden jedes Mal erzeugt, wenn ein Client mit einer eindeutigen
MAC oder IP eine Synchronisation durchführt. Jedes eindeutige Autorisierungsfenster
kann unabhängig
hinsichtlich der Fenstergröße, Lebensdauer
und Schlüssellänge konfiguriert
werden. Nicht verwendete Fenster werden freigegeben, wenn sie nach
ihrer Lebensdauer ungebraucht verbleiben. Es sollte angemerkt werden,
dass Multicast-Empfänger
ihre eigenen Fenster aufweisen, wobei jedoch die Parameter des Fensters
für alle
Teilnehmer des Multicast identisch sind.
-
Der
rotierende Schlüssel
würde in
optimaler Weise am Ende des Pakets angeordnet werden, so dass sichergestellt
ist, dass alle Daten vor dem gültigen
Schlüssel
empfangen worden sind. Dies verhindert böswillige oder zufällige Manipulation
der Daten in einem von einem gültigen
Client gesendeten gültigen
Paket.
-
Eine
Vorrichtung, die in einem Niveau 3 betrieben wird, verwendet rotierenden
Schlüssel
und eine Hardware-MAC, um zufällige
oder böswillige
Pakete von Clients, die keinen Synchronisationskeim für den rotierenden
Schlüssel
aufweisen oder nicht dem ursprünglichen
Client entsprechen, zurückzuweisen.
-
Der
rotierende Schlüssel
des Niveaus 3 mit der zusätzlichen
Hardware-Paketvalidierung
stellt den im Wesentlichen größten Schutz
vor einem zufälligen
oder böswilligen
Zugriff auf eine Vorrichtung zur Verfügung. Das zusätzliche
Niveau der Sicherheit über
dem Niveau 2 fällt
zu Lasten des gemeinsamen Zugriffs zwischen den Vorrichtungen. Dieses
Sicherheitsniveau ist hauptsächlich
für einen
Hochsicherheitszugriff zwischen zwei Vorrichtungen gedacht.
-
Eine
Vorrichtung, die bei Niveau 4 betrieben wird, fügt einen Daten-Authentifizierungs-Code
(DAC: Data Authentication Coding) den Niveaus 0 bis 3 des Transportmechanismus
hinzu, um es dem Empfänger
zu ermöglichen,
zu überprüfen, dass
die LBA und die Daten nicht zufällig
oder böswillig
bei der Übertragung
modifiziert werden. Es ist vorgesehen, dass jeder bekannte oder
noch zu entwickelnde DAC-Algorithmus für diesen Zweck verwendet werden
kann.
-
Eine
Vorrichtung, die bei Niveau 5 betrieben wird, fügt eine Verschlüsselung
der LBA den Niveaus 0 bis 4 hinzu. Niveau-5-Operationen erfordern,
dass der LBA eines Pakets durch die Verwendung eines Algorithmus
auf eine den Niveaus 3 und 4 ähnliche
Weise verschlüsselt
wird. Das Verschlüsseln
der LBA verweigert potenziell böswilligen
Quellen ein Ausspähen
von LBA-Histogrammen, um zu helfen, einen Angriff auf empfindliche
Bereiche eines Speicherbereichs, wie z.B. einen Abschnitt, der zum
Speichern von Dateisystemverzeichnissen verwendet wird, zu erkennen.
Die LBA sollte mithilfe eines verschiedenen Schlüssels und Algorithmus verschlüsselt werden,
als für
den rotierenden Autorisierungsschlüssel verwendet wird. Die Verwendung
von unterschiedlichen Algorithmen, Keimen und Schlüsseln hilft,
böswillige
Clients davon abzuhalten, den Autorisierungsschlüssel mithilfe bekannter LBA-Zugriffsmuster
statistisch zu decodieren.
-
NAIS-Speichersysteme
-
Mit
Bezug auf 31 ist ein NAIS-Speichersystem 3110 aus
mehreren Vorrichtungen 3121 bis 3124 über ein
drahtloses Netzwerk angeschlossen. Das Speichersystem 3110 umfasst
mehrere alloziierte Speicherbereiche 3111 bis 3114,
wobei jeder Speicherbereich einer IP-Adresse und einem Namen zugeordnet
ist, und wobei NAIS 3110 auch einer IP-Adresse zugeordnet
ist (die manchmal als die "Root-IP" bezeichnet wird).
Die NAIS-Speichersysteme sind vorzugsweise ausgebildet, um jedes
der Befehlspakete des PSAN-Protokolls auf folgende Weise zu behandeln.
-
Eine
Clientvorrichtung, die zusätzlichen
Speicher erhalten möchte,
wird zunächst
eine NAIS-Speichervorrichtung in dem Netzwerk identifizieren und
dann eine TRANSFER-Anfrage senden, die anfragt, dass eine bestimmte
Speichermenge alloziiert wird. Die NAIS-Vorrichtung antwortet auf
die Anfrage, indem die angefragte Speichermenge alloziiert wird
(möglicherweise
in Verbindung mit weiteren NAIS-Vorrichtungen),
indem eine IP-Adresse, die dem Speicher zugeordnet ist, erhalten
wird und indem sowohl die erhaltene IP-Adresse und der von dem Client
bereitgestellte Namen dem Speicher zugeordnet werden. Wenn die NAIS-Speichervorrichtung
nachfolgend abgeschaltet oder auf sonstige Weise zeitweilig von
einem Netzwerk entfernt wird, wird sie Ersatz-IP-Adressen anfragen,
wenn diese mit einem Netzwerk wieder verbunden wird. Da IP-Adressen
sich von Zeit zu Zeit ändern
können,
werden NAIS-Speichersysteme auch angepasst, um auf NAME-RESOLUTION-REQUEST-Befehle zu antworten,
um es Vorrichtungen zu ermöglichen,
die aktuellen IP-Adressen über
die Verwendung von Namen, die den alloziierten Speicherbereichen
zugeordnet sind, zu erhalten. Die NAIS-Speichervorrichtungen sind
auch ausgebildet, um auf FIND-Anfragen auf eine zuvor beschriebene
Weise zu antworten.
-
Eine
Clientvorrichtung, die anfragt, Daten in einen alloziierten Speicherbereich
einer NAIS-Speichervorrichtung zu schreiben, sendet ein TRANSFER-Paket,
das eine Split-ID
umfasst, die aus der IP-Adresse, die dem Speicherbereich zugeordnet
ist und einer LBA besteht, die einen Block innerhalb des Speicherbereichs identifiziert.
Die NAIS-Speichervorrichtung
ersetzt nach dem Empfang und der Authentifizierung des Pakets die
Inhalte des Speicherblocks, der durch die Split-ID identifiziert
wird, durch den Datenabschnitt des empfangenen TRANSFER-Pakets und
sendet nachfolgend ein ACK-Paket, das dem Client mitteilt, dass
die Übertragung
ohne Fehler erfolgt ist, oder ein ERROR-Paket, das angibt, dass
ein Fehler während
der Übertragung aufgetreten
ist.
-
Eine
Clientvorrichtung, die Daten von einem alloziierten Speicherbereich
einer NAIS-Speichervorrichtung
empfangen möchte,
sendet ein REQUEST-Paket, das eine Split-ID umfasst, die aus einer IP-Adresse,
die dem Speicherbereich zugeordnet ist, und einem LBA, der einen
Block innerhalb des Speicherbereichs identifiziert, zusammengesetzt
ist. Die NAIS-Speichervorrichtung antwortet nach dem Empfang und
der Authentifizierung des Pakets mit einem TRANSFER-Paket, das die
Inhalte des angefragten Blocks enthält oder mit einem ERROR-Paket,
das angibt, warum die Übertragung
nicht vollständig
durchgeführt
werden konnte. Wenn die Clientvorrichtung eine Modifikation des
angefragten Datenblocks nach seiner Übertragung verhindern möchte, kann
der Client ein REQUEST-LOCK-Paket anstelle eines REQUEST-Pakets
verwenden.
-
Im
Allgemeinen sollten NAIS-Speichersysteme angepasst werden, um nicht
berechtigten Zugriff auf alloziierte Speicherbereiche zu verhindern
und zumindest eines der hierin beschriebenen Authentifizierungsniveaus
implementieren. Wenn ein alloziierter Speicherbereich nicht weiter
benötigt
wird, kann der Client einen RELEASE-PARTITION-Befehl senden. Die
NAIS-Vorrichtungen antworten auf einen solchen Befehl, indem sie die
Inhalte des Speicherbereichs löschen
und anschließend
den freigegebenen Speicher für
nachfolgende Alloziierungen verfügbar
machen. Die Inhalte eines alloziierten Speicherbereichs sollten
nie von einem Client ohne Autorisierung des alloziierenden Clients
zugreifbar sein. In bevorzugten Ausführungsformen ist eine NAIS-Vorrichtung
nicht in der Lage, auf die Inhalte eines Speicherbereichs ohne Autorisierung
des alloziierenden Clients zuzugreifen, und ein Wiederherstellen
eines Speichers von einer alloziierten Partition kann nur nach dem
Empfang eines autorisierten RELEASE-PARTITION-Befehls erreicht werden
oder indem alle alloziierten Speicherbereiche einer NAIS-Speichervorrichtung
fallen gelassen werden.
-
Vorrichtungsübergreifende
Speichersysteme
-
In 32 sind
ein Client 3210 und NAIS-Speichervorrichtungen 3221 und 3222 mit
einem Netzwerk 3230 verbunden. Der Client 3210 hat
ursprünglich
bei der NAIS 3221 für
eine Alloziierung von Speicherplatz angefragt, der den auf der NAIS 3221 verfügbaren Speicherplatz übersteigt.
Somit hat die NAIS 3221 weiterhin angefragt, dass der Speicherplatz,
den diese nicht bereitstellen kann, von der NAIS 3222 bereitgestellt
wird. Die Tatsache, dass der alloziierte Speicherplatz 3223 NAIS-Vorrichtungen übergreift,
ist im Wesentlichen dem Client 3210 transparent, da die
einzige Angabe, die er erhalten kann, dass ein solches Übergreifen
erfolgt, darin besteht, dass er sieht, dass die IP-Adresse, die
von der NAIS 3221 zurückgegeben
wird, einer Multicast-IP-Adresse entspricht. Obwohl Multicasting
das bevorzugte Verfahren zum Implementieren eines Übergreifens
ist, können
Verfahren, die für
Nicht-NAIS-Speichervorrichtungen
anwendbar sind, im Allgemeinen auch über NAIS-Speichervorrichtungen implementiert
werden.
-
Speichersysteme, die gespiegelt
werden
-
In 33 sind
ein Client 3310 und NAIS-Speichervorrichtungen 3321 und 3322 miteinander über das Netzwerk 3330 verbunden.
In dem gezeigten System verwendet der Client 3310 eine
Multicast-IP-Adresse, um sowohl mit dem NAIS 3321 als auch
mit 3322 zu kommunizieren. Die anfängliche Alloziierung des Speicherbereichs
auf beiden NAIS-Vorrichtungen kann durch den Client 3310 vorgenommen
werden, der die Alloziierung von Speicherplatz auf beiden Vorrichtungen
anfragt und dann kann eine Multicast-IP-Adresse festgelegt werden,
die verwendet werden soll, um auf jeden der alloziierten Speicherbereiche
zuzugreifen. Alternativ kann der NAIS 3321 so konfiguriert
werden, dass jede Anfrage nach einer Alloziierung von Speicherplatz zu einer
entsprechenden Anfrage von dem NAIS 3321 zu dem NAIS 3322 führt und
eine Multicast-IP-Adresse von dem NAIS 3321 an den Client 3310 zurückgegeben
wird.
-
RAID-Speichersysteme
-
Die
oben beschriebenen Verfahren hinsichtlich des Spiegelns und des Übergreifens
können
verwendet werden, um RAID-Speichersysteme (RAID: Redundant Array
of Independent Disks) zu entwickeln. Bei einigen Ausführungsformen
umfasst das RAID-System Vorrichtungen, die individuell über ein
Netzwerk zugreifbar sind. In anderen Fällen kann ein RAID-System ein
reserviertes Netzwerk umfassen, das NAIS-Vorrichtungen mit einem Controller verbindet,
der das RAID-System von allen weiteren NAIS-Vorrichtungen nicht
unterscheidbar macht und die Notwendigkeit eliminiert, dass Vorrichtungen,
die das RAID-System verwenden, Sendeadressen verwenden müssen. In
einem solchen Fall kann der Controller einfach den SID von eintreffenden Paketen
in eine Sende-IP-Adresse und eine LBA für die Verwendung in dem internen
Netzwerk übersetzen. Mit
Bezug auf 34 umfasst ein RAID-System 3401 ein
Netzwerk 3410, NAIS-Speichervorrichtungen 3421 bis 3423 und
einen Controller 3430, der mit einem Netzwerk 3440 und
dem Netzwerk 3410 verbunden ist. Die NAIS-Speichervorrichtungen 3421 bis 3423 weisen
bevorzugte Eigenschaften von NAIS-Speichervorrichtungen, die oben
beschrieben sind, auf.
-
Beispiel – Persönlicher
Computerspeicher
-
Mit
Bezug auf 35 ist ein System mit einem
Netzwerk 3510, Personalcomputern 3521 und 3522, DHCP-Server/NAT-Brücke 3540 und
einer NAIS-Speichervorrichtung 3550 gezeigt.
Der NAIS 3550 erhält IP-Adressen
für alloziierte
Speicherbereiche von dem DHCP-Server/NAT-Brücke 3540. Personalcomputer 3521 und 3522 erhalten
Speicher von dem NAIS 3550 und kommunizieren mit der NAIS-Speichervorrichtung 3550 mithilfe
des PSAN-Protokolls. Die NAIS-Speichervorrichtungen 3550 weisen
die bevorzugten Eigenschaften von NAIS-Speichervorrichtungen, die oben beschrieben
sind, auf.
-
Beispiel – Digitale
Einzelbild- und Videofotografie
-
Mit
Bezug auf 36 ist ein System mit einem
Netzwerk 3610, einer Digitalkamera 3621, einer
Videokamera 3622, einem Fernseher 3630, einem
DHCP-Server/NAT-Brücke 3640 und
einer NAIS-Speichervorrichtung 3650 gezeigt. Die Kameras 3621 und 3622 erhalten
Speicher von der NAIS 3650 und verwenden diesen Speicher
zum Speichern von digitalen Bildern und Videos. Der Fernseher 3630 kann
nach dem Empfang einer Autorisierung von den Kameras 3621 und 3622 verwendet
werden, um die Videos und Fotografien anzusehen, die in den Kameras 3621 und 3622 enthalten
sind und/oder auf dem NAIS 3650 gespeichert sind. Der NAIS 3650 erhält IP-Adressen für alloziierte
Speicherbereiche von dem DHCP-Server/NAT-Brücke 3640. Die NAIS-Speichervorrichtungen 3550 weisen
die bevorzugten Eigenschaften von NAIS-Speichervorrichtungen, die
oben beschrieben sind, auf. PSAN-Pakete werden von verschiedenen
Vorrichtungen für
die Kommunikation und Datenübertragung über das
Netzwerk 3610 verwendet.
-
Beispiel – Persönliche Videorecorder
und Settop-Boxen
-
Mit
Bezug auf 37 ist ein System mit einem
Kabelprogramm-Netzwerk 3710, Tunern 3721 und 3722,
einem IP-Netzwerk 3730, NAIS-Speichervorrichtungen 3741 und 3742,
Decodern 3751 und 3752 und Fernsehern 3761 und 3762 gezeigt.
Die NAIS-Speichervorrichtungen 3750 weisen die bevorzugten
Eigenschaften von NAIS-Speichervorrichtungen,
die oben beschrieben sind, auf. Die Tuner 3721 und 3722 empfangen
Programme, die auf dem Kabelprogramm-Netzwerk 3710 gesendet
werden, und speichern jedes dieser Programme auf den NAIS-Speichervorrichtungen 3741 und 3742.
Die Decoder 3751 und 3752 empfangen die so gespeicherten
Sendungen von den Vorrichtungen 3741 und/oder 3742 und
zeigen diese auf den Fernsehern 3761 und 3762 an.
PSAN-Pakete werden von den verschiedenen Vorrichtungen für die Kommunikation und
die Datenübertragung über das
Netzwerk 3710 verwendet.
-
Eigenschaften
der Ausführungsformen
-
Tabelle
3 stellt alternative und/oder zusätzliche Beschreibungen zur
Verfügung,
die alternative Ausführungsformen
charakterisieren, die der erfindungsgemäße Gegenstand umfasst, sind
jedoch nicht darauf beschränkt.
Auf jede Beschreibung in der Tabelle kann durch Angeben einer Gruppe
und einer Nummer Bezug genommen werden, so dass die Beschreibung
A1 der ersten Beschreibung in der A-Gruppe entspricht. Zusätzliche
Details können
in der gleichzeitig eingereichten PCT-Anmeldung Nr. ..., mit dem Titel "Data Storage Devices
Having IP Capable Partitions" und
der PCT-Anmeldung Nr. ... mit dem Titel "Electrical Devices With Improved Communication" gefunden werden,
dessen Offenbarungen hierin durch Inbezugnahme eingeschlossen sind.
-
-
-
-
-
-
-
-
-
Somit
sind bestimmte Ausführungsformen
und Anwendungen der Kommunikationsverfahren und Protokolle sowie
Vorrichtungen, die ein externes Adressieren von internen Speicherbereichen
verwenden, offenbart worden. Es sollte jedoch für einen Fachmann offensichtlich
sein, dass viele weitere Modifikationen neben den bereits beschriebenen
möglich
sind, ohne von den erfindungsgemäßen Konzepten,
die hierin beschrieben sind, abzuweichen. Der Erfindungsgegenstand
ist daher, außer
durch den Bereich der beigefügten
Ansprüche, nicht
hierdurch beschränkt.