Para asegurar que los archivos sean enviado o recibidos sin errores, FTP emplea TCP. Al accesar a un Servidor FTP existe un sistema de autentificación que asegura que únicamente los usuarios autorizados tengan acceso; sin embargo es posible configurar el servidor FTP para que cualquier usuario pueda accesarlo, empleando una característica llamada FTP anónimo.
Antes de establecer la conexión para la transferencia de datos, primero establece una conexión de control. A través de esta conexión de control se envían comandos, donde el envío de los mismos esta basado en reglas establecidas por el Protocolo de Telnet. Se establece una conexión de datos por cada transferencia individual que se realice. El protocolo FTP soporta tanto conexiones normales como pasivas permitiendo ya sea que el servidor o el cliente inicie la conexión.
De los anterior podemos observar que se establecen dos conexiones lógicas:
1. Conexión de Control. Es la conexión principal que se establece en una sesión FTP y se mantiene durante toda la sesión. Esta conexión se emplea para el envío de comandos y replicas.
2. Conexión de Datos. Cada vez que se envían datos (archivos) entre el servidor y el cliente y viceversa, se establece una conexión TCP de datos distinta. La transferencia de datos (archivos) se realiza sobre esta conexión. Cuando la transferencia de archivo es finalizada la conexión de datos finaliza también. A pesar de que la conexión de datos finalice, la conexión de control no termina hasta que la sesión sea finalizada.
En la mayoría de los casos en Servidor FTP asume un rol pasivo en el proceso de la conexión de control, por lo queda únicamente “escuchando” el Puerto reservado TCP “bien conocido”: el puerto 21. Para establecer esta conexión el dispositivo cliente abre un puerto “Efímero” como el puerto origen el cual se comunica al puerto destino No. 21 del servidor FTP. Una vez establecida la conexión de datos, la siguiente orden es la autentificación del Usuario FTP, lo cual nos ayuda en la seguridad ya que únicamente pueden accesar al servidor lo usuarios autorizados y que tipo de acceso puede tener el usuario.
Una vez que se ha establecido la conexión de datos, se procede al envío de datos del cliente al servidor FTP o de servidor al cliente, dependiendo del comando empleado. En FTP se definen 3 tipo de modos de transmisión.
• Modo de Ráfaga (Stream Mode): Los datos son enviados en forma continua en una ráfaga de bytes sin estructura. Este método es el más empleado en las implementaciones FTP, ya que es la forma más simple para implementar un servicio FTP y es el método predeterminado. También es un método general ya que no se basa en el tipo de archivo sino que los trata como una ráfaga de bytes sin revisar el contenido de los archivos.
• Modo de Bloques (Block Mode): Este es un método más convencional ya que divide los datos en bloques y encapsulados en bloques FTP individuales. Cada bloque contiene información sobre la longitud del bloque y del No. del Bloque enviado.
• Modo Comprimido (Compressed Mode): Es un método de transmisión que emplea una técnica de compresión sencilla llamada Codificación de corrida de longitud, la cual es usada para detectar patrones repetidos en los datos enviados. En la práctica normalmente es el modem con el que nos conectamos a internet el que realiza la compresión a nivel de capa 1.
Es importante tomar en cuenta que cuando se hacen transferencias de archivos entre diferentes ambientes la interpretación de los mismos en ocasiones es diferente, por ejemplo cuando transferimos un archivo de texto entre una PC con UNIX y una PC con Windows, el archivo puede interpretarse de forma diferente. Para manejar esta diferencias en un servicio FTP, se puede proporcionar cierta información sobre el tipo de archivo antes de enviarlo. Los tipos de Datos que se encuentran en un servicio FTP son los siguientes:
• ASCII: Define archivos de texto definidos en código ASCII que cuentan con cierto orden y con marcadores de finalización de línea.
• EBCDIC: Define archivos que emplean el grupo de caracteres de IBM EBCDIC.
• Imagen (Image): Define archivos que no cuentan con una estructura interna formal y son enviados un byte a la vez sin ningún proceso.
• Local: Define archivos donde los datos son ordenados en bytes lógicos que contienen bits diferentes a 8. Este tipo de datos permite almacenar los archivos en el sistema destino consistente con su representación local.
En la práctica son usados más frecuentemente dos tipos de datos, ASCII para archivos de Texto e Imagen (Image) para archivos binarios genéricos, como por ejemplo Gráficos, Archivos ZIP y otros tipo de datos que son representados en forma universal. Motivo por el cual son llamados datos de tipo binario.
A continuación algunos videos de Youtube(mr) para entender mejor este protocolo:
-- Fin --

