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