FTP
Was ist FTP?
"FTP" steht für "File Transfer Protocol" und ist die am häufigsten
verwendete Methode um Files über das Internet zu transportieren.
Sie findet immer zwischen einem Client und einem FTP-Server statt, auf
dem der Benutzer mit Name und Passwort angemeldet werden muß. Die
Datenübertragung erfolgt also nur auf Anfrage des Benutzers (im EARN
gibt es auch andere Möglichkeiten).
Wie wird FTP verwendet?
FTP kann von jedem, am Netzwerk angeschlossenen Rechner mittels eines
entsprechenden Clients verwendet werden. Nach Angabe des Zielrechners
und der Benutzerberechtigung auf diesem Rechner kann in der dortigen Dateistruktur
navigiert und es können von und zum Rechner Daten übertragen
werden. Es werden zwei Übertragungsarten unterschieden: "ASCII" und
"BINARY". Im "ASCII" Modus werden alle übertragenen Zeichen übersetzt,
d.h. es erfolgt z.B. eine EBDIC-ASCII Translation oder "Line Feed" wird
durch "Carriage Return & Line Feed" ersetzt. Der "ASCII" Modus ist also
für die Übertragung von Texten geeignet.
Bei Files, die nicht-druckbare Zeichen enthalten, also z.B. ausführbare
oder komprimierte Files, würde die Übersetzung einzelner Zeichen
das jeweilige File natürlich unbrauchbar machen. Der "BINARY" Modus
unterbindet jede Übersetzung und überträgt sozusagen "1:1".
Eine andere Art, binäre Daten zu übertragen, ist deren Codierung
mit "uuencode/uudecode" (DOS, UNIX) oder "BinHex" (Mac). Diese Programme
"übersetzen" Binärfiles in Files aus lauter ASCII-Zeichen mit
einer festen Spaltenbreite von 80 Zeichen. Solche Files können auch
verlustlos als Mail übertragen werden.
Was ist "Anonymous FTP"?
Einige tausend Server stellen Software und Informationen gratis zur Verfügung.
Um nicht jedem Interessenten eine Benutzerberechtigung erteilen zu müssen,
gibt es eine allgemein gültige Benutzername-Passwort Kombination,
der eigentliche Benutzer bleibt anonym. Solche FTP-Server heißen
daher "Anonymous FTP-Server". Der
anonyme Benutzername lautet passenderweise "anonymous" oder kürzer
"ftp", als Passwort wird die Mailadresse des Benutzers verlangt. Es genügt
jedoch meistens, "username@" einzugeben. Während bei der identifizierten
Anmeldung der Benutzer seine jeweilige Directorystruktur vorfindet, haben
viele anonyme FTP-Server einen ähnlichen Directoryaufbau. In diesem
sind meist nur zwei Verzeichnisse für die Benutzer zugänglich:
"/pub" und "/upload". Unter dem Verzeichnis "/pub" (für public) sind
die jeweils angebotenen Files abgelegt, unter "/upload" kann der anonyme
Benutzer Files auf den Server stellen, um diese der Allgemeinheit zugänglich
zu machen.
Einige FTP-Kommandos
Wenn kein graphischer Client verwendet wird, müssen zur Navigation
und Datenübertragung einige Befehle bekannt sein.
Folgende Befehle werden unter anderen von allen FTP-Servern und Clients
verstanden: DIR, CD, PWD, BIN, ASC, GET, PUT, MGET, MPUT, PROMPT. Die Auswirkung
dieser Befehle wird im folgenden kurz demonstriert.
- DIR
Mit dem Befehl "DIR" (Directory) werden alle Dateien und Verzeichnisse
im aktuellen Arbeitsverzeichnis aufgelistet. Er funktioniert wie der
gleichnamige MS-DOS Befehl, jedoch werden die Zugriffsrechte im UNIX-Stil
angezeigt.
ftp ftp.edvz.uni-linz.ac.at
Connected to alijku04.edvz.uni-linz.ac.at.
220 alijku04 FTP server (SunOS 4.1) ready.
Name (ftp.edvz.uni-linz.ac.at:root): ftp
331 Guest login ok, send ident as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> dir
200 PORT command successful.
150 ASCII data connection for /bin/ls (140.78.3.1,2337) (0 bytes).
total 6
dr-xr-xr-x 2 finger weg 512 Apr 22 1992 bin
drwxr-xr-x 2 finger weg 512 Jul 22 12:12 dev
dr-xr-xr-x 2 finger weg 512 Jul 22 12:21 etc
drwxr-xr-x 15 ftp ftp 512 Aug 27 08:48 pub
drwxr-xr-x 10 ftp ftp 512 Sep 6 11:42 upload
drwxr-xr-x 3 finger weg 512 Apr 22 1992 usr
226 ASCII Transfer complete.
366 bytes received in 0.13 seconds (2.8 Kbytes/s)
ftp>
- CD
"CD" (Change Directory) funktioniert ebenfalls so ähnlich wie der
gleichlautende DOS-Befehl und wechselt das aktuelle Verzeichnis. "CD
.." wird ebenso wie die Angabe absoluter Pfadnamen verstanden.
ftp> cd pub
250 CWD command successful.
ftp>
- PWD
"PWD" gibt den Namen des aktuellen Arbeitsverzeichnisses aus.
ftp> pwd
257 "/pub" is current directory.
ftp>
- "ASC" und "BIN"
"ASC" wechselt in den "ASCII-Modus" (default bei Aufbau der Verbindung),
"BIN" stellt auf binäre Übertragung um. Dabei steht das "I"
in der Meldung "Type set to I." für "Image", also Bilddaten, die
natürlich auch auf diese Art übertragen werden müssen.
ftp> asc
200 Type set to A.
ftp> bin
200 Type set to I.
ftp>
- "GET" und "PUT"
Mit "GET" wird ein File vom Server zum Client übertragen, wobei
für den Client ein anderer Filename angegeben werden kann. "PUT"
funktioniert genau umgekehrt, aus dem aktuellen Verzeichnis des Clients
wird ein File in das aktuelle Verzeichnis des Servers übertragen,
so dazu die Berechtigung besteht.
ftp> cd /pub/msdos/netz/gopher
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 ASCII data connection for /bin/ls (140.78.3.1,2361) (0 bytes).
total 1879
-rwxr-xr-x 1 ftp ftp 836 Mar 10 1993 .cache
-rwxr-xr-x 1 ftp ftp 1342 Feb 8 1993 genv.bat
-rw-r--r-- 1 ftp ftp 888666 Oct 11 16:19 gophbook.zip
-rwxr-xr-x 1 ftp ftp 202504 Feb 8 1993 gopher.exe
-rwxr-xr-x 1 ftp ftp 43324 Feb 8 1993 gopher.ovr
-rwxr-xr-x 1 ftp ftp 365942 Feb 8 1993 gopher.zip
-rw-r--r-- 1 ftp ftp 6561 Oct 7 09:14 hgopher.ini
-rw-r--r-- 1 ftp ftp 166633 Oct 7 09:15 hgopher2.zip
drwxr-xr-x 2 ftp ftp 512 Mar 8 1993 os2
-rwxr-xr-x 1 ftp ftp 40136 Feb 8 1993 pcg2.doc
-rwxr-xr-x 1 ftp ftp 141167 Mar 10 1993 pcg2_105.zip
drwxr-xr-x 2 ftp ftp 512 Mar 10 1993 server
226 ASCII Transfer complete.
792 bytes received in 0.15 seconds (5 Kbytes/s)
ftp> bin
200 Type set to I.
ftp> get gophbook.zip gopher.zip
200 PORT command successful.
150 Binary data connection for gophbook.zip (140.78.3.1,2362) (888666 bytes).
226 Binary Transfer complete.
local: gopher.zip remote: gophbook.zip
888666 bytes received in 3.2 seconds (2.7e+02 Kbytes/s)
ftp> cd /upload/texte/doc
250 CWD command successful.
ftp> asc
200 Type set to A.
ftp> put was_ist_ftp
200 PORT command successful.
150 ASCII data connection for was_ist_ftp (140.78.3.1,2367).
226 ASCII Transfer complete.
local: was_ist_ftp remote: was_ist_ftp
9593 bytes sent in 0.081 seconds (1.2e+02 Kbytes/s)
ftp>
- "MGET" und "MPUT"
Diese Befehle dienen zur Übertragung mehrerer Files mit einem Kommando.
Sie akzeptieren als Parameter die systemüblichen (!) Wildcards.
D.h. z.B. unter DOS "MPUT *.*", unter UNIX "MPUT *". Da Server meist
(aber durchaus nicht immer) auf UNIX Maschinen arbeiten, ist "MGET *"
häufig der richtige Befehl, um alle Files aus einem Directory zu
bekommen. Der Benutzer wird vor der Übertragung jedes Files um
Erlaubnis gefragt.
- "PROMPT"
Die Frage um Erlaubnis kann mit dem Befehl "PROMPT" aus- und wieder
eingeschaltet werden.
Gepackte Dateien
Da Programme meist aus mehreren Dateien bestehen und relativ viel Platz
verbrauchen, werden häufig "Packer" verwendet, um aus den Programm-
und Textfiles ein kleineres File (oft "Archive" genannt) zu erzeugen. Solche
Archive sind meist an der Endung des Filenamens zu erkennen. Typische Endungen
von UNIX-Files:
- ".tar" Archive, von "tar" erstellt
- ".Z" mit "compress" komprimiert, kann mit "uncompress" wieder erweitert
werden
- ".gz" mit "gnuzip" komprimiert
Typische Endungen von DOS-Files:
- ".zip" komprimiertes Archive, kann mit "pkzip" oder "pkunzip" entpackt
werden
- ".zoo" komprimiertes Archive, kann mit "zoo" verarbeitet werden
Typische Endungen von MAC-Files:
- "sea" Self extracting Archive
- "hqx" BinHex
- "sit" StuffIt
- "cpt" Compactor
Die technischen Hintergründe von FTP
FTP nach RFC 959 verwendet zwei Ports (20 und 21). Port 21 dient der Übertragung
der Benutzereingaben, Port 20 wird zur Übertragung der Daten verwendet
(auch z.B. ein Directory-Listing zählt zu den Daten). Port 21 wird
für eine normale Telnet-Session zwischen
dem FTP-Client und dem FTP-Server verwendet. Die Befehle des Benutzers werden
nur teilweise zum Server übertragen, z.B. ist "prompt" (Abschalten
der Abfrage bei "mget" ein rein lokale Befehl, der keine Datenübertragung
zum Server erfordert.
Moderne FTP-Server führen oft logs über die übertragenen
Daten. Auch wenn die als Passwort eingegebene Mailadresse nicht stimmt,
so ist doch zumindest der übertragende Rechner bekannt. Daher setzten
die meisten Rechner auch einen Eintrag des Clients im DNS voraus. Dieser
Eintrag wird oft auch dazu verwendet, ansonst anonyme Benutzer in Gruppen
einzuteilen. So erlaubt z.B. der FTP-Server des ZID der Uni
Linz nur österreichischen Rechnern den Zugriff.
FTP benötigt oft relativ viel Zeit zur Datenübertragung. Der Grund
dafür liegt häufig in überlasteten internationalen Leitungen.
Als Alternative bietet sich "mail-ftp" an. "Mail-FTP" Server nehmen Befehle
via E-Mail entgegen, verarbeiten sie und schicken das Ergebnis als E-Mail
zurück. Damit ist FTP von der Verwendung eines Clients entkoppelt,
was auch eine gute Möglichkeit ist, aus Systemen, die lediglich E-Mail
zur Verfügung stellen, FTP zu betreiben.
|