Sunday, February 11, 2007

FTP Passif / Actif

Une connexion FTP se compose de deux connexions :

a) Une connexion bidirectionnelle qui permet la transmission des commandes appelée Connexion de contrôle.
b) Une seconde connexion pour permettre la transmission des données. Cette connexion des négociée dans la connexion de contrôle, elle est appelée "Data Connexion"

Le serveur FTP dispose d'un couple de ports { L, L-1}.

Le port L est utilisé pour la connexion de contrôle, traditionnellement le port 21
Le port L-1 est utilisé pour la Data Connexion, traditionnellement le port 20

Le client dispose d'un port U (dynamique) pour la connexion de contrôle. Par défaut ce port est également utilisé pour la Data Connexion, mail il peut être changé par la commande PORT.

PORT h1, h2, h3, h4, p1, p2

Attention : seul le client peut changer le PORT-DATA par la commande PORT.

La Data Connexion est toujours fermée par le serveur et ce dans les cas suivants :

- Demande de terminaison après le caractère de FIN de fichier et après que l'envoi des données ne soit fini.
- Le serveur à reçu la commande ABORT du client.
- Le port Data a été changé par le client.
- La connexion de contrôle est fermée de façon normale ou non.
- Sur une erreur irrécupérable.

FTP Actif

Chaque élément dispose de rôles bien définis :

Client - Envoi les commandes au serveur, interprète les réponses du serveur
Serveur - Interprète les commandes du client, envoi les réponses, ordonne au processus de transfeert d'ouvrir unr data cinnexion, transfère les données.

FTP Passif

Le FTP passif était utilisé à l'origine pour permetttre le transfert des fichiers entre deux serveurs à la demande d'un client.

L'avantage d'une connexion passive réside dans le fait que le serveur passif n'initie aucune connexion. Dans le cas des clients FTP sur un intranet voulant consulter un serveur FTP sur un Internet et devant traverser un pare-feu, le mode FTP passif permettra de n'avoir que des flux sortants vers Internet, alors qu'avec le FTP actif nous aurions le flux de données qui serait entrant venant d'Internet vers le réseau interne.

Dans le cas d'un client, se dernier demande au serveur de se mettre en mode passif. Le serveur FTP indique au client sur quel port et adresse le client doit se connecter. Le client n'a plus qu'à initier une connexion avec la commande CONNECT.