| LetztePOP3, SMTP, IMAP | Das FTP Protokoll (File Transfer Protocol) | NächstTelnet |
Das FTP Protokoll ( File Transfer Protocol) ist, wie dem Namen zu verstehen, ein Protokoll gewidmet dem Datentransfer.
Das FTP Protokoll wurde 1971 eingerichtet; zu dem Zeitpunkt wurde ein DatentransferProzess (beschrieben in dem RFC RFC 141) zwischen den Rechner des MIT (Massachussetts Institute of Technology) entwickelt. Zahlreiche RFCs trugen seitdem zu Verbesserungen am Basisprotokoll zu, aber die grössten Errungenschaften stammen aus dem Jahre 1973.
Das FTP Protokoll wird Heutzutage vom RFC 959 (File Transfer Protocol (FTP) - Specifications).
Das FTP Protokoll beschreibt die Art und Weise nach der Daten im Netz TCP/IP übertragen werden.
Die Ziele des FTP Protokoll sind :
Das FTP Modell unterliegt dem Client-Server Modell, d.h. ein Rechner sendet Befehle (der Client) und der andere Rechner wartet auf Anfragen um bestimmte Aufgaben zu erledigen (Der Server).
Bei einer FTP Verbindung, werden zwei Übertragungskanäle geöffnet :
So wachen Client sowie Server über zwei Prozesse die diese beiden Informationstypen verwalten :
Nach der Verbindung eines FTP Clienten mit dem FTP Server, startet der USER-PI die Verbindung zum Server nach dem Telnet Protokoll. Der Client sendet FTP Befehle zum Server, der sie wiederum interpretiert, steuert sein DTP, und sendet eine Standard Antwort zurück. Wenn die Verbindung zustande kommt, gibt der SERVER-PI den Port für die Übertragung der DTP Client Daten an. Der DTP Client horcht dann auf diesem Port die vom Server stammenden Daten auf.
Es sei wichtig anzumerken, da Kontrollport und Datenport nicht gleich sind, dass die Möglichkeit besteht, Befehle von einem Rechner zu senden und Daten auf einen anderen zu bekommen. So ist beispielsweise möglich, Daten zwischen zwei FTP Server zu übertragen und sich einen Clienten bedienen um die Kontrolleinweisungen zu senden, und Informationen zwischen zwei Prozess-Server übertragen die mit entsprechenden Port verbunden sind.
In dieser Zusammenstellung zwingt das Protokoll zum Offen Zustand der Kontrollkanäle während des ganzen Datentransfer. Sollte das Kontrollkanal unterbrochen werden, kann der Server die Übertragung anhalten.
Sämtliche durchgeführte Übertragungen auf dem Kontrollkanal geschehen nach den Empfehlungen des Telnet Protokoll. So sind FTP Befehle Telnet Zeichenketten (nach Code NVT-ASCII) abgeschlossen durch das Telnet code Zeilen-Ende (d.h; die Sequenz <CR>+<LF>, Carriage Return (Wagen-Rücklauf) gefolgt vom Zeichen Line Feed, geschrieben <CRLF>).
Wenn das FTP Befehl mit einem Parameter behaftet werden soll, dann wird dieser duch ein Leerzeichen davon getrennt (<SP>).
Die FTP Befehle schreiben vor :
Man unterscheidet drei Befehlstypen :
| Zugriffskontrollbefehle | |
|---|---|
| Befehl | Beschreibung |
| USER | Zeichenkette die den Benutzer kenntlich machen. Diese Benutzeridentifizierung ist für das Einleiten der Kommunikation auf dem Datenkanal notwendig |
| PASS | Zeichenkettemit dem Benutzer Passwort. Dieses Befehl folgt unmittelbar dem Befehl USER. Es unterliegt dem Benutzer das Betrachten dieses Befehls zwecks Sicherheitmassnahmen zu verbergen. |
| ACCT | Zeichenkette mit dem Benutzerkonto (account). Das Befehl ist allgemein nicht notwendig. Der Satz ist notwendig wenn, im Falle einer Passwortbestätigung, die Antwort 230 ist, und nicht, wenn die Antwort 332 ist. |
| CWD | Change Working Directory : Das Befehl bewirkt ein Wechsel aus der laufenden Verzeichnis. Es erwartet den Verzeichniszugangsweg als Argument. |
| CDUP | Change to Parent Directory : gibt Zugang zum Vaterverzeichnis. Dieses Befehl wurde eingeführt um das Problem mit der Vaterverzeichnisbenennung bei bestimmten Système (oft "..") auszuschalten. |
| SMNT | Structure Mount : |
| REIN | Reinitialize : |
| QUIT | Das Befehl beendet die laufende Sitzung.Der Server wartet eventuell auf den laufende Tranfer, gibt ie entsprechende Antwort ab, und schliesst dieVerbindung. |
| Transferparameter Befehle | |
|---|---|
| Befehl | Beschreibung |
| PORT | Zeichenkette mit der Nummer des verwendeten Port |
| PASV | Gibt dem DTP Server die Anweisung sich in Wartestellung zu begeben und auf einen willkürliche aber verfügbaren Port zu horchen. Di Antwort auf diesem Befehl ist die IP Adresse der Machine und deren Port. |
| TYPE | Schreibt den Typenformt der zusendende Daten vor. |
| STRU | Telnet Zeichen mit der Dateistruktur (F für File, R für Record, P für Page) |
| MODE | Telnet Zeichen mit dem Datentranfer Modus (S für Stream, B für Block, C für gepackt) |
| FTP Dienstbefehl | |
|---|---|
| Befehl | Beschreibung |
| RETR | Dieses Befehl (RETRIEVE) fragt denDTP Server nach nach eine Kopie der Datei, mit dem Streckenverlauf als Parameter. |
| STOR | Dieses Befehl (store) erbittet den DTP Server um Daten auf dem Datenkanal anzunehmen, und sie in eine Datei zu speichern deren Namen als Parameter übergeben wurde. Wenn die Datei nicht vorhanden ist, wird sie erzeugt, sonst wird sie überschrieben. |
| STOU | Dieses Befehl ist dem vorrigen identisch, mit dem Unterschied dass der Server nach einem eindeutigen Namen gebeten wird. Der Dateiname wird mit der Antwort zurückgesendet. |
| APPE | Mit Hilfe dieses Befehls (append) werden die Daten in eine Datei zusammengekettet mit dem als Argument übergebenen Dateinamen, der erzeugt wird falls nicht vorhanden. |
| ALLO | Dieses Befehl (allocate) bittet den Server um genügend Speicherplatz für die Datei deren Namen als Argument. |
| REST | Dieses Befehl (restart) gestattet die Wiederaufnahme des Transfer von der Bruchstelle an. Dabei wird als Parameter ein Zeiger auf die Abbruchstelle in der Transferdatei übergeben. Dem Befehl folgt unmittelbar ein Transferbefehl. |
| RNFR | Mit dem Befehl (rename from) kann eine Datei umbenannt werden. Es trägt als Argument den umzubenennenden Dateiname und wird gefolgt von RNTO |
| RNTO | Das Befehl (rename to) kann eine Datei umbenannt werden. Es trägt als Argument den umzubenennenden Dateiname und wird fogt unmmitelbar das Befehl RNFR |
| ABOR | Das Befehl (abort) veranlasst den DTP Server sämtliche an dem bevorgehenden Befehl assoziierten Tranferaufträge abzubrechen. Wenn keine Datenverbindung offen ist, führt der DTP Server nichts ausser sie zu schliessen. Der Kontrollkanal bleit dagegen offen. |
| DELE | Dieses Befehl () veranlasst die Löschung einer Datei dern Namen als Argument übergeben wird. Dieses Befehl ist unwiederruflich und kann nur vom Client bestätigt werden.) permet de supprimer le fichier dont le nom est passé en paramètre. Cette commande est irrémédiable, seule une confirmation au niveau du client peut être faite. |
| RMD | Mit dem Befehl (remote directory) kann ein Verzeichnis gelöscht werden. Als Parameter wird der Verzeichnisname übergeben. |
| MKD | Das Befehl (make directory) erzeugt ein Verzeichnis mit dem als Parameter übergebenen Verzeichnisnamen |
| PWD | Das Befehl (print working directory) vermittelt den vollständigen Weg des laufenden Verzeichnis |
| LIST | Das Befehl vermittelt die vollständige Belegung des laufenden Verzeichnisinhalt. Diese Liste wird auf dem Passiv DTP übertragen. Als Befehlsparameter kann ein Verzeichnisname angeheftet werden, der DTP Server sendet dann die Dateiliste in das als Parameter übergebenen Verzeichnis. |
| NLST | Das Befehl (name list) sendet die der Dateien sowie Unterverzeichnisse des aktuellen Verzeichnis |
| SITE | Mit dem Befehl (site parameters) kann der Server, nicht im FTP Protokoll eingebettete Sonderdienste anbieten |
| SYST | Das Befehl (system) das Senden von Informationen an Fernserver |
| STAT | Das Befehl (status) sendet den Server-Status, wenn z.B. der Fortgang des laufenden Transfer benötigt wird. Das Befehl nimmt als Argument den Weg, und übergibt die gleichen Informationen wie LIST zurück auf dem Kontrollkanal |
| HELP | Dieses Befehl gibt die vollständige Liste der Befehle die der Server verarbeiteten kann, bekannt. Diese Informationen werden auf dem Kontrollfanl zurückgetragen |
| NOOP | Das Befehl (no operations) dient legiglich der OK Bestätigung des Server. Es kann nur dazu verwendet werden das abklemmen vom server zu verhindern beim einem zu grossen Aktivitätsmangel. |
FTP Antworten sichern den Synchronlauf zwischen Client und FTP Server. Beim jedem gesendeten Befehl vom Clienten erzeugt der eventuell eine Tat und bringt systematisch eine Antwort.
Die Antworten bestehen aus einem 3-Ziffer Code für die Art der Befehlsbearbeitung des Clientauftrag. Wegen seiner schlechten Lesbarkeit von Menschen, wird er einem Teste versehen (Telnet Zeichenkette getrennt vom Nummerncode durch ein Leerzeichen)
Die Antwortcodes bestehen aus 3 Ziffern. Nachfolgend, ihre Bedeutung :
| Erste Ziffer | ||
|---|---|---|
| Ziffer | Bedeutung | Beschreibung |
| 1yz | Prepositive Antwort | Der angegene Auftrag ist in Bearbeitung, eine zweite Antwort soll stattfinden bevor ein zweites Befehl gesendet wird |
| 2yz | positive Erledigungsantwort | Der Auftrag wurde abgeabeitet, ein neur wird erwartet |
| 3yz | positive Zwischenantwort | Der Auftrag wurde vorläufig angehalten. Zusätzliche Informations werden vom clienten gefragt |
| 4yz | Negativer Auftragsabgang | Die Bearbeitung fand wegen Zeitüberschreitung nicht statt. Der Client möge es später versuchen |
| 5yz | Endgültige Absage | Dir Bearbeitung des Auftrags fand nicht statt. Der Client soll ihn neu verfassen |
| Zweite Ziffer | ||
|---|---|---|
| Ziffer | Bedeutung | Beschreibung |
| x0z | Syntax | Im Befehl liegt ein Syntaxfehler vor, oder es handelt sich um ein Befehl das der Server nicht versteht |
| x1z | Information | Antwort mit Informationsinhalt (z.B. Antwort auf STAT Befehl |
| x2z | Verbindungen | Antwort betrifft das Datenkanal |
| x3z | Authentifizierung und Konten | Antwort betrifft LOGIN (USER/PASS) oder auch Kontoänderung (CPT) |
| x4z | im FTP Protokoll nicht benutzt | |
| x5z | Dateisystem | Antwort betrifft Das FernDateiSystem |
Näheres über das FTP Protokoll, finden Sie in der folgenden Literatur