Das File Transfer Protocol (FTP) ist ein Netzwerkprotokoll, welches zur Übertragung von Dateien, in einem IP-Netzwerk zum Einsatz kommt. Dazu baut das FTP einen Steuerungs- und Datenkanal auf. Realisiert wird dies mittels einer Client-Server Verbindung. Dateien können von einem Server zu einem Client (Download), oder von einem Client zu einem Server (Upload) übertragen werden. Ebenfalls ist es über den Steuerungskanal möglich, Verzeichnisse anzulegen, sie zu wechseln, diese zu löschen und Dateirechte zu verändern. Das FTP ist auf der Schicht 7, der Anwendungsschicht, des OSI ISO Schichtenmodells zu finden.
Der Client kontaktiert den Server über den Port 21 und teilt dem Server mit über welchen Port (meisten Port 20) er einen Datenkanal aufbauen kann. Anschließend baut der Server über diesen Port eine zuvor nicht etablierte Verbindung auf und eine Übertragung kann stattfinden.
Sitzt der Client jedoch hinter einem NAT-Router mit einer privaten IPv4-Adresse (meist eine Firewall) ist es nicht möglich eine Verbindung über aktives FTP aufzubauen. Oft werden alle nicht etablierten initiierten Verbindungen, welche auf einer Firewall ankommen, geblockt.
Wegen dem beim aktiven FTP beschriebenem Problem, wird häufig das passive FTP verwendet. Hierbei nennt der Server, beim Aufbau des Datenkanals, dem Client einen Port mit dem eine Datenübertragung erfolgen kann. Da der Client die Verbindung initiiert, ist diese etabliert und sollte nicht mehr durch eine Firewall geblockt werden.