Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

28
Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010

Transcript of Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Page 1: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Francisco Gamboa HerreraTanya Pérez Herrera26 Noviembre 2010

Page 2: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Objetivos Implementación de un sistema de

intercambio de archivos mediante una red P2P.

Con el sistema terminado, lograr que se produzca el intercambio eficiente de archivos entre nodos en la red.

Lograr que nuevos nodos se unan a la red y sean capaces de compartir archivos.

Page 3: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Peer to Peer Red de computadoras en la que todos o

algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí.

Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados.

Page 4: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

P2P estructurado, mantienen una estructura fuerte (en la mayoría de los casos, un anillo)Ej: Pastry

P2P no estructurado, tipo grafoEj: Napster, Gnutella y KaZaA

Clasificación

Page 5: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

¿Por qué Pastry? La mayoría de los sistemas de intercambio

de archivos que conocemos utilizan redes de tipo no estructuradas.

Ej: Bittorrent, Gnutella, KaZaa, eMule, etc. Innovar utilizando un tipo de red no

convencional para sistemas de transferencia de archivos.

Page 6: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Características generales: Estructura de anillo Auto-organizable Balanceo de carga natural Nodos se identifican por nodeID: posición

(rango 0 a 2^128 - 1) Para N nodos, Pastry rutea en menos de log N

pasos

Pastry

Page 7: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Tabla de Estado de un Nodo

Page 8: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Algoritmo de ruteo: Route(Message, clave K)  El número de salto es igual al log(N), donde N

es el numero total de nodos en el anillo. Si una gran cantidad de nodos hacen una misma

consulta, éstas se van a repartir entre los nodos del leaf-set 

Nodo Y rutea y encuentra el dato en X

Búsqueda de Datos

Page 9: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Algoritmo de Ruteo

Page 10: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Se pasa el dato al nodo más cercano numéricamente al SHA("dato"). El nodo que recibe (la raíz), pasa a todos los nodos de su leaf-set una copia del dato.

xx

0

SHA(“Superman”)=X

X es raiz de Superman

Almacenamiento de Datos

Page 11: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

FreePastry Implementación open-source de Pastry para el desarrollo en internet.

Corresponde a una API desarrollada en JAVA.

Para mas información visitar  http://www.freepastry.org/

Page 12: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Carta Gantt

Page 13: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Diseño definitivo Ingreso de un nuevo nodo a la red Búsqueda de archivos Catálogo de Búsqueda

Inicialización Limpieza

Réplicas Inicialización Limpieza

Transferencia de archivos Salida de un nodo de la red

Page 14: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Ingreso nuevo nodo a la red

Una vez ingresado el nodo hace SHA de cada archivo que quiere compartir (Ej: SHA(“Superman”) para que el nodo con el id = al resultado tenga la ip del nodo que contiene el archivo.

Page 15: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Búsqueda de archivos Para buscar, el nodo hace SHA(”lo_buscado”)

y va a llegar al nodo que sabe dónde encontrar el archivo.

Si el archivo se encuentra en el sistema se le responde un mensaje con los nodos que tienen dicho archivo (que segmentos tiene cada uno) simulación “tracker” de bittorrent

Page 16: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Catálogo de búsqueda El nodo numéricamente más cercano a la

clave SHA (“nombre”) es el encargado de saber quienes tienen dicho archivo.

El catálogo almacena el nombre del archivo, el nodeID del nodo que lo tiene y el numero de los segmentos que tiene.

Page 17: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Inicialización de catálogo Cuando un nodo ingresa a la red solicita los

catálogos a todo su leaf-set. En base a esto se calcula un rango de

aceptación de una entrada repetida igual a L/2, donde L es el largo del leaf-set.

Nota: Al menos la mitad de su leaf-set debe tener la misma entrada.

Page 18: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Limpieza de Catálogos Con el fin de mantener los catálogos

actualizados Cada cierto tiempo ∆t nodo realiza un tipo de

búsqueda especial para cada una de sus entradas

Esta búsqueda consiste en rutear sha(“archivo”) El nodo que recibe este mensaje verifica si quien

le envió se encuentra en su leaf-set En caso que se encuentre se le avisa que conserve la

entrada

Page 19: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Manejo de Réplicas Cada vez que un nodo decide compartir un

archivo el sistema se encarga de replicar ese archivo a su leaf-set.

La copia se envía a la carpeta “réplica” a la cual el usuario no tiene acceso. Además, se vacía cada vez que ingresa el nodo a la red.

Para mantener actualizadas las réplicas, se utiliza la siguiente estrategia:

Page 20: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Inicialización de la Réplica Cuando un nodo ingresa a la red, solicita a

los nodos de su leaf-set que le envíen un listado de los archivos que cada uno tiene en su carpeta “réplica”.

Nuevamente se considera un rango de aceptación L/2.

De esta forma el nodo construye una lista de los archivos que le corresponde tener.

Finalmente solicita estos archivos.

Page 21: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Limpieza de Réplicas Cada cierto tiempo ∆t el nodo solicita a su

leaf-set un listado de los archivos que tienen en su carpeta “réplica”.

En base a esto se verifica que los archivos del nodo se repitan al menos L/2 veces en las listas enviadas por el leaf-set.

De esta forma se mantiene actualizada la carpeta “réplica”.

Page 22: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Transferencia de archivos Se selecciona un segmento. De la lista de nodos que poseen ese segmento

se elige uno de manera aleatoria. El nodo que está buscando envía una

solicitud de transferencia de archivo enviando el nombre del archivo y el segmento que desea.

Page 23: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Salida de un nodo del sistemaLas salidas de nodos de la red no son

manejadas.El sistema se encarga de mantener nodos

y réplicas actualizadas.

Page 24: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Contribuciones al temaCatálogo de búsqueda

InicializaciónLimpieza

Manejo de réplicasInicializaciónLimpieza

Transferencia de archivosSegmentaciónAlgoritmo de descarga

Page 25: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Contribuciones al tema Permite creación de “nichos” o subredes de

intercambio de archivos.

Page 26: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Futuros trabajos

Existen posibles mejoras, utilizando nuestro sistema como base, por ejemplo: Algoritmo de descarga Creación de un sistema de puntuación para

usuarios

Page 27: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Conclusiones Demostramos que es posible realizar un

sistema de intercambio de archivos utilizando una red P2P estructurada.

Nuestra implementación de Catálogos de búsqueda demostró funcionar eficientemente.

Los sistemas de limpieza creados para nuestra aplicación funcionan de manera eficiente.

Page 28: Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.

Conclusiones Comprobamos experimentalmente que

nuestro sistema es escalable.

La implementación de la descarga por segmentos de archivos escogidos de usuarios al azar le otorga a la red balanceo de carga.

Las réplicas de archivos al leaf-set de un nodo entrega a la red una alta disponibilidad de cada archivo.