doctorado p2p dht

27
1 Redes Peer-to-Peer A. Mozo ([email protected])

Upload: joaquin-salvachua

Post on 17-May-2015

2.302 views

Category:

Technology


4 download

DESCRIPTION

Transparencias de Alberto Mozo para explicar P2P y DHT

TRANSCRIPT

Page 1: Doctorado P2P Dht

1

Redes Peer-to-Peer

A. Mozo ([email protected])

Page 2: Doctorado P2P Dht

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

Page 3: Doctorado P2P Dht

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

Page 4: Doctorado P2P Dht

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)

Page 5: Doctorado P2P Dht

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

Page 6: Doctorado P2P 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?

Page 7: Doctorado P2P Dht

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

Page 8: Doctorado P2P Dht

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

?

Page 9: Doctorado P2P Dht

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)

Page 10: Doctorado P2P Dht

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

Page 11: Doctorado P2P Dht

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

Page 12: Doctorado P2P Dht

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)

Page 13: Doctorado P2P Dht

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

Page 14: Doctorado P2P Dht

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

Page 15: Doctorado P2P Dht

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)

Page 16: Doctorado P2P Dht

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

Page 17: Doctorado P2P Dht

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

Page 18: Doctorado P2P Dht

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

Page 19: Doctorado P2P Dht

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

Page 20: Doctorado P2P Dht

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

Page 21: Doctorado P2P Dht

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

Page 22: Doctorado P2P Dht

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

Page 23: Doctorado P2P Dht

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)

Page 24: Doctorado P2P Dht

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)

Page 25: Doctorado P2P Dht

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)

Page 26: Doctorado P2P Dht

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

Page 27: Doctorado P2P Dht

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)