File eXchange Protocol
Fxp ist ein Feature, welches von vielen aktuellen FTP-Clients unterstützt wird. Durch Verwendung des FXP-Protokolls können Dateien direkt von FTP-Server zu FTP-Server kopiert werden, ohne den Umweg auf den eigenen Rechner zu nehmen. Diese Funktionalität ist aber vielmehr ein Exploit des FTP-Protokolls denn ein Feature. Es nutzt die Tatsache aus, dass die Verwendung von Firewalls eine neue Übertragungs-Art notwendig gemacht hat: den Passive Mode, im Gegensatz zu dem bisher verwendeten Active Mode. Beim Active Mode öffnet der Client auf dem eigenen Rechner einen zufälligen Port und teilt dem Server diesen sowie die eigene IP-Adresse mittels des "PORT" Kommandos mit. Der Server verbindet dann zu der übermittelten IP-Adresse an dem übermittelten Port, und der Datentransfer kann stattfinden. Beim Passive Mode wird dieses Prinzip umgedreht, der Client sendet ein "PASV" Kommando, und erhält die IP-Adresse sowie geöffneter Port des FTP-Servers und verbindet dorthin.
Beim FXP sendet der Client, der mit zwei FTP-Servern verbunden an den ersten FTP-Server ein "PASV" Kommando, und erhält zur Antwort dessen IP-Adresse und geöffneten Port. Nun sendet er an den zweiten FTP-Server ein "PORT" Kommando, welches als Argument nicht die eigene IP-Adresse und Port enthält, sondern die Antwort des ersten FTP-Servers. Der zweite FTP-Server verbindet sich dann mit dem offenen Port des ersten Servers. Wenn nun auf dem zweiten FTP-Server ein "RECV" Kommando ausgeführt wird, und anschliessend auf dem ersten FTP-Server ein "STOR" Kommando, wird eine Datei vom zweiten FTP-Server zum ersten FTP-Server kopiert.
Wenn einer der beiden FTP-Server Probleme mit dieser Konstellation hat, also zum Beispiel der Ziel-Server keinen Passive Mode unterstützt, kann auch auf dem Quellen-Rechner das "PASV" Kommando ausgefuehrt werden. Man spricht dann hierbei vom "Alternative Mode".