¿Qué es el TFTP?
TFTP significa Protocolo trivial de transferencia de archivos. Este protocolo se usa cuando los usuarios necesitan copiar sus archivos. En otras palabras, permite al usuario almacenar y acceder a sus archivos desde el host remoto. Se utiliza principalmente para el sistema de arranque. Para comprender este concepto, tomemos un ejemplo simple: suponga que tiene un sistema o enrutador sin disco arrancado, para eso necesita descargar archivos de arranque y archivos de configuración. En esa situación, necesita un protocolo para copiar esos archivos a una velocidad más rápida. Aquí el TFTP entra en escena. Está diseñado para copiar este tipo de archivos.
TFTP requiere solo IP (Protocolo de Internet) y UDP (Protocolo de datagramas de usuario). TFTP realiza dos operaciones de lectura y escritura a saber. En una operación de lectura, copia archivos del lado del servidor en el lado del cliente, mientras que en la operación de escritura funciona exactamente en el lado opuesto, copia archivos del lado del cliente al lado del servidor.
TFTP utiliza servicios UDP en el conocido puerto 69.
Tipos de mensajes TFTP
Hay cinco tipos de mensajes TFTP A continuación se muestra la lista
- RRQ
- WRQ
- DATOS
- ACK
- ERROR
1) mensaje RRQ
RRQ significa el mensaje de solicitud de lectura. El cliente usa esto para crear una conexión Para leer datos desde el lado del servidor. El mensaje RRQ tiene tres campos OpCode, Filename y Mode. Un OpCode tiene un tamaño de 2 bytes. Contiene 1 para mostrar el mensaje RRQ. Nombre de archivo define el nombre del archivo. Los modos definen el modo de transmisión. El modo de transmisión puede ser netascii para archivos ASCII u octetos para archivos binarios. El formato del mensaje de RRQ se da de la siguiente manera.
2) mensaje WRQ
WRQ significa el mensaje de solicitud de escritura. El cliente usa esto para crear una conexión para escribir datos desde el servidor SIDE. El mensaje WRQ tiene los mismos campos que la única diferencia de RRQ es que OpCode contiene 2 para mostrar el mensaje WRQ. Aquí podemos ver el formato del mensaje WRQ.
3) mensaje de DATOS
Tanto el cliente como el servidor usan mensajes de datos para enviar bloques de datos. Los datos contienen tres campos: OpCode, número de bloque y datos. OpCode contiene 3 para mostrar mensajes de datos. El número de bloque es un campo de 2 bytes que contiene un número de bloque. Todos los bloques están numerados secuencialmente desde 1. El cliente y el servidor usan este campo para enviar datos secuencialmente de modo que el receptor combine el mensaje completo usando este número de bloque. Los datos son de 512 bytes. Los datos pueden transferirse en forma de netascii (archivo ASCII) u octeto (archivo binario). El formato del mensaje DATA se da de la siguiente manera.
4) mensaje ACK
ACK significa Mensaje de reconocimiento. Tanto el cliente como el servidor usan este ACK para acusar recibo del bloque de datos. Este mensaje es de 4 bytes. Contiene dos campos: OpCode y número de bloque. OpCode contiene 4 para mostrar el mensaje ACK. El número de bloque es un campo de 2 bytes que contiene la cantidad de bloques de datos recibidos. El mensaje ACK también puede ser una respuesta al mensaje WRQ que envía un servidor al cliente para indicar que el servidor está listo para recibir datos del cliente. El formato del mensaje ACK se da de la siguiente manera.
5) mensaje de ERROR
El cliente y el servidor usan el mensaje de ERROR cuando no se puede establecer una conexión entre el cliente y el servidor o cuando se ha producido algún error durante la transmisión de datos. Envía una respuesta negativa al mensaje RRQ o al mensaje WRQ. Este mensaje contiene tres campos: Oe, número de error y datos de error. OpCode contiene 5 para mostrar el mensaje de ERROR. El número de error es de 2 bytes que contiene el número de error y su significado. El formato del mensaje ERROR se proporciona de la siguiente manera.
A continuación se muestra la lista de números de error con su significado.
0 - No definido
1 - Archivo no encontrado
2 - Infracción de acceso
3 - Disco lleno o cuota excedida
4 - Operación ilegal
5 - Número de puerto desconocido
6 - El archivo ya existe
7 - Ningún usuario
El campo de datos de error contiene datos de error en formato de texto. Es un campo de 1 byte y termina en 0s.
Conexiones TFTP
Para establecer conexiones, TFTP utiliza un mensaje RRQ, un mensaje WRQ, un mensaje ACK y un mensaje ERROR. Mientras que para finalizar las conexiones, TFTP usa el mensaje DATOS.
1) Establecimiento de conexión
El proceso de establecimiento de la conexión para leer archivos es diferente de escribir archivos.
- Lectura: el cliente envía el mensaje RRQ para establecer una conexión para la lectura. Este mensaje contiene el nombre del archivo y el modo de transmisión del archivo. Una vez que se establece la conexión, el servidor envía una respuesta positiva con el mensaje DATOS, si el servidor puede transferir el archivo. Si no es así, envíe una respuesta negativa con un mensaje de ERROR.
- Escritura: el cliente envía mensajes WRQ para establecer una conexión para la escritura. Este mensaje contiene el nombre del archivo y el modo de transmisión del archivo. Una vez que se establece la conexión, el servidor envía una respuesta positiva con un mensaje ACK, si el servidor puede copiar el archivo. Si no es así, envíe una respuesta negativa con un mensaje de ERROR.
Aquí está la representación de la operación de lectura y escritura.
2) Terminación de la conexión
Después de la transmisión del archivo, la conexión debe finalizar. TFTP no utiliza un mensaje especial para terminar la conexión. La terminación se realiza enviando el último bloque de datos que tiene menos de 512 bytes.
Artículos recomendados
Esta es una guía para TFTP, hemos visto qué es TFTP, diferentes tipos de mensajes en TFTP, conexiones, cómo se establecieron las conexiones TFTP y la terminación que facilitó la comprensión de los conceptos. Espero que encuentres útil este artículo. También puede consultar el siguiente artículo para obtener más información:
- FTP vs TFTP
- Comandos FTP
- Programación vs Desarrollo Web
- Tipos de alojamiento web