La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín."— Transcripción de la presentación:

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

2 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

3 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

4 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.

5 Arquitectura de las redes P2P (I) Par B (bb.mp3) Par C (cc.mp3) Par D (dd.mp3) Servidor B  bb.mp3 C  cc.mp3 D  dd.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 Elevado  Coste Alto

6 Arquitectura de las redes P2P (II) Par FPar E Par C – ccc.mp3Par B Par D Par A ¿ ccc.mp3? Conexión directa Flujo de Datos ¿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

7 Arquitectura de las redes P2P (III) Modelo P2P Mixto o semicentralizado Conexión directa Flujo de Datos Par A (¿cc.mp3?) Par Z (cc.mp3) Superpar Z  cc.mp3 (¿cc.mp3?) cc.mp3->Z  Red Escalable  Reducción del número de nodos involucrados en el encaminamiento  Buen tiempo de respuesta

8 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)

9 Tablas Hash Distribuidas Una tabla Hash es un conjunto de pares 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

10 DHT (Situación Inicial) 08 00 1204 10 14 06 02 Simplificación de un protocolo DHT para k=4 bits

11 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)

12 Distancia entre dos nodos (II) 08 00 1204 10 14 06 02 Distancia:6 Distancia=(ID destino – ID origen) mod 2 k

13 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 1204 10 14 06 02 Distancia:10

14 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

15 Distribución de contenidos en DHT 00 Lalala.mp3 Func Hash El nodo 00 quiere compartir lalala.mp3 ¿Dónde almacena ese dato? Nodo adecuado 06 00020406 02 ¿Lalala.mp3? Func Hash El nodo 02 quiere saber donde conseguir lalala.mp3 ¿Quién conoce quien guarda ese dato? Nodo adecuado 06 00020406

16 Funciones de Búsqueda y Almacenaje Def findNode (Start, key) Current=start While distance (current.id, key) > distance (current.next.id, key) Current=current.next Return 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

17 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 0406 05

18 Desunión de una DHT El nodo antes de abandonar copia la información a su predecesor. Actualización de los punteros. 0406 05

19 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

20 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 (2 k ) Def update (node): For x in range (x) oldEntry=node.finger[x] node.finger[x]=findNode (oldEntry, (node.id + (2**x)) % (2**k))

21 Optimización de la búsqueda 08 00 1204 10 14 06 02 En este caso el nodo 00 debería apuntar a los nodos 01,02,04 y 08 El 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¡¡

22 Algoritmo con K punteros Def findFinger (node,key) Current=node For 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=next Next=findFinger(current,key) Return current

23 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.

24 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.

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

26 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.


Descargar ppt "Peer 2 Peer Sistemas Operativos Distribuidos Alumno: Abel Santín."

Presentaciones similares


Anuncios Google