COMUNICACIÓN ENTRE PROCESOS SOCKETS



Documentos relacionados
Comunicación entre Procesos y Sockets

Introducción de Sockets en C.

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Tema 4.1: - TRANSPORTE-

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

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

Problemas de Redes de Computadores. Conjunto de problemas 1

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


ARQUITECTURAS CLIENTE/SERVIDOR

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

Migrando aplicaciones a IPv6

Programación con Sockets

SOCKET S. Alberto Castro Rojas

Arquitecturas cliente/servidor

Práctica 1: sockets en Python

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

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

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

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

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

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

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

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

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

Conmutación. Conmutación telefónica. Justificación y definición.

WINDOWS : TERMINAL SERVER

TPV VIRTUAL O PASARELA DE PAGOS DE CAJASTUR

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

INTERNET 4º ESO INFORMATICA / DEP. TECNOLOGIA

1.- FUNDAMENTOS FUNCIONAMIENTO GENÉRICO JAVA SOCKETS Creación de Streams de Entrada...7

Capas del Modelo ISO/OSI

Práctica 5. Curso

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

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

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

Conceptos básicos de redes TCP/IP

Activación de un Escritorio Remoto

Nivel de Transporte en Internet

Aspectos Básicos de Networking

Iptables, herramienta para controlar el tráfico de un servidor

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

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos.

MANUAL AFINITY AFINITY TOKEN

Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino

Telnet Comunicaciones 1. Luis Alfredo da Silva Gregori Gonzalez Rhamin Elrhouate July 2014

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

GedicoPDA: software de preventa

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Unidad IV: TCP/IP. 4.1 Modelo Cliente-Servidor

MANUAL DE AYUDA MODULO TALLAS Y COLORES

POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

Instalación de cygwin-x. Pablo Sanz Mercado.

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

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

TEMA: PROTOCOLOS TCP/IP

NemoTPV SAT Manual de usuario 1. NemoTPV SAT APLICACIÓN DE GESTIÓN DE SERVICIO TÉCNICO PARA PUNTOS DE VENTA DE EUSKALTEL

Cortafuegos ( Firewall ) Arquitecturas de cortafuegos Juan Nieto González IES A Carballeira -

Capítulo 5. Cliente-Servidor.

Sitios remotos. Configurar un Sitio Remoto

Curso de Arquitectura de Redes TCP/IP

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Redes Locales: El protocolo TCP/IP

Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark

Instalación, creación y configuración del servicio FTP

Tutorial BMS Server Studio UDP

CSIR2121. Administración de Redes I

Práctica 2 Programación de Aplicaciones Distribuidas: Sockets TCP. Laboratorio de Comunicación de Datos ITT Telemática 26 de Septiembre 2011

Mecanismos IPC: sockets

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

Certified Offensive and Defensive Security Professional - Entrenamiento E-learning - 3-SCANNING.

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Unidad Didáctica 12. La publicación

Arquitectura de Redes y Servicios de Telecomunicación

pchelpware, asistencia remota libre

El Modelo de Referencia OSI

Manual para la utilización de PrestaShop

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

pchelpware, asistencia remota libre

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

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

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

TEMA 2: FUNCIONAMIENTO DE INTERNET.

IS23 Mantenimiento de Instalaciones Informáticas Práctica 6. Acceso remoto a ordenadores tipo PC

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

INSTALACIÓN DE MEDPRO

.TEL Un uso innovador del DNS

Mini Guía para usar las Keops en el ITAM

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

BREVE INTRODUCCIÓN A IPSEC

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

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red

Legalización Digital Modelos Oficiales-Legalización Digital Archivo-Configuración General Ruta Legalia

Transcripción:

COMUNICACIÓN ENTRE PROCESOS SOCKETS Diseño de Sistemas Operativos Curso 2007/08 Grupo: Mi30 Martín Santana, A. David Martínez Santana, Luis Ignacio

Qué son?(definición) n) Los sockets son mecanismos de comunicación entre procesos que permiten que un proceso hable ( emita o reciba información n ) con otro proceso incluso estando en distintas máquinas. m Una forma de conseguir que dos programas se transmitan datos. Un socket no es más m s que un "canal de comunicación" n" entre dos programas que corren sobre ordenadores distintos o incluso en el mismo ordenador. Desde el punto de vista de programación, un socket no es más m s que un "fichero" que se abre de una manera especial.

Qué son? (Características) Una vez abierto se pueden escribir y leer datos de él l con las funciones de read() y write() (). La forma de referenciar un socket por los procesos implicados, es mediante un descriptor del mismo tipo que el utilizado para referenciar ficheros. Se podrá realizar redirecciones de los archivos de E/S estándar (descriptores 0,1 y 2) a los sockets y así combinar entre ellos aplicaciones de la red.

Propiedades Fiabilidad de la Transmisión. n. No se pierden los datos transmitidos. Conservación n del Orden de los Datos. Los datos llegan en el orden en que se emitieron. No Duplicación n de los Datos. El Dato sólo s llega una vez. Comunicación n en modo conectado. La conexión n está establecida antes de iniciar la comunicación. n. De este modo, la emisión n desde un extremo va destinada al otro (implícitamente). Conservación n de los límites l de los mensajes. Los límites l de mensajes emitidos pueden encontrarse o conocerse en el destino. Envío o de Mensajes urgentes.. Permite el envío o de datos fuera de flujo o fuera de banda. Al enviar datos fuera del flujo normal, son accesibles de inmediato.

Atributos Un socket se caracteriza por tres atributos: Dominio: : Especifica el medio de comunicación n de la red que el socket utilizará. Protocolo: : Especifica que protocolo se va a usar. Tipo: : Los protocolos de internet proveen dos niveles distintos de servicio : flujo y datagramas.

Atributos (Dominio) AF_UNIX: Sockets internos de UNIX (Sockets del sistema de archivos). AF_INET: : Protocolos de internet ARPA (Sockets de redes de UNIX). AF_ISO: : Protocolos estándar ISO. AF_NS: : Protocolos de redes Xerox

Atributos (Protocolo) Se usa donde el mecanismo de transporte permite más m s de un protocolo a ser usado. En las redes de UNIX y en los sockets de sistema de archivos no necesitamos seleccionar otro protocolo diferente al default.

Atributos(Tipo) SOCK_STREAM: : Para flujo Son implementados en el dominio AF_INET por conexiones TCP/IP. Son el tipo usual en el dominio AF_UNIX. SOCK_DGRAM : Para datagramas No establecen ni mantienen una conexión. n. También n existe un límite l en el tamaño o del datagrama que se puede enviar. Se transmite como un solo mensaje en la red que se puede perder, duplicar o llegar fuera de secuencia.

Tipos de Sockets Existen básicamente b dos tipos: Los no orientados a conexión El programa de aplicación n da la fiabilidad Los orientados a conexión. Comunicaciones fiables Circuito Virtual

Tipos de Sockets Un socket queda definido por una dirección n IP, un protocolo y un número n de puerto. En el caso concreto de TCP-IP, un socket se define por una dupla Origen Destino. Tanto el origen como el destino vienen indicados por un par (ip( ip,, puerto).

Tipos de Sockets (Diagrama)

Tipos de Sockets(Puertos) Servidor Puerto acordado Cualquier puerto Cliente Sockets Sockets Mensaje Dirección Internet: XXX.XXX.XXX.XXX Dirección Internet: YYY.YYY.YYY.YYY

Sockets no orientado a conexión Es el llamado protocolo UDP. No es necesario que los programas se conecten. Cualquiera de ellos puede transmitir datos en cualquier momento, independientemente de que el otro programa esté "escuchando" o no. Garantiza que los datos que lleguen son correctos, pero no garantiza que lleguen todos. Se utiliza cuando es muy importante que el programa no se quede bloqueado. No importa que se pierdan datos.

Sockes orientado a conexión. n. Primero hay que establecer correctamente la conexión. n. Ninguno de los dos puede transmitir datos. Se usa el protocolo TCP del protocolo TCP/IP, para gestionar la conexión. n. Se garantiza que todos los datos van a llegar de un programa al otro correctamente. Se utiliza cuando la información n a transmitir es importante, no se puede perder ningún n dato. No importa que los programas se queden "bloqueados" esperando o transmitiendo datos.

Arquitectura de Conexión Cliente Servidor Servidor: es el programa que permanece pasivo a la espera de que alguien solicite conexión con él. Cliente: es el programa que solicita la conexión para pedir datos al servidor Servidor Sockets Cliente Sockets Cliente Red

Arquitectura de la conexión. n. Servidor: Está ejecutándose y esperando a que otro quiera conectarse a él. Nunca da "el primer paso" en la conexión. n. Es el que "sirve" información n al que se la pida. Cliente: Es el programa que da el primer paso en la conexión. n. En el momento de ejecutarlo o cuando lo necesite, intenta conectarse al servidor. Es el que solicita información n al servidor.

Conexión Para poder realizar la conexión n entre ambos programas (cliente y servidor) es necesario conocer: Dirección n IP del servidor. Servicio que queremos crear / utilizar.

Servidor (Funciones) Funciones del servidor en modo conectado: Las funciones utilizadas son las siguientes: int socket (int dominio, int tipo, int protocolo ) int bind bind (int dfserver, struct sockaddr* direccserver, int longdirecc ) int listen (int dfserver, int longcola ) int accept (int int dfserver, struct sockaddr* direcccliente, int* longdirecccli)

Servidor (Funciones) int socket ( int int dominio, int tipo, int protocolo ) crea un socket sin nombre de un dominio, tipo y protocolo específico dominio : AF_INET, AF_UNIX tipo : SOCK DGRAM, SOCK STREAM protocolo : 0 ( protocolo por defecto ) int bind bind ( int dfserver, struct sockaddr* direccserver, int longdirecc ) nombra un socket: : asocia el socket no nombrado de descriptor dfserver con la dirección n del socket almacenado en direccserver. La dirección n depende de si estamos en un dominio AF_UNIX o AF_INET.

Servidor (Funciones) int listen ( int int dfserver, int longcola ) especifica el máximo m número n de peticiones de conexión pendientes. int accept ( int longdirecccli) int dfserver, struct sockaddr* direcccliente, int* escucha al socket nombrado servidor dfserver y espera hasta que se reciba la petición n de la conexión n de un cliente. Al ocurrir esta incidencia, crea un socket sin nombre con las mismas características que el socket servidor original, lo conecta al socket cliente y devuelve un descriptor de fichero que puede ser utilizado para la comunicación n con el cliente.

Servidor (Funcionalidad) El programa servidor realiza los siguientes pasos: Apertura de un socket,, mediante la función socket() (). Esta función n devuelve un descriptor de fichero normal, como puede devolverlo open(). La función socket() no hace absolutamente nada, salvo devolvernos y preparar un descriptor de fichero que el sistema posteriormente asociará a una conexión n en red. Avisar al sistema operativo de que hemos abierto un socket y queremos que asocie nuestro programa a dicho socket. Se consigue mediante la función bind() (). El sistema todavía a no atenderá a las conexiones de clientes, simplemente anota que cuando empiece a hacerlo, tendrá que avisarnos a nosotros. Es en esta llamada cuando se debe indicar el número n de servicio al que se quiere atender.

Servidor (Funcionalidad) Avisar al sistema de que comience a atender dicha conexión de red. Se consigue mediante la función listen(). A partir de este momento el sistema operativo anotará la conexión n de cualquier cliente para pasárnosla cuando se lo pidamos. Si llegan clientes más m s rápido r de lo que somos capaces de atenderlos, el sistema operativo hace una "cola" con ellos y nos los irá pasando según n vayamos pidiéndolo. Pedir y aceptar las conexiones de clientes al sistema operativo. Para ello hacemos una llamada a la función accept() (). Esta función n le indica al sistema operativo que nos déd al siguiente cliente de la cola. Si no hay clientes se quedará bloqueada hasta que algún cliente se conecte.

Servidor (Funcionalidad) Escribir y recibir datos del cliente, por medio de las funciones write() y read() (),, que son exactamente las mismas que usamos para escribir o leer de un fichero. Obviamente, tanto cliente como servidor deben saber qué datos esperan recibir, qué datos deben enviar y en qué formato. Puedes ver cómo c se pueden poner de acuerdo en estos mensajes en el apartado de mensajes. Cierre de la comunicación y del socket,, por medio de la función close() (),, que es la misma que sirve para cerrar un fichero.

Cliente (Funciones) Es el proceso encargado de crear un socket sin nombre y posteriormente enlazarlo con el socker servidor nombrado. Por lo tanto, es el proceso que demanda una conexión n al servidor. Las funciones utilizadas son las siguientes: int socket ( int dominio, int tipo, int protocolo ) int connect ( int longdirecc ) int dfcliente, struct sockaddr* direccserver, int

Cliente (Funciones) int socket ( int int dominio, int tipo, int protocolo ) crea un socket sin nombre de un dominio, tipo y protocolo específico dominio : AF_INET, AF_UNIX tipo : SOCK DGRAM, SOCK STREAM protocolo : 0 ( protocolo por defecto ) int connect ( int longdirecc ) int dfcliente, struct sockaddr* direccserver, int intenta conectar con un socket servidor cuya dirección n se encuentra incluida en la estructura apuntada por direccserver. El descriptor dfcliente se utilizará para comunicar con el socket servidor. El tipo de estructura dependerá del dominio en que nos encontremos.

Cliente (Funcionalidad) El programa cliente realiza los siguientes pasos: Apertura de un socket,, como el servidor, por medio de la función socket() Solicitar conexión con el servidor por medio de la función connect() (). Dicha función n quedará bloqueada hasta que el servidor acepte nuestra conexión n o bien si no hay servidor en el sitio indicado, saldrá dando un error. En esta llamada se debe facilitar la dirección n IP del servidor y el número n de servicio que se desea. Escribir y recibir datos del servidor por medio de las funciones write() y read() (). Cerrar la comunicación por medio de close() ().

Ejemplos de conexión Los sockets orientados a conexion (TCP) Sockets están n orientado a ristras (stream( stream). Permite la conexión n por Circuito Virtual Full Duplex

Ejemplos de conexión Los sockets no orientados a conexión (UDP). Las comunicaciones correspondientes tienen la propiedad de conservar los límites de los mensajes enviados. En el dominio Internet, el protocolo subyacente es el UDP. La transmisión es a nivel de paquetes, donde cada paquete puede seguir una ruta distinta, no garantizándose una recepción secuencial de la información.

Comparativa Sockets Referenciado por descriptores Comunicación n entre procesos de la misma y diferentes máquinas. Comunicación bidireccional. Pipes Referenciados por array de descriptores Comunicación n sólo s entre procesos de la misma máquina. Comunicación n unidireccional. Filosofía a Cliente-Servidor Simple intercambio de información

Bibliografía a y referencias Apuntes de la asignatura. Campus Virtual. TCP/IP Douglas E. Comer. Starlinux.net http:// ://www.starlinux.net/staticpages/index.php?page index.php?page=20020720164837437