File Transfer Protocol

Modèle:Vorlage:IPStack Das File Transfer Protocol (engl. für "Dateiübertragungsverfahren", kurz FTP), ist ein in RFC 959 spezifiziertes Netzwerkprotokoll zur Dateiübertragung über TCP/IP-Netzwerke. FTP ist in der Anwendungsschicht des TCP/IP Protokollstapels angesiedelt. Es wird benutzt, um Dateien vom Server zum Client (Download), vom Client zum Server (Upload) oder clientgesteuert zwischen zwei Servern zu übertragen. Neben dem File Transfer Protocol (FTP) gibt es auch noch das IBM Transfer Protocol welches die Verbindung von PC zu Mainframe Umgebungen ermöglicht.

Anders als z.B. HTTP benutzt FTP zur Kommunikation mehr als eine Verbindung: Zunächst wird zum Port 21 des Servers, dem Control Port, eine Verbindung zur Authentifizierung und Befehlsübertragung aufgebaut. Hier reagiert der Server auf jeden Befehl des Clients mit einem Statuscode, oft mit einem angehängten, erklärenden Text. Zur eigentlichen Datenübertragung wird dann im Bedarfsfall eine separate Verbindung initiiert. FTP kennt dazu zwei Modi:

Die Kommunikation mit Befehlen erfolgt auf dem Port 21. Man spricht auch von der Steuerung "Out of Band". Somit bleibt es möglich, dass während der Datenübertragung die Partner noch immer miteinander kommunizieren können.

Diese Technik wird eingesetzt, wenn der Client z.B. hinter einem Router sitzt, da ihm nicht eindeutig eine IP-Adresse zugeordnet werden kann.

Viele FTP-Server, vor allem Server von Universitäten und Fachhochschulen, bieten so genanntes Anonymous FTP an. Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise "anonymous", vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss.

Inhaltsverzeichnis

Sicherheit

FTP benutzt sowohl zur Authentifizierung als auch zur Datenübertragung standardmäßig jeweils unverschlüsselte Kanäle. Dadurch lassen sich z. B. übertragene Passwörter sehr leicht abhören; im Fall eines Man-In-The-Middle-Angriffs ist sogar die unbemerkte Veränderung von Dateien während der Übertragung möglich. RFC 2228 stellt allerdings einen Mechanismus bereit, auf den aufbauend ein Standard TLS-gesicherte Authentifizierung und Datenübertragung ermöglichen soll ("FTP-TLS", auch "FTPS").

Die gebräuchlichsten ftp-Kommandos

Die gebräuchlichsten Kommandos des Kommandozeilenprogramms "ftp", welche FTP auf der Client-Seite versteht:

Befehl Beschreibung
open Öffnet eine Verbindung zum Server
user Definiert das Benutzerkonto des Benutzers, der sich einloggen will
close Beendet eine Verbindung zum Server.
quit Beendet das FTP-Programm.
bye Beendet eine Verbindung zum Server und beendet das FTP-Programm.
cd Wechselt in ein anderes Verzeichnis auf dem ftp-Server. Statt "\" wie unter DOS und Windows wird als Trennzeichen der normale Schrägstrich "/" (Unix-Konvention) verwendet.
lcd Wechselt in ein anderes Verzeichnis auf dem lokalen System. Wird nur "lcd" eingegeben, gibt das FTP-Programm das aktuelle lokale Verzeichnis aus.
list Fordert das Ergebnis eines Verzeichnisdurchsuchung auf. Es können auch das zu durchsuchende Verzeichnis und ein Suchmuster angegeben werden.
asc Schaltet in den ASCII Übertragungsmodus. Wichtig, wenn auf Server und Client verschiedene Betriebssysteme laufen, die unterschiedliche Organisation von Textzeilen (Windows, Un*x vs. VMS) bzw. Zeilenende-Kennzeichnung (CR, LF, CR+LF) verwenden.
bin Schaltet bei älteren Clients in den binären Übertragungsmodus. Im ASCII Modus werden z.B. ZIP-Archive oder Bilder nicht korrekt übertragen.
get Kopiert eine Datei vom Server auf den lokalen Rechner. Das Kopieren funktioniert aber nur, wenn man Leserechte auf dem Server hat.
put Kopiert eine Datei vom lokalen Rechner auf den Server. Funktioniert aber nur, wenn man Schreibrechte auf dem Server hat. Viele Server stellen für diesen Zweck ein incoming-Verzeichnis zur Verfügung, in das Dateien abgelegt werden dürfen.
mget Kopiert eine oder mehrere Dateien vom Server auf den lokalen Rechner. Vor jedem Kopiervorgang wird die Datei angezeigt und der Anwender gefragt, ob diese übertragen werden soll. Dies kann man mit dem ftp-Kommando "prompt" ab- und anschalten. Das Kopieren funktioniert aber nur, wenn man Leserechte auf dem Server hat.
mput Kopiert eine oder mehrere Dateien vom lokalen Rechner auf den Server. Vor jedem Kopiervorgang wird die Datei angezeigt und der Anwender gefragt, ob diese übertragen werden soll. Dies kann man mit dem ftp-Kommando "prompt" ab- und anschalten.

Das Kopieren funktioniert aber nur, wenn man Schreibrechte auf dem Server hat. Viele Server stellen für diesen Zweck ein incoming-Verzeichnis zur Verfügung, in das Dateien abgelegt werden dürfen.

pass Schaltet zwischen Active Mode und Passive Mode um.
prompt Damit kann man die Rückfragen bei dem Kommandos mget und mput an- oder abschalten.
pwd Gibt das aktuelle Verzeichnis auf dem ftp-Server aus
mkdir Erzeugt ein neues Verzeichnis auf dem Server
delete Löscht eine Datei auf dem Server.
mdelete Löscht mehrere Dateien über eine Maske
rename Mit dieser Funktion können Dateien und Verzeichnisse auf dem Server umbenannt werden. Abkürzung: ren
! cmd Führt den Befehl cmd auf dem lokalen Rechner aus.

Beispiel: ! pwd gibt das aktuelle lokale Verzeichnis aus

retr Eine Datei wird vom Server kopiert.
cwd Wechselt zu einem Verzeichnis.
rest Transfer neu starten.
stor Datei zum Server kopieren.

Beispiel

Eine Beispielsitzung, die Anonymous FTP und Passive Mode nutzt:

220 FTP.FU-Berlin.DE ready.
 
 USER anonymous
 331 Anonymous login ok, send anything as password.
 
 PASS anonymous@foobar.com
 230 FTP.FU-Berlin.DE login ok.
 
 CWD /doc/jargon
 250 CWD command successful.
 
 PWD
 257 "/doc/jargon" is current directory.
 
 PASV
 227 Entering Passive Mode (130,133,1,100,202,162).
 
 LIST
 150 Opening ASCII mode data connection for file list
 226 Transfer complete.
 
 PASV
 227 Entering Passive Mode (130,133,1,100,237,201).
 
 RETR jargon.html
 150 Opening ASCII mode data connection for jargon.html (2360016 bytes)
 226 Transfer complete.
 
 QUIT
 221 Goodbye.
 

Siehe auch

Weblinks

Dieser Artikel ist Teil des WikiReader Internet. Dies bedeutet, dass der Artikel zusammen mit anderen Artikeln in ein PDF eingearbeitet ist und es dadurch einen gebündelten Überblick über das Thema Internet gibt.

See also: File Transfer Protocol, Authentifizierung, Client, Datenübertragung, Download, Englische Sprache, FXP, HTTP, Internet-Protokoll-Familie