Fundamentos de la Arquitectura Cliente-Servidor y Comunicación por Sockets
Enviado por Comunidad Wikiteka y clasificado en Informática
Escrito el en
español con un tamaño de 2,29 KB
Esquema Genérico de un Servidor y un Cliente
Acciones del Servidor
- Abrir el canal de comunicaciones e informar a la red tanto de la dirección a la que responderá como de su disposición para aceptar peticiones de servicio.
- Esperar a que un cliente le pida servicio en la dirección declarada.
- Cuando recibe una petición, si es un Servidor Interactivo, atenderá al cliente directamente. Si el servidor es Concurrente, creará un proceso mediante
fork()para gestionar la solicitud. - Volver al punto 2 para esperar nuevas peticiones.
Acciones del Cliente
- Abrir el canal de comunicaciones y conectarse a la dirección de red atendida por el servidor.
- Enviar al servidor un mensaje de petición de servicio y esperar la respuesta.
- Cerrar el canal de comunicaciones y terminar la ejecución.
Comunicación en Red
Comunicación No Orientada a Conexión
El proceso de comunicación entre un programa cliente y un servidor varía según el tipo de protocolo:
- Comunicación Virtual (Orientada a Conexión): El cliente debe solicitar el establecimiento de la conexión con el servidor antes de la transferencia de datos.
- Comunicación por Datagrama: No requiere conexión previa. Los datos se envían directamente al servidor mediante la función
sendto(), siendo imprescindible indicar la dirección del servidor destino. La funciónrecvfrom()permite al servidor obtener la dirección IP y el puerto UDP del cliente remoto para enviar la respuesta.
Definición de Socket
Un socket se define como el conjunto de elementos que identifica unívocamente un extremo de la comunicación entre dos programas de aplicación.
Estructura de Datos del Socket
- Familia de Protocolos
- Tipo de Servicio
- Dirección IP Local
- Dirección IP Remota
- Puerto de Protocolo Local
- Puerto de Protocolo Remoto