Il File Transfer Protocol (FTP) (protocollo di trasferimento file), è un Protocollo per la trasmissione di dati tra host basato su TCP.
FTP è uno dei primi protocolli definiti ed ha subito una lunga evoluzione negli anni.

Gli obiettivi principali di FTP descritti nella sua RFC ufficiale sono:
Promuovere la condivisione di file (programmi o dati)
Incoraggiare l’uso indiretto o implicito di computer remoti.
Risolvere in maniera trasparente incompatibilità tra differenti sistemi di stoccaggio file tra host.
Trasferire dati in maniera affidabile ed efficiente.

FTP, a differenza di altri protocolli come ad esempio HTTP, utilizza due connessioni separate per gestire comandi e dati.
Sia il canale comandi sia il canale dati sono delle connessioni TCP; FTP crea un nuovo canale dati per ogni file trasferito all’interno della sessione utente, mentre il canale comandi rimane aperto per l’intera durata della sessione utente, in altre parole il canale comandi è persistente mentre il canale dati è non persistente.
Un server FTP offre svariate funzioni che permettono al client di interagire con il suo filesystem e i file che lo popolano, tra cui:
Download/upload di file.
Resume di trasferimenti interrotti.
Rimozione e rinomina di file.
Creazione di directory.
Navigazione tra directory.