El Protocolo de Transferencia de Archivos Trivial ( TFTP ) es un protocolo de comunicación sencillo para transmitir o recibir archivos en una aplicación cliente-servidor . Un uso principal de TFTP se da en las primeras etapas del arranque de nodos en una red de área local , cuando el sistema operativo o las imágenes de firmware se almacenan en un servidor de archivos. [ 1 ]
TFTP se estandarizó por primera vez en 1981 [ 2 ] y se actualizó en RFC 1350 .
Descripción general
Debido a su diseño simple, TFTP se puede implementar fácilmente mediante código con un bajo consumo de memoria . Por lo tanto, es el protocolo preferido para las etapas iniciales de cualquier estrategia de arranque de red como BOOTP , PXE , BSDP , etc., cuando se trata de transferir datos desde computadoras con muchos recursos a computadoras de placa única (SBC) y sistemas en un chip (SoC) con muy pocos recursos. También se utiliza para transferir imágenes de firmware y archivos de configuración a dispositivos de red como enrutadores , cortafuegos , teléfonos IP , etc. Actualmente, TFTP prácticamente no se utiliza para transferencias por Internet. [ 1 ]
El diseño de TFTP estuvo influenciado por el protocolo anterior EFTP , que formaba parte del conjunto de protocolos PARC Universal Packet . TFTP fue definido por primera vez en 1980 por IEN 133. [ 3 ] En junio de 1981, el Protocolo TFTP (Revisión 2) se publicó como RFC 783 y posteriormente se actualizó en julio de 1992 por RFC 1350, que corrigió, entre otras cosas, el síndrome del Aprendiz de Brujo . [ 4 ] En marzo de 1995, la Extensión de Opciones TFTP RFC 1782, actualizada posteriormente en mayo de 1998 por RFC 2347, definió el mecanismo de negociación de opciones que establece el marco para que las opciones de transferencia de archivos se negocien antes de la transferencia utilizando un mecanismo que es consistente con la especificación original de TFTP. [ 5 ]
TFTP es un protocolo sencillo para la transferencia de archivos, implementado sobre los protocolos UDP/IP mediante el puerto 69. Diseñado para ser pequeño y fácil de implementar, carece de la mayoría de las funciones avanzadas que ofrecen protocolos de transferencia de archivos más robustos. TFTP solo lee y escribe archivos desde o hacia un servidor remoto. No permite listar, eliminar ni renombrar archivos o directorios, y no ofrece autenticación de usuarios. Actualmente, TFTP se utiliza generalmente solo en redes de área local (LAN).
Operación

Una transferencia TFTP se inicia cuando el cliente emite una solicitud para leer o escribir un archivo específico en el servidor. [ 6 ] La solicitud puede incluir opcionalmente un conjunto de parámetros de transferencia negociados propuestos por el cliente según lo especificado por RFC 2347 [ 5 ] y puede especificar un tamaño de bloque según lo especificado por RFS 2348 [ 7 ]
Si el servidor aprueba la solicitud, el archivo se envía en bloques de longitud fija (512 bytes, salvo que se especifique lo contrario). Cada bloque de datos transferidos, que generalmente se transporta dentro de un único paquete IP para evitar la fragmentación de IP , debe ser confirmado por el cliente antes de que se pueda enviar el siguiente bloque. Un paquete de datos de menos de 512 bytes o del tamaño de bloque acordado indica la finalización de la transferencia. [ 6 ]
Si un paquete se pierde en la red, el destinatario previsto agotará el tiempo de espera y podrá retransmitir su último paquete (que puede contener datos o una confirmación), lo que provocará que el remitente del paquete perdido lo retransmita. [ 6 ]
TFTP define tres modos de transferencia: "Netascii" [ 2 ] , que es una forma modificada del conjunto de caracteres ASCII con modificaciones similares a las del protocolo Telnet ; "Octeto", que consiste en datos binarios arbitrarios; y "Correo", que implica el envío de caracteres Netascii a una dirección de correo electrónico en lugar de a un archivo. Este último modo de transferencia se ha considerado obsoleto. [ 6 ]
TFTP utiliza el Protocolo de Datagramas de Usuario (UDP) en la capa de transporte . Una solicitud de transferencia siempre se inicia apuntando al puerto 69, pero los puertos de transferencia de datos son elegidos independientemente por el emisor y el receptor durante la inicialización de la transferencia. Los puertos se eligen aleatoriamente según los parámetros de la pila de red, generalmente del rango de puertos efímeros . [ 6 ]
El protocolo original tiene un límite de tamaño de archivo de transferencia de 65535 bloques, o 32 MB. Con la RFC 2348, que permite tamaños de bloque de hasta 65535 bytes, el tamaño máximo aumentó a 4 GB. [ 7 ] Algunos servidores y clientes admiten la reiniciación del contador de bloques, donde este se restablece después de superar el límite de 65535 bloques. Aunque no es estándar, esto permite, en teoría, un tamaño de archivo de transferencia ilimitado. [ 8 ]
Debido a que requiere un viaje de ida y vuelta exitoso por cada bloque, TFTP ofrece un bajo rendimiento, especialmente en enlaces de alta latencia . En enero de 2015 se publicó el RFC 7440 de TFTP, que introduce una estrategia en la que se envía una mayor cantidad de bloques de datos ininterrumpidos antes de esperar la confirmación, denominada "ventana". Esto mejora sustancialmente el rendimiento para casos de uso como el arranque PXE , como alternativa al aumento del tamaño del bloque, que está limitado por el riesgo de fragmentación de IP . [ 9 ]
Uso
TFTP se ha asociado típicamente con el arranque de red. Una de las primeras aplicaciones fue la carga de arranque mediante el estándar TFTP RFC 906, publicado en 1984, que estableció el estándar de protocolo de transferencia de archivos trivial RFC 783, publicado en 1981, para ser utilizado como protocolo de transferencia de archivos estándar para la carga de arranque. [ 10 ] [ 1 ]
La versión 2.0 del Entorno de Ejecución de Prearranque (PXE) se lanzó en diciembre de 1998, y la actualización 2.1 se hizo pública en septiembre de 1999, utilizando TFTP como protocolo de transferencia de archivos. [ 11 ] Intel ha decidido recientemente brindar soporte generalizado a PXE dentro de la nueva especificación UEFI , extendiendo el soporte de TFTP a todos los entornos EFI/UEFI. [ 12 ] [ 13 ]
Consideraciones de seguridad
TFTP no proporciona mecanismos de seguridad integrados. Se debe tener cuidado con los permisos otorgados a un proceso de servidor TFTP para no vulnerar la seguridad del sistema de archivos del servidor. Por ello, suele instalarse con controles que permiten que solo los archivos con acceso de lectura público estén disponibles a través de TFTP. [ 6 ] Además, no se admite la lista, eliminación, cambio de nombre ni escritura de archivos mediante TFTP. [ 7 ] No se recomiendan las transferencias de archivos TFTP cuando las limitaciones inherentes del protocolo puedan generar problemas de responsabilidad insuperables. [ 9 ]
Documentación de estándares IETF
Véase también
Referencias
- 1 2 3 Especificación del entorno de ejecución de prearranque (PXE) . Intel Corporation . 1999.
- 1 2 Karen R. Sollins (junio de 1981). El protocolo TFTP (revisión 2) . IETF . doi : 10.17487/RFC0783 . RFC 783. Recuperado el 23 de abril de 2026 .
- ↑ Karen R. Sollins (1980-01-29). El protocolo TFTP . IETF . IEN 133. Recuperado el 2010-05-01 .
- ↑ RFC 1123. Grupo de Trabajo de Ingeniería de Internet. Octubre de 1989. doi : 10.17487/RFC1123 . Consultado el 23 de abril de 2026 .
- 1 2 RFC 2347 . Grupo de Trabajo de Ingeniería de Internet. doi : 10.17487/RFC2347 . RFC 2347 . Recuperado el 23 de abril de 2026 .
- ^ Karen R. Sollins ( julio de 1992 ). El protocolo TFTP (Revisión 2) . IETF . doi : 10.17487/RFC1350 . RFC 1350 . Consultado el 1 de mayo de 2010 .
- 1 2 3 Gary Scott Malkin; Art Harkin (julio de 1992). El protocolo TFTP (revisión 2) . IETF . doi : 10.17487/RFC2347 . RFC 2347. Recuperado el 23 de abril de 2026 .
- ↑ "Ampliando TFTP" . CompuPhase . Consultado el 12 de diciembre de 2018 .
- 1 2 Patrick Masotta (enero de 2015). El protocolo TFTP (revisión 2) . IETF . doi : 10.17487/RFC7440 . RFC 7440. Recuperado el 23 de abril de 2026 .
- ↑ David L. Mills. Especificación formal del protocolo de puerta de enlace exterior . Grupo de trabajo de ingeniería de Internet. doi : 10.17487/RFC0904 . RFC 904. Consultado el 23 de abril de 2026 .
- ↑ "Especificación del entorno de ejecución previa al arranque (PXE) - Versión 2.1" (PDF) . Intel Corporation. 20 de septiembre de 1999. Archivado del original (PDF) el 2 de noviembre de 2013. Consultado el 8 de febrero de 2014 .
- ↑ "Especificación de interfaz de firmware extensible unificada" (PDF) . UEFI. 2013-12-02 . Consultado el 2014-04-04 .
- ↑ "Análisis del rendimiento del arranque UEFI PXE" (PDF) . Intel Corporation. 2 de febrero de 2014. Archivado del original (PDF) el 8 de agosto de 2014. Consultado el 4 de abril de 2014 .
- Estándares de redes
- protocolos de red
- protocolos de transferencia de archivos de red
- Arranque de red