FTP es un tipo diferente de protocolo de aplicación que los protocolos habituales como HTTP o SMTP, ya que utiliza conexiones TCP separadas para el comando y la transferencia de datos.
Cuando se conecta al servidor FTP utilizando un cliente, la conexión TCP establecida es iniciada por el cliente y utilizada para emitir comandos y recibir la respuesta del comando. Cualquier tipo de transferencia de datos se realiza abriendo una conexión TCP separada. Incluso cuando da un comando para listar archivos en un directorio, se establece una conexión TCP separada para transferir la salida del comando. Las conexiones de datos no se pueden reutilizar y cada salida o transferencia de datos requiere abrir una nueva conexión TCP.
Ahora, en FTP, los canales de datos pueden ser iniciados por el cliente o el servidor. Cuando el servidor inicia una conexión, se llama modo activo y cuando un cliente la inicia, se llama modo pasivo.
- ¿SMTP utiliza TCP o UDP y por qué?
- ¿Por qué MQTT no es un protocolo escalable?
- ¿Qué protocolos de enrutamiento (capa 3) utilizan los satélites? ¿La alta latencia plantearía algún problema al usar los protocolos existentes?
- ¿Cuál es la diferencia entre el protocolo SMB y el protocolo FTP?
- ¿Cómo funciona el protocolo de comunicación Bluetooth?
El protocolo FTP se desarrolló en los años 70 y hasta principios de 2000, la mayoría de los sistemas operativos no tenían ningún firewall instalado y la mayoría de las computadoras tendrían una dirección IP pública a través de conexiones de acceso telefónico. Debido a esto, fue bastante fácil para el servidor conectarse de nuevo al cliente y el modo activo de FTP era el modo de operación predeterminado.
Más tarde, con el espacio de direcciones IPv4 que se está agotando y la popularidad de los enrutadores domésticos y puntos de acceso que tienen traducción de direcciones de red (NAT), y la mayoría de los sistemas operativos que tienen firewalls incorporados, es casi imposible trabajar FTP en modo activo.
La mayoría de los clientes FTP actuales usan el modo pasivo o tienen la configuración de modo pasivo habilitada de manera predeterminada en la instalación y se conectan al servidor para abrir los canales de datos.
En el lado del servidor, deberá configurar el firewall para permitir todas las conexiones entrantes al servidor FTP. Los firewalls modernos no requieren ninguna configuración específica, ya que pueden seguir el canal de comando FTP y saber qué conexión TCP atravesar.