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



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

Servicios de Internet

Migrando aplicaciones a IPv6

UDP Tema 3.- Nivel de transporte en Internet

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

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Servicios de Internet

Mecanismos IPC: sockets

TCP: Carácterísticas Establecimiento y finalización de conexiones

Nivel de transporte: UDP

Introducción de Sockets en C.

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

Programación con Sockets

ARQUITECTURAS CLIENTE/SERVIDOR

Arquitecturas cliente/servidor

Problemas de Redes de Computadores. Conjunto de problemas 1

Adaptación de aplicaciones a IPv6

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

Estructuras y funciones de programación de sockets.

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

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

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

Diseño de aplicaciones distribuidas ÍNDICE

SOCKETS BASADOS EN CONEXIÓN (SOCK_STREAM)

Control de flujo en TCP

Boletín 7- Sockets. Departamento de Lenguajes y Sistemas Informáticos

BOLETIN 8 INDICE. ordenación de bytes. conversión de nombre y direcciones.

Sockets Básicos. Sockets Básicos

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

Programación con sockets

El servidor Web Tema 2.- Nivel de aplicación en Internet

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

PRÁCTICA 4 PASO DE MENSAJES

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

Sockets Básicos. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. APIS para acceso a TCP/IP. Temas a tratar...

SOCKET S. Alberto Castro Rojas

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

Red LSUB. 4 de marzo de 2015 GSYC

SISTEMAS DE COMUNICACIONES DE DATOS

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

Análisis Experimental de la Transmisión de Datos

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

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

Tema 4.1: - TRANSPORTE-

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Práctica 1: sockets en Python

Comunicación entre procesos (BSD) CI-2400 Programación Avanzada en Sistemas de Tipo UNIX Prof. Braulio José Solano Rojas ECCI, UCR

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

Sistemas Operativos Distribuidos

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

Analista Universtiario en Sistemas. Sistemas Operativos. IPC - Sockets SOCKETS

Tema 3: COMUNICACIÓN ENTRE PROCESOS

Sistemas Distribuidos. Sockets

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

Arquitecturas Cliente/Servidor

GUÍAS FÁCILES DE LAS TIC

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

Interfaz de Socket. Agustín J. González ELO309 ELO309 1

INTERNET 4º ESO INFORMATICA / DEP. TECNOLOGIA

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

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

Comunicación entre Procesos y Sockets

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

Este proyecto ha sido cofinanciado por PROFIT.

Tema 4: Sockets: Un interfaz con TCP/IP

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

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

ARP. Conceptos básicos de IP

Introducción a redes Ing. Aníbal Coto Cortés

Transporte en Internet

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología

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

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


Lab 01: Programación de Sockets en TCP

01/10/ Conjunto de protocolos TCP/IP. Contenido. a. TCP/IP Internet OSI. a. TCP/IP Internet OSI. b. Nivel de red Protocolo IP

Capítulo 8 Seguridad en Redes Conexiones TCP Seguras: SSL

Introducción a las Redes de Computadoras

Introducción a las Redes de Computadoras. Capa de aplicación. Programación con Sockets. Capitulo 2 Capa de Aplicación

PROGRAMACIÓN CON SOCKETS

Federico Peinado

Introducción a las Redes de Computadoras

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

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

Nivel de Transporte en Internet

Desarrollo de Aplicativos con winsockets

Conceptos básicos de redes TCP/IP

Sockets. Introducción. Las redes de computadoras permiten al usuario. Curso Propedéutico Maestría en Ciencias de la Computación BUAP

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

Sistemas de Transportes de Datos (STD) Tema III: UDP y TCP (Entrega 4) Grupo de Aplicaciones Telemáticas. Grupo de Aplicaciones Telemáticas

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar

Arquitecturas cliente/servidor

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

Qué es Internet? Cómo funciona Internet?

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Examen de Introducción a las Redes de Computadoras y Comunicación de Datos (ref: sirc0707.doc) 31 de julio de 2007

Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

Transcripción:

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet Dr. Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Sockets y UDP UDP: no hay conexión entre cliente y servidor» no hay handshaking» El emisor debe indicar explícitamente la dirección IP y el puerto del destino para cada paquete» El servidor debe extraer la dirección IP y el puerto del emisor del paquete UDP: los datos pueden recibirse desordenados o incluso perderse Para la aplicacación UDP ofrece transferencia no fiable de grupos de bytes ( datagramas ) entre el cliente y el servidor 3 Nov Sockets UDP 1/12 1

Creación de un Socket int socket(int domain, int type, int protocol)» int domain Hay diferentes tipos de sockets para diferentes familias de protocolos» int type SOCK_STREAM, SOCK_DGRAM, (otros)» int protocol En caso de que haya varios protocolos en la misma categoría 3 Nov Sockets UDP 2/12 Enviar datagrama int sendto(int s, void* msg, int len, int flags, struct sockaddr *to, int tolen)» int s Socket» void* msg Puntero a la zona de memoria con los bytes a enviar» int len Número de bytes de esa zona de memoria a enviar» int flags Opciones» struct sockaddr *to Puntero a estructura con dirección IP y puerto del receptor» int tolen Tamaño de la estructura anterior 3 Nov Sockets UDP 3/12 2

Recibir datagrama» int recvfrom(int s, void* buf, int len, int flags, struct sockaddr *from, int *fromlen)» int s Socket» void *buf Zona de memoria donde guardar lo recibido (debe estar reservada!)» int len Espacio máximo a emplear en esa zona de memoria» int flags Opciones» struct sockaddr *from Puntero a zona de memoria que la función rellena con una estructura que incluye la dirección y puerto del emisor» int *fromlen Al llamar a la función debe ser el tamaño de la zona de memoria anterior. Al salir contiene el tamaño de la estructura 3 Nov Sockets UDP 4/12 Ejemplo en pseudo-código 1. Crear el socket TCP (Stream) 2. Asignarle el puerto en el que esperar 3. Solicitar al S.O. que escuche y acepte esas conexiones 4. Esperar una conexión... 1. Crear el socket TCP (Stream) 2. Solicitar al S.O. que lo conecte con un destino (IP+puerto) concreto 3. Conexión establecida 4. Escribir/Leer del socket... 5. Cerrar el socket/conexión Three-way handshake Datos Finalización 5. Nueva conexión. Un socket nuevo hace referencia a la conexión, el original sigue aceptando conexiones 6. Escribir/Leer del socket... 7. Cierre de la conexión 3 Nov Sockets UDP 5/12 3

Ejemplo en pseudo-código 1. Crear el socket UDP (Dgram) 2. Solicitar al S.O. que se envíen ciertos datos a un destino (IP+puerto) concreto Datos 1. Crear el socket UDP (Dgram) 2. Asignarle el puerto en el que esperar 3. Esperar un datagrama... 4. Datagrama recibido (o no) 3 Nov Sockets UDP 6/12 Ejemplo en C (1) struct sockaddr_in dirsock, emisor; int sockservidor, ret, frlen=sizeof(emisor); char *buf[2000]; sockservidor=socket(pf_inet,sock_dgram,0); if (sockservidor==-1) ERROR(); dirsock.sin_family=af_inet; dirsock.sin_addr.s_addr=inaddr_any; dirsock.sin_port=htons(53); ret= bind(sockservidor, (struct sockaddr*)&dirsock, sizeof(dirsock)); if (ret==-1) ERROR(); Crear el Asignar socket UDP... puerto... Cliente Servidor Recibe datagramas al puerto 53 3 Nov Sockets UDP 7/12 4

Crear el socket UDP... Enviar Datagrama... int sockcliente, ret; struct sockaddr_in dirsock; struct hostent *resolvhost; Ejemplo en C (y 2) sockcliente=socket(pf_inet,sock_dgram,0); if (sockcliente==-1) ERROR(); dirsock.sin_family=af_inet; resolvhost=gethostbyname( servidor.tlm.unavarra.es ); if (resolvhost==null) ERROR(); dirsock.sin_addr.s_addr=*(u_long*)resolvhost- >h_addr_list[0]; dirsock.sin_port=htons(53); ret=sendto(sockcliente, buf, max, 0, (struct sockaddr*)dirsock, sizeof(dirsock)); Cliente ret=recvfrom(sockservidor, buf, 2000, 0, (struct sockaddr*)&emisor, &frlen); if (ret==-1) ERROR(); Servidor Recibe datagramas al puerto 53 3 Nov Sockets UDP 8/12 Esperar a recibir Conectar Completamente prescindible! int connect(int s, struct sockaddr *name, int len)» La misma función que con sockets TCP pero: No conlleva una conexión ni el envío de ningún paquete Lo único que hace es que el socket memorice un destinatario (IP y puerto) De esa forma podemos emplear write() 3 Nov Sockets UDP 9/12 5

Resumen del tema» El mundo de las aplicaciones de Internet se divide en tres grupos: clientes y servidores :-)» El protocolo de nivel de aplicación determina los mensajes que intercambian» API de sockets para programarlas» Encarnaciones similares en distintos S.O. y lenguajes» En UNIX lo sockets son descriptores de fichero 3 Nov Sockets UDP 10/12 Temario 0.- Presentación de la asignatura 1.- Introducción y revisión de conceptos 2.- Nivel de aplicación en Internet Principios Funcionamiento de servicios Diseño y programación de servicios 3.- Nivel de transporte en Internet 4.- Nivel de red en Internet 5.- Nivel de enlace 3 Nov Sockets UDP 11/12 6

Próximo Tema» Nivel de en Internet Principios Protocolos UDP y TCP Próxima clase Principios Protocolo UDP» Lecturas recomendadas: [1] 3.1-3.3 3 Nov Sockets UDP 12/12 7