Mecanismos de Difusión Masiva en Aplicaciones Distribuidas - dtic ...
Mecanismos de Difusión Masiva en Aplicaciones Distribuidas - dtic ...
Mecanismos de Difusión Masiva en Aplicaciones Distribuidas - dtic ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Mecanismos</strong> <strong>de</strong> <strong>Difusión</strong> <strong>Masiva</strong><br />
<strong>en</strong> <strong>Aplicaciones</strong> <strong>Distribuidas</strong><br />
Diego Marcos Jorquera, Virgilio Gilart Iglesias,<br />
Francisco José Mora Gim<strong>en</strong>o y Francisco Maciá Pérez<br />
En la actualidad, y motivado <strong>en</strong>tre otras cosas por la llegada <strong>de</strong> los servicios<br />
integrales por Internet, muchos <strong>de</strong> los pres<strong>en</strong>tes procesos <strong>de</strong> transmisión <strong>de</strong><br />
información suel<strong>en</strong> estar marcados por dos características difer<strong>en</strong>ciadoras: se<br />
transfier<strong>en</strong> gran<strong>de</strong>s volúm<strong>en</strong>es <strong>de</strong> información y a un elevado número <strong>de</strong><br />
<strong>de</strong>stinatarios. Con la tecnología que v<strong>en</strong>imos usando hasta el mom<strong>en</strong>to<br />
ori<strong>en</strong>tada a las comunicaciones uno a uno estas trasmisiones supon<strong>en</strong> un<br />
serio problema ya que saturan los canales <strong>de</strong> comunicación y se produc<strong>en</strong><br />
altos retardos <strong>en</strong> el proceso global <strong>de</strong> comunicación. En este s<strong>en</strong>tido las<br />
nuevas tecnologías <strong>de</strong> comunicaciones uno a muchos o muchos a muchos<br />
aportan una solución mucho más escalable al problema <strong>de</strong> la difusión <strong>de</strong><br />
información masiva. En el pres<strong>en</strong>te docum<strong>en</strong>to se analiza la incorporación <strong>de</strong><br />
procesos <strong>de</strong> comunicación multicast <strong>en</strong> aplicaciones que requier<strong>en</strong> la<br />
transmisión confiable <strong>de</strong> gran<strong>de</strong>s volúm<strong>en</strong>es <strong>de</strong> información <strong>de</strong> carácter<br />
g<strong>en</strong>érico a través <strong>de</strong> re<strong>de</strong>s <strong>de</strong> comunicación sobre las que no se ti<strong>en</strong>e ningún<br />
control, proponi<strong>en</strong>do como caso <strong>de</strong> uso la incorporación <strong>de</strong> procesos <strong>de</strong><br />
difusión <strong>en</strong> Gaia, un sistema <strong>de</strong> reg<strong>en</strong>eración <strong>de</strong> nodos.<br />
1 Introducción<br />
La comunicación y el uso <strong>de</strong> re<strong>de</strong>s <strong>de</strong> computadores, así como su<br />
rápida y amplia expansión <strong>en</strong> la sociedad actual, han revolucionado la<br />
forma <strong>en</strong> la que nos relacionamos, trabajamos o nos divertimos. La<br />
aceptación <strong>de</strong> las nuevas tecnologías es cada vez mayor y su uso se ha
increm<strong>en</strong>tado <strong>de</strong> manera espectacular <strong>en</strong> los últimos años. Por ello las<br />
tecnologías e infraestructuras que hac<strong>en</strong> posible su uso han t<strong>en</strong>ido<br />
que sufrir los efectos <strong>de</strong> este escalado, adaptándose <strong>en</strong> la medida <strong>de</strong><br />
lo posible a las nuevas necesida<strong>de</strong>s.<br />
En la actualidad muchos <strong>de</strong> los procesos <strong>de</strong> transmisión <strong>de</strong><br />
información suel<strong>en</strong> estar marcados por dos características<br />
difer<strong>en</strong>ciadoras: gran<strong>de</strong>s volúm<strong>en</strong>es <strong>de</strong> información y elevado número<br />
<strong>de</strong> <strong>de</strong>stinatarios. Con la tecnología que v<strong>en</strong>imos usando hasta el<br />
mom<strong>en</strong>to estas trasmisiones supon<strong>en</strong> un serio problema ya que<br />
saturan los canales <strong>de</strong> comunicación y se produc<strong>en</strong> altos retardos <strong>en</strong><br />
el proceso global <strong>de</strong> comunicación.<br />
<br />
<br />
Servidor<br />
Internet<br />
Fig. 1. Esquema <strong>de</strong>l proceso <strong>de</strong> difusión <strong>de</strong> información masiva a múltiples<br />
<strong>de</strong>stinatarios mediante re<strong>de</strong>s heterogéneas<br />
El Grupo <strong>de</strong> Re<strong>de</strong>s <strong>de</strong> la Unidad Singular <strong>de</strong> Investigación Re<strong>de</strong>s <strong>de</strong><br />
Computadores e Informática Industrial <strong>de</strong>l Departam<strong>en</strong>to <strong>de</strong><br />
Tecnología Informática y Computación <strong>de</strong> la Universidad <strong>de</strong> Alicante<br />
c<strong>en</strong>traliza mucha <strong>de</strong> su actividad <strong>en</strong> el estudio y realización <strong>de</strong><br />
sistemas que facilit<strong>en</strong> la gestión y mant<strong>en</strong>imi<strong>en</strong>to <strong>de</strong> las re<strong>de</strong>s <strong>de</strong><br />
computadores. En este ámbito, el grupo ha <strong>de</strong>sarrollado un sistema,<br />
<strong>de</strong>nominado Gaia [1], <strong>de</strong>dicado a la reg<strong>en</strong>eración <strong>de</strong> nodos <strong>de</strong> red y
que se <strong>en</strong>marca <strong>de</strong>ntro <strong>de</strong>l <strong>de</strong>sarrollo <strong>de</strong> gran<strong>de</strong>s aplicaciones<br />
distribuidas. Este sistema <strong>de</strong>be realizar transfer<strong>en</strong>cias <strong>de</strong> información<br />
masiva, a través <strong>de</strong> re<strong>de</strong>s <strong>de</strong> comunicaciones <strong>de</strong> área amplia,<br />
heterogéneas y sobre las que no se ti<strong>en</strong>e control ni <strong>de</strong> los dispositivos<br />
<strong>de</strong> networking que la conforman, ni sobre su configuración. Esta<br />
información, ti<strong>en</strong>e como <strong>de</strong>stinatarios <strong>en</strong> multitud <strong>de</strong> ocasiones a más<br />
<strong>de</strong> un equipo al mismo tiempo.<br />
En concreto, el problema que se plantea es la distribución masiva <strong>de</strong><br />
gran<strong>de</strong>s volúm<strong>en</strong>es <strong>de</strong> información a través <strong>de</strong> re<strong>de</strong>s <strong>de</strong> comunicación<br />
heterogéneas, sobre las que no se ti<strong>en</strong>e ningún control, y dirigida a un<br />
también heterogéneo y variable conjunto <strong>de</strong> nodos <strong>de</strong>stino.<br />
Las características que <strong>de</strong>scrib<strong>en</strong> el problema y que se ilustran <strong>en</strong> la<br />
Fig. 1 son:<br />
• Des<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong>l usuario final, la información a difundir<br />
se almac<strong>en</strong>a <strong>en</strong> forma <strong>de</strong> paquetes software <strong>de</strong> información. Cada<br />
paquete supone una unidad funcional in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te y pue<strong>de</strong> ser<br />
<strong>en</strong>capsulada <strong>en</strong> un único archivo.<br />
• Los paquetes software pue<strong>de</strong>n residir <strong>en</strong> más <strong>de</strong> una ubicación (o<br />
nodo <strong>de</strong> red). Cada nodo que conti<strong>en</strong>e información se <strong>de</strong>nomina<br />
repositorio software. Es <strong>de</strong>s<strong>de</strong> estos repositorios <strong>de</strong>s<strong>de</strong> los que<br />
<strong>de</strong>be difundirse la información hacia los difer<strong>en</strong>tes nodos. Estos<br />
nodos receptores <strong>de</strong> información repres<strong>en</strong>tan los cli<strong>en</strong>tes <strong>de</strong>l<br />
servicio <strong>de</strong> difusión.<br />
• Cada paquete conti<strong>en</strong>e información <strong>de</strong> carácter g<strong>en</strong>érico, <strong>en</strong><br />
formato compactado y codificado. En g<strong>en</strong>eral se <strong>de</strong>be asumir que<br />
son <strong>de</strong> gran tamaño, normalm<strong>en</strong>te <strong>de</strong> ci<strong>en</strong>tos <strong>de</strong> megabytes,<br />
pot<strong>en</strong>cialm<strong>en</strong>te pue<strong>de</strong>n ser <strong>de</strong> cualquier tamaño. En una sesión <strong>de</strong><br />
difusión pue<strong>de</strong>n verse implicados un gran volum<strong>en</strong> <strong>de</strong> paquetes<br />
software <strong>de</strong> difer<strong>en</strong>tes características. Puesto que la información es<br />
<strong>de</strong> carácter totalm<strong>en</strong>te g<strong>en</strong>eral, no pue<strong>de</strong> hacerse uso <strong>de</strong> su<br />
estructura o cont<strong>en</strong>ido para mejorar las características <strong>de</strong> la<br />
difusión o <strong>de</strong> su compresión, como ocurre <strong>en</strong> otros casos; por<br />
ejemplo, <strong>en</strong> el streaming <strong>de</strong> ví<strong>de</strong>o.
• Los cli<strong>en</strong>tes que <strong>de</strong>mandan la información repres<strong>en</strong>tan un conjunto<br />
heterogéneo <strong>de</strong> nodos. Esta diversidad se materializa <strong>en</strong> diversos<br />
aspectos: <strong>de</strong>s<strong>de</strong> su arquitectura, sistema operativo y configuración<br />
tanto software como hardware; pasando por sus difer<strong>en</strong>tes<br />
velocida<strong>de</strong>s <strong>de</strong> transmisión; hasta su funcionalidad. La distancia<br />
<strong>en</strong>tre el emisor y cada cli<strong>en</strong>te podrá ser difer<strong>en</strong>te.<br />
• Para una <strong>de</strong>terminada sesión <strong>de</strong> difusión, el conjunto <strong>de</strong> receptores<br />
pue<strong>de</strong> estar constituido <strong>de</strong>s<strong>de</strong> por un único cli<strong>en</strong>te hasta por un<br />
elevado número <strong>de</strong> nodos (siempre mant<strong>en</strong>i<strong>en</strong>do su<br />
heterog<strong>en</strong>eidad).<br />
• La información <strong>de</strong>be trasladarse a través <strong>de</strong> re<strong>de</strong>s <strong>de</strong><br />
comunicaciones globales, compuestas por dispositivos <strong>de</strong><br />
networking heterogéneos, sobre los que no se ti<strong>en</strong>e, <strong>en</strong> g<strong>en</strong>eral,<br />
control, ni capacidad <strong>de</strong> configuración o administración. Esta<br />
circunstancia impi<strong>de</strong> que se pueda proporcionar calidad <strong>de</strong> servicio<br />
(QoS), realizar reservas <strong>de</strong> ancho <strong>de</strong> banda, utilizar canales fijos, o<br />
mant<strong>en</strong>er las características <strong>de</strong> una comunicación a lo largo <strong>de</strong> todo<br />
el proceso.<br />
o La solución <strong>de</strong>berá ser in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong> la infraestructura<br />
<strong>de</strong> red sobre la que se opere. La información podrá viajar<br />
por difer<strong>en</strong>tes tipos <strong>de</strong> arquitecturas y tecnologías <strong>de</strong> red.<br />
o La topología <strong>de</strong> la red <strong>de</strong> trabajo es variable, pudiéndose<br />
dar cualquier tipo <strong>de</strong> distribución <strong>en</strong>tre las difer<strong>en</strong>tes<br />
subre<strong>de</strong>s que la compongan.<br />
o La velocidad <strong>de</strong> la red podrá variar <strong>en</strong> función <strong>de</strong> la carga<br />
<strong>de</strong> la misma, pudiéndose dar casos <strong>de</strong> elevado uso e<br />
incluso <strong>de</strong> saturación.<br />
• La distribución <strong>de</strong> la información se realizará <strong>en</strong> el ámbito <strong>de</strong>l uso<br />
<strong>de</strong> protocolos <strong>de</strong> red normalizados, como pue<strong>de</strong> ser TCP/IP. La<br />
solución que se ofrezca <strong>de</strong>berá estar acor<strong>de</strong> a los estándares<br />
establecidos, no requiri<strong>en</strong>do la modificación <strong>de</strong> elem<strong>en</strong>tos como<br />
routers o pasarelas.
• La transfer<strong>en</strong>cia <strong>de</strong> un paquete software <strong>de</strong>be <strong>de</strong> ser confiable, <strong>de</strong><br />
manera que se pueda <strong>de</strong>terminar tanto la correcta recepción <strong>de</strong>l<br />
mismo, como que dicha recepción se realiza <strong>de</strong>ntro <strong>de</strong> unos límites<br />
<strong>de</strong> tiempo establecidos.<br />
• Cuando así se requiera, <strong>de</strong>berá po<strong>de</strong>r garantizarse la privacidad <strong>de</strong><br />
la comunicación. Puesto que la información <strong>de</strong>be viajar por medios<br />
sobre los que no se ti<strong>en</strong>e control, se <strong>de</strong>b<strong>en</strong> aplicar técnicas <strong>de</strong><br />
codificación que asegur<strong>en</strong>:<br />
o Al emisor, que la información se dirige al <strong>de</strong>stinatario<br />
<strong>de</strong>seado.<br />
o Al receptor, que dicha información provi<strong>en</strong>e <strong>de</strong>l emisor<br />
esperado.<br />
o A ambos, que la comunicación es privada.<br />
2 Antece<strong>de</strong>ntes<br />
La mayoría <strong>de</strong> los procesos y tecnologías <strong>de</strong> transfer<strong>en</strong>cia <strong>de</strong><br />
información <strong>en</strong>tre equipos utilizando re<strong>de</strong>s <strong>de</strong> computadores han<br />
estado marcados por el uso <strong>de</strong> protocolos fundam<strong>en</strong>tados,<br />
principalm<strong>en</strong>te, <strong>en</strong> técnicas unicast, don<strong>de</strong> el traspaso <strong>de</strong> la<br />
información se realiza <strong>en</strong>tre dos únicos nodos [2].<br />
Otros protocolos, principalm<strong>en</strong>te <strong>de</strong>stinados a procesos <strong>de</strong> control <strong>de</strong><br />
la red [3][4][5], utilizan técnicas <strong>de</strong> broadcast don<strong>de</strong> la información es<br />
<strong>en</strong>viada por un único nodo orig<strong>en</strong>, si<strong>en</strong>do su <strong>de</strong>stino todos los nodos<br />
<strong>de</strong> la red (normalm<strong>en</strong>te <strong>en</strong> el ámbito <strong>de</strong> las re<strong>de</strong>s locales). Estas<br />
tecnologías aprovechan las características que algunos medios ti<strong>en</strong><strong>en</strong><br />
para la difusión <strong>de</strong> información, <strong>de</strong> manera que la información es<br />
<strong>en</strong>viada una sola vez, pudi<strong>en</strong>do llegar <strong>en</strong> una misma transacción a<br />
todos los compon<strong>en</strong>tes <strong>de</strong> la red y reduci<strong>en</strong>do así el trafico <strong>de</strong> red.<br />
Protocolos como TCP/IP [6] basan su filosofía <strong>de</strong> trabajo <strong>en</strong> estas<br />
técnicas, proporcionando a las aplicaciones una capa <strong>de</strong> servicios<br />
mediante la cual po<strong>de</strong>r establecer transfer<strong>en</strong>cia <strong>de</strong> información <strong>en</strong>tre
nodos, con un esquema ori<strong>en</strong>tado a conexión (TCP) o no (UDP).<br />
Mediante estos protocolos se pue<strong>de</strong> satisfacer la mayoría <strong>de</strong> los<br />
requerimi<strong>en</strong>tos <strong>de</strong> las aplicaciones que necesitan una comunicación<br />
bidireccional <strong>en</strong>tre equipos.<br />
Sin embargo y motivado principalm<strong>en</strong>te por la aparición e increm<strong>en</strong>to<br />
<strong>de</strong>l uso <strong>de</strong> los recursos multimedia, que com<strong>en</strong>zó a afianzarse <strong>en</strong> los<br />
años 90, surg<strong>en</strong> una serie <strong>de</strong> nuevos requerimi<strong>en</strong>tos <strong>en</strong> las<br />
comunicaciones que precisan <strong>de</strong> un cambio filosófico <strong>en</strong> la manera <strong>de</strong><br />
transmitir la información [7].<br />
Las características <strong>de</strong> estos nuevos sistemas <strong>de</strong> transfer<strong>en</strong>cia son, por<br />
una parte, la gran cantidad <strong>de</strong> información a transmitir y, por otra, el<br />
elevado numero <strong>de</strong> equipos a los que va <strong>de</strong>stinada dicha información,<br />
<strong>en</strong> algunos casos <strong>de</strong>l or<strong>de</strong>n <strong>de</strong> miles o incluso millones <strong>de</strong> receptores.<br />
Mediante una transfer<strong>en</strong>cia unicast clásica obt<strong>en</strong>dríamos resultados<br />
<strong>de</strong>sfavorables ya que habría que repetir la transfer<strong>en</strong>cia <strong>de</strong> la<br />
información por cada uno <strong>de</strong> los <strong>de</strong>stinatarios, con lo que el resultado<br />
sería un proceso global l<strong>en</strong>to y sobre todo poco escalable. Se hace<br />
necesario pues introducir nuevos mo<strong>de</strong>los <strong>de</strong> trabajo que permitan<br />
aprovechar mejor el uso <strong>de</strong> la red.<br />
Multicast es una tecnología que nos permite transferir la información<br />
<strong>de</strong>s<strong>de</strong> un emisor a un conjunto <strong>de</strong>terminado <strong>de</strong> <strong>de</strong>stinatarios. El uso<br />
<strong>de</strong> técnicas multicast para la transmisión <strong>de</strong> archivos a más <strong>de</strong> un<br />
cli<strong>en</strong>te mejora sustancialm<strong>en</strong>te el r<strong>en</strong>dimi<strong>en</strong>to ya que el equipo orig<strong>en</strong><br />
emite la información una única vez, evitando la repetición <strong>de</strong> la<br />
información a transmitir. Estas técnicas son mucho más escalables a la<br />
hora <strong>de</strong> distribuir la información ya que el <strong>en</strong>vío <strong>de</strong> los datos no es<br />
<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong>l número <strong>de</strong> <strong>de</strong>stinatarios [8].<br />
Una utilización clara <strong>de</strong>l uso <strong>de</strong>l multicast, y precursora <strong>en</strong> cierta<br />
manera <strong>de</strong> su <strong>de</strong>sarrollo, es el streaming <strong>de</strong> audio o vi<strong>de</strong>o. En este tipo<br />
<strong>de</strong> aplicaciones un servidor emite <strong>de</strong> manera continua un flujo <strong>de</strong><br />
paquetes cont<strong>en</strong>i<strong>en</strong>do la información multimedia que los cli<strong>en</strong>tes<br />
<strong>de</strong>b<strong>en</strong> pres<strong>en</strong>tar. Los cli<strong>en</strong>tes, según van recibi<strong>en</strong>do estos paquetes,<br />
van reproduci<strong>en</strong>do la información <strong>en</strong> tiempo real <strong>en</strong> función <strong>de</strong> su tipo<br />
y el dispositivo final <strong>en</strong> el que se está pres<strong>en</strong>tando. En caso <strong>de</strong> que se
pierda uno o más paquetes <strong>de</strong> la secu<strong>en</strong>cia, el cli<strong>en</strong>te lo refleja<br />
mediante una pausa puntual <strong>en</strong> la reproducción o un <strong>de</strong>crem<strong>en</strong>to <strong>de</strong> la<br />
calidad, resolución o frecu<strong>en</strong>cia <strong>de</strong>l cont<strong>en</strong>ido. Esto es posible ya que<br />
exist<strong>en</strong> codificaciones <strong>de</strong> cont<strong>en</strong>idos multimedia que nos permit<strong>en</strong><br />
realizar su reproducción <strong>en</strong> condiciones <strong>de</strong> pérdida <strong>de</strong> información. En<br />
cualquier caso el cli<strong>en</strong>te normalm<strong>en</strong>te no necesita comunicarse con el<br />
equipo orig<strong>en</strong> para informar <strong>de</strong> la pérdida <strong>de</strong> datos, es <strong>de</strong>cir, se trata<br />
<strong>de</strong> una comunicación unidireccional y no confiable. Usando este tipo<br />
<strong>de</strong> comunicación el sistema es altam<strong>en</strong>te escalable ya que la<br />
transmisión se realiza <strong>de</strong> manera in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te al número <strong>de</strong><br />
<strong>de</strong>stinatarios.<br />
Sin embargo, <strong>en</strong> otros esc<strong>en</strong>arios necesitamos que el sistema sea<br />
confiable, es <strong>de</strong>cir, t<strong>en</strong>emos que asegurar la total recepción <strong>de</strong> la<br />
información por parte <strong>de</strong> los <strong>de</strong>stinatarios. Pongamos como ejemplo<br />
un servidor <strong>de</strong> software que necesita <strong>en</strong>viar la instalación <strong>de</strong> una<br />
aplicación a ci<strong>en</strong>tos o miles <strong>de</strong> cli<strong>en</strong>tes. Al final <strong>de</strong> la transmisión<br />
t<strong>en</strong>emos que asegurar que todos los cli<strong>en</strong>tes han recibido la totalidad<br />
<strong>de</strong>l paquete software. En estos casos la escalabilidad <strong>de</strong>l sistema está<br />
más cuestionada, ya que la simple confirmación <strong>de</strong> la recepción <strong>de</strong> la<br />
información se multiplica por el número <strong>de</strong> cli<strong>en</strong>tes, por lo que se<br />
pu<strong>de</strong> saturar la red con los paquetes <strong>de</strong> control.<br />
La Tabla 1 muestra una distribución <strong>de</strong> los difer<strong>en</strong>tes tipos <strong>de</strong><br />
aplicaciones que nos po<strong>de</strong>mos <strong>en</strong>contrar <strong>en</strong> función <strong>de</strong>l tipo <strong>de</strong> datos<br />
y el tipo <strong>de</strong> transmisión.<br />
Tabla 1. Tipos <strong>de</strong> aplicaciones multicast.<br />
En tiempo real Sin tiempo real<br />
Multimedia Streaming <strong>de</strong> vi<strong>de</strong>o<br />
Streaming <strong>de</strong> audio<br />
Vi<strong>de</strong>oconfer<strong>en</strong>cia<br />
Datos<br />
Distribución <strong>de</strong> noticias<br />
Juegos interactivos<br />
M<strong>en</strong>sajería instantánea<br />
Descarga <strong>de</strong> vi<strong>de</strong>o<br />
Descarga <strong>de</strong> música<br />
Replicación <strong>de</strong> repositorios multimedia<br />
Descarga <strong>de</strong> archivos<br />
Bases <strong>de</strong> datos replicadas<br />
Distribución <strong>de</strong> software<br />
Re<strong>de</strong>s <strong>de</strong> compartición <strong>de</strong> archivos
2.1 Multicast sobre IP<br />
En el caso <strong>de</strong>l protocolo IP el soporte para multicast fue implem<strong>en</strong>tado<br />
por primera vez <strong>en</strong> el año 1993 mediante una ampliación <strong>de</strong> dicho<br />
protocolo.<br />
El funcionami<strong>en</strong>to <strong>de</strong>l multicast sobre IP está fundam<strong>en</strong>tado <strong>en</strong> la<br />
suscripción a grupos <strong>de</strong> difusión [9]. Cada grupo <strong>de</strong> difusión esta<br />
asociado a una dirección IP que lo i<strong>de</strong>ntifica. Para ello se reservaron un<br />
conjunto <strong>de</strong> direcciones IP <strong>de</strong>nominadas <strong>de</strong> ‘clase D’ <strong>de</strong>stinadas a las<br />
comunicaciones <strong>en</strong> multicast. En concreto, estas direcciones son<br />
aquéllas que empiezan con el prefijo ‘1110’, es <strong>de</strong>cir, las<br />
compr<strong>en</strong>didas <strong>en</strong> el rango <strong>de</strong> 224.0.0.0 a 239.255.255.255 (ver Tabla<br />
2). De este conjunto, las compr<strong>en</strong>didas <strong>en</strong>tre la dirección 224.0.0.0 y<br />
la 224.0.0.255 están reservadas para tareas administrativas y <strong>de</strong><br />
mant<strong>en</strong>imi<strong>en</strong>to multicast.<br />
Tabla 2. Distribución <strong>de</strong> direcciones IP<br />
Clase Prefijo Dirección inicial Dirección final<br />
A 0 0.0.0.0 127.255.255.255<br />
B 10 128.0.0.0 191.255.255.255<br />
C 110 192.0.0.0 223.255.255.255<br />
D 1110 224.0.0.0 239.255.255.255<br />
Un equipo que <strong>de</strong>sea recibir paquetes difundidos por otro equipo se<br />
suscribe a una <strong>de</strong>terminada dirección IP <strong>de</strong> multicast. A partir <strong>de</strong> ese<br />
mom<strong>en</strong>to el protocolo <strong>de</strong> red se <strong>en</strong>cargará no sólo <strong>de</strong> hacer llegar a<br />
las aplicaciones <strong>de</strong>l equipo los paquetes <strong>de</strong>stinados a la propia<br />
dirección IP <strong>de</strong>l equipo, sino que también hará llegar los paquetes<br />
<strong>de</strong>stinados a las direcciones IP multicast a las que el equipo se ha<br />
suscrito. En cualquier mom<strong>en</strong>to el equipo podrá darse <strong>de</strong> baja <strong>de</strong> un<br />
grupo <strong>de</strong> difusión, con lo que <strong>de</strong>jaría <strong>de</strong> recibir los paquetes <strong>en</strong>viados<br />
a la dirección IP asociada.<br />
Por otra parte el equipo que <strong>de</strong>see <strong>en</strong>viar un paquete al grupo <strong>de</strong><br />
difusión simplem<strong>en</strong>te t<strong>en</strong>drá que <strong>en</strong>viar el paquete a la dirección IP
asociada al grupo, como si la dirección se correspondiera a un nodo<br />
más <strong>de</strong> la red.<br />
El multicast para IP está disponible tanto para el <strong>en</strong>vío <strong>de</strong> paquetes IP<br />
como para paquetes UDP. Evi<strong>de</strong>ntem<strong>en</strong>te con TCP no se pue<strong>de</strong> realizar<br />
multicast ya que se trata <strong>de</strong> un protocolo confiable ori<strong>en</strong>tado a la<br />
conexión <strong>en</strong>tre dos nodos. Con el uso <strong>de</strong> UDP obt<strong>en</strong>emos<br />
principalm<strong>en</strong>te dos v<strong>en</strong>tajas respecto a usar simplem<strong>en</strong>te IP:<br />
conseguimos una multiplexación por aplicación mediante el uso <strong>de</strong> los<br />
puertos <strong>de</strong> comunicaciones y po<strong>de</strong>mos establecer un código <strong>de</strong><br />
<strong>de</strong>tección <strong>de</strong> errores (checksum) para los datos.<br />
Para conseguir que los paquetes emitidos <strong>de</strong>s<strong>de</strong> un nodo llegu<strong>en</strong> a<br />
todos los nodos suscritos al grupo multicast, los nodos y routers que<br />
soportan multicast se comunican mediante un protocolo <strong>de</strong>nominado<br />
Internet Group Managem<strong>en</strong>t Protocol – IGMP [6]. Mediante IGMP se<br />
actualizan las tablas <strong>de</strong> <strong>en</strong>rutami<strong>en</strong>to <strong>de</strong> los routers, <strong>de</strong> manera que<br />
durante la transmisión multicast éstos pue<strong>de</strong>n t<strong>en</strong>er la información<br />
necesaria para difundir la información a<strong>de</strong>cuadam<strong>en</strong>te. Cada vez que<br />
un nodo se incorpora o abandona un grupo informa mediante este<br />
protocolo su interés o no <strong>en</strong> recibir paquetes <strong>de</strong>stinados a la dirección<br />
IP asociada.<br />
Sin embargo <strong>en</strong> la actualidad ni todos los equipos ni todos los routers<br />
soportan el multicast ya que no es obligatorio <strong>en</strong> la especificación IPv4<br />
(<strong>en</strong> IPv6 si es obligatorio), con lo que <strong>en</strong> un principio esto impediría el<br />
uso <strong>de</strong> esta tecnología <strong>en</strong>tre algunos equipos. Para solucionarlo pu<strong>de</strong><br />
utilizarse MBONE (Multicast Backbone).<br />
Mediante MBONE [10], cuando un paquete multicast <strong>de</strong>be traspasar un<br />
router que no soporta multicast, el paquete es <strong>en</strong>capsulado <strong>en</strong> un<br />
paquete unicast (IP <strong>de</strong>ntro <strong>de</strong> IP) <strong>de</strong> manera que pue<strong>de</strong> transportarse<br />
sin problemas por cualquier ruta. Posteriorm<strong>en</strong>te, <strong>en</strong> el router <strong>de</strong>stino,<br />
el paquete será recompuesto para obt<strong>en</strong>er el paquete original. Los dos<br />
extremos que conviert<strong>en</strong> <strong>de</strong> multicast a unicast y <strong>de</strong> nuevo a multicast<br />
<strong>de</strong>fin<strong>en</strong> lo que se <strong>de</strong>nomina un túnel multicast.
Los túneles <strong>en</strong>lazan lo que se podría <strong>de</strong>nominar islas multicast, por lo<br />
que, <strong>en</strong> conjunto, MBONE establece una red virtual <strong>de</strong> comunicación<br />
multicast.<br />
2.2 Confiabilidad<br />
En comunicaciones, la confiabilidad hace refer<strong>en</strong>cia a las<br />
transfer<strong>en</strong>cias <strong>en</strong> las que la información <strong>de</strong>be llegar <strong>de</strong> manera<br />
completa al <strong>de</strong>stinatario para ser útil [11]. Cuando por cualquier<br />
motivo la información no ha sido <strong>en</strong>tregada completam<strong>en</strong>te, <strong>de</strong>be<br />
informarse <strong>de</strong>l fallo a los compon<strong>en</strong>tes <strong>de</strong> la comunicación<br />
(normalm<strong>en</strong>te al emisor). Si <strong>en</strong> el proceso <strong>de</strong> comunicación no se<br />
pue<strong>de</strong> garantizar la <strong>en</strong>trega <strong>de</strong> la información, se consi<strong>de</strong>ra que es una<br />
transmisión no confiable. Si nos fijamos <strong>en</strong> la Tabla 1 solam<strong>en</strong>te la<br />
cuadrícula<br />
confiables.<br />
superior izquierda correspon<strong>de</strong> a aplicaciones no<br />
En una transmisión confiable clásica, para asegurar la recepción <strong>de</strong> la<br />
información, una <strong>de</strong> las técnicas más utilizadas es el uso <strong>de</strong> los<br />
paquetes <strong>de</strong> confirmación (ACK’s). En este esquema el emisor es el<br />
responsable <strong>de</strong> realizar la corrección <strong>de</strong> errores.<br />
Mediante el uso <strong>de</strong> los ACK’s no sólo conseguimos una transmisión<br />
confiable, también conseguimos una sincronización <strong>en</strong>tre el emisor y<br />
el receptor, dado que el emisor no <strong>en</strong>vía un nuevo paquete hasta que<br />
no ha confirmado la recepción <strong>de</strong>l anterior.<br />
El uso <strong>de</strong> estas técnicas basadas <strong>en</strong> los paquetes <strong>de</strong> confirmación para<br />
conseguir una comunicación confiable trasladada al caso <strong>de</strong>l multicast<br />
conlleva un gran problema: la falta <strong>de</strong> escalabilidad. Supongamos que<br />
un emisor <strong>en</strong>vía un paquete a un conjunto <strong>de</strong> N receptores. Cuando el<br />
paquete es recibido por los receptores se g<strong>en</strong>eran N ACK’s informando<br />
al emisor <strong>de</strong> su correcta recepción. Esto, para un número <strong>de</strong><br />
receptores elevado, provocaría que tanto la red como el emisor se<br />
saturas<strong>en</strong> con los paquetes <strong>de</strong> control. Es más, posiblem<strong>en</strong>te, el alto<br />
número <strong>de</strong> paquetes haría que muchos <strong>de</strong> ellos se perdieran o fueran<br />
<strong>de</strong>scartados por el emisor <strong>de</strong>bido a dicha saturación, con lo que se
g<strong>en</strong>erarían más re<strong>en</strong>víos <strong>de</strong> paquetes, empeorando aún más, si cabe,<br />
la situación.<br />
Es necesario, pues, aplicar otro tipo <strong>de</strong> técnicas que aport<strong>en</strong><br />
soluciones más escalables a la hora <strong>de</strong> transmitir información <strong>de</strong><br />
forma confiable mediante multicast.<br />
2.3 Protocolo <strong>de</strong> transporte multicast<br />
A la hora <strong>de</strong> resolver un problema mediante el uso <strong>de</strong> técnicas<br />
multicast confiable, los diseñadores optan por realizar una <strong>de</strong> las dos<br />
sigui<strong>en</strong>tes estrategias: crear una capa <strong>de</strong> transporte g<strong>en</strong>érica que<br />
resuelva <strong>de</strong> manera g<strong>en</strong>eral el problema <strong>de</strong> la comunicación multicast<br />
o crear un protocolo que resuelva las necesida<strong>de</strong>s particulares que<br />
requiere cada aplicación [12].<br />
Con la primera opción se pret<strong>en</strong><strong>de</strong> conseguir un protocolo lo<br />
sufici<strong>en</strong>tem<strong>en</strong>te abierto como para po<strong>de</strong>r ser utilizado por cualquier<br />
aplicación que requiera una comunicación multicast y confiable, <strong>de</strong><br />
igual manera que TCP proporciona análogas características <strong>en</strong> unicast.<br />
Si TCP nos ofrece una capa <strong>de</strong> transporte que realiza una corrección<br />
<strong>de</strong> errores y una or<strong>de</strong>nación <strong>de</strong> los paquetes <strong>en</strong>viados, las<br />
características que <strong>de</strong>bería aportar un protocolo g<strong>en</strong>érico <strong>de</strong> multicast<br />
confiable serían:<br />
• Sincronización <strong>en</strong> la comunicación: control <strong>de</strong>l ratio <strong>de</strong> <strong>en</strong>vío <strong>en</strong><br />
función <strong>de</strong> la velocidad <strong>de</strong> lectura <strong>de</strong> los receptores y la saturación<br />
<strong>de</strong> la red.<br />
• Escalabilidad: in<strong>de</strong>p<strong>en</strong><strong>de</strong>ncia respecto <strong>de</strong>l número <strong>de</strong> receptores.<br />
• Corrección <strong>de</strong> errores: control <strong>de</strong> paquetes perdidos <strong>en</strong> la<br />
comunicación.<br />
• Or<strong>de</strong>nación <strong>de</strong> paquetes: mant<strong>en</strong>imi<strong>en</strong>to <strong>en</strong> el <strong>de</strong>stino <strong>de</strong>l or<strong>de</strong>n<br />
secu<strong>en</strong>cial <strong>de</strong> los paquetes.<br />
• In<strong>de</strong>p<strong>en</strong><strong>de</strong>ncia <strong>de</strong> la red: transpar<strong>en</strong>cia ante las difer<strong>en</strong>tes<br />
topologías y arquitecturas <strong>de</strong> red.
Fig 2. Esquema <strong>de</strong> capas <strong>de</strong> un protocolo <strong>de</strong> transporte multicast y conjunto<br />
<strong>de</strong> carácterísticas<br />
Con la segunda estrategia conseguimos un protocolo que, si bi<strong>en</strong> no<br />
pu<strong>de</strong> ser usado por cualquier aplicación, sí nos aporta una solución<br />
optimizada para cada problema. Se pue<strong>de</strong> dar el caso <strong>de</strong> aplicaciones<br />
que, por ejemplo, no requieran una or<strong>de</strong>nación <strong>de</strong> paquetes, o que<br />
necesit<strong>en</strong> funcionar solam<strong>en</strong>te para una <strong>de</strong>terminada topología. En<br />
estos casos un protocolo específico podría dar mejores resultados que<br />
con una estrategia <strong>de</strong> carácter g<strong>en</strong>eral. En otros casos se hace<br />
necesaria la utilización <strong>de</strong> protocolos específicos, ya que se dan<br />
condiciones <strong>de</strong>terminantes para su uso, como podría ser el caso <strong>de</strong><br />
comunicaciones don<strong>de</strong> no existe un canal <strong>de</strong> retorno.<br />
2.4 Escalabilidad<br />
Como hemos visto, la principal causa <strong>de</strong> la falta <strong>de</strong> escalabilidad <strong>en</strong> la<br />
transmisión multicast confiable es el problema con la información <strong>de</strong><br />
vuelta, es <strong>de</strong>cir, <strong>de</strong> los paquetes <strong>de</strong> control que <strong>en</strong>vían los receptores<br />
al emisor. Por muy poca que sea esta información, si el número <strong>de</strong><br />
receptores llega a ser muy alto, el emisor terminaría por saturarse, con<br />
lo que no se podría garantizar la escalabilidad <strong>de</strong> la comunicación<br />
[13].
Para evitar esta saturación <strong>en</strong> el canal <strong>de</strong> retorno, una <strong>de</strong> las técnicas<br />
que suel<strong>en</strong> aplicarse es cambiar las confirmaciones por paquetes <strong>de</strong><br />
información <strong>de</strong> pérdidas (NACK’s) [11].<br />
En casos <strong>de</strong> pocas pérdidas <strong>en</strong> la comunicación, esta técnica reduce<br />
drásticam<strong>en</strong>te la información <strong>de</strong> control <strong>en</strong> la comunicación e incluso,<br />
<strong>en</strong> casos óptimos, podría evitarse totalm<strong>en</strong>te.<br />
Sin embargo la falta <strong>de</strong> confirmación por parte <strong>de</strong> los receptores<br />
produce una serie <strong>de</strong> inconv<strong>en</strong>i<strong>en</strong>tes. En el caso <strong>de</strong> que por ejemplo <strong>en</strong><br />
todo el proceso <strong>de</strong> transmisión no se produzca la recepción por parte<br />
<strong>de</strong>l emisor <strong>de</strong> ningún paquete NACK, no significa que todos los<br />
paquetes <strong>de</strong> datos hayan sido recibidos por todos los receptores;<br />
pue<strong>de</strong> existir algún problema <strong>en</strong> el canal <strong>de</strong> vuelta que evite la<br />
recepción <strong>de</strong> dichos paquetes. Por lo tanto, con el simple uso <strong>de</strong> los<br />
paquetes NACK no se pue<strong>de</strong> garantizar la confiabilidad <strong>de</strong> la<br />
comunicación. Una posible solución a este problema sería el <strong>en</strong>vío <strong>de</strong><br />
un único paquete <strong>de</strong> confirmación al final <strong>de</strong> toda la transmisión, <strong>de</strong><br />
manera que el servidor tuviera la seguridad <strong>de</strong> la correcta recepción <strong>de</strong><br />
la información. Esto implicaría una pérdida <strong>de</strong> escalabilidad por la<br />
<strong>de</strong>p<strong>en</strong><strong>de</strong>ncia que volveríamos a t<strong>en</strong>er <strong>de</strong>l número <strong>de</strong> receptores, si<br />
bi<strong>en</strong> este <strong>en</strong>vío sería único y localizado siempre al final <strong>de</strong> la<br />
transmisión.<br />
2.5 Control <strong>de</strong> flujo<br />
Otro <strong>de</strong> los problemas que se plantea con el cambio <strong>de</strong> ACK’s por<br />
NACK’s es la pérdida <strong>de</strong> la sincronización <strong>en</strong> la comunicación. Si bi<strong>en</strong><br />
mediante el uso <strong>de</strong> las confirmaciones el emisor y el receptor se<br />
<strong>en</strong>cu<strong>en</strong>tran siempre acompasados <strong>en</strong> el flujo <strong>de</strong> la transmisión ya que<br />
el emisor no <strong>en</strong>vía el sigui<strong>en</strong>te paquete hasta no t<strong>en</strong>er confirmado el<br />
anterior, con el uso <strong>de</strong> NACK’s esto no pue<strong>de</strong> realizarse. Mi<strong>en</strong>tras el<br />
emisor difun<strong>de</strong> los paquetes <strong>de</strong> datos no ti<strong>en</strong>e información sobre el<br />
estado ni la cantidad <strong>de</strong> paquetes recibidos por cada receptor. El<br />
principal problema que se <strong>de</strong>riva <strong>de</strong> esta situación es una falta <strong>en</strong> el<br />
control <strong>de</strong> flujo o ratio <strong>de</strong> transmisión, es <strong>de</strong>cir, el emisor podría estar
difundi<strong>en</strong>do los paquetes a una velocidad superior a la que algunos<br />
receptores podrían estar ley<strong>en</strong>do, o por el contrario, el canal podría<br />
estar <strong>de</strong>saprovechado al usar un ratio muy bajo. Este inconv<strong>en</strong>i<strong>en</strong>te<br />
también ocurriría si alguno <strong>de</strong> los routers intermedios sufriera un<br />
problema parecido y <strong>de</strong>scartara algunos <strong>de</strong> los paquetes <strong>de</strong> datos por<br />
falta <strong>de</strong> capacidad. Las consecu<strong>en</strong>cias <strong>de</strong> estas pérdidas (ya sea <strong>en</strong> el<br />
<strong>de</strong>stino como <strong>en</strong> los routers intermedios) son nefastas: algunos<br />
<strong>de</strong>stinatarios <strong>de</strong>tectarían <strong>de</strong> manera sistemática huecos <strong>en</strong> la<br />
secu<strong>en</strong>cia <strong>de</strong> recepción y saturarían al servidor con paquetes NACK.<br />
Este ciclo <strong>de</strong> continuas pérdidas y solicitu<strong>de</strong>s <strong>de</strong> re<strong>en</strong>vío producirían<br />
una clara inestabilidad <strong>en</strong> la comunicación [14].<br />
Utilizando ratios <strong>de</strong> <strong>en</strong>vío muy bajos o al m<strong>en</strong>os tan bajos como el<br />
ratio <strong>de</strong> recepción <strong>de</strong>l <strong>de</strong>stinatario más l<strong>en</strong>to tampoco solucionaría el<br />
problema. T<strong>en</strong>gamos <strong>en</strong> cu<strong>en</strong>ta que la red por la que viajan los<br />
paquetes es un medio variable con periodos <strong>de</strong> mucho uso o<br />
saturación y don<strong>de</strong> normalm<strong>en</strong>te no se pue<strong>de</strong> garantizar un<br />
<strong>de</strong>terminado ancho <strong>de</strong> banda. Por lo tanto es necesario plantear<br />
técnicas que se adapt<strong>en</strong> a las necesida<strong>de</strong>s puntuales <strong>de</strong> la red, <strong>en</strong> las<br />
que el emisor ajuste automáticam<strong>en</strong>te el ratio <strong>de</strong> <strong>en</strong>vío según las<br />
circunstancias y las características <strong>de</strong> los <strong>de</strong>stinatarios.<br />
2.6 Seguridad<br />
La seguridad <strong>en</strong> la comunicación es un aspecto que se complica aun<br />
más con el uso <strong>de</strong> las técnicas multicast. En una comunicación unicast<br />
don<strong>de</strong> los paquetes ti<strong>en</strong><strong>en</strong> un orig<strong>en</strong> y un único <strong>de</strong>stino, para que un<br />
tercer elem<strong>en</strong>to pueda t<strong>en</strong>er acceso a la información, se requiere el<br />
uso <strong>de</strong> técnicas <strong>de</strong> espionaje como pue<strong>de</strong>n ser la suplantación <strong>de</strong><br />
i<strong>de</strong>ntidad (suplantación IP) o la escucha promiscua <strong>de</strong>l medio físico<br />
(sniffer). Sin embargo, con multicast, esto mismo se pue<strong>de</strong> realizar <strong>de</strong><br />
manera mucho más s<strong>en</strong>cilla ya que bastaría con incorporarse al grupo<br />
<strong>de</strong> difusión para t<strong>en</strong>er acceso a los paquetes <strong>en</strong>viados por el emisor.<br />
Se trata pues <strong>de</strong> una transmisión pública don<strong>de</strong> el emisor no establece<br />
los receptores <strong>de</strong> sus paquetes, al estilo <strong>de</strong> cómo ocurre, por ejemplo,
<strong>en</strong> la transmisión <strong>de</strong> las señales <strong>de</strong> televisión. Al igual que <strong>en</strong> este<br />
último caso, si queremos t<strong>en</strong>er canales privados o <strong>de</strong> pago<br />
(transmisión <strong>de</strong> información segura), necesitamos aplicar algoritmos<br />
<strong>de</strong> codificación <strong>de</strong> la señal transmitida (procesos <strong>de</strong> cifrado <strong>de</strong> los<br />
datos) [8].<br />
Para el establecimi<strong>en</strong>to <strong>de</strong> unos niveles <strong>de</strong> seguridad a<strong>de</strong>cuados <strong>en</strong> la<br />
transmisión multicast se <strong>de</strong>be contemplar principalm<strong>en</strong>te los<br />
sigui<strong>en</strong>tes aspectos:<br />
• Cifrado: la información emitida <strong>de</strong>be <strong>de</strong> protegerse con<br />
mecanismos <strong>de</strong> cifrado que evit<strong>en</strong> su tratami<strong>en</strong>to por <strong>de</strong>stinatarios<br />
no permitidos.<br />
• Aut<strong>en</strong>ticidad: evitar que elem<strong>en</strong>tos externos o no permitidos <strong>de</strong> la<br />
comunicación puedan sustituir parte <strong>de</strong> la información emitida sin<br />
que los miembros <strong>de</strong> la transmisión lo <strong>de</strong>tect<strong>en</strong>.<br />
• Aut<strong>en</strong>ticación: los miembros <strong>de</strong> la comunicación ti<strong>en</strong><strong>en</strong> que ser<br />
<strong>de</strong>bidam<strong>en</strong>te i<strong>de</strong>ntificados para evitar su suplantación<br />
2.7 Tipos <strong>de</strong> distribuciones<br />
Uno <strong>de</strong> los aspectos que más condicionan el mo<strong>de</strong>lo <strong>de</strong> comunicación<br />
ti<strong>en</strong>e que ver con el rol con el que actúa cada uno <strong>de</strong> sus miembros.<br />
Algunas <strong>de</strong> las configuraciones que se pue<strong>de</strong>n dar son:<br />
• Un emisor y varios receptores. En estos casos el papel <strong>de</strong> emisor y<br />
<strong>de</strong> receptor está totalm<strong>en</strong>te <strong>de</strong>finido. Hay un único orig<strong>en</strong> <strong>de</strong> datos<br />
que se c<strong>en</strong>traliza <strong>en</strong> el emisor y los receptores simplem<strong>en</strong>te ti<strong>en</strong><strong>en</strong><br />
capacidad <strong>de</strong> <strong>en</strong>viar paquetes <strong>de</strong> control.<br />
• Varios emisores y varios receptores. En este mo<strong>de</strong>lo son varios los<br />
elem<strong>en</strong>tos capaces <strong>de</strong> emitir información. Normalm<strong>en</strong>te existe un<br />
emisor principal que manda inicialm<strong>en</strong>te la información y un<br />
conjunto <strong>de</strong> nodos con capacidad <strong>de</strong> reemitirla para, por ejemplo,<br />
realizar labores <strong>de</strong> corrección <strong>de</strong> errores.<br />
• Todos emit<strong>en</strong> y recib<strong>en</strong>. Se trata <strong>de</strong> re<strong>de</strong>s <strong>de</strong> cooperación don<strong>de</strong><br />
todos los miembros son capaces <strong>de</strong> actuar como emisor y receptor.
La función <strong>de</strong> corrección <strong>de</strong> errores está distribuida al conjunto<br />
total <strong>de</strong> los miembros [11].<br />
2.8 Conocimi<strong>en</strong>to <strong>de</strong> los <strong>de</strong>stinatarios<br />
Según la información que ti<strong>en</strong>e el emisor sobre los receptores a los<br />
que van <strong>de</strong>stinados los paquetes <strong>de</strong> datos, podríamos clasificar las<br />
comunicaciones multicast <strong>en</strong> tres grupos difer<strong>en</strong>tes [12]:<br />
• Grupo <strong>de</strong> <strong>de</strong>stinatarios in<strong>de</strong>terminado. En este primer mo<strong>de</strong>lo el<br />
emisor no conocería ni el número ni la i<strong>de</strong>ntidad <strong>de</strong> los<br />
<strong>de</strong>stinatarios a los que va dirigida la información que está<br />
emiti<strong>en</strong>do. Un ejemplo claro <strong>de</strong> este tipo <strong>de</strong> comunicación sería la<br />
transmisión <strong>de</strong> audio o ví<strong>de</strong>o por internet, don<strong>de</strong> el emisor<br />
difundiría los paquetes <strong>de</strong> información sin t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta los<br />
<strong>de</strong>stinatarios <strong>de</strong> los mismos. A su vez, los receptores, podrían<br />
incorporarse y abandonar el grupo <strong>de</strong> difusión sin t<strong>en</strong>er que<br />
informar ni realizar ningún tipo <strong>de</strong> proceso <strong>de</strong> conexión con el<br />
emisor. Suele tratarse <strong>de</strong> comunicaciones don<strong>de</strong> no se requiere un<br />
canal <strong>de</strong> retorno, situaciones éstas comunes <strong>en</strong> caso <strong>de</strong><br />
infraestructuras altam<strong>en</strong>te asimétricas, como por ejemplo, la<br />
transmisión vía satélite, don<strong>de</strong> el canal <strong>de</strong> bajada ti<strong>en</strong>e un ancho <strong>de</strong><br />
banda muy superior al <strong>de</strong> subida y una lat<strong>en</strong>cia muy alta [15].<br />
• Grupo <strong>de</strong> <strong>de</strong>stinatarios abierto. En este tipo <strong>de</strong> comunicación el<br />
emisor dispone <strong>de</strong> información sobre los receptores a los que está<br />
dando cobertura, si bi<strong>en</strong> este grupo no está <strong>de</strong>terminado antes <strong>de</strong>l<br />
inicio <strong>de</strong> la comunicación. Según se va <strong>de</strong>sarrollando el proceso <strong>de</strong><br />
comunicación, el emisor va actualizando la lista <strong>de</strong> receptores, bi<strong>en</strong><br />
al recibir un primer paquete <strong>de</strong> un receptor (por ejemplo un NACK),<br />
bi<strong>en</strong> mediante el uso <strong>de</strong> procesos <strong>de</strong> control, como los <strong>de</strong> conexión<br />
y <strong>de</strong>sconexión, que utilizarían los receptores para informar al<br />
emisor. En este último caso se pue<strong>de</strong>n realizar también operaciones<br />
<strong>de</strong> validación para permitir el acceso o no al grupo. Para evitar que<br />
equipos no validados t<strong>en</strong>gan acceso a la información, <strong>en</strong> el proceso<br />
<strong>de</strong> conexión el emisor podría aportar elem<strong>en</strong>tos como claves <strong>de</strong>
cifrado o filtros <strong>de</strong> datos, sin los cuales no sería posible procesar<br />
los datos emitidos por el servidor.<br />
• Grupo <strong>de</strong> <strong>de</strong>stinatarios cerrado. Por último, <strong>en</strong> este mo<strong>de</strong>lo, el<br />
emisor conoce a priori los receptores <strong>de</strong> los datos, y solam<strong>en</strong>te<br />
permitiría la comunicación con estos receptores, ignorando<br />
cualquier paquete <strong>en</strong>viado por otros equipos. Durante todo el<br />
proceso <strong>de</strong> comunicación el conjunto <strong>de</strong> receptores no varía, <strong>de</strong><br />
manera que el emisor pue<strong>de</strong> utilizar esta información para prefijar<br />
algunos parámetros <strong>de</strong>l proceso <strong>de</strong> transfer<strong>en</strong>cia <strong>en</strong> función <strong>de</strong> la<br />
cantidad o características <strong>de</strong> los <strong>de</strong>stinatarios: ratio <strong>de</strong> <strong>en</strong>vío,<br />
tamaño <strong>de</strong> los paquetes, etc.<br />
2.9 Corrección prev<strong>en</strong>tiva<br />
Como hemos visto, el principal problema que se plantea <strong>en</strong> la<br />
comunicación multicast es la falta <strong>de</strong> escalabilidad: cuanto mayor es el<br />
número <strong>de</strong> receptores más alto es el volum<strong>en</strong> <strong>de</strong> paquetes <strong>de</strong> control.<br />
Para conseguir que el mo<strong>de</strong>lo <strong>de</strong> transmisión sea escalable, la solución<br />
más evi<strong>de</strong>nte que se pue<strong>de</strong> plantear es la reducción, i<strong>de</strong>alm<strong>en</strong>te la<br />
eliminación total, <strong>de</strong> los paquetes <strong>de</strong> control. Para ello se utilizan<br />
técnicas <strong>de</strong> corrección prev<strong>en</strong>tiva (Forward Error Correction o FEC).<br />
La i<strong>de</strong>a principal <strong>de</strong> estas técnicas es la sigui<strong>en</strong>te. Supongamos que el<br />
total <strong>de</strong> la información a trasmitir se fragm<strong>en</strong>ta <strong>en</strong> n paquetes <strong>de</strong><br />
datos. En función <strong>de</strong> esos paquetes se g<strong>en</strong>eran r paquetes <strong>de</strong><br />
recuperación, cont<strong>en</strong>i<strong>en</strong>do información redundante <strong>de</strong> los paquetes <strong>de</strong><br />
datos originales. El emisor manda tanto los paquetes <strong>de</strong> datos como<br />
los paquetes redundantes. Si un <strong>de</strong>stinatario no recibe uno <strong>de</strong> los<br />
paquetes <strong>de</strong> datos <strong>en</strong>viados, podrá reg<strong>en</strong>erarlo a partir <strong>de</strong> uno o más<br />
paquetes <strong>de</strong> recuperación, sin t<strong>en</strong>er así que solicitar el re<strong>en</strong>vío <strong>de</strong>l<br />
paquete perdido.<br />
I<strong>de</strong>alm<strong>en</strong>te la codificación <strong>de</strong> los paquetes <strong>de</strong> recuperación se<br />
realizaría <strong>de</strong> manera que, para reg<strong>en</strong>erar un conjunto <strong>de</strong> paquetes<br />
perdidos, se necesit<strong>en</strong> la misma cantidad <strong>de</strong> paquetes correctores.<br />
Una <strong>de</strong> las codificaciones más utilizadas y que cumple esta última
característica es la <strong>de</strong> Reed-Solomon [11]. Si embargo estas<br />
codificaciones conllevan un alta complejidad temporal para su cálculo<br />
(aum<strong>en</strong>ta expon<strong>en</strong>cialm<strong>en</strong>te con el número <strong>de</strong> paquetes), con lo que<br />
se p<strong>en</strong>aliza su uso <strong>en</strong> la mayoría <strong>de</strong> los casos. Para evitarlo, la<br />
información se agrupa <strong>en</strong> bloques <strong>de</strong> paquetes <strong>de</strong> datos sobre los que<br />
se computan localm<strong>en</strong>te los paquetes <strong>de</strong> recuperación. Por lo tanto los<br />
paquetes g<strong>en</strong>erados solam<strong>en</strong>te sirv<strong>en</strong> para recuperar pérdidas <strong>de</strong>ntro<br />
<strong>de</strong>l bloque <strong>de</strong> paquetes <strong>de</strong> datos que se utilizó para su g<strong>en</strong>eración. El<br />
tamaño <strong>de</strong> los bloques se <strong>de</strong>ci<strong>de</strong> <strong>en</strong> función <strong>de</strong> los límites que se<br />
quieran establecer, <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong> la capacidad <strong>de</strong> cómputo que se<br />
disponga.<br />
En la actualidad también se están aplicando FEC’s basados <strong>en</strong> la<br />
primitiva XOR, don<strong>de</strong> los tiempos <strong>de</strong> computo <strong>de</strong> los paquetes <strong>de</strong><br />
recuperación son bajos y <strong>de</strong> coste lineal. Por contra, con estas técnicas<br />
se requier<strong>en</strong> más paquetes <strong>de</strong> recuperación para reg<strong>en</strong>erar un paquete<br />
<strong>de</strong> datos, con lo que se increm<strong>en</strong>ta el volum<strong>en</strong> <strong>de</strong> información<br />
trasmitida.<br />
Incorporando FEC a la comunicación se logra una disminución, tanto<br />
<strong>en</strong> la cantidad <strong>de</strong> retransmisión <strong>de</strong> paquetes, como <strong>en</strong> la cantidad <strong>de</strong><br />
paquetes <strong>de</strong> control, con lo que se suele justificar el ancho <strong>de</strong> banda<br />
extra que se utiliza <strong>en</strong> la emisión <strong>de</strong> los paquetes <strong>de</strong> recuperación y,<br />
<strong>en</strong> el caso <strong>de</strong> las trasmisiones multicast, se consigue una mayor<br />
escalabilidad.<br />
Otra <strong>de</strong> las v<strong>en</strong>tajas que aporta estas técnicas es la reducción <strong>de</strong><br />
re<strong>en</strong>víos <strong>en</strong> el caso <strong>de</strong> pérdidas simultáneas <strong>en</strong> diversos <strong>de</strong>stinos. Si<br />
por ejemplo un receptor pier<strong>de</strong> un paquete <strong>de</strong> datos p1 y otro equipo<br />
pier<strong>de</strong> un segundo paquete p2 el emisor solam<strong>en</strong>te t<strong>en</strong>dría que<br />
retransmitir un único paquete r1 con el que ambos <strong>de</strong>stinatarios<br />
podrían recuperarse <strong>de</strong> su pérdida. En el caso <strong>de</strong> un esquema basado<br />
<strong>en</strong> XOR t<strong>en</strong>dríamos que el paquete <strong>de</strong> recuperación sería r1 = p1 XOR p2,<br />
con lo que el primer receptor calcularía p1 con r1 XOR p2 y el segundo<br />
realizaría r1 XOR p1 para calcular p2.
A<strong>de</strong>más <strong>de</strong>l tiempo <strong>de</strong> computo necesario, el uso <strong>de</strong> FEC’s también<br />
conlleva normalm<strong>en</strong>te la utilización <strong>de</strong> un buffer <strong>de</strong> trabajo sobre el<br />
que se van componi<strong>en</strong>do los paquetes redundantes.<br />
2.10 Uso <strong>de</strong> repres<strong>en</strong>tantes<br />
Otra <strong>de</strong> las técnicas utilizadas para la disminución <strong>de</strong>l tráfico <strong>de</strong><br />
control y conseguir <strong>de</strong> esta manera una mayor escalabilidad es el uso<br />
<strong>de</strong> nodos repres<strong>en</strong>tantes [16]. Un repres<strong>en</strong>tante es un compon<strong>en</strong>te <strong>de</strong><br />
la comunicación, normalm<strong>en</strong>te uno <strong>de</strong> los <strong>de</strong>stinatarios, que se<br />
<strong>en</strong>carga <strong>de</strong> c<strong>en</strong>tralizar la información <strong>de</strong> vuelta <strong>de</strong> un conjunto <strong>de</strong><br />
receptores, agrupándola <strong>en</strong> un bloque <strong>de</strong> información compacto,<br />
normalm<strong>en</strong>te un único paquete, y reduci<strong>en</strong>do así la cantidad <strong>de</strong><br />
paquetes que recibiría el emisor.<br />
Estas técnicas se aprovechan <strong>de</strong> la jerarquía establecida por la<br />
topología <strong>de</strong> red, <strong>de</strong> manera que la información <strong>de</strong> vuelta se va<br />
agrupando según se acerca al emisor; facilitando, <strong>de</strong> esta forma, la<br />
escalabilidad.<br />
En algunos casos interesa que el nodo repres<strong>en</strong>tativo pueda realizar<br />
también labores <strong>de</strong> corrección <strong>de</strong> errores, con lo que se reduciría aun<br />
más el <strong>en</strong>vío <strong>de</strong> paquetes <strong>de</strong> control hacía el emisor, pudi<strong>en</strong>do incluso<br />
llegar a evitarse. En estos casos el nodo <strong>de</strong>signado almac<strong>en</strong>a la<br />
información recibida para po<strong>de</strong>r actuar como un emisor secundario.<br />
Si bi<strong>en</strong> el nodo repres<strong>en</strong>tante suele ser uno <strong>de</strong> los <strong>de</strong>stinatarios <strong>de</strong> la<br />
información, <strong>en</strong> algunos casos se pu<strong>de</strong>n utilizar nodos habilitados<br />
explícitam<strong>en</strong>te para esta función o bi<strong>en</strong> se <strong>de</strong>lega a los routers, ya que<br />
estos se sitúan <strong>en</strong> los puntos <strong>de</strong> conflu<strong>en</strong>cia <strong>de</strong> los paquetes <strong>de</strong><br />
control.
2.11 Trabajos relacionados<br />
En la actualidad exist<strong>en</strong> multitud <strong>de</strong> protocolos multicast que<br />
resuelv<strong>en</strong> <strong>de</strong> manera g<strong>en</strong>eral o más o m<strong>en</strong>os condicionada el problema<br />
<strong>de</strong> la difusión <strong>de</strong> información a multiples <strong>de</strong>stinatarios.<br />
Algunos <strong>de</strong> estos protocolos son: SRM [11] un protocolo ori<strong>en</strong>tado a la<br />
distribución compartida <strong>de</strong> información <strong>de</strong>ntro <strong>de</strong> un grupo <strong>de</strong><br />
participantes con la corrección <strong>de</strong> errores también distribuida; MTFP<br />
[12] es un protocolo <strong>de</strong> transporte multicast que c<strong>en</strong>tra su objetivo <strong>en</strong><br />
conseguir una comunicación altam<strong>en</strong>te escalable y con un soporte<br />
universal para todo tipo <strong>de</strong> re<strong>de</strong>s, incluy<strong>en</strong>do las altam<strong>en</strong>te<br />
asimétricas; Digital Fountain [17] un protocolo totalm<strong>en</strong>te escalable<br />
para la distribución <strong>de</strong> información masiva a múltiples <strong>de</strong>stinatarios<br />
fundam<strong>en</strong>tado <strong>en</strong> un FEC ori<strong>en</strong>tado a XOR <strong>de</strong>nominado Tornado<br />
Co<strong>de</strong>s.<br />
3 Streaming <strong>de</strong> Archivos<br />
Como se ha <strong>de</strong>scrito el problema <strong>de</strong> la difusión <strong>de</strong> información masiva<br />
a difer<strong>en</strong>tes <strong>de</strong>stinatarios es bastante complejo, y al respecto ya<br />
exist<strong>en</strong> difer<strong>en</strong>tes soluciones <strong>en</strong> m<strong>en</strong>or o mayor medida.<br />
Sin embargo <strong>en</strong> otro tipo <strong>de</strong> esc<strong>en</strong>arios nos <strong>en</strong>contramos con una<br />
serie <strong>de</strong> restricciones que complican aun más si cabe el problema<br />
anteriorm<strong>en</strong>te <strong>de</strong>scrito. Se trata <strong>de</strong> los casos <strong>en</strong> los que los<br />
<strong>de</strong>stinatarios no dispon<strong>en</strong> <strong>de</strong> memoria intermedia para almac<strong>en</strong>ar toda<br />
la información, antes <strong>de</strong> pasar a la fase <strong>de</strong> reconstrucción <strong>de</strong>l paquete<br />
<strong>de</strong> información software, por lo que ésta <strong>de</strong>berá ir reconstruyéndose a<br />
medida que se recibe. En caso <strong>de</strong> necesitar almac<strong>en</strong>ami<strong>en</strong>to temporal<br />
el proceso <strong>de</strong> recepción t<strong>en</strong>drá que po<strong>de</strong>r adaptarse a cantida<strong>de</strong>s <strong>de</strong><br />
memoria pequeñas (para el caso <strong>de</strong> equipos con pocas prestaciones).<br />
Este proceso sería similar al streaming <strong>de</strong> audio o vi<strong>de</strong>o pero <strong>en</strong> este<br />
caso consi<strong>de</strong>rando que la información es <strong>de</strong> carácter g<strong>en</strong>eral y que<br />
requerimos una confiabilidad total <strong>en</strong> la comunicación.
En estos tipos <strong>de</strong> transmisiones los procesos <strong>de</strong> sincronización<br />
emisor-receptores, la reor<strong>de</strong>nación <strong>de</strong> paquetes y la recuperación <strong>de</strong><br />
paquetes perdidos se v<strong>en</strong> muy condicionadas ya que los protocolos <strong>de</strong><br />
transporte multicast se val<strong>en</strong> precisam<strong>en</strong>te <strong>de</strong> memoria intermedia<br />
para realizar u optimizar estas labores.<br />
4 Propuesta <strong>de</strong> solución<br />
Se propone un mo<strong>de</strong>lo <strong>de</strong> transmisión para la difusión masiva <strong>de</strong><br />
información a través <strong>de</strong> re<strong>de</strong>s heterogéneas, que contemple los<br />
requerimi<strong>en</strong>tos establecidos <strong>en</strong> el planteami<strong>en</strong>to <strong>de</strong>l problema. A<br />
partir <strong>de</strong> este mo<strong>de</strong>lo se ha diseñado una arquitectura que plasma<br />
funcionalm<strong>en</strong>te dicho mo<strong>de</strong>lo. Finalm<strong>en</strong>te, y para validar la corrección<br />
<strong>de</strong>l mo<strong>de</strong>lo y arquitectura propuestos, se ha implem<strong>en</strong>tado un<br />
protocolo <strong>de</strong> transporte <strong>de</strong> red basado <strong>en</strong> la tecnología IP multicast.<br />
El protocolo permite distribuir una serie <strong>de</strong> paquetes software <strong>de</strong><br />
información <strong>de</strong>s<strong>de</strong> un repositorio a un conjunto <strong>de</strong> receptores,<br />
increm<strong>en</strong>tando el aprovechami<strong>en</strong>to <strong>de</strong> la infraestructura <strong>de</strong> red. El<br />
protocolo es lo sufici<strong>en</strong>tem<strong>en</strong>te g<strong>en</strong>érico como para po<strong>de</strong>r ser usado<br />
por diversas aplicaciones, aportando una capa <strong>de</strong> servicios para la<br />
difusión confiable <strong>de</strong> información. Como protocolo base, sobre el que<br />
residiría la capa <strong>de</strong> transporte a implem<strong>en</strong>tar, se utilizará IP con<br />
soporte para multicast, <strong>de</strong>bido a su alta aceptación <strong>en</strong> la actualidad.<br />
Dado que <strong>en</strong> los <strong>de</strong>stinatarios no po<strong>de</strong>mos contar con memoria<br />
intermedia éstos irán procesando la información según la van<br />
recibi<strong>en</strong>do, con lo que la capa <strong>de</strong> transporte multicast proporciona a<br />
los receptores un flujo <strong>de</strong> información or<strong>de</strong>nado y acompasado con el<br />
emisor.<br />
En la Fig. 3 se muestra un esquema <strong>de</strong> los difer<strong>en</strong>tes módulos que<br />
compon<strong>en</strong> el emisor y el receptor <strong>de</strong>l mo<strong>de</strong>lo multicast propuesto.<br />
El emisor tras realizar una serialización <strong>de</strong> la información que <strong>de</strong>sea<br />
transmitir, realiza un proceso <strong>de</strong> cifrado para proteger los datos.<br />
Posteriorm<strong>en</strong>te la información cifrada es fraccionada <strong>en</strong> paquetes <strong>de</strong>
datos. Estos paquetes son almac<strong>en</strong>ados <strong>en</strong> un buffer (B1) para que<br />
que<strong>de</strong>n disponibles <strong>en</strong> el mom<strong>en</strong>to <strong>en</strong> que sea necesaria su<br />
retransmisión.<br />
Fig 3. Diagrama <strong>de</strong> bloques <strong>de</strong>l proceso <strong>de</strong> difusión <strong>de</strong> información<br />
A los paquetes <strong>de</strong> datos se les aplica un FEC para reducir los<br />
problemas <strong>de</strong> escalabilidad, reduci<strong>en</strong>do la solicitud <strong>de</strong> paquetes<br />
perdidos. Dada la heterog<strong>en</strong>eidad <strong>de</strong> los <strong>de</strong>stinatarios se propone el<br />
uso <strong>de</strong> FEC’s con bajo coste computacional, como los basados <strong>en</strong> XOR,
para evitar gran<strong>de</strong>s retardos <strong>en</strong> la recepción <strong>en</strong> cli<strong>en</strong>tes l<strong>en</strong>tos o<br />
saturados.<br />
En la retransmisión <strong>de</strong> los paquetes solicitados por los <strong>de</strong>stinatarios,<br />
también se incorpora el uso <strong>de</strong> FEC’s que reduzcan la cantidad <strong>de</strong><br />
información retransmitida. Los buffers <strong>de</strong> trabajo <strong>de</strong> los FEC (B2 y B4),<br />
especialm<strong>en</strong>te el <strong>de</strong>l <strong>de</strong>stinatario, serán <strong>de</strong> tamaño limitado, <strong>de</strong>bido a<br />
las condiciones impuestas <strong>en</strong> el problema.<br />
El receptor irá obt<strong>en</strong>i<strong>en</strong>do un conjunto <strong>de</strong> paquetes <strong>de</strong> datos<br />
<strong>de</strong>sor<strong>de</strong>nados, bi<strong>en</strong> sea por recepción directa <strong>de</strong>l emisor, por una<br />
retransmisión o por una recuperación realizada por el FEC. Para<br />
suministrar una secu<strong>en</strong>cia or<strong>de</strong>nada <strong>de</strong> los datos a las capas<br />
superiores el receptor usará un buffer <strong>de</strong> paquetes (B3), que también<br />
t<strong>en</strong>drá una capacidad limitada y reducida. Por ello el proceso <strong>de</strong><br />
solicitud y <strong>en</strong>trega <strong>de</strong> paquetes perdidos <strong>de</strong>berá ser lo más efici<strong>en</strong>te<br />
posible, <strong>de</strong> manera que la recepción <strong>en</strong> cada <strong>de</strong>stinatario esté lo más<br />
acompasada posible con el emisor.<br />
5 Un caso práctico<br />
El <strong>en</strong>torno <strong>de</strong> pruebas <strong>en</strong> el que se va ha poner <strong>en</strong> marcha inicialm<strong>en</strong>te<br />
el sistema <strong>de</strong> transfer<strong>en</strong>cia masiva que se propone es Gaia, un sistema<br />
<strong>de</strong> reg<strong>en</strong>eración <strong>de</strong> equipos que permite restaurar completam<strong>en</strong>te la<br />
información cont<strong>en</strong>ida <strong>en</strong> los equipos que compon<strong>en</strong> una red. El<br />
objetivo principal <strong>de</strong> Gaia es automatizar muchas <strong>de</strong> las tareas <strong>de</strong><br />
mant<strong>en</strong>imi<strong>en</strong>to <strong>de</strong> las re<strong>de</strong>s <strong>de</strong> computadores, para conseguir una<br />
gestión <strong>de</strong>sat<strong>en</strong>dida <strong>de</strong> dicha red.<br />
El proceso <strong>de</strong> reg<strong>en</strong>eración se gestiona mediante un sistema que<br />
opera <strong>en</strong> el equipo <strong>de</strong> manera in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te al hardware y software<br />
instalado, y que <strong>de</strong> manera automatizada y <strong>de</strong>sat<strong>en</strong>dida realiza<br />
básicam<strong>en</strong>te los sigui<strong>en</strong>tes procesos:<br />
• Analizar el hardware <strong>de</strong>l equipo, examinando principalm<strong>en</strong>te los<br />
difer<strong>en</strong>tes discos y particiones con los que cu<strong>en</strong>ta
• Obt<strong>en</strong>er la configuración establecida para ese equipo, la cual resi<strong>de</strong><br />
<strong>en</strong> un sistema <strong>de</strong> inv<strong>en</strong>tario que gestiona el administrador. En él se<br />
indica las particiones que <strong>de</strong>be t<strong>en</strong>er el equipo tras la reinstalación,<br />
los sistemas <strong>de</strong> archivos que <strong>de</strong>be cont<strong>en</strong>er, así como los sistemas<br />
operativos, aplicaciones y otros datos que <strong>de</strong>b<strong>en</strong> residir <strong>en</strong> estos<br />
sistemas <strong>de</strong> archivos.<br />
• Preparar el equipo física y lógicam<strong>en</strong>te para recibir loa información<br />
a instalar.<br />
• Obt<strong>en</strong>er y almac<strong>en</strong>ar los datos que <strong>de</strong>b<strong>en</strong> residir <strong>en</strong> el equipo <strong>de</strong>s<strong>de</strong><br />
un repositorio previam<strong>en</strong>te configurado por el administrador. La<br />
información se ofrece <strong>en</strong> forma <strong>de</strong> paquetes software <strong>de</strong><br />
instalación, como podrían ser <strong>de</strong> sistemas operativos, <strong>de</strong><br />
aplicaciones, <strong>de</strong> datos, etc. La información almac<strong>en</strong>ada <strong>en</strong> los<br />
paquetes esta comprimida para optimizar el espacio <strong>de</strong><br />
almac<strong>en</strong>ami<strong>en</strong>to y agilizar su transmisión por la red.<br />
Por lo tanto con este sistema para mant<strong>en</strong>er una red <strong>de</strong> computadores<br />
simplem<strong>en</strong>te hay que indicar la secu<strong>en</strong>cia or<strong>de</strong>nada <strong>de</strong> paquetes que<br />
hay que instalar por cada equipo, agilizando <strong>de</strong> esta manera las<br />
costosas tareas <strong>de</strong> instalación y configuración <strong>de</strong>l software.<br />
En algunos casos, cuando la información que hay que instalar <strong>en</strong> un<br />
equipo no pueda fraccionarse <strong>en</strong> diversos paquetes, existirá un único<br />
paquete que <strong>de</strong>scribe la totalidad <strong>de</strong>l cont<strong>en</strong>ido <strong>de</strong>l equipo, es <strong>de</strong>cir el<br />
paquete es una copia exacta <strong>de</strong>l cont<strong>en</strong>ido físico <strong>de</strong> las unida<strong>de</strong>s <strong>de</strong><br />
dicho equipo. Este modo <strong>de</strong> trabajo se utiliza cuando el sistema <strong>de</strong><br />
reinstalación no <strong>en</strong>ti<strong>en</strong><strong>de</strong> la estructura interna <strong>de</strong>l sistema <strong>de</strong> archivos<br />
<strong>de</strong>l equipo.<br />
Mediante el uso <strong>de</strong> un sistema <strong>de</strong> transfer<strong>en</strong>cia tradicional <strong>de</strong><br />
información, cuando un paquete va dirigido a más <strong>de</strong> un equipo, la<br />
transmisión se realiza <strong>de</strong> manera individual <strong>en</strong>tre el repositorio y los<br />
equipos, repitiéndose esta operación tantas veces como <strong>de</strong>stinatarios<br />
difer<strong>en</strong>tes t<strong>en</strong>ga el paquete.
DHCP<br />
TCP/IP<br />
NIC<br />
NIC<br />
HTTP<br />
Servidor<br />
GAIA<br />
NFS<br />
MySQL<br />
FS Proc<br />
Transfer<strong>en</strong>cia<br />
<strong>de</strong> archivos<br />
Mem.<br />
Virtual<br />
I/O CPU MEM<br />
I/O CPU MEM<br />
Nivel <strong>de</strong><br />
Aplicación<br />
Nivel <strong>de</strong><br />
Nivel <strong>de</strong><br />
Sistema<br />
Operativo<br />
Nivel<br />
Hardware<br />
RED<br />
TCP/IP<br />
Fig 4. Arquitectura <strong>de</strong>l sistema <strong>de</strong> reg<strong>en</strong>eración GAIA<br />
Por norma g<strong>en</strong>eral, el mant<strong>en</strong>imi<strong>en</strong>to <strong>de</strong> los equipos se pue<strong>de</strong> agrupar<br />
<strong>en</strong> grupos que compart<strong>en</strong> una misma configuración. Estos grupos<br />
estarían formados por equipos <strong>de</strong> características similares que<br />
compart<strong>en</strong> un mismo perfil software, como suele ocurrir <strong>en</strong> aulas o<br />
laboratorios informáticos. Mediante el uso <strong>de</strong> un sistema <strong>de</strong><br />
transfer<strong>en</strong>cia tradicional <strong>de</strong> información, cuando un paquete va<br />
dirigido a más <strong>de</strong> un equipo, la transmisión se realiza <strong>de</strong> manera<br />
individual <strong>en</strong>tre el repositorio y los equipos, repitiéndose esta<br />
operación tantas veces como <strong>de</strong>stinatarios difer<strong>en</strong>tes t<strong>en</strong>ga el<br />
paquete. Esto produce una disminución <strong>en</strong> el r<strong>en</strong>dimi<strong>en</strong>to global <strong>de</strong>l<br />
proceso, ya que se satura tanto el repositorio con solicitu<strong>de</strong>s repetidas<br />
<strong>de</strong> paquetes, como la red con la transfer<strong>en</strong>cia <strong>de</strong> dichos paquetes.<br />
Por todo esto, se propone sustituir el sistema <strong>de</strong> transfer<strong>en</strong>cia <strong>de</strong><br />
archivos actual (ver Fig.4 y Fig. 5) por el sistema <strong>de</strong> transmisión<br />
propuesto, <strong>de</strong> forma que la distribución <strong>de</strong> los paquetes software se<br />
realice <strong>de</strong> manera mucho más efici<strong>en</strong>te. Con ello se pret<strong>en</strong><strong>de</strong><br />
conseguir mejorar la transfer<strong>en</strong>cia <strong>en</strong> los sigui<strong>en</strong>tes aspectos:<br />
• Conseguir una in<strong>de</strong>p<strong>en</strong><strong>de</strong>ncia <strong>de</strong>l número <strong>de</strong> cli<strong>en</strong>tes que se<br />
reg<strong>en</strong>er<strong>en</strong> simultáneam<strong>en</strong>te con la mismo paquete software.<br />
NFS<br />
NIC<br />
NIC<br />
Cli<strong>en</strong>te<br />
GAIA<br />
MySQL<br />
FS Proc<br />
Transfer<strong>en</strong>cia<br />
<strong>de</strong> archivos<br />
Mem.<br />
Virtual<br />
I/O CPU MEM<br />
I/O CPU MEM
• Mejorar la transmisión incluso cuando los cli<strong>en</strong>tes se <strong>en</strong>cu<strong>en</strong>tran a<br />
largas distancias, asegurando su finalización <strong>en</strong> tiempos acotados.<br />
• Favorecer la transmisión <strong>de</strong> información masiva al reducir el trafico<br />
<strong>de</strong> control, <strong>de</strong> manera que incluso sea factible el uso <strong>de</strong><br />
comunicaciones asimétricas como podría ser una conexión ADSL o<br />
una transmisión vía satélite.<br />
Cli<strong>en</strong>te<br />
Reg<strong>en</strong>eración<br />
Cli<strong>en</strong>te<br />
Administració<br />
Navegador<br />
Web<br />
Ag<strong>en</strong>te<br />
Reg<strong>en</strong>eración<br />
Cli<strong>en</strong>te ubicuo <strong>de</strong><br />
reg<strong>en</strong>eración<br />
(PDA, portátil,<br />
Móvil, ...)<br />
Fig. 5. Esc<strong>en</strong>ario <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong>l Sistema <strong>de</strong> Reg<strong>en</strong>eración <strong>de</strong> Nodos<br />
6 Conclusiones<br />
Control <strong>de</strong> acceso<br />
mediante tarjetas<br />
intelig<strong>en</strong>tes (Smart Card)<br />
Internet<br />
Ag<strong>en</strong>te<br />
Reg<strong>en</strong>eración<br />
Servidor <strong>de</strong><br />
Aut<strong>en</strong>ticación<br />
Directorio,<br />
Perfiles y<br />
Certificados<br />
Router/ Proxy/ Firewall<br />
Servidor<br />
Web<br />
Interfaz<br />
El problema <strong>de</strong> la difusión masiva <strong>de</strong> información g<strong>en</strong>érica es <strong>en</strong> la<br />
actualidad un problema abierto y objeto <strong>de</strong> numerosas<br />
investigaciones. La escalabilidad es el principal factor a t<strong>en</strong>er <strong>en</strong><br />
cu<strong>en</strong>ta <strong>en</strong> el <strong>de</strong>sarrollo <strong>de</strong> un protocolo <strong>de</strong> transfer<strong>en</strong>cia multicast<br />
confiable.<br />
No existe un protocolo g<strong>en</strong>eral <strong>de</strong> transporte multicast que <strong>de</strong><br />
solución a todos los problemas <strong>de</strong> difusión, principalm<strong>en</strong>te <strong>en</strong> el caso<br />
<strong>de</strong>l streaming <strong>de</strong> archivos. En este docum<strong>en</strong>to se aporta una solución<br />
al problema, estableci<strong>en</strong>do un marco formal sobre el que ir<br />
<strong>de</strong>sarrollando un mo<strong>de</strong>lo y una arquitectura para la difusión <strong>de</strong><br />
información masiva.<br />
Como proyectos futuros estamos trabajando <strong>en</strong> la incorporación <strong>de</strong><br />
mecanismos <strong>de</strong> corrección <strong>de</strong> errores <strong>de</strong> forma local mediante una<br />
HTML<br />
Dir<br />
Servidor <strong>de</strong><br />
<strong>Aplicaciones</strong><br />
Lógica <strong>de</strong><br />
Negocio<br />
DB<br />
Entorno <strong>de</strong><br />
Almac<strong>en</strong>ami<strong>en</strong>to y<br />
repositorio software<br />
DB<br />
DB<br />
DB<br />
Sistema <strong>de</strong><br />
Información
estructuración jerárquica <strong>de</strong> los compon<strong>en</strong>tes <strong>de</strong> la comunicación <strong>en</strong><br />
forma <strong>de</strong> grafos, especialm<strong>en</strong>te <strong>en</strong> forma <strong>de</strong> árboles. En este s<strong>en</strong>tido<br />
se está trabajando <strong>en</strong> heurísticas <strong>de</strong> vecindad <strong>en</strong>tre los difer<strong>en</strong>tes<br />
<strong>de</strong>stinatarios que nos permitan optimizar los canales <strong>de</strong> vuelta <strong>en</strong> los<br />
procesos <strong>de</strong> corrección <strong>de</strong> errores.<br />
También se están realizando estudios que permitan incorporar<br />
mecanismos <strong>de</strong> seguridad <strong>en</strong> la difusión <strong>de</strong> la información a<br />
transmitir.<br />
7 Refer<strong>en</strong>cias<br />
1. Marcos Jorquera, D.; Maciá Pérez, F.; Monllor Pérez, J.C: Sistema <strong>de</strong><br />
reg<strong>en</strong>eración <strong>de</strong> nodos <strong>de</strong> red. GAIA. Desarrollo De Gran<strong>de</strong>s <strong>Aplicaciones</strong><br />
<strong>Distribuidas</strong> Sobre Internet. Servicio <strong>de</strong> Publicaciones <strong>de</strong> la Universidad <strong>de</strong><br />
Alicante, Cap. 10, pp. 275-298. (2004)<br />
2. Tan<strong>en</strong>baum, A. S.:. Re<strong>de</strong>s <strong>de</strong> computadoras. Tercera edición. Pr<strong>en</strong>tice<br />
Hall. (1997)<br />
3. Forouzan, B. A.: Transmisión <strong>de</strong> datos y re<strong>de</strong>s <strong>de</strong> comunicaciones.<br />
Segunda edición. McGraw-Hill. (2002)<br />
4. Halsall, F.: Comunicación <strong>de</strong> datos, re<strong>de</strong>s <strong>de</strong> computadores y sistemas<br />
abiertos. Cuarta edición. Addison Wesley Longman. (1998)<br />
5. García Tomas, J.: Sistemas y re<strong>de</strong>s teleinformáticas. Sociedad para<br />
Estudios Pedagógicos Arg<strong>en</strong>tinos (SEPA). (1989)<br />
6. Comer D. E.: Re<strong>de</strong>s globales <strong>de</strong> información con internet y TCP/IP.<br />
Principios básicos, protocolos y arquitectura. Tercera Edición. Pr<strong>en</strong>tice-<br />
Hall Hispanoamericana. (1996)<br />
7. Mack, s.: Streaming Media Bible. Hungry Minds. (2002)<br />
8. Stallings, W.: Comunicaciones y re<strong>de</strong>s <strong>de</strong> computadores. Sexta edición.<br />
Pr<strong>en</strong>tice Hall. (2000)<br />
9. Deering. S. E.: Host Ext<strong>en</strong>sions for IP Multicasting. Request for Comm<strong>en</strong>ts<br />
(RFC) 988. (1986)<br />
10. Handley, M.:. An Examination of Mbone Performance. Technical Report<br />
RR-97-450, USC/ISI. (1997)
11. Floyd, S., Jacobson, V., Liu, C., McCanne , S. y Zhang, L.: A Reliable<br />
Multicast Framework for Light-weight Sessions and Application Level<br />
Framing. IEEE/ACM Transactions on Networking. (1996)<br />
12. Miller, K., Robertson, K., Tweedly, A. y White M.: StarBusrt Multicast File<br />
Transfer Protocol (MFTP) Specification”. Internet Draft. (1997)<br />
13. Bolot, J., Turletti, T. y Wakeman., I.: Scalable Feedback Control for<br />
Multicast vi<strong>de</strong>o Distribution in the Internet. ACM SIGCOMM Computer<br />
Communication Review. Vol 24, pp. 58-67. (1994)<br />
14. Mankin, A., Romanow, A., Bradner, S. y Paxson., V.: IETF Criteria For<br />
Evaluating Reliable Multicast Transport and Application Protocols.<br />
Request for Comm<strong>en</strong>ts 2357 (RFC 2357). (1998)<br />
15. Tunpan, A. y Corson, M. S.: Bulk Data Multicast Rate Scheduling For<br />
Hybrid Het-erog<strong>en</strong>eous Satellite-Terrestrial Networks. Proceedings of the<br />
Fifth IEEE Symposium on Computers and Communications (ISCC 2000).<br />
pp. 238. (2000)<br />
16. DeLucia, D. y Obraczka, K.: Multicast Feedback Suppression Using<br />
Repres<strong>en</strong>tatives. Proceedings of the IEEE INFOCOM 1997. pp. 463-470.<br />
(1997)<br />
17. Byers, J. W. y Luby M.: A Digital Fountain Approach to Reliable<br />
Distribution of Bulk Data. Proceedings of ACM SIGCOMM’98. pp. 56–67.<br />
(1998)