Curso de Redes Computadores 1 Tema 4 Protocolos a Nivel de Capa de Aplicación Prof. Ricardo Gonzalez Redes de Computadores Tema 4 1 Objetivos de la clase Objetivo General ● Mostrar las características generales de protocolos de la capa de aplicación Objetivos específicos ● Dar nociones informales de aspectos que se deben considerar al diseñar un protocolo, en particular protocolos de capa de aplicación ● Describir algunos de los protocolos más usados de la capa de aplicación (HTTP y SMTP) Prof. Ricardo Gonzalez Redes de Computadores Tema 4 2 Agenda ● Conceptos básicos de protocolos ● Paradigmas y servicios asociados a los protocolos en capa de aplicación ● Ejemplo de un protocolos en la capa de aplicación ● HTTP (Web) ● eMail – SMTP POP IMAP RFC822 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 3 Conceptos básicos de protocolos Prof. Ricardo Gonzalez Redes de Computadores Tema 4 4 Protocolos ● Problema: Conseguir que todos los usuarios hablen el mismo lenguaje. ● Protocolo: ● Es el conjunto de normas y reglas, organizadas, sin ambigüedad y convenidas de mutuo acuerdo entre todos los participantes en una comunicación. ● Su misión es: ● hacer que la comunicación entre computadoras de una red sea posible. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 5 Elementos Claves de un Protocolo Para que dos entidades se comuniquen con éxito, se requiere que hablen el mismo idioma. Para ello las entidades deben seguir una serie de convenciones mutuamente aceptadas a fin de saber: ● Qué se comunica Semántica incluye aspectos de: ● Información de control para la coordinación ● Datos ● Manejo de errores ● Cómo se comunica Sintaxis incluye aspectos de: ● Formato de los datos ● Niveles de señal ● Cuándo se comunica Timing (Temporización) ● Sincronización de velocidades ● Secuenciación Prof. Ricardo Gonzalez Redes de Computadores Tema 4 6 Elementos de Estandarización Especificación del protocolo ● Dos entidades en la misma capa en sistemas diferentes cooperan e interactúan por medio del protocolo ● Las especificaciones del protocolo deben ser precisas ● Formato de la unidad de datos ● Semántica de todos los campos ● Secuencia permitida de PDUs Prof. Ricardo Gonzalez Redes de Computadores Tema 4 7 Elementos de Estandarización Definición del servicio ● Se necesita normalizaciones para los servicios que cada capa ofrece a la capa superior contigua ● Descripción funcional de qué servicios está proporcionando ● No especifica cómo se proporcionan los servicios Prof. Ricardo Gonzalez Redes de Computadores Tema 4 8 Elementos de Estandarización Direccionamiento: cada capa suministra a las entidades en la capa superior contigua. ● Las entidades se identifican mediante SAP ● Un NSAP(NetworkSAP) indica una entidad de transporte que es usuaria del servicio de red Prof. Ricardo Gonzalez Redes de Computadores Tema 4 9 Bases del Modelo de capas ● Cada capa del modelo tiene sus funciones ● Se definen protocolos para cada capa de manera que la capa C de una maquina pueda comunicarse con la capa C de otra maquina Prof. Ricardo Gonzalez Redes de Computadores Tema 4 10 Capas Aplicación HTTP, SMTP, FTP, DNS Transporte TCP, UDP, RTP, SCTP Internet Para redes TCP/IP es el IP Enlace Ethernet, Token Ring, PPP, HDLC, Frame Relay, RDSI, ATM, IEEE 802.11, FDDI Físico medio físico, y técnicas de codificación Prof. Ricardo Gonzalez Redes de Computadores Tema 4 11 Aspectos a considerar en un Protocolo a nivel de Aplicación ● Identificar los actores participantes en la comunicación. ● Quién tiene y quién requiere la información del sistema. ● Identificar cuál es el rol de cada uno de los actores participantes ( cliente, servidor, cliente/servidor, pares o peer-to-peer). ● Como se van a identificar o diferenciar, unos de otros, estos actores en el sistema (direccionamiento) Prof. Ricardo Gonzalez Redes de Computadores Tema 4 12 Aspectos a considerar en un Protocolo a nivel de Aplicación Cuales son las necesidades de información de la aplicación. ● Cómo es el esquema de comunicación que debe ocurrir entre los actores: ● Quien habla primero, quien escucha, quien habla luego, etc. ● Hay sólo una pregunta y una respuesta, la interacción incluye una secuencia de requerimientos y respuestas encadenados, se pide una confirmación de cada mensaje o una confirmación global. ● Cuál o cuáles son las secuencias correctas de comunicación ● Qué hacer cuando se rompe una secuencia correcta de comunicación. ● Qué debe ocurrir en el caso que se interrumpa una comunicación. ● Qué debe ocurrir en el caso que una comunicación no pueda establecerse. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 13 ¿Qué otros aspectos se deben considerar? ● La información que se requiera comunicar ● Tipo ● Tamaño ● Cardinalidad ● Así como las condiciones que deben cumplir ● Formato, rango de valores Prof. Ricardo Gonzalez Redes de Computadores Tema 4 14 Protocolo de aplicación Protocolos de Aplicación comunes son: ● HTTP: es el Protocolo de Transferencia de Hipertexto (en inglés HyperText Transfer Protocol). ● FTP: es el Protocolo de Transferencia de Archivos(en inglés File Transfer Protocol). ● SMTP: es el Protocolo de Transferencia de Correo(en inglés Simple Mail Transfer Protocol). ● NNTP: es el Protocolo de Transferencia de Red de Noticias(en inglés Network News Transfer Protocol). ● IRC: es el Chat Basado en Internet(en inglés Internet Relay Chat). Prof. Ricardo Gonzalez Redes de Computadores Tema 4 15 Protocolos de Aplicación ● Facilitan la comunicación entre una aplicación y un servidor. ● Contemplan las siguientes actividades: ● Abrir y cerrar conexiones. ● Hacer y satisfacer peticiones de servicio. ● Manejar e informar de errores. ● Tienden a ser orientados a bytes ● Tamaño de los campos puede ser fijo o variable. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 16 Paradigmas y servicios asociados a los protocolos en la capa de aplicación Prof. Ricardo Gonzalez Redes de Computadores Tema 4 17 Paradigma Cliente-Servidor Las aplicaciones de red típicas tienen dos partes: aplicación Cliente: transporte ● Inicia el contacto con el servidor (“habla primero”) ● Normalmente solicita servicios desde el servidor, ● Web: el cliente está implementado en el browser; e-mail: en el lector de correo red enlace física solicitud Servidor: ● Proporciona el servicio solicitado por el cliente ● ejemplo, el servidor Web envía la página web solicitada, el servidor de correo entrega el mensaje de correo Prof. Ricardo Gonzalez Redes de Computadores Tema 4 respuesta aplicación transporte red enlace física 18 Direccionamiento de procesos: ● Para que un proceso reciba mensajes, este debe tener un identificador ● Cualquier nodo en Internet tiene una dirección IP única (32 bits en IPv4, 128 bits en IPv6) ● Pregunta: ¿es suficiente con la dirección IP para identificar los procesos? ● Respuesta: No. Muchos procesos pueden ejecutarse en el mismo host Prof. Ricardo Gonzalez ● El identificador de un proceso en Internet incluye tanto la dirección IP como el número de puerto asociado con el proceso dentro del host. ● Ejemplos de números de puerto “bien conocidos”: ● Servidor HTTP: 80 ● Servidor de correo: 25 Redes de Computadores Tema 4 19 ¿Qué servicios de transporte requiere una aplicación? ● Pérdida de datos Ancho de Banda ● Algunas aplicaciones (por ejemplo, audio) pueden tolerar alguna pérdida otras aplicaciones (ftp, telnet) requieren una confiabilidad del 100% al transferir datos Control preciso de tiempo ● Algunas aplicaciones (telefonía Internet, juegos interactivos) requieren poco retardo para que sean “efectivas” Prof. Ricardo Gonzalez ● Algunas aplicaciones (multimedia) requieren un mínimo en la cantidad de ancho de banda para ser “efectivas” ● otras aplicaciones (“aplicaciones elásticas”) utilizan el ancho de banda que encuentren Redes de Computadores Tema 4 20 Requerimientos de servicios de transporte de aplicaciones comunes Pérdida Aplicación de Datos Ancho de Banda Transferencia de archivos Correo Documentos web audio/video en tiempo real elástico elástico elástico audio: 5kbps-1Mbps video:10kbps-5Mbps audio/video almacenado Tolerante El mismo anterior Juegos interactivos Tolerante Algunos kbps Mensajería instantánea No elástico Prof. Ricardo Gonzalez No No No Tolerante Redes de Computadores Tema 4 Sensitiva al tiempo no no no sí, 100’s ms sí, pocos s sí, 100’s ms sí y no 21 Servicios de los protocolos de transporte de Internet Servicio de TCP: Servicio de UDP: ● Orientado a conexión: se debe ● Transferencia de datos establecer una conexión entre no confiable entre el los procesos cliente y servidor proceso emisor y el ● Transporte confiable entre el receptor proceso emisor y el proceso ● NO ofrece: receptor establecimiento de ● Control de flujo: el emisor no conexión, debe “saturar” al receptor confiabilidad, control de flujo, control de ● Control de congestión: el emisor congestión, control de debe moderarse cuando la red tiempo, o garantía de esté “sobrecargada” ancho de banda ● No ofrece: ni control de mínimo tiempos, ni garantiza un mínimo ancho de banda Prof. Ricardo Gonzalez Redes de Computadores Tema 4 22 HTTP Prof. Ricardo Gonzalez Redes de Computadores Tema 4 23 Protocolo HTTP ● Es el protocolo de red que se utiliza para transferir los archivos (llamados recursos) que forman parte de la World Wide Web. Ya sean estos archivos HTML, imágenes, sonidos, etc... ● Propuesto por Tim Berners-Lee en 1989 ● HTTP es el protocolo utilizado para intercambio de información entre clientes Web (ej. Mozilla Firefox) y servidores HTTP (ej. Apache) ● Conexión TCP puerto 80 que escucha pasivamente. ● Actualmente versión HTTP/1.1 ● HTTP/1.0 ver RFC 1945 y HTTP/1.1 ver RFC 2616 ● Más información: http://www.w3.org/protocols Prof. Ricardo Gonzalez Redes de Computadores Tema 4 24 HTTP - HyperText Transfer Protocol ● Normalmente HTTP utiliza a TCP como medio de transporte. ● HTTP se utiliza para transferir Recursos, no solo archivos. ● Un recurso es un trozo de información que puede identificarse a través de un URL. ● La clase más común de recursos son los archivos, pero también pueden ser datos generados dinámicamente. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 25 Web y HTTP Algunos términos ● Una página Web consta de objetos ● Los objetos pueden ser un archivo HTML, una imagen JPEG, un applet Java, un archivo de audio,… ● Una página Web consta de un archivo HTML base que incluye diversos objetos referenciados ● Cada objeto se direcciona con un URL ● Ejemplo de un URL: http:// www.algunsitio.edu:80/algunaFacultad/pic.gif Protocolo Prof. Ricardo Gonzalez Nombre del host Nombre del path Redes de Computadores Tema 4 26 Panorámica de HTTP HTTP: Protocolo de Transferencia de HiperTexto ● Es el protocolo de la capa de aplicación para el Web ● Usa el modelo cliente/servidor ● Cliente: browser o navegador que solicita, recibe y muestra los objetos Web ● Servidor: Servidor www que envía objetos en respuesta a las solicitudes del browser ● HTTP 1.0: RFC 1945 ● HTTP 1.1: RFC 2068 Prof. Ricardo Gonzalez PC ejecutando IE Explorer Servidor ejecutando El servidor Web Apache Mac ejecutando Netscape Navigator Redes de Computadores Tema 4 27 Panorámica de HTTP (continuación) Utiliza TCP: • El cliente inicia la conexión TCP (crea el socket) al servidor, puerto 80 • El servidor acepta la conexión TCP solicitada por cliente • Los mensajes HTTP (mensajes del protocolo de la capa de aplicación) se intercambian entre el browser (cliente HTTP) y el servidor Web (servidor HTTP) • Se cierra la conexión TCP Prof. Ricardo Gonzalez HTTP es “stateless” • El servidor no mantiene información sobre las solicitudes anteriores del cliente NOTA ¡Los protocolos que mantienen información de estado son complejos! • La historia pasada (estado) debe guardarse • Si el servidor o el cliente fallan, sus “imágenes” del estado de la sesión pueden ser inconsistentes y deben “reconciliarse” Redes de Computadores Tema 4 28 Funcionamiento de HTTP Funcionamiento 1. El cliente realiza una petición o apertura activa (request) al servidor (puerto 80, por defecto) 2. Solicita la transacción (request) con HTTP: GET, POST, HEAD, PUT, … 3. El servidor envía la respuesta (response) en HTML 4. Se cierra la conexión (en HTTP/1.0) Prof. Ricardo Gonzalez Redes de Computadores Tema 4 29 Ejemplo de transacción HTTP • • • • • • • • El navegador solicita recurso Se determina el URL Se resuelve la IP (DNS) Se establece conexión TCP con puerto 80 de la IP destino Se transmite el método GET <URI> <protocolo> (/archivo.html HTTP/1.1) El servidor responde (según extensiones MIME y RFCs) Se cierra la conexión (HTTP 1.0) Se presenta el recurso en el “navegador” Prof. Ricardo Gonzalez Uniform Resource Identifier (URI) es una cadena de caracteres usada para identificar o nombrar un recurso en la Internet. Redes de Computadores Tema 4 30 Mensajes HTTP • Dos tipos de mensajes usando ASCII (texto plano): • Request (Solicitud) • Response (Respuesta) • Solicitudes HTTP/1.0 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 31 Mensajes HTTP Respuestas HTTP/1.0 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 32 Mensajes HTTP Ejemplo real de mensajes HTTP Prof. Ricardo Gonzalez Redes de Computadores Tema 4 33 Mensajes HTTP ● Códigos de estado: ● Identificador del estado de la petición. ● Los envía el servidor web como respuesta. ● Entero de 3 dígitos: 1xx: Informativos. 2xx: Operación realizada con éxito. 3xx: Redireccionan al cliente a otra URL. 4xx: Error del cliente. 5xx: Error del servidor. ● Los más usuales: ● 200 OK: solicitud exitosa, la respuesta va en el cuerpo. ● 404 Not Found: el recursos no existe. ● 303 See Other: el recurso se ha movido a otra URL (ver Header Location). ● 500 Server Error: error interno del servidor. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 34 Mensajes HTTP • Métodos: • Operaciones que se pueden solicitar a un servidor. • Existen 3 métodos distintos: • GET: Se utiliza para recoger cualquier tipo de información del servidor. Esta información va en el cuerpo de la respuesta. • HEAD: Solicita información sobre un objeto (fichero). Es igual que GET, pero la información va contenida en la cabecera de la respuesta. NUNCA TIENEN CUERPO. • POST: Se utiliza para enviar información al servidor, por ejemplo los datos contenidos en un formulario. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 35 HTTP / 1.1 • El protocolo HTTP/1.1 es ligeramente diferente a su precedente: • Conexiones persistentes vs no-persistentes. • Posibilidad de cerrar la conexión cuando se desee. • Nuevos métodos como PUT, DELETE, OPTIONS. • Nuevas cabeceras. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 36 Conexiones HTTP HTTP no persistente • Al menos un objeto es enviado sobre una conexión TCP. • HTTP/1.0 utiliza HTTP no persistente Prof. Ricardo Gonzalez HTTP persistente • Multiples objetos pueden ser enviados sobre una misma conexión TCP entre el cliente y el servidor. • HTTP/1.1, por omisión, utiliza conexiones persistentes Redes de Computadores Tema 4 37 HTTP No persistente Supongamos que el usuario ingresa el URL www.algunsitio.edu/algunaFacultad/index.html 1a. El cliente HTTP inicia la conexión TCPal servidor HTTP (el proceso) en www.algunsitio.edu en el puerto 80 2. El cliente HTTP envía un request message (que contiene el URL) hacia su socket de conexión TCP. El mensaje indica que el cliente desea el objeto algunaFacultad/index.html tiempo Prof. Ricardo Gonzalez (contiene texto, referencia a 10 imágenes jpeg) 1b. El servidor HTTP en el host www.algunsitio.edu espera conexiones TCP en el puerto 80. Cuando “acepta” una conexión, notifica al cliente 3. El servidor HTTP recibe el mensaje de solicitud, construye un response message que contiene el objeto solicitado, y envía el mensaje hacia su socket Redes de Computadores Tema 4 38 HTTP No persistente (cont.) 4. El servidor HTTP cierra la 5. El cliente HTTP recibe el mensaje conexión TCP. de repuesta que contiene el archivo html, muestra el html. Al recorrer el archivo html encuentra 10 objetos jpeg referenciados tiempo 6. Los pasos 1 a 5 se repiten para cada uno de los 10 objetos jpeg Prof. Ricardo Gonzalez Redes de Computadores Tema 4 39 Modelamiento del tiempo de respuesta Definición de RRT: tiempo para enviar un pequeño paquete y que este viaje desde el cliente hasta el servidor y que regrese. Inicia Conexión Tiempo de respuesta: TCP RTT • Un RTT para iniciar la conexión TCP solicita archivo • Un RTT para la solicitud HTTP RTT y para que los primeros bytes de la respuesta HTTP regresen archivo • Tiempo de transmisión del recibido archivo total = 2RTT+tiempo de transmisión Prof. Ricardo Gonzalez tiempo Redes de Computadores Tema 4 tiempo para transmitir archivo tiempo 40 HTTP Persistente Aspectos de HTTP No persistente: • • • requiere 2 RTTs por objeto El OS debe trabajar y asignar los recursos del host para cada conexión TCP En ocasiones un browser abre conexiones TCP paralelas para traer los objetos referenciados • HTTP persistente • El servidor deja la conexión abierta después de enviar el mensaje de respuesta Los mensajes HTTP que siguen entre el cliente/servidor son enviados sobre la misma conexión TCP • Prof. Ricardo Gonzalez Persistencia sin pipelining: • • El cliente emite una nueva solictud sólo cuando la respuesta anterior ha sido recibida Se requiere un RTT para cada objeto referenciado Persistencia con pipelining: • • • Por omisión en HTTP/1.1 El cliente envía una solicitud tan pronto como encuentra un objeto referenciado Se requiere apenas como un RTT para TODOS los objetos referenciados Redes de Computadores Tema 4 41 Mensaje de solicitud HTTP • HTTP tiene dos tipos de mensajes: request, response • Mensaje de solicitud: • ASCII (formato legible para nosotros) Línea de solicitud (comandos GET, POST, HEAD) GET /algundir/pagina.html HTTP/1.1 Host: www.algunsitio.edu Líneas de User-agent: Mozilla/4.0 encabezado Connection: close Accept-language:fr “Carriage return, line feed” Indica el final del mensaje Prof. Ricardo Gonzalez (“carriage return, line feed” adicional) Redes de Computadores Tema 4 42 Mensaje de solicitud HTTP: formato general Prof. Ricardo Gonzalez Redes de Computadores Tema 4 43 Enviando datos al servidor desde un formulario HTML Usando el método POST: • Las páginas web incluyen a menudo formularios para ingresar datos • Los datos ingresados en el formulario son “subidos” o enviados al servidor a través del cuerpo del mensaje (Entity Body) Usando el URL: • Utiliza el método GET • Los datos ingresados son enviados en el campo del URL de la línea de solicitud www.algunsitio.com/busqueda?nombre=arcesio&apellido=net Prof. Ricardo Gonzalez Redes de Computadores Tema 4 44 Tipos de métodos HTTP/1.0 • GET • POST • HEAD HTTP/1.1 • GET, POST, HEAD • PUT • Hace una consulta al servidor sobre las características del objeto, pero no transfiere el objeto Prof. Ricardo Gonzalez • Envía un archivo en el cuerpo del mensaje al path especificado en el URL • DELETE • Borra el archivo especificado en el URL Redes de Computadores Tema 4 45 Mensaje de respuesta de HTTP Línea de estado (código de estado del Protocolo, frase de estado) Líneas de encabezado datos, es decir, archivo HTML solicitado Prof. Ricardo Gonzalez HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html datos datos datos datos datos ... Redes de Computadores Tema 4 46 Códigos de estado de HTTP Se usan en la primera línea del mensaje de respuesta del servidor->cliente. Ejemplos: • 200 OK • Solicitud exitosa, el objeto solicitado va en este mensaje 301 Moved Permanently • El objeto solicitado fue movido, la nueva ubicación se especifica posteriormente en este mensaje (Location:) 400 Bad Request • El mensaje de solicitud no fue entendido por el servidor 404 Not Found • El documento solicitado no se encontró en este servidor 505 HTTP Version Not Supported Prof. Ricardo Gonzalez Redes de Computadores Tema 4 47 Conexión HTTP (cliente) hecha “a mano” 1. Conéctese, a través de telnet al puerto 80, a su sitio Web favorito: telnet www.arcesio.net 80 Abre una conexión TCP al puerto 80 (puerto “bien conocido” de HTTP) en www.arcesio.net. Cualquier cosa que se digite será enviada Al puerto 80 en www.arcesio.net 2. Digite una solicitud de HTTP con el método GET: GET /index.html HTTP/1.0 Al digitar esto (y oprimir <ENTER> dos veces), se enviará esta solicitud HTTP mínima (pero completa) al servidor HTTP 3. ¡Observe el mensaje de respuesta enviado por el servidor HTTP! Prof. Ricardo Gonzalez Redes de Computadores Tema 4 48 eMail Prof. Ricardo Gonzalez Redes de Computadores Tema 4 49 email • • • • • Arquitectura de un sistema de correo electrónico SMTP POP3 IMAP RFC 822 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 50 Arquitectura del sistema de correo • Funciones (o servicios) del sistema de correo: • edición de mensajes • Transferencia de mensajes • generación de informes • Subsistemas • de distribución Agentes de transferencia (demonios) (SMTP, ESMTP) • de entrega final (POP3, IMAP) Prof. Ricardo Gonzalez Redes de Computadores Tema 4 51 Agentes de transferencia Estos agentes se clasifican en: • de distribución: • SMTP (Simple Mail Transfer Protocol) RFC 821 • SMTP extendido (ESMTP) RFC 1425 • de entrega final: que permita al usuario gestionar su correo a través de una máquina remota • POP3 (Post Office Protocol) RFC 1225 • IMAP (Interactive Mail Access Protocol) RFC 1064 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 52 Protocolos de entrega final de usuario Internet PC emisor Agente de transferencia (SMTP) conexión permanente Agente de usuario PC receptor Problema: acceso no permanente a Internet • a través de un ISP • PC servidor Prof. Ricardo Gonzalez Redes de Computadores Tema 4 53 Protocolos de entrega final de usuario Solución: un buzón en el servidor conexión NO permanente conexión permanente Internet PC emisor Agente de transferencia (SMTP) POP3 Servidor Agente de usuario PC receptor (con buzón) Problema: obtener correo del buzón Solución: POP3 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 54 Agentes de transferencia de distribución (SMTP) El SMTP • protocolo sencillo cliente/servidor • formato ASCII • Establecer comunicación TCP al puerto 25 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 55 Correo electrónico Tres componentes principales: • • • Agentes de usuario Servidores de correo Protocolo simple de transferencia de correo: SMTP Agente de usuario • • • • Conocido como “lector de correo” Permite elaborar, editar y leer mensajes de correo. Ejemplos: Eudora, Outlook, elm, Netscape Messanger Recupera los mensajes colocados en el servidor Agente de usuario servidor de correo Agente de usuario SMTP SMTP Agente de usuario SMTP Agente de usuario servidor de correo Agente de usuario Agente de usuario Prof. Ricardo Gonzalez servidor de correo Redes de Computadores Tema 4 Cola de mensajes salientes Buzón del usuario 56 Correo electrónico: servidores de correo Servidores de correo • • • Buzón contiene los mensajes que han llegado para el usuario Cola de mensajes mensajes de correo salientes (para ser enviados) Protocolo SMTP usado entre los servidores de correo para enviar los mensajes • Un programa se comporta como cliente SMTP cuando envia correo a otro servidor de correo • Un programa se comporta como “servidor” cuando recibe correo de otro programa de correo. Prof. Ricardo Gonzalez Agente de usuario servidor de correo Agente de usuario SMTP SMTP servidor de correo Agente de usuario SMTP Agente de usuario servidor de correo Agente de usuario Agente de usuario Redes de Computadores Tema 4 Cola de mensajes salientes Buzón del usuario 57 Correo electrónico: SMTP [RFC 2821] • • • • Utiliza TCP para transferir confiablemente mensajes de correo desde el cliente al servidor, utiliza el puerto 25 Transferencia directa: entre el servidor que envía y el servidor que recibe La transferencia tiene tres fases • handshaking (saludo) • Transferencia de los mensajes • cierre Interacción comando/respuesta • Comandos: texto ASCII • Respuesta: códigos de estado y frase • Los mensajes deben estar en ASCII de 7 bits Prof. Ricardo Gonzalez Redes de Computadores Tema 4 58 Escenario: Alicia envía un mensaje a Beto 1) Alicia utiliza su agente de 4) El lado “cliente” de SMTP envía el mensaje de alicia sobre la conexión TCP 5) El servidor de correo de Beto coloca el mensaje en el buzón de Beto 6) Beto invoca su agente de usuario para leer los mensajes usuario para elaborar un mensaje para [email protected] 2) El agente de usuario de Alicia envía el mensaje a “su servidor de correo”; el mensaje es colocado en la cola de mensajes 3) El lado “Cliente” de SMTP abre una conexión TCP con el servidor de correo de Beto 1 Agente de usuario Prof. Ricardo Gonzalez 2 servidor de correo 3 servidor de correo 4 5 Redes de Computadores Tema 4 Agente de usuario 6 59 Agentes de transferencia de distribución (SMTP) : protocolo El servidor comienza por enviar una línea de texto que proporciona su identidad e indica si está preparado o no para recibir correo: a.- Si no lo está, el cliente libera la conexión y lo intenta después. b.- Si está dispuesto a aceptar correo electrónico, el cliente anuncia de quién viene el mensaje, y a quién está dirigido. Si existe tal destinatario en el destino, el servidor da al cliente permiso para enviar el mensaje. Entonces el cliente envía el mensaje y el servidor genera un acuse de recibo. Si existe más correo electrónico también se envía ahora. Una vez que todo el correo ha sido intercambiado en ambas direcciones, se libera la conexión. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 60 Comandos SMTP: cliente Comando HELO MAIL FROM: RCPT TO: DATA RSET NOOP QUIT VRFY EXPN HELP TURN SOML SAML SEND Descripción Identifica el remitente al destinatario. Identifica una transacción de correo e identifica al emisor. identificar un destinatario individual Se utiliza para . Si se necesita identificar múltiples destinatarios es necesario repetir el comando. Permite enviar una serie de líneas de texto. El tamaño máximo de una línea es de 1.000 caracteres. Cada línea va seguida de un retorno de carro y avance de La última línea debe llevar únicamente el carácter punto “.” línea <CR><LF>. seguido de <CR><LF>. Aborta la transacción de correo actual. Indica al extremo que envíe una respuesta positiva No operación. . Keepalives Pide al otro extremo que envíe una respuesta positiva y cierre la conexión. Pide al receptor que confirme que un nombre identifica a un destinatario válido confirmación de una lista de correo Pide al receptor la y que devuelva los nombres de los usuarios de dicha lista. Pide al otro extremo información sobre los comandos disponibles inviertan los papeles , para poder actuar como receptor. El emisor pide que se El receptor puede negarse a dicha petición. Si el destinatario está conectado, entrega el mensaje directamente al terminal, en caso contrario lo entrega como correo convencional. Entrega del mensaje en el buzón del destinatario. En caso de estar conectado también lo hace al terminal. Si el destinatario está conectado, entrega el mensaje directamente al terminal. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 61 Códigos de respuesta SMTP: servidor Código 211 214 220 221 250 251 354 421 450 451 452 500 501 502 503 504 550 551 552 553 554 Descripción Estado del sistema. Mensaje de ayuda. Servicio preparado. Servicio cerrando el canal de transmisión. Solicitud completada con éxito. Usuario no local, se enviará a <dirección de reenvío> Introduzca el texto, finalice con <CR><LF>.<CR><LF>. Servicio no disponible. Solicitud de correo no ejecutada, servicio no disponible (buzón ocupado). Acción no ejecutada, error local de procesamiento. Acción no ejecutada, insuficiente espacio de almacenamiento en el sistema. Error de sintaxis, comando no reconocido. Error de sintaxis. P.ej contestación de SMTP a ESMTP Comando no implementado. Secuencia de comandos errónea. Parámetro no implementado. Solicitud no ejecutada, buzón no disponible. Usuario no local, pruebe <dirección de reenvío>. Si no se tiene cuenta Acción de correo solicitada abortada. Solicitud no realizada (error de sintaxis). Fallo en la transacción. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 62 Ejemplo del uso de comandos SMTP Prof. Ricardo Gonzalez Redes de Computadores Tema 4 63 Ejemplo de la interacción SMTP S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: C 220 hamburger.edu C HELO crepes.fr C 250 Hello crepes.fr, pleased to meet you C MAIL FROM: <[email protected]> C 250 [email protected]... Sender ok C RCPT TO: <[email protected]> C 250 [email protected] ... Recipient ok C DATA C 354 Enter mail, end with "." on a line by itself C ¿Te gusta la salsa de tomate? ¿y los pepinillos? . C 250 Message accepted for delivery C QUIT C 221 hamburger.edu closing connection C Prof. Ricardo Gonzalez Redes de Computadores Tema 4 -> <-> <-> <-> <-> <- S S S S S S S S S S -> <-> <- S S S S 64 Interacción SMTP hecha “a mano” : • telnet nombre_servidor 25 • Se observa el código 220 como respuesta del servidor • Se digitan los comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT Lo anterior le permite enviar un mensaje de correo electrónico sin utilizar el cliente de correo Prof. Ricardo Gonzalez Redes de Computadores Tema 4 65 SMTP: palabras finales • • • SMTP utiliza conexiones persistentes (como el HTTP persistente) SMTP obliga a que el mensaje (encabezado & cuerpo) estén en ASCII de 7 bits El servidor SMTP utiliza CRLF.CRLF para “decir” donde está el final del mensaje Comparación con HTTP: • • HTTP: protocolo pull (halar) SMTP: protocolo push (empujar) • Los dos protocolos interactuan mediante comandos/respuestas en ASCII y códigos de status • HTTP: cada objeto se “encapsula” en su propio mensaje de respuesta SMTP: multiples objectos se envían en un mensaje “multiparte” • Prof. Ricardo Gonzalez Redes de Computadores Tema 4 66 Formato del mensaje de correo SMTP: protocolo para intercambio de mensajes de correo RFC 822: estándar para el formato de mensajes de texto: • Líneas de header, es decir, • • • • • To: From: Subject: header Línea en blanco body ¡Son diferentes a los comandos SMTP! Cuerpo (body) • Es el “mensaje”, sólo permite caracteres ASCII Prof. Ricardo Gonzalez Redes de Computadores Tema 4 67 Formato del mensaje: extensiones para multimedia • • MIME: Multimedia Internet Mail Extension, RFC 2045, 2056 Líneas adicionales en el header del mensaje declaran contenido tipo MIME Versión de MIME Método utilizado para codificar datos Tipo de dato multimedia, subtipo, parámetro de declaración From: [email protected] To: [email protected] Subject: Imagen de un crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data Datos codificados Prof. Ricardo Gonzalez Redes de Computadores Tema 4 68 Tipos MIME Content-Type: tipo/subtipo; parámetros Text • Ejemplo de subtipos: plain, html Image • Ejemplo de subtipos : jpeg, gif Audio • Ejemplo de subtipos: midi, mp3 Prof. Ricardo Gonzalez Video • Ejemplo de subtipos: mpeg, quicktime Application • • Datos que deben ser procesados por el cliente antes de “poderse ver” Ejemplo de subtipos: msword, octet-stream Redes de Computadores Tema 4 69 Tipo Multipart From: [email protected] To: [email protected] Subject: Imagen de un crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=StartOfNextPart --StartOfNextPart Hola Beto, por favor encuentra la imagen de una crepe. --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --StartOfNextPart ¿te gustaría tener la receta? Prof. Ricardo Gonzalez Redes de Computadores Tema 4 70 Protocolos de acceso al correo SMTP SMTP Agente de usuario • • Servidor de correo del remitente Protocolo de Acceso Agente de usuario Servidor de correo del destinatario SMTP: entrega al servidor de correo del receptor Protocolo de acceso al correo: recupera los mensajes desde el servidor • POP: Post Office Protocol [RFC 1939] • autorización (agente <-->servidor) y descarga los mensajes • IMAP: Internet Mail Access Protocol [RFC 1730] • Más características (más complejo) • manipulación de los mensajes almacenados en el servidor • HTTP: Hotmail , Yahoo! Mail, Gmail, etc. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 71 Protocolos de entrega final de usuario El correo entrante en un cliente se puede realizar básicamente a través de los siguientes protocolos: POP3 (Post Office Protocol) RFC 1225 RFC 1939 tiene comandos para que un usuario establezca una sesión (USER y PASS), la termine (QUIT), obtenga mensajes (RETR) y los borre (DELE). El protocolo mismo consiste en texto ASCII y se asemeja a SMTP. El objetivo del POP3 es obtener correo electrónico del buzón remoto y almacenarlo en la máquina local del usuario para su lectura posterior. Puerto 110. Existen versiones actualmente, que ya permiten no descargar el correo del buzón como IMAP. IMAP (Interactive Mail Access Protocol) RFC 1064 RFC 2060. La idea en que se basa IMAP es que el servidor de correo electrónico mantenga un depósito central al que puede accederse desde cualquier máquina. Por tanto, a diferencia del POP3, no copia el correo electrónico en la máquina personal del usuario dado que el usuario puede tener varias computadoras para consultar el correo, y observa si sus correos han sido leídos con anterioridad. Puerto 143. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 72 Protocolo POP3 Fase de autorización Comandos del cliente: • user: nombre de usuario • pass: la clave • Respuestas del servidor • +OK • -ERR Fase de transacción, cliente: • list: lista los números de los mensajes • retr: recupera el mensaje por el número • dele: borra el mensaje • quit: termina la sesión • Prof. Ricardo Gonzalez S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S: +OK POP3 server ready user beto +OK pass goloso +OK user successfully logged list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off Redes de Computadores Tema 4 73 on POP3 e IMAP Más sobre POP3 • El ejemplo anterior utiliza el modo “descargue y borre”. • Beto no puede volver a leer un mensaje si se cambia de cliente • “Descargue y guarde”: copias de los mensajes en diferentes clientes • POP3 no mantiene información de sesiones anteriores (stateless) Prof. Ricardo Gonzalez IMAP • Mantiene todos los mensajes en el mismo lugar: el servidor • Permite al usuario que organice sus mensajes en ´carpetas • IMAP mantiene información de estado de sesiones anteriores: • Nombres de carpetas y “correspondencia” entre la identificación de los mensajes y el nombre de las carpetas Redes de Computadores Tema 4 74 Formato de los mensajes RFC 822 Los mensajes con formato RFC 822 están formados por una envoltura primitiva (descrita en el RFC 821), algunos campos de cabecera, una línea en blanco, y el cuerpo del mensaje. Cada campo de cabecera consiste en una sola línea de texto ASCII que contiene el nombre del campo, dos puntos (:) y, para la mayoría de los campos un valor. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 75 Formato de los mensajes RFC 822 Campos principales del RFC822: Cabecera To: Cc: Descripción Direcciones de email de los destinatarios primarios. Direcciones de email de los destinatarios secundarios. En términos de entrega no existe diferencia con los destinatarios primarios. Bcc: Direcciones de email de las copias al carbón ciegas. Es como el campo anterior excepto que esta línea se borra de todas las copias enviadas a los destinatarios primarios y secundarios. From: Persona o personas que crearon el mensaje. Sender: Dirección de correo del remitente. Puede omitirse si es igual al campo anterior. Received: Línea agregada por cada agente de transferencia en la ruta. La línea contiene la identidad del agente, la fecha y hora de recepción del mensaje y otra información que puede servir para detectar fallos en el sistema de enrutamiento. Se añaden apiladas en la cabecera, a medida que se intercambia el email. Return-Path: Puede usarse para identificar una trayectoria de regreso al remitente. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 76 Formato de los mensajes RFC 822 Además, los mensajes RFC 822 pueden contener una variedad de campos auxiliares de cabecera usados por los agentes de usuario o los destinatarios. Cabecera Date: Reply-To: Descripción Fecha y hora de envío del mensaje. Se usa cuando la persona que escribió el mensaje y la que lo envió no desean ver la respuesta. Message-Id: Número único para referencia posterior a este mensaje. Suele estar compuesto por un número y la dirección de email completa del usuario que lo manda. In-Reply-To: Identificador del mensaje al que éste corresponde. References: Otros identificadores de mensaje. Keywords: Claves seleccionadas por el usuario. Subject: Resumen corto del mensaje para exhibir en una línea. El RFC 822 explícitamente indica que los usuarios pueden inventar cabeceras nuevas para uso privado siempre y cuando comiencen con la cadena X-. Prof. Ricardo Gonzalez Redes de Computadores Tema 4 77 Lo que yo he enviado From: Subject: To: CC: BCC: Date: X-cabeceras de uso privado: Prof. Ricardo Gonzalez Redes de Computadores Tema 4 78 Lo que yo he recibido No está el campo BCC (o CCO) Prof. Ricardo Gonzalez Redes de Computadores Tema 4 79 Noticia del 23 de febrero de 2007 Multa de 600 euros por dejar a la vista 42 direcciones de correo electrónico Cuidado al mandar mensajes masivos: utiliza el campo CCO “Da igual que sea un despiste, pero todo aquel que en una actividad que no sea doméstica o personal deje a la vista las direcciones de correo electrónico de sus destinatarios está cometiendo una infracción multada hasta con 60.101,21 euros por la Ley Orgánica de Protección de Datos (LOPD)” Prof. Ricardo Gonzalez Redes de Computadores Tema 4 80 Domain Name System • • Metodo de Computadores en Internet usado para mapear direcciones IP relacionadas con nombres de dominios. Computadores usan Direcciones IP para localizar un sitio, pero es muy difícil para un usuario recordar los números IP de todas las direcciones que usamos, es por eso que los DNS surgen como la opción de nombres de los dominios, pero estos nombres necesitan ser traducidos dentro de direcciones IP. Prof. Ricardo Gonzalez Redes de Computadores Tema2 81 Domain Name System • DNS (Domain Name Server) (RFC1034, RFC1035) • Establece una correspondencia entre nombres y direcciones IP. • Consiste en una base de datos distribuida por toda la Internet. • Se gestiona de forma descentralizada • El esquema de distribución es jerárquico • Es fácil de usar en las aplicaciones (gethostbyname()) • Se crea un espacio de nombres es global Prof. Ricardo Gonzalez Redes de Computadores Tema2 82 Modelo de Información de DNS • Jerárquico en árbol invertido • Base de datos de información de dominios (DIB) sanson.dit.upm.es Prof. Ricardo Gonzalez Redes de Computadores Tema2 83 Funcionamiento de un DNS Servidores DNS Raíz “.” Servidores DNS “es.” 5: No lo sé. Pregúntale a “uv.es.” 4:¿IP de www.uv.es? Servidores DNS “uv.es.” (147.156.1.1 alias gong) 3: No lo sé. Pregúntale a “es.” 2:¿IP de www.uv.es? ISP 7: www.uv.es es alias, 147.156.1.4 DNS de ISP 1:¿IP de www.uv.es? Prof. Ricardo Gonzalez 6:¿IP de www.uv.es? 8: www.uv.es es alias, 147.156.1.4 Redes de Computadores Tema2 84 Operación del DNS • • • • • • • • DNS es una implementación de una base de datos distribuida. Para cada dominio existe un servidor primario y varios secundarios. Esto permite control local sobre segmentos específicos de la base de datos. Para ccTLD (Country code top-level domain) es recomendable que por lo menos uno de los servidores secundarios esté fuera del país. Ver RFC-2182. La palabra clave es DELEGACIÓN. Todos los dominios son delegados por el servidor raiz. Cada dominio mantiene una base de datos que convierte nombres en direcciones de IP (archivos de zona). También mantiene una tabla de resolución inversa donde dada un dirección de IP se puede obtener un nombre (archivos de resolución inversa). Ambas tablas son manejadas por un servidor de nombres (BIND), el cual contesta a las solicitudes sobre el dominio de usuarios en toda la red. Prof. Ricardo Gonzalez Redes de Computadores Tema2 85 Dynamic Host Configuration Protocol (DHCP) 86 Asignación Dinámica de direcciones IP • La asignación dinámica de direcciones IP es deseable por varias razones: • Las direcciones IP son asignada según la demanda • Se evita la configuración manual de las direcciones IP • Soporta la movilidad de laptops 87 Soluciones para la asignación dinámica de direcciones IP • Reverse Address Resolution Protocol (RARP) • Trabaja de forma similar a ARP • Se envia un mensaje de Broadcast con un requerimiento o solicitud de la dirección IP asociada a una dirección MAC dada. • El servidor RARP responde con una dirección IP • Sólo se asigna una dirección IP (no el default gateway o la máscara de la subred) IP address (32 bit) ARP RARP 88 Ethernet MAC address (48 bit) BOOTP • BOOTstrap Protocol (BOOTP) • Proviene de 1985 • Los Host pueden configurar sus parámetros IP a momento de boot (inicialización del equipo). • Se brindan 3 servicios. • Asignación de direcciones IP. • Detección de direcciones IP para un equipo servidor. • Se especifica el nombre del archivo a ser cargado y ejecutado por la máquinas clientes (boot file name) • No se requiere solamente de la asignación de una dirección IP, también se requiere del default gateway, la máscara de la subred, etc. • Se envia un mensaje UDP (UDP Port 67 (server) and 68 (host)) 89 DHCP • Dynamic Host Configuration Protocol (DHCP) • • • • Desde 1993 Es una extensión de BOOTP. Utiliza los mismos números de puerto que BOOTP Extensiones: • Soportas alojamiento temporal (“leases”) de direcciones IP • Un cliente DHCP puede adquirir todos los parámetros de configuración IP que necesite para operar. • DHCP es el mecanismo preferido para la asignación de direcciones IP . • DHCP puede interoperar con clientes BOOTP. 90 Interacción de BOOTP Argon 00:a0:24:71:e4:44 (a) BOOTP Server BOOTP Request 00:a0:24:71:e4:44 Sent to 255.255.255.255 (c) 91 Argon 128.143.137.144 00:a0:24:71:e4:44 (b) DHCP Server BOOTP Response: IP address: 128.143.137.144 Server IP address: 128.143.137.100 Boot file name: filename • BOOTP puede ser usado para bajar una imágenes en memoria para máquinas sin disco (diskless workstations) • La Asignación de direcciones IP a hosts es estática Interacción de DHCP (simplificada) Argon 128.143.137.144 00:a0:24:71:e4:44 DHCP Server DHCP Response: IP address: 128.143.137.144 Default gateway: 128.143.137.1 Netmask: 255.255.0.0 92 Formato de los mensajes BOOTP/DHCP OpCode Hardware Type Number of Seconds Hardware Address Hop Count Length Unused (in BOOTP) Flags (in DHCP) Transaction ID Client IP address Your IP address Server IP address Gateway IP address Client hardware address (16 bytes) Server host name (64 bytes) Boot file name (128 bytes) Options 93 (There are >100 different options) BOOTP/DHCP • OpCode: 1 (Request), 2(Reply) • Nota: El tipo de los mensajes DHCP es enviado en una opción • • • • Hardware Type: 1 (para Ethernet) Hardware address length: 6 (para Ethernet) Hop count: Establecido en 0 por el cliente Transaction ID: Integer (usado para establecer una correspondencia • Client IP address, Your IP address, server IP address, Gateway IP address, client hardware address, server host name, boot file name: el cliente llena esta información con lo que tenga, el resto lo deja en entre el reply y el response) • Seconds: número de of segundos desde que el cliente inicio el último proceso de boot blanco. 94 DHCP Message Type • 95 El tipo de mensaje es enviado como una opcion. Value Message Type 1 DHCPDISCOVER 2 DHCPOFFER 3 DHCPREQUEST 4 DHCPDECLINE 5 DHCPACK 6 DHCPNAK 7 DHCPRELEASE 8 DHCPINFORM Otras opciones (selection) • Otra información de DHCP que es enviada como una opción: Subnet Mask, Name Server, Hostname, Domain Name, Forward On/Off, Default IP TTL, Broadcast Address, Static Route, Ethernet Encapsulation, X Window Manager, X Window Font, DHCP Msg Type, DHCP Renewal Time, DHCP Rebinding, Time SMTP-Server, SMTPServer, Client FQDN, Printer Name, … 96 Operación de DHCP DHCP Client 00:a0:24:71:e4:44 DHCP Server DHCPDISCOVER DCHP DISCOVER Sent to 255.255.255.255 DHCP Server DHCP Client 00:a0:24:71:e4:44 DCHP OFFER DHCPOFFER DHCP Server DHCPOFFER DHCP Server 97 Operación de DHCP DHCP Client 00:a0:24:71:e4:44 DHCP Server DHCPREQUEST DCHP DISCOVER DHCPACK En este momento el cliente DHCP puede empezar a emplear su dirección IP Renevando un lease (dirección temporal) (es enviado cuando el 50% del lease ha expirado) Si el DHCP server envia un DHCPNACK, entonces su dirección es liberada 98 DHCP Server DHCP Client 00:a0:24:71:e4:44 DHCP Server DHCPREQUEST DHCPACK DHCP Server Operación de DHCP DHCP Client 00:a0:24:71:e4:44 DHCP Server DHCPRELEASE DCHP RELEASE En este momento el cliente DHCP ha liberado la dirección IP que le habia sido asignada 99 DHCP Server Lecturas Adicionales • Tanenbaum. Redes de Computadores. Capítulo 7 Seciones 7.1, 7.2 y 7.3 Prof. Ricardo Gonzalez Redes de Computadores Tema 4 100 Otras fuentes de Información • DHCP www.cs.virginia.edu/~itlab/book/slides/module1 8-dhcp.ppt Prof. Ricardo Gonzalez Redes de Computadores Tema 4 101