La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.

Presentaciones similares


Presentación del tema: "LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor."— Transcripción de la presentación:

1

2 LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor

3 Introducción: ä Llamaremos servidor a aquel programa que presta algún servicio a otros, que acceden a él mediante invocaciones. ä El servidor toma un papel pasivo en la comunicación. ä El servidor “avisa” al sistema del servicio que presta, y espera solicitudes de conexión.

4 Introducción: ä Llamaremos cliente a aquel programa que hace uso de alguna de las prestaciones del servidor. ä El cliente toma un papel activo en la comunicación. Es el que debe tomar la iniciativa de la demanda de conexión a un servidor.

5 Introducción: ä El modelo cliente servidor presenta numerosas ventajas: ä Especialización de los servidores. ä Permite compartir recursos caros o escasos. ä Se puede tener acceso a servicios remotos.

6 Introducción: ä Una de las principales características de este sistema es su capacidad de conexión remota, de esta manera a través de una red se puede conectar un cliente a un servidor remoto: ClienteServidor Red

7 Introducción: ä Para hacer portable el esquema cliente servidor, ambos programas se escriben a nivel de aplicación. ä Existen diferencias en la estandarización de las capas en el modelo OSI y TCP/IP como veremos a continuación:

8 OSI v/s Internet TCP/IP OSI Aplicación Presentación Sesión Transporte Red Enlace Física Socket Telnet, FTP, etc. TCP/UDP IP Tarjeta de red Internet TCP/IP Aplicación Transporte Red Física

9 Sockets: ä La experiencia del laboratorio se basa en la utilización de sockets, que son la herramienta en UNIX para comunicarse entre dos procesos cualesquiera que pertenezcan a un mismo sistema o a dos sistemas diferentes. ä Un socket es un punto de comunicación por el cual un proceso podrá emitir o recibir información.

10 Sockets: ä Para entender el concepto se puede hacer el paralelo con la comunicación de individuos por correo o por teléfono. ä Cada una de las entidades implicadas en una comunicación debe disponer de un punto de contacto: se puede tratar de un buzón o de un receptor telefónico.

11 Sockets: ä Un socket no es otra cosa que el equivalente en el sistema a uno de estos objetos.

12 Ports: ä Cada comunicación establece un socket, sin embargo el otro extremo no tiene por qué conocer el socket. ä Para remediar el problema al servicio asociado al socket se le asocia un “port” por donde el socket “escucha” o “habla”. ä Así, servidor y cliente se comunican a través de un puerto determinado.

13 Ports: Puerto : 1525 Socket : 54623 Socket : 13245 Puerto : 1525 Host AHost B

14 Proceso de conexión: Servidor: Crea socket del servidor.Cliente: Crea socket del cliente. Acepta conexión. Conexión establecida. Acepta requerimiento. Procesa la petición. Envía respuesta. Envía requerimiento. Espera respuesta. Cierra socket. socket(a,b,c) Asocia un puerto al socket creado. Espera por requerimiento. bind(a,b,c) listen(a,b) socket(a,b,c)connect(a,b,c)accept(a,b,c)write(a,b,c)read(a,b,c)write(a,b,c)read(a,b,c)close(a) Intenta conectarse al servidor.

15 Funciones utilizadas: ä Creación de un socket: ä resul = socket ( FAM_PROT, TIPO, PROTOCOLO ) ä FAM_PROT: Especifica la familia del protocolo que usara el sockets ( TCP/IP, PUP, etc ). ä TIPO: Especifica el tipo de comunicación deseada ( STREAM, DATAGRAMA,etc ). ä PROTOCOLO: Especifica el protocolo especifico a utilizar (Suele usarse “0” para que el sistema elija el más conveniente dentro de la familia).

16 Funciones utilizadas: ä Conexión a máquina local ( asignar puerto): ä bind ( socket, local_addr, addrlen ) ä socket :Descriptor del socket involucrado. ä local_addr : Estructura que especifica la dirección local ä addrlen :Entero que especifica el largo de la dirección local, medida en bytes.

17 Funciones utilizadas: ä Conexión a máquina remota: ä connect ( socket, dir_dest, largo ) ä socket : Descriptor del socket involucrado. ä dir_dest : Estructura que especifica la dirección remota a la cual se conectará el socket. ä largo :Entero que especifica el largo de la dirección remota, medida en bytes.

18 Funciones utilizadas: ä Recepción y envío de información: ä write ( socket, buffer, largo ). ä read (socket, buffer, largo ). ä socket : Es el descriptor del socket involucrado. ä buffer : Indica la dirección en memoria donde comienza el buffer (datos a transmitir o donde se guardarán los datos leidos según sea el caso). ä largo : Indica el largo del buffer tanto de lectura como de escritura.

19 Funciones utilizadas: ä Cierre del socket: ä close ( socket ) ä socket : Descriptor del socket involucrado.

20 Funciones utilizadas: ä Especificar largo de la cola de clientes en espera del servidor: ä listen ( socket, nmc ) ä socket : Descriptor del socket involucrado. ä nmc:Nº máximo de conexiones que quedarán en espera de ser atendidos por el servidor.

21 Funciones utilizadas: ä Aceptar conexión de cliente al servidor: ä accept ( socket, p_addr, p_lgadr ) ä socket : Descriptor del socket involucrado. ä p_adr : Dirección del socket conectado. ä p_lgadr : Puntero al tamaño de la zona reservada a p_adr.

22 Funciones utilizadas: ä Rutinas para convertir datos: ä localshort=ntohs(netshort) ä locallong=ntohl(netlong) ä netshort=htons(locallong) ä netlong=htonl(locallong)


Descargar ppt "LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor."

Presentaciones similares


Anuncios Google