Un cliente de protocolo de transferencia de archivos es una aplicación de software que se utiliza para acceder a un servidor de datos mediante el protocolo de transferencia de archivos (FTP). Mediante el uso de este protocolo común, el cliente puede transferir datos desde y hacia el servidor. La aplicación cliente proporciona los medios para establecer una conexión y luego emitir los comandos FTP apropiados al servidor. Viene en muchas formas, operadas a través de una interfaz de línea de comandos (CLI), una interfaz gráfica de usuario (GUI), incluso un navegador web común.
FTP es parte de la capa de aplicación superior del conjunto de protocolos de Internet (IP), y el protocolo de control de transmisión (TCP) se utiliza para el transporte de comunicaciones. El cliente del protocolo de transferencia de archivos, entonces, es responsable de establecer la conexión con el servidor abriendo finalmente dos conexiones TCP. La primera es la conexión de control, donde el cliente envía comandos al servidor FTP. Los primeros comandos enviados a través de la conexión de control son el comando USER, con el nombre del usuario como argumento, y luego el comando PASS seguido de la contraseña. Una vez establecida, la conexión de control permanece abierta durante toda la sesión.
Aquí, el cliente del protocolo de transferencia de archivos configura los diferentes modos de comunicación que tendrá con el servidor. Normalmente, los datos se representan de dos formas, texto o binario, según los datos que se envían o reciben. Las transferencias de tipo texto se utilizan con mayor frecuencia para archivos de texto sin formato codificados con el método de codificación American Standard Code for Information Interchange (ASCII). El modo binario, también conocido como modo de imagen, es para la transferencia de archivos en un formato binario sin texto, como imágenes digitales. Otro, llamado modo local, es otra forma en que FTP puede transferir datos utilizando un formato exclusivo o propietario.
El segundo canal TCP utilizado por el cliente del protocolo de transferencia de archivos es la conexión de datos. Esta conexión es de naturaleza temporal y se crea solo cuando un cliente solicita una lista de los archivos en el servidor o está transfiriendo un archivo hacia o desde el servidor. La conexión de datos se destruye cuando no se produce ninguna transferencia de datos. La conexión de datos también es única en la forma en que se establece, ya sea de forma activa pasiva. El cliente tiene que decirle al servidor el tipo de conexión de datos a usar dependiendo del tipo de conexión disponible en el cliente.
Con una conexión de datos activa, el cliente del protocolo de transferencia de archivos le dice al servidor qué número de puerto TCP usar para la conexión de datos. Sin embargo, cuando se usa en modo pasivo, el cliente simplemente le dice al servidor que es pasivo, y el servidor luego informa al cliente qué puerto TCP usar para la conexión de datos. En la mayoría de los casos, el cliente está configurado para una conexión pasiva debido al uso de firewalls que lo protegen del acceso no autorizado.
Como resultado de la falta general de seguridad en FTP, la seguridad de un cliente de protocolo de transferencia de archivos es parte integral de su funcionamiento, de modo que la actividad del usuario está a salvo de miradas indiscretas. Se han ideado una serie de técnicas de seguridad adicionales para su uso con FTP a lo largo de los años, como por ejemplo, que el cliente nombre explícitamente un protocolo de seguridad para usar o que se implícita automáticamente. Otros clientes intentan utilizar FTP a través de un túnel de shell seguro (SSH), que puede tener dificultades debido a la naturaleza fugaz de la conexión de datos.