File Transfer Protocol


modèle OSI              pile de protocoles                
7 - couche application HTTP, SMTP, FTP, SSH, IRC, SNMP, SIP ...
4 - couche de transport TCP, UDP, SCTP, RTP, DCCP ...
3 - couche réseau IPv4, IPv6, ARP, IPX ...
2 - couche de liaison Ethernet, 802.11 WiFi, Token ring, FDDI, ...
1 - couche physique RS-232, RS-449, ...

Le File Transfer Protocol (protocole de transfert de fichiers) ou FTP est dédié à l'échange informatique de fichiers sur un réseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers depuis ou vers un autre ordinateur du réseau, d'administrer un site web, ou encore de supprimer ou modifier des fichiers sur cet ordinateur.

La mise en place du protocole FTP date de 1971, date à laquelle un mécanisme de transfert de fichiers (décrit dans la RFC 141) entre les machines du MIT avait été mis au point. De nombreux RFC ont ensuite apporté des améliorations au protocole de base, mais les plus grandes innovations datent de juillet 1973.

Le protocole FTP est actuellement défini par la RFC 959.

Sommaire

Vue d'ensemble

FTP obéit à un modèle client-serveur, c'est-à-dire qu'une des deux parties, le client, envoie des requêtes auxquelles réagit l'autre, appelé serveur. En pratique, le serveur est un ordinateur sur lequel fonctionne un logiciel lui-même appelé serveur FTP, qui rend publique une arborescence de fichiers similaire à un système de fichiers Unix. Pour accéder à un serveur FTP, on le mode actif, tandis que les données sont échangés via un port choisi arbitrairement par le serveur . L'usage de ces deux ports est standardisé : ils sont réservés aux connexions FTP.

Commandes FTP

Fonctionnement

Lors d'une utilisation classique, le client se connecte au serveur, s'identifie, puis travaille sur les répertoires distants. Toute commande envoyée par le client fait de 3 à 4 lettres (en majuscules) suivies éventuellement d'un espace et d'informations. Le serveur doit automatiquement répondre par un nombre de 3 chiffres suivi d'un espace, puis de texte commentaire. Pour plus d'informations sur les réponses du serveur, voyez la page qui y est consacrée sur le site Comment ca marche? .

Commandes principales

USER <login> 
USER : « Utilisateur » - Ouvre une session FTP avec le nom d'utilisateur <login>. En FTP anonyme, taper « anonymous » ou rien du tout (dépend des serveurs FTP).
PASS <mdp> 
PASS : « Mot de passe » - <mdp> représente le mot de passe de l'utilisateur <login>. En FTP anonyme, taper « anonymous » ou votre adresse électronique.
CWD <chemin> 
Change Working Directory : « Changer le répertoire de travail » - Change le répertoire de travail. <chemin> doit être le chemin du nouveau répertoire depuis la racine du serveur (Chemin absolu).
CDUP 
Change Directory UP : « Changer de répertoire vers le haut » - Change le répertoire de travail et l'établit sur le dossier parent.
PWD 
Print Working Directory : « Imprimer le répertoire courant » - Récupère le chemin sur le serveur du dossier courant.
LIST 
LIST : « Liste » - Liste les fichiers présents dans le répertoire courant du serveur.
STAT 
STATus : « Status » : Permet de détecter l'état du serveur. Elle peut servir à connaître l'avancement d'un transfert en cours et accepte en argument un chemin d'accès, elle retourne alors les mêmes informations que LIST mais sur le canal de contrôle.
HELP ou « ? »
HELP : « Aide » - Permet de connaitre toutes les commandes utilisables sur le serveur (Informations retournées sur le canal de contrôle).
DELE <fichier> 
DELete : « Supprimer » - Supprime le fichier <fichier>, le chemin devant être donné par rapport à la racine du serveur distant.
RMD <dossier> 
ReMove Directory : « Supprimer répertoire » - Supprime <dossier>, le chemin devant être donné par rapport à la racine du serveur distant.
RNFR <ancien nom> 
ReName FRom : « Renommer depuis » - 1ére étape pour renommer un fichier.
RNTO <nouveau nom> 
ReName TO : « Renommmer en » - 2éme étape pour renommer un fichier.
MKD <nom> 
MaKe a new Directory : « Faire un nouveau dossier » - Crée un nouveau répertoire <nom> dans le dossier courant.
QUIT 
QUIT : « Quitter » - Permet de quitter le serveur
GET <fichier> 
GET : « Obtenir » - Récupère <fichier> du répertoire distant courant pour le sauvegarder dans le répertoire local.
PUT <fichier> 
PUT : « Mettre » - Envoie <fichier> dans le répertoire courant du serveur.

Autres commandes ftp

ABOR 
ABORt : « Annuler » - Indique au serveur DTP d'abandonner tous les transferts associés à la commande précédente. Si aucune connexion de données n'est ouverte, le serveur DTP ne fait rien, sinon il la ferme. Le canal de contrôle reste toutefois ouvert.
ACCT <login> 
ACCounT : Compte - Ouvre une session FTP avec le nom d'utilisateur <login>. Si la réponse est 332, il faut envoyer le mot de passe. Si la réponse est 230, la connexion est réussie.
ALLO 
ALLOcate : « Allouer » - Cette commande demande au serveur de prévoir un espace de stockage suffisant pour contenir le fichier dont le nom est passé en argument.
APPE <nom> 
APPEnd : - Concaténations des données envoyées dans le fichier portant le nom <nom> s'il existe déjà, sinon dans un nouveau fichier <nom>.
MODE <lettre> 
Précision du mode de transfert des données (S pour Stream, B pour Block, C pour Compressed).
NLST 
Name LiST : « Liste des noms » - Retourne la liste des fichiers et des répertoires dans le répertoire distant courant.
NOOP 
NO OPeration : « Pas d'opérations » - Sert uniquement à obtenir une commande OK du serveur, pour ne pas être déconnecté après un temps d'inactivité trop élevé.
PASV 
PASsiVe mode - Commande permettant d'indiquer au serveur DTP de se mettre en attente une connexion sur un port spécifique choisi aléatoirement parmi les ports disponibles. La réponse à cette commande est l'adresse IP de la machine et le port.
PORT <port> 
Précise le numéro de port à utiliser.
REST <marqueur> 
RESTart : « Recommencer » - Reprends un transfert là où il s'est arrêté. Pour cela, cette commande envoie <marqueur>, représentant la position dans le fichier à laquelle le transfert avait été interrompu. Elle doit être immédiatement suivie d'une commande de transfert.
SITE 
Permet au serveur de proposer des services spécifiques, non définis dans le protocole FTP.
SMNT 
Structure Mount : ??? - ???.
RETR 
Cette commande (RETRIEVE) demande au serveur DTP une copie du fichier dont le chemin d'accès est passé en paramètre.
STOR 
Cette commande (store) demande au serveur DTP d'accepter les données envoyées sur le canal de données et de les stocker dans le fichier portant le nom passé en paramètre. Si le fichier n'existe pas, le serveur le crée, sinon il l'écrase
STOU 
Cette commande est identique à la précédente, si ce n'est qu'elle demande au serveur de créer un fichier dont le nom est unique. Le nom du fichier est retourné dans la réponse.
STRU 
Caractère Telnet précisant la structure du fichier (F pour File, R pour Record, P pour Page)
SYST 
SYSTem : « Système » - Permet de recevoir des informations sur le serveur distant.
TYPE 
Permet de préciser le type de format dans lequel les données seront envoyées.

Utilisation

Les utilisateurs de GNU-Linux ou d'un Unix peuvent consulter une documentation (la plupart du temps installée par défaut), en tapant « man ftp »

Pour acceder a un serveur FTP on utilise une URL de type :

ftp://nom_d_utilisateur:mot_de_passe@nom_du_serveur:port_ftp

La partie port_ftp est optionnelle. S'il est omis le port par defaut (21) sera utilisé.

Annexes

Voir également :


Une petite partie de cet article est basée sur cette page.

See also: File Transfer Protocol, Address Resolution Protocol, Adresse électronique, Cft, Client-serveur, Couche application, Couche de liaison, Couche de transport, Couche physique