FTP benötigt zwei Kanäle, nämlich den data channel und den command channel.
Active FTP:
Der Client benützt zwei Ports N > 1024. Mit dem ersten Port baut er eine Verbindung zum Server-Port 21 (command channel) auf. Mit dem port-Befehl teilt er dem Server dann mit, dass er den Port N+1 für den data channel verwenden soll. Der Server baut dann seinerseits eine Verbindung von seinem Port 20 zum Port N+1 des Clients auf und verwendet diese Verbindung als data channel. Dieses Verfahren stößt an seine Grenzen, wenn in der Übertragungsstrecke eine Firewall hängt, welche keine eingehenden Verbindungen erlaubt.
Für diesen Fall gibt es das

Passive FTP:
Beim passive FTP baut der Client von einem Port N > 1024 zum Server-Port 21 (command channel) auf. Über den „pasv“-Befehl teilt er dem Server mit, dass diese Verbindung im Passiv-Modus laufen soll. Der Server öffnet dann einen Port M > 1024 und teilt diese Portnummer dem Client über den „port“-Befehl mit. Dann baut der Client eine Verbindung vom Port N+1 zum Server Port M (data channel) auf. Es wird also keine Verbindung vom Server aufgebaut wie beim Active FTP.

Up- und Download
Beim Down- oder Upload über das File Transfer Protocol gibt es zwei Modi: Binär und ASCII.
Zum Up-/Download empfielt sich fast immer der Binär-Mode. Bei diesem wird die Datei eins zu eins übertragen. Beim ASCII-Mode dagegen wird eine LF – CRLF Konvertierung vorgenommen. Ausführbare Dateien nehmen dies meistens übel.
Perl-Scripts, für CGI beispielsweise müssen, obwohl sie ausführbar sind, unbedingt im ASCII-Mode übertragen werden. Kompilierte CGI-Scripts, beispielsweise in C programmiert, müssen dagegen im Binär-Mode übertragen werden.
oft gebrauchte FTP-Befehle
| cd | – Verzeichnis wechseln |
| ls | – Verzeichnisinhalt auflisten |
| binary | – wechseln in den Binär-Mode |
| ascii | – wechseln in den ASCII-Mode |
| pwd | – aktuelles Verzeichnis |
| get | – Download |
| put | – Upload |
| help | – Hilfe anzeigen |
| quit | – Beenden |
