Capa Aplicación: Programación de sockets

Slides:



Advertisements
Presentaciones similares
CAPA DE TRANSPORTE MODELO OSI
Advertisements

TEMA1. Servicios de Red e Internet
Programación Interactiva Aplicaciones Cliente-Servidor
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
Ingeniería en Automática Industrial Software para Aplicaciones Industriales I Ingeniería en Automática Industrial Software para Aplicaciones Industriales.
MODELO TCP/IP Conectividad de extremo a extremo especificando como los datos deberian ser formateados,direccionados,transmitidos,enrutados y recibidos.
MODELO TCP/IP.
Capa Transporte3-1 Capítulo 3: Continuación r 3.1 Servicios de la capa transporte r 3.2 Multiplexing y demultiplexing r 3.3 Transporte sin conexión: UDP.
SOCKETS.
1 Nivel aplicación Interacción Cliente Servidor Agustín J. González ELO309.
AXEL LATORRE GABRIEL VALENZUELA GIAN PAOLO ALMEIDA ROMMEL CHIFLA ISABEL VILLEGAS INTEGRANTES.
TCP/IP Introducción TCP/IP Introducción. TCP/IP vs OSI Aplicación Presentación Sesión Transporte Red Enlace Física Aplicación Acceso a la red Física TCP/IP.
RESUMEN CAPITULO 6.
Capítulo 2: Capa Aplicación
Introducción1-1 Capítulo 1: Introducción ELO322: Redes de Computadores Agustín J. González Este material está basado en el material preparado como apoyo.
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 FTP  2.4 Correo Electrónico  SMTP,
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
2: Capa Aplicación 1 Capa Aplicación: FTP ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
ELO3091 Interfaz de Socket Agustín J. González ELO309.
Introducción 1-1 Capítulo 1: Introducción ELO322: Redes de Computadores Agustín J. González Este material está basado en: El material preparado como apoyo.
REDES 315. capa de transporte (L4) host  En el ámbito de Internet, un puerto es el valor que se usa, en el modelo de la capa de transporte (L4), para.
Capa Transporte 3-1 Capítulo 3: Capa Transporte - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa Transporte3-1 Capítulo 3: Capa transporte ELO322: Redes de Computadores Agustín J. González Este material está basado en el material preparado como.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capa Transporte1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
2: Capa Aplicación 1 Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
2: Capa Aplicación 1 Capa Aplicación: Programación de sockets ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Capa de Red4-1 Capítulo 4: Capa Red - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto Computer.
Andres Marín L. Programación sockets en java.
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
2: Capa Aplicación 1 Capa Aplicación: File Transfer Protocol ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
2: Capa Aplicación Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto Computer.
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Ing. Elizabeth Guerrero V.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capítulo 3: Capa Transporte - I
PROTOCOLO TCP Y UDP.
Protocolos de comunicación TCP/IP
Ing. Elizabeth Guerrero V.
Nivel de Transporte en Internet
PROTOCOLOS Modelo TCP/IP
Gabriel Montañés León. TCP es un protocolo orientado a conexión es decir, que permite que dos máquinas que están comunicadas controlen el estado de la.
Modelo OSI Para redes………
2: Capa Aplicación 1 Capa Aplicación: Programación de sockets ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Protocolos de Transporte y Aplicación
Capa Transporte 1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
Protocolos de Transporte y Aplicación Javier Rodríguez Granados.
Capítulo 2: Capa Aplicación - I
Capa Aplicación: Programación de sockets
Capítulo 3: Capa Transporte - I
Capítulo 3: Capa Transporte - I
Capa Aplicación: Programación de sockets
Capa Aplicación: Programación de sockets
Capa Aplicación: File Transfer Protocol
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capa Aplicación: File Transfer Protocol
Capa Aplicación: Programación de sockets
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
Capítulo 2: Capa Aplicación - I
Capítulo 3: Capa Transporte - I
Capa Aplicación: Programación de sockets
Capa Aplicación: Programación de sockets
Capítulo 3: Capa Transporte - I
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
Capa Aplicación: 2.7 Programación de sockets
Transcripción de la presentació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.

Capítulo 2: Capa Aplicación 2.1 Principios de la aplicaciones de red 2.2 Web y HTTP 2.3 FTP 2.4 Correo Electrónico SMTP, POP3, IMAP 2.5 DNS 2.6 P2P Compartición de archivos 2.7 Programación de sockets con UDP y TCP

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 tanto enviar como recibir mensajes a/desde otro proceso remoto de la aplicación

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 application socket Controlado por el desarrollador de la aplicación. process process transport transport network network Controlado por el Sistema Operativo link Internet link physical physical

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: Cliente lee una línea de caracteres (datos) desde su teclado y envíia el dato al servidor. El servidor recibe el dato y lleva los caracteres a mayúscula. El servidor envía el dato modificado al cliente. El cliente recibe el dato modificado y muestra la línea en pantalla.

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

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. 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 Congestión

server (running on serverIP) Interacción Client/server vía socket UDP server (running on serverIP) create socket: clientSocket = socket(AF_INET,SOCK_DGRAM) Create datagram with server IP and port=x; send datagram via clientSocket client create socket, port= x: serverSocket = socket(AF_INET,SOCK_DGRAM) read datagram from serverSocket close clientSocket read datagram from write reply to serverSocket specifying client address, port number

Ejemplo aplicación: Cliente UDP Python UDPClient Incluir biblioteca socket de Python from socket import * serverName = ‘hostname’ serverPort = 12000 clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) message = raw_input(’Input lowercase sentence:’) clientSocket.sendto(message,(serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print modifiedMessage clientSocket.close() 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

Ejemplo de aplicación: servidor UDP Python UDPServer 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) 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.

Programación de Sockets con TCP 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)‏ 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 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

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

server (running on hostid) Interacción Client/server entre sockets TCP server (running on hostid) client create socket, port=x, for incoming request: serverSocket = socket() close connectionSocket read reply from clientSocket wait for incoming connection request connectionSocket = serverSocket.accept() create socket, connect to hostid, port=x clientSocket = socket() TCP connection setup send request using clientSocket read request from connectionSocket write reply to

Ejemplo aplicación: cliente TCP Python TCPClient 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() Crea socket para cliente Conecta socket al nombre y puerto del servidor remoto 12000 No se requiere agregar nombre y puerto del servidor

Ejemplo aplicación: servidor TCP Python TCPServer 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() 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)

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. 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 Congestión

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 FTP SMTP, POP, IMAP DNS Programación de sockets Un servidor web simple (ver texto)

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.