Das FTP Protokoll (File Transfer Protocol)

November 2016

Einführung in FTP Protokoll

Das FTP Protokoll ( File Transfer Protocol) ist, wie dem Namen zu verstehen, ein Protokoll gewidmet dem Datentransfer.

Das FTP Protokoll wurde 1971 eingerichtet; zu dem Zeitpunkt wurde ein DatentransferProzess (beschrieben in dem RFC RFC 141) zwischen den Rechner des MIT (Massachussetts Institute of Technology) entwickelt. Zahlreiche RFCs trugen seitdem zu Verbesserungen am Basisprotokoll zu, aber die grössten Errungenschaften stammen aus dem Jahre 1973.

Das FTP Protokoll wird Heutzutage vom RFC 959 (File Transfer Protocol (FTP) - Specifications).

Die Aufgabe des FTP Protokoll

Das FTP Protokoll beschreibt die Art und Weise nach der Daten im Netz TCP/IP übertragen werden.

Die Ziele des FTP Protokoll sind :

  • Der Austausch vo Dateien zwischen entfernten Rechner
  • Eine Befreiung von Dateisysteme der Client-rechner und Server
  • Daten zuverlässig übertragen

Das Modell FTP

Das FTP Modell unterliegt dem Client-Server Modell, d.h. ein Rechner sendet Befehle (der Client) und der andere Rechner wartet auf Anfragen um bestimmte Aufgaben zu erledigen (Der Server).

Bei einer FTP Verbindung, werden zwei Übertragungskanäle geöffnet :

  • Ein Kanal für die Befehle (Kontrollkanal)
  • Ein Kanal für die Daten

Le modèle FTP

So wachen Client sowie Server über zwei Prozesse die diese beiden Informationstypen verwalten :

  • Das DTP (Data Transfer Process), der Prozess der die Verbindung aufstellt ind die Datenkanäle überwacht. Das DTP auf Server Seite wird SERVER-DTP genannt, das DTP auf Client Seite USER-DTP
  • Le PI (protocol Interpreter) ist der Protokollinterpreter. Er setzt die, über die Kontrollkanäle empfangenen Befehle zum DTP um. Er ist auf Server und Client verschieden :
    • Der PI-Server horcht auf Kontrollkanalbefehle über einen vom USER-PI geöffneten Port, stellt die Kontrollkanalverbindug her, empfängt und beantwortet auf diesem Kanal die FTP Befehle vom USER-PI und steuert den DTP-Server.
    • Der User-PI stellt die Verbindung zum FTP Server hin, sendet FTP Befehle, empfängt Antworten vom SERVER-PI und steuert wenn notwendit das USER-DTP.

Nach der Verbindung eines FTP Clienten mit dem FTP Server, startet der USER-PI die Verbindung zum Server nach dem Telnet Protokoll. Der Client sendet FTP Befehle zum Server, der sie wiederum interpretiert, steuert sein DTP, und sendet eine Standard Antwort zurück. Wenn die Verbindung zustande kommt, gibt der SERVER-PI den Port für die Übertragung der DTP Client Daten an. Der DTP Client horcht dann auf diesem Port die vom Server stammenden Daten auf.
Es sei wichtig anzumerken, da Kontrollport und Datenport nicht gleich sind, dass die Möglichkeit besteht, Befehle von einem Rechner zu senden und Daten auf einen anderen zu bekommen. So ist beispielsweise möglich, Daten zwischen zwei FTP Server zu übertragen und sich einen Clienten bedienen um die Kontrolleinweisungen zu senden, und Informationen zwischen zwei Prozess-Server übertragen die mit entsprechenden Port verbunden sind.

Transfert de données par FTP entre deux serveurs

In dieser Zusammenstellung zwingt das Protokoll zum Offen Zustand der Kontrollkanäle während des ganzen Datentransfer. Sollte das Kontrollkanal unterbrochen werden, kann der Server die Übertragung anhalten.

Die FTP Befehle

Sämtliche durchgeführte Übertragungen auf dem Kontrollkanal geschehen nach den Empfehlungen des Telnet Protokoll. So sind FTP Befehle Telnet Zeichenketten (nach Code NVT-ASCII) abgeschlossen durch das Telnet code Zeilen-Ende (d.h; die Sequenz <CR>+<LF>, Carriage Return (Wagen-Rücklauf) gefolgt vom Zeichen Line Feed, geschrieben <CRLF>).
Wenn das FTP Befehl mit einem Parameter behaftet werden soll, dann wird dieser duch ein Leerzeichen davon getrennt (<SP>).

Die FTP Befehle schreiben vor :

  • Der verwendente Port
  • Der Datentranfer Modus
  • Die Datenstruktur
  • Die Art der eingeleiteten Handlung (Retrieve, List, Store, ...)

Man unterscheidet drei Befehlstypen :

  • Zugriffskontrollbefehle
  • Transferparameterbefehle
  • FTP Dienstbefehle

Zugriffskontrollbefehle
Befehl Beschreibung
USER Zeichenkette die den Benutzer kenntlich machen. Diese Benutzeridentifizierung ist für das Einleiten der Kommunikation auf dem Datenkanal notwendig
PASS Zeichenkettemit dem Benutzer Passwort. Dieses Befehl folgt unmittelbar dem Befehl USER. Es unterliegt dem Benutzer das Betrachten dieses Befehls zwecks Sicherheitmassnahmen zu verbergen.
ACCT Zeichenkette mit dem Benutzerkonto (account). Das Befehl ist allgemein nicht notwendig. Der Satz ist notwendig wenn, im Falle einer Passwortbestätigung, die Antwort 230 ist, und nicht, wenn die Antwort 332 ist.
CWD Change Working Directory : Das Befehl bewirkt ein Wechsel aus der laufenden Verzeichnis. Es erwartet den Verzeichniszugangsweg als Argument.
CDUP Change to Parent Directory : gibt Zugang zum Vaterverzeichnis. Dieses Befehl wurde eingeführt um das Problem mit der Vaterverzeichnisbenennung bei bestimmten Système (oft "..") auszuschalten.
SMNT Structure Mount :
REIN Reinitialize :
QUIT Das Befehl beendet die laufende Sitzung.Der Server wartet eventuell auf den laufende Tranfer, gibt ie entsprechende Antwort ab, und schliesst dieVerbindung.

Transferparameter Befehle
Befehl Beschreibung
PORT Zeichenkette mit der Nummer des verwendeten Port
PASV Gibt dem DTP Server die Anweisung sich in Wartestellung zu begeben und auf einen willkürliche aber verfügbaren Port zu horchen. Di Antwort auf diesem Befehl ist die IP Adresse der Machine und deren Port.
TYPE Schreibt den Typenformt der zusendende Daten vor.
STRU Telnet Zeichen mit der Dateistruktur (F für File, R für Record, P für Page)
MODE Telnet Zeichen mit dem Datentranfer Modus (S für Stream, B für Block, C für gepackt)

FTP Dienstbefehl
Befehl Beschreibung
RETR Dieses Befehl (RETRIEVE) fragt denDTP Server nach nach eine Kopie der Datei, mit dem Streckenverlauf als Parameter.
STOR Dieses Befehl (store) erbittet den DTP Server um Daten auf dem Datenkanal anzunehmen, und sie in eine Datei zu speichern deren Namen als Parameter übergeben wurde. Wenn die Datei nicht vorhanden ist, wird sie erzeugt, sonst wird sie überschrieben.
STOU Dieses Befehl ist dem vorrigen identisch, mit dem Unterschied dass der Server nach einem eindeutigen Namen gebeten wird. Der Dateiname wird mit der Antwort zurückgesendet.
APPE Mit Hilfe dieses Befehls (append) werden die Daten in eine Datei zusammengekettet mit dem als Argument übergebenen Dateinamen, der erzeugt wird falls nicht vorhanden.
ALLO Dieses Befehl (allocate) bittet den Server um genügend Speicherplatz für die Datei deren Namen als Argument.
REST Dieses Befehl (restart) gestattet die Wiederaufnahme des Transfer von der Bruchstelle an. Dabei wird als Parameter ein Zeiger auf die Abbruchstelle in der Transferdatei übergeben. Dem Befehl folgt unmittelbar ein Transferbefehl.
RNFR Mit dem Befehl (rename from) kann eine Datei umbenannt werden. Es trägt als Argument den umzubenennenden Dateiname und wird gefolgt von RNTO
RNTO Das Befehl (rename to) kann eine Datei umbenannt werden. Es trägt als Argument den umzubenennenden Dateiname und wird fogt unmmitelbar das Befehl RNFR
ABOR Das Befehl (abort) veranlasst den DTP Server sämtliche an dem bevorgehenden Befehl assoziierten Tranferaufträge abzubrechen. Wenn keine Datenverbindung offen ist, führt der DTP Server nichts ausser sie zu schliessen. Der Kontrollkanal bleit dagegen offen.
DELE Dieses Befehl () veranlasst die Löschung einer Datei dern Namen als Argument übergeben wird. Dieses Befehl ist unwiederruflich und kann nur vom Client bestätigt werden.) permet de supprimer le fichier dont le nom est passé en paramètre. Cette commande est irrémédiable, seule une confirmation au niveau du client peut être faite.
RMD Mit dem Befehl (remote directory) kann ein Verzeichnis gelöscht werden. Als Parameter wird der Verzeichnisname übergeben.
MKD Das Befehl (make directory) erzeugt ein Verzeichnis mit dem als Parameter übergebenen Verzeichnisnamen
PWD Das Befehl (print working directory) vermittelt den vollständigen Weg des laufenden Verzeichnis
LIST Das Befehl vermittelt die vollständige Belegung des laufenden Verzeichnisinhalt. Diese Liste wird auf dem Passiv DTP übertragen. Als Befehlsparameter kann ein Verzeichnisname angeheftet werden, der DTP Server sendet dann die Dateiliste in das als Parameter übergebenen Verzeichnis.
NLST Das Befehl (name list) sendet die der Dateien sowie Unterverzeichnisse des aktuellen Verzeichnis
SITE Mit dem Befehl (site parameters) kann der Server, nicht im FTP Protokoll eingebettete Sonderdienste anbieten
SYST Das Befehl (system) das Senden von Informationen an Fernserver
STAT Das Befehl (status) sendet den Server-Status, wenn z.B. der Fortgang des laufenden Transfer benötigt wird. Das Befehl nimmt als Argument den Weg, und übergibt die gleichen Informationen wie LIST zurück auf dem Kontrollkanal
HELP Dieses Befehl gibt die vollständige Liste der Befehle die der Server verarbeiteten kann, bekannt. Diese Informationen werden auf dem Kontrollfanl zurückgetragen
NOOP Das Befehl (no operations) dient legiglich der OK Bestätigung des Server. Es kann nur dazu verwendet werden das abklemmen vom server zu verhindern beim einem zu grossen Aktivitätsmangel.

Die FTP Antworten

FTP Antworten sichern den Synchronlauf zwischen Client und FTP Server. Beim jedem gesendeten Befehl vom Clienten erzeugt der eventuell eine Tat und bringt systematisch eine Antwort.

Die Antworten bestehen aus einem 3-Ziffer Code für die Art der Befehlsbearbeitung des Clientauftrag. Wegen seiner schlechten Lesbarkeit von Menschen, wird er einem Teste versehen (Telnet Zeichenkette getrennt vom Nummerncode durch ein Leerzeichen)

Die Antwortcodes bestehen aus 3 Ziffern. Nachfolgend, ihre Bedeutung :

  • Die erste Ziffer gibt den Status der Antwort an (Erfolg oder Misserfolg)
  • Die zweite Ziffer gibt an worauf sich die Antwort bezieht
  • Die dritte Ziffer gibt eine genauere Beschreibung (bezogen auf die zweite Ziffer)

Erste Ziffer
Ziffer Bedeutung Beschreibung
1 yz Prepositive Antwort Der angegene Auftrag ist in Bearbeitung, eine zweite Antwort soll stattfinden bevor ein zweites Befehl gesendet wird
2 yz positive Erledigungsantwort Der Auftrag wurde abgeabeitet, ein neur wird erwartet
3 yz positive Zwischenantwort Der Auftrag wurde vorläufig angehalten. Zusätzliche Informations werden vom clienten gefragt
4 yz Negativer Auftragsabgang Die Bearbeitung fand wegen Zeitüberschreitung nicht statt. Der Client möge es später versuchen
5 yz Endgültige Absage Dir Bearbeitung des Auftrags fand nicht statt. Der Client soll ihn neu verfassen

Zweite Ziffer
Ziffer Bedeutung Beschreibung
x 0 z Syntax Im Befehl liegt ein Syntaxfehler vor, oder es handelt sich um ein Befehl das der Server nicht versteht
x 1 z Information Antwort mit Informationsinhalt (z.B. Antwort auf STAT Befehl
x 2 z Verbindungen Antwort betrifft das Datenkanal
x 3 z Authentifizierung und Konten Antwort betrifft LOGIN (USER/PASS) oder auch Kontoänderung (CPT)
x 4 z im FTP Protokoll nicht benutzt  
x 5 z Dateisystem Antwort betrifft Das FernDateiSystem

Zusätzliche Informationen

Näheres über das FTP Protokoll, finden Sie in der folgenden Literatur


Lesen Sie auch :


FTP protocol (File Transfer Protocol)
FTP protocol (File Transfer Protocol)
Protocolo FTP (Protocolo de transferencia de archivos)
Protocolo FTP (Protocolo de transferencia de archivos)
Le protocole FTP (File Transfer Protocol)
Le protocole FTP (File Transfer Protocol)
Il protocollo FTP (File Transfer Protocol)
Il protocollo FTP (File Transfer Protocol)
O protocolo FTP (File Transfer Protocol)
O protocolo FTP (File Transfer Protocol)
Das Dokument mit dem Titel « Das FTP Protokoll (File Transfer Protocol) » aus CCM (de.ccm.net) wird zur Verfügung gestellt unter den Bedingungen der Creative Commons Lizenz. Sie dürfen das Dokument verwenden, verändern sowie Vervielfältigungen dieser Seite erstellen, unter den Bedingungen, die in der vorgenannten Lizenz erwähnt sind und unter der gleichzeitigen Bedingung, dass Sie im Rahmen Ihrer Verwendung, Veränderung oder Vervielfältigung nach außen hin klar und deutlich auf den Urheber (= de.ccm.net) des Dokuments hinweisen.