Comunicación Cliente-Servidor
El servicio FTP es un servicio TCP y utiliza dos puertos para realizar su trabajo
El número de puerto para las conexiones de datos y la forma en la que las conexiones son inicializadas varía dependiendo de si el cliente solicita los datos en modo activo o en modo pasivo.
- Modo Activo
- El cliente arranca e intenta conectarse contra el servidor. Para ello crea un canal de control desde cualquier puerto del cliente (puerto X) no privilegiado, es decir, mayor de 1024 hacia el puerto 21 del servidor.Una vez que está establecida la conexión, se envía el comando PORT al servidor, para especificar el número de puerto que debe utilizar el cliente para crear la conexión de datos (puerto Y o X+1).Para ciertas operaciones, es necesario realizar el envío de un fichero, por lo que se crea el canal de datos. Para ello el servidor crea una conexión física desde su puerto 20 hasta un número de puerto del cliente. Este número de puerto fue el que indicó el cliente a través del comando PORT (puerto Y o X+1). De este modo, el servidor establece el canal de datos por el que se transmite la información.
Este esquema que hemos visto es el denominado modo activo, porque es el servidor el que activamente crea el canal de datos. Con el crecimiento de las redes inseguras, tales como Internet, es muy común el uso de cortafuegos para proteger las máquinas cliente. Debido a que estos cortafuegos en el lado del cliente normalmente rechazan las conexiones entrantes desde servidores FTP en modo activo, se creó el modo pasivo.
Ejemplo:
- Modo Pasivo:
- En el modo Pasivo el cliente se conecta al servidor usando un puerto no privilegiado (el primero que esté libre mayor de 1024, llamémoslo X) al puerto 21 del servidor. Entonces el cliente le indica “quiero trabajar en Modo PASIVO” (comando pass o pasv), el cliente se conecta desde su puerto Y o X+1 a un puerto que el servidor tenga disponible (Z).
Como habréis visto, la principal diferencia es que en el modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el firewall no tiene ninguna conexión entrante que filtrar, y por lo tanto no existen problemas de bloqueo de conexiones.Ejemplo:
Las respuestas del servidor FTP garantizan su sincronización con el cliente. Por lo tanto, por cada comando enviado por el cliente, el servidor eventualmente llevará a cabo una acción y enviará una respuesta.
Las respuestas están compuestas por un código de 3 dígitos que indica la manera en la que el comando enviado por el cliente ha sido procesado. Sin embargo, debido a que el código de 3 dígitos resulta difícil de leer para las personas, está acompañado de texto.
-El primer número indica el estado de la respuesta (exitosa o fallida)
-El segundo número indica a qué se refiere la respuesta.
-El tercer número brinda un significado más específico (relacionado con cada segundo dígito).
Primer número | ||
---|---|---|
Dígito | Significado | Descripción |
1yz | Respuesta positiva preliminar | La acción solicitada está en progreso. Se debe obtener una segunda respuesta antes de enviar un segundo comando. |
2yz | Respuesta de finalización positiva | La acción solicitada se ha completado y puede enviarse un nuevo comando. |
3yz | Respuesta intermedia positiva | La acción solicita está temporalmente suspendida. Se espera información adicional del cliente. |
4yz | Respuesta de finalización negativa | La acción solicitada no se ha realizado debido a que el comando no se ha aceptado temporalmente. Se le solicita al cliente que intente más tarde. |
5yz | Respuesta negativa permanente | La acción solicitada no se ha realizado debido a que el comando no ha sido aceptado. Se le solicita al cliente que formule una solicitud diferente. |
Segundo número
| ||
---|---|---|
Dígito | Significado | Descripción |
x0z | Sintaxis | La acción tiene un error de sintaxis o sino, es un comando que el servidor no comprende. |
x1z | Información | Ésta es una respuesta que envía información (por ejemplo, una respuesta a un comando STAT). |
x2z | Conexiones | La respuesta se refiere al canal de datos. |
x3z | Autenticación y cuentas | La respuesta se refiere al inicio de sesión (USUARIO/CONTRASEÑA) o a la solicitud para cambiar la cuenta (CPT). |
x4z | No utilizado por el protocolo FTP. | |
x5z | Sistema de archivos | La respuesta se relaciona con el sistema de archivos remoto. |
Códigos de respuesta por número.
- 110
- Respuesta al marcador de reinicio. En este caso, el texto debe ser: MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos en el proceso de usuario y mmmm es el equivalente en el servidor.
- 120
- El servicio estará en funcionamiento en nnn minutos.
- 125
- La conexión de datos ya está abierta; comenzando transferencia.
- 150
- Conexion abierta.
- 200
- OK (Orden correcta).
- 202
- Orden no implementada, no necesaria en este sistema.
- 211
- Estado del sistema o respuesta de ayuda del sistema.
- 212
- Estado del directorio.
- 213
- Estado del fichero.
- 214
- Mensaje de ayuda. Sobre como usar el servidor o el significado de una orden particular no estándar.
- 215
- identificación del tipo de sistema.
- 220
- Servicio preparado para nuevo usuario.
- 221
- Cerrando la conexión de control. Desconectado si procede.
- 225
- Conexión de datos abierta; no hay transferencia en proceso.
- 226
- Cerrando la conexión de datos. La acción sobre fichero requerida ha sido correcta (por ejemplo, una transferencia o interrupción).
- 227
- Iniciando modo pasivo.
- 230
- Usuario conectado, continúe.
- 250
- La acción sobre fichero solicitado finalizó correctamente.
- 257
- "path" creado.
- 331
- Usuario OK, necesita contraseña.
- 332
- Necesita nombre de cuenta.
- 350
- La acción requiere más información. Pendiente
- 421
- Servicio no disponible, cerrando la conexión de control. Esta puede ser la respuesta a cualquier comando si el servidor sabe que debe finalizar.
- 425
- No se puede abrir la conexión de datos.
- 426
- Conexión cerrada; transferencia interrumpida.
- 450
- Acción no realizada. Fichero no disponible (por ejemplo, fichero bloqueado).
- 451
- Acción interrumpida. Error local.
- 452
- Acción no realizada. Falta de espacio en el sistema de ficheros.
- 500
- Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea de orden demasiado larga.
- 501
- Error de sintaxis en parámetros o argumentos.
- 502
- Orden no implementada.
- 503
- Secuencia de órdenes incorrecta.
- 504
- Parámetro incorrecto para esa orden.
- 530
- No está conectado.
- 532
- Necesita una cuenta para almacenar ficheros.
- 550
- Acción no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se tiene acceso al mismo).
- 551
- Acción interrumpida. Tipo de página desconocido.
- 552
- Acción interrumpida. Se ha sobrepasado el espacio disponible de almacenamiento (para el directorio actual).
- 553
- Acción no realizada. Nombre de fichero no permitido.
- Ejemplo de una Conexión entre el Cliente y el Servidor FTP:
- Aquí podemos ver las respuestas que un Servidor FTP realiza tras cada petición del cliente.-Ejemplo de una Conexión FTP en Linux:
-
-Ejemplo de una Conexión FTP en Windows usando "Filezilla Client":Modo Pasivo:
Fuentes:Imágenes:
-http://descargartodo.com/wp-content/plugins/wp-o-matic/cache/3_fzp.jpg
No hay comentarios:
Publicar un comentario