Figura: TFTP(Trivial File Transfer Protocol)
El protocolo TFTP es un protocolo estándar siendo su número STD el 33.Su status es electivo y se describe en el RFC 1350 - El protocolo TFTP(Revisión 2).
La transferencia de ficheros en TCP/IP es una transferencia de datos de disco a disco, en oposición, por ejemplo, al comando SENDFILE de VM, una función que en el mundo de TCP/IP se considera de correo, en la que envías a los datos al buzón de alguien(el lector en el caso de VM).
TFTP es un protocolo extremadamente trivial para la transferencia de ficheros. Se implementa sobre la capa UDP(User Datagram Protocol) y carece de la mayoría de las características de FTP (ver FTP(File Transfer Protocol)). La única cosa que es capaz de hacer es leer/escribir un fichero de/en un servidor.
Nota: No dispone de medios para la autentificación de usuarios: es un protocolo inseguro.
El comando:
TFTP <nombre del host>
conduce al prompt interactivo en el que se pueden introducir subcomandos:
Para una lista completa de estos comandos, consulta tu guía de usuario del TFTP particular que estés usando.
Cualquier transferencia comienza con una solicitud para leer o escribir un fichero. Si el servidor concede la solicitud, se abre la conexión y el fichero se envía en bloques consecutivos de 512 bytes(longitud fija). Los bloques del fichero se numeran correlativamente, comenzando en 1. Cada paquete de datos debe ser reconocido mediante un paquete de reconocimiento antes de que se envíe el siguiente paquete. Se asume la terminación de la transferencia al recibir un paquete de menos de 512 bytes.
La mayoría de los errores provocarán la terminación de la conexión(falta de fiabilidad), Si un paquete se pierde en la red, se producirá un "timeout", tras el que se efectuará la retransmisión del último paquete (de datos o de reconocimiento).
En el RFC 783 se describió un bug bastante grave, conocido como el Síndrome del Aprendiz de Brujo. Puede causar una retransmisión excesiva en ambas partes de la conexión en algunas circunstancias en las que se producen retardos de red. Se documentó en el RFC 1123 y se corrigió en el 1350. Para más detalles, remitirse a estos RFCs.
Sólo existen cinco tipos de paquetes:
La cabecera de TFTP contiene el identificador opcode asociado al paquete.
Figura: Paquetes TFTP
Actualmente se definen tres modos de transferencia en el RFC 1350:
El modo empleado se indica en el paquete "Request for Read/Write(RRQ/WRQ)".