Logo Studenta

DocsTec-7197

¡Este material tiene más páginas!

Vista previa del material en texto

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS
SUPERIORES DE MONTERREY
CAMPUS MONTERREY
PROGRAMA DE GRADUADOS EN COMPUTACIÓN, INFORMACIÓN Y
COMUNICACIONES
TESIS PARA LA MAESTRÍA EN CIENCIAS EN
INGENIERÍA ELECTRÓNICA CON ESPECIALIDAD
EN TELECOMUNICACIONES
Desempeño de una Arquitectura de Doble Anillo P2P de Alta Disponibilidad para
DNS
por
Carolina Del Valle Soto
Monterrey, N. L., Mayo de 2009
Instituto Tecnológico y de Estudios Superiores de
Monterrey
Campus Monterrey
Programa de Graduados en Electrónica, Computación,
Información y Comunicaciones
Los miembros del comité de tesis recomendamos que la presente propuesta de Carolina Del
Valle Soto sea aceptada para desarrollar el proyecto de tesis que es requisito parcial para obtener
el grado de Maestría en Ciencias en Ingeniería Electrónica con especialidad en Teleco-
municaciones.
Comité de Tesis
Dr. Joaquín Acevedo Mascarúa
Director de Investigación y Posgrado de la Escuela de Ingeniería
Mayo de 2009
Agradezco a Dios y la Virgen que siempre son mis guias en el camino de la vida.
A mis padres, Gustavo y Lucina, y a mi hermano David porque sin ellos no
hubiera sido posible mi estancia en México y les ofrezco todo este esfuerzo
y dedicación que tuve durante estos dos años. Y a mi país, COLOMBIA,
porque es la base de mi formación y mis valores.
AGRADECIMIENTOS
Agradecimientos al Doctor Jorge Carlos Mex Perera por su gran conocimiento y sus valiosos
aportes a lo largo de este proyecto de Tesis. Al MsC Iván Salvador Razo Zapata por su incondicional
apoyo y grandes aportes.
Agredecimientos a CONACYT, a la Cátedra de Biométricas y Protocolos Seguros para Internet,
a NIC México y a Google.
Carolina Del Valle Soto
ÍNDICE GENERAL
1.. Introducción 4
1.1. Definición del Problema 8
1.2. Objetivos 10
1.2.1. Objetivos Específicos 10
1.3. Hipótesis 10
1.4. Motivación 11
2.. Antecedentes 12
2.1. Modelo de la Popularidad de Consultas DNS 12
2.2. DNS 14
2.2.1. Delegación 17
2.2.2. Ataques al DNS 18
2.3. El caché 22
2.4. Protocolos de coherencia del caché 24
2.5. Sistemas de Información Autoconfigurables 24
2.5.1. Topologías de Red 25
2.5.2. Protocolos 27
2.5.3. Proceso P2P 30
3.. Propuesta 35
3.1. Esquemas Relacionados 35
3.2. Esquema Propuesto 39
3.2.1. Arquitectura 41
3.2.2. Arquitectura del Anillo de Clientes 41
3.2.3. Arquitectura del Anillo de Servidores 43
4.. Simulaciones y Resultados 46
4.1. Metodología 47
4.2. Consideraciones Preliminares 48
4.3. Construcción de la Arquitectura e DNS 48
4.4. Confiabilidad 60
5.. Conclusiones 61
5.1. Trabajo Futuro 62
ÍNDICE DE FIGURAS
1.1. Estructura del árbol DNS 5
1.2. Peticiones en DNS 6
1.3. Esquema general de una red P2P 7
2.1. Comportamiento de los datos según la Ley de Potencia 14
2.2. Comportamiento de los datos según la Ley de Potencia con escala logarítmica . . . . 15
2.3. Línea de tendencia a la línea de datos 16
2.4. Estructuras de topologías de red 28
2.5. Ejemplo del comportamiento del protocolo Pastry 30
2.6. Esquemas P2P híbrido y mixto 34
3.1. Esquema Beehive [12] 37
3.2. Esquema de replicación CoDoNS [13] 38
3.3. Esquema de petición-respuesta CoDoNS [13] 39
3.4. Esquema Codificación de Red (Echelon) [23] 40
3.5. Esquema general de la estructura de doble anillo 43
4.1. Porcentaje de nodos coalicionados contra porcentaje de peticiones perdidas 52
4.2. Porcentaje de nodos coalicionados contra número promedio de saltos 53
4.3. Saltos según niveles de replicación 57
4.4. Saltos promedio con distribución con Ley de Potencias 58
4.5. Saltos promedio con recursos con igual popularidad 59
ÍNDICE DE TABLAS
2.1. Tipos de ataques 19
2.2. Ventajas y desventajas de las redes P2P 26
2.3. Arquitecturas P2P 32
3.1. Cuatro primeras filas de la Tabla de enrutamiento de un nodo con ID: 1234 42
3.2. Esquemas 44
3.3. Ventajas y desventajas en los esquemas 45
4.1. Tablas de caché compartido y caché no compartido 55
4.2. Saltos por frecuencia y nivel de replicación 56
4.3. Número de saltos promedio según el nivel de replicación 56
4.4. Relación costo/beneficio del empleo del caché 60
RESUMEN
La presente tesis muestra una arquitectura de doble anillo, que pretende ser más útil que
un esquema de anillo simple, puesto que el hecho de tener una red más sirve como emergencia
y da mayor estabilidad al sistema. Además se analiza el desempeño de la red con base en un
caché compartido entre los nodos del sistema con lo que se logra mayor rapidez en la satisfacción
de peticiones.
La arquitectura consiste en dos anillos, uno de clientes y otro de servidores, la cual combina
las características y ventajas de un sistema P2P, en el cual no hay clientes y servidores fijos,
sino una serie de nodos que se comportan a la vez como clientes y como servidores de los demás
nodos de la red. Además de las características del DNS, en el cual se presenta un sistema cliente-
servidor, donde la aplicación servidora está distribuida. Esta arquitectura propuesta tiene como
fundamento poseer un segundo anillo más estable y organizado, que es el de servidores, que sirva
como respaldo al sistema y que evite ciclos innecesarios en la red. Se busca principalmente dar un
enfoque de disponibilidad de rutas en el sistema teniendo en cuenta parámetros de simulaciones
tales como: número de saltos promedio y cantidad de peticiones perdidas, los cuales van a ser
medidores del desempeño total del sistema propuesto. Se presentan además simulaciones basadas
en el caché compartido y no compartido por los nodos en el sistema, con lo cual se logra medir
de otra forma el desesmpeño y la robustez de la arquitectura gracias a niveles de replicaciones
prestablecidos en los cuales los nodos van a tener un caché repartido de forma aleatoria bajo ciertos
parámetros de replicación.
1. INTRODUCCIÓN
El desarrollo de este trabajo se enfoca en el estudio del DNS (Domain Name System) sobre
redes P2P (Peer-To-Peer). Se propone una estructura de doble anillo de redes P2P que provee las
ventajas de DNS. Esta arquitectura es llamada eDNS (emergency DNS). eDNS puede ser usada
como un mecanismo de emergencia en caso de pérdida de disponibilidad del DNS original. Además,
provee seguridad y robustez en la búsqueda de información en caso de ataques. El desempeño de la
arquitectura propuesta fue medido por medio del procentaje de peticiones perdidas y por el número
promedio de saltos en cada petición, considerando escenarios con un número determinado de nodos
comprometidos. Además, se trata también el tema del caché compartido entre los nodos de una
red, donde se dan escenarios de replicación organizada por niveles y peticiones DNS en las cuales
hay un porcentaje real de peticiones inexistentes que hacen más verídicas las simulaciones.
El sistema de nombres de dominio (DNS por sus siglas en inglés) proporciona un servicio es-
encial a los usuarios del Internet. El propósito principal del DNS es traducir nombres de dominio
a direcciones IP. Cuando un usuario quiere descargar un sitio web, es decir, una página de In-
ternet determinada, éste digita en su navegador el nombre de dominio que desea (por ejemplo
www.google.com), así el DNS obtendrá la respectiva dirección IP de dicho dominio. La estructura
DNS está basada en un modelo jerárquico de árbol invertido (ver figura 1.1), en el cual el origen
es llamado raíz. En el siguiente nivel se encuentran unos dominio llamados TLDs (Top Level Do-
mains). De esta forma los dominios se clasifican en gTLDs (generic TLDs tales como .com, .net,
.org, .edu, .gov, .mil) y ccTLDs (country-code TLDs tales como .uk, .co, .es, .mx). Estos dominios
que forman ramas en el árbol DNS se llaman también zonas, así, si una aplicación requiere la
dirección IP dónde enviar una petición DNS entonces le pregunta al servidor de su zona "padre".
Este proceso se conoce como iteración recursiva. Con el fin de tener autenticación de los datos y
de negación de existencia de los nombres de dominio para DNS, se emplea Domain Name System
SecurityExtensions (DNSSEC). DNSSEC se usa para proteger de ataques como por ejemplo en-
venenamiento en el caché [21]. Además, DNSSEC es un esquema distribuido (por su jerarquía) y
puede ser atacado por diversos daños provocados a los TLDs disminuyendo el desempeño del DNS,
donde este cambio a DNSSEC se hace como reacción a la creciente amenaza de ataques de des-
bordamientos de caché a los servidores de nombres y el reciente fallo de seguridad. Esto se explica
porque, con la extensión DNSSEC, todas las respuestas a un servidor de nombres son firmadas lo
que permite al destinatario comprobar a través de infraestructura de clave pública si las respuestas
de los servidores de nombres son auténticas. Lo anterior es una de las razones por las cuales es
recomendable contar con otras esquemas distribuidos, tales como redes P2P (Peer-To-Peer), que
soporten y protejan al DNS.
En la figura 1.1 se muestra la estructura básica de un árbol DNS donde se observa la dependencia
en los dominios que van formando las ramas del árbol DNS. Cada dominio (o nodo en el árbol) tiene
un nombre y puede contener subdominios. El nombre de dominio identifica la posición del dominio
en el árbol respecto a su dominio principal, utilizándose puntos para separar los nombres de los
nodos. Cualquier nombre de dominio DNS que se utiliza en el árbol es un dominio. En otras palabras,
un sistema de nombres de dominio (DNS) consta de una base de datos de nombres distribuida. Los
nombres de la base de datos DNS establecen una estructura lógica de árbol, conocida como espacio
de nombres del dominio. Cada nodo o dominio del espacio de nombres del dominio tiene un nombre
y puede contener subdominios. Los dominios y subdominios se agrupan en zonas para permitir
la administración distribuida del espacio de nombres. Por ejemplo, el nombre de dominio DNS
itesm.mx. se conoce como un dominio de segundo nivel. Esto se debe a que el nombre tiene dos
partes (llamadas etiquetas) que indican que se encuentra dos niveles por debajo de la raíz o la parte
superior del árbol. La mayor parte de los nombres de dominio DNS tienen dos etiquetas o más,
cada una de las cuales indica un nuevo nivel en el árbol. En los nombres se utilizan puntos para
separar las etiquetas.
Fig. 1.1: Estructura del árbol DNS
Y en la figura 1.2 se muestra el proceso de preguntas y respuestas hacia un servidor por parte
5
Fig. 1.2: Peticiones en DNS
de un cliente, donde los servidores de nombres guardan la información referente a su dominio en
registros (resource records).
Cabe anotar que el DNS se diseñó originalmente como un protocolo abierto y, por tanto, es
vulnerable a intrusos, donde uno de los ataques más frecuentes se da hacia el caché de las máquinas,
donde el caché se puede definir como una memoria rápida y pequeña, especialmente diseñada para
contener información que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras
memorias, reduciendo considerablemente el tiempo de acceso al ser más rápida que el resto de la
memoria principal. Es por esto que los recursos por los que pregunta más frecuentemente un usuario
de Internet se van almacenando en su caché para tener un acceso más rápido a dicha información y
no estar acudiendo siempre a su servidor respectivo. Es así como los sistemas tradicionales basados
en un modelo de cliente-servidor sufren de varias limitaciones, tales como tener un único punto de
falla, mucho tiempo en recuperación de documentos, espacio limitado en el caché, etc [10]. Y es
por estos problemas que las redes comienzan a tener diversas arquitecturas con que se conectan
los protocolos y otros programas de software y se mitigan ciertos problemas como los mencionados
anteriormente.
Con una red DNS los usuarios pueden preguntar por recursos que se encuentren en ciertos
dominios organizados como árboles, sin embargo, si a esta búsqueda se le agrega un enfoque P2P,
es decir, una arquitectura combinada en la que las usuarios se desenvuelvan en un entorno dis-
6
Fig. 1.3: Esquema general de una red P2P
tribuido y además haya un esquema de búsqueda organizada de la información, esto podría reducir
ampliamente la latencia y el caché de las máquinas se tornaría más organizado y útil.
Una arquitectura P2P es un concepto que ha estado creciendo en el mundo de las tencologías de
red y la Internet. En un sistema P2P los nodos son computadores distribuidos con iguales capaci-
dades y tareas en la red, intercambian información y servicios directamente con los otros nodos.
El objetivo de un sistema de compartir información es soportar un protocolo de búsqueda y hacer
eficiente la búsqueda de información entre los caches de los usuarios. El hecho de buscar información
conforma un problema fundamental en los ambientes P2P porque se debe tratar de asegurar que
no se cree un único punto de falla y además, que haya escalabilidad y dinamismo en el sistema [7].
Actualmente, las aplicaciones P2P más difundidas son las que comparten contenidos relativamente
simples (música, video), pero existen sistemas más sofisticados que crean infraestructuras de alma-
cenamiento, organización, búsqueda y recuperación de datos. Sin embargo, ¿qué tan seguras son
estas redes?. Esta pregunta suscita especulaciones como la necesidad de garantizar la integridad
de los datos distribuidos (para que ningún usuario los modifique sin autorización) o cuando se
requiere una comunicación confidencial entre nodos o se presenta la necesidad de un esquema de
autorización que delimite los contenidos a los que pueda acceder un usuario determinado.
Un esquema sencillo de una red P2P de forma general se muestra en la figura 1.3 donde se
observa que varios nodos comparten archivos en una red de forma no definida.
7
1.1. Definición del Problema
Las redes P2P son altamente inseguras y es aquí donde este trabajo tiene su enfoque. En In-
ternet, para el canal de subida, las redes P2P juegan un papel de ocupación muy importante,
ocupando nada menos que el 61 por ciento del caudal disponible. Viendo esta cifra se puede enten-
der por qué el problema con el ancho de banda de subida que presentan estas redes. Además, de los
problemas más importantes en las redes P2P para compartir archivos es que éstas adicionan sobre-
carga, retardos y baja seguridad; además, son susceptibles a diversos ataques. Un nodo atacante
puede insertarse en la red por medio de varios otros nodos o por un único nodo y así enviar una
gran cantidad de peticiones o desechar otras. También, una red P2P segura es un reto por tener
una topología de red dinámica y debido a que los nodos se están conectando y desconectando de
la misma constantemente. De esta forma se presentan problemas de firmado de contraseñas para
verificar y legitimar los paquetes y desechar los paquetes que no pasen dicha verificación. Por esta
razón se propone una estructura de doble anillo para una mejor distribución de la información
combinada con sub-árboles DNS, esto conforma un sistema híbrido que toma las ventajas de ambas
estrategias, esquemas centralizados y descentralizados [24]. El DNS es un esquema de árboles que
se ha venido desarrollando en los últimos años con el que se pretende dar mayor seguridad a las
redes y la combinación de redes P2P con la robustez que proporciona el DNS forma el conjunto de
propuestas que se pretenden desarrollar en este trabajo.
De esta forma en la redes P2P aparece otro problema en cuanto a la repartición de réplicas a
lo largo de la red y cómo repartirlas adecuadamente sin que esto pueda afectar en mayor medida
el desempeño de la misma. Así se deben reducir problemas como la latencia en la búsqueda y
reducir la carga en la red sin afectar notablemente la tolerancia del sistema y la disponibilidad de
la información.
El sistema jerárquico DNS es altamente sensitivo a la latencia y por esto tiene un significativo
reto en cuanto a servir eficientemente. Además, la misma organización jerárquica del DNS hace
que haya una carga desproporcionadaen los diferentes niveles de la jerarquía. Los nodos más altos
en dicha jerarquía son altamente susceptibles a ataques por negación de servicio, lo que causa
una seguridad vulnerable a todo el sistema. Otro de los problemas del DNS es que los servidores
de nombres son requeridos para salidas internas, incurriendo en costos administrativos muy altos
porque requieren ser asegurados y adminitrados manualmente [12]. Es así como se puede establecer
una propuesta híbrida en la que se combinen conceptos de una red P2P eficiente para mejorar las
8
carencias que presenta el DNS y así obtener una búsqueda más rápida y segura por medio de
una red poco vulnerable. El principal problema que presenta el DNS es que, al estar basado en
UDP (protocolo de transporte que no garantiza la recepción de la información enviada), tanto las
consultas como las respuestas pueden perderse (por ejemplo, a causa de congestionamiento en algún
enlace de la red). Es común apreciar cómo, en el caso de servidores y redes no muy bien configuradas,
la resolución de nombres se resiente sensiblemente ante cualquier anomalía (saturación de tráfico o
del servidor de nombres local).
Como principales amenazas que puede sufrir el sistema DNS, se presentan a continuación las
siguientes:
Hay un proceso de robo de información de zona es el que mediante el cual un intruso
obtiene los datos de zona DNS para obtener los nombres de dominio DNS, nombres de equipo y
direcciones IP de recursos de red. Un intruso suele empezar un ataque utilizando estos datos DNS
para obtener un diagrama de una red. Los nombres de equipo y dominio DNS suelen indicar la
función o ubicación de un dominio o equipo para ayudar a los usuarios a recordar e identificar los
dominios con mayor facilidad. Un intruso se aprovecha del mismo principio DNS para aprender la
función o ubicación de dominios y equipos en la red.
Un ataque por negación de servicio se produce cuando un intruso intenta eliminar o afectar
la disponibilidad de los servicios de red desbordando uno o varios servidores DNS de la red con
consultas recursivas, es decir, haciendo peticiones en repetidas ocasiones. Cuando un servidor DNS
se desborda con consultas, el uso de la CPU alcanzará su nivel máximo y el servicio del Servidor DNS
dejará de estar disponible. Sin un servidor DNS completamente operativo en la red, los servicios
de red que utilicen DNS dejarán de estar disponibles para los usuarios de la red.
La modificación de datos es un intento del intruso (que ha ocupado una red mediante DNS)
de utilizar direcciones IP válidas en paquetes IP que ha creado él mismo, de manera que propor-
ciona a estos paquetes la apariencia de proceder de una dirección IP válida de la red. Esto se
denomina comúnmente IP ficticia. Con una dirección IP válida (una dirección IP dentro del rango
de direcciones IP de una subred), el intruso puede tener acceso a la red y destruir datos o realizar
otro tipo de ataque.
La redirección se produce cuando un intruso puede redirigir consultas de nombres DNS a
servidores que él controle. Un método de redirección incluye el intento de contaminar el caché DNS
de un servidor DNS con datos DNS erróneos que pueden dirigir consultas futuras a servidores que
controle el intruso. La redirección puede realizarse siempre que el intruso disponga de acceso de
escritura a datos DNS, como ocurre, por ejemplo, con las actualizaciones dinámicas no seguras.
9
1.2. Objetivos
Se persigue simular el modelo de disponibilidad aplicado a DNS, pero ahora implementado para
una arquitectura Peer To Peer, donde se pretende mejorar la robustez de la red y su desempeño y
reducir en la medida de lo posible, la latencia, con base en técnicas de replicación del caché y la
eficiencia que proporciona una estructura de doble anillo.
1.2.1. Objetivos Específicos
• Considerar la estructura del DNS en Peer To Peer para reemplazar la convención jerárquica
DNS debido a mejor tolerancia a fallas y balance de carga.
• Analizar la conectividad entre los nodos del sistema, teniendo en cuenta nodos coalicionados
que funcionan como barreras de información y evitan que las peticiones sean satisfechas.
• Medir el desempeño del sistema con una replicación adecuada del caché y tener una estruc-
tura de doble anillo como solución a emergencias, lo que la hace más disponible que una
arquitectura de anillo simple.
• Crear una red de doble anillo que sirva como respaldo y que proporcione eficiencia en las
respuestas a las consultas, evitando loops lo que ocasiona retardos innecesarios en la red.
• Analizar el caché de la red, tomando en cuenta el caché personal de los clientes, el caché de
la red que satisface necesidades comunes en un entorno de red, y el caché de los clientes y de
la red combinado. Observar y comparar el comportamiento de la red según la influencia de
estos tipos de caché.
1.3. Hipótesis
Se plantea una arquitectura de doble anillo capaz de tener un mejor desempeño que algunos
otros esquemas ya establecidos en la literatura, midiendo parámetros tales como: número de saltos
y cantidad de peticiones perdidas. Se pretende tener un sistema capaz de reducir latencia en la red
con ayuda de la replicación de los recursos a lo largo de los caches de los nodos que forman la red.
Además, se espera que el segundo anillo, que es un anillo conformado por servidores, pueda servir
de respaldo para el otro anillo haciendo así una red equilibrada y con pocos puntos de falla.
10
1.4. Motivación
Muchos de los protocolos de redes de comunicaciones están basados en modelos tradicionales de
cliente-servidor. Así, un servidor está atento a las peticiones de los clientes que se conectan a él para
recibir los beneficios de sus servicios [10]. De todas formas estos modelos tienden a intensificar la
carga de los servidores en una red. Esto explica entonces la importancia de la necesidad de un modelo
alternativo, como lo es un Modelo de Red Peer-To-Peer, con el que se consigue intercambio de datos
no dependiente de una máquina individual, delegando capacidad de poder y almacenamiento en
una red de carga auto-organizada. Entonces, las funciones de cada nodo son de clientes y servidores
a la vez.
Con la expansión de los usuarios y de los recursos que proporciona el Internet, ha tomado gran
fuerza la implementación de sistemas para compartir archivos web. Los nodos almacenan copias
de los recursos web los cuales pueden ser accedidos frecuentemente por otros usuarios reduciendo
así la carga de un recurso muy popular por parte del nodos original que tiene el recurso.
El reto entonces es encontrar una forma eficiente que haga uso de los caches individuales de
los nodos conectados a una red y a su vez mantener la consistencia de los datos en el sistema de
tal forma que se forme una red de trabajo en equipo, y el objetivo de presentar una red P2P es
porque éstas no necesitan despliegue físico, los recursos son compartidos (almacenamiento, CPU,
BW), haciendo la arquitectura escalable, no hacen un solo punto de falla (robustez), optimizan los
retardos y se minimizan los cuellos de botella.
De esta forma se pretende hacer una arquitectura de emergencia, denominada eDNS, con dos
enfoques alternativos: por un lado el sistema de doble anillo que se va a proponer sirve como
respaldo, es decir, si una consulta no es satisfecha en uno de los anillos no se van a empezar a
crear loops innecesarios que congestionen la red, sino que ésta pasa a un segundo anillo para ver
si allí puede llegar a ser satisfecha. Otro enfoque es que esta arquitectura pretende ser un sistema
respaldo momentáneo en caso de que el árbol jerárquico DNS llegase a fallar, es así como uno de los
anillos de la arquitectura presentada actuaría como segundo eslabón en los niveles de la jerarquía
DNS. Entonces la motivación principal de esta tesis es ofrecer una opción diferente a las redes P2P
manteniendo las características básicas del DNS.
11
2. ANTECEDENTES
Este capítulo provee información deconceptos generales y trabajos relacionados donde se sientan
las bases para la comprensión de esquemas y estructuras especiales en redes P2P con ayuda de la
seguridad que proporciona el DNS. En un comienzo se pretende explicar el comportamiento de
los datos tomados de un servidor, luego, cómo estos datos DNS puede encontrarse a expensas de
ciertos ataques y finalmente, cómo se establecen las relaciones entre los servidores y clientes en
una red, y específicamente cómo funciona un red Peer-To-Peer. Se espera tener claridad en todos
estos conceptos puesto que la comprensión de los mismos hace que se entienda el entorno de una
arquitectura de red, con sus interacciones, ventajas y desventajas.
2.1. Modelo de la Popularidad de Consultas DNS
Cuando la probabilidad de medida de un valor particular de alguna cantidad, varía inversamente
como una potencia de ese valor se dice que la cantidad sigue una ley de potencia (como se muestra
en la ecuación 2.1), también conocida como Ley de Zipf o distribución de Pareto. Una distribución
de Zipf se caracteriza por tener pocas observaciones muy frecuentes y muchas poco frecuente. Al
granearse en escala log-log se presenta un recta. Más específicamente, a lo que se denomina una ley
de potencias es: si la variable independiente y la dependiente se representan en escala logarítmica, la
línea que mejor se adapta a los puntos es una línea recta. En el caso de que la variable dependiente
sea el orden en el que aparecen las cantidades que se representan, se le suele denominar ley de
Zipf.
(2.2)
(2.1)
La constante a es el exponente de la Ley de Potencia; la constante C no es importante una
vez que se fija a, porque C se va a determinar siguiendo la condición de que P(x) sume 1, [11].
Es así como en la Ley de Potencia las frecuencias decrecen muy lentamente cuando el tamaño del
evento aumenta. La variable xi es cada una de las frecuencias que hay en la distribución que se
tiene y xmin es la mínima frecuencia que se tiene en la distribución, donde este último valor es
generalmente 1 para distribuciones de sitios web.
Con lo que se forma la siguiente ecuación, que va a generar una línea de distribución para los
datos obtenidos:
Distribuciones de Ley de Potencias ocurren en diversos fenómenos, tales como poblaciones de
ciudades, tamaño de los terremotos, cráteres de la luna, manchas solares, archivos de computadores,
frecuencia de uso de palabras en un lenguaje, frecuencia de ocurrencia de los nombres en una
cultura, número de peticiones a una página web, venta de libros, etc [11]. La Ley de Potencias
ha sido extrapolada a la distribución de enlaces entrantes, la red que forman correos electrónicos
enviados y recibidos, la conectividad de los routers en Internet, o ya más recientemente, a los correos
enviados a grupos de noticias. Es así como comienza a perfilarse el proceso de este trabajo, donde
se intenta comprobar la distribución que siguen las peticiones hechas a un servidor durante un
determinado tiempo. Poder identificar el comportamiento que siga una ley de potencias puede ser
complicado. La estrategia idónea hace uso de este resultado: un histograma de una cantidad con
una ley de distribución del potencias aparece como una línea recta cuando se gráfica en escalas
logarítmicas. Lo anterior se puede ver reflejado en los datos tomados en la presente tesis para poder
partir de una hipótesis verdadera. Los datos se observan en la figura 2.1 y con escalas logarítmicas
se observan en la figura 2.2.
Y empleando las ecuaciones 2.1, 2.2 y 2.3 se puede generar una línea de tendencia que siga la
distribución de Ley de Potencia que siguen los datos en la figura 2.3.
13
(2.3)
(2.4)
Fig. 2.1: Comportamiento de los datos según la Ley de Potencia
2.2. DNS
Cuando se tiene un conjunto de datos obtenidos gracias a la recopilación de los mismos por
medio de un servidor es necesario tener en cuenta que esos datos son información DNS (Domain
Name System, por sus siglas en inglés). El proceso para tener una lista de recursos DNS es cuando
la resolución de nombres se hace de forma transparente por las aplicaciones del cliente (por ejemplo,
navegadores, clientes de correo y otras aplicaciones que usan Internet). Al realizar una petición que
requiere una búsqueda de DNS, la petición se envía al servidor DNS local del sistema operativo. El
sistema operativo, antes de establecer alguna comunicación, comprueba si la respuesta se encuentra
en la memoria caché. En el caso de que no se encuentre, la petición se enviará a uno o más servidores
DNS.
El Sistema de nombres de dominio (DNS) se definió originalmente en los RFC 1034 y 1035. Estos
documentos especifican elementos comunes a todas las implementaciones de software relacionadas
con DNS, entre los que se incluyen: un espacio de nombres de dominio DNS, que especifica una
14
Fig. 2.2: Comportamiento de los datos según la Ley de Potencia con escala logarítmica
jerarquía estructurada de dominios utilizados para organizar nombres. Los registros de recursos,
que asignan nombres de dominio DNS a un tipo específico de información de recurso para su uso
cuando se registra o se resuelve el nombre en el espacio de nombres. Los servidores DNS, que
almacenan y responden a las consultas de nombres para los registros de recursos. Los clientes DNS,
también llamados solucionadores, que consultan a los servidores para buscar y resolver nombres de
un tipo de registro de recursos especificado en la consulta.
El DNS se utiliza para distintos propósitos. Los más comunes son:
• Resolución de nombres: Dado el nombre completo de un host, obtener su dirección IP.
• Resolución inversa de direcciones: Es el mecanismo inverso al anterior. Consiste en, dada
una dirección IP, obtener el nombre asociado a la misma.
• Resolución de servidores de correo: Dado un nombre de dominio obtener el servidor a
través del cual debe realizarse la entrega del correo electrónico.
El Centro de Información de la Red Internet administra la raíz de la base de datos DNS en
15
Fig, 2.3: Línea de tendencia a la línea de datos
Internet. Los dominios superiores se han asignado a organizaciones y países. Estos nombres de
dominio siguen un estándar internacional. La zona DNS raíz está servida por trece servidores de
nombres de dominio, donde éstos y las bases de datos que mantienen el DNS están distribuidos
geográficamente y están a lo largo del mundo para evitar que una falla de uno de ellos colapse la red
entera. Trece es el número máximo de servidores raíz posibles en la arquitectura actual del DNS
puesto que es el que más puede encajar dentro de un paquete UDP de respuesta de 512 bytes. Diez
servidores raíz se encuentran en los EE.UU., dos se encuentran en Europa, y uno se encuentra en
Asia [22].
Un servidor de nombres principal es un servidor de nombres que obtiene los datos de sus zonas
de archivos locales. Los cambios en una zona, como la adición de dominios, se realizan en el servidor
de nombres principal.
Un servidor de nombres secundario obtiene los datos de sus zonas de otro servidor de nombres
de la Red que tiene autoridad para esa zona (normalmente de un servidor de nombres principal).
El proceso de obtención de información de estas zonas (es decir, el archivo de base de datos) por
16
red se conoce como una transferencia de zona.
En el proceso de resolución de nombres, los servidores de nombres almacenan en caché las
respuestas obtenidas fuera de su zona para evitar tiempo en la resolución de respuestas a peticiones
similares. En este proceso, se realiza la búsqueda a través de la jerarquía de nodos de nombres del
DNS hasta encontrar la resolución de la petición. Existe un tiempo de vida (TTL Time To Live)
que se especifica a través de los datos que se intercambian los servidores de nombres, y que controla
el tiempo que se almacenarán estos datos. Evidentemente, a menor tiempo de vida, mayor carga
para el servidor de nombres, pero más fiabilidad de los datos del dominio.
2.2.1.Delegación
El objetivo principal del diseño del Sistema de Nombres de Dominio es su administración de-
scentralizada. Esto se consigue a través de la delegación. La delegación de dominios funciona de
forma parecida a la delegación de tareas en una organización. Así, una organización que administra
un dominio puede dividirla en subdominios. Cada subdominio puede ser delegado a diferentes orga-
nizaciones, lo cual implica que esa organización será responsable de mantener los datos (registros de
recursos) de ese subdominio. Esa organización puede libremente cambiar los datos e incluso volver
a dividir el dominio delegado en subdominios y delegarlos. El dominio padre solamente contiene
enlaces a los responsables del subdominio delegado, de forma que pueda hacer referencia a ellos
cuando se le planteen consultas sobre nombres en dicho subdominio delegado.
Realmente, la subdivisión de un dominio en subdominios y la delegación de dichos subdominios
son cosas distintas. En primer lugar, un dominio que tenga capacidad de autogestión (autoridad),
siempre puede decidir subdividirse en diferentes subdominios, manteniendo él, en principio, la
autoridad sobre todos ellos. Posteriormente, la organización que gestiona el dominio puede decidir
además delegar la autoridad de algunos (o todos) sus subdominios en otras organizaciones. La
delegación es una acción que siempre decide el dominio padre, y éste puede revocarla cuando desee,
volviendo a retomar la autoridad sobre el subdominio que había delegado.
Para que una zona especifique que uno de sus subdominios está delegado en una zona diferente, es
necesario agregar un registro de delegación y, generalmente, el denominado registro de pegado" (glue
record). El registro de delegación es un registro NS en la zona principal (padre) que define el servidor
de nombres autorizado para la zona delegada. El registro de pegado es un registro tipo A para el
servidor de nombres autorizado para la zona delegada, y es necesario cuando el servidor de nombres
autorizado para la zona delegada también es un miembro de ese dominio (delegado). Donde un
17
registro de recursos NS (Name Server) indica los servidores de nombres autorizados para la zona.
Cada zona debe contener registros indicando tanto los servidores principales como los secundarios.
Por tanto, cada zona debe contener, como mínimo, un registro NS. Y un registro de recurso tipo
A (Address) asigna un nombre de dominio completamente cualificado a una dirección IP, para que
los clientes puedan solicitar la dirección IP de un nombre de host dado.
2.2.2. Ataques al DNS
Aunque DNS es un sistema distribuido podría verse afectado por algunos tipos de ataques
tratando daños críticos a los TLDs y llevando a atenuantes en el rendimiento. En los últimos foros,
se concluyó que es necesario advertir que la red es vulnerable a un ataque terrorista o malicioso, y
es aquí donde se presenta el término ataque. Así, un ataque se puede definir como todas aquellas
acciones que supongan una violación de la seguridad de un sistema (confidencialidad, integridad
o disponibilidad). Un recurso del sistema es destruido o se vuelve no disponible y es así como se
forma un ataque contra la disponibilidad. Una entidad no autorizada consigue acceso a un recurso
y esto es un ataque contra la confidencialidad. Una entidad no autorizada no sólo consigue acceder
a un recurso, sino que es capaz de manipularlo (virus y troyanos poseen esa capacidad) y pues éste
es un ataque contra la integridad.
Los servidores raíz son objetivos potenciales, porque llevan todo el tráfico dirigido a la Web
y contienen toda la información, como listas de direcciones. Ataques de denegación de servicio a
estos trece servidores raíz podría ser una de las armas para hacer caer el gran árbol de DNS. Por
ejemplo, durante determinados períodos de tiempo, muchos de los servidores fueron totalmente
inoperantes, con un incremento del 10 por ciento en la pérdida total de paquetes transmitidos en la
red. Esto es lo que se conoce actualmente como un ataque al DNS. El más común de los ataques de
piratas informáticos borra o desfigura sitios Web, o disminuye su velocidad de respuesta a ataques
de denegación de servicio. La combinación con los virus, gusanos y troyanos ha logrado destruir más
documentos de los que cualquier tipo de violencia física podría generar. Como ejemplo concreto se
tiene el famoso ataque de Akamai [19]. El ataque fue expresamente hacia los servidores de DNS
de Akamai, produciendo lentitud en la resolución de nombres y en el momento la imposibilidad de
llevarla a cabo. Los sitios Web de Google, Yahoo, Microsoft y otros, estuvieron fuera de línea debido
a un ataque distribuido de negación de servicio (DDoS por sus siglas en inglés), que duró dos horas
hasta que estas compañías redireccionaron sus registros de DNS hacia sus propias computadoras. El
error en el servidor DNS de Akamai, fue por un ataque DDoS dirigido por piratas informáticos rusos
18
Tab. 2.1: Tipos de ataques
con el propósito de mostrar su capacidad para inactivar el sitio de Microsoft www.microsoft.com. De
igual forma existen varias clases distintas de amenazas al DNS. Muchas de las cuales, son instancias
relacionadas al DNS en problemas más generales, pero algunas son específicas a peculiaridades del
protocolo DNS. El resumen de los principales ataques al DNS se muestra en la tabla 2.1. Un ataque
al DNS puede traer consecuencias severas, impidiendo el funcionamiento correcto del Internet y
afectando a un gran número de usuarios. Así, se hace sorprendente que aproximadamente el 80 por
ciento de los nombres de dominio son servidos por sólo 2 servidores, y el 0.8 por ciento, por sólo
uno [13].
19
1
2
3
4
5
6
Tipos de Ataques
Interceptación de paquetes
Predicción de preguntas DNS e ID
Cambiar el nombre
Traición por un servidor confiable
Negación de servicio
Negación autenticada de Nombres de Dominio
Man-in-the-middle(MITM) y
escuchar detrás de la puerta
(eavesdropping)
Ataque de búsqueda de fuerza
bruta
Conocido como envene-
namiento del caché
El servidor puede ser configu-
rado para dar respuestas que
no son las esperadas por el
usuario
Ataque a un sistema que
causa que un servicio o recur-
so sea inaccesible a los usuar-
ios legítimos
Existencia de tipos de RR
donde su ausencia causa una
acción más que la falla in-
mediata
En cuanto a la Interceptación de paquetes, este tipo de amenazas en peticiones, combinada
con respuestas corruptas alteran la respuesta real que el DNS regresa al resolver (servidor que se
encarga de la traducción de un nombre Internet en su dirección IP equivalente u otra información
para DNS). Mientras que la interceptación de paquetes está lejos de ser un problema único del DNS,
el comportamiento usual del DNS es enviar preguntas o respuestas completas en paquetes UDP
individuales que no están cifrados. Esto hace que este tipo de ataques sean particularmente fáciles
para cualquier agente malicioso con la habilidad de interceptar paquetes en una red compartida.
En la predicción de preguntas DNS e ID es importante tener en cuenta que desde que el DNS
es usado, en su mayor parte, sobre los protocolos UPD/IP, es relativamente fácil para un atacante
generar paquetes los cuales concuerden con los parámetros de los protocolos de transporte. El campo
ID en el encabezado del DNS es un campo de únicamente 16 bits y el puerto UDP del servidor
asociado con DNS es un valor bien conocido, por lo tanto existen solo 232 posibles combinaciones
de ID y el puerto UDP por cada cliente-servidor asociados. Esto no es un rango muy grande y
no es suficiente para proteger en contra de un ataque de búsqueda de fuerza bruta; además, en la
práctica, tanto el puerto UDP del cliente como el ID pueden ser predichos gracias al tráfico previo,
y no es fuera de lo común para el puerto del cliente ser un valor fijo conocido (esto es debido a
los firewalls u otras restricciones), así, frecuentemente sereduce el espacio de búsqueda a un rango
menor que 216.
Quizás la clase más interesante de amenazas específicas al DNS son los ataques name changing
(cambiando el nombre). Éstos son un subconjunto de una clase mas amplia de ataques basados
en nombres, algunas veces estos ataques son conocidos como envenenamiento del caché (cache
poissoning). La mayoría de los ataques basados en nombres pueden ser parcialmente mitigados
revisando registros de recursos (RRs) en mensajes de respuesta para verificar relevancia con la
pregunta original, pero este tipo de defensa no puede detectar ataques name changing. Así, cualquier
RR es, al menos en principio, un gancho que le permite al atacante alimentar datos corruptos
dentro del caché de la víctima, potencialmente subvertiendo de esta manera decisiones subsecuentes
basadas en nombres DNS.
Otra variación en la interceptación de paquetes es un servidor confiable que se torna no tan
confiable, Traición por un servidor confiable, ya sea por accidente o por intento. Muchas máquinas
clientes están configuradas únicamente con resolvers incompletos y usan servidores confiables para
realizar todas sus preguntas DNS. En muchos casos el servidor confiable es suministrado por el ISP
(Internet Service Provider, por sus siglas en inglés) del usuario y le satisface al cliente sus necesi-
dades. Además de la traición accidental de esta relación confiable (vía fallas del servidor, roturas
20
exitosas dentro del servidor, etc.), el servidor mismo puede ser configurado para dar respuestas que
no son las esperadas por el usuario, ya sea en un intento legítimo para ayudar al usuario o para
promover algún otro objetivo tal como suministrar un socio de negocios entre el ISP y alguna otra
tercera parte.
Como cualquier otro servicio de red, DNS es vulnerable a ataques de negación de servicio (DoS,
Denial of Service, por sus siglas en inglés). En estos ataques el atacante utiliza una máquina para
quitar de operación un servicio o computadora conectada a Internet. Algunos ejemplos de este tipo
de ataque son: generar una gran sobrecarga en el procesamiento de datos de una máquina, de modo
que el usuario no pueda utilizarlo; generar un gran tráfico de datos en una red, ocupando todo
el ancho de banda disponible, de modo que cualquier computador en esta red quede inutilizable;
eliminar servicios importantes de un proveedor de internet, imposibilitando el acceso de los usuarios
a sus cuentas de correo en el servidor de e-mail o en el servidor Web. Servidores DNS están también
en riesgo de ser usados como amplificadores de negación de servicio, ya que los paquetes de respues-
tas DNS tienden a ser significativamente más largos que los paquetes DNS de preguntas. Algunas
de las variantes de un ataque de negación de servicio son: consumo de ancho de banda, que consiste
en consumir todo el ancho de banda, y puede darse de forma individual o bien uniendo multitud de
pequeñas máquinas para saturar la conexión de red de la víctima. Un segundo tipo de ataque es por
inanición de recursos; está enfocado al consumo de los recursos del sistema, a la saturación de la
CPU y/o memoria hasta que la máquina se cae. Este tipo de ataque, generalmente provoca un fallo
general del sistema. Un tercer tipo de ataque DoS es por los errores de programación por medio de
envío de datos anormales, que no cumplen las RFC (normas de definición del protocolo) al sistema
objetivo: si la pila TCP/IP no es capaz de manejar estas excepciones y los programadores no han
supuesto estos casos, terminará con la caída del sistema. A veces no son defectos de programación:
son defectos del hardware, defectos de algún chip, o defectos de la propia CPU. Un cuarto tipo de
ataque son los ataques DNS y de enrutamiento. La mayoría de los protocolos de enrutamiento como
RIP (Routing Information Protocol, por sus siglas en inglés) o BGP (Border Gateway Protocol, por
sus siglas en inglés) carecen de autenticación, o tienen una muy sencilla. Se trata por tanto de
un escenario perfecto para que cualquier atacante pueda alterar las rutas correctas y, falsificando
su IP origen, crear una condición DoS. Las víctimas de estos ataques verán cómo su tráfico se
dirige por ejemplo hacia a una red que no existe. Los ataques DoS sobre servidores de nombres de
dominios (DNS) son tan problemáticos como los anteriores. Estos ataques intentan convencer al
servidor DNS, por ejemplo, para almacenar direcciones falsas: cuando un servidor DNS realiza una
búsqueda, el atacante puede redireccionar a su propio servidor o bien a un Agujero Negro.
21
Han tomado lugar mucha discusiones sobre la cuestión de negación autenticada de nombres de
dominio. La pregunta particular es si hay un requerimiento para autenticar la no-existencia de un
nombre. El problema es si el resolver debería poder detectar cuando un atacante remueve RRs
desde una respuesta. Algo inquietante es la existencia de tipos de RRs de quienes su ausencia causa
una acción más que la falla inmediata, esto constituye la verdadera amenaza. Se podría decir, en
algunos casos, que incluso la falta de un RR podría ser considerado un problema.
2.3. El caché
El caché es una colección de datos duplicados donde los datos originales fueron almacenados
en algún otro computador anteriormente. El funcionamiento del caché es como sigue: cuando el
caché de un cliente (una CPU, un navegador web, un sistema operativo) espera acceder a un
recurso de datos, el cliente primero revisa su caché. Si la información por la que quiere preguntar
es encontrada, el cliente toma la respuesta del caché y la graba [10]. La situación alternativa,
cuando se consulta el caché y el recurso deseado no se encuentra, el dato se busca entonces en la
fuente original y posteriormente es pasado al cliente que preguntaba por el mismo. El resultado se
almacena en el caché del cliente, listo para un acceso futuro [10]. Actualmente, el caché evita la
transmisión de los objetos idénticos repetidos, pero sólo funciona si los objetos son completamente
intercambiables, pero falla cuando éstos se han modificado ligeramente [5].
Cada vez que un servidor de nombres envía una respuesta, lo hace adjuntando el tiempo de
validez de la misma (TTL, Time-To-Live, por sus siglas en inglés, "tiempo de vida"). Esto posi-
bilita que el receptor, ante la necesidad de volver a resolver la misma consulta, pueda utilizar la
información previamente obtenida en vez de realizar un nuevo requerimiento. Esta es la razón por
la cual los cambios realizados en el DNS no se propagan instantáneamente a través del sistema.
Dependiendo de la naturaleza de los mismos (y de la configuración de cada servidor), la propagación
puede tardar desde algunos minutos hasta varios días.
Sin embargo la utilidad del caché se ve ampliamente reducida si las copias del mismo no son
actualizadas cuando el servidor original cambia sus datos. Así mismo, los mecanismos de consis-
tencia del caché aseguran que las copias deben ser constantemente actualizadas al reflejar cambios
la información original. Algunos de estos mecanismos son: campos TTL (Time-To-Live, por sus
siglas en inglés), preguntas frecuentes de un cliente, e invalidación de protocolos [10]. Los campos
TTL estiman el tiempo de vida de un recurso el cual es usado para determinar cuánto tiempo
22
los datos pueden permanecer como válidos en el caché. La pregunta frecuente de un cliente es la
técnica en la cual los clientes periódicamente están revisando su información con el servidor con el
fin de determinar si sus recursos en el caché aún siguen válidos. La invalidación de protocolos es
requerida cuando se necesita una fuerte consistencia y depende de la forma de rastreo del servidor
por los datos, así, en cada intervalo de tiempo un ítem cambia y el servidor notifica a sus caches
que ya las copias que tienen no son válidas. Un problema de la invalidación de protocolos es que
requieren un alto costo y varias modificaciones al servidor [10].
Un ataquefrecuente al caché es llamado Envenenamiento del Caché. Este tipo de ataques
requiere la existencia de una falla de seguridad en el servidor, con el objetivo que esa falla haga
que el servidor acepte información falsa que parece legítima como si fuera verdadera. Las fallas
referidas son aquellas que provocan que el servidor no pueda validar la veracidad del punto origen
de la información, dando por buena cualquier información recibida, que evidentemente, es servida
a los usuarios que circulen por el servidor DNS. Esto puede ser aprovechado para que el atacante
tome control de las acciones del servidor DNS, siendo la más frecuente la redirección a un servidor
que opere bajo su control. Estos ataques han sido recientes, es decir, a medida que el Internet se ha
vuelto una red cada vez más amplia y complicada, los equipos han adquirido mayor almacenamiento
de información y es aquí donde el caché juega un papel importante y, a la vez, puede hacerse
también vulnerable. Es por esto que el mantenimiento de la coherencia de un caché fuerte en
DNS como un mecanismo de manejo se ha vuelto más y más exigente en cuanto a tres objetivos
importantes: responder rápidamente y manejar peticiones excepcionales, como las repentinas fallas
de Internet causadas por desastres naturales y humanos. Adaptar cada vez frecuentes cambios de
direcciones IP, debido a la introducción de técnicas DNS dinámicas para dispositivos de Internet.
Y para proporcionar servicios de control de contenido y equilibrio de distribuciones. De esta forma,
el caché del DNS con una fuerte coherencia mejora la disponibilidad y fiabilidad de los servicios
de Internet [3]. Es por esto que con un despliegue que ha tenido el uso del caché como medio
indispensable en las redes de la actualidad, la consistencia en el caché empieza a tomar más seriedad.
Una fuerte consistencia en el caché se define como el modelo en el cual una copia antigua de un
recurso original nunca es entregada a los clientes. Actualmente, DNS sólo soporta una consistencia
débil de caché con el uso del mecanismo de TTL, así el campo TTL de cada registro indica cuánto
tiempo puede ser almacenado en caché este recurso [3]. La mayoría de los TTLs de los registros
de recursos están en el rango de 1 hora a 1 día [6]. Si un cambio puede ser anticipado el TTL
debe ser reducido para minimizar la inconsistencia para dicho cambio y luego se incrementa a su
23
valor anterior para esperar el siguiente cambio (según el RFC 1034, Request for Comments). Sin
embargo, el RFC no especifica en cuánto se debe reducir el TTL [3]. Sin embargo un tamaño de
TTL demasiado reducido puede disminuir las posibilidades de incosistencia en el caché, pero va a
significar en un incremento en el tráfico DNS lo cual puede degradar seriamente la escalabilidad de
este servicio. Con todo esto, si no hay una consistencia en el caché entre los servidores DNS va a
ser muy difícil saber cuándo un registro ya caducó, es decir, ya no tiene información actualizada
[3] y es por esto que la incosistencia forma una gran amenaza para los servicios de Internet.
2.4. Protocolos de coherencia del caché
Con la replicación se lograr coherencia en el caché, la cual es utilizada para el mantenimiento
automático de copias de datos en múltiples computadores, por ejemplo el almacenamiento de datos
provenientes de servidores Web en la memoria caché. Los protocolos aseguran que el caché (general-
mente controlado por los clientes en lugar de los servidores) es consistente con las réplicas iniciadas
por el servidor. En sistemas multiprocesador con memoria compartida muchas soluciones se basan
en el hardware. En sistemas distribuidos generalmente, las soluciones son basadas en software y
son más interesantes.
2.5. Sistemas de Información Autoconfigurables
En los últimos 10 años los sistemas han visto la necesidad de volverse rápidamente reconfig-
urables para satisfacer las demandas de forma eficiente, lograr alta disponibilidad en escenarios de
fallas e incorporación fácil a nuevos equipos y maquinaria. Los sistemas autoconfigurables tienen
ventajas potenciales, tales como: descomposición jerárquica del problema de control, lenguaje for-
mal para descripción de problemas de equipos y verificación de incorrecciones de los sistemas de
control [2]. Aquí también juegan un papel muy importante los sistemas distribuidos, los cuales son
funcionales, hacen distribución del trabajo en toda la red, son económicos y se distribuyen fácil-
mente de forma geográfica. La técnica mas simple de interconectar varios computadores se llama
punto a punto, la cual enlaza a los computadores mediante cable o inalámbricamente. Aquí se per-
mite a los usuarios compartir impresoras e intercambiar archivos, pero no existe un almacenamiento
centralizado de datos ni elementos de seguridad.
Una clase específica de las redes autoconfigurables son las redes Peer-To-Peer que aprovechan,
administran y optimizan el uso del ancho de banda que acumulan de los demás usuarios en una
24
red por medio de la conectividad entre los mismos usuarios participantes de la red, obteniendo
como resultado mucho más rendimiento en las conexiones y transferencias que con algunos métodos
centralizados convencionales donde una cantidad relativamente pequeña de servidores provee el total
de ancho de banda y recursos compartidos para un servicio o aplicación. El elemento fundamental
de toda red P2P es un par o un igual ( en inglés: peer), y es la unidad de procesamiento básico de
cualquier red P2P. Un par es una entidad capaz de desarrollar algún trabajo útil y de comunicar los
resultados de ese trabajo a otra entidad de la red, ya sea directa o indirectamente. El mapeo de la
topología de una red, junto con las reglas de comportamiento de cómo se vinculan los nodos, provee
una explicación potencial del comportamiento subyacente de la misma. Las topologías de redes P2P
emergen espontáneamente de una multitud de acciones individuales, los usuarios se conectan a la
red P2P cuando lo desean y la abandonan a su gusto. Consecuentemente, la estructura de las redes
P2P evoluciona segundo a segundo, dependiendo de qué usuarios están conectados [8].
En una red P2P ni los clientes ni los servidores son fijos. Además en estas redes se hace un
manejo y optimización del ancho de banda para todos los usuarios repartiendo adecuadamente la
carga de forma balanceada. Como resultado se obtiene más eficiencia en las conexiones y en las
transferencias, lo que no es tan eficiente con un método centralizado convencional donde un número
de servidores provee el ancho de banda total y maneja la compartición de archivos para un servicio o
aplicación. Entre las aplicaciones más comunes de las redes P2P están compartir y buscar archivos,
sistemas de archivos distribuidos, sistemas de telefonía por Internet, alternativas a la distribución
convencional de filmaciones y televisión y cálculos científicos con bases de datos, entre otras.
Las ventajas que puede tener un sistema distribuido como las redes P2P son bastante in-
teresantes. En la tabla 2.2 se muestran de forma comparativa las ventajas y desventajas de una
arquitectura P2P.
2.5.1. Topologías de Red
La topología de red es la disposición física en la que se conecta una red de equipos. Si una red
tiene diversas topologías se la llama mixta. Algunas de las topologías más comunes para las redes
son:
• Bus: Es una topología de red en la que todas las estaciones están conectadas a un único canal
de comunicaciones. Los nodos utilizan este canal para comunicarse con el resto. Es la más
sencilla de las topologías. Físicamente cada nodo está conectado a un cable común, por lo que
25
Tab. 2.2: Ventajas y desventajas de las redes P2P
Redes P2P
VENTAJAS
Minimización la conegestión y cuel-
los de botella debido a que las
conexiones se realizan punto a punto
Descentralizadas
Anónimas
Al añadir un nodo a la red no es
necesario reestructurarla
Mayor escalabilidad por tener
menor latenciay mejor auto-
organización
Bajos costos de funcionamiento
Alta tolerancia a errores
Las transferencias son más rápidas
y facilita encontrar varias fuentes de
descarga
DESVENTAJAS
Incrementa la complejidad del en-
torno debido a la heterogenidad de
los nodos
Difícil de administrar
No existe ningún tipo de nitro, lo
que la hace poco confiable
Baja seguridad y ésta depende de
cada nodo
El software y el hardware de un no-
do son generalmente muy determi-
nantes en cuanto al caché
26
se pueden comunicar directamente, aunque la ruptura del cable hace que los nodos queden
desconectados.
• Estrella: Es una red en la cual las estaciones están conectadas directamente a un pun-
to central y todas las comunicaciones se han de hacer necesariamente a través de éste. Es
comúnmente utilizada sobre todo para redes locales.
• Árbol: Los nodos están colocados en forma de árbol. Físicamente es parecida a una serie de
redes en estrella interconectadas salvo en que no tiene un nodo central. En cambio, tiene un
nodo de enlace troncal desde el que se ramifican los demás nodos. Es una variación de la red
en bus, la falla de un nodo no implica interrupción en las comunicaciones. Se comparte el
mismo canal de comunicaciones.
• Anillo: Las estaciones se conectan formando un anillo. Cada estación está conectada a la
siguiente y la última está conectada a la primera. Cada estación tiene un receptor y un
transmisor pasando así la señal a la siguiente estación.
• Malla: Es una topología de red en la que cada nodo está conectado a uno o más de los
otros nodos. De esta manera es posible llevar los mensajes de un nodo a otro por diferentes
caminos. Si la red de malla está completamente conectada, no puede existir absolutamente
ninguna interrupción en las comunicaciones.
Las principales topologías de red está ilustradas en la figura 2.4 donde se expresa gráficamente
la ubicación de los nodos en cada una de ellas. En el presente trabajo, las redes P2P están basadas
en una topología de anillo donde los nodos están conectados como circuito cerrado sin ningún
sistema central en la red.
2.5.2. Protocolos
Adicionalmente, las redes P2P pueden trabajar sobre protocolos como algunos de los siguientes,
los cuales definen cómo está distribuida la información y cómo será el desempeño de la búsqueda
de dicha información:
• Tapestry: Es una estructura de soporte de código abierto para la creación de aplicaciones
web de forma dinámica, robusta y altamente escalable en Java. Además es una infraestructura
de ruteo que provee enrutamiento de ubicación independiente de mensajes hacia la copia
más cercana de un objeto o servicio usando enlaces punto a punto y sin emplear recursos
27
Fig. 2.4: Estructuras de topologías de red
centralizados. Tapestry es seguro en la administración, tolerante a fallas y resistente a sobre
carga en la red [25].
• Pastry: Es un esquema genérico, escalable y enciente para aplicaciones P2P. Los nodos Pastry
forman una red descentralizada, auto-organizada y tolerante a fallos. Así, cada nodo tiene un
único identificador, guarda información de sus vecinos, notifica aplicaciones si hay algún nodo
que arriba, que falla o que se descubre. Pastry es completamente descentralizado y escalable,
se adapta automáticamente a nuevas conexiones, desconexiones y fallas de nodos [15].
• CAN: Es un protocolo de comunicaciones basado en una topología bus para la transmisión
de mensajes en ambientes distribuidos, además ofrece una solución a la gestión de la comu-
nicación. Es decir, es una infraestructura distribuida que proporciona tablas "hash". Tiene
características como: escalabilidad, tolerancia a fallas y completa organización. Posiblemente
el mejor ejemplo de sistemas de Internet actuales que son potencialmente implementados por
CAN son los sistemas para compartir archivos P2P recientemente introducidos, tales como
Napster y Gnutella [14].
28
• Chord: Es un protocolo sencillo y escalable de búsqueda distribuida en redes P2P que rela-
ciona contraseñas con nodos. Está diseñado para funcionar en redes descentralizadas y su
funcionamiento permite concluir con un resultado exhaustivo de la búsqueda. Provee soporte
para las contraseñas y las mapea dentro de un nodo. Además, se adapta eficientemente si en
el sistema los nodos están entrando y saliendo y puede responder peticiones aunque el sistema
esté cambiando continuamente [18].
Es así como, en la propuesta que se presenta en este trabajo se ha usado el protocolo Pastry
y Tablas de Hash Distribuido (Distributed Hash Tables, DHT, por sus siglas en inglés). Las tablas
DHT son una clase de sistemas distribuidos descentralizados que proveen servicios de búsqueda y
recuperación y reparten la propiedad de un conjunto de claves entre los nodos que participan en
una red, y son capaces de encaminar eficientemente mensajes al dueño de una clave determinada.
Estas tablas son diseñadas para tratar un número grande nodos y procesar altas y bajas de los
mismos. Las tablas DHT pueden servir para sistemas de almacenamiento y recuperación de archivos
en redes P2P y almacenamiento cooperativo en la Web.
El sistema Pastry es una red auto-organizada de nodos, donde cada nodo rutea las peticiones
de los clientes e interactúa con los demás en una o más aplicaciones. Cualquier computador que se
conecta a Internet y corre bajo el protocolo Pastry, dicho nodo puede actuar como un nodo Pastry y
bajo las políticas de seguridad de las aplicaciones específicas. A cada nodo en una red P2P Pastry se
le asigna un identificador de nodo (ID) de 128 bits. El ID es usado para indicar la posición del nodo
en un espacio circular, cuyo rango es de 0 a 2128 — 1. El ID es asignado de forma aleatoria cuando
un nodo se une al sistema. Se asume que los IDs generados forman un conjunto uniformemente
distribuido. Por ejemplo los IDs pueden ser generados por la computación criptográfica hash de las
claves públicas o de las direcciones IP. Como resultado de esta asignación aleatoria de IDs, con alta
probabilidad, los nodos con IDs adyacentes son diversos en la red. Asumiendo una red que consta
de N nodos, Pastry puede rutear al nodo numéricamente más cercano en menos que [log(2b).N]
pasos, bajo una operación normal (6 es un parámetro de configuración de valor típico 4). A pesar
de las fallas de nodos en la red, la entrega de información se garantiza a menos que [ L / 2 j nodos
con IDs adyacentes fallen simultáneamente (\L\ es un parámetro de configuración de valor típico 16
ó 32) [15]. La figura 2.5 muestra la búsqueda para satisfacer una petición donde la red se comporta
bajo el protocolo Pastry, y cuando se hace la petición, los nodos van acercando a la misma a su
nodo destino de una forma lógica y eficiente, buscando tener el menor número de saltos para avitar
congestionar la red.
29
Fig. 2.5: Ejemplo del comportamiento del protocolo Pastry
congestionar la red.
En estudios recientes se ha visto que las redes P2P han sido altamente empleadas para compartir
información o para dar pasos para encontrar dicha información. Los datos en los caches de la red
son frecuentemente utilizados para reducir el tiempo de respuesta en las redes P2P y es aquí donde
se presenta uno de los problemas más comunes actualmente, que es el envenenamiento del caché.
Esto ocurre puesto que la funcionalidad principales de una red P2P es permitir la entrada y salida
de nodos al sistema, donde para buscar archivos, un nodo envía un mensaje a los nodos con
los cuales está conectado. Estos nodos buscan si los archivos están disponibles de forma local y
reenvían el mensaje de búsqueda a los nodos a los que ellos están conectados. Si un nodo posee el
archivo, inmediatamente contesta al nodo original que lo solicitó. Este es un método de difusión
del mensajes llamado inundación de red. La descarga de archivos se hace directamente desde los
nodos que contestaron. Si son múltiples nodos, suele partirse el archivo en diferentes trozos y cada
nodo envíauno de estos, aumentando la velocidad total de descarga.
2.5.3. Proceso P2P
En el proceso de preguntas y respuestas a un servidor, juegan un papel muy importante los
conceptos que allí se manejan, tanto de preguntas y respuestas, como los entes que están involucra-
dos en satisfacer dichas peticiones, entre los cuales se explican a continuación los más relevantes.
Un cliente es un computador o equipo configurado para conectarse a un servidor y realiza peti-
ciones de servicio a los proveedores del mismo. Así, el cliente envía mensajes a un servidor que las
30
quedará satisfecha. Un servidor es un equipo, generalmente, más sofisticado y robusto que el del
cliente, encargado de proporcionar información, recursos y servicios a los clientes de la red. Los pro-
cesos del servidor pueden residir en una máquina que también actúa como cliente de otro servidor.
Además, un servidor puede dar acceso a otras redes, actuando como un servidor de comunicaciones
que conecta a otros servidores que actúan como nodos de la red. Un nodo de una red es un espacio
real o abstracto en el que confluyen parte de las conexiones de otros espacios reales o abstractos
que comparten sus mismas características y que a su vez también son nodos. Todos estos nodos
se interrelacionan entre sí de una manera no jerárquica (para una red P2P) y conforman una red.
Una petición consiste en una lista de palabras que se envían. Cuando un servidor recibe una peti-
ción busca si tiene información que coincida con dicha petición en su índice. El servidor, entonces,
reúne el máximo número de resultados para retornarlos, y así se dice que la petición ha quedado
satisfecha [24]. De esta forma la respuesta es el número de resultados que el servidor proporciona
cuando encontró una coincidencia en él mismo con respecto a la petición que le fue hecha.
Cuando un usuario se registra, sólo los archivos que fueron adicionados o removidos desde la
última salida del usuario serán reportados, esto para incrementar la eficiencia; sin embargo, esta
política en algunas arquitecturas se torna ineficiente puesto que quiere decir que el usuario se debe
reconectar al mismo servidor siempre. A continuación en la tabla 2.3 se presentan las principales
arquitecturas en cuanto al registro y la interacción usuario-servidor [24].
En una arquitectura Encadenada, cuando un usuario se registra por primera vez, sólo el servidor
local lo agrega a su índice y si el usuario hace una petición, su servidor trata de satisfacerla solo, si
no puede, se comunica con un servidor remoto de la cadena para que éste satisfaga la petición. El
servidor local sigue enviando la petición hasta que hayan encontrado el mayor número de resultados
o hasta que todos los servidores hayan recibido y atendido la petición. En la Replicación Completa,
cada nuevo servidor debe procesar la petición, los resultados deben ser enviados al servidor original,
y dichos resultados deben unirse. En la arquitectura de Hash, Las diferentes palabras de los datos
son puestas en un algoritmo de hash en los servidores, entonces un servidor dado mantiene la lista
invertida completa de un subconjunto de todas las palabras. Las palabras puestas bajo el algoritmo
de hash son distribuidas tal que cada servidor tiene un trabajo aproximadamente igual. Cuando un
cliente se registra, los datos de sus archivos son enviados a los servidores que contienen las listas
de esas palabras. Y en una arquitectura Desencadenada, un usuario que se registra en un servidor
local sólo puede ver los archivos de los usuarios de ese mismo servidor local [24].
31
Tab. 2.3: Arquitecturas P2P
32
ARQUITECTURA
Encadenada
Replicación comple-
ta
Hash
Desencadenada
MODELO
Los servidores
utilizan una
cadena lineal
para responder
peticiones
Depende de la
razón de fre-
cuencia de los
registros a las
peticiones y del
tamaño del índice
Por medio de
identificadores
generados de
forma aleatoria
Conjunto de
servidores inde-
pendientes que no
se comunican con
los otros
VENTAJAS
El registro y la descarga son
rápidos y escalables porque
afectan sólo el servidor local
del usuario
Cada servidor mantiene
un índice completo de los
archivos de todos los usuarios,
entonces todas las peticiones
podrán ser satisfechas por
un solo servidor. Así, con el
incremento de registros los
usuarios pueden conectarse
a cualquier servidor. Si los
servidores están conectados
en una red de broadcast,
la propagación de regis-tros
será más enciente
Un número limitado de servi-
dores se encargan de una peti-
ción y los resultados no nece-
sitan ser enviados entre servi-
dores
Es escalable linealmente con
el número de servidores en el
sistema
DESVENTAJAS
Las peticiones se logran
de una forma más cos-
tosa si son requeridos
muchos servidores de la
cadena para satisfacer
la petición [24]
Todos los registros
deben ser enviados a
cada servidor, entonces
cada uno debe tener
su copia del índice
y la información de
conexión [24]
El ancho de banda nece-
sario para enviar las lis-
tas entre servidores [24]
No permite que los
usuarios puedan ver
a otros usuarios del
sistema. Provee una
búsqueda parcial [24]
Así, todos estos conceptos juegan un papel fundamental en una red P2P, donde los sistemas
P2P pueden ser clasificados en 3 categorías. Sistemas centralizados, los cuales tienen un servidor
de directorio central al cual los usuarios (clientes) hacen las peticiones o búsquedas. Cada vez que
un cliente se conecta o desconecta de la red, la base de datos se actualiza. Todos los mensajes
de búsqueda y control son enviados al servidor centralizado. El servidor centralizado compara la
solicitud de sus clientes con el contenido de su base de datos y envía las correspondencias al cliente
en cuestión. Como ventajas, permite mantener las tareas de control de acceso, administración y
sincronización. Proporciona un rendimiento muy elevado a la hora de localizar recursos siempre
y cuando el servidor esté bien dimensionado. Aunque este modelo centralizado puede funcionar en
ciertas organizaciones, éste no suele ser el caso de grandes organizaciones distribuidas geográfica-
mente con un gran número de usuarios, en las cuales puede resultar inmanejable e impracticable
gestionar todos los recursos desde un único servidor centralizado. Así es como se presentan algunos
inconvenientes como que estos sistemas tienen un único punto de falla lo que los hace altamente
vulnerables [9], y otros problemas como no escalabilidad, necesidad de presencia física y alto costo;
como ejemplo de estos sistemas se encuentra Napster.
Los sistemas descentralizados o P2P puros no tienen un servidor central, sino que al contrario, los
nodos forman una red entre ellos mismos y así se envían peticiones formando un modelo distribuido.
Cada nodo actúa como servidor y como clientes en la red. Cada par dentro de esta arquitectura
trata de mantener un cierto número de conexiones con otros pares durante todo el tiempo. A pesar
de que el número de saltos de la red es potencialmente infinito, permanece limitado por un tiempo
de vida máximo o TTL, relacionado con el máximo número de saltos que puede dar un mensaje.
Por cada nodo o par por el que circula el mensaje de petición se decrementa en una unidad el TTL
descartándose la petición si esta llega a cero. El modelo P2P puro es más robusto al no depender
de un servidor central, además más económico. La principal desventaja es el elevado tiempo y
sobrecarga de ancho de banda que suponen las búsquedas de información en la red. Además puede
ser que el recurso buscado y existente ni siquiera pueda ser encontrado [16]. Un esquema de un
sistema P2P puro se muestra en la figura 2.6.
Entre estas redes de diseño descentralizado, algunas son estructuradas en las que hay un cercano
acoplamiento entre la topología de red P2P y la ubicación de los datos; entre estos sistemas se
encuentran Pastry [15], Tapestry [25], Skipnet, CAN [14] y Chord [18]. Otros sistemasP2P
descentralizados son los no estructurados donde no hay acoplamiento entre la topología de red y la
ubicación de la información [4], es decir, no se tiene un control preciso entre la topología de la red
y el lugar donde se encuentran los datos en la misma. Entre estos sistemas se encuentran Gnutella
33
y Freenet.
En los sistemas P2P mixtos o semicentralizados cada nodo cliente mantiene sólo un pequeño
número de conexiones abiertas y cada una de esas conexiones es a un superpar. Así mismo los
superpares están conectados entre sí. Este diseño tiene el efecto de hacer la red escalable, mediante
la reducción del número de nodos involucrados en el enrutamiento y manejo de los mensajes,
así como la disminución del volumen de tranco entre ellos. Además la velocidad de respuesta a las
solicitudes dentro de un entorno mixto es comparable al de un entorno P2P centralizado [16]. Un
esquema de un sistema P2P mixto se muestra en la figura 2.6.
Sistema P2P híbrido
Sistema P2P puro
Fig. 2.6: Esquemas P2P híbrido y mixto
34
3. PROPUESTA
En este capítulo se presentan algunas propuestas que hacen que una red no segura, como P2P,
tenga características de seguridad de la información gracias a las ventajas de DNS en algunos casos,
y en otros, gracias a las ventajas de la codificación de la red. El objetivo principal de esta propuesta
es describir un diseño de servicio de búsqueda P2P de baja latencia para un desarrollo a escala.
Actualmente, el servicio de búsqueda distribuido a escala global y usado en el Internet es el DNS.
Algunos grupos de investigación han comenzado en enfocarse en sistemas P2P para sustituir o
ampliar el sistema DNS.
En una arquitectura de cliente-servidor, según se van añadiendo más clientes, la tasa de trans-
ferencia disminuye a niveles bajos. Esto ocurre porque los recursos en el servidor se ven consumidos
debido al intenso tráfico. En las redes P2P, cada nodo es el que provee los recursos, como es el an-
cho de banda, el espacio de almacenamiento, etc. lo cual se traduce en velocidades de transferencia
mayores. Una red P2P es más robusta en el sentido de que si un nodo falla, los otros nodos no se ven
afectados. Si el nodo que lleva la transferencia de datos se detiene de repente, el mismo contenido
se puede entregar por otros nodos sin tener que esperar hasta que el problema se resuelva. Esto
contrasta con otras arquitecturas de red, donde el fallo en un nodo significa el colapso de toda la
red. El uso de un servidor central como índice de los nodos, pero sin que éste almacene todos los
datos, es una gran ventaja. Las transferencias son más rápidas y más fáciles, dando factibilidad de
encontrar varias fuentes de choque. Sin embargo, estas redes son muy inciertas y es aquí donde este
trabajo tiene su enfoque. Igualmente, cabe hacer una reseña en la que se exponen algunas técnicas
o esquemas relacionados con la propuesta que se va a presentar.
3.1. Esquemas Relacionados
La propuesta [12] Beehive aspira a tener una red "Peer-To-Peer" distribuida con tablas hash
donde se propone una búsqueda bajo el protocolo de Pastry y la búsqueda de información se
realiza por medio de niveles de replicación, así, cada nodo consta de un identificador asignado
aleatoriamente que lo hace único en la red y los niveles de replicación se crean según el acople que
tienen los prefijos de los identificadores. Esto se explica con con figura 3.1, donde el recurso 0121
se replica en su -nodo hogar- E en el nivel 3 y comparte 3 prefijos con éste. Si el modelo analítico
indica que este recurso debe ser replicado a nivel 2, el nodo E pone el recurso en los nodos B e I
con los que comparte 2 prefijos. Ahora, con base en la popularidad del recurso, los nodos del nivel
2 pueden decidir replicar el recurso a nivel 1; así, si el nodo B decide hacer esto, pone copias del
recurso en los nodos A y C con los cuales comparte 1 prefijo y se convierte en nodo de nivel 1.
De igual forma, el nodo E puede replicar el recurso a nivel 1 poniendo copias en los nodos D y F,
y el nodo I, poniendo copias en los nodos G y H [12]. Este esquema propone un desempeño de
búsqueda rápida para peticiones con distribución que sigue la Ley de Potencias con una plataforma
de alto desempeño y aplicaciones de baja latencia, tales como el servicio de nombres de dominios en
redes P2P. Beehive [12] propone, de forma óptima, soluciones indicando los niveles de replicación
apropiados para cada recurso. Además, se trata de evitar el problema de la redundancia en el
protocolo de redes a través de la replicación pro-activa haciendo copias de la información deseada
en torno a la red. Presenta características como: alto desempeño, alta escalabilidad minimizando el
tráfico en la red y reduciendo la carga agregada por nodo con ayuda del menor consumo de ancho
de banda por nodo, y alta adaptabilidad que se ajusta al desempeño del sistema con base en la
distribución de popularidad de los recursos. En este esquema se analiza como medida de desempeño
el número de saltos que requiere un recurso para ser satisfecho, con lo que se obtiene que gracias a
los niveles de replicación, estos saltos disminuyen. Esta propuesta consta de niveles de replicación
en los que se establecen las prioridades para los recursos por medio de sus frecuencias, es decir, los
más comunes se reproducen a un nivel superior y a un mayor número de nodos. Y, por tanto, los
recursos menos frecuentes se replican en un pequeño porcentaje de nodos en el anillo.
En la figura 3.1 se muestra un esquema de la arquitectura mencionada anteriormente.
En la propuesta [13] establece un sistema llamado Sistema de Nombres de Dominio de Co-
operativas (CoDoNS, Cooperative Domain Name System) con la que consigue una búsqueda de
alto rendimiento y resistencia a ataques de denegación de servicio a través de balanceo de cargas
automático, así como con una rápida propagación de las actualizaciones. Esta técnica se aplica a
un anillo P2P distribuido por medio de áreas que tiene ventajas tales como: escalabilidad, descen-
tralización, auto-organización, resistencia y crea un fondo competitivo para el servicio de nombres.
Busca lograr alto desempeño empleando replicación Beehive [12] y pretende ser un respaldo para
el esquema DNS. Esta propuesta pretenede brindar alto desempeño, resistencia a ataques y rápida
36
Fig. 3.1: Esquema Beehive [12]
propagación de las actualizaciones. Además presenta un esquema combinado de redes P2P estruc-
turadas, que mantienen una cooperativa de nodos, con un análisis proactivo del caché.
Trata de una gran cooperativa, donde los nodos comparten el caché, ya que es aquí donde existen
grandes ataques, como causa de denegación de servicio producido por la latencia que provoca
la resolución de consultas y actualización de recursos. El número de popularidades incrementa
exponencialmente en cada nivel. Los nodos del mismo nivel comparten actualizaciones con mensajes
instantáneos. La jerarquización en niveles se hace para hacer eficaz el ancho de banda de la red.
Así, los nodos de cada zona son proporcionales a la popularidad de la misma. Cada nivel tiene
diferente número de clientes, de tamaño y de tasa de actualización. Aquí también se habla de un
nodo hogar en el que se guarda la copia original del recurso, y si este nodo falla, el nodo siguiente
más cercano en el espacio de red automáticamente se convierte en el nuevo nodo hogar. CoDoNS
replica todos los recursos en muchos nodos adyacentes al nodo hogar para evitar la pérdida de datos
debida a fallas en los nodos. Sin embargo, esta propuesta tiene inconvenientes como la dificultad de
administración. Y como ventaja patente, este método hace que los clientes reciban información de
los recursos pedidos en poco tiempo sin causar un tráfico innecesario en la red. Además de contar
con una rápida replicación de recursos en cada uno de los niveles de los que habla la propuesta de
Beehive [12], logrando así una rápida formación del caché de la red con lo

Continuar navegando

Materiales relacionados

300 pag.
Windows Server 2016 - Armelin Asimane

SIN SIGLA

User badge image

Michele Huaman Meza

661 pag.
curso-seguridad-en-sistemas-de-informacion

SIN SIGLA

User badge image

Karen Marlene Valdez

192 pag.