TFTP est un protocole de transport de fichiers et son nom suggère que c’est quelque chose de proche du protocole FTP (File Transfer Protocol), ce qui est vrai… jusqu’à un certain point. TFTP n’est pas très populaire car il n’est pas vraiment utilisé sur Internet en raison de ses limitations que nous allons explorer par la suite.
Le protocole
La principale différence de TFTP par rapport à FTP est le protocole de transport qu’il utilise et l’absence de tout mécanisme d’authentification. Là où FTP utilise le protocole TCP robuste pour établir des connexions et compléter les transferts de fichiers, TFTP utilise le protocole UDP qui n’est pas sécurisé et n’a pas de contrôle d’erreur intégré (à moins qu’ils aient implémenté un certain type de contrôle d’erreur dans le programme que vous utilisez pour transférer des fichiers), cela explique également pourquoi vous êtes plus susceptible de trouver TFTP dans un réseau local, plutôt que dans un réseau étendu (WAN) ou sur Internet.
Les principales limitations du TFTP sont l’authentification et la visibilité des répertoires, ce qui signifie que vous ne pouvez pas voir les fichiers et les répertoires disponibles sur le serveur TFTP.
Comme mentionné, TFTP utilise UDP comme transport, par opposition à TCP que FTP utilise, et fonctionne sur le port 69, vous pouvez clairement le voir dans le diagramme 3D cool sur la gauche.
Le port 69 est le port par défaut pour TFTP, mais si vous le souhaitez, vous pouvez modifier les paramètres de votre serveur TFTP afin qu’il fonctionne sur un port différent.
Maintenant, pour rendre les choses un peu plus claires, j’ai inclus une capture d’écran de ma station de travail en train de tftp’ing dans un serveur TFTP que j’ai configuré dans mon petit réseau.
Vous pouvez voir ma station de travail (192.168.0.100) contacter le serveur TFTP (192.168.0.1) sur le port 69(port de destination). Dans ce premier paquet, ma station de travail contacte le serveur et demande le fichier que j’ai entré avant de me connecter au serveur. Cliquez ici pour l’image complète.
Comme vous n’obtenez pas la liste des fichiers et des répertoires, vous devez savoir quel fichier vous voulez télécharger ! Dans la réponse que j’ai reçue (2ème paquet), le serveur se met directement au travail et commence à envoyer le fichier. Pas la moindre authentification !
Note : La station de travail ne renvoie généralement pas d’accusé de réception (car UDP, qui est le protocole de transport, par nature, n’envoie jamais d’accusé de réception), mais les développeurs de logiciels peuvent intégrer une telle fonctionnalité en forçant la station de travail à envoyer un petit paquet que le serveur TFTP est capable de capter comme un accusé de réception du précédent paquet de données qu’il a envoyé à la station de travail.
Dans l’exemple que je fournis, vous pouvez voir mon poste de travail envoyer de petits paquets au serveur après avoir reçu un paquet de sa part. Ces petits accusés de réception ont été ajoutés par la société de logiciels qui a créé le programme que j’utilisais pour cet exemple.
Vous trouverez ci-dessous une capture d’écran du programme que j’ai utilisé pour TFTP (TFTP Client) vers le serveur:
Notez comment j’ai entré le fichier que je voulais télécharger (server.exe), et sélectionné le nom sous lequel le fichier sera enregistré sur mon ordinateur local (Local File). Si je ne fournissais pas le nom du fichier distant, une erreur s’afficherait du côté du serveur, m’informant qu’un tel fichier n’existe pas. Vous pouvez également envoyer des fichiers en utilisant TFTP, car ce n’est pas seulement pour télécharger 🙂
Alors, où est utilisé TFTP ?
TFTP est surtout utilisé pour sauvegarder les fichiers de configuration des routeurs comme Cisco et ses images IOS, il est également utilisé pour les PC à démarrage sans disque où, après que la station de travail ait démarré à partir de la ROM de la carte réseau, TFTP est utilisé pour télécharger le programme qu’il doit charger et exécuter à partir d’un serveur central.
Vous trouverez ci-dessous un diagramme qui montre ce qui se passe pendant une session TFTP :
Dans ce diagramme, nous supposons qu’il n’y a pas de contrôle d’erreur intégré dans le logiciel fonctionnant aux deux extrémités (client et serveur).
Et cela résume à peu près tout pour le protocole TFTP.
Retour à la section des protocoles réseau