ZID Logo Home Suchen Feedback Dokumentationen Links Uni Linz
   
  Service Organisation Hardware Software FAQ News  
  Service < Netzwerkdienste < Erklaerungen <

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.

- zum Seitenanfang -
Impressum
16.06.2009