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