Applicazioni informatiche - lezione 71 APPLICAZIONI INFORMATICHE IL MARKETING PER LINFORMATICA.
Corso di Applicazioni Telematiche Applicazioni peer …unina.stidue.net/Applicazioni...
Transcript of Corso di Applicazioni Telematiche Applicazioni peer …unina.stidue.net/Applicazioni...
Corso di Applicazioni TelematicheApplicazioni peer-to-peer
A.A. 2009-10
Prof. Simon Pietro Romano
Università degli Studi di Napoli Federico II
Facoltà di Ingegneria
Terminologia: “peer-to-peer”
• Sistema distribuito nel quale:• ogni nodo ha identiche capacità e responsabilità• tutte le comunicazioni sono potenzialmente simmetriche
• Obiettivi: condividere risorse e servizi• scambio di informazioni, cicli di CPU, spazio sul disco, • scambio di informazioni, cicli di CPU, spazio sul disco,
…
• I sistemi P2P possiedono molti aspetti tecnici interessanti:• controllo decentralizzato• adattabilità• si organizzano e si gestiscono da soli
P2P: classificazione (1/3)
• Le applicazioni P2P sono costituite da tre fasi principali:• Boot: permette a un peer di trovare la rete e di
connettersi ad essa• …nessuno o quasi fa boot P2P
• Lookup:• permette ad un peer di trovare il gestore/responsabile di
una determinata informazione• …pochi sono P2P, alcuni usano ‘SuperPeer’
• Scambio di file• …sono tutti P2P!
P2P: classificazione (2/3)
• P2P pure se:• le fasi di boot, lookup e scambio di file sono P2P
• P2P se:• le fasi di lookup e scambio di file sono P2P• la fase di boot utilizza qualche SERVER
• P2P Ibride se:• P2P Ibride se:• la fase di scambio dei file è P2P• la fase di boot utilizza qualche SERVER• nella fase di lookup vengono usati Peer particolari
Hub (Direct Connect) SuperPeer , Ultra Peer(Gnutella2)Supernodo (KaZaA) NodoRandezVous (JXTA)MainPeer (EDonkey) Server (WinMX)
P2P: classificazione (3/3)
• Con riferimento all’operazione di lookup:
• Lookup Centralizzato• Indice centralizzato
• Lookup Decentralizzato• Indice completamente distribuito• Indice completamente distribuito
• Lookup Ibrido• Più sistemi centralizzati collegati in un
sistema decentralizzato
In tutti e tre questi sistemi iltrasferimento e la memorizzazionedei file sono P2P
Architetture p2p
• Non esistono server sempreconnessi (always-on server)
• Gli end-system (peer) comunicano direttamente
• I peer sono connessi ad intermittenza e cambiano ilproprio IP
peer-peer
proprio IP• Tre argomenti principali:
• Distribuzione dei file• Self-scalability• BitTorrent
• Organizzazione dei peer e ricerca delle informazioni
• Case Study: • Skype• P2p IPTV
Quanto tempo serve per distribuire un file da un server ad N peer (tempo di distribuzione, D)?
Server
us: server upload bandwidth
ui: peer i upload bandwidth
File Distribution: Server-Client vs P2P
us
u2d1 d2u1
uN
dNNetwork (with abundant bandwidth)
File, size F (bits)
bandwidth
di: peer i download bandwidth
N, numero di peer che richiedono una copia di F
us
u2d1 d2u1
uN
dN
Server
F
• Il server invia in sequenza N copie del file:tempo richiesto: NF/us
• Il client i impiega un
File distribution: caso “server-client”
Rete (con bandaelevata) e appl. isolateuN• Il client i impiega un
tempo pari a F/di per ildownload
per N elevato, il termine NF/us è dominante: incremento lineare al crescere di N
= Dcs = max {NF/us, F/min(di) }i
Tempo per distribuireF bit a N client
isolate
Approccio client/server
us
u2d1 d2u1
uN
dN
Server
F
• Dipende dal numero di peer coinvolti…
• Il server deve inviare almenouna copia. Tempo richiesto: F/us
• Il client i impiega un tempo pari a F/di per il download (F/dmin)
File distribution: caso P2P
Rete (con banda elevata) e appl. isolateuNF/di per il download (F/dmin)
• NF bit totali devono essere‘scaricati’: velocità massima diupload: us + Σui
DP2P = max { F/us, F/min(di) , NF/(us + Σui) }i
Approccio p2p
isolate
3
3.5
Min
imum
Dis
trib
utio
n T
ime P2P
Client-Server
Ipotesi:
• Tutti i peer hanno lo stesso rate di upload = u
• F/u = 1 ora, us = 10u, dmin ≥ us
Server-client vs P2P: confronto di prestazioni
0
0.5
1
1.5
2
2.5
0 5 10 15 20 25 30 35
N
Min
imum
Dis
trib
utio
n T
ime
File distribution: BitTorrent
tracker: tiene traccia dei peer che compongono un “torrente”
torrente: gruppo di peer che si scambiano
porzioni (chunk) di un stesso file
• P2P file distribution
obtain listof peers
trading chunks
peer
Il file è diviso in chunk di 256KB
• Quando un peer si aggiunge ad un “torrente”: • si registra presso il tracker per avere la lista dei peer e si
connette ad un sottoinsieme di tali peer (“neighbors”)• non possiede chunk, ma ne accumulerà nel tempo
BitTorrent (1/3)
• Durante il download, il peer eseguel’upload di chunk verso altri peer
• I peer possono attivarsi e disattivarsidinamicamente
• Una volta scaricato l’intero file, il peer può (egoisticamente) abbandonare, o (altruisticamente) rimanere nel “torrente”
1) Prelievo di chunk• Peer differenti
possiedono differentisottoinsiemi di chunk del file
• Periodicamente, un peer
2) Invio di chunk: ‘tit-for-tat’• L’idea di fondo è quella di dare
priorità a chi fornisce dati al rate più alto.
• Un peer invia chunk ai 4 neighbor attualmente più veloci (che gliinviano chunk al rate più elevato)
BitTorrent (2/3)
• Periodicamente, un peer chiede a tutti i ‘neighbor’ la lista dei chunk in loropossesso
• Tale peer invia richiesteper i propri chunk mancanti• tecnica ‘rarest first’
inviano chunk al rate più elevato)• i ‘top 4’ sono ricalcolati ogni
10 secondi• Ogni 30 secondi: si seleziona in
maniera casuale un altro peer, e si inizia ad inviargli chunk• il peer appena scelto può
essere aggiunto ai ‘top 4’• “optimistically unchoke”
(1) Alice effettua l’ ”unchoke” ottimistico di Bob(2) Alice diventa uno dei ‘top-four provider’ di Bob, il quale ‘ricambia’
(3) Bob diventa uno dei ‘top-four provider’ di Alice
BitTorrent: tit-for-tat
Free-riding
Con upload rate più elevato, si trovano partner ‘migliori’ e si scarica il file più velocemente!
Free-riding
P2P con directory centralizzata:
• Quando un peer si connette alla rete si collega ad un server centralizzato fornendo:
• Il proprio indirizzo IP• Il nome degli oggetti resi disponibili per la condivisione
• In server in questo modo raccoglie le info sui peer attivi e le aggiornadinamicamente
P2P con directory centralizzata:
• Singolo punto di fallimento• Collo di bottiglia per le prestazioni• Violazione del diritto di autore
• Il trasferimento dei file è decentralizzato, ma la localizzazione dei contenutiè pesantemente centralizzata !!!
P2P con directory decentralizzata:
•Architettura completamente distribuita (senza server centralizzati) • Si realizza un’architettura di rete sovrapposta (overlaynetwork, fatta da connessioni TCP in corso)• L’overlay network ha una struttura paritetica• Nonostante la rete possa avere centinaia di migliaia di • Nonostante la rete possa avere centinaia di migliaia di partecipanti, ogni peer è connesso al max a 10 altri peer nella overlay.• Due problematiche:
• come viene costruita e gestita la rete di peer• come un peer localizza un contenuto
P2P con directory decentralizzata:
• I peer , una volta unitisi alla rete, inviano richieste mediante la tecnica del flooding (inondazione), query flooding
• Gnutella Query e QueryHit• Query flooding a raggio limitato
• scope del messaggio (7, ad esempio)• pro e contro
Query
QueryHit
File transfer:HTTP
P2P con directory decentralizzata:
Query
QueryHit
P2P con directory decentralizzata:
1. Il peer X deve trovare altri peer già parte dell’overlay• mantiene una lista di IP o contatta un sito Gnutella
contenente la lista2. Dopo l’accesso alla lista, X tenta di impostare una
connessione TCP con i peer della lista; quando si connette a Y si ferma
3. X spedisce a Y un ping Gnutella; Y lo inoltra finchè il contatorenon si azzera
4. Tutti i peer che ricevono un messaggio ping, rispondono con un pong: esso contiene l’indirizzo di chi ha inviato il pong, ilnumero di file in condivisione, la dimensione totale
5. Quando X riceve i messaggi di pong, avendo l’IP, puòimpostare una connessione TCP con alcuni di essi…
6. Ci possono essere più fasi di bootstrap in parallelo
P2P con directory decentralizzata:
• Sfrutta le caratteristiche positive di Napster e Gnutella • Ogni peer è associato ad un group leader (mini hub) che è esso stesso un peer• Un group leader memorizza le informazioni in condivisione dei “figli”• Ogni group leader è in grado di interrogare altri group leader
• query flooding applicato alla rete dei group leader
P2P con directory decentralizzata:
• Fase di bootstrap:• un peer che si connette deve essere associato ad un group leader o deve
essere designato group leader• L’overlay è costituita da connessioni TCP tra peer e group leader e tra coppie digroup leader• Ogni file possiede un identificatore hash e un descrittore• I peer (client) spediscono le query al proprio group leader
• quest’ultimo risponde per ogni richiesta con:l’indirizzo IP del detentore della risorsa, l’hash, e dei metadati associati• l’indirizzo IP del detentore della risorsa, l’hash, e dei metadati associatialla risorsa.
• il group leader inoltra sia le richieste sia le eventuali risposte da parte di altrigroup leader
• Il peer (client) seleziona la risorsa per il download e invia una richiesta HTTP al detentore della risorsa usando l’hash come identificatore
• Tecniche per migliorare le prestazioni• Accodamento delle richieste e limitazione del numero degli upload simultanei• Priorità di incentivo• Downloading parallelo di parti dello stesso file da più utenti
Skype
• Skype è una applicazione P2P VoIP sviluppata da KaZaa nel2003• Supporta anche instant messaging e conferencing
• Il protocollo è proprietario
• Skype usa una rete overlay, con tre tipi di host
• Host ordinari:• Host ordinari:• Skype users
• Super nodi:• Skype users con sufficiente CPU, memoria, banda…
• Server di login per l’autenticazione
Skype
• Ciascun client Skype mantieneuna lista di indirizzi IP di super nodi conosciuti• Inizialmente questa lista è vuota.
• Un client Skype si connette allarete attraverso un super nodorete attraverso un super nodo
• I super nodi sono responsabilidella localizzazione degli utenti, del routing delle chiamate, del mantenimento delleinformazioni circa gli host connessi alla rete Skype
Skype
• Connessione ai super nodi:• Primo login
• Alla prima esecuzione (in seguito all’ l’installazione) un client Skype comunica con il server Skype (skype.com)
• Durante la comunicazione, la cache dell’host è popolata di 7 indirizziIP di super nodi da usare per il bootstrap
• A questo punto l’host può contattare uno di essi per il join• A questo punto l’host può contattare uno di essi per il join• Selezionato il super nodo per il join, parte la fase di autenticazione con
user name e password con il server Skype• L’host viene periodicamente aggiornato con indirizzi IP di nuovi super
nodi
• Login successivi• Per i login successivi un client sceglie uno degli indirizzi dei super nodi
e stabilisce la connessione
p2p IPTV
Keywords:• Chunk• Peer-list• Buffer-map
• Ogni peer è sia un viewer che un server. server. • Alcuni viewer ricevono il flusso direttamente dalla sorgente originale (server IPtv); altri lo ricevono attraverso altri peer.
Scalabilità
• Il lavoro richiesto a un determinato nodo nel sistema non deve crescere (o, almeno, deve crescere lentamente) in funzione del numero di nodi nel sistema
• I protocolli usati da Napster e Gnutella non sono scalabili
• Per migliorare la scalabilità sono nati (in ambito • Per migliorare la scalabilità sono nati (in ambito accademico) i cosiddetti protocolli P2P di seconda generazione che supportano DHT – Distributed HashTable
• Alcuni esempi di questi protocolli:• Tapestry, Chord, Can, Viceroy, Koorde, kademlia, kelips, …
Scalabilità e routing delle richieste
• La scalabilità di un protocollo è direttamente legata all’efficienza dell’algoritmo usato per il routing (lookup)
• Due obiettivi principali:1. Minimizzare il numero di messaggi necessari per effettuare
il lookup2. Minimizzare, per ogni nodo, le informazioni relative agli altri 2. Minimizzare, per ogni nodo, le informazioni relative agli altri
nodi
• Le varie DHT conosciute differiscono proprio per questi aspetti…
Messaggi necessari per trovare una chiave
n -1 Chord e altri
Grafo Totalmente connesso
Anello
Dimensione tabella di routing
1
1
n -1
O(log n)
O(log n)
connesso
n è il numero dei peer
P2P di seconda generazione e DHT
• A ogni file e ad ogni nodo è associata una chiave• La chiave viene di solito creata facendo l’hash del nome
del file o dell’IP del nodo• Ogni nodo del sistema è responsabile di un insieme di
file/chiavi e tutti i nodi, nel loro insieme, realizzano una DHT
• L’unica operazione che un sistema DHT deve fornire è • L’unica operazione che un sistema DHT deve fornire è “lookup(key)”:• restituisce l’identità del responsabile di una determinata
chiave
DHT: concetti generali
• Astrazione : una struttura dati distribuita che realizzauna tabella hash:
put(id, item);
item = get(id);item = get(id);
• Implementazione : i nodi del sistema costituisconouna struttura dati distribuita:
anello, albero, ipercubo, rete ‘Butterfly’, ...
Ricerca in una DHT
• Tutti i nodi del sistema condividono una tabella hash• conoscono la struttura della tabella…
• ...ma non conoscono il responsabile di una determinata entry ID
0
Nodo x
Nodo y
Nodo z
ID0123456…2m…
DHT: Chord• Le chiavi sono mappate su un array circolare costituito da 2m
identificatori• 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:
� Il primo contiene gli m successori del nodo x, più il predecessorepredecessore
� Il secondo, un insieme di m nodi costituito dai responsabili delle chiavi distanziate esponenzialmente dal nodo x, vale a dire l’insieme delle chiavi che si trovano a distanza 2i da x dove 0 ≤ i ≤ m-1
m=3
Chord: la “finger table”
ID Resp.
8+1=9 14
8+2=11 14
8+4=12 14
indice Nod
o
1 14
2 21
4 32
3 24
Successors
8+8=16 21
8+16=24 24
8+32=40 42
m=6
5 38
6 42
Predecessor
Nodo 1
Chord: Join
• Spazio degli identificativi: [0..8]
1. Join del nodo 10
17
i id+2i succ0 2 11 3 1
Succ. Table
1
2
3
4
5
6
7 1 3 12 5 1
2. Join del nodo 20
17
i id+2i succ0 2 21 3 1
Succ. Table
Chord: Join
1
2
3
4
5
6
7 1 3 12 5 1
i id+2i succ0 3 11 4 12 6 1
Succ. Table
3. Join dei nodi 0 e 60
17
i id+2i succ0 2 21 3 6
Succ. Table
i id+2i succ0 1 11 2 22 4 0
Succ. Table
Chord: Join
1
2
3
4
5
6
7 1 3 62 5 6
i id+2i succ0 3 61 4 62 6 6
Succ. Table
i id+2i succ0 7 01 0 02 2 2
Succ. Table
Nodi: n1, n2, n0, n6
File: f7, f1
0
17 i id+2i succ
Succ. Table
i id+2i succ0 1 11 2 22 4 0
Succ. Table
7
Items
1
Items
Chord: allocazione delle risorse
f7, f1 1
2
3
4
5
6
7 i id+2 succ0 2 21 3 62 5 6
i id+2i succ0 3 61 4 62 6 6
Succ. Table
1
i id+2i succ0 7 01 0 02 2 2
Succ. Table
• Alla ricezione di una query per il dato con identificativo id, un nodo:
• Controlla se il dato è presente presso di sé
• In caso di assenza del dato, esso inoltra la query al nodopiù grande nella sua tabelladei successori, aventeidentificativo di nodo <= di id
0
17 i id+2i succ
Succ. Table
i id+2i succ0 1 11 2 22 4 0
Succ. Table
7
Items
1
Items
Chord: routing
identificativo di nodo <= di id 1
2
3
4
5
6
7 i id+2 succ0 2 21 3 62 5 6
i id+2i succ0 3 61 4 62 6 6
Succ. Table
1
i id+2i succ0 7 01 0 02 2 2
Succ. Table
query(7)
Chord: complessità
• Le informazioni che il nodo deve mantenere sugli altri nodi sono (m + m + 1) = (2m +1) �O(log N)
• Il numero di messaggi necessari per effettuare il lookup è m � O(log N)
• L’algoritmo di routing effettua a ogni step il • L’algoritmo di routing effettua a ogni step il passo più grande che riesce a fare• tale algoritmo, in pratica, simula un “ipercubo”• esso, inoltre, si comporta molto bene in un sistema
dinamico
P2P e standardizzazione nell’IETF
• p2psip:• Peer-to-Peer Session Initiation Protocol
• ALTO:• Application Level Traffic Optimization
• PPSP:• PPSP:• Peer to Peer Streaming Protocol
p2psip – Peer-to-Peer SIP
p2psip – obiettivi (1/2)
p2psip – obiettivi (2/2)
ALTO – Application Level Traffic Optimization
ALTO – obiettivi e ‘milestone’
PPSP – Peer to Peer Streaming Protocol
PPSP – ipotesi di lavoro e ‘milestone’
Dalla teoria alla pratica: SIPDHT
http://sipdht.sourceforge.net/
• Un progetto gestito dai ricercatori di Tilab Torino• Attualmente alla versione 2:
• http://sipdht.sourceforge.net/sipdht2• connessioni tra peer negoziate mediante SIP• implementazione di una DHT basata su infrastruttura CAN (Content Addressable Network)
• Ottimizzato per peer nascosti da NAT
Domande?
5050