Next: Courrier électronique : smtp.
Up: Les applications.
Previous: Système de fichiers en
TFTP (Trivial File Transfert Protocol ) et FTP
(File Transfert Protocol ) permettent tous les deux de transférer
des fichiers d'une machine à une autre.
Cependant TFTP, bâti sur UDP, est beaucoup plus sommaire que FTP qui utilise TCP.
L'utilisation de FTP depuis un poste client pour aller chercher ou déposer
un fichier sur un serveur nécessite de la part de l'utilisateur de se
connecter avec un nom et un mot de passe.
Donc, si l'utilisateur n'est pas reconnu la connexion FTP ne sera pas
établie.
Dans le cas particulier d'un serveur ftp public, la connexion se fait
avec le nom anonymous et il est conseillé de donner
son adresse électronique comme mot de passe.
Dans le cas de TFTP, aucune authentification préalable n'est nécessaire.
C'est pourquoi, lorsqu'un serveur TFTP est installé sur une machine il
n'offre des possibilités d'accès qu'à un nombre restreint de fichiers
bien spécifiques.
Ces fichiers sont généralement des fichiers de démarrage de terminaux X
ou stations sans disque qui les récupérent après en avoir été informés par
le protocole BOOTP (voir section 2.7.1).
Les différents messages TFTP sont donnés dans la figure 2.33
et se distingeunt selon leur code d'opération .
Figure 2.33:
Format des messages TFTP.
 |
- RRQ indique une requête de lecture de fichier (transmis au client)
et WRQ une requête d'écriture de fichier (transmis au serveur).
Ensuite, vient le nom du fichier terminé par un caractère nul.
Le champ mode, terminé par un caractère nul également, est égal à
netascii pour indiquer que le fichier est un fichier texte où
chaque ligne est terminée par CR LF.
Ces deux caractères doivent peut-être être convertis dans la syntaxe
utilisée par la machine locale pour marquer les fins de ligne des
fichiers textes.
Il est égal à octet dans le cas d'un fichier binaire à transférer
tel quel.
- DATA débute les paquets de données à transmettre.
Un fichier de N octets sera découpé en N div 512 tels paquets contenant
chacun 512 octets de données et un paquet contenant N mod 512 octets
qui sera reconnu comme le paquet final puisqu'il contient moins de 512 octets.
Le champ numéro de bloc sert à numéroter chaque paquet de données et
est utilisé pour l'accusé de réception.
- ACK indique que le message acquitte le bloc de numéro spécifié
dans le message.
TFTP est obligé de s'assurer lui même de la bonne transmission des données
puisqu'il utilise UDP qui est un protocole non fiable.
Le protocole d'acquittement est de type stop-and-wait car après avoir
envoyé un paquet l'émetteur attend l'accusé de réception du récepteur
avant d'envoyer le paquet suivant.
Si l'émetteur ne reçoit pas d'acquittement avant l'expiration de son
délai d'attente il réexpédie le paquet perdu.
De même, le récepteur qui ne reçoit plus de paquets après son délai d'attente
renvoie à nouveau son acquittement.
Seulement, si le ACK k est retardé mais non perdu, l'émetteur va retransmettre
le paquet k que le récepteur va à nouveau acquitter.
Donc, deux ACK k vont finalement parvenir à l'émetteur ce qui va déclencher
de sa part l'envoi de deux paquets k+1, qui provoqueront deux ACK k+1
et donc l'envoi de deux paquest k+2, etc...
- Les messages débutant par ERROR indiquent une erreur de transmission
et transportent un code et un message d'erreur.
Lorsque cela arrive, le transfert est immédiatement interrompu.
Lorsqu'il demande une connexion le client s'attribue un port éphémère UDP
et envoie sa requête au serveur sur le port 69 prévu pour FTP.
À ce moment-là, le serveur va s'attribuer un nouveau port éphémère qui
devra être détecté par le client et qui servira tout le temps de la connexion.
Il ne conserve pas le port 69 tout au long de l'échange car cela l'obligerait
soit à refuser d'autres connexions pendant ce temps, soit à les multiplexer
ensemble ce qui alourdirait le protocole.
Quant à lui, FTP est défini au-dessus de TCP et utilisent deux connexions TCP IP
pour fonctionner comme illustré dans la figure 2.34.
Figure 2.34:
Tansfert de fichier par FTP.
 |
Tout d'abord on y voit que le client utilise FTP à travers une
interface qui peut être graphique (logiciels XFTP, WS-FTP, Fetch, ...)
ou texte (mode commandes d'unix par exemple).
La connexion de contrôle est établie de façon normale en mode client
serveur sur le port 21 du serveur et sur un port aléatoire du client
pour tout ce qui est de type transfert interactif.
Elle sert donc tout le temps de la session à transférer les commandes du
client et presque toutes les réponses du serveur.
La connexion de données sert à transférer les fichiers et les contenus
de répertoires du serveur, c'est-à-dire tous les transferts de masse.
En effet, lorsque le client demande le contenu d'un répertoire la réponse peut être
très longue et il est préférable de l'envoyer sur cette connexion plutôt
que sur celle du transfert interactif.
À chaque fois qu'un fichier doit être transféré, dans un sens ou dans l'autre,
le client initie une connexion de données en s'attribuant un port et envoie
au serveur une demande de connexion sur la connexion de contrôle.
Le serveur se sert du numéro de port reçu pour établir la connexion de données
entre son port 20 et ce port indiqué par le client.
Next: Courrier électronique : smtp.
Up: Les applications.
Previous: Système de fichiers en
Pascal Nicolas Université d'Angers
mardi, 2 novembre 1999, 09:20:50 MET