COMUNICACIÓN Sistemas Distribuidos

Documentos relacionados
Migrando aplicaciones a IPv6

Estructuras y funciones de programación de sockets.

Mecanismos IPC: sockets

Estructuras y funciones de programación de sockets.

-> Todo socket viene definido por dos características fundamentales:

Clase de Sockets en lenguaje C. Prof. Ricardo González

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA

Adaptación de aplicaciones a IPv6

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

Programación con sockets

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw

Sockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar

Introducción de Sockets en C.

Características de un lenguaje ideal para robótica

Redes de Computadores Nivel de Aplicación: Programación con sockets I

Diseño de aplicaciones distribuidas ÍNDICE

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos Distribuidos

Tema 4: Sockets: Un interfaz con TCP/IP

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

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén

ARQUITECTURA DE REDES Laboratorio PRÁCTICA 2: MANUAL DE SOCKETS EN C. Grado en Ingeniería Informática Curso 2014/15

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

Sockets Básicos. Sockets Básicos

Arquitecturas Cliente/Servidor

Sockets Básicos. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. Temas a tratar...

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar

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

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011

Programación en red sobre TCP/IP Interface sockets

SISTEMAS DE COMUNICACIONES DE DATOS

Programación C/S Básica

Comunicación en Sistemas Distribuidos

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

Análisis Experimental de la Transmisión de Datos

Sistema Cliente Servidor Con Sockets

Guía Beej de Programación en Redes

Programación de aplicaciones distribuidas usando sockets

Administración de redes en GNU/Linux

SOCKET S. Alberto Castro Rojas

Tema 2. Comunicación entre procesos

Versión 1.0, 26 de marzo de 2.000

Programación de sockets

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

AMPLIACION DE SISTEMAS OPERATIVOS SOCKETS AIRAN GODOY HERNANDEZ JOSE MARIA RODRIGUEZ RODRIGUEZ 5º INGENIERIA EN INFORMATICA

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

CENTRO DE ESTUDIOS NOVA - Cartagena Laboratorio de Software de Comunicaciones TEMA 1 FUNDAMENTOS DE SOCKETS TCP Y UDP

Módulo 2 Comunicación

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1

Desarrollo de Aplicativos con winsockets

Programación con Sockets

Introducción a Sockets en Linux

Redes (IS20) Ingeniería Técnica en Informática de Sistemas - (2º Curso)

a) Indique las principales características de los sistemas distribuidos.

Nivel de Transporte en Internet

S C TP: Una alternativa al protocolo TC P s obre Linux. Ing. Isaac Fernández Baca Peña

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

TimeOut RTT medido 1 5 seg. 2*5= ,7 3 TimeOut 3 TimeOut 3 0, ,35 5 0,44

ARQUITECTURA DE REDES Laboratorio

Comunicación entre procesos

El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico

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

Problemas de Redes de Computadores. Conjunto de problemas 1

Comunicación entre procesos mediante Sockets Preparado por Gabriel Astudillo Muñoz Escuela de Ingeniería Civil Informática Universidad de Valparaíso

Definiciones preliminares

Sistemas Distribuidos

Arquitecturas cliente/servidor

PRÁCTICA 2: Cliente-servidor UDP

Alumno: Grupo: Ejercicio 1. Responda a las siguientes preguntas cortas justificando brevemente su respuesta (3 puntos).

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

Conceptos generales de sistemas distribuidos

Juan de Dios Murillo Morera Santiago Caamaño Polini INTRODUCCIÓN


Usando Internet Sockets Brian "Beej" Hall Copyright by Brian "Beej" Hall

Solución Examen 17 de diciembre de 2010 (ref: eirc1012.odt)

Introducción a la programación de shellcodes para GNU/Linux

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013

Guía docente 2013/2014

Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación

WSAEADDRNOTAVAIL (10049) Dirección solicitada no se puede asignar.

Sockets ARISO II - ETSETB. Modelo OSI

Unidad II Modelos de Referencias TCP/IP

Este proyecto ha sido cofinanciado por PROFIT.

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP.

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Arquitecturas aplicativas

Arquitectura de Redes y Servicios de Telecomunicación

Capítulo 5. Programación de aplicaciones de red

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

Gran número de usuarios accediendo a un único servicio y con un único protocolo. Servidores y clientes con distintos protocolos.

IMPLEMENTACIÓN DE APLICACIONES DE SEGURIDAD CON OPENSSL

Introducción a las redes de ordenadores y protocolos de comunicación. Ordenador que no depende de otro para su funcionamiento.

Tema 1: Arquitectura de Redes de Comunicaciones

Comunicación de Datos I Profesora: Anaylen López Sección IC631 MODELO OSI

Práctica 5: Implementación en C++ de sistemas cliente/servidor basados en comunicación

Escaneo Básico de Puertos Utilizando Flags TCP Alejandro Hernández

Tema 5 Comunicación con sockets

07 << Acceso en exclusiva al recurso compartido >>

Transcripción:

COMUNICACIÓN Sistemas Distribuidos Alvaro Ospina Sanjuan Universidad Pontificia Bolivariana Medellín 2010

Agenda Comunicación centralizada y distribuida Protocolos con capas Modelo cliente servidor Sockets Comunicación en grupos Middleware RPC CORBA DCOM RMI

Comunicación 1. Un sólo procesador : señales, pipes, archivos, memoria compartida y mensajes. 2. Sistema Distribuido: transferencia de mensajes. Protocolos con capas Modelo Cliente Servidor Sockets Comunicación en Grupo Middleware: RPC, CORBA, DCOM, RMI.

Protocolos con Capas Modelo OSI

Modelo OSI: Modelo de referencia para interconexión de sistemas abiertos

Mensaje en un protocolo con capas

Ventajas y Desventajas VENTAJAS Cada protocolo es independiente DESVENTAJAS Los encabezados son un costo adicional de transmisión, por lo que no siempre se utilizan todas las capas.

Modelo Cliente - Servidor

Modelo Cliente - Servidor Protocolo solicitud / respuesta

Modelo Cliente Servidor Variaciones Direccionamiento: Machine Machine.process Machine.local-id, Process-global-id Bloqueo: Primitivas con bloqueo o síncronas Primitivas sin bloqueo o asíncronas con copia al núcleo Primitivas sin bloqueo o asíncronas con interrupción

Modelo Cliente Servidor Variaciones Almacenamiento de los mensajes (send-receive): Primitivas no almacenadas Almacenadas temporalmente Almacenadas en buffers Confiabilidad: Send no confiable (sin reconocimientos) Con reconocimientos (4 mensajes) La respuesta como reconocimiento (3 mensajes)

Tipos de paquetes Req: Solicitud. De cliente a servidor. El cliente desea servicio. Rep: Respuesta. De servidor a cliente. Respuesta del servidor al cliente. Ack: Reconocimiento. De cualquiera de ellos a algún otro. El paquete anterior que ha llegado. Aya: Estás vivo?. De cliente a servidor. Verifica si el servidor se ha descompuesto. Iaa: Estoy vivo. De servidor a cliente. El servidor no se ha descompuesto. Ta: Intenta de nuevo. De servidor a clientes. El servidor no tiene espacio. Au: Dirección desconocida. De servidor a cliente. Ningún proceso utiliza esta dirección.

Sockets

Sockets Son ficheros creados tanto en el servidor como en el cliente para su comunicación. Dominio: AF_INET: internet AF_UNIX: máquina local Tipo: SOCK_STREAM: modo conectado (TCO) SOCK_DGRAM: modo no conectado (UDP)

Sockets SERVIDOR{ socket( ) // crear socket bind( ) // asociar IP con el puerto listen( ) // escuchar peticiones loop{ accept( ) // aceptar mensajes //crear hijo o hilo } }

Sockets CLIENTE{ socket( ) // crear socket connect( ) // ligar el socket al servidor send( ) //enviar mensaje receive( ) // recibir respuesta }

Estructuras en C struct sockaddr_in { } short int sin_family; // = AF_INET, AF_UNIX unsigned short int sin_port; //puerto struct in_addr sin_addr; //estructura para la ip unisgned char sin_zero[8]; //arreglo de 0 para completar el tamaño de sockaddr struct in_addr { } unisgned long s_addr; //IP como un entero largo sin signo (sin. )

Funciones de traducción en C De host (local) a network (red): <netinet/in.h> htonl(hostlong); convierte IP de format local a network (Hardware TO Network long - Def: big-endian, little endian). htons(hostshort); convierte el Puerto de format local a network ntohl(netlong); convierte IP de formato network a local ntohs(netshort); convierte Puerto de format network a local IP de string a la estructura in_addr: Convierte de un String a la estructura int inet_aton(const char *cp, struct in_addr *inp); Convierte de la estructura a un String char * inet_ntoa(struct in_addr in);

Ejemplo de cómo llenar estructura #define PUERTO 80 #define DIRECCION 192.168.30.101 struct sockaddr_in mi_estructura; mi_estructura.sin_family = AF_INET; mi_estructura.sin_port = htons( PUERTO ); inet_aton( DIRECCION, &(mi_estructura.sin_addr) ); memset( &(mi_estructura.sin_zero),, 8 );

Funciones para clientes int socket(int domain, int type, int protocol); int connect( int sockfd, // entero devuelto por la invocacion a socket const struct sockaddr *serv_addr, // estructura //sockaddr_in del servidor llena socklen_t addrlen // tamaño de la estructura );

Funciones para servidores int socket(int domain, int type, int protocol); int bind(int sockfd, //socket file descriptor struct sockaddr *my_addr, socklen_t addrlen); //tamaño de sockaddr int listen( int sockfd, // socket int backlog // numero maximo de conexiones ); int accept( int mi_socket, (struct sockaddr *)&mi_estructura, &tamaño );

Comunicación en Grupos

Formas de comunicación

Técnicas de envío de mensajes Multicasting: dirección especial a la que escuchan diferentes procesos. Broadcasting: Los paquetes con dirección 0 se entregan a todas las maquinas Unicasting: se hace un envío a cada proceso.

Diseño de los grupos Comunicación con el grupo: responden a la pregunta quién se puede comunicar con el grupo? Grupos cerrados Grupos abiertos 2. Estructura interna del grupo: Grupos de compañeros Grupos jerarquicos. 3. Creación de grupos y membrecía: Utilización de un servidor de grupos Envío de mensajes a todos

Diseño de los grupos Direccionamiento al grupo: Dar a cada grupo una dirección única (multicast o broadcast) Lista de todos los destinos Direccionamiento por predicado (se evalúa un predicado) 2. Primitivas: Send, group-send Receive, group-receive. 3. Transmisión atómica: Multicast atómico Cada receptor retransmite los mensajes al recibirlos la primera vez.

Diseño de los grupos Ordenamiento de mensajes: Por tiempo global Por tiempo consistente Grupos traslapados: un proceso puede pertenecer a varios grupos

Middleware

Middleware Capa de sw que se coloca entre el usuario y el entorno distribuido, abstrayendo al usuario de la complejidad y heterogeneidad de las diferentes arquitecturas, protocolos de comunicación, sistemas operativos y lenguajes de programación. Conjunto de modelos que ofrecen un entorno de programación distribuido

Middlewares RPC CORBA RMI DCOM

Bibliografia Tanenbaum