Diapositiva 1 - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Diapositiva 1

Description:

Title: Diapositiva 1 Author: gencor Last modified by: gencor Created Date: 1/8/2003 11:40:48 AM Document presentation format: Presentazione su schermo – PowerPoint PPT presentation

Number of Views:48
Avg rating:3.0/5.0
Slides: 37
Provided by: genc3
Category:
Tags: jxta | diapositiva

less

Transcript and Presenter's Notes

Title: Diapositiva 1


1
Peer To Peer (o quasi)
Gennaro Cordasco
2
P2P (o quasi)
?Peer to Peer (P2P)?
jxta
can
pastry
fiorana
napster
united devices
freenet
?
open cola
aim
ocean store
netmeeting
farsite
gnutella
icq
ebay
morpheus
limewire
seti_at_home
bearshare
uddi
grove
jabber
popular power
kazaa
folding_at_home
tapestry
mojo nation
process tree
chord
3
P2P (o quasi)
Sommario
  • Cosa vuol dire Peer to Peer(P2P)
  • Un po di storia
  • Distributed Hash Table (DHT)
  • Alcuni problemi aperti su DHT
  • Alcune applicazioni (quasi ?)
  • JXTA

4
P2P (o quasi)
Cosa vuol dire Peer to Peer (P2P)?
  • Sistema distribuito nel quale ogni nodo ha
    identiche capacità e responsabilità e tutte le
    comunicazioni sono potenzialmente simmetriche
  • Peer to peer (obiettivi) condividere risorse e
    servizi (dove per risorse e servizi intendiamo
    scambio di informazioni, cicli di CPU, spazio sul
    disco )
  • I sistemi P2P possiedono molti aspetti tecnici
    interessanti
  • decentralized control
  • adaptation
  • self-organization

5
P2P (o quasi)
Un po di storia
  • Proposti già da oltre 30 anni
  • Sviluppati nellultimo decennio
  • Linteresse verso questo tipo di protocolli è
    aumentato con la nascita dei primi sistemi per
    file-sharing (Napster (1999), Gnutella(2000))
  • Nel 2000 50 milioni di utenti hanno scaricato il
    client di Napster
  • Napster ha avuto un picco di traffico di circa 7
    TB in un giorno
  • L11/12/2002 è stata aperta lasta online per la
    vendita del server di Napster

6
P2P (o quasi)
Ip address
P2P di seconda generazione e DHT
  • Scalabilità il lavoro richiesto a un
    determinato nodo nel sistema non deve crescere (o
    almeno cresce lentamente) in funzione del numero
    di nodi nel sistema
  • Problema, i protocolli usati da Napster e
    Gnutella non sono scalabili
  • (In realtà non sono P2P!!!)
  • Per migliorare la scalabilità sono nati i
    cosiddetti protocolli P2P di seconda generazione
    che supportano DHT (Distributed Hash Table)
  • Alcuni esempi di questi protocolli sono
    Tapestry, Pastry, Chord, Can, Viceroy

7
P2P (o quasi)
Ip address
P2P di seconda generazione e DHT
  • A ogni file e ad ogni nodo è associata una
    chiave
  • La chiave viene di solito creata facendo lhash
    del nome del file
  • Ogni nodo del sistema è responsabile di un
    insieme di file(o chiavi) e tutti realizzano una
    DHT
  • Lunica operazione che un sistema DHT deve
    fornire è lookup(key), la quale restituisce
    lidentità del responsabile di una determinata
    chiave.

8
P2P (o quasi)
P2P is as P2P does ?
DHT Utilità
  • File sharing system
  • File storage system
  • Distributed file system
  • Redundant storage
  • Availability
  • Performance.
  • Permanence
  • Anonymity
  • Chat service

9
P2P (o quasi)
DHT Routing
  • La scalabilità di un protocollo è direttamente
    legata allefficienza dellalgoritmo usato per il
    routing
  • In questo senso sostanzialmente gli obiettivi
    sono due
  • Minimizzare il numero di messaggi necessari per
    fare lookup
  • Minimizzare, per ogni nodo, le informazioni
    relative agli altri nodi
  • I vari DHT conosciuti differiscono proprio nel
    routing

10
P2P (o quasi)
DHT Routing (Tapestry)
  • Realizzazione dinamica dellalgoritmo di Plaxton
    et al.(che non si adattava a sistemi dinamici)
  • Supponendo che le chiave è costituita da un
    intero positivo lalgoritmo di routing corregge a
    ogni passo un singolo digit alla volta
  • Per fare ciò un nodo deve avere informazioni sui
    nodi responsabili dei prefissi della sua chiave
    (O(log N) nodi)
  • Il numero di messaggi necessari per fare lookup
    è O(log N)
  • Lalgoritmo in pratica simula un Ipercubo

11
P2P (o quasi)
DHT Routing (Chord)
  • Le chiavi sono mappati su un array circolare
  • Il nodo responsabile di una determinata chiave è
    il primo nodo che la succede in senso orario
  • Ogni nodo x di Chord mantiene due insiemi di
    vicini
  • I log N successori del nodo x più il
    predecessore. Questo insieme viene usato per
    dimostrare la correttezza del Routing
  • Un insieme log N nodi distanziati
    esponenzialmente dal nodo x, vale a dire
    linsieme dei nodi che si trovano a distanza 2i
    da x per i che va da 0 a log N 1. Questo
    insieme viene usato per dimostrare lefficienza
    del Routing

12
P2P (o quasi)
DHT Routing (Chord)
  • Le informazioni che il nodo deve mantenere sugli
    altri nodi sono log N log N 1 O(log N)
  • Il numero di messaggi necessari per fare lookup
    è O(log N)
  • Il costo che si paga quando un nodo lascia o si
    connette alla rete è di O(log2N) messaggi
  • Lalgoritmo in pratica simula un Ipercubo,
    inoltre si comporta molto bene in un sistema
    dinamico
  • Svantaggi
  • una sola dimensione
  • una sola strada

13
P2P (o quasi)
DHT Routing (CAN)
  • I nodi sono mappati su un toro d-dimensionale
  • A ogni nodo è associato un sottoinsieme di
    questo spazio d-dimensionale
  • Ogni nodo mantiene la lista dei nodi
    responsabili dei sottospazi che confinano con il
    proprio sottospazio
  • Ogni nodo ha O(d) vicini (due per ogni
    dimensione)
  • Il routing avviene in passi,
    in media
  • Da notare che se usiamo d log N dimensioni
    abbiamo O(log N) vicini e il routing ha costo

14
P2P (o quasi)
DHT Routing (Viceroy)
  • I nodi sono mappati su una butterfly e
    contemporaneamente su un array circolare
  • Ogni nodo ha un identificatore addizionale
    chiamato livello
  • Tre tipi di link
  • General link predecessore e successore
    sullarray circolare (2 link)
  • Level ring connette i nodi di uno stesso
    livello (2 link)
  • Butterfly link realizza la butterfly (2 link)
  • Ogni nodo ha O(1) vicini
  • Il routing avviene in O(log N) passi in media e
    O(log2 N) passi WHP

15
P2P (o quasi)
DHT Routing (Viceroy)
16
P2P (o quasi)
Ip address
DHT Routing (Osservazioni)
  • Esistono un bel po di soluzioni (Ce ne sono
    altre!!!)
  • Le prestazioni sono più o meno uguali (in
    teoria)
  • La domanda da porsi però è Il gioco vale la
    candela

17
P2P (o quasi)
DHT Capacità di far fronte ai fallimenti
  • Cosa succede se un nodo cade?
  • I dati presenti nel nodo possono essere
    recuperati solo se ci sono duplicati.
  • Il routing continua a funzionare? Con quale
    efficienza?
  • Quanto costa una procedura per ripristinare
    tutti i link?
  • Chi chiama questa procedura? (vale a dire chi si
    accorge che un nodo non è attivo).

18
P2P (o quasi)
DHT Routing Hot Spots
  • Se una chiave è richiesta più spesso, il
    responsabile della chiave e anche i suoi vicini
    potrebbero sovraccaricarsi
  • Per ovviare al problema si possono usare
    meccanismi di caching e di duplicazione
  • Diverso è il problema relativo ai nodi che si
    sovraccaricano per il traffico generato dalle
    lookup
  • Questo tipo di traffico è abbastanza difficile
    da individuare e da gestire

19
P2P (o quasi)
DHT Incorporating Geography
  • Finora abbiamo misurato le prestazioni del
    routing contando il numero di hop necessari a
    individuare il responsabile di una chiave
  • Sarebbe utile, inoltre, minimizzare la latenza
    del singolo hop
  • In pratica vogliamo che nodi vicini sulla rete
    DHT, siano fisicamente vicini
  • Alcune tecniche
  • Proximity Neighbor Selection Alcuni algoritmi
    danno la possibilità di scegliere più percorsi
    per effettuare il routing, unidea potrebbe
    essere quella di scegliere ad ogni passo il
    vicino fisicamente più vicino

20
P2P (o quasi)
DHT Incorporating Geography
  • Geographic Layout Usare un algoritmo per
    attribuire le chiavi ai nodi in modo che nodi
    fisicamente vicini abbiano identificatori
    simili. (Controindicazioni Bilanciamento del
    carico, Routing Hot Spots e Sicurezza)
  • Mentre è possibile dimostrare che le latenze fra
    i nodi di una internet si possono modellare
    ragionevolmente su uno spazio d-dimensionale con
    d2, ancora non è stato trovato un mapping
    ragionevole su un sistema a 1 dimensione.
  • (Problema Chord ad esempio ha una sola
    dimensione).

21
P2P (o quasi)
DHT Incorporating Geography (CAN)
  • Un idea
  • Supponiamo di avere m macchine sempre attive che
    svolgono il compito di marcatori. (Non devono
    necessariamente far parte del sistema)
  • Ogni nodo misura il suo RTT verso ogni marcatore
    e ordina i marcatori in ordine crescente di RTT
  • Esistono m! disposizioni diverse dei marcatori
  • Si partiziona lo spazio delle chiavi in m! zone
    uguali
  • Si assegna lo stesso sottospazio ai nodi che
    calcolano la stessa disposizione dei marcatori
  • Si può usare anche su spazi a una sola
    dimensione?

22
P2P (o quasi)
DHT Incorporating Geography
  • Problemi
  • Bilanciamento del carico
  • Routing Hot Spots
  • Sicurezza
  • La scelta della posizione dei marcatori è un
    fattore critico
  • Chi fa da marcatore?

23
P2P (o quasi)
DHT Extreme Heterogeneity
  • I nodi connessi a questo tipo di reti sono
    eterogenei (Es. capacità di calcolo e banda)
  • E possibile progettare algoritmi di routing che
    considerino anche questa eterogeneità
  • La tecnica più diffusa per risolvere questo
    problema consiste nel considerare dei nodi
    virtuali tutti con le stesse capacità e assegnare
    a ogni nodo reale un numero di nodi virtuali
    proporzionale alle proprie capacità

24
P2P (o quasi)
DHT Sicurezza
  • E possibile realizzare un protocollo P2P che
    resiste ad attacchi di tipo denial of service
  • E necessario replicare i dati
  • E importante usare funzioni hash One Way (per
    i dati e per i nodi)
  • E importante osservare che tutte le
    dimostrazioni relative alla sicurezza dei vari
    algoritmi incontrati finora si basano sul fatto
    che le chiavi vengono associate ai files in modo
    casuale (quasi tutti gli algoritmi usano SHA)

25
P2P (o quasi)
P2P(quasi) Classificazione
  • Hybrid
  • Centralized index, P2P
  • file storage and transfer
  • Super-peer
  • A pure network of
  • hybrid clusters
  • Pure
  • functionality completely
  • distributed

26
P2P (o quasi)
P2P(quasi) Direct Connect (DC)
  • Usa una serie di hub (server) che mantiene le
    informazioni relative a un gruppo di utenti
  • Una volta connessi ad un hub si condivide file
    solo con i nodi connessi a tale hub
  • E possibile connettersi a più hub
    contemporaneamente
  • Gli hub sono connessi tra loro ma non si
    scambiano informazioni relative alla ricerca di
    una determinata chiave !!!(Sono tanti piccoli
    Napster)
  • La lista degli hub attivi viene mantenuta da
    tutti gli hub e aggiornata periodicamente dagli
    altri hub mediante messaggi del tipo I am here

P2P ibrido
27
P2P (o quasi)
P2P(quasi) WinMx
  • E basato su una rete di server (circa 50)
    chiamata OpenNap nata subito dopo che è stato
    chiuso il server di Napster
  • Viene usata anche da NapMx
  • In WinMx viene fatta una distinzione fra nodi di
    connessione primaria
  • direttamente connessi ai server
  • sono usati anche per il Routing
  • e nodi di connessione secondaria
  • connessi solo ai nodi di connessione primaria
  • non si occupano di Routing

SuperPeer-ibrido P2P
28
P2P (o quasi)
P2P(quasi) KaZaA
  • Viene usata una rete proprietaria
  • In KaZaA viene fatta una distinzione fra nodo e
    Supernodo(server)
  • Ogni nodo semplice collabora con il proprio
    Supernodo
  • I Supernodi collaborano tra loro e con i propri
    sottonodi
  • Come sono connessi i Supernodi?

SuperPeer P2P
29
P2P (o quasi)
P2P(quasi) Gnutella2
Nodo Hub
  • Struttura simile a KaZaA
  • In Gnutella2 il numero massimo di nodi affidati
    a un hub è basso(150)
  • Il costo di comunicazione fra nodi e hub è basso
    (la comunicazione a questo livello non è P2P e in
    un certo senso è giusto che sia così)

SuperPeer P2P
30
P2P (o quasi)
P2P(quasi) Gnutella2
Nodo Hub
  • Il problema principale è rappresentato dalla
    comunicazione fra gli hub
  • Gli hub sono raggruppati in cluster
  • Quando un nodo richiede la ricerca di un proprio
    elemento al proprio hub
  • Viene ricercato lelemento nel proprio cluster
  • Viene ricercato lelemento nei cluster vicini(a
    distanza 1) più qualche cluster lontano scelto a
    caso
  • Viene ricercato lelemento nei cluster vicini
    dei vicini (a distanza 2) più qualche cluster
    lontano scelto a caso
  • .

31
P2P (o quasi)
P2P(quasi) Gnutella2
Nodo Hub
  • La lista degli hub a distanza i1 è ottenuta in
    risposta alla ricerca effettuata sugli hub a
    distanza i
  • Ogni hub mantiene la lista degli hub vicini più
    una cache di hub lontani aggiornata di tanto in
    tanto
  • Viene mantenuta una done list
  • Le ricerche allinterno del cluster sono fatte
    usando TCP
  • Le ricerche fra cluster sono fatte usando UDP

UDP SEARCH
TCP SEARCH
32
P2P (o quasi)
P2P Gnutella
  • La ricerca usa il flooding
  • La ricerca risulta inefficiente e non scalabile

P2P Puro
33
P2P (o quasi)
P2P(quasi) Osservazioni
  • In generale i sistemi che hanno più server sono
    più scalabili dei sistemi che hanno meno server
    ma, allo stesso tempo, più lenti nelle ricerche
  • I server sono usati solo per la ricerca del
    dati
  • Tutte i protocolli visti finora sono usati per
    file-sharing
  • Tutti usano un server per il boot
  • Ma vale la pena chiamarli P2P???

34
P2P (o quasi)
P2P(file-storage-service) FreeNet
  • Ogni nodo mette a disposizione un po di spazio
  • Le operazioni possibili sono get e put di un
    file
  • Per aggiugere un nuovo file si invia un send
    message nella rete e un identificatore GUID
    (Global Unique Identifier) in base al quale il
    file viene memorizzato in un insieme di nodi
    (Data Partition)
  • Per recuperare un file basta inviare un
    messaggio di richiesta contenente il GUID del
    file
  • Servizi aggiuntivi
  • Persistenza
  • Anonimia

P2P Puro
35
P2P (o quasi)
P2P FreeNet(Routing)
  • E tuttaltro che efficiente

36
P2P (o quasi)
JXTA
  • Sun ha realizzato una piattaforma open source
    JXTA (sta per juxtapose) per creare in modo
    facile applicazioni P2P.
  • JXTA non è una libreria di codice piuttosto,
    è un insieme di protocolli che può essere
    implementato in ogni linguaggio e su ogni rete
    per costruire applicazioni P2P.
  • JXTA fornisce tutte le funzionalità di base
    richieste in una applicazione P2P fra queste
  • peer discovery
  • peer communication
  • JXTA è 100 OPEN SOURCE per ulteriori info
    http//www.jxta.org
Write a Comment
User Comments (0)
About PowerShow.com