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
3
Peer-to-PeerClientes 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
4
Historia1 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 HashTable)
– Random-walks, Small worldnetworks (J. Kleinberg)
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
6
Almacenamiento y Recuperacion de Datos de forma Distribuida
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)
D
?
Dato D
Sistema dsitribuido
7.31.10.25
peer -to-peer.info
12.5.7.31
95.7.6.10
86.8.10.18
planet -lab.orgberkeley.edu 89.11.20.15
?
Quiero el dato D.¿Donde encuentro a D?
?
Quiero el dato D.¿Donde encuentro a D?
7
Distributed Hash Tables
Sobrecarga Comunicación vs. Estado en nodosSo
brec
arga
Com
unic
ació
n
Estado en Nodos
Inundación
ServidorCentral
O(N)
O(N)O(1)
O(1)
O(log N)
O(log N) Distributed Hash Table
Escalabilidad: O(log N)No tiene falsos negativosResistentes frente a cambios
– Fallos, ataques– Usuarios breves
Cuello de botella:•Sobrecarga Comunicación•Falsos negativos
Cuello de botella:•Memoria, CPU, Enlace Servidor
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: comomáximo O(log(N)) saltos al nodo que almacena el dato
Un nodo almacenaO(log(N)) rutas a otros
nodos
H(mis_datos)= 3107
2207
7.31.10.25
peer-to- peer.info
12.5.7.31
95.7.6.10
86.8.10.18
planet- lab.orgberkeley.edu
29063485
201116221008709
611
89.11.20.15
?
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)
10
Comparativa
No falsos negativos
O(1)O(N)Servidor Central
O(log N)O(log N)DistributedHash Tables
O(N²)O(1)Búsqueda
por inundación
RobustezBúsquedas no exactas
Sobrecarga en la red
Estado por nodoSistema
11
ApplicationApplication LevelLevel Multicast (ALM)Multicast (ALM)
FormaciFormacióón de un solapamiento de red (n de un solapamiento de red (overlayoverlay) entre el emisor y los ) entre el emisor y los receptoresreceptores
Decisiones de encaminamiento y duplicaciDecisiones de encaminamiento y duplicacióón de paquetes en el n de paquetes en el nivel de Aplicacinivel de Aplicacióónn
+ Despliegue en Internet inmediato+ Despliegue en Internet inmediato-- Menos eficiente que IPMenos eficiente que IP--MultipuntoMultipunto
RA RB
A
B D
C
B
D
C
A
1
1
1
2
2
3
3
12
3
12
EvoluciEvolucióón sistemas ALMn sistemas ALMPrimera generaciPrimera generacióón:n:
– Topologías:• Malla: Narada (2000).
• Árbol de expansión: Yoid (1999), HMTP (2002)
– Construcción centralizada. No escalan correctamente
Segunda generaciSegunda generacióón: n:
– Overlay Peer-to-Peer estructurado
– Despliegue de una estructura eficiente para distribuir el contenido ((áárbol generalmente)rbol generalmente)
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
14
ChordChord
OverlayOverlay estructurado, DHTestructurado, DHT
Algoritmo sencilloAlgoritmo sencillo–– CorrecciCorreccióón y rendimiento demostrables n y rendimiento demostrables
formalmenteformalmente
Los nodos se organizan en un anilloLos nodos se organizan en un anillo–– IdId elegido mediante elegido mediante hashhash SHASHA--11–– IdsIds consecutivos consecutivos --> cercan> cercaníía en red a en red
ffíísicasica
Cada Cada nodo del anillonodo del anillo es responsable es responsable del del almacenamiento de las claves almacenamiento de las claves antecesorasantecesoras
6
07 1
2
34
5
5
1
3
Sucesor(1)=1
Sucesor(3)=4
Sucesor(5)=0
[2001] [2001] StoicaStoica, Morris, , Morris, KargerKarger, , KaashoekKaashoek, , BalakrishnanBalakrishnan(MIT (MIT LaboratoryLaboratory forfor ComputerComputer ScienceScience))
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)
16
Chord: TopologyIDs 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
2
6
0
4
26
5
1
3
7
2AnilloChord
IdentificadorNodo
X Clave
sucesor(1) = 1
sucesor(2) = 3sucesor(6) = 0
17
Chord: EncaminamientoTabla 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
0
4
26
5
1
3
7
finger tablei succ.
keys1
012
330
start235
finger tablei succ.
keys2
012
000
start457
124
130
finger tablestart succ.
keys6
012
i
18
ChordChordEstructura de la tabla de nodosEstructura de la tabla de nodos–– Dedos apuntan a valores separados de Dedos apuntan a valores separados de mi_Idmi_Id + {2+ {200, 2, 211, 2, 222,.. 2,.. 2NN--11}}–– Se almacena el nodo sucesor de los dedosSe almacena el nodo sucesor de los dedos–– Encaminamiento: Encaminamiento: BusquedaBusqueda dicotdicotóómica, mica, O(LogO(Log22 (N))(N)) saltossaltos
6
07 1
2345
1
3
Tabla de dedosClave Inicio Intervalo nodo
sucesor 1 [1,2) 1 2 [2,4) 4 4 [4,0) 0
Tabla de dedos
5Inicio Intervalo nodo
sucesor2 [2,3) 3 3 [3,5) 3 5 [5,1) 0
Clave
Inicio Intervalo nodo sucesor
5 [5,6) 0 6 [6,0) 0 0 [0,4) 0
Clave
Tabla de dedos
Entradas de nodosEntradas de nodos–– LocalizaciLocalizacióón de antecesor n de antecesor
y predecesory predecesor–– ActualizaciActualizacióón de n de
apuntadores en nodos apuntadores en nodos implicadosimplicados
CaCaíídas de nodosdas de nodos–– ReparaciReparacióón de tablas de n de tablas de
apuntadores en nodos apuntadores en nodos implicadosimplicados
19
PastryPastry[2000] A. [2000] A. RowstonRowston (Microsoft (Microsoft ResearchResearch)) y P. y P. DruschelDruschel (Rice (Rice UniversityUniversity))
OverlayOverlay estructurado. Implementa DHTestructurado. Implementa DHT
Identificadores 128 bitsIdentificadores 128 bits ((hashhash SHASHA--1) 1)
(R=2(R=2b, b=4, , b=4, IdId=8 d=8 díígitos)gitos)
Tablas encaminamiento [R x Tablas encaminamiento [R x LogLogRR(N(N)] )]
Lista hojasLista hojas: nodos m: nodos máás cercanoss cercanos
Lista vecinos:Lista vecinos: por si hay fallopor si hay fallo
Saltos encaminamiento Saltos encaminamiento O(LogO(Log22b (N))(N))
54FFA0
D85BC2
D5A00B
D5330A
D5A123
00000 FFFFF
route (msg,D5A123)
Identificador de nodoIdentificador de mensaje
20
PastryPastryTabla de encaminamiento del nodo 10233102Tabla de encaminamiento del nodo 10233102
--00--22121022212102 11 --22--23012032301203 --00--22121022212102
00 11--22--230203230203
22
33
33
11 1023310233--22--3232
00
22
0-XXXXXXXX 12-XXXXXXX
102332-XX
21
ScribeScribe[2001] M. Castro, A. [2001] M. Castro, A. RowstonRowston, A. , A. KermarrecKermarrec (Microsoft (Microsoft ResearchResearch))
y P. y P. DruschelDruschel (Rice (Rice UniversityUniversity))
0020
0001 0023
0032 0302
0110 0132 1132
2023
3020
3311 1023 2321
0013
0112
Camino para unirse al árbol. Paquete JOIN Camino de distribución de datos. Paquete TREE
El nodo El nodo 23212321 se une al se une al áárbol rbol cuya racuya raííz es el nodo z es el nodo 00200020RaizRaiz ((RendezvousRendezvous PointPoint))::
–– nodo con nodo con idid mmáás cercano al del s cercano al del grupogrupo
–– DistribuciDistribucióón desde la ran desde la raíízz
ÁÁrbol con Construccirbol con Construccióón impln implíícitacita::–– Equipo se une encaminando a Equipo se une encaminando a
travtravéés de s de PastryPastry un paquete hacia un paquete hacia el nodo rael nodo raííz z
–– Similar a Reverse Similar a Reverse PathPath ForwardingForwarding
Se detectan caSe detectan caíídas por los hijosdas por los hijos
Aparecen nodos no receptores
22
SplitStreamSplitStream
Bosque de Bosque de áárboles rboles ScribeScribe sobre sobre PastryPastry
Nodos con identificador que empieza por “0”Nodos con identificador que empieza por “1”
Nodos con identificador que empieza por “2”
X
X
X
Y
Y Y
Z
ZZ
emisor
Raíz subflujo 0 Raíz subflujo 1 Raíz subflujo 2
[2003] Castro, [2003] Castro, RowstonRowston, , KermarrecKermarrec (Microsoft (Microsoft ResearchResearch)) y y DruschelDruschel, , Nandi, Singh Nandi, Singh (Rice (Rice UniversityUniversity))
23
TapestryTapestry
Malla de equipos que Malla de equipos que implementa una DHTimplementa una DHT–– Identificador 160 bits Identificador 160 bits
(agrupado en 40 (agrupado en 40 digitosdigitos), ), IdsIds: : SHASHA--11
Similar a Similar a PastryPastry–– Tabla encaminamiento idTabla encaminamiento idééntica ntica
(sin hojas), Saltos: (sin hojas), Saltos: O(Log(NO(Log(N))
Tolerancia a fallos: 3 nodos por Tolerancia a fallos: 3 nodos por sufijosufijo
PublicaciPublicacióón almacena n almacena <<clave,valorclave,valor>> en cada nodo en cada nodo intermediointermedio
400F
4227
5230
4629
42A2
AC78
42AD
42A9
4112
42A7
4211
42E0L1
L2
L2
L3
L1
L4
L4
L3
L3
L4
L2
Route ( msg, 42AD )
[2001] Zhao, Joseph, [2001] Zhao, Joseph, KubiatowiczKubiatowicz ((UniversityUniversity ofof California at Berkeley)California at Berkeley)
24
BayeuxBayeux
Similar a Similar a ScribeScribe
UniUnióón al n al áárbolrbol–– El nodo 1250 encamina un El nodo 1250 encamina un
paquete paquete ““joinjoin”” hacia la hacia la raizraiz 67866786
–– La raLa raííz encamina los paquetes de z encamina los paquetes de datos hacia el nodo 1250datos hacia el nodo 1250
Incorpora nodos intermediosIncorpora nodos intermedios
Se detectan caSe detectan caíídas por parte de das por parte de los padreslos padres
1250
67**
6***
6786
678* 1***
125*
12**
Camino para unirse al árbol. Paquete JOIN
Camino de distribución de datos. Paquete TREE
Problema de escalabilidadProblema de escalabilidad::–– Toda la gestiToda la gestióón del grupo pasa por la ran del grupo pasa por la raíízz
–– Los nodos intermedios guardan la Los nodos intermedios guardan la pertenencia al grupo de los receptorespertenencia al grupo de los receptores
[2001] Zhuang, Zhao, Joseph, Katz, [2001] Zhuang, Zhao, Joseph, Katz, KubiatowiczKubiatowicz ((UniversityUniversity ofof California California at Berkeley)at Berkeley)
25
CAN CAN ((ContentContent AddressableAddressable Network)Network)
OverlayOverlay estructurado. DHT.estructurado. DHT.–– Los identificadores se transforman Los identificadores se transforman
a (x1,x2,a (x1,x2,……,,xnxn) )
El El áárea Nrea N--dimensional se reparte dimensional se reparte entre los nodos existentesentre los nodos existentes
Nodo CAN guarda:Nodo CAN guarda:–– (IP, coordenadas) de todos los (IP, coordenadas) de todos los
vecinosvecinos
([0,5 - 0,75],[0,5 - 1,0])
([0,75 – 1,0],[0,5 - 1,0])
([0,0 - 0,5],[0,0 - 0,5]) ([0,5 - 1,0],[0,0 - 0,5])
([0,0 – 0,5],[0,5 – 1,0])
C
A
D E
B (0 , 0)
(1 , 1)
[2001] [2001] RatnasamyRatnasamy, , HandleyHandley, , ShenkerShenker, , KarpKarp(ACIRI: (ACIRI: AT&TAT&T CenterCenter forfor Internet Internet ResearchResearch at ICSI, y at ICSI, y UniversityUniversity ofof California at Berkeley)California at Berkeley)
26
CAN CAN ((ContentContent AddressableAddressable Network)Network)
UniUnióónn–– Se contacta con un nodo de la red Se contacta con un nodo de la red
CAN (nodo CAN (nodo bootboot))
–– Elijo un punto (Elijo un punto (x,yx,y) y encamino un ) y encamino un JOIN hacia JOIN hacia ééll
–– El poseedor de la coordenada parte El poseedor de la coordenada parte en 2 todo su espacioen 2 todo su espacio
–– Actualizamos tablas con los vecinos Actualizamos tablas con los vecinos ((O(dO(d) mensajes)) mensajes)
Salidas y abandonosSalidas y abandonos–– Algoritmo de recuperaciAlgoritmo de recuperacióón de zonas n de zonas
vecinasvecinas
E
EncaminamientoEncaminamiento–– Se avanza hacia el vecino con menor distancia al destinoSe avanza hacia el vecino con menor distancia al destino–– Se recorre por tSe recorre por téérmino medio rmino medio (d/4)(n(d/4)(n1/d1/d) saltos) saltos–– eCANeCAN: jer: jeráárquica, similar a rquica, similar a PastryPastry, , TapestryTapestry
27
MCMC--CANCAN
Los miembros del grupo Los miembros del grupo forman un miniforman un mini--overlayoverlay
DistribuciDistribucióón por inundacin por inundacióónnsobre el minisobre el mini--overlayoverlay CAN CAN construidoconstruido
Se generan duplicados extra de Se generan duplicados extra de paquetespaquetes
[2001] [2001] RatnasamyRatnasamy, , HandleyHandley, , ShenkerShenker, , KarpKarp(ACIRI: (ACIRI: AT&TAT&T CenterCenter forfor Internet Internet ResearchResearch at ICSI, y at ICSI, y UniversityUniversity ofof California at Berkeley)California at Berkeley)