Zum Hauptinhalt springen

2.3 Das FTP-Modell (THE FTP MODEL)

Mit den oben genannten Definitionen im Hinterkopf kann das folgende Modell (dargestellt in Abbildung 1) für einen FTP-Service diagrammiert werden.

                                            -------------
|/---------\|
||Benutzer || --------
||Interface|<--->|Benutzer|
|\---------/| --------
---------- | User-PI |
|/------\| FTP-Befehle | User-DTP |
||Server|<---------------->| |
|| PI || FTP-Antworten-------------
|\------/|
|/------\|
||Server||
|| DTP ||
|\------/|
----------

Server-FTP User-FTP

Abbildung 1 Modell für die FTP-Nutzung

In diesem Modell initiiert ein Benutzer-Protokollinterpreter (User-PI) die Steuerungsverbindung. Die Steuerungsverbindung folgt dem Telnet-Protokoll, und auf Initiative des Benutzers wird ein Standardsatz von Befehlen und Antworten zwischen dem User-PI und dem Server-PI gesendet. Diese Verbindung wird für die Übertragung von Befehlen verwendet, die die auszuführenden Funktionen beschreiben, und die Antworten auf diese Befehle. Diese Befehle können anzeigen, dass eine zweite Verbindung, eine Datenverbindung, hergestellt werden muss, um die Datenübertragungsfunktion auszuführen. Der Benutzer-Datenübertragungsprozess (User-DTP) sollte am angegebenen Datenport „lauschen" (listen), und dies sollte VOR dem Senden des Übertragungsanforderungsbefehls erfolgen. Der Server initiiert die Datenverbindung von seinem Datenübertragungsprozess (Server-DTP) und verbindet sich mit dem lauschenden Datenport. Die Richtung der Verbindungsherstellung ist wichtig. In einer alternativen Situation könnte der Benutzer die Datenverbindung zum Server-DTP initiieren. Diese Klasse von Verbindung ist als passiv (Passive) definiert.

Die Datenverbindung wird für die Übertragung geöffnet und geschlossen, wenn die Übertragung abgeschlossen ist. Die über die Datenverbindung übertragenen Daten umfassen Daten, die auf dem Server-Host gespeichert werden sollen, oder Daten, die vom Server-Host abgerufen werden, oder Daten, die für die Ausführung einer serverseitigen Funktion verwendet werden sollen. Im dritten Fall können die über die Datenverbindung übertragenen Informationen für die Verwendung durch ein Anwendungsprogramm am Serverstandort bestimmt sein, anstatt tatsächlich als Datei gespeichert zu werden. Diese allgemeinen Verwendungszwecke für eine Datenverbindung existieren für Abruf, Speicherung und Ausführung am Serverstandort.

Kommunikation (COMMUNICATION)

Der User-PI und der Server-PI führen das Benutzerprotokoll aus, indem sie den Standardsatz von FTP-Befehlen austauschen. Die Datenübertragung wird durchgeführt, indem Daten über eine separate Datenverbindung übertragen werden. Dieses Verfahren ermöglicht es, dass Steuerung und Datenübertragung auf unabhängigen Pfaden erfolgen.

Der User-PI initiiert alle Befehle, und der Server-PI antwortet mit FTP-Antworten. Der User-PI kann mehr als einen FTP-Befehl senden, ohne auf eine Antwort zu warten. Der Server-PI wird auf jeden gesendeten FTP-Befehl in der Reihenfolge antworten, in der die Befehle empfangen wurden. Die Antworten können verzögert werden, wenn der Server-PI als Ergebnis eines vorherigen Befehls eine langwierige Operation durchführt. Wenn dies geschieht, kann der Server-PI eine vorläufige Antwort (Preliminary Reply) senden, die anzeigt, dass der Befehl empfangen wurde, aber die Verarbeitung noch nicht abgeschlossen ist. Wenn die Operation abgeschlossen ist, sendet der Server-PI die Abschlussantwort (Completion Reply).

FTP-Antworten sind so konzipiert, dass sie die Synchronisation von Anfragen und Aktionen im Prozess der Dateiübertragung gewährleisten und garantieren, dass der Benutzerprozess immer den Zustand des Servers kennt. Jeder Befehl muss mindestens eine Antwort erzeugen, obwohl es mehr als eine geben kann. Im letzteren Fall müssen die mehrfachen Antworten leicht zu unterscheiden sein. Darüber hinaus treten einige Befehle in sequenziellen Gruppen auf, wie USER, PASS und ACCT oder RNFR und RNTO. Die Antworten zeigen die Existenz eines Zwischenzustands an, wenn alle vorhergehenden Befehle erfolgreich waren. Ein Fehler an irgendeinem Punkt in der Sequenz erfordert die Wiederholung der gesamten Sequenz von Anfang an.

Datenverbindungen (DATA CONNECTIONS)

Die Mechanik der Datenübertragung besteht darin, die Datenverbindung zu den geeigneten Ports einzurichten und die Parameter für die Übertragung zu wählen. Beide Seiten müssen sich über die Parameter für die Datenverbindung einig sein, bevor die Übertragung stattfinden kann. Diese Parameter bestehen aus: dem Datenport, dem Darstellungstyp, der Struktur und dem Übertragungsmodus.

Der Darstellungstyp definiert die Art und Weise, wie die Dateidaten dargestellt werden. Dies umfasst den Datentyp (ASCII, EBCDIC oder Image) und die Formatsteuerung. Die Struktur definiert die Art und Weise, wie die Datei strukturiert ist. Drei Strukturen werden unterstützt: Datei-Struktur, Datensatz-Struktur und Seiten-Struktur. Der Übertragungsmodus definiert, wie die Daten übertragen werden. Drei Übertragungsmodi sind definiert: Stream-Modus, Block-Modus und komprimierter Modus.

Die Auswahl dieser Parameter wird durch den Austausch von FTP-Befehlen und Antworten zwischen dem User-PI und dem Server-PI verhandelt. Die Standardwerte für diese Parameter sind im Protokoll definiert. Wenn keine Parameter vom Benutzer angegeben werden, werden die Standardwerte angenommen.