7
FACULTAD DE INGENIERIAS Y CIENCAS AGROPECUARIAS INGENIERIA EN CIENCIAS DE LA COMPUTACION E INFORMATICA SISTEMAS DISTRIBUIDOS SOCKETS RICHARD CHAMBA QUITO – ECUADOR

rchamba_IER8501_Trabajo5

Embed Size (px)

DESCRIPTION

Informe Practica 5

Citation preview

  • FACULTAD DE INGENIERIAS Y CIENCAS AGROPECUARIAS

    INGENIERIA EN CIENCIAS DE LA COMPUTACION E INFORMATICA

    SISTEMAS DISTRIBUIDOS

    SOCKETS

    RICHARD CHAMBA

    QUITO ECUADOR

  • SOCKETS

    INTRODUCCION

    En el siguiente documento se desarrollara y ampliara el tema de sockets, que servir para el

    aprendizaje, poder implementar y entender de mejor manera la prctica sobre sockets. Para

    iniciar con el tema de sockets, los sockets es el medio por el cual dos programas logran

    intercambiar un flujo de datos fiable y ordenado.

    MARCO TEORICO

    Bsicamente podramos decir que un socket es un punto de comunicacin por el cual un proceso

    puede enviar o recibir informacin. La comunicacin utilizando sockets es un servicio/interfaz con

    la capa 4 (transporte) del modelo OSI. Establecer una conexin mediante sockets es necesario

    conocer la familia o dominio de la conexin y el tipo de conexin.

    Dominio de un socket: Bsicamente el dominio de un socket es una familia (por as decirlo) que

    agrupa sockets que comparten caractersticas comunes, se puede especificar el formato de las

    direcciones que se podrn al socket y los diferentes protocolos soportados por las

    comunicaciones.

    Caractersticas:

    Puede realizar redirecciones de los archivos de E/S estndar a los sockets y as combinar

    entre ellos aplicaciones de la red.

    Una vez abierto se pueden escribir y leer datos mediante las funciones read() y write().

    Los sockets referencia mediante un descriptor del mismo tipo que el utilizado para

    referenciar ficheros.

    Tipos de sockets:

    SOCK_STREAM: Permiten comunicaciones fiables en modo conectado y autorizan

    mediante un protocolo asignado. Establece un circuito virtual realizando una bsqueda de

    enlaces libres que unan los dos ordenadores a conectar.

    SOCK_DGRAM: Sockets destinados a la comunicacin en modo no conectado para el envo

    de datagramas de tamao limitado.

    SOCK_RAW: Permite el acceso a protocolos de ms bajo nivel.

    SOCK_SEQPACKET: Las comunicaciones que poseen las propiedades a, b, c, d y e. Las

    comunicaciones se encuentran en el dominio XNS.

  • Arquitectura de Conexin de un socket

    Modelo cliente/servidor

    Qu es el modelo cliente/servidor? Bsicamente un cliente realiza peticiones a otro programa

    (servidor) y este le proporciona una respuesta. El servidor puede o no estar en la misma maquina

    en que se est ejecutando el programa del cliente; servidores y clientes pueden ser concurrentes o

    iterativos.

    Servidor: Espera continuamente peticiones de servicio, al producirse una peticin el servidor la

    receptar y atiende al cliente, al terminar el servicio el servidor entra en estado de espera para la

    siguiente peticin.

    Servidor interactivo: Recoge la peticin de servicio, y l mismo se encarga de atenderla.

    Servidor recurrente: Recoge cada una de las peticiones de servicio y crea otros procesos

    para que se encarguen de atenderlas.

  • Socket: Realiza la apertura de un socket.

    Bind: Avisa al SO que abrimos un socket y queremos asociar nuestra aplicacin con ese

    socket.

    Listen: Avisa al sistema de que empiece a atender la conexin de red.

    Accept: Pide y acepta las conexiones de clientes al sistema operativo.

    Send/Write: Lee y escribe datos del cliente. El cliente y el servidor deben saber que datos

    reciben y que datos enviar adems del formato.

    Close: Cierra la comunicacin del socket entre el servidor y el cliente.

    Cliente: Entidad activa en el establecimiento de una conexin ya que es el que genera la demanda

    de conexin hacia el servidor. Esta demanda la genera mediante la primitiva connect, genera la

    conexin por los dos extremos.

  • Socket: Realiza la apertura de un socket.

    Connect: Solicita conexin con el servidor. Esta funcin queda bloqueada hasta que el

    servidor acepte la solicitud de conexin.

    Listen: Avisa al sistema de que empiece a atender la conexin de red.

    Send/Write: Lee y escribe datos del servidor.

    Close: Cierra la comunicacin del socket entre el servidor y el cliente.

    Rutinas de operacin adicionales

    Rutinas de ordenacin de bytes: Se disearon para los protocolos de internet.

    o u_long htonl(u_long hostlong); convierte host a network, long integer

    o u_short htons(u_short hostshort); convierte host a network, short integer

    o u_long ntohl(u_long netlong); convierte red a host, long integer

    o u_short ntohs(u_short netshort); convierte red a host, short integer

    Operaciones de bytes: Se utilizan para operar con las estructuras de direccin de los

    sockets.

    o bcopy(char *src, char *dest, int nbytes). Copia el nmero de bytes especificado desde el fuente al destino (notar que el orden de los dos argumentos puntero es diferente del orden usado por la funcin estndar strcpy de I/O).

    o bzero(char *dest, int nbytes). Escribe el nmero especificado de bytes null al destino especificado.

  • o int bcmp(char *ptr1, char *ptr2, int nbytes). Compara dos cadenas de bytes, y devuelve cero si son iguales, o no cero en caso contrario (difiere en los valores devueltos de la funcin strcpy)

    Rutinas de conversin de direcciones o unsigned long inet_addr (char *ptr); convierte una cadena de caracteres en

    notacin decimal con punto a una direccin Internet de 32 bits, y la siguiente funcin:

    o char *inet_ntoa (struct in_addr inaddr); hace la conversin contraria. UNIX ofrece un mecanismo de comunicacin general entre dos procesos cualesquiera que pertenecen a un mismo sistema o a dos sistemas diferentes.

    DIAGRAMA DE ARQUITECTURA

    Podemos observar que la arquitectura de una aplicacin cliente/servidor es centralizada, donde todos los clientes se conectan a un solo servidor.

    CONCLUSIONES

    La comunicacin mediante sockets utilizan protocolo TCP, es decir la comunicacin es confiable.

    Si usamos el protocolo TCP-IP como medio de comunicacin, debemos especificar que el puerto de origen y destino sean el mismo caso contrario no se podrn establecer la comunicacin, adems de especificar una IP.

    Los sockets hay de tipo no orientados a la conexin y de tipo orientados a la conexin.

    Los sistemas desarrollados bajo arquitectura cliente/servidor puede ser multiplataformas.

  • RECOMENDACIONES

    Implementar estrategias para mejorar el manejo de la consistencia y tolerancia a fallos

    Los clientes y los servidores deben utilizar una misma arquitectura para lograr la comunicacin.

    BIBLIOGRAFIA

    [1]. Computer Networks, 2 edicin. Autor: Tanembaum

    [2]. Internetworking with TCP/IP, volumen 1, captulo 5. Autor: D. E. Conner.

    [3]. Instituto de Tecnologas Educativas. Internet Aula abierta 2.0. Modelo cliente-servidor.

    http://www.ite.educacion.es/formacion/materiales/157/cd/m1_1_conceptos_basicos_de_interne

    t/modelo_clienteservidor.html

    [4]. Universidad de Colima. http://docente.ucol.mx/sadanary/public_html/bd/cs.htm

    [5]. Osorio M, Jimena. INFORMTICA CLIENTE-SERVIDOR.

    http://www.angelfire.com/my/jimena/so2/com_guia2.htm

    [6]. Ramirez, Hazel; Hodgson, Jenny; Reyes, Javier; Coleman, Kenny. Universidad Politcnica de

    Nicaragua. Arquitectura cliente/servidor.

    http://es.slideshare.net/NoeGonzalezMendoza/arquitectura-cliente-servidor

    [7]. Ana. Modelo Cliente Servidor. http://anagaldo.blogspot.com/2011/05/modelo-cliente-

    servidor.html

    [8]. Alegsa. Definicin de cliente/servidor (computacin).

    http://www.alegsa.com.ar/Dic/cliente%20servidor.php

    [9]. Campo, Jimmy. Arquitectura cliente servidor. http://es.slideshare.net/jcampo/cliente-

    servidor-307243

    [10]. Martn, David; Martnez, Luis. Comunicacin entre procesos sockets.