Sistemas Distribuidos



Documentos relacionados
Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

COMUNICACIÓN ENTRE PROCESOS SOCKETS

ARQUITECTURAS CLIENTE/SERVIDOR

Tema 4.1: - TRANSPORTE-

Comunicación Indirecta

Arquitecturas cliente/servidor

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets.

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet

Nivel de Transporte en Internet

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Protocolo ARP. Address Resolution Protocol

Módulo 2 Comunicación

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros.

TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP.

ARQUITECTURA DE REDES Laboratorio

Tutorial BMS Server Studio UDP

Introducción a la programación con sockets en C

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Arquitectura de sistema de alta disponibilidad

Examen Febrero 2002 Test Resuelto Temas 9-13

Comunicación entre Procesos y Sockets

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

REDES INFORMATICAS: Protocolo IP

Tema 4. Gestión de entrada/salida


Redes de Computadoras Junio de Teoría y problemas

El Protocolo IP. Tema 3. Servicio y Protocolo IP. Aplicaciones en Redes Locales 05/06

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia


IP v6. :: Redes :: Redes : : IP v6. transporte. red. enlace. física. aplicación. Versión 28/02/11

Redes de Computadoras El Protocolo PPP

Programación con Sockets

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

Unidad 1: Conceptos generales de Sistemas Operativos.

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED

Bloque IV: El nivel de red. Tema 10: Enrutamiento IP básico

5.1 Introducción a Servicios Web

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Multicast con/sin búfer (en el receptor) Semánticas de envío Tipos de multicast

Fundamentos de Redes de Computadoras

Introducción Mensajes UDP. Asignación de puertos a procesos. Bibliografía [COM06] Internetworking with TCP/IP, Cap. 11.

Tema 6: Comparativa CORBA/Servicios Web

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE APLICACIÓN

4. Programación Paralela

Sistemas Distribuidos Junio 2008

C O N T E N I D O. 1. Propósito. 2. Alcance. 3. Responsabilidad y autoridad. 4. Normatividad aplicable. 5. Políticas

IPSEC. dit. Objetivo: proporcionar a IP (IPv4( IPv4, IPv6) ) mecanismos de seguridad. Servicios de Seguridad

Comunicación entre procesos

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

1. Aplicación de la conmutación de circuitos y la conmutación de paquetes. 1.1 Sistema de señalización número 7 (SS7).

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

Tipos de comunicación La comunicación puede ser:

Unidad I: La capa de Red

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

TEMA: PROTOCOLOS TCP/IP

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.


18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Formularios. Formularios Diapositiva 1

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Versión final 8 de junio de 2009

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Problemas de Redes de Computadores. Conjunto de problemas 1

TEMA 25: El Protocolo TCP/IP.

(decimal) (hexadecimal) 80.0A.02.1E (binario)

C O N T E N I D O. 1. Propósito. 2. Alcance. 3. Responsabilidad y autoridad. 4. Normatividad aplicable. 5. Políticas

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Introducción a las Redes de Computadoras. Obligatorio

I. Verdadero o Falso (16 puntos)

Transporte de Datos. Profesora María Elena Villapol. Comunicación de Datos

Nivel aplicación Interacción Cliente Servidor. ELO322: Redes de Computadores Agustín J. González

Protocolo PPP PPP Protocolo de Internet de línea serie (SLIP)

La vida en un mundo centrado en la red

Manual del Protocolo XML-RPC de Mensajería Negocios

Sistemas de Operación II

LX20 Transmisor universal GPRS

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

TEMA 2: FUNCIONAMIENTO DE INTERNET.

Lab 01: Programación de Sockets en TCP

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma

Examen de Introducción a las Redes de Computadoras y Comunicación de Datos (ref: sirc0707.doc) 31 de julio de 2007

DIRECCIONAMIENTO IP En la versión 4 son 32 bits y están conformado por 4 octetos (0,/,2%$5$-$6&8562'(5('(6

PROTOCOLO OPERATIVO PARA AGENTES DE NIVEL 3.

ATEL ASESORES C.A IP Multimedia Subsystem Prof. Diógenes Marcano

I. Verdadero o Falso (15 puntos)

Sumario... 5 Prólogo Unidad didáctica 1. Introducción a la computación distribuida Objetivos de la Unidad... 12

Transcripción:

Índice Segunda parte: Paso de mensajes Introducción Arquitecturas de comunicación Cliente-servidor Peer-to-peer Paso de mensajes Comunicación punto a punto Comunicación de grupo Llamadas a procedimientos remotos (RPC) Sun RPC Invocación de métodos remotos (RI) Java RI y CORBA Paradigma de paso de mensajes HW de paso de mensajes API de paso de mensajes Sist. de paso de mensajes: Capa sobre protocolo de transporte Si nivel de transporte subyacente (p.e. UDP) no garantiza: Recepción correcta, orden, control de flujo, fragmentación,... Debe hacerlo propio s. paso de mensajes si pretende esa garantía timeouts, ACKs, detección de duplicados, control de flujo, fragmentación/compactación de mensajes, etc. Ejemplos de alternativas con distintos niveles de funcionalidad Básicamente funcionalidad de nivel de transporte: sockets Paso de mensajes orientado a la programación paralela: PI Extensión del paso de mensajes de un microkernel a SD: ach essage-oriented middleware (O): Sistema de colas de mensajes IB WebSphere essage Broker, SQ, Java essage Service Posible sustrato de arquitectura orientada a servicios (asignatura SOS) 3 O Sistemas de colas de mensajes Envío/recepción mensajes a colas con comunic. persistente : Comunicación convencional Destinatario debe estar presente cuando se recibe mensaje Comunicación persistente No es necesario que proceso receptor esté presente Sistema de comunicación guarda mensaje Comunicación débilmente acoplada Emisor (E) y receptor (R) totalmente desacoplados: En nombrado: E y R no se conocen; sólo comparten nombre de cola En el tiempo: no necesitan coincidir odelos punto-a-punto (N N) y editor/subscriptor (N N) essage Broker: componente que transforma formato mens. Apropiada para integración de aplicaciones de empresa (EAI) Ops. avanzadas: transacciones, encaminamiento por contenido 4 -Comunicaciones 1

Primitivas de paso de mensajes Funciones genéricas hipotéticas (con tipos de mensajes): Envío([IN] dirección, [IN] tam_mens, [IN] mensaje, [IN] tipo_mensaje) Recepción([IN] dirección, [IN] tipo_mens_esperado, [IN] tam_mens, [OUT] mensaje, [OUT] tam_real_mens, [OUT] dir_remitente, [OUT] tipo_mens) Esquemas con conexión Existen además primitivas para conectar y desconectar Operaciones de envío y recepción no incluyen direcciones Suelen usarse cuando protocolo subyacente orientado a conexión P.e. sockets stream sobre TCP Alternativas de diseño en aspectos como: Direccionamiento Cómo especificar origen/destino de una comunicación? Especificación del mensaje Grado de sincronía (y buffering) ultidifusión: comunicación de grupos Primitivas de paso de mensajes PI int PI_Send(void *buf, int count, PI_Datatype datatype, int dest, int tag, PI_Comm comm) int PI_Recv(void *buf, int count, PI_Datatype, int source, int tag, PI_Comm comm, PI_Status *status) Sockets datagrama ssize_t sendto(int socket, const void *buffer, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t dest_len); ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags, struct sockaddr *restrict address, socklen_t *restrict address_len); ach mach_msg_return_t mach_msg (msg_header_t *msg, msg_option_t option, msg_size_t send_size, msg_size_t rcv_size, port_t rcv_name, msg_timeout_t timeout, port_t notify) 5 6 Esquemas de direccionamiento Usando número de proceso: En envío: nº proceso destinatario En recepción: nº proceso origen; sólo interacción 1 1 O cualquiera (PI_ANY_SOURCE): interacción N 1 Difícil asignar nº proceso único en entorno de propósito general Pero no en aplicación ejecutada en entorno de computación paralela PI: comunicador ( ID. grupo procesos) + nº proceso en el grupo Usando puertos: buzón asociado a una máquina Comunicación entre puertos Proceso reserva uso de un puerto de su máquina (bind de sockets) Envío: desde puerto origen local a puerto destino especificados Recepción: de puerto local; interacción N 1 Sockets INET: ID puerto = dir. IP + nº puerto + protocolo (TCP UDP) Usando colas: buzón de carácter global; interacción N N odos de interacción punto-a-punto nº proceso: 1 1 puerto: N 1 cola: N N 7 8 -Comunicaciones

Tipos de mensajes (etiquetas) Sistema de comunicación gestiona tipos de mensajes En envío: especifica tipo de mensaje enviado Recepción: especifica tipo de mensaje que se quiere recibir o usa comodín (PI_ANY_TAG) últiples canales sobre una misma comunicación Diversas aplicaciones como por ejemplo: Establecer prioridades En cliente-servidor puede identificar operación a realizar Disponible en PI como parámetro de primitivas En ach es un campo dentro del mensaje a enviar ach usa formato mensaje con campos de control además de datos No soportado en sockets Aunque sí mensajes urgentes (OOB: out-of-band) 9 10 Especificación del mensaje Objetivo: enviar N datos de emisor a receptor inimizando nº de llamadas y copias (ideal: zero copy) Alternativas en la especificación del mensaje Vector de bytes: mensaje = dirección buffer + nº bytes (p.e. sockets) Sin información de tipos: aplicación debe gestionar heterogeneidad Primitivas scatter/gather (readv, writev) para minimizar copias y llamadas Vector de datos: mensaje = dir. buffer + tipo de datos + nº datos (PI) Sistema de comunicaciones gestiona heterogeneidad Información de tipos como parámetro de primitivas envío/recepción Usuario puede definir sus propios tipos que pueden tener huecos Secuencia de datos: mensaje = dir. buffer + parejas [tipo-valor] (ach) Sistema de comunicaciones gestiona heterogeneidad Información de tipos en cuerpo de mensaje parejas: descriptor-dato Dato out-of-line (OOL): mensaje con referencia no dato (reduce copias) Envío múltiple Envío con copia tam1 Envío(dest,, tam1,...) tam1 dir tipo1 tam Envío(dest,, tam,...) tipo1 COPIA tam tam Envío(dest, dir, tam,...) tipo tam3 tipo3 Envío(dest,, tam3,...) tipo tam3 tipo3 11 1 -Comunicaciones 3

Envío scatter-gather Envío basado en tipo con huecos tam1 tam1 tipo1 tam Envío(dest,,tam1,,tam,,tam3,...) campo1 tipo1 desp=0 campo tipo - campo3 tipo3 - nuevo_tipo tipo1 tam Envío(dest,, nuevo_tipo, 1,...) tipo tam3 tipo3 tipo tam3 tipo3 13 14 Envío con tipos en mensaje y datos OOL Recepción de mensajes tam1 tipo1 tam tipo tam3 tipo3 dir cabecera tipo1 OOL tipo OOL tipo3 OOL Envío(dest, dir,...) En recepción debe especificarse buffer de tamaño mensaje Si menor: error, pérdida de info. (PI, ach y sockets datagrama) antenimiento de integridad de los mensajes Nunca se entregan parte de mensajes Excepto en comunicación como flujo de bytes (sockets stream) Datos de mensaje no leídos se obtienen en próxima recepción Recepción puede devolver datos de fragmentos de mensajes Si se requiere no mezclar mensajes de tamaño variable se puede: Enviar longitud Usar un separador Hacer shutdown de socket de envío 15 16 -Comunicaciones 4

Formatos de representación Emisor y receptor misma interpretación de información Problemática: Tamaño de datos numéricos Orden de bytes Formatos de texto Aplanamiento (serialize) de estructuras de datos Arquitectura little-endian Dato a enviar: 5 3 1 0 0 0 0 5 Valor: 0x 4 +0x 16 +0x 8 +5 0 0 0 5 Arquitectura big-endian 0 1 3 0 0 0 5 Valor: 5x 4 +0x 16 +0x 8 +0 Dato a recibido: 83.886.080 arshalling Necesario aplanar y convertir info en emisor: marshalling Y la operación inversa (unmarshalling) en receptor Con paso de mensajes puede ser: Responsabilidad del programador (sockets) Automático (PI, ach) RPC/RI lo realizan automáticamente Alternativas: S. de comunicación en emisor convierte a formato de receptor transformar a formato de cualquier receptor S. de comunicación en receptor convierte a su formato transformar desde formato de cualquier emisor S. de comunicación en emisor convierte a formato externo Sólo transformar de nativo a externo y viceversa Ineficiente si formato de emisor = receptor pero de externo 17 18 Formato de representación externo ejor si es estándar La información de tipos puede ser implícita o explícita: Implícita: emisor y receptor conocen tipos de parámetros no viaja info. de tipos con datos Ejemplos: XDR de Sun (RFC 183) y CDR de CORBA Explícita: info. explícita de tipos asociada con datos Ejemplos: Java RI y XL usado en servicios web Permite reflexión Protocolos basados en texto vs. binarios arshalling más sencillo con protocolos basados en texto Además, más fácil de interpretar por usuarios Pero menos eficiente Formato binario: XDR, CDR y Java RI Formato texto: Servicios web (XL) Por ejemplo HTTP: GET //www.fi.upm.es HTTP/1.1 19 0 -Comunicaciones 5

Grado de sincronía y buffering Posibles buffers en comunicación P o envía a P d : copia entre buffers de procesos: Además puede haber buffers en nodo emisor B Ne y/o receptor B Nr inimizar copias entre buffers (ideal: zero copy) De menor a mayor grado de sincronía 1. Envío devuelve control inmediatamente No requiere B Ne pero P o no puede reutilizar hasta que sea seguro Fin de operación o mensaje copiado en algún buffer (B Ne o B Nr ) Requiere operación para comprobar si ya se puede reutilizar. Envío devuelve control después de B Ne P o puede reutilizar, pero posible bloqueo si B Ne lleno 3. Envío devuelve control cuando llega a nodo receptor (B Nr ) No requiere B Ne ; ACK de a 4. Envío devuelve control cuando llega a P d ( ) No requiere B Ne ni B Nr ; ACK de a 5. Envío devuelve control cuando P d tiene respuesta No requiere B Ne ni B Nr : ; respuesta sirve de ACK B Ne B Nr R 1 Retorno inmediato Retorno después de copia local B Ne 3 4 -Comunicaciones 6

Retorno después de llegada Retorno después de recepción ACK B Nr ACK 5 6 Retorno después de respuesta odo de operación en recepción /R R R/ Recepción generalmente bloqueante Opción no bloqueante: retorna si no hay datos Opción asíncrona: Especifica buffer donde se almacenará el mensaje y Retorna inmediatamente S. comunicaciones realiza recepción mientras proceso ejecuta Espera temporizada: se bloquea un tiempo máximo Espera múltiple: espera por varias fuentes de datos 7 8 -Comunicaciones 7

Sockets: grado de sincronía y buffering odo de operación de envío tipo Retorno después de copia local con bloqueo si buffer local lleno Buffer reservado por SO Si aplicación no quiere bloquearse en envío: Usar modo no bloqueante en descriptor socket: error si buffer lleno Usar select/poll para comprobar que envío no bloquea odo de operación de recepción bloqueante Espera múltiple temporizada mediante select/poll Si aplicación no quiere bloquearse en recepción: Usar modo no bloqueante en descriptor socket: error si buffer lleno Usar select/poll para comprobar que hay datos que recibir PI: grado de sincronía y buffering PI_Send Al retornar emisor puede usar su buffer ( ) odo de operación dependiente de implementación:,3 o 4 PI_Bsend odo (retorno después de copia local) Aplicación reserva y proporciona a sistema B Ne de tamaño suficiente PI_Ssend odo 4 (retorno en recepción) PI_Rsend Emisor sabe que receptor está listo para recibir PI_SendRecv odo 5 (retorno después de respuesta) PI_I... Envío devuelve control inmediatamente (odo 1) Comprobar/esperar buffer se puede reutilizar (PI_TEST PI_WAIT) Varias primitivas dependiendo de cuándo se puede reutilizar: PI_Isend PI_Ibsend PI_Issend PI_Irsend PI_Recv Recepción bloqueante PI_Irecv Recepción asíncrona 9 30 Patrones de comunicación (wikipedia) ultidifusión: comunicación de grupo unicast multicast 31 broadcast anycast Destino de mensaje grupo de procesos Envío/recepción especifican dirección de grupos de procesos Posibles usos en sistemas distribuidos: Datos replicados: actualizaciones múltiples Envío de notificaciones en modelo editor/subscriptor Operaciones colectivas en proc. paralelo (pueden incluir cálculos) Implementación depende de si red tiene multicast (IP-multicast) Si no, se implementa enviando N mensajes Un proceso puede pertenecer a varios grupos (grupos solapados) odelos de grupos: Abierto. Proceso externo puede mandar mensaje a grupo Suele usarse para datos o servicios replicados Cerrado. Sólo procesos del grupo pueden mandar mensajes Suele usarse en procesamiento paralelo 3 -Comunicaciones 8

Aspectos de diseño de com. de grupo Grupo abierto versus cerrado Atomicidad: o reciben el mensaje o ninguno Con unidifusión fiable (TCP): en medio, se puede caer emisor Con multicast IP: pérdida de mensajes Orden de recepción de los mensajes FIFO: mensajes de misma fuente llegan en orden de envío No garantía sobre mensajes de distintos emisores Causal: entrega respeta relación causa-efecto Si no hay relación, no garantiza ningún orden de entrega Total: Todos los mensajes recibidos en mismo orden por todos El grupo suele tener carácter dinámico Se pueden incorporar y retirar procesos del grupo Gestión de pertenencia debe coordinarse con la comunicación Propiedad denominada Virtual Synchrony 33 34 Orden FIFO Orden causal P1 1 3 P1 1100 100 P P3 1 P P3 0100 100 Vectores de relojes lógicos P4 P4 1100 35 36 -Comunicaciones 9

Orden total Sincronía virtual P1 P1 P P3 1 Solución simple: proceso en el sistema asigna número único a mensaje P P3 Cambios de miembros actúan como barreras P4 P4 P4 baja SÍ P4 alta NO 37 38 Operaciones colectivas en PI Ops. colectivas de transferencia en PI Comunicación de grupo pero con peculiaridades de CD Comunicador ID de grupo de procesos Todos proc. asociados a comunicador ejecutan misma op. colectiva Aunque sólo uno de ellos hace el envío al grupo Ejemplo: Sólo proceso con ID=root realiza envío int PI_Bcast(void* buffer, int count, PI_Datatype datatype, int root, PI_Comm comm ) Ofrece ops. que realizan transferencias más frecuentes en CD También ops. que realizan reducciones sobre los datos El usuario puede definir la función de reducción 39 40 -Comunicaciones 10

Ops. colectivas de reducción en PI 41 -Comunicaciones 11