Il existe deux modes de gestion des canaux de transmission :

  • un mode actif
    • un port d'écoute est utilisé côté serveur pour le canal de contrôle
    • un port d'écoute est utilisé côté client pourle canal de données
  • un mode passif : deux ports d'écoute sont utilisés côté serveur pour les deux canaux


Lors de l'utilisation du mode actif, on distingue les phases suivantes :

  • le client se connecte sur le port de contrôle en écoute du serveur (usuellement le port 21)
  • le client ouvre un port en écoute sur un port défini dynamiquement
  • il communique au serveur le numéro de ce port (via la commande PORT).
  • le client se met en attente d'une connexion de la part du serveur
  • le serveur établit un flux de donneés en se connectant sur le port en écoute côté client
  • le serveur utilise le port 20 comme port source de son côté.


Lors de l'utilisation du mode passif, on distingue les phases suivantes :

  • le client se connecte sur le port de contrôle en écoute du serveur (usuellement le port 21)
  • le client communique au serveur qu'il utilisera le mode passif (via la commande PASV)
  • le serveur ouvre un port en écoute sur un port défini dynamiquement
  • le serveur communique au client l'adresse et le port à utiliser pour le flux de données
  • le serveur se met en attente d'une connexion de la part du client
  • le client utilise un port défini dynamiquement comme port source de son côté


Durant le transfert de données sur le canal de communication réservé à cet effet, le canal de contrôle reste inactif. Ceci pose aujourd'hui des problèmes lors de connexions au travers de pare-feux car ces derniers pouvant interpréter au bout d'un certain temps l'inactivité d'un canal comme source d'erreur, il ferme alors parfois les connexions établies entre le client et le serveur.

Il existe également deux type de transfert de données entre un client et un serveur: le transfert de type ASCII (appelée aussi mode texte) et le transfert de type BINARY (appelé aussi mode binaire). In ASCII mode (see below), resuming transfers can be troublesome if client and server use different end of line characters :

  • le transfert de type ASCII permet de transférer les données via leur code ASCII, chaque client assurant la retranscription du code reçu en un code qui lui est compréhensible
  • le transfert de type BINARY permet de transférer les données en les recopiant octets par octets, entrainant ainsi parfois des erreurs lorsque des octets connus sur le système hôte du serveur ne sont pas reconnus sur le système hôte du client


Basé sur l'efficacité du protocole TCP pour son mode fiable et le contrôle d'intégrité des données, le protocole FTP a rapidement permis l'échange de fichiers entre ordinateurs de différents réseaux. Durant de nombreuses années avant l'avènement du protocole HTTP, il fut avec l'email l'un des protocoles les plus utilisés d'Internet.

Encore utilisé de nos jours, son implémentation a été étendue puisque de nombreux applicatifs supportent le protocole (notamment les navigateurs web).