File Transfer Protocol

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
FTP (File Transfer Protocol)
Familie: Internetprotokollfamilie
Einsatzgebiet: Datenübertragung,
Dateiverwaltung
Port: 20/TCP DATA Port,
21/TCP Control Port
FTP im TCP/IP‑Protokollstapel:
Anwendung FTP
Transport TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI
Standards: RFC 354 (1972)
Foto des ersten FTP Transfers von der Amundsen-Scott Research Base (Südpol 1994)
Active Mode (Aktives FTP): Der Client sendet eine Anfrage auf Port 21; die Datenübertragung erfolgt über Port 20. In dem Beispiel sendet der Server die Datenpakete zum ursprünglichen Rückgabeport des Clients. Es ist aber auch möglich, dass der Client dem Server dafür einen anderen Port übermittelt, an den die Daten geschickt werden sollen.
Illustration eines passiven Verbindungsaufbaus über Port 21

Das File Transfer Protocol [fʌɪl trɑːnsˌfəˌprəʊtəkɒl] (FTP, englisch für Dateiübertragungsverfahren) ist ein im RFC 959 von 1985 spezifiziertes Netzwerkprotokoll zur Übertragung von Dateien über IP-Netzwerke. FTP ist in der Anwendungsschicht (Schicht 7) des OSI-Schichtenmodells angesiedelt. Es wird benutzt, um Dateien vom Server zum Client (Herunterladen), vom Client zum Server (Hochladen) oder clientgesteuert zwischen zwei FTP-Servern zu übertragen (File Exchange Protocol). Außerdem können mit FTP Verzeichnisse angelegt und ausgelesen sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden.

Das FTP verwendet für die Steuerung und Datenübertragung jeweils separate Verbindungen: Eine FTP-Sitzung beginnt, indem vom Client zum Control Port des Servers (der Standard-Port dafür ist Port 21) eine TCP-Verbindung aufgebaut wird. Über diese Verbindung werden Befehle zum Server gesendet. Der Server antwortet auf jeden Befehl mit einem Statuscode, oft mit einem angehängten, erklärenden Text. Die meisten Befehle sind allerdings erst nach einer erfolgreichen Authentifizierung zulässig.

Verbindungsarten[Bearbeiten]

Zum Senden und Empfangen von Dateien sowie zur Übertragung von Verzeichnislisten (der Standard-Port dafür ist Port 21) wird pro Vorgang jeweils eine separate TCP-Verbindung verwendet. FTP kennt für den Aufbau solcher Verbindungen zwei Modi:

Aktives FTP[Bearbeiten]

Beim aktiven FTP (auch „Active Mode“) öffnet der Client einen zufälligen Port und teilt dem Server diesen sowie die eigene IP-Adresse mittels des PORT- oder des EPRT-Kommandos mit. Dies ist typischerweise ein Port des Clients, der jenseits von 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (so genanntes FXP). Die Datenübertragung auf der Server-Seite erfolgt dabei über Port 20. Die Kommunikation mit Befehlen erfolgt ausschließlich auf dem Control Port. Man spricht auch von der Steuerung „Out of Band“. Somit bleibt es möglich, dass während der Datenübertragung die Partner noch immer miteinander kommunizieren können.

Passives FTP[Bearbeiten]

Beim passiven FTP (auch „Passive Mode“) sendet der Client ein PASV- oder ein EPSV-Kommando, der Server öffnet einen Port und übermittelt diesen mitsamt IP-Adresse an den Client. Hier wird auf der Client-Seite ein Port jenseits 1023 verwendet und auf der Server-Seite der vorher an den Client übermittelte Port. Diese Technik wird eingesetzt, wenn der Server keine Verbindung zum Client aufbauen kann. Dies ist beispielsweise der Fall, wenn der Client sich hinter einem Router befindet, der die Adresse des Clients mittels NAT umschreibt, oder wenn eine Firewall das Netzwerk des Clients vor Zugriffen von außen abschirmt.

Öffentliche FTP-Server[Bearbeiten]

Viele FTP-Server, vor allem Server von Universitäten, Fachhochschulen und Mirrors, bieten sogenanntes Anonymous FTP an. Solche FTP-Server werden auch als Pub (v. engl. public ‚öffentlich‘) bezeichnet. Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise „anonymous“ und/oder „ftp“, vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss. Früher gehörte es zum „guten Ton“, bei anonymem FTP seine eigene, gültige E-Mail-Adresse als Passwort anzugeben. Die meisten Webbrowser tun dies heute nicht mehr, da es aus Spamschutz-Gründen nicht zu empfehlen ist.

FTP-Software[Bearbeiten]

Für das Datenübertragungsverfahren wird ein FTP-Client benötigt. In vielen aktuellen Browsern ist ein FTP-Client meist bereits integriert. Ein Beispiel für die Syntax einer FTP-Adressierung im Browser ist:

  ftp://[ftp_username[:ftp_PWD]@]Servername[:Port]

Der Client baut die TCP-Verbindung zum Control Port eines Servers auf. Über diese Verbindung wird über FTP-Kommandos der Datenaustausch zwischen Client und Server gesteuert. Davon zu unterscheiden sind die Kommandos für den zum Betriebssystem gehörenden Terminal-Client „ftp“, siehe auch FTP-Terminal-Client.

Daneben ist WebFTP ein von Webservern angebotener Dienst, der den Zugriff auf FTP-Server auch über HTTP ermöglicht. Die Darstellung erfolgt dabei innerhalb eines Webbrowsers. Eine Installation von Client-Software auf einem lokalen Rechner entfällt dadurch.

Eine Free/Libre Open Source Software zur Dateiübertragung mittels FTP ist FileZilla.

Sicherheit[Bearbeiten]

Um Verschlüsselung und Authentifizierung zu nutzen, kann Transport Layer Security eingesetzt werden (FTP über SSL, kurz FTPS). Nach der Authentifizierung des Hosts und der Verschlüsselung durch TLS kann FTP die Authentifizierung des Client mittels Benutzername und Kennwort durchführen, wenn der Client sich nicht bereits mit einem Zertifikat über TLS authentifiziert hat.

Außerdem existiert mit dem SSH File Transfer Protocol (SFTP) eine auf SSH aufbauende Alternative zu FTP für Dateiverwaltung und -übertragung, bei dem nur der schon laufende sshd-Daemon genutzt und somit keine weitere Software auf Serverseite benötigt wird.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

 Commons: File Transfer Protocol – Sammlung von Bildern, Videos und Audiodateien