ftp Protokoll

Das File Transfer Protocol (FTP) zu Deutsch Dateiuebertragungsverfahren ist ein im RFC 959 von 1985 spezifiziertes Netzwerkprotokoll zur Uebertragung von Dateien über IP-Netzwerke. FTP Arbeitet auf dem Application Layer (Schicht 7) des OSI Schichtenmodells. Es wird benutzt, um Dateien vom Server zum Client (Herunterladen) oder vom Client zum Server (Hochladen) zu Uebertragen. Mit FTP koennen auch Verzeichnisse angelegt und angezeigt werden. Das umbennen und loeschen von Verzeichnissen ist auch moeglich.

FTP verwendet fuer die Steuerung und Datenuebertragung jeweils separate Verbindungen. Eine FTP-Sitzung beginnt indem vom Client zum Control Port des Servers (ueblicherweise Port 21) eine TCP-Verbindung aufgebaut wird. Ueber diese Verbindung werden Befehle zum Server gesendet und die entsprechenden Meldungen des Servers empfangen. Wenn ein Client eine Datei uebertragen will dann wird diese von Port 20 des Servers aus zum Client uebertragen bzw an Port 20 des Servers gesendet.

Es gibt zwei FTP Modis:

1. Aktives FTP


Beim aktiven FTP verbindet sich der Client mit dem Server(Port 21). Wenn der Client Daten vom Server anfordert baut der Server eine Datenverbindung von seinem Port 20 zum Client auf. Ein solche von Aussen eingehende Datenverbindung ist problematisch wenn der Client hinter Routern oder Firewalls steht. Das geht nur wenn die Konfiguration von Router/Firewall das zulaesst.

2. Passives FTP


Bei passiven FTP öffnet der der Client zwei Ports und teilt dies dem Server mit(PASV Kommando). Nachdem der Server geantwortet hat Initiert der Client die Verbindung mit seinem Daten Port. Da die Initiative fuer die Datenuebertragung vom Client ausgeht funktioniert dieses Verfahren auch hinter Firewalls.

Weitere Details zu den bei FTP verwendeten Ports finden sich hier:
FTP Protokoll

FTP Server kennen zwei Modi zur Datenuebertragung ascii und Binary. Beim Anmelden melden viele Server welcher Modus bei ihnen standartmaessig aktiviert ist. z.b zeigt die Meldung „Using binary mode to transfer files“ das die Dateien binaer uebertragen werden. Das ist o.k. Sollte der Server aber melden das er ASCII Format verwendet dann muss das vor der Uebertragung von Binaer Dateien wie z.b iso oder exe Dateien geaendert werden. Vorsicht ist auch immer angebracht wenn der Server ueberhaupt nicht meldet welche Uebertragungsart er verwendet. Mit dem Kommando type kann bei bestehender FTP Verbindung ueberprueft werden was eingestellt ist. Mittels „type ascii“ kann der Modus auf ascii umgestellt werden, wovon abzuraten ist. Sollte der Modus auf ascii eingestellt sein kann man ihn mit „type binary“ auf binaer umstellen was unbedingt anzuraten ist. Danach melden die Server oft „200 Type Set to I“, das heisst das Daten Binaer uebertragen werden.
Um einen Server per FTP ansprechen zu koennen wird ein entsprechender Client benoetigt. Es gibt viele davon, ein Programm mit einer grafischen Bedienoeberflaeche ist z.b FileZilla . Die simpelste (aber nicht einfachste) Variante per FTP Daten zu uebertragen ist einen Kommandozeilen FTP Client zu verwenden. Diese werden mit den gaengigen Betriebssystemen mitgeliefert und muessen von der Kommandozeile (unter Windows cmd) gestartet werden. Mit:
ftp ftp.debian.de
wird die verbindung aufgebaut. Auf oeffentlichen ftp Servern wie diesem ist es moeglich anonymous als Loginname zu verwenden und eine E-Mail Adresse als Passwort.
———————————————
Unten ist eine kurze Beispielsession mit einem Kommandozeillenclient zu sehen:

Connected to ftp.de.debian.org.
220 FTP Server ftp.de.debian.org ready.
Name (ftp.debian.de:sb): anonymous
331 Anonymous login ok, send your complete email address as your password
Password:
230- Welcome to ftp.de.debian.org,
hosted at Faculty of Computer Science,
Technische Universitaet Dresden, Germany.

If have any unusual problems,
please report them via e-mail to: ftpadm@inf.tu-dresden.de

230 Anonymous access granted, restrictions apply
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
150 Opening ASCII mode data connection for file list
lrw-r–r– 1 ftp ftp 16 Jan 12 2013 backports.org -> debian-backports
drwxr-xr-x 8 ftp ftp 4096 Apr 15 10:01 debian
drwxr-xr-x 9 ftp ftp 4096 Jul 11 2012 debian-archive
drwxr-xr-x 6 ftp ftp 4096 Apr 15 15:12 debian-backports
drwxr-xr-x 5 ftp ftp 4096 Apr 1 17:33 debian-cd
drwxr-xr-x 21 ftp ftp 4096 Apr 15 19:20 debian-ports
drwxr-xr-x 6 ftp ftp 4096 May 13 2008 debian-security
-rw-r–r– 1 ftp ftp 245 Jul 1 2013 HEADER.html
drwxr-xr-x 2 ftp ftp 4096 Jan 9 2013 pub
226 Transfer complete
ftp> type
Using binary mode to transfer files.
ftp> help
Commands may be abbreviated. Commands are:

! debug mdir qc send
$ dir mget sendport site
account disconnect mkdir put size
append exit mls pwd status
ascii form mode quit struct
bell get modtime quote system
binary glob mput recv sunique
bye hash newer reget tenex
case help nmap rstatus tick
cd idle nlist rhelp trace
cdup image ntrans rename type
chmod lcd open reset user
close ls prompt restart umask
cr macdef passive rmdir verbose
delete mdelete proxy runique ?
ftp> quit
221 Goodbye.