Protocolo FTP: Transferencia de Archivos
Protocolo FTP: Transferencia de Archivos
SigloFTP
Puerto21 (escuchar)
20 (datos predeterminados)
RFCRFC 3659
Montón de protocolos
7•Aplicación
6•Presentación
5•Sesión
4•Transporte
3•Red
2•Enlace
1•Física
Modelo Internet
Modelo OSI
debe ser configurado para permitir la conexión de datos. La ventaja de este modo es que el servidor FTP
n'inicia ninguna conexión. Este modo funciona sin problemas con una puerta de enlaceNAT. En las noticias
implementaciones, el cliente inicializa y se comunica directamente por el puerto 21 del servidor; esto permite
simplificar las configuraciones de los firewalls de servidor.
Dos puertos están estandarizados (puertos bien conocidos) para las conexiones FTP: el puerto 21 para los comandos y el puerto
20 para los datos.
Este protocolo puede funcionar conIPv4yIPv6.
Historia
El Protocolo de Transferencia de Archivos (FTP, por sus siglas en inglés) proviene de la RFC 114 creada el 16 de abril de 1971.
Esta especificación fue reemplazada por la RFC 765 en junio de 1980. A su vez, fue reemplazada por la RFC 959 en
octubre de 1985, versión final de la especificación. Varios RFC complementan esta especificación, como la
RFC 2228 de junio de 1997 para la adición de extensiones de seguridad o la RFC 2428 de septiembre de 1998 que añade el
soporte del protocoloIPv6y define un nuevo tipo de modo pasivo.
Utilización
Para acceder a un servidor FTP, se utiliza un cliente FTP, ya sea en línea de comandos o con una interfaz gráfica.
Los usuarios deGNU-Linuxou d'unUNIXpueden consultar una documentación (la mayoría de las veces instalada por
defecto), al teclear « man ftp »
La mayoría de los navegadores recientes permiten conexiones FTP utilizando unaURLde tipo :
[Link]
En informática anglófona se utiliza login o username para usuario y passwd o password para mot
de pase.
Por seguridad, se recomienda no especificar la contraseña, el servidor la solicitará. Esto evita dejarla.
visible en el historial del navegador, pero no cambia el hecho de que se transmite en claro a través de la red.
La parte port_ftp es opcional. Si se omite, se utilizará el puerto por defecto (21).
Diagrama de flujo
El protocolo
El protocolo utiliza dos tipos de conexionesTCP:
• Una conexión de control iniciada por el cliente, hacia el servidor (puerto 21 en general), para transmitir los
comandos de archivos (transferencia, eliminación de archivos, renombrar, lista de archivos…).
• Una conexión de datos iniciada por el cliente o el servidor para transferir los datos requeridos (contenido de
ficheros, lista de ficheros.
Conexión de control
Esta conexión utiliza el protocoloTelnetEl cliente envía un pedido en forma de una línea de texto
terminada por un salto de línea (CR seguido de LF, es decir, , 0A0D en hexadecimal, o el carácter 13 y el carácter 10)
[En QuickBasic: CHR$(13)+CHR$(10)] )
Por ejemplo, el siguiente comando solicita la descarga del archivo "[Link]":
RETR [Link]
N.B.: Los comandos como GET o PUT no son reconocidos en el protocolo FTP, pero a menudo se utilizan.
por los softwares de cliente FTP.
Tras el envío del pedido, el cliente recibe una o varias respuestas del servidor. Cada respuesta es
precedida de un código decimal que permite al cliente FTP procesar la respuesta que puede contener una o varias líneas
de texto.
Para el ejemplo anterior, si el servidor encuentra el archivo solicitado, envía al cliente:
Según lo que el cliente y el servidor han acordado, uno de los dos escucha en el puerto TCP acordado, y el otro se conecta a él.
para establecer la conexión de datos. Luego, el servidor envía al cliente el contenido del archivo solicitado, cierra la
conexión de datos, y envía la siguiente respuesta sobre la conexión de control:
Conexión de datos
La conexión de datos está establecida durante la transmisión de datos (contenido de archivos, o lista de
archivos). En general, se establece para la transferencia de datos de un solo pedido, a menos que se utilice otro modo.
de transmisión debe ser seleccionado y soportado por el servidor.
El comando PASV indica al servidor que debe esperar pasivamente la conexión escuchando un puerto TCP (en
general, el puerto 20). El puerto en el que escucha el servidor se indica en la respuesta:
Donde h1 a h4 son 4 números enteros entre 0 y 255 que representan la dirección IP del servidor, y p1 y p2 representan el puerto
TCP donde el servidor espera la conexión, en forma de dos enteros entre 0 y 255 (port_TCP = p1 * 256 + p2).
En el caso contrario donde el cliente espera la conexión en un puerto TCP, indica de la misma forma el puerto escuchado.
al enviar el comando PORT :
PORTh1,h2,h3,h4,p1,p2
Modo de transferencia
Durante la transferencia de archivos a través de la conexión de datos, se pueden utilizar 2 modos:
Aplicaciones
Le FXP permite, por ejemplo, realizar unespejo.
• Él se utiliza mucho para difundir contenido rápidamente, por ejemplo en el ámbito de lawarez
Protocolo de Transferencia de Archivos
5
Funcionamiento
El protocolo FXP es una técnica particular de uso del protocolo FTP.
Por defecto, un servidor FTP es un servidor para los intercambios en cuanto a la señalización (uno se conecta a él)
pero paradójicamente cliente en lo que respecta a las transferencias de datos (es él quien se conecta para proceder a los
descargas montante o descendente).
Sin embargo, es posible usar un servidor FTP como servidor puro (señalización y datos), para ello, se cambia la
sesión en modo dice "pasivo". En el momento de establecer la conexión de datos, el cliente pide a un servidor que espere
la conexión (comando PASV), y captura la dirección IP y el puerto TCP escuchado. Estos dos parámetros se envían a
el otro servidor utilizando el comando PORT. A partir de ahí, se establece la conexión de datos entre los dos
servidores.
La posibilidad de transferir directamente un archivo, entre dos servidores FTP sin pasar por el cliente, viene especialmente
debido a que se puede cambiar uno de estos dos servidores a modo pasivo mientras que el otro estará por defecto en
modo activo.
El cliente es informado del final de la transferencia al recibir una respuesta positiva de cada servidor.
Tomemos el caso de una transferencia de archivo entre el servidor FTP A y el servidor FTP B:
Le el cliente se conecta a los dos servidores
2. Le el cliente luego cambia a modo pasivo uno de los dos servidores y obtiene las credenciales de conexión (par)IP
+ puerto)
3. Le cliente proporcionado al segundo servidor, que aún está en modo activo, las credenciales de conexión del primero
servidor
A partir de ese momento, para transferir un archivo de un servidor a otro, el cliente solo tiene que informar al servidor
destinatario que envía un archivo y luego el servidor emisor que desea recuperar un archivo dado. El archivo es
entonces intercambiado directamente entre los dos servidores FTP remotos.
Es importante tener en cuenta que la transmisión de datos es posible en ambas direcciones, del servidor activo hacia el
pasivo y viceversa.
• wlFxp [5]
Notas
[1][Link]
[2][Link]
[3][Link]
[4][Link]
[5][Link]
Ver también
Enlaces internos
• GNU inetutils
• Clientes FTP
• Otros protocolos de transferencia de archivos :
Protocolo de Transferencia de Archivos
6
Enlaces externos
•(es)El protocolo FTP([Link]
(es)RFC 959 —Protocolo de Transferencia de Archivos (FTP)
Licencia
Creative Commons Atribución-CompartirIgual 3.0 Sin puerto
[Link]