Capa Aplicación: Programación de sockets

Documentos relacionados
Capa Aplicación: Programación de sockets

Capítulo 3: Capa Transporte - I

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

Capítulo 2: Capa Aplicación - I

Capítulo 2: Capa Aplicación - I

Capítulo 2: Capa Aplicación - I

Capítulo 2: la ruta. 2.1 principios de aplicaciones de redes 2.2 Web y HTTP 2.3 FTP 2.4 Correo electrónico

Capítulo 3: Capa Transporte - I

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

Arquitecturas cliente/servidor

Servicios de Internet

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

Sockets UDP. Arquitecturas Cliente/Servidor, Sem M.I.Yasmine Macedo Reza

Servicios de Internet

Capa Aplicación: P2P

Módulo 02 La Capa de Aplicaciones (Pt. 2)

Capítulo 2: Capa Aplicación - IV

Teoría de las Comunicaciones

Arquitecturas cliente/servidor

UDP Tema 3.- Nivel de transporte en Internet

REDES DE COMPUTADORAS 2. Clase 5

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

Capítulo 3: Capa Transporte - IV

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

Introducción a las redes de Computadoras Capítulo 2 Clase 2

Computadores y Comunicaciones. Práctica de Laboratorio: Diseño de una aplicación basada en el modelo cliente-servidor

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza 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

Capítulo 3: Capa Transporte - III

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

Comunicación entre procesos: sockets udp. Jorge Iván Meza Martínez

Visualizador del examen - ENetwork Chapter 4 - CCNA Exploration: Network Fundamentals (Versión 4.0)

Protocolos de transporte y aplicación

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

ARQUITECTURAS CLIENTE/SERVIDOR

Desarrollo de Aplicativos con winsockets

Arquitecturas cliente/servidor

Nivel de Transporte en Internet

Material Apoyo Práctica 2. Programación de la interfaz de acceso a los servicios de transporte de Internet en JAVA

TEMA 1. Introducción a las arquitecturas distribuidas

Problema de agotamiento de direcciones

Capítulo 4: Capa Red - II

Capítulo 4. Transporte UDP y TCP. Redes de Ordenadores 2º Grado en Ingeniería en Tecnologías de Telecomunicación

CAPA DE APLICACIÓN. 80 s : Aplicaciones basadas en texto o o acceso remoto o transferencia de ficheros o grupos de noticias o chat

Tema II. Sockets. Desarrollo de Aplicaciones para Internet Curso Miguel Reboiro Jato

PROGRAMACION DISTRIBUIDA

Capítulo 6: Capa Enlace de Datos y LANS

Propósito de la capa de transporte

Capítulo 1: Introducción - I

Comunicacion en Java. Alejandro Escobar

Protocolos de Internet

Ingeniería en Automática Industrial Software para Aplicaciones Industriales I

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

Nivel aplicación Interacción Cliente Servidor. Agustín J. González ELO309

Taller de Programación en Redes Stack TCP/IP - Sockets

Qué es Internet? Cómo funciona Internet?

Introducción a las Redes de Computadoras

Capítulo 5: Capa Enlace de Datos II

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

COMUNICACIÓN Sistemas Distribuidos

Capítulo 5: Capa Enlace de Datos - I

Funcionamiento de Servicios Web, FTP

Capítulo 1: Introducción

Repaso de conceptos Tema 1.- Introducción

Capítulo 1: Introducción

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

Primer Certamen (Tiempo: 90 min.) Si algo no está claro, haga una supuesto razonable, anótelo, y responda conforme a ello.

Curso de Java Java Redes

Introducción a Internet

APLICACIONES TELEMÁTICAS

SISTEMAS OPERATIVOS Y TCP/IP. - El Modelo de Referencia TCP/IP -

Introducción de Sockets en C.

Redes de Computadoras

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Programación de Sockets

Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet

Capa de Transporte del modelo TCP/IP

Programa Regular. Comprender y manejar conceptos avanzados en redes de datos.

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

PROTOCOLO FTP PROTOCOLO DE TRANSFERENCIA DE ARCHIVOS ING. RAUL BAREÑO GUTIERREZ RAUL BAREÑO GUTIERREZ 1

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

Práctica 5: Implementación en C++ de sistemas cliente/servidor basados en comunicación

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniería en Electricidad y Computación FUNDAMENTOS DE TELECOMUNICACIONES

Capítulo 4: Capa Red - I

C-H: Proceso de Diseño reconociendo el impacto de la solución de Ingeniería (T) E: Solución de Problemas (T) Resultados de Aprendizaje

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

Redes de Computadores

Introducción (I) La capa de transporte en Internet: TCP es: UDP es:

Versión 28/02/11 aplicación transporte red Redes Privadas enlace física

SOCKET S. Alberto Castro Rojas

Redes de Computadoras Práctica 5: La capa de transporte

Transcripción:

Capa Aplicación: Programación de sockets ELO322: Redes de Computadores Agustín J. González Este material está basado en: Material de apoyo al texto Computer Networking: A Top Down Approach Featuring the Internet. Jim Kurose, Keith Ross. 2: Capa Aplicación 1

Capítulo 2: Capa Aplicación 2.1 Principios de la aplicaciones de red 2.2 Web y HTTP 2.3 Correo Electrónico SMTP, POP3, IMAP 2.4 DNS 2.5 P2P para archivos compartidos 2.6 Video streaming y redes de distribución de contenidos (Redes II) 2.7 Programación de sockets con UDP y TCP 2: Capa Aplicación 2

Programación de Sockets (1) Objetivo: adquirir familiaridad sobre cómo construir aplicaciones cliente servidor que se comunican usando sockets sockets API para sockets Fue introducida en BSD4.1 UNIX, 1981 El socket es explícitamente creado, usado, y cerrado (o terminado) por las aplicaciones Sigue el modelo cliente/servidor Hay dos tipos de servicios de transporte vía el API de socket: Datagramas no confiables (UDP) Orientado a un flujo de bytes, éste es confiable (TCP) Son locales al host, creados por la aplicación, Es una interfaz controlada por el OS (una puerta ) a través de la cual el proceso aplicación puede enviar y recibir mensajes a/desde otro proceso remoto de la aplicación 2: Capa Aplicación 3

Programación de Sockets (2) objetivo: aprender cómo construir aplicaciones cliente/servidor que se comunican usando sockets. socket: puerta entre el proceso aplicación y el protocolo de transporte extremo a extremo (protocolo de capa de transporte) application process transport socket application process transport Controlado por el desarrollador de la aplicación. network link Internet network link Controlado por el Sistema Operativo physical physical 2: Capa Aplicación 4

Programación de Socket (3) Dos tipos de sockets para dos servicios de transporte: UDP: datagrama (grupo de bytes) no confiable TCP: Confiable, flujo de bytes Ejemplo de aplicación: 1. Cliente lee una línea de caracteres (datos) desde su teclado y envía el texto al servidor. 2. El servidor recibe el texto y lleva sus letras a mayúscula. 3. El servidor envía el texto modificado al cliente. 4. El cliente recibe el texto modificado y muestra la línea en pantalla. 2: Capa Aplicación 5

1 5 Cliente 2 Internet 4 Flujos de ida y vuelva UDP: sin conexión TCP: con conexión Servidor 3 2: Capa Aplicación 6

Programación de Socket con UDP User Datagram Protocol UDP: no hay conexión entre cliente y servidor No hay handshaking (establecimiento de conexión) Tx explícitamente adjunta dirección IP y puerto de destino en cada paquete. Para responder se debe extraer dirección IP y puerto del Tx desde el paquete recibido UDP: datos transmitidos pueden llegar fuera de orden o perderse. Congestión Punto de vista de la aplicación UDP provee transferencia no confiable de grupos de bytes ( datagramas ) entre cliente y servidor Distintos caminos al destino 2: Capa Aplicación 7

Interacción Client/server vía socket UDP server (running on serverip) create socket, port= x: serversocket = socket(af_inet,sock_dgram) read datagram from serversocket client create socket: clientsocket = socket(af_inet,sock_dgram) Create datagram with server IP and port=x; send datagram via clientsocket write reply to serversocket specifying client address, port number read datagram from clientsocket close clientsocket 2: Capa Aplicación 8

Ejemplo aplicación: Cliente UDP Incluir biblioteca socket de Python Crea socket UDP para cliente Obtiene entrada desde teclado Agregar nombre de servidor y puerto al mensaje; y lo envía usando socket Lee en string la respuesta desde socket Muestra string recibido y cierra el socket Python UDPClient from socket import * servername = hostname serverport = 12000 clientsocket = socket(af_inet, SOCK_DGRAM) message = raw_input( Input lowercase sentence: ) clientsocket.sendto(message,(servername, serverport)) modifiedmessage, serveraddress = clientsocket.recvfrom(2048) print modifiedmessage clientsocket.close() 2: Capa Aplicación 9

Ejemplo de aplicación: servidor UDP Python UDPServer Crea socket UDP Vincula socket al número de puerto local 12000 Lazo infinito Lee desde socket UDP el mensaje y dirección de cliente (IP y puerto) Envía al cliente mensaje en mayúscula. from socket import * serverport = 12000 serversocket = socket(af_inet, SOCK_DGRAM) serversocket.bind(('', serverport)) print The server is ready to receive while 1: message, clientaddress = serversocket.recvfrom(2048) modifiedmessage = message.upper() serversocket.sendto(modifiedmessage, clientaddress) 2: Capa Aplicación 10

Programación de Sockets con TCP El cliente debe contactar al servidor Proceso servidor debe estar corriendo primero Servidor debe tener creado el socket (puerta) que acoge al cliente El cliente contacta al servidor a través de: La creación de un socket TCP local para el cliente Especifica la dirección IP, número de puerto del proceso servidor Una vez que el cliente crea el socket: el socket establece una conexión TCP al servidor Cuando el servidor es contactado por el cliente, el servidor TCP crea otro socket para que el proceso servidor se comunique con ese cliente, este socket por cliente Permite que un servidor hable con múltiples clientes IP y Número de puerto fuente (del cliente) distingue a cada cliente (más adelante más sobre esto) Punto de vista de la aplicación TCP provee transferencias de bytes confiables y en orden. Es un pipeline (o tubería ) de datos entre el cliente y servidor 2: Capa Aplicación 11

Sockets creados en conexión cliente/servidor usando TCP 1 Paso: Mensajes para establecer la conexión. 2 Paso: Intercambio de datos. Socket de Bienvenida Al aceptar una conexión se crea un socket distinto para cada cliente 2: Capa Aplicación 12

Interacción Client/server entre sockets TCP server (running on hostid) create socket, port=x, for incoming request: serversocket = socket() client wait for incoming connection request connectionsocket = serversocket.accept() read request from connectionsocket write reply to connectionsocket close connectionsocket TCP connection setup create socket, connect to hostid, port=x clientsocket = socket() send request using clientsocket read reply from clientsocket close clientsocket 2: Capa Aplicación 13

Ejemplo aplicación: cliente TCP Python TCPClient Crea socket para cliente Conecta socket al nombre y puerto del servidor remoto 12000 No se requiere agregar nombre y puerto del servidor from socket import * servername = servername serverport = 12000 clientsocket = socket(af_inet, SOCK_STREAM) clientsocket.connect((servername,serverport)) sentence = raw_input( Input lowercase sentence: ) clientsocket.send(sentence) modifiedsentence = clientsocket.recv(1024) print From Server:, modifiedsentence clientsocket.close() 2: Capa Aplicación 14

Ejemplo aplicación: servidor TCP Python TCPServer Crea socket TCP de bienvenida TCP Servidor comienza a escuchar requerimientos de conexión Lazo infinito Servidor espera en accept() por requerimientos de conexión, un nuevo socket es retornado para atender a ese cliente Lee bytes desde el socket (no nos preocupamos por dirección como en UDP) Cierra conexión para este cliente (pero no socket de bienvenida) from socket import * serverport = 12000 serversocket = socket(af_inet,sock_stream) serversocket.bind((,serverport)) serversocket.listen(1) print The server is ready to receive while 1: connectionsocket, addr = serversocket.accept() sentence = connectionsocket.recv(1024) capitalizedsentence = sentence.upper() connectionsocket.send(capitalizedsentence) connectionsocket.close() 2: Capa Aplicación 15

Resumen de Capa aplicación Hemos cubierto varias aplicaciones de red Arquitectura de la aplicaciones cliente-servidor P2P híbridos Servicios requeridos por aplicaciones: confiabilidad, ancho de banda, retardo Modelo de servicio de transporte en Internet Confiable y orientada a la conexión: TCP No confiable, datagramas: UDP Protocolos específicos: HTTP SMTP, POP, IMAP DNS Aplicaciones P2P Programación de sockets 2: Capa Aplicación 16

Resumen de Capa aplicación Lo más importante aprendido sobre protocolos Intercambio de mensajes típicos requerimiento/respuesta: cliente requiere info o servicio servidor responde con datos, código de estatus Formato de mensajes: encabezado: campos dando info sobre datos datos: info siendo comunicada Mensajes de control vs. datos in-band, out-of-band Centralizado vs. descentralizado Sin estado vs. con estado Transferencia confiable vs. Transferencia no confiable la complejidad es puesta en los bordes de la red (las aplicaciones) Distinto a sistema telefónico clásico. 2: Capa Aplicación 17