Zum Inhalt springen

File Transfer Protocol

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Januar 2005 um 19:40 Uhr durch 172.178.55.224 (Diskussion) (Beispiele für FTP-Server:). Sie kann sich erheblich von der aktuellen Version unterscheiden.
FTP im TCP/IP-Protokollstapel
Anwendung FTP
Transport TCP
Netzwerk IP
Netzzugang Ethernet Token
Ring
FDDI ...

Das File Transfer Protocol (engl., "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.

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:


  • Beim Active Mode baut der Server von seinem Port 20, dem Data Port, eine Datenverbindung zu einem vom Client gewählten Endpunkt auf. Dieser Endpunkt ist typischerweise ein Port des Clients der jenseits 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (sogenanntes FXP).

Die Kommunikation mit Befehlen erfolgt auf dem Port 21. Somit bleibt es möglich, dass während der Übertragung von Daten die Partner noch immer miteinander kommunizieren können.

  • Beim Passive Mode baut der Client eine Datenverbindung zum vom Server gewünschten Port auf. Hier wird typischerweise von beiden Seiten ein Port jenseits 1023 benutzt.

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.


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 anything
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.

Beispiele für FTP-Clients:

Fast alle Webbrowser haben ebenfalls FTP implementiert und können als Clients für den Download von Dateien benutzt werden. Beispiel-URL für FTP: ftp://ftp.rfc-editor.org/

Der Benutzername und das Passwort können auch direkt in die URL eingebaut werden: ftp://login:password@ftp.rfc-editor.org In Benutzernamen oder Kennwörtern, die ein @ enthalten, sollte dieses durch %40 ersetzt werden.

Die gebräuchlichsten ftp-Kommandos

Die gebräuchlichsten Kommandos des Kommandozeilenprogramms "ftp", welches FTP auf der Client-Seite versteht. (Bei einem grafischen FTP Programm funktioniert die Bedienung auf Klick.)

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.

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.
! cmd Führt den Befehl cmd auf dem lokalen Rechner aus.

Beispiel: ! pwd gibt das aktuelle lokale Verzeichnis aus

Beispiele für FTP-Server:

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").

Vorlage:WikiReader Internet