TELEPROCESO Y SISTEMAS DISTRIBUIDOS



Documentos relacionados
Introducción de Sockets en C.

Tema 4.1: - TRANSPORTE-

COMUNICACIÓN ENTRE PROCESOS SOCKETS

SOCKET S. Alberto Castro Rojas

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

Nivel de Transporte en Internet

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

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

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

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

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

Arquitecturas cliente/servidor

3.INSTALACIÓN Y CONFIGURACIÓN DE LOS EQUIPOS DE RED

ARQUITECTURAS CLIENTE/SERVIDOR

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

Comunicación entre Procesos y Sockets

Redes Locales: El protocolo TCP/IP

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

Tema 4. Gestión de entrada/salida

INTERNET 4º ESO INFORMATICA / DEP. TECNOLOGIA

Aspectos Básicos de Networking

(decimal) (hexadecimal) 80.0A.02.1E (binario)

Tutorial BMS Server Studio UDP

TELECOMUNICACIONES Y REDES

CONVERSIÓN DE UN NÚMERO EN BINARIO A DECIMAL Y VICEVERSA

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

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

Direcciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.

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

Direcciones IP y máscaras de red

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

TEMA: PROTOCOLOS TCP/IP

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

Arquitectura de Redes y Servicios de Telecomunicación

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

1. Configuración del entorno de usuario

Dispositivos de Red Hub Switch

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

TciSatSingleW32 Versión 3.1

ARP. Conceptos básicos de IP

3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE EL PLC 5. EJEMPLO DE RECEPCIÓN DE SMS EN EL PLC

REDES INFORMÁTICAS REDES LOCALES. Tecnología de la Información y la Comunicación

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

REDES INFORMATICAS: Protocolo IP

Título del contenido: Windows Server 2012 Detalles técnicos de redes. Módulo 1: Administración de la infraestructura de red

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

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que

Bloque IV: El nivel de red. Tema 10: Enrutamiento IP básico

Modelo de Objetos Distribuidos

TEMA 3. SERVICIO DHCP

Windows Server Windows Server 2003

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

Capas del Modelo ISO/OSI

La vida en un mundo centrado en la red

Introducción a las redes de computadores

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

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

MANUAL TÉCNICO CAMBIO DE DNS EQUIPOS USUARIOS

DIPLOMADO EN SEGURIDAD INFORMATICA

Especificaciones de la oferta Administración de dispositivos distribuidos Administración de activos

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

Problemas de Redes de Computadores. Conjunto de problemas 1

Red LSUB. 4 de marzo de 2015 GSYC

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

Programación con Sockets

Firewall Firestarter. Establece perímetros confiables.

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan

Conceptos básicos de redes TCP/IP

CAPITULO 2 COMUNICACION ATRAVES DE LA RED

Paradigma cliente-servidor

Activación de un Escritorio Remoto

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Conexión a red LAN con servidor DHCP

Componentes de Integración entre Plataformas Información Detallada

Entre los más conocidos editores con interfaz de desarrollo tenemos:


Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

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

TRANSFERENCIA DE FICHEROS FTP

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

TEMA 2: FUNCIONAMIENTO DE INTERNET.

Servidor DNS sencillo en Linux con dnsmasq

Manual de usuario de IBAI BackupRemoto

Roles y Características

Información sobre seguridad

Protocolo PPP PPP Protocolo de Internet de línea serie (SLIP)

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

Informàtica i Comunicacions Plaça Prnt. Tarradellas, FIGUERES (Girona) Tel Fax

Protocolo ARP. Address Resolution Protocol

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

WINDOWS : TERMINAL SERVER

LiLa Portal Guía para profesores

Paradigma cliente-servidor

Estructuras de Sistemas Operativos

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Tema: Configuración de red AD-HOC

Transcripción:

Universidad Nacional del Nordeste TELEPROCESO Y SISTEMAS DISTRIBUIDOS La Interfaz Socket Lic. Vanesa S. Roffé Año 2009

Introducción - Origen de la INTERFAZ SOCKET La Interfaz Socket es una API para redes TCP/IP que se compone de funciones o rutinas. Originalmente se construyó a principios de los 80 para el sistema operativo UNIX, aunque hoy en día también la utilizan otros sistemas operativos como Microsoft Windows, Mac, OS2, etc... La Interfaz Socket 2

Introducción - Origen de la INTERFAZ SOCKET Las llamadas al sistema de E/S en UNIX se basan en el proceso de open-read-write-close (abrir-leer-escribircerrar), y esto se utiliza tanto con archivos como con dispositivos hardware. En este tipo de comunicación se basó el diseño de la interfaz de sockets, con lo que para comunicarse con una red TCP/IP, se abre primero una conexión con la red, se leen y escriben datos a través de ella y una vez terminados los procesos se cierra la conexión. La Interfaz Socket 3

Introducción - SOCKETS Las aplicaciones desarrolladas en Sockets están basadas en la arquitectura Cliente-Servidor. La aplicación necesita conocer el papel que va a desempeñar (cliente o servidor), ya que la estructura del sw y primitivas difieren. La Interfaz Socket 4

Introducción - SOCKETS Permiten comunicaciones orientadas a conexión o sin conexión. Un socket está completamente definido cuando consta de dirección y puerto (ej. IP + puerto TCP). Para que se dé la comunicación en una red, el programa requiere un socket en cada extremo del proceso de comunicación. La Interfaz Socket 5

Creación de un Socket Para crear un socket, se utiliza la función socket y se deben especificar tres parámetros: socket = socket(protocol_familiy, socket_type, protocol) 1. Familia de Protocolos (Protocol Family): Identifica a una familia de protocolos relacionados, como TCP/IP. 2. Tipo de Socket (Socket_type): Si el programa utilizará el socket para transmitir flujo de bytes o datagramas. SOCK_DGRAM para datagramas y SOCK_STREAM para flujo de bytes. La Interfaz Socket 6

Creación de un Socket 3. Protocolo a utilizar: Permite especificar qué protocolo utilizará el socket. IPPROTO_TCP, IPPROTO_UDP. Ej: socket_handle = socket(pf_inet, SOCK_STREAM, IPPROTO_TCP); Cuando se llama a la función socket, la implementación del socket lo crea y devuelve un identificador de socket que identifica a un registro en la tabla de descripción. El registro muestra la estructura de datos del socket. La Interfaz Socket 7

Estructura de Datos del Socket Familia de Protocolos Tipo de Servicio Dirección IP Local Dirección IP Remota Puerto de Protocolo Local Puerto de Protocolo Remoto Cada vez que la aplicación llama a la función socket, la implementación de este reserva memoria para una nueva estructura de datos y almacena la dirección de la familia, el tipo de socket y el protocolo. La Interfaz Socket 8

Configuración del Socket Una vez creado el socket, utilizando la función socket, se pueden utilizar las funciones de configuración dependiendo del uso que se le vaya a dar al socket: Si se trata de un cliente orientado a conexión, se deberá llamar a la función connect que se encargará de almacenar toda la información local y remota en la estructura de datos del socket. Si se trata de un cliente sin conexión las funciones llamadas son: Máquina Local: bind - Máquina remota: send La Interfaz Socket 9

Configuración del Socket En el caso de un servidor orientado a conexión: Máquina Local: bind Máquina Remota: listen y accept En el caso de un servidor sin conexión: Máquina Local: bind Máquina Remota: recvfrom La Interfaz Socket 10

Primitivas Sockets Orientadas a Conexión (TCP) Socket: Crea un descriptor de socket. Close: Cierra socket Bind: Asocia una dirección local con un socket Listen: Crea cola de espera para almacenar solicitudes de conexión Accept: Espera una solicitud de conexión Connect: Inicia conexión con conector remoto Shutdown: Deshabilita al recepción y/o el envío de datos por el socket Send, Write: Envía mensaje Recv, Read: Recibe mensaje La Interfaz Socket 11

Primitivas Sockets Orientadas a Conexión (TCP) La Interfaz Socket 12

Descripción del Proceso El programa servidor solicita a la implementación del socket que le asigne una estructura de datos para el socket y que le devuelva un descriptor de sockets para utilizarlo en las siguientes llamadas a funciones de la interfaz de sockets. Después el servidor une el socket a un puerto de protocolo local. La función listen indica al socket que atienda las conexiones entrantes y que confirme las solicitudes de conexión y se encarga de poner al socket en modo de atención pasiva. La Interfaz Socket 13

Descripción del Proceso Result = listen(socket_handle, queue_length); Donde el segundo parámetro queue_length, nos permite especificar el número máximo de solicitudes que pueden acumularse en la cola. Después de configurar una cola de datos entrantes, el programa servidor llamará a la función accept, cesa su actividad y espera una solicitud de conexión de un programa cliente. Result = accept (socket_handle, socket_address, address_length); La Interfaz Socket 14

Descripción del Proceso El programa cliente también crea un socket, pero no necesita ocuparse de qué dirección local usará el protocolo ya que utiliza un protocolo orientado a conexión, por lo tanto no llama a la función bind. Lo que hace es iniciar la conversación en red llamando a la función connect. Después de que el cliente y el servidor establecen la conexión, pueden ocurrir comunicaciones adicionales a través de las funciones write y read. La Interfaz Socket 15

Primitivas Sockets No Orientadas a Conexión (UDP) Socket: Crea un descriptor de socket. Close: Cierra socket. Bind: Asocia una dirección local con un socket. Sendto: Envía mensaje. Recvfrom: Recibe mensaje. La Interfaz Socket 16

Primitivas Sockets No Orientadas a Conexión (UDP) La Interfaz Socket 17

Conexión de un Socket Un programa cliente orientado a conexión utiliza la función connect para configurar un socket, y requiere como parámetros, el identificador de socket, que es el valor del descriptor del socket que devolvió la función socket, la dirección del socket remoto, es decir la dirección IP del host remoto y el puerto de protocolo y la longitud de la dirección, el tamaño en bytes de la dirección del socket remoto. result = connect (socket_handle, remote_socket_address, address_length); La Interfaz Socket 18

Conexión de un Socket En el caso de clientes no orientados a conexión o servidores en general tienen que atender a un puerto de protocolo las solicitudes que les pueden llegar. La función de asignación de nombres, bind, en la API de sockets permite a un programa asociar una dirección local con un socket: Result = bind (socket_handle, local_socket_address, address_lenght); De esta manera se le comunica a la implementación del socket, qué puerto de protocolo utilizar para la entrega de datos. La Interfaz Socket 19

Transmisión de Datos Se proporcionan cinco funciones para transmitir datos a través de un socket y se dividen en dos grupos. Existen dos funciones que requieren una dirección de destino como parámetro, las restantes que son las utilizadas en los procesos orientados a conexión, no lo precisan. La Interfaz Socket 20

Transmisión de Datos Orientadas a Conexión FUNCION send write writev sendto sendmsg DESCRIPCIÓN Transmite datos a través de un socket de conexión. Transmite datos a través de un socket de conexión utilizando un buffer de datos simple. Transmite datos a través de un socket de conexión utilizando bloques de memoria no contiguos. Transmite datos a través de un socket sin conexión utilizando un buffer de mensajes simple. Transmite datos a través de un socket sin conexión, utilizando una estructura de mensajes flexible como buffer de mensajes. La Interfaz Socket 21

Transmisión de Datos Orientadas a Conexión Las funciones del API de sockets que hacen transmisiones de datos orientadas a conexión no requieren que el programa especifique una dirección destino como parámetro. Las funciones send, write y writev sólo trabajan con sockets conectados, y tiene la siguiente estructura: Result= write (socket_handle, message_buffer, buffer_length); El primer parámetro es el identificador de socket, el segundo es el búfer de mensajes, que apunta al búfer de datos que contiene la información a transmitir. El tercer parámetro es el tamaño del búfer de datos. La Interfaz Socket 22

Transmisión de Datos Orientadas a Conexión Por otro lado la función writev no requiere que los datos ocupen bloques de memoria contiguos como si lo hace la función write. Así writev permite que se especifique una tabla de direcciones que contenga los datos. Result= writev (socket_handle, io_vector, vector_length); También requiere como primer parámetro, un identificador de socket, el segundo parámetro especifica la dirección de una tabla que contiene una secuencia de apuntadores. Cuando la función writev transmita los datos, enviará la información contenida en cada localidad de memoria especificada por el array de apuntadores, transmitiéndolos en el mismo orden en que aparecen en el array. La Interfaz Socket 23

Transmisión de Datos Orientadas a Conexión La función send es otra función del interfaz de sockets para utilizar con sockets orientados a conexión: Result= send (socket_handle, message_buffer, buffer_length, special_flags); Con send se pueden especificar banderas opcionales para controlar la transmisión, como la gestión de datos urgentes (fuera de banda). Las tres funciones write, writev y send, devuelven un valor entero, que es el número de bytes transmitidos por el socket. En caso de que exista un error devuelven: -1. La Interfaz Socket 24

Transmisión de Datos No orientadas a Conexión Para enviar datos a través de un socket sin conexión se dispone de las funciones, sendto y sendmsg: Result=sendto(socket_handle, message_buffer, buffer_length, special_flags, socket_address_structure, address_structure_length); Requiere 6 parámetros, entre los nuevos que aparecen ahora, la dirección de destino (socket_address_structure) y la longitud de la misma en bytes (address_structure_length). La Interfaz Socket 25

Transmisión de Datos No orientadas a Conexión La función sendmsg nos permite utilizar para la transmisión una estructura de mensaje, en lugar de un simple buffer de datos. Requiere como parámetros un identificador de socket, un puntero a la estructura del mensaje (message_structure) y banderas especiales (special_flags). Result= sendmsg(socket_handle, message_structure, special_flags); La Interfaz Socket 26

Recepción de Datos a través de un Socket La Interfaz de Sockets, incluye cinco funciones para la recepción de datos, que se corresponden con las anteriores vistas en la transmisión de datos: Funciones de Transmisión send write writev sendto sendmsg Funciones de Recepción recv read readv recvfrom recvmsg A parte de estas correspondencias, hay que tener en cuenta que no es indispensable utilizarlas unas con otras, ya que una vez se han enviado datos, para recibirlos se puede realizar con cualquiera de las funciones correspondientes al tipo de servicio, orientado o no a conexión. La Interfaz Socket 27

La API Windows Sockets El software llamado Windows Sockets o Winsock es una API (Application Program Interface), Interfaz de Programas de Aplicación para redes TCP/IP, y especifica la familia de sistemas operativos de Microsoft Windows en todas sus versiones. Windows Sockets implementa la interfaz de sockets como una biblioteca de enlace dinámico, una DLL (Dynamic Lynk Library), que no es más que un módulo ejecutable que el sistema puede cargar en cualquier momento. La Interfaz Socket 28

La API Windows Sockets La API Winsock proporciona una biblioteca de funciones que se divide en tres grupos : 1. Funciones de los Berkeley Sockets. 2. Funciones de Bases de Datos que permiten obtener información relacionada con el DNS, servicios de comunicaciones y protocolos. 3. Las extensiones específicas de Windows a las rutinas de los Sockets de Berkeley. Distinguimos entre las funciones de bloqueo, que son aquellas que evitan que se llame a cualquier otra función hasta que esta termine sus propias operaciones de red. Y las de no bloqueo que terminan de inmediato o emiten un mensaje de error. La Interfaz Socket 29

Programación con Sockets en Internet La programación de sockets en Internet hace uso de las direcciones IP y los puertos, tanto TCP como UDP para identificar a los sockets. Una comunicación queda completamente definida por un par de sockets, que en el caso de TCP identificarán una conexión. TCP permite varias conexiones simultáneas en un mismo número de puerto local siempre y cuando se cumplan estas condiciones: Que la dirección IP local sea distinta. O que los números de puerto remotos sean distintos para cada conexión. La Interfaz Socket 30

Conclusión Como hemos dicho al principio, originalmente la Interfaz Socket se construyó para UNIX aunque hoy en día la utilizan otros Sistemas Operativos como Microsoft Windows. Es necesario destacar que en UNIX la interfaz Socket se implementa en el núcleo y Windows solo la implementa como una biblioteca de enlace dinámico (DLL). La programación de aplicaciones en redes utilizando la Interfaz de Sockets, constituye una herramienta simple de utilizar y de mucha potencialidad. Con esta interfaz se pueden construir aplicaciones distribuidas en redes del tipo cliente servidor, especialmente diseñadas para trabajar en Internet. La Interfaz Socket 31

Bibliografía Interfaz Socket - Dpto. de Ingeniería Electrónica, de Telecomunicación y Automática - Área de Ingeniería Telemática - Universidad de Jaén - España. La Interfaz Socket 32

Muchas gracias por su atención! La Interfaz Socket 33