You are on page 1of 43

Capa de Aplicacin

Redes de Computadoras II
Daniel Rosquete
Introduccin
Esta capa es el ltimo eslabn en todos los estudios que se han realizado durante la
materia. Debajo de este nivel se encuentra toda la estructura para proporcionar una
conectividad confiable.
Las aplicaciones de esta capa, se han venido desarrollando desde hace
aproximadamente 40 aos, teniendo una gran gama de interfaces diferentes, desde el
texto plano, hasta lo ms elaborado en efectos visuales.
En estas lminas se har un breve resumen de las aplicaciones que se han creado y
cuales son las ms exitosas, de igual manera, en cada una de estas aplicaciones se
podr profundizar en la manera en que fue realizada.
Al terminar este estudio, debe ser capaz de identificar la estructura de cada aplicacin y
las diferencias entre todas las existentes.
Un programa desarrollado para la capa de aplicacin nunca podr ejecutarse en
dispositivos de conexin intermedios, y pueden ser desarrollados en cualquier lenguaje.
Antes de estudiar a fondo las aplicaciones se har una breve introduccin del DNS.
Sistema de Nombres de Dominio
DNS
Conociendo todos los conceptos que manejan las capas inferiores, es slo cuestin de
tiempo preguntarse, si todo se maneja a nivel de nmeros de IP, entonces, Cmo es que
todas las aplicaciones que conocemos no tienen nmeros, sino nombres regulares?
Es por esta razn que el estudio de la capa de aplicacin comienza con el estudio del
DNS. Puerto UDP/TCP: 53
Este sistema es un esquema de nombres jerrquicos basados en dominios y un sistema
de base de datos distribuido para implementar este esquema de nombres. El DNS se usa
principalmente para relacionar los nombres de host y destinos, con las direcciones IP.
El DNS funciona ya que un programa de aplicacin llama a un procedimiento de biblioteca
llamado solver y le pasa el nombre como parmetro; este enva un paquete UDP a un
servidor DNS local que despus busca el nombre y devuelve la direccin IP al solver, el
cual entonces lo devuelve al solicitante.
Una vez que se obtiene la direccin IP se puede establecer una conexin TCP con el
destino.
Sistema de Nombres de Dominio
DNS (Mundo real)
El DNS consiste en 3 componentes
Los Clientes DNS: Un programa cliente DNS que se ejecuta en la computadora del
usuario y que genera peticiones DNS de resolucin de nombres a un servidor DNS (Por
ejemplo: Qu direccin IP corresponde a nombre.dominio?)
Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores
recursivos tienen la capacidad de reenviar la peticin a otro servidor si no disponen de la
direccin solicitada.
Zonas de autoridad: porciones del espacio de nombres de dominio que almacenan los
datos. Cada zona de autoridad abarca al menos un dominio y posiblemente sus
subdominios, si estos ltimos no son delegados a otras zonas de autoridad.
Sistema de Nombres de Dominio
DNS (Mundo real)
Resolver una direccin por DNS no es algo tan sencillo como localizar una secuencia en
una gran base de datos distribuida. Hay que recordar que este sistema es jerrquico,
entonces el estudio se hace de la siguiente manera:
A la etiqueta ubicada ms a la derecha se le llama dominio de nivel superior (en ingls top
level domain). Como org en www.ejemplo.org o como ve en www.facyt.uc.edu.ve
Cada etiqueta a la izquierda especifica una subdivisin o subdominio. Ntese que
"subdominio" expresa dependencia relativa, no dependencia absoluta. En teora, esta
subdivisin puede tener hasta 127 niveles, y cada etiqueta puede contener hasta 63
caracteres, pero restringidos a que la longitud total del nombre del dominio no exceda los
255 caracteres, aunque en la prctica los dominios son casi siempre mucho ms cortos.
Finalmente, la parte ms a la izquierda del dominio suele expresar el nombre de la
mquina (en ingls hostname). El resto del nombre de dominio simplemente especifica la
manera de crear una ruta lgica a la informacin requerida. Por ejemplo, el dominio
faraute.facyt.uc.edu.ve tendra el nombre de la mquina "faraute, alojado en el servidor
de facyt, que a su vez viene direccionado de la uc y a su vez del DNS educativo en
Venezuela
Sistema de Nombres de Dominio
DNS (Mundo real)
Imagen del DNS
Sistema de Nombres de Dominio
DNS (Mundo real)
Existen dos tipos de consultas que un cliente puede hacer a un servidor DNS:
Iterativa
Las resoluciones iterativas consisten en la respuesta completa que el servidor de nombres pueda dar.
El servidor de nombres consulta sus datos locales (incluyendo su cach) buscando los datos
solicitados. El servidor encargado de hacer la resolucin realiza iterativamente preguntas a los
diferentes DNS de la jerarqua asociada al nombre que se desea resolver, hasta descender en ella
hasta la mquina que contiene la zona autoritativa para el nombre que se desea resolver.
Recursiva
El proceso de resolucin normal se da de la siguiente manera:
El servidor A recibe una consulta recursiva desde el cliente DNS.
El servidor A enva una consulta recursiva a B.
El servidor B refiere a A otro servidor de nombres, incluyendo a C.
El servidor A enva una consulta recursiva a C.
El servidor C refiere a A otro servidor de nombres, incluyendo a D.
El servidor A enva una consulta recursiva a D.
El servidor D responde.
El servidor A regresa la respuesta al resolver.
El resolver entrega la resolucin al programa que solicit la informacin.
Sistema de Nombres de Dominio
DNS (Bind)
Berkeley Internet Name Domain es el servidor de DNS ms comnmente usado en
Internet, especialmente en sistemas Unix, en los cuales es un Estndar de facto. Es
patrocinado por la Internet Systems Consortium. BIND fue creado originalmente por
cuatro estudiantes de grado en la University of California, Berkeley y liberado por primera
vez en el 4.3BSD. Paul Vixie comenz a mantenerlo en 1988 mientras trabajaba para la
DEC.
Una nueva versin de BIND (BIND 9) fue escrita desde cero en parte para superar las
dificultades arquitectnicas presentes anteriormente para auditar el cdigo en las primeras
versiones de BIND, y tambin para incorporar DNSSEC (DNS Security Extensions). BIND
9 incluye entre otras caractersticas importantes: TSIG, notificacin DNS, nsupdate, IPv6,
rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a
portabilidad. Es comnmente usado en sistemas GNU/Linux.
Los sistemas Microsoft han migrado tambin a Bind 9. Recientemente se est utilizando el
BIND 9.9.0 de Marzo de 2012 y se est implementando mecanismos de seguridad en
solicitudes DNS, a travs de DNSSEC.
P2P
P2P significa peer to peer, o en espaol, uno a uno, es un tipo de conectividad que se
hace entre dos host para diversos servicios, aunque principalmente se utiliza para
transferencia de archivos.
En las arquitecturas P2P existe mnima o ninguna dependencia de una infraestructura de
servidores siempre activos. En su lugar, la aplicacin explota la comunicacin directa
entre parejas de hosts conectados de forma intermitente.
Los programas ms populares actualmente estn desarrollados para arquitecturas P2P,
para distribucin de archivos (Torrent), comparticin de archivos (Emule y LimeWire),
telefona por internet (Skype), IPTV(PPLive).
Existen grandes diferencias entre la arquitectura cliente servidor y las arquitecturas P2P,
pero la principal es que las conexiones pueden realizarse por cualquier va, entonces, las
topologas estn generalmente en cambio; a esto se le llama auto-escalabilidad.
P2P
El futuro del P2P enfrenta grandes retos en el futuro cercano:
Orientados al ISP: La mayora de las ISP residenciales, estn dimensionados para hacer
un uso asimtrico del ancho de banda, es decir, para dar soporte a mucho ms trfico de
descarga que de carga. Pero las aplicaciones P2P para distribucin de archivos y de
flujos de vdeo desplazan el trfico de carga de los servidores a los ISP residenciales.
Seguridad: Debido a su naturaleza extremadamente distribuida y abierta, las aplicaciones
P2P pueden ser un reto para la seguridad.
Incentivos: El xito de las aplicaciones P2P depende de convencer a los usuarios para
ofrecer voluntariamente a las aplicaciones recursos de ancho de banda, de
almacenamiento y de computacin, lo que constituye un reto de diseo de incentivos.
Aplicaciones proporcionados
La siguiente tabla resume algunas de las principales aplicaciones
Aplicacin Prdida de datos Ancho de banda Sensible al tiempo
Transferencia de
archivos
Sin prdidas Elstica No
Correo Electrnico Sin prdidas Elstica No
Documentos web Sin prdidas Elstica No
Telefona por Internet /
Video
Tolerante Audio: 3 kbps 1
Mbps
Video 10 kbps 5
Mbps
Si: Dcimas de
segundo
Audio / Video Tolerante Como el anterior Si: Pocos segundos
Juegos Interactivos Tolerante Cliente: 2690 Bps
Servidor: 6470 Bps
Si: Dcimas de
segundo
Mensajera
instantnea
Sin prdidas Elstica Si y no
HTTP
El protocolo de transferencia de hipertexto (HTTP) es el protocolo de la capa de aplicacin
de la Web y se encuentra en el corazn de la Web. Requiere de dos programas, uno
cliente y uno servidor que se ejecutan en sistemas terminales diferentes, se comunican
ente si intercambiando mensajes HTTP. HTTP define la estructura de estos mensajes y
como el cliente y el servidor los intercambian. Se requiere definir los siguientes conceptos:
Pgina web: consiste en un archivo que puede direccionarse mediante un nico URL. Una
pgina web contiene archivos base HTML que referencian a objetos.
Navegador web: Es el programa cliente de HTTP, existen mltiples, como Chrome,
Firefox, pera, entre otros
Servidor Web: Es el programa servidor de HTTP, almacena los objetos web y siendo
direccionables mediante URL. Los ms utilizados son: apache y Microsoft Internet
Information Server.
HTTP
HTTP utiliza TCP como su protocolo de transporte subyacente(en lugar de utilizar UDP).
El cliente primero inicia una conexin TCP con el servidor, una vez sucedido los procesos
del navegador y del servidor acceden a TCP a travs de sus interfaces de socket.
El servidor enva los archivos solicitados a los clientes sin almacenar ninguna informacin
acerca del estado del cliente. Si un determinado cliente pide el mismo objeto dos veces en
un espacio de tiempo de unos pocos segundos, el servidor reenva el objeto ya que ha
olvidado por completo que lo haba hecho anteriormente. Entonces HTTP se define como
un protocolo sin memoria de estado.
Un servidor web en principio debe estar siempre activo y con direccin de IP fija, pero
como esto a veces puede ser complejo de lograr, entonces se utilizan tcnicas como
procesos demonios de DNS que avisan al DNS server del cambio.
En las siguientes lminas se estudiarn las conexiones persistentes y no persistentes
para HTTP.
HTTP con conexiones
no persistentes
Este tipo de conexiones como su nombre lo indica tiene como objetivo establecer un
enlace TCP para cada elemento a transmitir. El siguiente ejemplo es una idea muy
general de lo que sucede
En primera instancia, el cliente HTTP inicia una conexin TCP con el servidor por el
puerto 80, una vez establecida le enva un mensaje de solicitud HTTP; el proceso servidor
recibe el mensaje, recupera el objeto (La pgina index.html en primera instancia) que
puede estar en disco o en RAM, lo encapsula en un mensaje de respuesta HTTP y lo
enva; El proceso servidor HTTP indica por TCP que cierre la conexin (lo cual ocurre
cuando se ha recibido el ACK); posteriormente el cliente HTTP recibe el mensaje, termina
la conexin TCP, extrae el contenido del objeto y examina el archivo HTML, una vez que
esto sucede nota que existe referencia a 10 objetos JPEG; finalmente tiene que realizar
todos los pasos anteriores para cada uno de estos objetos.
Es fcil notar que una conexin HTTP no persistente es bastante lenta, pero muy segura
en cuanto al objeto. Una ventaja que se le ha aplicado a este mtodo es el de crear
mltiples conexiones TCP en paralelo (Esto lo maneja el navegador) as puede reducir el
tiempo de respuesta. Este ltimo se calcula diciendo TR = 2*RTT + Tiempo_Transmision
HTTP con conexiones
persistentes
Una de las desventajas del mtodo anterior es que por cada conexin TCP establecida,
hay que reservar buffer, variables y otros elementos, lo que sobrecarga al servidor HTTP,
sin contar el tiempo de retardo de entrega.
Entonces se plantea una alternativa eficiente, que es dejar la conexin TCP abierta
despus de enviar una respuestas, de esta manera, las solicitudes y respuestas
subsiguientes pueden enviarse a travs de la misma conexin.
En el caso del ejemplo anterior se pudo haber enviado los 11 objetos a travs de la misma
conexin. Otra gran ventaja que ofrece es que si se encuentran varias pginas web
alojadas en el mismo servidor pueden enviarse desde este a un mismo cliente a travs de
una conexin TCP persistente.
Las conexiones se cierran al pasar un perodo prudencial de tiempo sin recibir solicitudes.
Formato general de un mensaje
HTTP
Investigar el mensaje de solicitud HTTP
Investigar el mensaje de respuesta HTTP
Investigar cdigos de estado y frases asociadas.
Investigar GET
Investigar GET Condicional
Interaccin usuario-servidor
cookies
El problema de un servidor HTTP es que no tiene memoria del estado de la conexin, la
gran ventaja es que un mismo servidor HTTP puede gestionar miles de conexiones TCP
de manera simultnea.
Por motivos de seguridad o por simplemente, querer brindar una experiencia
personalizada al usuario, debe existir una manera de identificar a cada usuario. La
propuesta tecnolgica para esto, es utilizar cookies, una tecnologa realmente interesante
en cuanto a optimizacin de redes.
Con el objetivo de evitar las transferencias de archivos pesados con la identidad de cada
usuario que se conecta a un sitio web; el servidor y el cliente llegan a un acuerdo a travs
de un archivo sencillo que contiene un cdigo de identificacin.
Cuando ocurre una conexin por primera vez de un computador a un servidor web, este lo
detecta y le solicita al navegador crear un cookie con un nmero asignado X, el cliente lo
acepta y lo almacena. A partir de este punto todas las conexiones que se realicen a ese
servidor, sern indicndoles que a este computador le corresponde el nmero X y as el
servidor puede proveerle un servicio ms personalizado.
Interaccin usuario-servidor
cookies
Actualmente los carritos de compras de pginas importantes como amazon, permiten
guardar preferencias por artculos sin tener necesidad de registrarse o entrar con la
cuenta.
Sus servidores utilizan el sistema de cookies, claro que, si las cookies son borradas del
navegador, inmediatamente se pierden todos los datos, en el caso de que esto suceda, el
servidor pasado un tiempo prudencial decide borrarlas.
En el caso de utilizar cookies + cuenta de usuario, no existe el problema de prdida ya
que el nmero de usuario est asociado al login, sin necesidad de estar intercambiando
toda la data del usuario de manera constante.
Interaccin usuario-servidor
Cach web
Un concepto frecuente es la cach web, aunque no se le conoce por este nombre, sino
por el de servidor proxy, es una entidad de la red que satisface solicitudes HTTP en
nombre de un servidor web de origen.
Un servidor proxy (SP) acta de intermediario entre las conexiones finales de clientes y
servidores de origen; los SP generalmente almacenan en disco, copias de los objetos que
fueron solicitados recientemente.
Su funcionamiento se resume en estos 4 pasos:
El navegador establece conexin TCP con SP y enva la solicitud HTTP para el
objeto.
El SP comprueba si tiene copia del objeto localmente, si la tiene puede proveerla
rpidamente.
Si el SP no tiene copia del objeto, abre una conexin TCP con el servidor de
origen, enva la solicitud de obtener el objeto y finalmente lo obtiene de la forma
regular ya antes estudiada.
Cuando SP recibe el objeto, almacena una copia local y enva una copia al
navegador del cliente.
Interaccin usuario-servidor
Cach web
El uso de SP est ampliamente difundido, especialmente en universidades y empresas
grandes, ya que de esta manera pueden utilizar mejor los recursos de conexin para
servidores externos.
Supongamos que tenemos una red institucional conectada a 100 Mbps al router
interinstitucional, el cual tiene un enlace de acceso a un router de la internet pblica de 15
Mbps, supongamos que el tamao medio de un objeto es de 1 Mbit y que la tasa media
de solicitudes de navegadores de la institucin a los servidores origen es de 15 por
segundo. Partiendo de estos datos obtendremos el tiempo total de respuesta y la
intensidad de trfico con las siguientes frmulas:
Intensidad_LAN = (15 solicitudes / seg) x (1 Mbit / solicitud)/(100 Mbps) = 0,15
Intensidad_Enlace = (15 solicitudes / seg) x (1 Mbit / solicitud)/(15 Mbps) = 1
Esto significa que la LAN est en excelentes condiciones para el trfico de datos regular,
pero a mayor sea el ndice que se calcula, peor es la calidad de la conexin; por esto,
tener como resultado 1 en la Intensidad del Enlace, implica que los retardos pueden llegar
a durar minutos.
Interaccin usuario-servidor
Cach web
Para solucionar este problema, sin elevar los costos de conectividad, se implementa el
uso de SP institucional colocado dentro de la LAN.
Se ha calculado por pruebas realizadas previamente que un SP tiene entre 0,2 y 0,7 de
tasa de acierto (mantiene los objetos en su cach), pero a efectos de ejemplo, se utilizar
una tasa de acierto de 0,4; lo que significa que el 40% de las solicitudes sern satisfechas
de forma inmediata por estar dentro de la misma LAN.
Recalculando con las frmulas anteriores, la segunda, baja de 1 a 0,6, el retardo medio
entonces es de 0,4 x (0,01 segundos) y 0,6 x (2,01 segundos). Entonces el tiempo de
respuesta promedio es de 1,2 segundos.
Transferencia de Archivos
FTP
Una de las razones principales de la existencia de la red, es la transferencia de archivos
entre host. Hay que recordar que en los inicios de las computadoras, los archivos solan
ocupar mucha ms memoria que lo proporcionado por los dispositivos de almacenamiento
porttiles. Por esta razn, haba que crear una manera de transferir un archivo desde, por
ejemplo, Maracaibo hasta Cuman, sin tener que viajar durante ms de una decena de
horas.
FTP es el protocolo por defecto para hacer transferencia de archivos entre acuerdo de
dos partes, es de recordar, que HTTP tambin transfiere archivos, pero existen diferencias
en la gestin de la conexin.
Debe existir una cuenta de usuario y contrasea en el servidor.
FTP utiliza dos conexiones TCP paralelas, una de control y una de datos (puertos
21 y 20 respectivamente)
El servidor HTTP responde a solicitud del cliente nicamente con una misma
conexin HTTP.
Transferencia de Archivos
FTP
La conexin de control de FTP enva informacin entre los dos hosts, como la
identificacin de usuario, contrasea y comandos para modificar el directorio remoto y
comandos para enviar (PUT) o extraer (GET) Archivos.
El trmino en banda se refiere a si la data y el control pasa por la misma conexin, en el
caso de FTP, es completamente fuera de banda, mientras que HTTP es en banda.
Las conexiones de datos FTP no son persistentes y adems, es un protocolo que a travs
de su conexin de control mantiene memoria del usuario, por lo que se restringe el
nmero de enlaces FTP que pueden existir en un mismo momento.
Debe investigar comandos y respuestas de FTP. Los comandos USER, PASS, LIST,
RETR, STOR y las respuestas 331 125 425 y 452.
Correo Electrnico
Introduccin
La razn fundamental para crear la Internet sin duda, era la aplicacin del correo
electrnico. Antes de la poca digital, la entrega de los correos tena que hacerse
mediante los medios regulares conocidos, por lo que tratar de comunicarse con una
persona en otro continente poda tomar incluso meses. Esto siempre signific un
problema de gran magnitud desde los principios de la historia, por lo que este proyecto de
correo electrnico existi y se fue refinando muchos aos antes de su puesta en marcha.
El correo electrnico pas de ser una manera extremadamente rpida de comunicacin, a
ser un medio para mantenerse en contacto diario con otras personas, hacindoles llegar
fotos, videos, texto decorado, entre otras; todo esto, gracias al uso de formatos HTML, por
lo que se nota la gran evolucin que ha tenido esta aplicacin.
El sistema de correo electrnico tiene 3 componentes principales: agentes de usuario,
servidores de correo y el Protocolo Simple de Transferencia de Correo (SMTP).
Los agentes de usuario son las aplicaciones utilizadas para leer, editar y enviar correos
electrnicos al servidor de correos, algunas de las ms populares (Por ser las primeras)
son: Outlook, apple mail y thunderbird, estas, cuentan con GUI, las que son modo texto
son mail, pine y elm. Existe una tercera opcin de presentacin que es modo web.
Correo Electrnico
Introduccin
Los servidores de correo son el ncleo de la infraestructura del sistema de correo
electrnico. Cada persona, tiene un buzn de correo que se encuentra alojado en un
servidor de correos. Este buzn gestiona los mensajes enviados y recibidos, y slo puede
ser accedido indicando el login y la clave que tiene asignado este usuario. En el caso de
los servidores de correo, pueden suceder algunos fallos como correo lleno, o desconexin
del servidor donde se aloja el buzn destino, en estos casos, se crea una cola de
mensajes y se intenta enviarlo cada 30 minutos; si a la vuelta de 2 das no se ha podido
enviar con xito, se le notifica al remitente y se elimina el mensaje de la cola.
STMP es el protocolo principal para la capa de aplicacin para el coreo electrnico de
Internet, utiliza el servicio de transferencia TCP para comunicar entre servidores de
correos. Cuenta con dos lados el cliente se ejecuta del lado del remitente y el servidor del
lado del destinatario. Un servidor de correo puede ser a su vez cliente y servidor.
Correo Electrnico
SMTP
El SMTP es mucho ms antiguo que HTTP, por consiguiente ha sido refinado y construido
con mucho cuidado en sus RFC, inclusive se puede notar que aprovecha las grandes
evoluciones de las redes a travs de algunas funcionalidades antiguas. Prueba de esto,
es que los mensajes desde la dcada de los 80 se han transmitido en formato ASCII de 7
bits, entonces actualmente se presentan problemas como tener que codificar todo lo que
se enva a este formato.
Un ejemplo de conexin para enviar un correo electrnico sucede de esta manera.
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alicia@crepes.fr>
S: 250 alicia@crepes.fr ... sender ok
C: RCPT TO: <benito@hamburger.edu>
S: 250 benito@hamburger.edu
C: DATA
S: 354 Enter mail, end with . on a line by itself
C: Te gusta el Ketchup?
C: Y los pepinillos?
C: .
S: 250 Message Accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
Correo Electrnico
SMTP
El SMTP establece conexin a travs del puerto 25 y es una conexin persistente al igual
que HTTP persistente, lo que los hace protocolos comunes, pero con ligeras diferencias.
Se considera que el protocolo HTTP utiliza un protocolo de extraccin, porque
principalmente los usuarios se conectan a descargar lo que se encuentra en un servidor,
mientras que, SMTP utiliza protocolo de insercin ya que se introduce en el servidor de
correo receptor el nuevo correo electrnico, siempre bajo conexiones TCP.
Otra ligera diferencia es que SMTP utiliza ASCII de 7 bits, mientras que en los datos
HTTP no tienen una restriccin absoluta como la aplicada en correo electrnico.
Finalmente HTTP encapsula cada objeto en su propio mensaje de respuesta HTTP como
se plante en lminas anteriores, mientras que SMTP incluye todos los objetos en un
mismo mensaje.
Todo lo explicado previamente es asumiendo que los envos y recepciones se hacen
directamente sobre el servidor de correo, sin embargo, se complica cuando se desea
incluir un agente de usuario o cliente.
Correo Electrnico
Protocolos de acceso al email
Cuando el usuario no se encuentra directamente sobre el host que aloja el servidor SMTP
(lo cual ocurre en la amplia mayora de los casos), sino que por el contrario, quiere revisar
el correo electrnico desde su casa u oficina, utilizando un host cualquiera, ac es cuando
la conexin se complica.
Hemos establecido antes que el SMTP es un protocolo de insercin, y cuando una
persona desea revisar su correo, est en modo extraccin (Sin importar la va). En vista
que SMTP no fue diseado para esto, entonces tiene que existir una forma o protocolo
establecido que permita acceder al correo electrnico. Los ms populares son POP3
(Protocolo de Oficina de Correos versin 3), IMAP (Protocolo de Acceso de Correo de
Internet) y HTTP.
Recuerde que SMTP puede enviar correos desde un agente pero no puede recibir desde
un servidor.
Estudiaremos a fondo los 3 protocolos ms populares.
Correo Electrnico
POP3
Es un protocolo simple de funcionalidad limitada. POP3 se inicia cuando el agente de
usuario abre una conexin TCP por el puerto 110 al servidor de correo. POP3 tiene 3
fases:
Autorizacin: El agente enva un nombre de usuario y contrasea.
Transaccin: El agente recupera los mensajes, puede marcar cuales sern
borrados, estadsticas de correo y eliminar marcas de borrado.
Actualizacin: Una vez que el cliente ejecute el comando QUIT, el servidor de
correo borra los mensajes que han sido marcados para borrado.
Durante una sesin POP3 entre un agente y un servidor, el servidor mantiene informacin
de estado, entre otras, la relacin de mensajes de usuario marcados para ser borrados.
Sin embargo, no se mantiene informacin entre una sesin y otra, lo cual hace ms
sencillo implementar un servidor POP3.
La desventaja del POP3 es que todos los mensajes son descargados en el computador, y
esto conlleva a que si el usuario tiene una jerarqua de carpetas para almacenar sus
correos, esta configuracin no se mantendr si realiza conexin desde otro computador.
Correo Electrnico
IMAP
Debido a la falla de POP3 de no proporcionar ningn medio al usuario para crear carpetas
remotas y asignar mensajes a la misma, IMAP provee una solucin al respecto con este
problema y otros que se detallarn. El problema de IMAP es que es mucho ms complejo
que el POP3 precisamente por proveer mayor cantidad de funcionalidades.
Un servidor IMAP asociar cada mensaje con una carpeta; ejemplo regular es la carpeta
INBOX del destinatario y luego puede entonces pasar el mensaje a una nueva carpeta
creada por el usuario, ya que IMAP permite la administracin completa a travs de
comandos. IMAP mantiene informacin acerca del estado a lo largo de las sesiones IMAP.
Otra gran ventaja de IMAP es que permite obtener slo partes de un mensaje completo,
por ejemplo, slo la cabecera, o slo una parte de un mensaje MIME en varias partes.
Esto resulta til sobretodo para dispositivos mviles con conexiones limitadas en ancho
de banda y cantidad de descargas.
Correo Electrnico
HTTP
Actualmente, son ms los usuarios que acceden a su correo electrnico a travs de
navegadores web. Hotmail fue el pionero en este tipo conexin basado en web,
posteriormente le siguieron Yahoo y Google, al igual que casi todas las universidades y
empresas con dominios propios.
El objetivo es establecer la conexin a travs de un cliente HTTP que es un navegador
cualquiera, sin necesidad de utilizar POP3 ni IMAP.
Una diferencia importante con respecto a los anteriores es que ahora, el remitente no
enva el correo a travs de SMTP sino de HTTP, entonces, la conexin a partir de este
punto, es HTTP SMTP (Mltiples) HTTP.
P2P
Fundamentos
Una de las desventajas ms grandes que existe en todas las aplicaciones planteadas
previamente, es la necesidad de un servidor constantemente activo, por lo que
probablemente requiera de una infraestructura de servidores y muchos otros recursos.
En el caso de la arquitectura Peer to Peer, slo se requiere un par de hosts
comunicndose en el momento que ambos estn activos, a estos hosts, se les llama
peers. Siendo un peer, una computadora cualquiera de escritorio o un dispositivo mvil
con aplicaciones basadas en P2P.
Existen mltiples aplicaciones para esta arquitectura, como es el caso de las bases de
datos distribuidas y las llamadas con tecnologa de VoIP. Sin embargo, su uso principal es
el de transferencia de archivos desde los distintos puntos de vista existentes.
Parte del problema que se desea resolver con P2P, es evitar sobrecargar a un servidor,
cuya funcin es compartir archivos extensos como el caso de videos y canciones.
P2P
Escalabilidad
Se van a plantear un conjunto de variables y frmulas que sern explicadas en clase y las
conclusiones en una lmina posterior.
D
cs
mx
{
NF
u
s
,
F
d
min
}
D
cs
=mx
{
NF
u
s
,
F
d
min
}
D
P2P
mx
{
F
u
s
,
F
d
min
,
NF
u
s
+

i=1
N
u
i }
D
P2P
=mx
{
F
u
s
,
F
d
min
,
NF
u
s
+

i=1
N
u
i }
Cliente Servidor
P2P
D
cs
N
F
u
s
d
min
Tiempo de distribucin Cliente-Servidor
Nmero de pares que desea obtener una copia del archivo
Tamao en bits del archivo
Velocidad de carga del enlace de acceso al servidor
La velocidad de descarga del par cuya velocidad de descarga sea menor
P2P
Escalabilidad
A travs de ejemplos sencillos y haciendo algunas grficas, se puede observar claramente
como cuando el nmero de peers es pequeo, la escalabilidad de cliente servidor, es
prcticamente igual a la de P2P. Sin embargo, conforme va aumentando el nmero de
servidores, se puede notar que el tiempo mnimo de distribucin va mejorando
notablemente en P2P, mientras que en el caso de Cliente Servidor, se mantiene con
crecimiento lneal.
Finalmente esto significa, que una aplicacin con arquitectura P2P puede auto-escalarse,
gracias a su capacidad de ser distribuidores y consumidores de bits.
P2P
Fundamentos de BitTorrent
A diferencia de lo que se cree, BitTorrent es un protocolo, ms all que una aplicacin.
Este protocolo est basado en P2P y est destinado a la comparticin de archivos que es
la primera posibilidad de uso que estudiaremos.
La coleccin de todos los peers que participan en la distribucin de un determinado
archivo se conoce como torrent.
Los peers de un torrent descargan fragmentos del mismo tamao desde el archivo,
siendo el tamao tpico de un fragmento 256 KB.
Cuando un par se une por primera vez a un torrent, no tiene fragmentos del archivo.
Mientras se descargan fragmentos, se actualizan los mismos en otros pares.
Cuando un peer ha adquirido todo el archivo, tiene dos opciones, ser egoista o altruista.
Se puede abandonar el torrent en cualquier instante y volver a unirse despus
Se manejan trminos como tracker, leecher, seeder y enjambre
P2P
Funcionamiento
Cada torrent que se crea, est asociado a una infraestructura denominada tracker (La
cual estudiaremos en la lmina siguiente), cuyo trabajo en lneas generales, es saber
donde se encuentra cada torrent y si todava est activo el peer que lo est utilizando,
para as poder comunicar a todos los peers.
Cuando un nuevo peer se une al torrent, el tracker selecciona aleatoriamente a un
subconjunto de peers y les enva las direcciones IP de estos, al nuevo peer que acaba de
unirse al enjambre. Luego, el nuevo peer intenta establecer conexiones TCP concurrentes
con todos los pares que ha recibido del tracker.
Se ha establecido previamente que un peer puede desconectarse en el momento que
sea, es por esto, que las conexiones establecidas por el nuevo peer, pueden cambiar en
cualquier momento ya que abandonan la conexin, mientras que otros pueden intentar
establecer conexiones TCP con el nuevo peer. Finalmente, los peers conectados irn
variando con el tiempo.
P2P
Funcionamiento
Otro aspecto a tomar en cuenta, es que en un determinado instante de tiempo, cada peer
tendr un subconjunto de fragmentos del archivo, disponiendo los distintos pares de
subconjuntos diferentes. Peridicamente, el nuevo peer, debe preguntarle a cada uno de
sus vecinos (pares conectados a el) acerca de la lista de fragmentos que disponen. Si el
nuevo peer tiene L vecinos diferentes, obtendr L listas de fragmentos. Con esta
informacin se solicitar los fragmentos restantes.
Existe un problema, la decisin de cuales fragmentos se deben asignar a cada vecino
conectado para poderlo compartir. Para esto se utiliza la tcnica de primero el menos
comn. La idea es determinar, de entre los fragmentos que no tiene, el menor nmero de
copias repetidas repartidas entre los vecinos y solicitar entonces en primer lugar estos
fragmentos menos comunes.
Otro problema, es determinar a cuales solicitudes se debe responder. Lo que se resolvi
utilizando un algoritmo de intercambio inteligente, donde la idea es que el peer de
prioridad a los vecinos que actualmente estn suministrando sus datos a mayor velocidad.
Esto significa que se tiene que monitorear la velocidad a la que se recibe bits de los
vecinos y determinar los cuatro vecinos que envan bits a mayor velocidad. Entonces de
forma recproca se enva fragmentos a estos 4 vecinos. Esto ocurre cada 10 segundos.
P2P
Funcionamiento
El mecanismo de incentivos para el intercambio descrito, a menudo se denomina tit-for-tat
(teora de juegos). Sin embargo, este esquema se ha demostrado que presenta fallas que
pueden ser utilizadas maliciosamente.
El tit-for-tat vendra a decir "golpea suavemente al que te ha golpeado suavemente". Esta
estrategia depende de cuatro condiciones:
El agente siempre colabora, a menos que sea provocado con una desercin
El agente se vengar ante cualquier desercin
El agente perdona fcilmente una vez que se ha vengado
El agente debe tener una probabilidad mayor de 2/3 de jugar de nuevo contra el mismo
oponente
Es el tit-for-tat la base de todo el sistema de BitTorrent, tome en cuenta que herramientas
como PPLive y ppstream estn inspiradas en este protocolo. Se sugiere investigar acerca
del modo endgame, anti-snubbing y aplicaciones para hacer un tracker y ponerlo a
funcionar.
P2P
Tablas de Hash Distribuidas (DHT)
Algunas aplicaciones de P2P requieren de constante acceso a una base de datos
distribuida, es por esto, que resulta necesario repasar algunos conceptos.
Una base de datos almacena informacin en parejas (clave, valor). Por ejemplo el nmero
de cdula es la clave y los valores, los nombres correspondientes a la persona, tal es el
caso de (20256558, Juan Rodrguez). De la misma manera se puede hacer para cuadrar
por ejemplo, el nombre de un lbum con un IP, por ejemplo (Soda Stereo Signos,
198.156.2.123). En el caso del P2P, esta base de datos estara de forma distribuida, por lo
que un peer puede consultar o hacer inserciones de nuevas parejas en la base de datos.
El problema que se presenta es, si bien estas bases de datos distribuidas pueden
utilizarse perfectamente en una arquitectura cliente-servidor, Cmo se podran llevar a
P2P sin tener que consultar individualmente a todos los pares de un enjambre?. A partir
de este problema se crean las DHT.
P2P
Tablas de Hash Distribuidas (DHT)
Para poder establecer una DHT, necesitamos cambiar un poco el paradigma de las
claves, hasta la lmina anterior, se estableca que una clave era un nmero entero
secuencial (como la cdula) o una frase.
En vista de que el P2P es una arquitectura que requiere de rapidez al momento de una
consulta, ya que la Base de Datos est distribuida entre varios peers, se utiliza un
algoritmo conocido por su velocidad y efectividad. Tal es el caso del algoritmo de claves
de hash, donde una cadena de caracteres tendr un valor entero probablemente nico en
un sistema P2P, este valor nico, se asignar como identificador.
Se puede ver claramente como se resuelve el problema de asignacin de identificadores
en una tabla de base de datos distribuidas, conocidas a partir de este punto como, tablas
de DHT. El nuevo problema est en descubrir entonces, quienes son los peers ms
cercanos al que quiere acceder para esa clave.
P2P
Tablas de Hash Distribuidas (DHT)
En primera instancia se define el ms prximo, al inmediato sucesor de la clave.
Supongamos que n=4, y en este caso todos los identificadores de los peers y las claves
se encuentran en el rango de 0 a 15. Supongamos tambin que hay ocho peers en el
sistema con los siguientes ids: 1,3,4,5,8,10,12 y 15 y finalmente supongamos que
deseamos almacenar la pareja (11, Johnny wu) en uno de los ocho pares; la pregunta
inmediata es En cual par? Utilizando la definicin del ms prximo, sera el par nmero
12.
El nuevo problema que se presenta a partir de esta solucin, es determinar el par cuyo
identificador es ms prximo a la clave? Ya que en la forma que se plantea con P2P y en
el prrafo anterior, cada peer tendra que llevar un control sobre todas las DHT y esto no
es posible en sistemas formados por millones de pares.
La solucin es a travs del DHT Circular el cual debe investigar.
P2P
Tablas de Hash Distribuidas (DHT)
Otro problema que presentan las DHT es el abandono de peers. Es importante recordar,
que un peer tiene la potestad de entrar y salir a una red en el momento que lo desee,
entonces es necesario crear una DHT que tenga una solucin pensada para esto.
Utilizando DHT circular, se puede ajustar la red, asumiendo que cada peer reconoce a sus
dos siguientes sucesores, por lo que en caso de que exista un abandono, por ejemplo, del
peer 5, entonces el peer 4, deber mover como primer sucesor a su segundo sucesor que
es el 8, y luego consultarle al 8 quien es su primer sucesor para almacenarlo como su
segundo sucesor.
Ya se conoce que sucede cuando se abandona un peer, pero Qu ocurre cuando un
peer ingresa a la red? Supongamos que es el nmero 14, se conoce slo el peer 1, por lo
que debe ir movindose dentro del DHT circular hasta conseguir su orden exacto y
notificarle a todos los peers afectados, acerca de la actualizacin.
Investigue como BitTorrent utiliza este sistema de DHT para sus trackers.
P2P
Telefona Internet P2P
La telefona sobre IP es una tecnologa interesante que ha llevado el mundo a conocer
otras posibilidades de comunicacin. Actualmente una de las aplicaciones ms conocidas
y utilizadas, es Skype, con 7 a 10 millones de usuarios conectados de manera simultnea.
Skype se fund inicialmente con VoIP, posteriormente, ya ofrece comunicaciones a
telefona regular e incluso videoconferencia en VoIP.
El protocolo que utiliza Skype es completamente propietario, y adems fue cifrado. No en
vano se vendi por 2.600 millones de dlares en 2005. En 2006 un grupo de investigacin
consigui un modelo aproximado de como funciona Skype.
El concepto est basado en una red jerrquica superpuesta en la que cada par se
clasifica como super par o par normal. Skype incluye un ndice que asigna los nombres de
usuario a sus direcciones IP actuales. Este ndice se distribuye sobre los super pares; al
momento de hacer una llamada de A hasta B, se hace una bsqueda en un ndice
distribuido para determinar la direccin IP.

You might also like