SOCKET S. Alberto Castro Rojas



Documentos relacionados
TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Introducción de Sockets en C.

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Programación C/S Básica

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

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

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

Programación con Sockets

Adaptación de aplicaciones a IPv6

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

Arquitecturas cliente/servidor

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

Nivel de Transporte en Internet

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

ARQUITECTURAS CLIENTE/SERVIDOR

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

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

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

Programación con sockets

Comunicación entre Procesos y Sockets

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

Diseño de aplicaciones distribuidas ÍNDICE

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

Tema 4: Sockets: Un interfaz con TCP/IP

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

Tema 4.1: - TRANSPORTE-

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

Laboratorio de Redes de Computadores

Estructuras y funciones de programación de sockets.

Arquitecturas cliente/servidor

Sistemas Distribuidos. Sockets

Arquitecturas Cliente/Servidor

Migrando aplicaciones a IPv6

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

Sistemas Operativos Distribuidos

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

Mecanismos IPC: sockets

Arquitectura de Redes y Servicios de Telecomunicación

Problemas de Redes de Computadores. Conjunto de problemas 1

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

Programación de aplicaciones distribuidas usando sockets

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

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

Lab 01: Programación de Sockets en TCP

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

La vida en un mundo centrado en la red

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

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

Jose Antonio de la Morena Tutorial. Nmap Indice

3.1 Introducción a Wireshark

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

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

Programación de sockets

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

Tema 4 Sockets: Un interfaz con TCP/IP

Introducción Mensajes UDP. Asignación de puertos a procesos. Bibliografía [COM06] Internetworking with TCP/IP, Cap. 11.

PRÁCTICA 4. A continuación se resumen algunos de los parámetros más interesantes del comando:

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Elastix : Servidor de Comunicaciones Unificadas

DIPLOMADO EN SEGURIDAD INFORMATICA

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

Conceptos básicos de redes TCP/IP

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

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE APLICACIÓN

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

Práctica de laboratorio 4.5.1: Observación de TCP y UDP utilizando Netstat

Guía Rápida. Guía Rápida. Autor: Antonio Cambronero

TEMA: PROTOCOLOS TCP/IP

2. Qué dispositivo se debe utilizar para enrutar un paquete a una red remota? A switch de acceso B servidor de DHCP C hub D router

Práctica 1. Uso básico de servicios cliente-servidor

Crear un servidor FTP

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

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

Programación en red sobre TCP/IP Interface sockets

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

Administración de redes en GNU/Linux

ENVÍO DE POR MEDIO DE SMTP

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

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

Programación de Sockets

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

COMUNICACIÓN MODBUS TCP CON nanolc

Redes (4º Ing. Informática Univ. Cantabria)

Desarrollo de Aplicativos con winsockets

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

Funcionamiento SMDR Sistema MG

Características de un lenguaje ideal para robótica

Transcripción:

SOCKET S EL64E Alberto Castro Rojas 1

Interfaz de programación genérica Soporte de múltiples suites de protocolos de comunicación (familias) Representaciones de direcciones sin dependencias (endpoint) Proveer servicios de clientes y servidores? 2

Esquema 3

Máquina que ofrece un servicio que puede ser accedido a través de la la red Esquema 3

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

Funciones necesarias Especificación de comunicaciones locales y remotas de los endpoints Inicio de conexión Espera por conexión, entrante Envío y recepción de data Termino de la conexión, adecuadamente Manejo de errores 4

Esquema Espera la la conexión de un cliente (espera pasiva) Iniciador de la la conexión 5

TCP/IP TCP/IP no especifica una API específica Hay varias APIs para usar con TCP/IP: Sockets TLI, XTI Winsock MacTCP 6

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

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

Network Application Programming Interface (API) Los servicios que provee el sistema operativo para servir de interfaz entre las aplicaciones y los softwares de protocolo Application Network API Protocol A Protocol B Protocol C 9

Network API Generic Programming Interface. Soporte de mensajes y conexiones orientadas a la conexión Trabajo con servicios I/O (cuando esto tiene sentido) Independencia del sistema operativo 10

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

Berkeley Sockets Genéricos Soporte de múltiples familias de protocolos Representación independiente de direcciones Uso de interfaces I/O existentes, lo más posible 12

Socket Un socket es una representación abstracta de un endpoint de comunicación Los sockets UNIX trabajan con servicios I/O tal como los archivos, pipes y FIFOs Sockets (claramente) necesitan: establecer una conexión especificar las direcciones de los endpoints 13

Socket 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 14

Socket 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) 15

Unix Descriptor Table Descriptor Table 0 1 2 3 4 Data structure for file 0 Data structure for file 1 Data structure for file 2 16

Socket Descriptor Data Structure Descriptor Table 0 1 2 3 4 Family: PF_INET Service: SOCK_STREAM Local IP: 111.22.3.4 Remote IP: 123.45.6.78 Local Port: 2249 Remote Port: 3726 17

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. 18

Creando un Socket int socket(int family,int type,int proto); family especifica la familia de protocolos (PF_INET para TCP/IP). type especifica el tipo de servicio (SOCK_STREAM, SOCK_DGRAM). protocol especifica el tipo de protocolo (0 usualmente significa default). 19

Socket API (sockets) Los sockets operan según el paradigma openread-write-close (UNIX I/O). read Se leen los datos entrantes al al socket 20

Socket API (sockets) Los sockets operan según el paradigma openread-write-close (UNIX I/O). read Análogamente al trabajo con archivos, read lee los datos que llegan al socket. 20

Socket API (sockets) Los sockets operan según el paradigma open-read-write-close (UNIX I/O). write Se escriben datos en el el socket 21

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

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

Ambos crean un socket para comunicarse a través de la red 24

Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) 24

Familia de protocolos a usar en la comunicación Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) 24

Ambos crean un socket para comunicarse a través de la red 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 descriptor = socket (protofamily, type, protocol) 24

Ambos crean un socket para comunicarse a través de la red Tipo de comunicación que usará el socket descriptor = socket (protofamily, type, protocol) 25

Ambos crean un socket para comunicarse a través de la red 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 comunicaciones con Xerox NS. descriptor = socket (protofamily, type, protocol) 25

Ambos crean un socket para comunicarse a través de la red Protocolo de transporte que usará el socket descriptor = socket (protofamily, type, protocol) 26

Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) 0: 0: protocolo por defecto Protocolo de transporte que usará el socket 26

Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) Por ejemplo: sock=socket(pf_inet,sock_stream,0) 27

Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) Familia TCP/IP Por ejemplo: sock=socket(pf_inet,sock_stream,0) 27

Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) Familia TCP/IP Modo conectado Por ejemplo: sock=socket(pf_inet,sock_stream,0) 27

Ambos crean un socket para comunicarse a través de la red descriptor = socket (protofamily, type, protocol) Familia TCP/IP Por ejemplo: Modo conectado Protocolo de transporte por defecto (TCP) sock=socket(pf_inet,sock_stream,0) 27

bind (descriptor, dir_local, largo_dir_local) 28

Descriptor del socket retornado por la función socket bind (descriptor, dir_local, largo_dir_local) 28

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

El El servidor asocia el el descriptor Estructura que del contiene socket la al al dirección puerto por el el que local: recibirá las peticiones y a la la 0 16 dirección 31 local Familia de Dirs. Dir_Octetos 0-1 Dir_Octetos 2-5 Dir_Octetos 6-9 Dir_Octetos 10-13 bind (descriptor, dir_local, largo_dir_local) 29

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

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

El El servidor queda en espera... listen(descriptor, largo_cola) 31

El El servidor queda en espera... Descriptor del socket listen(descriptor, largo_cola) 31

El El servidor queda en espera... Especifica el largo de la fila de peticiones de clientes esperando ser atendidas listen(descriptor, largo_cola) 31

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) 32

Y el cliente... una vez creado el socket... 33

Se conecta (sólo si si se trata de un servicio SOCK_STREAM) al al servidor a través de su socket. Para esto le le asocia el el puerto del servidor y su dirección.. connect (descriptor, dir_destino, largo_dir_destino) 34

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

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

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

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) 37

Se inicia la la transferencia de información read, readv, recv, recvfrom, recvmsg write, writev, send, sendto, sendmsg 38

Se inicia la la transferencia de información write, writev, send, sendto, sendmsg read, readv, recv, recvfrom, recvmsg 39

RESUMEN socket bind listen SERVIDOR socket connect CLIENTE write 40

RESUMEN socket bind listen read SERVIDOR socket connect write CLIENTE 40

RESUMEN socket bind listen read SERVIDOR socket connect write CLIENTE write read 40

RESUMEN socket bind listen SERVIDOR socket connect CLIENTE read write write read close close 40

./etc/services (primeras líneas) tcpmux 1/tcp echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail 41