Ceci est une ancienne révision du document !


Transfert de fichiers simple

Ce document définit le protocole de transfert des fichiers ainsi que les classes qui lui sont associées.

Contraintes

  • Dans un soucis d'interopérabilité, le protocole est constitué de datagrammes et n’interagis pas directement avec le réseau.
  • Pour faciliter son implémentation, son utilisation et son débogage, le protocole n'utilise que des chaines de caractères ASCII standard.
  • L'intégrité du fichier est vérifiée.

Fonctionnement général

  • L'expéditeur informe de la mise à disposition du fichier au destinataire.
  • Le destinataire demande la taille et le nom du fichier, toutes les 2 secondes dans la limite de 4 demandes.
  • Le destinataire demande les blocs (48000 octets) les uns après les autres.
  • Si le destinataire reste sans réponse pendant 15 secondes, il réémet sa demande, dans la limite de 4 demandes.

Protocole côté destinataire

Le destinataire est toujours dans l'un de ces 5 états :

Etat Signification
-1 Erreur. Le transfert de fichier ne peut pas aboutir.
0 Non initialisé.
1 En attente de la taille et du nom du fichier.
2 Fichier en cours de réception.
3 Fichier reçu et enregistré avec succès.
  • Le destinataire commence par demander la taille et le nom du fichier à transférer et passe à l'état 1.
  • Si deux secondes se sont écoulé depuis la dernière demande de taille et de nom de fichier, et que mois de 4 demandes ont été effectuées, le destinataire réémet sa demande de taille et de nom de fichier, sinon il passe en erreur.
  • Lorsque le destinataire reçois la taille et le nom du fichier, et qu'il est à l'état 1, il demande le premier bloc, passe à l'état 2 et mémorise la taille et le nom du fichier.
  • Si 15 secondes se sont écoulé depuis la dernière demande de bloc, qu'il est à l'état 2, et que moins de 4 demandes ont été effectuées, le destinataire réémet sa demande de bloc, sinon il passe en erreur.
  • Lorsque le destinataire reçois un bloc attendu, il demande immédiatement le bloc suivant s'il existe, puis il enregistre le bloc reçu à la suite du fichier. Le compteur des demandes de bloc retombe alors à zéro.

Messages émis par le destinataire

DEMANDE_INFOS_FICHIER
DEMANDE_BLOC 0

Protocole côté expéditeur

L'expéditeur est toujours dans l'un de ces 5 états :

Etat Signification
-1 Erreur. Le transfert de fichier ne peut pas aboutir.
0 Non initialisé.
1 Fichier disponible.
2 Fichier en cours d'envoi.
3 Fichier transmis avec succès.
  • L'expéditeur commence par lire la taille et le nom du fichier. Si la lecture s'est faite, on passe l'état à 1, sinon on le passe à -1.
  • Lorsque le destinataire demande la taille est le nom du fichier, s'il est à l'état 1 ou 2, l'expéditeur lui envoi et passe à l'état 2.
  • Lorsque le destinataire demande un bloc, si on est à l'état 1 ou 2 et que le bloc demander est le bloc actuel ou suivant, on lui envoi et passe à l'état 2.
  • Si on est à l'état 2, que tout les blocs sont transmis, et qu'on demande le bloc suivant, on passe à l'état 3.