Aller au contenu principal

2.3 Le modèle FTP (THE FTP MODEL)

Avec les définitions ci-dessus à l'esprit, le modèle suivant (illustré à la figure 1) peut être schématisé pour un service FTP.

                                            -------------
|/---------\|
|| Utilisateur || --------
||Interface|<--->|Utilisateur|
|\---------/| --------
---------- | User-PI |
|/------\| Commandes FTP | User-DTP |
||Serveur|<---------------->| |
|| PI || Réponses FTP -------------
|\------/|
|/------\|
||Serveur||
|| DTP ||
|\------/|
----------

Server-FTP User-FTP

Figure 1 Modèle d'utilisation du FTP

Dans ce modèle, un interpréteur de protocole utilisateur (User-PI) initie la connexion de contrôle. La connexion de contrôle suit le protocole Telnet et, à l'initiative de l'utilisateur, un ensemble standard de commandes et de réponses est envoyé entre l'user-PI et le server-PI. Cette connexion est utilisée pour la transmission de commandes qui décrivent les fonctions à effectuer, et les réponses à ces commandes. Ces commandes peuvent indiquer qu'une deuxième connexion, une connexion de données, doit être établie pour effectuer la fonction de transfert de données. Le processus de transfert de données utilisateur (User-DTP) doit « écouter » sur le port de données spécifié, et cela doit être fait AVANT d'envoyer la commande de demande de transfert. Le serveur initie la connexion de données depuis son processus de transfert de données (Server-DTP) et se connecte au port de données en écoute. La direction de l'établissement de la connexion est importante. Dans une situation alternative, l'utilisateur pourrait initier la connexion de données vers le server-DTP. Cette classe de connexion est définie comme passive (Passive).

La connexion de données est ouverte pour le transfert et fermée lorsque le transfert est terminé. Les données transférées via la connexion de données incluent les données à stocker sur l'hôte serveur, ou les données récupérées de l'hôte serveur, ou les données à utiliser dans l'exécution d'une fonction côté serveur. Dans le troisième cas, les informations transmises sur la connexion de données peuvent être destinées à être utilisées par un programme d'application sur le site du serveur, plutôt que réellement stockées sous forme de fichier. Ces utilisations générales d'une connexion de données existent pour la récupération, le stockage et l'exécution sur le site du serveur.

Communication (COMMUNICATION)

L'user-PI et le server-PI exécutent le protocole utilisateur en échangeant l'ensemble standard de commandes FTP. Le transfert de données est effectué en transférant des données sur une connexion de données séparée. Cette procédure permet au contrôle et au transfert de données de se produire sur des chemins indépendants.

L'user-PI initie toutes les commandes, et le server-PI répond avec des réponses FTP. L'user-PI peut envoyer plus d'une commande FTP sans attendre de réponse. Le server-PI répondra à chaque commande FTP envoyée dans l'ordre dans lequel les commandes ont été reçues. Les réponses peuvent être différées si le server-PI effectue une opération longue à la suite d'une commande précédente. Si cela se produit, le server-PI peut envoyer une réponse préliminaire (Preliminary Reply) indiquant que la commande a été reçue mais que le traitement n'est pas encore terminé. Lorsque l'opération est terminée, le server-PI enverra la réponse de completion (Completion Reply).

Les réponses FTP sont conçues pour assurer la synchronisation des demandes et des actions dans le processus de transfert de fichiers, et pour garantir que le processus utilisateur connaît toujours l'état du serveur. Chaque commande doit générer au moins une réponse, bien qu'il puisse y en avoir plus d'une. Dans ce dernier cas, les réponses multiples doivent être facilement distinguées. De plus, certaines commandes se produisent en groupes séquentiels, tels que USER, PASS et ACCT, ou RNFR et RNTO. Les réponses montrent l'existence d'un état intermédiaire si toutes les commandes précédentes ont réussi. Un échec à n'importe quel point de la séquence nécessite la répétition de toute la séquence depuis le début.

Connexions de données (DATA CONNECTIONS)

Le mécanisme de transfert de données consiste à configurer la connexion de données vers les ports appropriés et à choisir les paramètres de transfert. Les deux côtés doivent être d'accord sur les paramètres de la connexion de données avant que le transfert puisse avoir lieu. Ces paramètres consistent en : le port de données, le type de représentation, la structure et le mode de transmission.

Le type de représentation définit la manière dont les données du fichier sont représentées. Cela inclut le type de données (ASCII, EBCDIC ou Image) et le contrôle de format. La structure définit la manière dont le fichier est structuré. Trois structures sont prises en charge : structure de fichier, structure d'enregistrement et structure de page. Le mode de transmission définit comment les données seront transmises. Trois modes de transmission sont définis : mode flux, mode bloc et mode compressé.

La sélection de ces paramètres est négociée par l'échange de commandes FTP et de réponses entre l'user-PI et le server-PI. Les valeurs par défaut de ces paramètres sont définies dans le protocole. Si aucun paramètre n'est spécifié par l'utilisateur, les valeurs par défaut sont supposées.