Redes Peer-to-Peer




         A. Mozo (amozo@eui.upm.es)




                                      1
Indice

Redes Peer-to-Peer

Aplicaciones del concepto P2P
– Tablas Hash Distribuidas (DHTs)

– Multicast en el Nivel de Ap...
Peer-to-Peer
Clientes y Servidores en el mismo proceso

Ventajas
– Arquitectura distribuida, autoorganizada, escalable (no...
Historia
1 generación (Napster, BD
centralizada)

2 generación (Gnutella 0.4 y
Gnutella 0.6)
– 0.4 Totalmente
  descentral...
Aplicaciones de las DHT

Bases de datos distribuidas de alta escalabilidad
– Uso:
   • Cluster de servidores
   • BD de re...
Almacenamiento y Recuperacion de
   Datos de forma Distribuida
           Quiero el dato D.                               ...
Distributed Hash Tables
                          Sobrecarga Comunicación vs. Estado en nodos


                          ...
DHTs
Escalable:
 – Esfuerzo de comunicación: 1pk, O(log(N)) saltos
 – Estado en los nodos (tabla rutas):
   O(log(N)) entr...
DHTs

Características
– Datos y nodos comparten el mismo espacio de direcciones
– Los nodos intermedios mantienen informac...
Comparativa



               Estado    Sobrecarga   Búsquedas    No falsos
  Sistema                                     ...
Application Level Multicast (ALM)
                                                      A
                                ...
Evolución sistemas ALM
Primera generación:
  – Topologías:
     • Malla: Narada   (2000).


     • Árbol de expansión: Yoi...
Algoritmos DHTs y ALMs

Chord (MIT)
Pastry (Microsoft Research, Rice Univ.)
– ALM=Scribe y SplitStream
Tapestry (UCB)
– AL...
Chord
[2001] Stoica, Morris, Karger, Kaashoek, Balakrishnan
       (MIT Laboratory for Computer Science)


  Overlay estru...
Chord

 API
  – put (key, value) inserta datos en Chord
  – value = get (key) recupera datos de Chord

 Identificadores de...
Chord: Topology
 IDs de nodos y Claves en el anillo (aritmética modulo 2^160)
 Pares (clave, valor) almacenados por el sig...
Chord: Encaminamiento
   Tabla de rutas: finger table
       – Almaceno log(N) enlaces por nodo
       – Se cubren distanc...
Chord
Estructura de la tabla de nodos
 –   Dedos apuntan a valores separados de mi_Id + {20, 21, 22,.. 2N-1}
 –   Se almac...
Pastry
[2000] A. Rowston (Microsoft Research) y P. Druschel (Rice University)


                                          ...
Pastry
       Tabla de encaminamiento del nodo 10233102


0-XXXXXXXX             12-XXXXXXX


     -0-2212102    1      -2...
Scribe
[2001] M. Castro, A. Rowston, A. Kermarrec (Microsoft Research)
          y P. Druschel (Rice University)
         ...
SplitStream
[2003] Castro, Rowston, Kermarrec (Microsoft Research) y Druschel,
   Nandi, Singh (Rice University)
  Bosque ...
Tapestry
[2001] Zhao, Joseph, Kubiatowicz (University of California at Berkeley)
   Malla de equipos que
   implementa una...
Bayeux
[2001] Zhuang, Zhao, Joseph, Katz, Kubiatowicz (University of California
  at Berkeley)
                           ...
CAN (Content Addressable Network)
[2001] Ratnasamy, Handley, Shenker, Karp
(ACIRI: AT&T Center for Internet Research at IC...
CAN (Content Addressable Network)
Encaminamiento
 –   Se avanza hacia el vecino con menor distancia al destino
 –   Se rec...
MC-CAN
[2001] Ratnasamy, Handley, Shenker, Karp
(ACIRI: AT&T Center for Internet Research at ICSI, y University of Califor...
Upcoming SlideShare
Loading in...5
×

Doctorado P2P Dht

2,316

Published on

Transparencias de Alberto Mozo para explicar P2P y DHT

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,316
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
66
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Doctorado P2P Dht

  1. 1. Redes Peer-to-Peer A. Mozo (amozo@eui.upm.es) 1
  2. 2. Indice Redes Peer-to-Peer Aplicaciones del concepto P2P – Tablas Hash Distribuidas (DHTs) – Multicast en el Nivel de Aplicación (ALM) Algoritmos DHT y ALM 2
  3. 3. Peer-to-Peer Clientes y Servidores en el mismo proceso Ventajas – Arquitectura distribuida, autoorganizada, escalable (no cuello botella en servidores) – Despliegue inmediato en host (no routers) Problemas – Entradas y salidas de nodos (churn-value alto) desestabilizan el sistema – Equipos maliciosos pueden introducir ruido en el sistema 3
  4. 4. Historia 1 generación (Napster, BD centralizada) 2 generación (Gnutella 0.4 y Gnutella 0.6) – 0.4 Totalmente descentralizado: no escala – 0.6 Sistema jerárquico dos niveles con super-peers 3 generación – Overlays estructurados: DHTs (Distributed Hash Table) – Random-walks, Small world networks (J. Kleinberg) 4
  5. 5. Aplicaciones de las DHT Bases de datos distribuidas de alta escalabilidad – Uso: • Cluster de servidores • BD de recursos en sistemas de intercambios de archivos – Ventaja: Escalabilidad – Prob: búsquedas en rangos y por palabras claves Application Level Multicast – Imposibilidad de implantar Multicast global en toda Internet – Despliegue de protocolos inmediato (solo en hosts, fuera del S.O. y pila TCP/IP ) – Menos eficiente que Multicast nativo – Es necesario un protocolo por encima de la DHT 5
  6. 6. Almacenamiento y Recuperacion de Datos de forma Distribuida Quiero el dato D. Quiero el dato D. ¿Donde encuentro a D? ¿Donde encuentro a D? Dato D D ? ? Sistema dsitribuido ? 12.5.7.31 peer -to -peer.info berkeley.edu planet -lab.org 89.11.20.15 95.7.6.10 86.8.10.18 7.31.10.25 Reto fundamental en la mayor parte de los sistemas Peer-to-Peer – Localización de datos dentro de un sistema distribuido • ¿Donde lo almacena el proveedor del servicio? • ¿Cómo lo localiza el peticionario? – Escalabilidad: hay que mantener las comunicaciones y los almacenes de los nodos escalables – Robustez y elasticidad en caso de fallos/caídas y entradas en la red (cambios frecuentes) 6
  7. 7. Distributed Hash Tables Sobrecarga Comunicación vs. Estado en nodos Escalabilidad: O(log N) Sobrecarga Comunicación Inundación No tiene falsos negativos Resistentes frente a cambios O(N) – Fallos, ataques Cuello de botella: – Usuarios breves • Sobrecarga Comunicación • Falsos negativos Cuello de botella: • Memoria, CPU, Enlace Distributed Servidor O(log N) Hash Table Servidor Central O(1) O(1) O(log N) Estado en Nodos O(N) 7
  8. 8. DHTs Escalable: – Esfuerzo de comunicación: 1pk, O(log(N)) saltos – Estado en los nodos (tabla rutas): O(log(N)) entradas en la tabla de rutas Encaminamiento: como máximo O(log(N)) saltos al H(mis_datos) nodo que almacena el dato = 3107 1008 1622 2011 709 2207 ? 611 2906 3485 Un nodo almacena O(log(N)) rutas a otros nodos 12.5.7.31 peer-to- peer.info berkeley.edu planet- lab.org 89.11.20.15 95.7.6.10 86.8.10.18 7.31.10.25 8
  9. 9. DHTs Características – Datos y nodos comparten el mismo espacio de direcciones – Los nodos intermedios mantienen información de encaminamiento a los nodos destino – Se encamina salto a salto hasta llegar al nodo que almacena el dato buscado – Se almacenan pares (clave,valor) Problemas – Se requiere un mantenimiento (entradas/caídas) de las tablas de rutas – Búsquedas no exactas no soportadas directamente (ej. Comodines *.doc, o palabras clave) 9
  10. 10. Comparativa Estado Sobrecarga Búsquedas No falsos Sistema Robustez por nodo en la red no exactas negativos Servidor O(N) O(1) Central Búsqueda por O(1) O(N²) inundación Distributed O(log N) O(log N) Hash Tables 10
  11. 11. Application Level Multicast (ALM) A C A 1 2 1 1 B C 2 1 3 3 B RA RB D D 3 2 Formación de un solapamiento de red (overlay) entre el emisor y los receptores Decisiones de encaminamiento y duplicación de paquetes en el nivel de Aplicación + Despliegue en Internet inmediato - Menos eficiente que IP-Multipunto 11
  12. 12. Evolución sistemas ALM Primera generación: – Topologías: • Malla: Narada (2000). • Árbol de expansión: Yoid (1999), HMTP (2002) – Construcción centralizada. No escalan correctamente Segunda generación: – Overlay Peer-to-Peer estructurado – Despliegue de una estructura eficiente para distribuir el contenido (árbol generalmente) 12
  13. 13. Algoritmos DHTs y ALMs Chord (MIT) Pastry (Microsoft Research, Rice Univ.) – ALM=Scribe y SplitStream Tapestry (UCB) – ALM=Bayeux CAN (ACIRI-AT&T, UCB) – ALM=MC-CAN Kademlia 13
  14. 14. Chord [2001] Stoica, Morris, Karger, Kaashoek, Balakrishnan (MIT Laboratory for Computer Science) Overlay estructurado, DHT Sucesor(5)=0 5 Algoritmo sencillo 1 – Corrección y rendimiento demostrables 0 Sucesor(1)=1 7 1 formalmente 6 2 Los nodos se organizan en un anillo – Id elegido mediante hash SHA-1 5 3 – Ids consecutivos -> cercanía en red 4 física 3 Sucesor(3)=4 Cada nodo del anillo es responsable del almacenamiento de las claves antecesoras 14
  15. 15. Chord API – put (key, value) inserta datos en Chord – value = get (key) recupera datos de Chord Identificadores de nodos y objetos – Derivados de la función hash SHA-1, 160-bit → 0 <= identificador < 2^160 – Key asociada con datos • Ej. key = sha-1(value), key= sha-1 (URL_value) – ID del nodo • Ej. id = sha-1 (dir IP, port) 15
  16. 16. Chord: Topology IDs de nodos y Claves en el anillo (aritmética modulo 2^160) Pares (clave, valor) almacenados por el siguiente nodo en el sentido horario: nodo sucesor 6 1 0 sucesor(1) = 1 7 1 Anillo sucesor(6) = 0 6 6 Chord 2 2 sucesor(2) = 3 Identificador 5 3 Nodo 4 2 X Clave 16
  17. 17. Chord: Encaminamiento Tabla de rutas: finger table – Almaceno log(N) enlaces por nodo – Se cubren distancias de crecimiento exponencial: • Nodo n: la entrada “i” apunta al nodo sucesor de (n + 2^i) • Cada entrada es el finger iésimo finger table keys i start succ. 6 0 1 1 finger table keys 1 2 2 4 3 0 0 i start succ. 1 7 1 0 2 3 1 3 3 2 5 0 6 2 finger table keys 5 3 i start succ. 2 0 4 0 4 1 5 0 2 7 0 17
  18. 18. Chord Estructura de la tabla de nodos – Dedos apuntan a valores separados de mi_Id + {20, 21, 22,.. 2N-1} – Se almacena el nodo sucesor de los dedos – Encaminamiento: Busqueda dicotómica, O(Log2 (N)) saltos Tabla de dedos nodo Tabla de dedos Inicio Intervalo Clave sucesor Inicio Intervalo nodo Clave 1 [1,2) 1 sucesor 5 2 [2,3) 3 1 2 [2,4) 4 Entradas de nodos 4 [4,0) 0 3 [3,5) 3 5 [5,1) 0 – Localización de antecesor y predecesor 0 1 – Actualización de 7 apuntadores en nodos 6 2 implicados 5 3 4 Tabla de dedos Caídas de nodos Clave Inicio Intervalo nodo sucesor – Reparación de tablas de 3 5 [5,6) 0 apuntadores en nodos 6 [6,0) 0 0 [0,4) 0 implicados 18
  19. 19. Pastry [2000] A. Rowston (Microsoft Research) y P. Druschel (Rice University) 00000 FFFFF Overlay estructurado. Implementa DHT D5A123 Identificadores 128 bits (hash SHA-1) route (msg,D5A123) D5A00B (R=2b, b=4, Id=8 dígitos) 54FFA0 D5330A Tablas encaminamiento [R x LogR(N)] Lista hojas: nodos más cercanos D85BC2 Identificador de nodo Lista vecinos: por si hay fallo Identificador de mensaje Saltos encaminamiento O(Log2b (N)) 19
  20. 20. Pastry Tabla de encaminamiento del nodo 10233102 0-XXXXXXXX 12-XXXXXXX -0-2212102 1 -2-2301203 -0-2212102 0 1-2-230203 2 3 3 1 10233-2-32 102332-XX 0 2 20
  21. 21. Scribe [2001] M. Castro, A. Rowston, A. Kermarrec (Microsoft Research) y P. Druschel (Rice University) El nodo 2321 se une al árbol Raiz (Rendezvous Point): cuya raíz es el nodo 0020 – nodo con id más cercano al del grupo 0020 – Distribución desde la raíz 0001 0023 Árbol con Construcción implícita: – Equipo se une encaminando a 0302 0032 0013 través de Pastry un paquete hacia el nodo raíz 1132 0112 0132 0110 – Similar a Reverse Path Forwarding 3020 Se detectan caídas por los hijos 2023 3311 1023 2321 Aparecen nodos no receptores Camino para unirse al árbol. Paquete JOIN Camino de distribución de datos. Paquete TREE 21
  22. 22. SplitStream [2003] Castro, Rowston, Kermarrec (Microsoft Research) y Druschel, Nandi, Singh (Rice University) Bosque de árboles Scribe sobre Pastry emisor Raíz subflujo 0 Raíz subflujo 1 Raíz subflujo 2 Z X Y X Z Y Z Y X Nodos con identificador que empieza por “0” Nodos con identificador que empieza por “1” Nodos con identificador que empieza por “2” 22
  23. 23. Tapestry [2001] Zhao, Joseph, Kubiatowicz (University of California at Berkeley) Malla de equipos que implementa una DHT 400F – Identificador 160 bits L1 Route ( msg, 42AD ) 42E0 (agrupado en 40 digitos), Ids: 5230 SHA-1 L2 L3 4211 L3 Similar a Pastry L2 4227 4629 42A9 – Tabla encaminamiento idéntica L4 L3 (sin hojas), Saltos: O(Log(N) L4 42AD 42A2 L4 Tolerancia a fallos: 3 nodos por L1 42A7 sufijo AC78 L2 4112 Publicación almacena <clave,valor> en cada nodo intermedio 23
  24. 24. Bayeux [2001] Zhuang, Zhao, Joseph, Katz, Kubiatowicz (University of California at Berkeley) 6786 1*** Similar a Scribe 678* 12** Unión al árbol 67** – El nodo 1250 encamina un 125* paquete “join” hacia la raiz 6786 6*** – La raíz encamina los paquetes de 1250 datos hacia el nodo 1250 Camino para unirse al árbol. Paquete JOIN Incorpora nodos intermedios Camino de distribución de datos. Paquete TREE Problema de escalabilidad: Se detectan caídas por parte de – Toda la gestión del grupo pasa por la raíz los padres – Los nodos intermedios guardan la pertenencia al grupo de los receptores 24
  25. 25. CAN (Content Addressable Network) [2001] Ratnasamy, Handley, Shenker, Karp (ACIRI: AT&T Center for Internet Research at ICSI, y University of California at Berkeley) Overlay estructurado. DHT. – Los identificadores se transforman ([0,5 - 0,75],[0,5 - 1,0]) a (x1,x2,…,xn) ([0,75 – 1,0],[0,5 - 1,0]) ([0,0 – 0,5],[0,5 – 1,0]) (1 , 1) El área N-dimensional se reparte C D E entre los nodos existentes A B (0 , 0) Nodo CAN guarda: ([0,0 - 0,5],[0,0 - 0,5]) ([0,5 - 1,0],[0,0 - 0,5]) – (IP, coordenadas) de todos los vecinos 25
  26. 26. CAN (Content Addressable Network) Encaminamiento – Se avanza hacia el vecino con menor distancia al destino – Se recorre por término medio (d/4)(n1/d) saltos – eCAN: jerárquica, similar a Pastry, Tapestry Unión – Se contacta con un nodo de la red CAN (nodo boot) – Elijo un punto (x,y) y encamino un JOIN hacia él E – El poseedor de la coordenada parte en 2 todo su espacio – Actualizamos tablas con los vecinos (O(d) mensajes) Salidas y abandonos – Algoritmo de recuperación de zonas vecinas 26
  27. 27. MC-CAN [2001] Ratnasamy, Handley, Shenker, Karp (ACIRI: AT&T Center for Internet Research at ICSI, y University of California at Berkeley) Los miembros del grupo forman un mini-overlay Distribución por inundación sobre el mini-overlay CAN construido Se generan duplicados extra de paquetes 27
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×