Protocolos de Red: FTP, HTTP y Arquitectura Cluster
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 13,96 KB
Protocolos de Red: FTP, HTTP y Arquitectura Cluster
FTP
Es un protocolo de la capa de transporte para la transferencia de archivos entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor.
El servicio FTP es ofrecido por la capa de aplicación del modelo TCP/IP al usuario, utilizando normalmente los puertos de red 20 y 21.
El principal problema de FTP es que está pensado para ofrecer la máxima velocidad, pero no la máxima seguridad.
La forma de comunicación que tiene FTP se basa en que el intérprete de protocolo de usuario inicia la conexión de control en el puerto 21. Las órdenes FTP estándar las genera el PI de usuario y se transmiten al proceso del servidor a través de la conexión de control.
Estas órdenes FTP especifican parámetros para la conexión de datos y la naturaleza de la operación sobre el sistema de archivos.
El proceso de transferencia de datos (DTP), debe esperar a que el servidor inicie la conexión al puerto de datos especificado y transferir los datos.
La comunicación entre cliente y servidor es independiente del sistema de archivos utilizado en cada computadora, ya que usan el mismo protocolo estandarizado: el FTP.
También hay que destacar que la conexión de datos es bidireccional.
Modos de conexión del cliente FTP
FTP admite dos modos de conexión del cliente: Activo, debido a que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la conexión, y Pasivo, que en este caso envía comandos tipo PASV. En los dos modos, el cliente establece una conexión con el servidor mediante el puerto 21, que establece el canal de control.
Modo activo
En este modo, el servidor siempre crea el canal de datos en su puerto 20, mientras que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024. El cliente manda un comando PORT al servidor por el canal de control indicándole ese número de puerto, de manera que el servidor pueda abrirle una conexión de datos.
Modo pasivo
El cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal de control el puerto al que debe conectarse el cliente. El cliente inicia una conexión desde el puerto siguiente al puerto de control hacia el puerto del servidor especificado anteriormente.
Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un comando de control y el servidor recibirá esa conexión de datos en un nuevo puerto aleatorio.
Comandos FTP
Open servidor
: Inicia una conexión con un servidor FTP.CD directorio
: Cambia el directorio de trabajo en el servidor.Get archivo
: Obtiene un archivo.LS
: Muestra el contenido del directorio en el servidor.Delete archivo
: Borra un archivo del servidor.
Cluster
Un Cluster es un conjunto de máquinas unidas por una red de comunicación trabajando para un servicio conjunto. Según el servicio: (alta disponibilidad, alto rendimiento y alta confiabilidad).
Sus características básicas son:
- Un clúster consta de 2 o más nodos.
- Los nodos de un clúster están conectados entre sí por al menos un canal de comunicación.
- Los clústeres necesitan software de control especializado.
- En cada nodo es imprescindible un elemento de proceso, memoria y una interfaz para comunicarse con la red del clúster.
Ventajas
- Disponibilidad: Capacidad para continuar operando ante la caída de alguno de los ordenadores del clúster.
- Distribución en paralelo
- Flexibilidad: Los balanceadores de carga no están amarrados a ninguna arquitectura específica, en lo que respecta a hardware.
- Costos: El diseño y montaje requiere de inversiones sumamente bajas comparadas con las alternativas de solución, las cuales son de un costo elevado.
- Escalabilidad: Capacidad para hacer frente a volúmenes de trabajo cada vez mayores, prestando así un nivel de rendimiento óptimo.
- Expansibilidad: Capacidad de aumentar sus capacidades a través de mejores técnicas.
- Transferencia de información y todo tipo de servicio por internet de forma rápida, a bajo costo e ininterrumpidamente.
- Incremento de velocidad de procesamiento ofrecido por los clústeres de alto rendimiento.
- Incremento del número de transacciones o velocidad de respuesta ofrecido por los clústeres de balanceo de carga.
- Incremento de la confiabilidad y la robustez ofrecido por los clústeres de alta disponibilidad.
Desventajas
- Empresas y entidades prefieren seguir utilizando el modelo cliente/servidor tradicional debido al espacio físico o a nuevos problemas que no se daban en la arquitectura tradicional.
- Espacio físico para el montaje de los clústeres de balanceo de carga.
Tipos de acoplamiento
Fuerte
Software cuyos elementos se interrelacionan mucho unos con otros y posibilitan la mayoría de las funcionalidades del clúster de manera altamente cooperativa. El caso más fuerte es que solamente haya una imagen del kernel del sistema operativo, distribuida entre un conjunto de nodos que la compartirán.
Se puede acceder a todas las partes de este sistema operativo, estrechamente relacionadas entre sí.
Este caso es el que se considera como más acoplado, de hecho, no está catalogado como clúster, sino como sistema operativo distribuido.
Medio
Software que no necesita un conocimiento tan exhaustivo de todos los recursos de otros nodos, pero sigue usando software de otros nodos para aplicaciones de muy bajo nivel. No necesita un sistema de nombres común en todos los nodos.
Débil
Generalmente se basan en aplicaciones construidas por bibliotecas preparadas para aplicaciones distribuidas.
Clasificación de clústeres según sus servicios
Alto rendimiento
Son aquellos que ejecutan tareas que necesitan una gran capacidad computacional o una gran cantidad de memoria o ambos a la vez. Estas tareas pueden comprometer recursos por largos periodos de tiempo.
Alta eficiencia
Su objetivo de diseño es el de ejecutar el mayor número de servicios en el menor tiempo posible. En este tipo, el posible retardo entre nodos no se considera un problema.
Alta disponibilidad
Su objetivo es el de estar disponible 24x7x365 días al año. Tratará de lograr la alta disponibilidad y confiabilidad de los recursos y servicios ofrecidos. Se puede lograr con un software de detección de errores y software que permita reparar los errores que puedan ocurrir.
Balanceo de carga
Conjunto de servidores que se reparten la carga de trabajo formando:
- Front-end: Uno o más nodos que se reparten peticiones que recibe el clúster a otros ordenadores.
- Back-end: Esos otros ordenadores a los que se les envía las peticiones que recibe el clúster.
Tipos de configuración de los clústeres de alta disponibilidad
Configuración Activo/activo
Todos los servidores del clúster tienen acceso a los mismos recursos y podrán ejecutarlos independientemente de los demás clústeres simultáneamente. Este tipo de configuración trae como ventaja que en caso de caída de alguno de los nodos, el servicio seguirá disponible ya que los demás nodos tienen acceso a todos los recursos (trabajan todos a la vez). Cuando cae un nodo, la carga de trabajo del nodo caído recae sobre los demás nodos.
Configuración Activo/pasivo
El servidor activo tiene acceso a los recursos y los demás [pasivos] también tienen acceso a los recursos, aunque no los activan hasta que el propietario deje de estar disponible.
Ventaja: No se degrada y solamente se reinicia cuando el servidor activo no está disponible.
Desventaja: Los servidores pasivos no ofrecen recursos mientras están a la espera.
HTTP
HTTP es un protocolo de la capa de aplicación orientado a las transacciones utilizando el esquema de petición-respuesta entre un cliente y un servidor, siendo su uso más común el de hacer llegar a los usuarios un documento HTML cuando los usuarios solicitan por lo general dicho documento alojado en un nombre de dominio que utiliza las nomenclaturas DNS que identifican a la dirección IP de la máquina que contiene el documento HTML.
Dentro del protocolo HTTP, podemos identificar a los clientes, denominados como user agent y la información transmitida denominada recurso. Un recurso puede ser desde una consulta a una base de datos o el resultado de la ejecución de un programa hasta un archivo. Los recursos se identifican por una URL.
HTTP es un protocolo sin estado, es decir, que no guarda información sobre conexiones anteriores. No obstante, actualmente las páginas web requieren de la información de conexiones anteriores (la cookie).
Como cualquier protocolo, HTTP dispone de sus respectivas versiones. Las versiones del protocolo HTTP son las siguientes:
- HTTP/1.0. Es la versión más utilizada. Sus conexiones son no persistentes.
- HTTP/1.1. Versión más actualizada y mejorada respecto a HTTP/1.0. Sus conexiones son persistentes.
Funcionamiento
- Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el navegador.
- El cliente web descodifica la URL, separando sus diferentes partes, así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el puerto (por defecto 80) y el objeto requerido del servidor.
- Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente.
- Se realiza la petición. Para ello, se envía el comando necesario (get, post…) la dirección del objeto requerido, la versión del protocolo HTTP empleada y un conjunto variable de información.
- El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información.
- Se cierra la conexión TCP.
- Se repiten los pasos del 1 al 6 para cada una de las imágenes.
Métodos
GET
: Solicita un documento al servidor.HEAD
: Similar a GET, pero solo pide las cabeceras HTTP.POST
: Manda datos al servidor para su procesado.PUT
: Almacena el documento enviado en el cuerpo del mensaje.DELETE
: Elimina el documento referenciado en la URL.TRACE
: Rastrea los intermediarios por los que pasa la petición.OPTIONS
: Averigua los métodos que soporta el servidor.
Códigos de respuesta
Se ven cuando el navegador no puede mostrar la página solicitada. Está formado por tres dígitos: el primero indica el estado y los dos siguientes explican la naturaleza exacta del error.
- 10x mensaje de información: No se utilizan en la versión 1.0 del protocolo.
- 20x éxito: Indican la correcta ejecución de la transacción.
- Ej: 200 OK, 202 Accepted
- 30x redirección: Indican que el recurso ya no se encuentra en la ubicación especificada.
- Ej: 300 Multiple choice, 302 Found
- 40x error debido al cliente: Indican que la solicitud es incorrecta.
- Ej: 403 Forbidden, 404 Not found
- 50x error debido al servidor: Indican que existe un error interno en el servidor.
- Ej: 502 Bad Gateway, 503 Service Unavailable
HTTPS
HTTPS es un protocolo seguro de transacciones basado en HTTP. Se caracteriza por enviar los datos cifrados con SSL/TLS en tránsito, lo que lo convierte en un protocolo de transacciones de información sensible más apropiado que HTTP.
Sus diferencias con HTTP son las siguientes:
- URL
- Comienzan por
http://
ohttps://
- Comienzan por
- Puerto
- HTTP = 80 u 8080
- HTTPS = 443
- Seguridad
- HTTP = Protocolo inseguro ya que envía la información en texto plano, por lo que cualquier atacante realizando un esquema de MiTM podría apropiarse de los datos transferidos.
- HTTPS = Protocolo que surgió para enviar información sensible de forma segura en tránsito.
Para implementar HTTPS, se requiere de un certificado digital que deberá estar firmado por una entidad certificadora, para garantizar que el servidor es realmente quien dice ser y evitar así posibles ataques de Phishing.