Unidad 7
APLICACIONES DE
INTERNET
Correo electrónico
Arquitectura (RFC 5598)
Consiste básicamente de dos niveles
MUA (Message User Agent)
• El ámbito del usuario
MHS (Message Handling Service)
• El ámbito de transferencia compuesto por
los MTA (Message Transfer Agents)
Correo electrónico
Arquitectura (RFC 5598)
Correo electrónico
Arquitectura (RFC 5598)
Se requiere definir dos conceptos adicionales
ADMD (Administrative Management Domain)
• Un proveedor del servicio de correo electrónico
DNS (Domain Name System)
• Una tabla que relaciona la dirección IP con el
nombre del servidor
Correo electrónico
Arquitectura (RFC 5598)
Estándares
Post Office • Permite que un cliente de mail baje un correo desde el servidor
Protocol (POP3) • Se conecta via TCP/IP con el servidor
Internet Mail • Provee una autenticación más robusta y otras funciones no
Access Protocol soportadas por POP3
(IMAP)
Simple Mail • Protocolo utilizado para transferir un correo desde un agente
Transfer Protocol usuario a un MTA y desde una MTA a otro
(SMTP)
Multipurpose • Suplementa SMTP y permite el encapsulamiento de mensajes
Internet Mail multimedia dentro de un mensaje SMTP estándar
Extensions (MIME)
Correo electrónico
SMTP (Simple Mail Transfer Protocol – RFC 821)
Es el protocolo estándar para la transferencia de
correo entre servidores, incluido en el conjunto de
protocolos TCP/IP
En términos generales puede decirse que SMTP no se
ocupa del formato ni del contenido de los mensajes
SMTP utiliza la información incluida en el «sobre» del
mensaje (cabecera o header), pero no mira el
contenido (cuerpo o body) del mismo
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Operación básica
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
La operación del SMTP consiste en una serie de
comandos y respuestas intercambiados entre el
emisor y el receptor.
El emisor SMTP establece la conexión TCP
Una vez establecida la conexión, el emisor SMTP envía
comandos al receptor sobre la conexión
Cada comando genera exactamente una respuesta
desde el receptor SMTP
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Comandos básicos
Nombre Comando Descripción
HELO HELO <SP> <dominio> <CRLF> Envía identificación
MAIL MAIL <SP> FROM:<camino inverso> <CRLF> Identifica al que origina el correo
RCPT RCPT <SP> TO:<camino al destino> <CRLF> Identifica al destinatario del correo
DATA DATA <CRLF> Transfiere el texto del mensaje
RSET RSET <CRLF> Aborta la transacción del correo en curso
NOOP NOOP <CRLF> Operación nula
QUIT QUIT <CRLF> Cierra la conexión TCP
CRLF = retorno de carro, salto de línea
SP = espacio
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Respuestas de terminación positiva
La acción requerida ha sido completada satisfactoriamente.
Se puede iniciar un nuevo requerimiento
Código Descripción
211 Estado del sistema o respuesta de ayuda del sistema
214 Mensaje de ayuda (útil para el usuario final)
220 <dominio> Servicio preparado
221 <dominio> Servicio cerrando el canal de transmisión
250 Acción de correo solicitada correcta, completada
251 Usuario no local. Se reenviará a <camino al destino>
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Respuestas intermedia positiva
El comando ha sido aceptado, pero el requerimiento se ha
mantenido en suspenso en espera de más información
El emisor SMTP debe enviar otro comando especificando
dicha información
Se aplica en grupos de comandos secuenciados
Código Descripción
354 Comenzar el texto del correo. Finalizar con <CRLF>.<CRLF>
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Respuestas transitorias de terminación negativa
El comando no fue aceptado y la acción requerida no se
completó.
Sin embargo, la condición de error es temporaria y la acción
puede ser requerida nuevamente
Código Descripción
421 <dominio> Servicio no disponible; perdiendo canal de transmisión
450 Acción de correo solicitada no ejecutada; buzón de correo no disponible
451 Acción solicitada cancelada; error local en el procesamiento
452 Acción solicitada no ejecutada; almacenamiento del sistema insuficiente
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Respuestas permanentes de terminación negativa
El comando no fue aceptado y la acción requerida no se
completó.
Código Descripción
500 Error de sintaxis; orden no reconocida
501 Error de sintaxis en los parámetros o en los argumentos
502 Orden no implementada
503 Secuencia de órdenes incorrecta
504 Parámetro de orden no implementado
550 Acción solicitada no ejecutada; buzón de correo no disponible
551 Usuario no local, por favor, pruebe con <camino al destino>
552 Acción de correo solicitada cancelada; excedida la asignación de espacio de almacenamiento
553 Acción solicitada no ejecutada; nombre del buzón de correo no permitido
554 Transacción fallida
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Establecimiento de la conexión
Un emisor SMTP tratará de establecer una conexión TCP
con un servidor destino cuando tenga uno o más mensajes
para enviar a ese servidor
1. El emisor abre una conexión TCP con el receptor
2. Cuando la conexión está establecida. El receptor se
identifica enviando la respuesta “220 Service Ready”.
3. El emisor se identifica con el comando HELO
4. El receptor acepta la identificación del emisor con la
respuesta “250 OK”.
Si el servicio de correo en el destino no está disponible, el
servidor de destino responde “421 Service Not Available”
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Transferencia de correo
Una vez que se ha establecido una conexión, el emisor
SMTP puede enviar uno o más mensajes al receptor
SMTP cumpliendo tres fases lógicas:
1. Una orden MAIL identifica al que originó el mensaje
2. Una o más órdenes RCPT identifican a los destinatarios
de este mensaje
3. Una orden DATA transfiere el texto del mensaje
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
Cierre de la conexión
El emisor SMTP cierra la conexión en dos pasos
1. El emisor envía una orden QUIT y espera una respuesta
2. Se inicia una operación de cierre de la conexión TCP
Correo electrónico
SMTP (Simple Mail Transfer Protocol)
RFC 822
El RFC 822 define un formato para los mensajes de texto
que se envían utilizando el correo electrónico
El estándar SMTP adopta el RFC 822 como formato a
utilizar en la construcción de mensajes para su
transmisión a través de SMTP
Correo electrónico
MIME (Multipurpose Internet Mail Extensions)
Algunas limitaciones del esquema SMTP/822
SMTP no puede transmitir archivos .exe
SMTP está limitado a caracteres ASCII de 7 bits (no
incluye caracteres especiales)
Los servidores SMTP pueden rechazar mensajes de
correo que superen cierto tamaño
En general no permite el envío por correo electrónico de
diferentes tipos de datos incluyendo imágenes, voz y
video
MIME pretende resolver estos problemas
Correo electrónico
MIME (Multipurpose Internet Mail Extensions)
Tiene como objetivo permitir el envío de contenidos
multimediales en los correos, pero utilizando el mismo
sistema de transferencia
Esto se logra agregando una serie de campos de
cabecera adicionales
También proporciona un método para convertir los
distintos medios soportados en cadenas de caracteres
ASCII
Correo electrónico
MIME (Multipurpose Internet Mail Extensions)
La especificación de MIME incluye los siguientes
elementos:
Se definen cinco campos nuevos de la cabecera del mensaje
• Proporcionan información acerca del cuerpo del mensaje
Se definen varios formatos para el contenido
• Se normalizan así las representaciones que dan soporte al correo electrónico
multimedia
Se definen esquemas de codificación de transferencia
• Permitiendo la conversión de cualquier formato a un formato protegido contra
las alteraciones que efectúe el sistema de correo
Correo electrónico
MIME (Multipurpose Internet Mail Extensions)
Cabeceras
Cabecera Significado
MIME-Version Define la versión de MIME
Content-Description Breve descripción del texto del contenido del
mensaje
Content-Id Identificador único asignado por el cliente de
correo utilizado por el emisor
Content-Type Define el tipo de información del cuerpo
Content-Transfer-Encoding La sintaxis de transferencia empleada
Content-Lenght El número de bytes del cuerpo del mensaje
Correo electrónico
MIME (Multipurpose Internet Mail Extensions)
Tipos de contenidos alternativos (Content-Type)
Tipo Subtipo Descripción del contenido
Text Plain Texto ASCII sin formato
Richtext Texto formateado basado en HTML
Image GIF Imagen digital en GIF
JPEG Imagen digital en JPEG
Audio Basic Audio digital
Video MPEG Video digital
Aplication Octet-Stream Una cadena de bytes
Postscript Documento imprimible en PostScript
Message RFC822 Mensaje RFC822 encapsulado
Partial Parte de un mensaje más largo
External-body Puntero de un objeto externo
Multipart Mixed Cada parte contiene un contenido o un tipo diferente
Alternative Cada parte contiene el mismo contenido pero distinto tipo o subtipo
Parallel Las partes deberían mostrarse simultáneamente
Digest Múltiples mensajes
Correo electrónico
MIME (Multipurpose Internet Mail Extensions)
Esquemas de codificación de transferencia (Content-
Transfer-Encoding)
7bit Todos los datos son representados por líneas cortas de
caracteres ASCII
8bit Las líneas son cortas pero puede haber caracteres no ASCII
Binary Además de caracteres no ASCII, las líneas pueden ser más
largas que lo admitido por SMTP
quoted-printable El texto codificado permanece legible por usuarios humanos
Base64 Codifica los datos de forma que resulten caracteres ASCII
imprimibles
x-token Codificación no estándar
Ejemplo 1 Ejemplo 2
Correo electrónico
POP3 (Post Office Protocol)
Correo electrónico
Servicio de Directorio de Internet (DNS)
El DNS (Domain Name System) es un servicio de
directorio que relaciona un nombre de un
servidor en Internet con su dirección IP
Incluye cuatro elementos:
Espacio de El DNS utiliza un espacio de nombres estructurado para
nombres de
dominio identificar los recursos en Internet
Base de datos Colección de registros de recursos organizados en una base de
datos distribuida
Servidores de Mantienen información acerca de una porción de la estructura
nombres
de nombres de dominio y de sus recursos asociados
«Resolvedor» Programas que extraen información de los servidores de
nombres en respuesta a los requerimientos de los clientes
Servicio de Directorio de Internet (DNS)
Estructura
Dominios genéricos Dominios de país
raíz
.com .edu .gov .org .net .ar .cl .fr .uk .us
.mit .ucla .edu .com
.utn .unlp
.frba .frc .frgp
Servicio de Directorio de Internet (DNS)
La base de datos de DNS
El DNS está basado en una base de datos jerárquica
que contiene los registros de recursos (resource
records – RRs) que incluyen el nombre, la dirección IP,
y otras informaciones sobre los servidores
Principales características:
Jerarquía de nombres de profundidad variable
Base de datos distribuida
Distribución controlada por la base de datos
Servicio de Directorio de Internet (DNS)
La base de datos de DNS
Algunos de los tipos de registros más comunes son:
A: Dirección de servidor «A». Relaciona el nombre de un
sistema con su dirección IPv4
AAAA: Similar a «A» pero para IPv6
CNAME: Nombre canónico. Especifica un alias para un
servidor y lo relaciona con el nombre real (canónico)
MX: Intercambio de correo. Identifica los sistemas a
través de los cuales se envían y reciben los correos
SOA: Inicio de una zona de autoridad
Servicio de Directorio de Internet (DNS)
Operación DNS
Servicio de Directorio de Internet (DNS)
Jerarquía de servidores
La base de datos del DNS está distribuida
jerárquicamente, alojada en servidores de nombres
DNS distribuidos en Internet
Cada organización mantiene un servidor de nombres
que administra los subdominios que de él dependen
(zona)
En el nivel más alto de la jerarquía existen 13
servidores de nombre raíz que comparten la
responsabilidad para las zonas de más alto nivel
http://www.root-servers.org/
HTTP (HyperText Transfer Protocol)
Es el protocolo sobre el que está basada la Web
No es un protocolo para transferir hipertexto,
sino para transmitir información con contenido
hipertextual
Los datos transferidos pueden ser texto nativo,
hipertexto, audio, imágenes o cualquier
información accesible por Internet
HTTP (HyperText Transfer Protocol)
Algunos conceptos importantes
Caché
Almacenamiento local de mensajes de respuesta o
también, el subsistema que controla el almacenamiento,
recuperación y borrado de mensajes
Cliente
Un programa de aplicación que establece conexiones con
el propósito de enviar solicitudes
Conexión
Un circuito virtual de la capa de transporte establecido
entre dos programas de aplicación con el propósito de
comunicarse
Entidad
HTTP (HyperText Transfer Protocol)
Algunos conceptos importantes (cont.)
Pasarela (Gateway)
Un servidor que actúa como intermediario para otro servidor
Mensaje
Unidad básica de la comunicación HTTP
Servidor de origen
Aquel en el cual reside un recurso dado o donde se va a crear
el recurso
Proxy
Un programa intermediario que actúa tanto como servidor
como cliente con el objeto de hacer las peticiones en
nombre de otros clientes
HTTP (HyperText Transfer Protocol)
Algunos conceptos importantes (cont.)
Recurso
Un objeto de datos o un servicio de red que puede ser
identificado por una URI
Servidor
Un programa de aplicación que acepta conexiones para dar
servicio a solicitudes mediante el envío de respuestas
Túnel
Un programa intermediario que está actuando como un
retransmisor ciego entre dos conexiones
Agente de usuario
El cliente que inicia una solicitud (por ejemplo un
navegador)
HTTP (HyperText Transfer Protocol)
Descripción general de HTTP
Es un protocolo cliente/servidor orientado a
transacciones
Utiliza TCP para proporcionar confiabilidad
Para cada transacción se crea una nueva conexión
entre el cliente y el servidor
Una vez terminada la transacción, la conexión se cierra
Es flexible en cuanto a los formatos que puede
manejar
HTTP (HyperText Transfer Protocol)
Ejemplos de funcionamiento de HTTP
Cadena de solicitud
Conexión Conexión TCP
directa
Cliente/Servidor Cadena de respuesta
Agente Servidor
de usuario
Cadena de solicitud
Conexión
por medio
de sistemas Cadena de respuesta
intermedios Agente Servidor
de usuario
Cadena de solicitud
Conexión
por medio
de caché Cadena de respuesta
Agente Servidor
de usuario
SOPORTE PARA
MULTIMEDIA EN INTERNET
Multimedia
Principales cuestiones de la transmisión de
multimedia en redes
Voz, video y datos están convergiendo en una misma
red tanto en las empresas como en Internet
Priorización de tráfico, QoS y administración del
ancho de banda son cuestiones críticas para la
transmisión de tráfico en TR sobre redes de paquetes
Posibilidad de difundir video y audio de uno a muchos
(YouTube, radios on line, etc.)
Tráfico en tiempo real
Es importante diferenciar tráfico en tiempo real
del tráfico de alta velocidad
Para las aplicaciones convencionales, los
parámetros típicos a tener en cuenta son el
rendimiento y el retardo.
En cambio en tiempo real lo importante son las
cuestiones referidas a la sincronización
Tráfico en tiempo real
Características del tráfico en tiempo real
Tráfico en tiempo real
Características del tráfico en tiempo real
La situación ideal para el tráfico en tiempo real es
aquella en la cual se envían paquetes de igual tamaño
a una tasa constante
En la práctica esto no ocurre
Fuente de voz con Fuente de video
intervalos de silencio comprimido
Tráfico en tiempo real
Requerimientos para la comunicación en TR
Bajo «jitter» (variación del retardo)
Baja latencia (o retardo)
Capacidad para integrar fácilmente tráfico en tiempo
real con tráfico convencional
Adaptable a condiciones de red y tráfico que cambien
dinámicamente
Buena performance para grandes redes y gran número
de conexiones
Tráfico en tiempo real
Requerimientos para la comunicación en TR
(Cont.)
Requerimientos modestos de memorias temporales
(buffers) en la red
Utilización muy efectiva de la capacidad disponible
Baja sobrecarga de bits en las cabeceras de los
paquetes
Baja sobrecarga de procesamiento por paquete en la
red y en el sistema final
Tráfico en tiempo real
Requerimientos para la comunicación en TR
(Cont.)
Estos requerimientos son difíciles de alcanzar en redes
de área amplia basadas en IP o en Internet
TCP y UDP no resultan apropiados
El protocolo desarrollado para estos requerimientos es
RTP (Real Time Protocol)
VoIP (Voice over IP)
Transmisión de voz a través de redes basadas en IP
Funciona codificando la voz en formato digital,
pudiendo ser transportado a través de redes IP en
paquetes discretos
Tiene dos ventajas principales, comparado con la
telefonía tradicional
Normalmente es más barato de operar que un sistema
telefónico equivalente con una PBX y un servicio de red
telefónica convencional
Se integra fácilmente con otros servicios, tales como la
combinación de un acceso web con funcionalidades
telefónicas a través de una PC
Señalización VoIP
Antes que la voz pueda ser transmitida usando
VoIP, se debe iniciar una llamada
El usuario que llama provee el número de
teléfono de un URI lo cual dispara un conjunto de
interacciones de protocolos que resultan en el
establecimiento de la llamada
El “corazón” del proceso de establecimiento de la
llamada es el Protocolo de Iniciación de Sesión
(SIP)
Señalización VoIP
Señalización VoIP
Contexto VoIP
El despliegue de la infraestructura de VoIP ha sido
acompañado por una variedad de productos para
usuarios finales:
Aparatos telefónicos tradicionales
Unidades de conferencia
Unidades móviles
Softphones
Equipamiento de infraestructura desarrollado para
soportar VoIP:
IP PBX
Media gateway
Session Initiation Protocol – SIP
Es un protocolo de control del nivel de aplicación
que permite configurar, modificar y terminar
sesiones en TR entre distintos participantes sobre
una red IP
La «razón de ser» de SIP es permitir la telefonía
por Internet.
Este protocolo puede soportar comunicaciones
uno a uno, uno a muchos o muchos a muchos
Session Initiation Protocol – SIP
Session Initiation Protocol – SIP
Protocolo de descripción de sesión (Session
Description Protocol – SDP)
Está asociado a SIP y es utilizado para invitar uno o
más participantes a una sesión
También incluye información sobre negociación de
parámetros
No es un protocolo para el envío de los datos propios
de la comunicación, sino para la negociación del tipo
de medio a transmitir, su formato y propiedades
asociadas.
Los datos de la comunicación propiamente dicha se
transmiten, típicamente, utilizando RTP
Session Initiation Protocol – SIP
SIP URI (Uniform Resource Identifier)
Un recurso en una red SIP es identificado por un URI
Ejemplos de dichos recursos son:
Un usuario de un servicio en línea
Una cuenta de correo en un sistema de mensajería
Un número telefónico en un servicio de gateway
Un grupo de usuarios en una organización
Tiene un formato basado en aquel utilizado para las
direcciones de correo (usuario@dominio)
sip:[email protected]
Session Initiation Protocol – SIP
Mensajes SIP
SIP es un protocolo basado en texto con una sintaxis
similar a la de HTTP
Existen dos tipos de mensajes SIP: Pedidos y
respuestas
En una llamada SIP típica:
El que llama envía un INVITE al llamado
El llamado acepta la llamada devolviendo un código de
respuesta al que llamó (ACK)
Cualquiera de los dos puede terminar la llamada por
medio de un comando BYE
El protocolo soporta autenticación y encriptación
Protocolo de Transporte en Tiempo Real (RTP)
Este protocolo soporta la transferencia de datos en TR
entre un número de participantes en una sesión
Una sesión es una asociación lógica entre dos o más
entidades RTP que se mantiene durante la
transferencia de los datos
Una sesión se define por
Número de puerto RTP
Número de puerto RTCP (Protocolo de control de RTP)
Direcciones IP de los participantes (unicast o multicast)
Protocolo de Transporte en Tiempo Real (RTP)
RTCP
Es el protocolo de control del RTP
Es utilizado para transmitir periódicamente paquetes de
control a los participantes de una sesión multimedia
Provee realimentación acerca de la calidad del servicio
Dicha realimentación puede ser utilizada para ajustar la
emisión por razones de control de flujo o para evitar la
congestión de la red
El emisor también puede utilizar esta información para
modificar la relación de compresión utilizada
RTCP utiliza el mismo servicio de transporte que RTP
(típicamente UDP) y un número de puerto separado
Protocolo de Transporte en Tiempo Real (RTP)
RTCP
Realiza cuatro funciones:
Control de la QoS y de la congestión
• RTCP provee realimentación sobre la calidad de la distribución de los datos
Identificación
• Los paquetes RTCP transportan una descripción textual persistente de la fuente RTCP
Estimación y dimensionamiento del tamaño de la sesión
• En función de la cantidad de participantes
Control de sesión
• RTCP provee opcionalmente alguna información de control de sesión