peer 2 peer sistemas operativos distribuidos alumno: abel santín

26
Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Upload: faustino-olivares

Post on 28-Jan-2016

243 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Peer 2 Peer

Sistemas Operativos Distribuidos

Alumno: Abel Santín

Page 2: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

1- Introducción

P2P (Entre iguales)

No tiene 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.

Todos los nodos se comportan igual y pueden realizar el mismo tipo de operaciones.

A pesar de que el P2P ha sido popularizado por el intercambio de música por Internet, este no es el único uso que se puede dar a esta tecnología. Skype SETI (Search for Extraterrestrial Intelligence Institute). RTVE emisión en directo a través de P2P

Page 3: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Elementos de una Red P2P (I) Par: 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 . Par simple: Sirven a un único usuario final,

permitiéndolo proporcionar servicios desde su dispositivo y empleando los servicios ofrecidos por otros pares de la red

Súper-par: Ayudan a los pares simples a que encuentre otros pares o a otros recursos de los pares

Page 4: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Elementos de una Red P2P (II) Grupo de Pares: Un grupo de pares es un conjunto

de pares formado para servir a un interés común u objetivo dictado por el resto de pares implicados.

Servicios: proporcionan una funcionalidad útil que se consigue mediante la comunicación de los distintos pares Servicios de pares: Funcionalidades ofrecidas por un par

concreto de la red a otros pares Servicios de Grupo de pares: funcionalidades

proporcionadas por varios miembros del grupo consiguiendo así acceso redundante al servicio.

Page 5: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Arquitectura de las redes P2P (I)

Par B (bb.mp3)

Par C (cc.mp3)

Par D (dd.mp3)

ServidorBbb.mp3Ccc.mp3Ddd.mp3

Par A (¿cc.mp3?)

1- ¿cc.mp3?

2- Par C

3- cc.mp3 Conexión directa

Flujo de Datos

Modelo Híbrido o Centralizado (Napster)

Rendimiento ElevadoCoste Alto

Page 6: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Arquitectura de las redes P2P (II)

Par F Par E

Par C – ccc.mp3 Par B

Par D

Par A ¿ccc.mp3?

Conexión directaFlujo de Datos

¿ccc.mp3?¿ccc.mp3?

¿ccc.mp3?

¿ccc.mp3?

ccc.mp3

ccc.mp3 ccc.mp3

Modelo P2P Puro o totalmente descentralizado (Gnutella)

El modelo P2P puro es más robusto al no depender de un servidor central Económico Elevado tiempo y sobrecarga de ancho de banda.El recurso buscado y existente ni siquiera pueda ser encontrado

Page 7: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Arquitectura de las redes P2P (III)Modelo P2P Mixto o semicentralizado

Conexión directaFlujo de Datos

Par A (¿cc.mp3?) Par Z (cc.mp3)Superpar

Z cc.mp3 (¿cc.mp3?) (¿cc.mp3?)

cc.mp3->Z

cc.mp3->Z

Red Escalable Reducción del número de nodos involucrados en el encaminamiento Buen tiempo de respuesta

Page 8: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Búsqueda de Pares, Contenidos y Servicios La búsqueda de información (pares, contenidos y

servicios), dada la ausencia de un conocimiento global de los datos y recursos involucrados, es un aspecto fundamental en entornos P2P Búsqueda en caché: Cada par mantiene una caché de

recursos previamente descubiertos. Búsqueda directa: Pregunta directamente a otros pares de

la red con los que tenga conexión directa (Arquitectura P2P pura)

Búsqueda indirecta: Los superpares actúan como fuente de información de localización de pares y otros recursos conocidos. Además esos hacen la búsqueda en nombre del par (Arquitectura P2P mixta)

Page 9: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Tablas Hash Distribuidas

Una tabla Hash es un conjunto de pares <clave,valor> Sus operaciones básicas son:

Void Almacenar (Clave, Valor) Valor Buscar (Clave)

91-123-45-67Juan Gomez

91-345-67-89Pepe Ruiz

valorclave

Objetivo: Distribuir el contenido de la Tabla Hash entre los distintos pares que forman la red P2P

Page 10: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

DHT (Situación Inicial)

08

00

12 04

10

14

06

02

Simplificación de un protocolo DHT para k=4 bits

Page 11: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Distancia entre dos nodos (I)

Def distance (a,b):

If a==b:

Return 0

Else if a<b:

Return b-a;

Else:

Return (2^k) + (b-a)

Page 12: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Distancia entre dos nodos (II)

08

00

12 04

10

14

06

02D

istancia:6

Distancia=(ID destino – ID origen) mod 2k

Page 13: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Distancia entre dos nodos (III)

Tal y como se ha definido la distancia no es recíproca entre dos nodos. Nodo más cercano: Aquel con una distancia menor

08

00

12 04

10

14

06

02D

istancia:10

Page 14: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Distribución de contenidos en DHT Cada nodo es una DHT estándar Las operaciones de consulta y almacenaje se hacen en

el nodo adecuado de la red. Proceso para conocer el nodo adecuado

Aplicamos un algoritmo hash a la clave que queremos almacenar, o recuperar obteniendo una clave de k bits

Buscamos el nodo con ID mas cercana (menor distancia) pero mayor al valor de k bits de la clave

Page 15: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Distribución de contenidos en DHT00

Lalala.mp3Func Hash <05,00> <clave,valor>

El nodo 00 quiere compartir lalala.mp3 ¿Dónde almacena ese dato?Nodo adecuado 06

00 02 04 06

<05,00>

02

¿Lalala.mp3?Func Hash <05,??> <clave,valor>

El nodo 02 quiere saber donde conseguir lalala.mp3 ¿Quién conoce quien guarda ese dato?Nodo adecuado 06

00 02 04 06

<05,00><05,??>

Page 16: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Funciones de Búsqueda y AlmacenajeDef findNode (Start, key)

Current=startWhile distance (current.id , key) > distance (current.next.id, key)

Current=current.nextReturn current

Def lookup(start, key)Node=findNode(start, key)Return node.data[key]

Def store (start, key, value)Node=findNode(start, key)Node.data[key]=value

Page 17: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Unión a una DHT

1. Obtener un ID de nodo no repetido

2. Búsqueda de su ubicación (mismo algoritmo de búsqueda visto)

3. Copia de la información del nodo predecesor que le corresponde al nuevo nodo

4. Actualización del puntero

04 06

<05,00>05

<05,00>

Page 18: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Desunión de una DHT

El nodo antes de abandonar copia la información a su predecesor.

Actualización de los punteros.

04 06

<05,00>

05

<05,00>

Page 19: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Desunión abrupta

En caso de caída de un nodo la información almacenada en dicho nodo deja de estar disponible temporalmente.

Los distintos protocolos establecen mecanismos de almacenamiento de la información pasado un tiempo para que la información vuelva a estar disponible

Page 20: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Mejoras en la búsqueda

Media de número de saltos = (Nº Nodos / 2) O(n) Puede llegar a ser lento si el número de nodos es muy

grande. Solución: Cada Nodo tiene k punteros a otros nodos.

O(log n) Sea x uno de estos punteros (1<=x<=k). El contenido del

puntero x se determina tomando el ID del nodo y buscando el nodo responsable de la clave (id + 2**(x-1) ) mod (2k)

Def update (node):For x in range (x)

oldEntry=node.finger[x]node.finger[x]=findNode (oldEntry, (node.id + (2**x)) % (2**k))

Page 21: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Optimización de la búsqueda

08

00

12 04

10

14

06

02

En este caso el nodo 00 debería apuntar a los nodos 01,02,04 y 08El nodo 04 debe apuntar a los nodos 05,06,08 y 12!!En la tabla de nodos apuntados de 00 aparece 04 pero no a la inversa¡¡

Page 22: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Algoritmo con K punteros

Def findFinger (node,key)Current=nodeFor x in range (k)

If distance (current.id, key) > distance (node.finger[x].id, key)

Current=node.finger[x]Return current

Def lookup (start, key)Current=findFinger (start, key)Next=findFinger(current, key)While distance (current.id, key) > distance (next.id, key)

Current=nextNext=findFinger(current,key)

Return current

Page 23: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Definición de la distancia como XOR Posibilidad para un nodo de añadir mas punteros a

nodos en su tabla, cuando contacta con otros nodos durante la búsqueda

Desafortunadamente, las tablas de punteros que hemos visto son unidireccionales. Un nodo no estará en la tabla de nodos apuntados de los nodos a los que el apunta.

Solución=Calcular distancia mediante la operación XOR

Distancia(A,B)=Distancia(B,A) Si A está en la tabla de punteros de B entonces B está en la tabla de A. Los nodos pueden actualizar sus tablas de punteros guardando la tabla de los nodos a los que consulta.

Page 24: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Kademlia

Una cuestión con el diseño presentado es que si un nodo en la ruta no quiere cooperar. Entre dos nodos hay solo un camino, así que hacer búsquedas entre nodos caídos es imposible. Kademlia DHT resuelve esto ampliando la tabla de punteros a nodos conteniendo j referencias para cada nodo, en lugar de sólo una.

Además Kademlia da preferencia en su tabla de nodos a aquellos que más tiempo llevan, añadiendo tan solo nuevas referencias en caso de que no tenga la tabla llena.

Page 25: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

Características y Beneficios del P2P Descentralización Escalabilidad Anonimato Propiedad compartida Rendimiento Seguridad Tolerancia a Fallos Interoperabilidad

Page 26: Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín

JXTA

El proyecto JXTA intenta convertirse en una plataforma modular que provee bloques de construcción simples y esenciales para el desarrollo de un amplio rango de servicios y aplicaciones distribuidas basadas en P2P.

Ambiente descentralizado que minimiza los puntos únicos de fallo y no es dependiente de ningún servidor centralizado.

Los servicios JXTA pueden ser implementados para interoperar con otros servicios. Por ejemplo, un servicio de comunicación P2P de mensajería instantánea puede ser fácilmente agregado a una aplicación P2P de compartición de ficheros si es que ambos soportan protocolos JXTA.

La forma de funcionamiento se basa en un conjunto de protocolos P2P simples y abiertos que permiten que cualquier dispositivo de red se comunique, colabore y comparta recursos.