Vous êtes sur la page 1sur 7

Cours sur le protocole FTP

Introduction au protocole FTP


Le protocole FTP (File Transfer Protocol) est, comme son nom l'indique, un de transfert de
fichier.
La mise en place du protocole FTP date de 1971, date laquelle un mcanisme de transfert de
fichiers (dcrit dans le [rfc.php3 RFC] 141) entre les machines du MIT (Massachussetts
Institute of Technology) avait t mis au point. De nombreux RFC ont ensuite apport des
amliorations au protocole de base, mais les plus grandes innovations datent de juillet 1973.

Le ro le du protocole FTP
Le protocole FTP dfinit la faon selon laquelle des donnes doivent tre transfres sur un
rseau [tcpip.php3 TCP/IP].
Le protocole FTP a pour objectifs de :
permettre un partage de fichiers entre machines distantes
permettre une indpendance aux systmes de fichiers des machines clientes et serveur
permettre de transfrer des donnes de manire efficace

Le mode le FTP
Le protocole FTP s'inscrit dans un modle client-serveur, c'est--dire qu'une machine envoie
des ordres (le client) et que l'autre attend des requtes pour effectuer des actions (le serveur).
Lors d'une connexion FTP, deux canaux de transmission sont ouverts :
Un canal pour les commandes (canal de contrle)
Un canal pour les donnes

Ainsi, le client comme le serveur possdent deux processus permettant de grer ces deux
types d'information :
le DTP (Data Transfer Process) est le processus charg d'tablir la connexion et de grer le
canal de donnes. Le DTP ct serveur est appel SERVER-DTP, le DTP ct client est
appel USER-DTP
le PI (Protocol Interpreter) est l'interprteur de protocole permettant de commander le DTP
l'aide des commandes reues sur le canal de contrle. Il est diffrent sur le client et sur le
serveur :
Le SERVER-PI est charg d'couter les commandes provenant d'un USER-PI sur le canal de
contrle sur un [port.php3 port donn], d'tablir la connexion pour le canal de contrle, de
recevoir sur celui-ci les commandes FTP de l'USER-PI, d'y rpondre et de piloter le
SERVER-DTP
Le USER-PI est charg d'tablir la connexion avec le serveur FTP, d'envoyer les commandes
FTP, de recevoir les rponses du SERVER-PI et de contrler le USER-DTP si besoin

Lors de la connexion d'un client FTP un serveur FTP, le USER-PI initie la connexion au
serveur selon le protocole Telnet. Le client envoie des commandes FTP au serveur, ce dernier
les interprte, pilote son DTP, puis renvoie une rponse standard. Lorsque la connexion est
tablie, le serveur-PI donne le port sur lequel les donnes seront envoyes au Client DTP. Le
client DTP coute alors sur le port spcifi les donnes en provenance du serveur.
Il est important de remarquer que, les ports de contrle et de donnes tant des canaux
spars, il est possible d'envoyer les commandes partir d'une machine et de recevoir les
donnes sur une autre. Ainsi, il est par exemple possible de transfrer des donnes entre deux
serveurs FTP en passant par un client pour envoyer les instructions de contrle et en
transfrant les informations entre deux processus serveurs connects sur le bon port.

Dans cette configuration, le protocole impose que les canaux de contrle restent ouverts
pendant tout le transfert de donnes. Ainsi un serveur peut arrter une transmission si le canal
de contrle est coup lors de la transmission.

Les commandes FTP


Toutes les communications effectues sur le canal de contrle suivent les recommandations
du protocole Telnet. Ainsi les commandes FTP sont des chanes de caractres Telnet (en code
NVT-ASCII) termines par le code de fin de ligne Telnet (c'est--dire la squence
<CR>+<LF>, Carriage Return (retour chariot) suivi du caractre Line Feed, note <CRLF>).
Si la commande FTP admet un paramtre, celui-ci est spar de la commande par un espace
(<SP>).
Les commandes FTP permettent de prciser :
Le port utilis
Le mode de transfert des donnes
La structure des donnes
La nature de l'action effectuer (Retrieve, List, Store, ...)

On distingue trois types de commandes FTP :


Les commandes de contrle d'accs
Les commandes du paramtrage de transfert
Les commandes de service FTP

Commande de contrle d'accs


Commande Description
USER

Chane de caractres permettant d'identifier l'utilisateur.


L'identification de l'utilisateur est ncessaire pour tablir une
communication sur le canal de donnes

PASS

Chane de caractres spcifiant le mot de passe de l'utilisateur. Cette


commande doit tre immdiatement prcde de la commande USER.
Il revient au client de masquer l'affichage de cette commande pour
des raisons de scurit

ACCT

Chane de caractres reprsentant le compte (account) de l'utilisateur.


Cette commande n'est gnralement pas ncessaire. Lors de la
rponse l'acceptation du mot de passe, si la rponse est 230 cette
phase n'est pas ncessaire, si la rponse est 332, elle l'est

CWD

Change Working Directory : cette commande permet de changer le


rpertoire courant. Cette commande ncessite le chemin d'accs au
rpertoire atteindre comme argument

QUIT

Commande permettant de terminer la session en cours. Le serveur


attend de finir le transfert en cours le cas chant, puis de fournir une
rponse avant de fermer la connexion

Commande de paramtres de transfert


Commande Description
PORT

Chane de caractres permettant de prciser le numro de port


utiliser

PASV

Commande permettant d'indiquer au serveur DTP de se mettre en

attente une connexion sur un port spcifique choisi alatoirement


parmi les ports disponibles. La rponse cette commande est l'adresse
IP de la machine et le port.
TYPE

Cette commande permet de prciser le type de format dans lequel les


donnes seront envoyes

STRU

Caractre Telnet prcisant la structure du fichier (F pour File, R


pour Record, P pour Page)

MODE

Caractre Telnet prcisant le mode de transfert des donnes (S


pour Stream, B pour Block, C pour Compressed)

Commande de service
FTP
Commande

Description

RETR

Cette commande (RETRIEVE) demande au serveur DTP une


copie du fichier dont le chemin d'accs est pass en paramtre.

STOR

Cette commande (store) demande au serveur DTP d'accepter les


donnes envoyes sur le canal de donnes et de les stocker dans
le fichier portant le nom pass en paramtre. Si le fichier n'existe
pas, le serveur le cre, sinon il l'crase

REST

Cette commande (restart) permet de reprendre un transfert l o


il s'tait arrt. Pour cela cette commande envoie en paramtre le
marqueur reprsentant la position dans le fichier laquelle le
transfert avait t interrompu. Cette commande doit tre
immdiatement suivie d'une commande de transfert.

RNTO

Cette commande (rename to) permet de renommer un fichier.


Elle indique en paramtre le nom du fichier renommer et doit
tre immdiatement prcde de la commande RNFR

ABOR

Cette commande (abort) indique au serveur DTP d'abandonner


tous les transferts associs la commande prcdente. Si aucune
connexion de donnes n'est ouverte, le serveur DTP ne fait rien,
sinon il la ferme. Le canal de contrle reste par contre ouvert.

DELE

Cette commande (delete) permet de supprimer le fichier dont le


nom est pass en paramtre. Cette commande est irrmdiable,
seule une confirmation au niveau du client peut tre faite.

RMD

Cette commande (remove directory) permet de supprimer un


rpertoire. Elle indique en paramtre le nom du rpertoire
supprimer

MKD

Cette commande (make directory) permet de crer un rpertoire.


Elle indique en paramtre le nom du rpertoire crer

PWD

Cette commande (print working directory) permet de renvoyer le


chemin complet du rpertoire courant

HELP

Cette commande permet de connatre l'ensemble des commandes


comprises par le serveur. Les informations sont retournes sur le
canal de contrle

NOOP

Cette commande (no operations) sert uniquement obtenir une


commande OK du serveur. Elle peut servir uniquement pour ne
pas tre dconnect aprs un temps d'inactivit trop lev

Les re ponses FTP


Les rponses FTP permettent d'assurer la synchronisation entre client et serveur FTP. Ainsi
chaque commande envoye par le client, le serveur effectuera ventuellement une action et
renverra systmatiquement une rponse.
Les rponses sont constitues d'un code 3 chiffres indiquant la faon suivant laquelle la
commande envoye par le client a t traite. Toutefois, ce code 3 chiffres tant
difficilement lisible par un humain, il est accompagn d'un texte (chane de caractres Telnet
spare du code numrique par un espace).
Les codes de rponse sont constitus de 3 chiffres dont voici les significations :
Le premier chiffre indique le statut de la rponse (succs ou chec)
Le second chiffre indique ce quoi la rponse fait rfrence
Le troisime chiffre donne une signification plus spcifique (relative chaque deuxime
chiffre)

Premier chiffre
Chiffre Signification

Description

1yz

Rponse
prliminaire
positive

L'action demande est en cours de ralisation, une


seconde rponse doit tre obtenue avant d'envoyer
une deuxime commande

2yz

Rponse positive
de ralisation

L'action demande a t ralise, une nouvelle


commande peut tre envoye

3yz

Rponse
intermdiaire
positive

L'action demande est temporairement suspendue.


Des informations supplmentaires sont attendues de
la part du client

4yz

Rponse ngative
de ralisation

L'action demande n'a pas eu lieu car la commande


n'a temporairement pas t accepte. Le client est pri
de ressayer ultrieurement

5yz

Rponse ngative
permanente

L'action demande n'a pas eu lieu car la commande


n'a pas t accepte. Le client est pri de formuler une
requte diffrente

Second chiffre
Chiffre Signification

Description

x0z

Syntaxe

L'action possde une erreur de syntaxe, ou bien il


s'agit d'une commande non comprise par le
serveur

x1z

Information

Il s'agit d'une rponse renvoyant des informations


(par exemple pour une rponse une commande
STAT)

x2z

Connexions

La rponse concerne le canal de donnes

x3z

Authentification et
comptes

La rponse concerne le login (USER/PASS) ou la


demande de changement de compte (CPT)

x4z

Non utilis par le


protocole FTP

x5z

Systme de fichiers

La rponse concerne le systme de fichiers distant

Vous aimerez peut-être aussi