CAPÍTULO 1 SISTEMAS PEER-TO-PEER (P2P)
1.4 Tipos de Redes P2P
1.4.1 Sistemas P2P Puros no Estructurados
Los sistemas P2P puros no estructurados conforman redes completamente descentralizadas donde no existen servidores centrales ni roles especializados. Todos los integrantes de la red poseen el mismo status y cumplen las mismas
Si
st
ema
s
P2P
PurosSin ningún tipo de centralización
No estructurados Ej., Gnutella, FreeNet
Estructurados Ej., Chord, Pastry, CAN Híbridos
Algún tipo de centralización Ej.,Napster, Edonkey, BitTorrent
28 SISTEMAS PEER-TO-PEER (P2P)
funciones conectándose unos con otros en una relación simétrica como pares o iguales. Estos sistemas permiten la creación de entornos dinámicos donde los pares entran y salen de la red con mucha frecuencia debido a que la carga de trabajo que presuponen estas tareas no es considerable.
Históricamente, la primera red P2P diseñada como un sistema P2P puro no estructurado fue Gnutella 0.4 [24] que se implementó con ausencia total de
control central. Esta característica, a diferencia de Napster la convirtió en una red
difícil o quizás imposible de desactivar. Freenet [20] es otra red P2P que se
encuentra en esta categoría y que fuera diseñada con el objetivo de proporcionar libertad de expresión mediante una fuerte protección del anonimato. La estructura de una red P2P totalmente descentralizada sumado al cifrado de todas las comunicaciones entre los pares de Freenet hacen extremadamente difícil rastrear
quién está solicitando la información y cuál es su contenido.
Cada par en una red P2P pura actúa como cliente y servidor al mismo tiempo en relación con otros pares vecinos con los que mantiene una conexión directa en la red overlay. El gráfico presentado en la Figura 1-2 se corresponde con este
modelo de red. Los nodos sólo conocen a aquellos nodos con los cuales están conectados directamente. En principio todos los demás nodos de la red son desconocidos. La comunicación se realiza por medio de la difusión de mensajes a los vecinos directos. Los pares transportan el tráfico enviando y recibiendo peticiones de recursos y respuestas a dichas peticiones junto a algunos mensajes de control que facilitan el descubrimiento de otros nodos.
La búsqueda de recursos en este tipo de redes debe resolverse de manera totalmente descentralizada. Para ello Gnutella 0.4 implementa un algoritmo BFS —siglas extraídas de su nombre en inglés: Breadth First Search— para realizar
difusiones de peticiones que inundan la red —flooding en inglés— llegando a un
gran número de pares. Un nodo que desea localizar un determinado recurso envía una petición a todos sus nodos vecinos, quienes a su vez la reenvían a todos sus
1.4 TIPOS DE REDES P2P 29
otros vecinos alcanzando así nodos más alejados.
Una importante desventaja de este esquema de búsqueda es la generación de una gran cantidad de tráfico por la difusión de las peticiones. La solución habitual en este tipo de redes consiste en utilizar un campo TTL —time to live— en la
cabecera de los mensajes que es decrementado conforme las peticiones atraviesan la red. Cuando el TTL de una petición llega a cero la misma se descarta. Esto evita el colapso de la red a costa de limitar la propagación de las solicitudes convirtiendo en inalcanzables a aquellos nodos que se encuentren a mayor distancia del radio impuesto por este valor.
Entre las ventajas más destacadas de esta categoría de sistemas P2P se encuentra la robustez y tolerancia a fallas, que se ve incrementada por la naturaleza distribuida, la total ausencia de control central y la no existencia de roles diferenciados. De esta forma, ningún nodo es imprescindible para el funcionamiento de la red que no tiene puntos de fallas sensibles.
Otra ventaja deseable en cualquier sistema distribuido y presente en las redes P2P puras no estructuradas es el equilibrio de carga entre los nodos. Al no existir tareas diferenciadas todos los pares se ven sometidos a iguales exigencias de trabajo.
La sencillez general del sistema es otra característica inherente al modelo P2P puro no estructurado. Esta simplicidad se debe sobre todo a la ausencia de control central que evita la necesidad de cualquier tipo de administración global. Esta simplicidad se extiende también al protocolo que los pares deben realizar para ingresar o salir de la red.
La facilidad para implementar mecanismos tendientes a mantener el anonimato como lo hace la red FreeNet también es una característica bien
soportada por estos sistemas P2P y muy deseable en ciertas comunidades que sostienen que es imposible tener libertad de expresión sin la opción del anonimato
30 SISTEMAS PEER-TO-PEER (P2P)
[20].
Aunque la escalabilidad suele ser una ventaja presente en las redes P2P debido al incremento en la cantidad de recursos compartidos que se produce con el ingreso de un nuevo integrante a la red, no lo es en el caso de los sistemas P2P puros sin estructura. Ello se debe al excesivo tráfico que genera el sistema de búsqueda de recursos en su esfuerzo por alcanzar la mayor cantidad de pares de la red. Por citar un ejemplo, Gnutella no escala bien hasta los niveles que hoy en día
demandan las aplicaciones de file-sharing en Internet para las cuales este
protocolo ha sido diseñado.
Para un tamaño de red considerable, con gran cantidad de pares, la búsqueda de un recurso escaso puede resultar infructuosa debido a que el nodo que lo posee puede encontrarse a una distancia mayor al valor establecido por el campo TTL respecto del nodo que inicia la petición. Un enfoque totalmente distinto para resolver estos problemas relacionados con el tráfico generado y la eficiencia de las búsquedas lo constituyen las redes P2P estructuradas que se presentan a continuación.