• No se han encontrado resultados

CAPÍTULO 1 SISTEMAS PEER-TO-PEER (P2P)

1.6 Resumen del Capítulo

Las redes P2P constituyen sistemas distribuidos compuestos por pares o iguales que comparten espacio de almacenamiento, ancho de banda, poder de cómputo u otro tipo de recursos, con un modelo de comunicación simétrico sin roles diferenciados ni control central. Se destacan por ser escalables, tolerante a fallas y favorecer el equilibrio de carga, la descentralización y el anonimato.

Aunque en los comienzos de la Internet el modelo de comunicación simétrica estaba presente, a mediados de los 90’ con el advenimiento de la Internet comercial cambiaron los patrones de comportamiento de los usuarios hacia una modalidad asimétrica con algunos nodos ofreciendo servicios y la mayoría consumiéndolos. Aparecieron los firewalls, las direcciones IP dinámicas, el

protocolo NAT y el ancho de banda asimétrico ofrecido por los ISP que entorpecieron las comunicaciones simétricas.

La era moderna de las comunicaciones P2P comienza en el año 1999 con el éxito de Napster. El file sharing se convirtió en el área propicia para el desarrollo

de la tecnología P2P. El protocolo FastTrack que dio origen a las redes Kazaa, Grokster e iMesh alcanzó gran popularidad.

1.6 RESUMEN DEL CAPÍTULO 45

Gnutella nació a principios del año 2000 y fue la primera red P2P pura sin

ningún tipo de centralización. La red eDonkey aparece en septiembre de 2000 y

rápidamente alcanzó gran popularidad. Sin embargo la actividad de file sharing

sobre redes P2P en la actualidad está liderada por BitTorrent, un protocolo que

apareció en julio de 2001. Ese mismo año, producto de la investigación científica en el área surgieron soluciones estructuradas basadas en tablas de hash

distribuidas—Chord, Pastry, Tapestry y CAN— que debido a su complejidad no

llegaron a ser muy populares. Sin embargo, algunas de sus técnicas fueron incorporadas más tarde por otras redes P2P como Kademlia, que alcanzó cierto

éxito incorporándose en el cliente de eMule de la red eDonkey 2000.

Gnutella 0.4 y FreeNet pertenecen a la categoría de sistemas P2P puros no

estructurados en la que no existe ningún tipo de centralización. Todos los pares se comunican en forma simétrica, no hay roles diferenciados ni tareas especiales, todos cumplen exactamente las mismas funciones. Son sencillos de implementar y favorecen la robustez, el equilibrio de carga y el dinamismo al permitir la entrada y salida frecuente de los pares con mínima carga operativa. Sin embargo, la búsqueda de recursos descentralizada conlleva algunas dificultades. Gnutella 0.4

la implementa inundando la red con mensajes de petición. El nodo que busca un recurso envía una solicitud a todos sus vecinos que a su vez la replican a todos sus otros vecinos. Esta técnica no es escalable. Para controlar el tráfico generado por las solicitudes fue necesario limitar su alcance con un campo time to live (TTL)

que degrada la capacidad de búsqueda.

Chord, Pastry, Tapestry, CAN y Kademlia son sistemas P2P puros

estructurados. En esta categoría no existe ningún tipo de centralización, todos los pares cumplen la misma tarea incorporándose a una estructura no jerárquica usualmente en forma de anillo. La búsqueda de recursos se resuelve eficientemente accediendo a un índice global almacenado en una tabla de hash

distribuida entre todos los nodos del anillo. Cada nodo se hace cargo de mantener y contestar las peticiones sobre una partición del espacio de claves de la tabla. La

46 SISTEMAS PEER-TO-PEER (P2P)

cantidad de mensajes necesarios para resolver la búsqueda pertenece a O(log N)

siendo N la cantidad de nodos de la red. Sin embargo, la implementación de estos

sistemas no es sencilla. Mantener la estructura funcionando correctamente es costoso y exige una carga operativa considerable para permitir la entrada y salida de los nodos a la red. Además es necesario realizar periódicamente tareas de mantenimiento para volver a establecer el anillo ante la posible caída de algún nodo.

Napster, eDonkey, BitTorrent, Gnutella 0.6 y Ares Galaxy son ejemplos de

sistemas P2P híbridos. En ellos existe algún modo de centralización para facilitar la búsqueda de recursos. El esquema más simple es concentrar en un servidor central el índice global de todos los recursos compartidos en la red, conformado con los datos suministrados por cada uno de los pares. La búsqueda se resuelve en forma sencilla por medio de una consulta al servidor. Luego el intercambio entre los pares se realiza a través de una comunicación simétrica. Estos sistemas no son muy escalables pues el servidor se transforma en un cuello de botella. La solución obvia utilizada por la mayoría de estas redes fue multiplicar la cantidad de servidores centrales y replicar los datos. BitTorrent no utiliza servidores que

manejen información de toda la red pero se vale de gran cantidad de trackers que

controlan las transacciones sobre subconjuntos, posiblemente reducidos, de recursos. Otro esquema de centralización más débil es el ofrecido por Gnutella 0.6

y Ares Galaxy que utilizan nodos de mayor jerarquía llamados superpares para

coordinar a los nodos hojas.

Una de las aplicaciones más destacadas de la tecnología P2P ha sido la de intercambio de archivos en Internet. Se destacan las soluciones híbridas como las más exitosas en esta actividad aunque no debe excluirse a Gnutella sobre todo en

sus comienzos. La utilización de la tecnología P2P en aplicaciones de file sharing

sigue resultando de interés para la comunidad científica que continúa realizando publicaciones en el área.

1.6 RESUMEN DEL CAPÍTULO 47

Otro escenario donde se aprovecha la infraestructura ofrecida por las redes P2P lo constituye la transmisión de flujo de video —PPLive , PPStream, SopCast, Tvants— y de señales de voz —F-Talk, Skype, Blue Talk—que permite compartir

ancho de banda entre los pares. En particular Skype y Blue Talk también corren en

dispositivos móviles. Gracias a la proliferación de los smart phones ha emergido

un nuevo y prometedor campo de acción que algunos autores referencian como

Mobile P2P Networks.

Una aplicación cada vez mayor de la tecnología P2P aprovecha la capacidad de procesamiento ociosa de las PC de escritorio para compartir ciclos de CPU. Ejemplo de ello lo constituyen los proyectos SETI@home, Docking@Home, Climateprediction.net y muchos otros agrupados en la plataforma de computación

voluntaria BOINC de la Universidad de California, Berkeley.

Finalmente, según lo señalado por distintos autores, la computación grid, la

computación cloud y el E-commerce son tres áreas de posible aplicación para las

49