DHT’sDHT’sTaules de Hash DistribuïdesTaules de Hash Distribuïdes
Toni Figueroa Cubells - [email protected]·laborador del grup de recerca “Arquitectura i serveis telemàtics”
Base de les aplicacions P2PBase de les aplicacions P2P
DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes
Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...
Introducció a les DHT’sMotivació i visió general, concepte, característiques
“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...
Línies de recercaCap a les “Overlay network”, situació actual
Simulador interactiu de “Chord”
Toni Figueroa Cubells
DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes
Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...
Introducció a les DHT’sMotivació i visió general, concepte, característiques
“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...
Línies de recercaCap a les “Overlay network”, seguretat, situació actual
Simulador interactiu de “Chord”
Toni Figueroa Cubells
Xarxes P2P conceptes clauXarxes P2P conceptes clau
Són aplicacions i sistemes que utilitzen recursos d’una manera descentralitzada.
Desapareix el concepte de servidor. Tots els clients tenen el mateix rol. La caiguda d’un o varis nodes no implica
una fallada del sistema, ni la pèrdua d’informació.
Toni Figueroa Cubells 4
Escalabilitat Eliminem dependències de punts
centralitzats Evitem costos en grans infraestructures:
emmagatzemament, ample de banda, ... Faciliten la incorporació de nous recursos
Toni Figueroa Cubells
Avantatges de les P2PAvantatges de les P2P
5
1a. Generació:- Índex centralitzat en un servidor (Napster).
2a. Generació:- Algorismes basats en inundació (Gnutella).
3a. Generació:- Algorismes basats en l’encaminament dinàmic.- DHT’s (Chord, kademlia, Pastry, ...)
Toni Figueroa Cubells
Evolució de les P2PEvolució de les P2P
6
Supercomputació distribuïda:SETI@Home, Folding@Home
Compartició de fitxers: Napster, eMule, Gnutella, Kazaa, ...
Comunicació i col·laboració:Groove, Chord DNS (DDNS)
Toni Figueroa Cubells
Aplicacions de les xarxes Aplicacions de les xarxes P2PP2P
7
Estructura d’una aplicació Estructura d’una aplicació P2PP2P
Sis
tem
a d
e fi
txer
slo
cal
Lògica del’aplicació
DHT Inte
rfíc
ie d
e xa
rxa
ProtocolsTCP, UDP
Aplicació P2P
Toni Figueroa Cubells 8
DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes
Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...
Introducció a les DHT’sMotivació i visió general, concepte, característiques
“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...
Línies de recercaCap a les “Overlay network”, seguretat, situació actual
Simulador interactiu de “Chord”
Toni Figueroa Cubells
Taules de Hash distribuïdes? Emmagatzemar parelles clau/valor d’una
manera distribuïda i descentralitzada. Millorar l’eficiència en la localització de les
aplicacions P2P.- Fins ara encaminament basat en tècniques d’inundació.
Bàsicament implementar l’interface:- get(HashId key)- put(HashId key, Object value)
Toni Figueroa Cubells
DHT’s, motivació i visió DHT’s, motivació i visió generalgeneral
10
Toni Figueroa Cubells
DHT’s, concepteDHT’s, concepte
key pos
0
Funció hash
1
2
N-1
3...
x
y z
lookuplookup (key) → datainsert (key, data)
““Beatles”Beatles” 22
Taula hash
bucket hash
h(key)%Nh(key)%N
Model tradicional
0
1
2
...
node
key posfunció hash
lookuplookup (key) → datainsert (key, data)
““Beatles”Beatles” 22h(key)%Nh(key)%N
N-1
Model distribuït
11
Distribució uniforme de claus.- Hashing consistent, espai de Hash prefixat.- SHA-1 (Secure Hash)
Descentralització.- Cada node és un bucket de la taula Hash.- No és necessari la figura de cap servidor.
Escalabilitat.- Aquest model ha de permetre l’entrada i sortida massiva de nodes.- Necessitat d’implementar algoritmes d’encaminament dinàmic.
Toni Figueroa Cubells
DHT’s, característiques - IDHT’s, característiques - I
12
Accessibilitat.- S’ha de poder localitzar qualsevol clau des de qualsevol node, en un temps de resposta curt.
Tolerància a errors.- A priori entorn molt dinàmic amb nodes heterogenis.- Necessitat d’una política de replicació de claus.- Capacitat de recuperació i autoorganització.
Toni Figueroa Cubells
DHT’s, característiques - IIDHT’s, característiques - II
13
DHT’s, resumDHT’s, resum
Què són:- Mecanisme de cerca directa en entorn distribuït.- Quan un node vol una clau, localitza el node que es responsable, o sap qui té la clau.- Proporcionen mecanismes d’encaminament descentralitzats, per evitar colls d’ampolla.
Què no són:- No emmagatzemen dades només claus, per poder localitzar les dades.- Les claus no representen significat semàntic, per cerca una clau necessitem el valor exacte de la clau.
Toni Figueroa Cubells 14
DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes
Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...
Introducció a les DHT’s Motivació i visió general, concepte, característiques
“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...
Línies de recercaCap a les “Overlay network”, seguretat, situació actual
Simulador interactiu de “Chord”
Toni Figueroa Cubells
Què és “Chord”?Què és “Chord”?
Eina de localització per aplicacions P2P internet, eficient i escalable.
Totalment descentralitzat i sense jerarquies. Donada una clau, mapeja aquesta clau a un
node.- Per tot k clau existeix n’ node t.q. successor(k) = n’
Els nodes/claus comparteixen un únic espai virtual d’adreçament, per on s’encaminen els missatges.
Toni Figueroa Cubells
!
16
Fonaments del protocol - IFonaments del protocol - I
Els nodes s’agrupen formant un anell d’identificadors de m bits.- Espai d’adreçament de 2m nodes/claus.- El node n-èssim només manté informació de m nodes.
Asimètric, cerques només en el sentit de les agulles del rellotge.
Hashing consistent, distribució uniforme.- Identificador k = SHA(k).- Identificador node = SHA(<ip><port>).
Toni Figueroa Cubells
espai d’ident.únic
17
Fonaments del protocol - IIFonaments del protocol - II
Localitzar una clau implica O(log N) missatges.
Capaç de suportar entrades i sortides de nodes de forma concurrent.
Quan el node n-èssim entra o surt de l’anell,- Calen O(log2 N) missatges per mantenir l’encaminament.- Només O(1/N) claus canviaran de node.
Toni Figueroa Cubells 18
Arquitectura del protocol - IArquitectura del protocol - I
Anell d’identificadors de m bits. “Chord” necessita assegurar dos invariants:
1.- Cada node n’ li cal informació del seu successor.2.- Per cada clau k, el successor(k) és responsable de k.
Per mantenir els dos invariants necessitem:- successor(n’).- predecessor(n’).- taula finger.
Toni Figueroa Cubells
!
19
Toni Figueroa Cubells
Concepte, successor(Concepte, successor( kk ) = ) = n’n’
6
1
2
6
0
4
26
5
1
3
7
2
identificador
node
k clau
successor(1) = 1
successor(2) = 3successor(6) = 0
• m=3, espai d’adreçament de 8 claus/nodes.
20
Toni Figueroa Cubells
Operació Operació joinjoin i i leaveleave
identificador
node
clau6
1
2
0
4
26
5
1
3
7successor(6) = 7
6
1
successor(1) = 3
k
• m=3, espai d’adreçament de 8 claus/nodes.
21
Arquitectura del protocol - IIArquitectura del protocol - II
El concepte de successor és insuficient,- És ineficient, la cerca d’una clau implica un recorregut lineal per l’anell O(N).- En un entorn molt dinàmic, no es garanteix l’èxit.
Necessitem mantenir més apuntadors a altres nodes, taula finger.- Permet fer les cerques en un cost O(log N).- En un entorn molt dinàmic, encara que els apuntadors no siguin correctes, la cerca també tindrà èxit.
Toni Figueroa Cubells 22
Toni Figueroa Cubells
Primer node n’t.q. n’ >= n.finger[k].inci
finger[k].node
[finger[k].inici, finger[k+1].inici)finger[k].interval
(n + 2k) mod 2m, 0<=k<mfinger[k].inici
DefinicióNotació
n = identificador del nodem = bits de l’espai d’adreçament
Notació de la taula Notació de la taula fingerfinger
• Estructura de dades necessària per mantenir el protocol.
23
0
4
26
5
1
3
7
124
[1,2)[2,4)[4,0)
130
Taula finger 1inici int. succ.
claus1
235
[2,3)[3,5)[5,1)
330
Taula finger 3inici int. succ.
claus2
457
[4,5)[5,7)[7,3)
000
Taula finger 0inici int. succ.
claus6
Toni Figueroa Cubells
Inicialització de la taula Inicialització de la taula fingerfinger
• m=3, espai d’adreçament de 8 claus/nodes.
24
0
4
26
5
1
3
7
124
[1,2)[2,4)[4,0)
130
Taula finger 1inici int. succ.
claus1
235
[2,3)[3,5)[5,1)
330
Taula finger 3inici int. succ.
claus2
457
[4,5)[5,7)[7,3)
000
Taula finger 0inici int. succ.
claus
Taula finger 6inici int. succ.
claus
702
[7,0)[0,2)[2,6)
003
6
6
66
6
Toni Figueroa Cubells
taula taula fingerfinger , operació , operació joinjoin
• m=3, espai d’adreçament de 8 claus/nodes.
25
0
4
26
5
1
3
7
124
[1,2)[2,4)[4,0)
130
Taula finger 1inici int. succ.
claus1
235
[2,3)[3,5)[5,1)
330
Taula finger 3inici int. succ.
claus2
457
[4,5)[5,7)[7,3)
660
Taula finger 0inici int. succ.
claus
Taula finger 6inici int. succ.
claus
702
[7,0)[0,2)[2,6)
003
6
6
6
0
3
Toni Figueroa Cubells
taula taula fingerfinger , operació , operació leaveleave
• m=3, espai d’adreçament de 8 claus/nodes.
26
n1
n8
n14
n32
n21
n38
n42
n48
n51
n56
k54
2m-1 0
n8+1
n8+2
n8+4
n8+8
n8+16
n8+32
n14
n14
n14
n21
n32
n42
+32
+16 +8
+4
+2
+1lookup(k54)
Taula finger n8
taula taula fingerfinger , operació , operació lookuplookup
• m = 6, espai d’adreçament de 64 claus/nodes.
Toni Figueroa Cubells 27
Concepte, predecessor(Concepte, predecessor( nn ) = ) = n’n’
Necessari per cercar el successor- successor(k) = successor( predecessor(k) )
n.find_successor(id)n’ = find_predecessor(id);return n’.successor;
n.find_predecessor(id)n’ = n;while (id not in (n’, n’.successor])
n’ = n’.closest_preceding_finger(id);return n’;
n.closest.preceding_finger(id)for i=m downto 1if (finger[i].node in (n,id))
return finger[i].node;return n;
Toni Figueroa Cubells 28
Operacions concurrents i Operacions concurrents i falladesfallades
Necessitem un protocol d’estabilització. Cada node l’executa periòdicament.
1.- Actualitzar successor.2.- Si cal notificar al nou successor el nou predecessor.3.- Actualitzar les entrades de la taula finger.
Objectius:- Mantenir els successors i predecessor actualitzats.- Fer servir els apuntadors anteriors per actualitzar les entrades de la taula finger.- Localitzar els nous nodes i descartar els que ja no hi són.
Toni Figueroa Cubells 29
np
succ
(np)
= n
s
ns
n
pre
d(n
s) =
np
n joins
predecessor = nil
n obté ns com a successor via algun n’
n notifica ns per que sigui el seu nou predecessor
ns actualitza n com el seu predecessor
np executa l’estabilització
np demana a ns qui és el seu predecessor (ara n)
np actualitza el seu successor, ara és n
np ho notifica a n
n actualitza el seu predecessor, ara és np
* Tots els apuntadors generats per l’entrada del nou node són correctes
* Les taules finger s’han d’actualitzar però els antics apuntadors també serveixen
nil
pre
d(n
s) =
n
succ
(np)
= n
Toni Figueroa Cubells
Protocol d’estabilitzacióProtocol d’estabilització
30
DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes
Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...
Introducció a les DHT’s Motivació i visió general, concepte, característiques
“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...
Línies de recercaCap a les “Overlay network”, seguretat, situació actual
Simulador interactiu de “Chord”
Toni Figueroa Cubells
““ Overlay network”Overlay network”
DHT’s són una primitiva de localització, només aporten put(key, value) i get(key).
Per localitzar una clau cal saber exactament el seu identificador.
Cal afegir un punt més de funcionalitat per millorar els criteris de cerca
Toni Figueroa Cubells 32
Mecanismes d’accés Mecanismes d’accés semànticsemàntic
Indexació de continguts basada en DHT’s. Proporcionar accés per contingut enlloc
d’accés per nom.- Permet construir sentències de cerca estructurades.
>SELECT files LIKE ‘java’ AND ‘xml’
IR(information retrival)semId(semantic identifier)
Toni Figueroa Cubells 33
Arquitectura d’una aplicació Arquitectura d’una aplicació P2P d’accés semànticP2P d’accés semàntic
Aplicació P2P
DHT
Lògica de l’aplicació
Sistema defitxers local
Obtenciósemàntica IR
Indexació semàntica,construcció clau única
Toni Figueroa Cubells 34
““ Overlay networks”, Overlay networks”, seguretatseguretat
Motivació.- Què passa quan un node maliciós es connecta a la xarxa?
Quin és el repte?- Assegurar que quan un node vàlid envia un missatge a una clau, el missatge arriba a totes les repliques vàlides de la clau en una probabilitat molt alta.
Toni Figueroa Cubells 35
Nous conceptes de seguretat Nous conceptes de seguretat en xarxes P2Pen xarxes P2P
Cada node s’assigna ell mateix el nodeId. Cada node actua com un encaminador,
- Ha de mantenir una taula de rutes.- Ha de reenviar missatges a altres nodes.
Xarxes totalment descentralitzades.- No hi ha autenticació ni autorització.- No s’estableixen relacions de confiança, no es pot confiar en ningú.- Xarxes molt dinàmiques amb capacitat de reorganització.
Nivell de xarxa vs. nivell “Overlay”
Toni Figueroa Cubells 36
Possibles atacsPossibles atacs
En l’assignació del nodeId. En el manteniment de la taula de rutes. En el reenviament de missatges
Toni Figueroa Cubells 37
Atac en l’assignació del Atac en l’assignació del nodeIdnodeId
Motivació:- Suplantar la personalitat d’un node vàlid.- Segmentar una xarxa P2P.- Esdevenir el root d’una clau.
Possible solució, delegar la generació dels nodeId’s a una CA de confiança.- Centralitzat, subjecte a atacs.- Poc recomanable per a xarxes petites.- Què passa en situacions dinàmiques, DHCP, NAT, ...
Toni Figueroa Cubells 38
* Com afectaran aquestes mesures al rendiment del sistema,icom podem assegurar que el node bootstrap no és maliciós?
Atac en el manteniment de la Atac en el manteniment de la taula de rutestaula de rutes
Motivació:- Donar informació falsejada en la localització del node més proper a una clau.- Fer que la xarxa P2P sigui molt ineficient.
Possibles solucions:- Utilitzar dos taules de rutes, la segona de backup?- Actualitzar la taula de rutes a partir de node bootstrap?
Toni Figueroa Cubells 39
Atac en el reenviament de Atac en el reenviament de missatgesmissatges
Motivació:- Operacions de manteniment de la xarxa fallaran.- Simple, només cal descartar missatges, o enviar-los a un altra node.
Possibles solucions:- Aplicar tests de fiabilitat per comprovar que l’encaminament és correcte.- Utilitzar altres mecanismes de encaminament dinàmic en paral·lel.
Toni Figueroa Cubells 40
Conclusions de seguretatConclusions de seguretat
És un problema que encara no té solució. És més difícil de detectar i controlar quan
existeix una conspiració. Necessitat d’establir criteris de confiança.
Toni Figueroa Cubells 41
DHT’S taules de hash DHT’S taules de hash distribuïdesdistribuïdes
Xarxes peer-to-peer P2PConceptes clau, avantatges, evolució i aplicacions, ...
Introducció a les DHT’s Motivació i visió general, concepte, característiques
“Chord” com protocol de localitzacióQuè és Chord?, fonaments, arquitectura, ...
Línies de recercaCap a les “Overlay network”, seguretat, situació actual
Simulador interactiu de “Chord”
Toni Figueroa Cubells
Top Related