File Transfer Protocol
| 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
- Logiciels graphiques pour le ftp
- Sous GNU/Linux
- Sous Microsoft Windows
- FileZilla http://filezilla.sourceforge.net
- RFC 959
Voir également :
Une petite partie de cet article est basée sur cette page.
