FTP (File Transfer Protocol) es uno de los servicios de transferencia de archivos mas utilizados, seguramente mas de uno alla escuchado o porque no usado el cliente Filezilla, este cliente es uno de los mas usados, pero existen varios. Este servicio tal como lo menciona su nombre sirve para subir/bajar archivos entre dos computadoras a traves de la red.
Algo que debemos tener en cuenta son los modos en los que puede operar el FTP, Activo y Pasivo. A continuación se describen ambos modos con una imágen de ejemplo. Antes de comenzar con la explicacion debemos tener en cuenta que el puerto 20 corresponde al puerto de datos del servidor y el puerto 21 es el puerto de control.
FTP Activo
- El cliente se conecta desde un puerto aleatorio (1026) al puerto de control del servidor (puerto 21)
- El servidor responde con un ACK al puerto de control del cliente (1026 en este ejemplo).
- El servidor inicia la conexion entre su puerto de datos (puerto 20) y el de datos del cliente, en este caso el 1027.
- El cliente responde con un ACK al puerto de datos del servidor.
FTP Pasivo
La diferencia principal es que el puerto de datos en el servidor es aleatorio en el modo pasivo, este modo pasivo se utiliza para cuando estamos detras de un firewall, ya que en modo activo no podremos establecer la conexión desde el servidor hacia el cliente.
Ejemplo de la imágen:
- El puerto de control del cliente (1026) se conecta al servidor al puerto de control (21) y envía el comando PASV
- El servidor responde al cliente con el puerto 2024, el pueto aleatorio de datos abierto para conexiones de datos
- El cliente inicia una conexión desde su puerto de datos (1027) al puerto de datos del servidor (2024)
- Finalmente, el servidor envía de vuelta un ACK al puerto de datos del cliente