La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SOCKETS.

Presentaciones similares


Presentación del tema: "SOCKETS."— Transcripción de la presentación:

1 SOCKETS

2 Programa que pide información a un servidor y espera por la respuesta
Máquina que ofrece un servicio que puede ser accedido a través de la red Esquema Cliente Servidor Servidor Cliente Programa que pide información a un servidor y espera por la respuesta

3 Esquema Cliente Servidor
Espera la conexión de un cliente (espera pasiva) Servidor Cliente Iniciador de la conexión

4 (Aplics. Cliente/Servidor)
p.e. FTP, , etc. (Aplics. Cliente/Servidor) Capa de Aplicación p.e. TCP/UDP Capa de Transporte p.e. IP Capa de Red p.e. Ethernet Capa de Enlace de Datos Capa Física

5 Por ejemplo: Aplicación cliente o servidora Dirección hacia donde se transmite Puerto por donde se recibe, etc. Capa de Aplicación Datos Capa de Transporte Capa de Red Capa de Enlace de Datos Capa Física

6 Application Programme Interface
Capa de Aplicación Network API Network API Capa de Transporte Capa de Red Application Programme Interface Capa de Enlace de Datos Capa Física

7 La mayoría de los sistemas han adoptado
Socket API (disponible en la mayoría de los S.O., p.e. Linux, UNIX, Windows) Capa de Aplicación Network API Capa de Transporte Capa de Red Capa de Enlace de Datos Capa Física

8 Capa de Aplicación Socket API Capa de Transporte En algunos S.O. las funciones de Socket API están integradas en el S.O. (p.e. BSD UNIX) En otros, una biblioteca entrega las funciones necesarias para comunicar la Aplicación con la Capa de Transporte (p.e. socket.h).

9 Socket API (sockets) Los sockets operan según el paradigma open-read-write-close (UNIX I/O). open Se “crea” el socket Análogamente al trabajo con archivos, open retorna un descriptor a un socket.

10 Se “leen” los datos entrantes al socket
Socket API (sockets) Los sockets operan según el paradigma open-read-write-close (UNIX I/O). Se “leen” los datos entrantes al socket read Análogamente al trabajo con archivos, read lee los datos que “llegan al socket”.

11 Se “escriben” datos en el socket
Socket API (sockets) Los sockets operan según el paradigma open-read-write-close (UNIX I/O). Se “escriben” datos en el socket write Análogamente al trabajo con archivos, write escribe datos “en el socket”.

12 Socket API (sockets) Los sockets operan según el paradigma open-read-write-close (UNIX I/O). close Análogamente al trabajo con archivos, close indica que se ha terminado de usar el socket.

13 Socket API (sockets) En realidad, la comunicación usando sockets es algo más complicada que open-read-write-close. Por ejemplo, es necesario especificar: protocolo de transporte dirección destino tipo de dirección destino si se trata de un servidor, puerto por el que recibe las peticiones etc.

14 Comunicación usando sockets
Ambos crean un socket para comunicarse a través de la red Servidor Familia de protocolos a usar en la comunicación AF_UNIX: Comunicación interna AF_INET: TCP/IP AF_APPLETALK: Apple Talk AF_NS: Xerox NS AF_CCITT: Protocolos CCITT, X25, etc. AF_SNA: IBM SNA AF_DECnet: DECnet Cliente descriptor = socket (protofamily, type, protocol)

15 Comunicación usando sockets
Ambos crean un socket para comunicarse a través de la red Servidor Tipo de comunicación que usará el socket SOCK_DGRAM: Modo no conectado SOCK_STREAM : Modo conectado SOCK_RAW : Acceso a protocolos de más bajo nivel (p.e. IP). Superusuario. SOCK_SEQPACKET: Para comunica-ciones con Xerox NS. Cliente descriptor = socket (protofamily, type, protocol)

16 Comunicación usando sockets
Ambos crean un socket para comunicarse a través de la red Servidor Protocolo de transporte que usará el socket Cliente descriptor = socket (protofamily, type, protocol) 0: protocolo por defecto

17 Comunicación usando sockets
Ambos crean un socket para comunicarse a través de la red Servidor Cliente descriptor = socket (protofamily, type, protocol) Protocolo de transporte por defecto (TCP) Modo conectado Familia TCP/IP Por ejemplo: sock=socket(PF_INET,SOCK_STREAM,0)

18 Comunicación usando sockets
El servidor asocia el descriptor del socket al puerto por el que recibirá las peticiones y a la dirección local Servidor Cliente Descriptor del socket retornado por la función socket bind (descriptor, dir_local, largo_dir_local)

19 Comunicación usando sockets
El servidor asocia el descriptor del socket al puerto por el que recibirá las peticiones y a la dirección local Servidor Estructura que contiene la dirección local: Familia de Dirs. Dir_Octetos 0 -1 16 31 Dir_Octetos 2 -5 Dir_Octetos 6 -9 Dir_Octetos Servidor Cliente struct sockaddr { u_short sa_family; char sa_data[14]; }; bind (descriptor, dir_local, largo_dir_local)

20 Comunicación usando sockets
El servidor asocia el descriptor del socket al puerto por el que recibirá las peticiones y a la dirección local Servidor Largo de la dirección local (medido en bytes) Cliente bind (descriptor, dir_local, largo_dir_local)

21 Comunicación usando sockets
El servidor queda en espera... Servidor Especifica el largo de la fila de peticiones de clientes esperando ser atendidas Cliente Descriptor del socket listen(descriptor, largo_cola)

22 Comunicación usando sockets
Servidor Resumen actividades hechas por el servidor (hasta ahora): Crea un socket (socket) Le asocia un puerto y una dirección local (bind) Queda en espera (listen)

23 Comunicación usando sockets
Y el cliente... una vez creado el socket... Cliente

24 Comunicación usando sockets
Se conecta (sólo si se trata de un servicio SOCK_STREAM) al servidor a través de su socket. Para esto le asocia el puerto del servidor y su dirección . Servidor Cliente Descriptor del socket retornado por la función socket connect (descriptor, dir_destino, largo_dir_destino)

25 Comunicación usando sockets
Servidor Estructura que contiene la dirección destino: Familia de Dirs. Dir_Octetos 0 -1 16 31 Dir_Octetos 2 -5 Dir_Octetos 6 -9 Dir_Octetos Se conecta (sólo si se trata de un servicio SOCK_STREAM) al servidor a través de su socket. Para esto le asocia el puerto del servidor y su dirección. Servidor Cliente connect (descriptor, dir_destino, largo_dir_destino)

26 Comunicación usando sockets
Se conecta (sólo si se trata de un servicio SOCK_STREAM) al servidor a través de su socket. Para esto le asocia el puerto del servidor y su dirección. Servidor Largo de la dirección destino(medido en bytes) Cliente connect (descriptor, dir_destino, largo_dir_destino)

27 Comunicación usando sockets
Resumen actividades hechas por el cliente (hasta ahora): Crea un socket (socket) Le asocia un puerto y una dirección destino (connect, sólo en caso de un servicio con conexión) Cliente

28 Comunicación usando sockets
Se inicia la transferencia de información Servidor read, readv, recv, recvfrom, recvmsg Cliente write, writev, send, sendto, sendmsg

29 Comunicación usando sockets
Se inicia la transferencia de información Servidor write, writev, send, sendto, sendmsg Cliente read, readv, recv, recvfrom, recvmsg

30 Comunicación usando sockets
RESUMEN SERVIDOR CLIENTE socket bind listen socket connect write read write read close

31 ./etc/services (primeras líneas)
tcpmux 1/tcp echo 7/tcp echo 7/udp discard 9/tcp sink null discard /udp sink null systat /tcp users daytime /tcp daytime /udp netstat /tcp chargen /tcp ttytst source chargen /udp ttytst source ftp-data /tcp ftp /tcp telnet /tcp smtp /tcp mail


Descargar ppt "SOCKETS."

Presentaciones similares


Anuncios Google