Servicios de Internet

Documentos relacionados
Servicios de Internet

Nivel de Aplicación: Principios Tema 2.- Nivel de aplicación en Internet

UDP Tema 3.- Nivel de transporte en Internet

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

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

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

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

Adaptación de aplicaciones a IPv6

Capa Aplicación: Programación de sockets

Capa Aplicación: Programación de sockets

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

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

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

Problemas de Redes de Computadores. Conjunto de problemas 1

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

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

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

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

TCP: Características Establecimiento y finalización de conexiones

Sistemas Distribuidos. Sockets

Sistemas Operativos Distribuidos

SOCKET S. Alberto Castro Rojas

Introducción de Sockets en C.

Tema 3: COMUNICACIÓN ENTRE PROCESOS

Arquitecturas cliente/servidor

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

Análisis Experimental de la Transmisión de Datos

Capítulo 2: Capa Aplicación - I

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

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

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

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

Arquitectura de Redes y Servicios de Telecomunicación (ARST)

Portando aplicaciones a IPv6

Migrando aplicaciones a IPv6

Diseño de aplicaciones distribuidas ÍNDICE

ARQUITECTURA DE REDES Laboratorio

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Bloque I: Introducción. Tema 2: Introducción a TCP/IP

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

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

TCP: Características Establecimiento y finalización de conexiones Tema 4.- Nivel de transporte en Internet

Capítulo 2: Capa Aplicación - I

Sockets Básicos. Sockets Básicos

Desarrollo de Aplicativos con winsockets

Tema 4: Sockets: Un interfaz con TCP/IP

Redes de Computadores

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Facultad de Ingeniería

Nombre y apellidos: DNI: 1

Mecanismos IPC: sockets

Ejercicio Sockets Suma Resta. Descripción

Bloque I: Introducción. Tema 2: Introducción a TCP/IP

COMUNICACIÓN Sistemas Distribuidos

Programación con Sockets

Protocolos, Servicios e Interfaces

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

Protocolos, Servicios e Interfaces

Curso de Java Java Redes

Arquitecturas cliente/servidor

Nombre y apellidos: DNI: 1

Programación con sockets

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

Teoría de las Comunicaciones

Capítulo 2: Capa Aplicación - I

ARQUITECTURAS CLIENTE/SERVIDOR

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

Nivel de Transporte en Internet

Redes de Computadores Nivel de Transporte: Introducción + UDP

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

PRÁCTICA 4 PASO DE MENSAJES

Problema de agotamiento de direcciones

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

Programación C/S Básica

PROTOCOLOS PARA LA INTERCONEXIÓN DE REDES

Introducción a Sockets en Linux

TCP. Temario. Temario

Tema 4 Sockets: Un interfaz con TCP/IP

1_servicio_eco_stream_secuencial/eco_clie_tcp.c Tue Mar 09 09:57:

Práctica 1: sockets en Python

PROYECTO DOCENTE ASIGNATURA: "Fundamentos de Internet"

PRÁCTICA 2: Cliente-servidor UDP

Redes de Computadores: Relación de problemas 1. Sockets

Capítulo 3: Capa Transporte - I

Arquitecturas Cliente/Servidor

FXT - Fundamentos de Redes Telemáticas

Características de un lenguaje ideal para robótica

Arquitecturas cliente/servidor

Estructuras y funciones de programación de sockets.

Sistemas operativos: una visión aplicada. Capítulo 10 Introducción a los sistemas distribuidos

PROGRAMACIÓN CON SOCKETS

Tema 5 El Modelo Cliente-Servidor

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

SOCKETS BASADOS EN CONEXIÓN (SOCK_STREAM)

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

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Bloque III: El nivel de transporte. Tema 6: Conexiones TCP

Transcripción:

Servicios de Internet Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios 3º Ingeniería de Telecomunicación 1

Temario 1. Introducción 2. Arquitecturas, protocolos y estándares 3. Conmutación de paquetes 4. Conmutación de circuitos 5. Tecnologías 6. Control de acceso al medio en redes de área local 7. Servicios de Internet

Temario 1. Introducción 2. Arquitecturas, protocolos y estándares 3. Conmutación de paquetes 4. Conmutación de circuitos 5. Tecnologías 6. Control de acceso al medio en redes de área local Servicios de Internet La Web DNS E-Mail. FTP. Telnet Otros Desarrollo de clientes y servidores

Material Del Capitulo 2 de Kurose & Ross, Computer Networking a top-down approach featuring the Internet Addison Wesley

Las aplicaciones Son software Diferentes máquinas y Sistemas Operativos Quienes se comunican son procesos AS 2 AS 1 AS 3 Aplicación Transporte Red Enlace Físico UDP TCP Intercambian mensajes IP ICMP Emplean Protocolos de nivel de aplicación ARP

Sockets Los procesos envían y reciben mensajes a través de un socket Delega en el nivel de transporte para que haga llegar los mensajes al otro socket Acceso a través de un API Puede escoger el protocolo de transporte Puede configurar algunos parámetros del mismo No controla cómo se comporta host host controlado por el proceso proceso desarrollador socket socket TCP Internet Controlado por el SO TCP

Programación con Sockets API de Sockets Introducida en el UNIX BSD4.2 en 1983 Centrada en el paradigma cliente/servidor Ofrece dos tipos de servicios de transporte: STREAM: flujo de datos fiable orientado a conexión DGRAM: datagramas Socket Creado por la aplicación Controlado por el S.O. A través suya la aplicación envía y recibe mensajes App 1 Transporte Socket Controlado por el programador de la aplicación Red Enlace Controlado por el Sistema Operativo Físico

Que podemos hacer con sockets? Un programa puede construir uno o mas sockets Puedo construir sockets de tipo STREAM (TCP) o DGRAM (UDP) En los sockets UDP puedo.. elegir en que puerto quiero estar (el socket) enviar mensajes individuales recibir los mensajes que me envian otros las dos cosas a la vez? En los sockets TCP puedo... elegir en que puerto quiero estar establecer conexiones con otros sockets esperar y aceptar conexiones de otros sockets enviar datos por las conexiones recibir datos por las conexiones Extras resolver nombres manejar direcciones... API socket() SOCK_STREAM SOCK_DGRAM bind() sendto() recvfrom() bind() connect() listen()accep t() read() recv() write() send() gethostbyname()...

Ejemplo con UDP Servidor UDP escuchando en un puerto e imprime lo que recibe void escucha_para_siempre_en_el_puerto(int puerto) { int s, err; struct sockaddr_in midireccion; s=socket(pf_inet,sock_dgram,0); midireccion.sin_family=af_inet; midireccion.sin_port=htons(puerto); midireccion.sin_addr.s_addr=inaddr_any; err=bind(s, (struct sockaddr *)&midireccion, sizeof(midireccion)); if (err!=0) { printf("no puedo coger el puerto\n"); exit(-1); } while (1) { struct sockaddr_in origendir; char buf[5000]; int origendirlen=sizeof(origendir); int recibidos; } } recibidos=recvfrom(s,buf,5000,0,(struct sockaddr *)&origendir, &origendirlen); printf("mensaje recibido de direccion %s puerto %u\n", inet_ntoa(origendir.sin_addr),ntohs(origendir.sin_port)); buf[recibidos]=0; printf("[%s]\n",buf);

Ejemplo con UDP El mismo ejemplo en otro lenguaje #!/usr/bin/env python from socket import * from sys import argv,exit def escucha_para_siempre_en_el_puerto(puerto): s=socket(af_inet,sock_dgram) try: s.bind(('',puerto)) except: print('no puedo coger el puerto') exit(-1) while (True): (recibido,origen)=s.recvfrom(5000) print('mensaje recibido de direccion %s puerto %u' % (origen)) print('[%s]' % recibido) escucha_para_siempre_en_el_puerto(int(argv[1]))

Ejemplo cliente UDP Usa un socket UDP para enviar un mensaje simple Envia este mensaje al servidor server.unavarra.es al puerto 6000 $ envia hola en UDP server.unavarra.es 6000 enviando a server.unavarra.es puerto 6000 int main(int argc, char *argv[]) { int puerto; char *mensaje=argv[1]; char *servidor=argv[2]; sscanf(argv[3],"%u",&puerto); // lee el puerto } printf("enviando a %s puerto %u\n",servidor,puerto); envia_mensaje_a_servidor_y_puerto(mensaje,servidor,puerto); envia_mensaje_a_servidor_y_puerto( hola en UDP, server.unavarra.es,6000);

Ejemplo cliente UDP Usa un socket UDP para enviar un mensaje simple $ envia hola en UDP server.unavarra.es 6000 enviando a server.unavarra.es puerto 6000 ip=130.206.169.123 void envia_mensaje_a_servidor_y_puerto(char *mensaje, char *nombre,int puerto) { int s; struct sockaddr_in direccion; struct hostent *dnsresult; } s=socket(pf_inet,sock_dgram,0); dnsresult=gethostbyname(nombre); printf("ip=%s\n",inet_ntoa(*(struct in_addr *)(dnsresult->h_addr))); direccion.sin_family=af_inet; direccion.sin_port=htons(puerto); direccion.sin_addr=*(struct in_addr *)(dnsresult->h_addr); sendto(s,mensaje,strlen(mensaje),0,(struct sockaddr *)&direccion, sizeof(direccion));

Ejemplo con TCP Construyendo un cliente de web $ getweb http://www.google.com servidor: www.google.com puerto: 80 path: / recibido 598 bytes #!/usr/bin/env python from socket import * from sys import argv,exit url=argv[1] url=url.split('//') url=url[1].split('/',1) servidor=url[0] if len(url)>1 : path=url[1] else: path='/' print('servidor: %s\npuerto: %u\npath: %s\n'%(servidor,80,path)) pagina=consigue_pagina_web(servidor,80,path) print('recibido %u bytes' % len(pagina))

Ejemplo con TCP Construyendo un cliente de web def consigue_pagina_web(servidor,puerto,path): s=socket(af_inet,sock_stream) ip=gethostbyname(servidor) dir=(ip,puerto) try: s.connect(dir) except: return None peticion='get '+path+' HTTP/1.0\n\n' s.send(peticion) pagina='' fin=false while not fin : trozo=s.recv(5000) if (not trozo==''): pagina+=trozo else: fin=true return pagina

Conclusiones El API de sockets nos da las herramientas para comunicar programas usando los servicios de los protocolos de transporte Construir servicios de Internet es organizar la comunicación entre las partes de una aplicación con estas herramientas And so it begins...