TFTP (pour ou protocole simplifié de transfert de fichiers) est un protocole simplifié de transfert de fichiers.
Ce principe a été publié pour la première fois dans un protocole en 1981, la version actuelle datant de 1992 est cependant une amélioration du protocole.
Il fonctionne en UDP en utilisant le port 69 comme canal de contrôle pour transporter les commandes Read Request (RRQ) et Write Request (WRQ), le transfert de fichier se déroulant entre des ports UDP non privilégiés supérieurs à 1024. En pratique, le serveur ouvre un nouveau port local qui, avec le port par lequel il a reçu la requête client, forme le canal de données. Cette méthode permet de transférer plusieurs fichiers simultanément entre un même client et un serveur. Un parallèle peut être fait avec FTP en mode passif qui utilise le port TCP 21 pour le canal de contrôle et ouvre une nouvelle connexion à partir d'un port non privilégié pour le transfert proprement dit.
L'utilisation d'UDP, protocole « non fiable », implique que le client et le serveur doivent gérer eux-mêmes une éventuelle perte de paquets. En termes de rapidité, l'absence de fenêtrage nuit à l'efficacité du protocole sur les liens à forte latence. On réserve généralement l'usage du TFTP à un réseau local.
Les principales simplifications visibles du TFTP par rapport au FTP sont qu'il ne gère pas le listage de fichiers, et ne dispose pas de mécanismes d'authentification, ni de chiffrement. Il faut connaître à l'avance le nom du fichier que l'on veut récupérer. De même, aucune notion de droits de lecture/écriture n'est disponible en standard.
À cause de ces fonctionnalités absentes, FTP lui est généralement préféré. TFTP reste très utilisé pour la mise à jour des logiciels embarqués sur les équipements réseaux (routeurs, pare-feu, etc.) ou pour démarrer un PC à partir d'une carte réseau.
La dernière version de ce protocole est la version 2, définie dans . Elle est la plus utilisée.
Une extension de ce protocole, définie dans , permet de négocier des options pour le modifier : une option est toujours demandée par le client, le serveur peut l'accepter, la modifier, ou la refuser, notamment s'il ne la connaît pas.
Les options standards sont définies dans : : option "blocksize" permettant de modifier la taille des blocs de données (512 octets par défaut) : option "timeout" permettant de négocier le délai d'attente des trames d'acquittement (non spécifié par défaut) et option "tsize" permettant de connaître la taille du fichier avant le début du transfert : option "windowsize" permettant d'envoyer plusieurs trames de données avant d'attendre un acquittement, afin de minimiser les temps d'attente : option "multicast" permettant à plusieurs clients de télécharger le même fichier en même temps par l'adressage multiple UDP. Cette option, qui nécessite de grosses modifications du serveur comme du client, n'est généralement pas supportée.
Voir aussi Articles connexes GNU inetutils BOOTP DHCP Internet Protocole réseau passant difficilement les pare-feu tftpd64
Références
Catégorie:Protocole réseau sur la couche application Catégorie:Protocole réseau de transfert de fichiers