File Transfer Protocol

Ablauf einer FTP-Verbindung

Eine FTP-Verbindung durchläuft vier Phasen: Authentifizierung des Benutzers, Aufbau einer Kontrollverbindung, Aufbau eines Datenkanals und Beenden der Verbindung.

Zunächst baut der Client die Verbindung zum FTP-Server auf. Alle FTP-Implementierungen müssen dabei die Standard-Ports 20 und 21 unterstützen. Verbindungen zu Nicht-Standard-Ports darf nur die Client-Seite initiieren.

Sobald die Verbindung zu Stande gekommen ist, gibt der FTP-Server Informationen über das System aus. Der Server verlangt vom Client die Übermittlung der Benutzerkennung, nimmt diese vom Client entgegen und fordert ihn dann auf, das Passwort zu übermitteln.

Eine Besonderheit stellt anonymes FTP dar: In diesem Fall ist der Zugriff für alle Anwender freigeschaltet. Als Username wird dabei immer "anonymous" verwendet, das Passwort ist frei wählbar. Es gehört jedoch zum guten Stil, hier seine E-Mail-Adresse einzugeben.

Nach erfolgreicher Anmeldung kann sich der Client in der Verzeichnisstruktur bewegen, Verzeichnisse oder Dateien löschen, und Daten zwischen beiden Rechnern übertragen. Alle Aktionen sind dabei abhängig von den Rechten des jeweils eingeloggten Benutzer.

Nachdem der Client alle gewünschten Aktionen ausgeführt hat, schließt der Client die Verbindung. Auch der Server kann Verbindungen trennen, wenn beispielsweise die Kontrollverbindung abreißt.

Resuming

Bei der Übertragung von Dateien ist besonders wichtig, dass diese ohne Verlust auf Empfängerseite ankommen. Diese Aufgaben übernimmt das TCP-Protokoll. Eine Fehlerkontrolle durch FTP findet nicht statt. Dennoch ist in der FTP-Spezifikation ein Mechanismus vorgesehen, der die Wiederaufnahme von unterbrochenen Übertragungen ermöglicht. Diese Funktion wird häufig als Resuming bezeichnet.

Die Restart-Markierungen sind in der Headerbeschreibung der einzelnen Datenpakete abgelegt. Versucht nun der Client, den Transfer über das Restart-Kommando wieder aufzunehmen, so antwortet der FTP-Server mit einem Restart Marker Reply. Der Server übermittelt die zuletzt gesetzte Markierung. Beide gleichen die Markierungen über das MARK-Kommando ab. Anschließend nimmt der Client meist über den RETRIEVE-Befehl die Übertragung wieder auf.