La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sistemi Peer to Peer Gennaro Cordasco

Presentazioni simili


Presentazione sul tema: "Sistemi Peer to Peer Gennaro Cordasco"— Transcript della presentazione:

1 Sistemi Peer to Peer Gennaro Cordasco
Dipartimento di Informatica e Applicazioni Università degli Studi di Salerno Laboratorio ISISLAB2 (DIA Piano 2) 25/12/2018

2 Materiale didattico i) Peer-to-Peer Systems and Applications
Series: Lecture Notes in Computer Science , Vol. 3485 Sublibrary: Information Systems and Applications, incl. Internet/Web, and HCI Steinmetz, Ralf; Wehrle, Klaus (Eds.) 2005, XVII, 629 p. With online files/update., Softcover ISBN: ii) Research papers ( iii) JXTA java Programmers guide ( iv) JXTA Protocol Specifications ( v) Le slide del corso ( … che ovviamente non sono sufficienti per superare l’esame!!! 25/12/2018

3 Capitolo 5: Reti P2P non Strutturate

4 Sommario Introduzione Reti P2P non strutturate Caratteristiche di base
Reti P2P centralizzate Reti P2P pure Reti P2P ibride (che usano SuperPeer) Random Graphs, Small-Worlds and Scale-Free Networks Reti P2P strutturate Lower Bound Reti non Uniformi JXTA 25/12/2018

5 Caratteristiche principali dei sistemi P2P di 1a e 2a generazione
I sistemi di 1a e 2a generazione sono delle semplici reti di overlay con le seguenti caratteristiche : Sono basati su TCP/IP Il controllo è decentralizzato (in alcuni casi ci sono degli elementi centralizzati) I Contenuti: Sono distribuiti in maniera casuale nella rete (in alcuni casi sono previste repliche) I contenuti e la loro descrizione non sono strutturati ( tipicamente i contenuti si trovano nel nodo che li ha inseriti nel sistema) Il trasferimento dei contenuti avviene: Attraverso connessioni separate Di solito si usa HTTP Permettono di sfruttare anche le risorse che si trovano sull edge della rete (computing power and data storage) Due tipi di richieste: Richiesta di contenuti (lookup) Messaggi Keep-alive (permettono di mantenere la connessione della rete) Sviluppati prevalentemente per il file-sharingg Ne esistono varie realizzazioni

6 X.1 The Architectures of 1st and 2nd Gen. P2P
Client-Server Peer-to-Peer Server is the central entity and only provider of service and content.  Network managed by the Server Server as the higher performance system. Clients as the lower performance system Example: WWW Resources are shared between the peers Resources can be accessed directly from other peers Peer is provider and requestor (Servent concept) Unstructured P2P Structured P2P Centralized P2P Pure P2P Hybrid P2P DHT-Based All features of Peer-to-Peer included Central entity is necessary to provide the service Central entity is some kind of index/group database Example: Napster Any terminal entity can be removed without loss of functionality  No central entities Examples: Gnutella 0.4, Freenet  dynamic central entities Example: Gnutella 0.6, JXTA Connections in the overlay are “fixed” Examples: Chord, CAN 1st Gen. 2nd Gen. 3rd Gen.

7 Caratteristhe della rete
Peer: Nodo che partecipa attivamente nella costruzione della rete di overlay (PC che utilizza Kazaa) Provider di contenuti + utilizza i contenuti+ router nella rete di overlay Identificabile mediante un ID unico (hash-value oppure random ID) Caratteristiche delle rete di overlay: E’ completamente indipendente dalla rete fisica Può essere basata su una gerarchia (rendezvous peers in JXTA) Può includere un server centralizzato (lookup server in Napster) (star network) Può essere completamente randomizzata (Gnutella 0.4) e quindi modellata come un grafo casuale (randomly meshed network) Utilizza un indirizzamento decentralizzato

8 Routing su reti di Overlay
Messaggio di richiesta (lookup): Include un contatore, un ID di messaggio e un TTL (Time-to-Live) nell’ header TTL determina il numero massimo di hop che il messaggio può effettuare Di solito il routing è basato sul flooding Ogni nodo inoltra il messaggio a tutti i suoi vicini tranne quello dal quale ha ricevuto il messaggio Tranne se Ha già inoltrato un messaggio con lo stesso ID (loop!!) Hop count = TTL Risposta (query-hit): Include un contatoreID and e un TTL (Time-to-Live) nell’ header L’ID è lo stesso della richista Percorre la stessa strada della richiesta ma all’indietro (no flooding)

9 Bootstrapping E’ un problema non banale che di solito non fa parte del protocollo In particolare ogni protocollo assume che un nodo che vuole entrare nel sistema deve conoscere almeno un altro nodo già presente nel sistema Possibili soluzioni: Bootstrap cache: Si prova a stabilire una connessione con qualche nodo conosciuto in una sessione precedente Bootstrap server: Ci si connette a un “well known host”, che è sempre nella rete Si chiede a un bootstrap server di fornire l’indirizzo di un nodo nella rete Broadcast on the IP layer Use multicast channels Use IP broadcasting (-limited to local network)

10 Sommario Introduzione Reti P2P non strutturate Caratteristiche di base
Reti P2P centralizzate Reti P2P pure Reti P2P ibride (che usano SuperPeer) Random Graphs, Small-Worlds and Scale-Free Networks Reti P2P strutturate Lower Bound Reti non Uniformi JXTA 25/12/2018

11 Sistemi P2P centralizzati
Tutti i peer sono connessi a una entità centrale Tutti I peer possono stabilire una connessioen con ogni altro peer (on demand) al fine di scambiare delle risorse (es. file mp3) L’entità centrale è necessaria per il discovery della risorsa Fornisce una sorta di database che permette di risolvere le richieste di risorse (lookup)

12 Sistemi P2P centralizzati
Bootstrapping: Bootstrap-server = central server Sebbene l’entità centrale può essere costituita da una Server farm essa rappresetnta un collo di bottiglia per il sistema Tutte le richieste (lookup) sono dirette all’entità centrale Peer  central entity: Per la richiesta di un contenuto Per accedere al sistema e registrarsi Per aggiornare le informazioni relative ai contenuti condivisi Peer  Peer: HTTP Per lo scambio di contenuti/risorse

13 La Topolodia dei sistemi P2P centralizzati
Servent Connection between servents (TCP) Connection between router & servent Connection between routers (Core)

14 Esempio: Napster Un’applicazione basata sul protocollo TCP
Partecipanti: Napster peers Servizi dei Client Login Richiesta risorsa Download risorsa P2P Service Data-transfer Tutto in cinque passi: Connessione al Server Napster Push: Caricamento della lista dei file condivisa sul Server Query: Si invia una richiesta al Server contenente una serie di keyword ed alcuni requirement Select: Si scelgono le migliori risposte Download: Ci si connette ai peer che dispongono della risorsa richiesta Central Napster Index server Data Transfer Host

15 Napster: Struttura dei messaggi
HEADER 8byte PAYLOAD <Payload Length> 4byte <Function> 4Byte Describes the message type (e.g. login, search,…) Describes parameters of the message (e.g. IDs, keywords,…)

16 Napster: Login Client/Server Service 1: LOGIN (Function:0x02)
<Nick> <Password> <Port> <Client-Info> <Link-type> 2: LOGIN ACK (Function: 0x03)

17 Napster: Push Client/Server Service
3: NOTIFICATION OF SHARED FILE (0x64) „<Filename>“ <MD5> <Size> <Bitrate> <Freq> <Time> NOTIFICATION(0x64) „band - song.mp3“ 3f3a Central Napster Index server Napster Host IP: 001 Nick: LKN LOGIN ACK(0x03) LOGIN(0x02) lkn „nap v0.8“ 9 Una notifica per ogni file da condividere La struttura dei messaggi è specifica per mp3!!

18 Napster: Query 1: SEARCH (Function: 0xC8)
[FILENAME CONTAINS „Search Criteria“] [MAX_RESULT <Max>] [LINESPEED <Compare> <Link-Type>] [BITRATE <Compare> “<Bitrate>”] [FREQ <Compare> “<Freq>”] 2: SEARCH RESPONSE (Function: 0xC9) „<Filename>“ <MD5> <Size> <Bitrate> <Freq> <Time> <Nick> <IP> <Link-Type> SEARCH(0xC8) FILENAME CONTAINS „song“ MAX_RESULTS 100 LINESPEED „AT LEAST“ 6 BITRATE „AT LEAST“ „128“ FREQ „EQUAL TO“ „44100“ Central Napster Index server Napster Host IP: 002 Nick: MIT

19 Napster: Esempio di messaggi

20 Reti P2P centralizzate : Conclusioni
Svantaggi Facili da attaccare (il server rappresenta l’anello debole) Il Server è un collo di bottiglia per il sistema Possibile congestione del Server Nessun incentivo a collaborare Vantaggi Lookup veloce (in un solo passo) Una unica autorità fidata che gestisce il database Non sono necessari messaggi di tipo Keep-alive (a parte gli aggiornamenti dei propri contenuti) Possibili applicazioni VoIP (SIP, H.323) Auctioning (Ebay)

21 Sommario Introduzione Reti P2P non strutturate Caratteristiche di base
Reti P2P centralizzate Reti P2P pure Reti P2P ibride (che usano SuperPeer) Random Graphs, Small-Worlds and Scale-Free Networks Reti P2P strutturate Lower Bound Reti non Uniformi JXTA 25/12/2018

22 Reti P2P pure Ogni entità (peer) può essere rimosso senza perdita di funzionalità del sistema Non ci sono gerarchie ne Server I peer stabiliscono connessioni con gli altri peer in maniera casuale

23 Reti P2P pure Bootstrapping: Routing: Comunicazione:
Attraverso bootstrap-server Utilizzando la cache (nodi contattati in sessioni precedenti) Attraverso well-known host Non è necessaria la registrazione Routing: Completamente decentralizzato Non c’è una fase di Push Query: utilizza il flooding (senza cicli e con TTL) Risposte: back routed (ogni nodo è rappresentata da un ID che permette alla query di tornare indietro senza usare il flooding) Comunicazione: Basata su TCP Sono necessari dei messaggi di Keep-alive Permette la richiesta dei contenuti Trasferimento dei contenuti: Basato su HTTP Comunicazione diretta indipendente dalla rete di overlay

24 Topologia delle reti P2P pure
Servent Connection between servents (TCP) Connection between router & servent Connection between routers (Core)

25 Esempio: Gnutella 0.4 Programma per lo scambio di file (non necessariamente mp3) sulla rete Internet Obiettivo: fornire un meccanismo decentralizzato per la ricerca dei file Evoluzione: Marzo 2000: viene realizzato e reso pubblico da Justin Frankel Tom Pepper (Nullsoft) Spring 2001: viene proposta una drastica modifica del protocollo al fine di migliorare la scalabilità  Gnutella 0.6 (Hybrid P2P)

26 The Gnutella Network 2002 Measurements taken at the LKN in May 2002

27 Esempio: Gnutella 0.4 Un’applicazione basata sul protocollo TCP
Partecipanti: Gnutella peers Servizi (P2P) Flooding Inoltrare le risposte Richieste di Download Tutto in cinque passi: Connessione ad almeno un peer già connesso alla rete Esplorazione del vicinato (tramite messaggi di PING e risposte PONG) Query: Si invia una richiesta a tutti i vicini contenente una serie di keyword ed alcuni requirement Select: Si scelgono le migliori risposte Download: Ci si connette ai peer che dispongono della risorsa richiesta G TCP connection Peer/ Servent

28 Gnutella 0.4 Struttura dei messaggi
MESSAGEHEADER: 23Byte GnodeID 16 Bytes Function 1 Byte TTL 1 Byte Hops 1 Byte Payload Length 4 Bytes Contenuto del messaggio (es. IDs, keywords,…) Tipo di messaggio (es. login, search,…) GnodeID: identificatore unico di 128bit dell‘host TTL(Time-To-Live): numero massimo di hop che il messaggio può effettuare Hops: numero di hop già effettuati

29 Gnutella 0.4 Struttura dei messaggi
PING (Function:0x00) No Payload PONG (Function:0x01) Port 2 Bytes IP Address 4 Bytes Nb. of shared Files 4 Bytes Nb. of Kbytes shared 4 Bytes QUERY (Function:0x80) Minimum Speed 2 Bytes Search Criteria n Bytes QUERY HIT (Function:0x81) Nb. of Hits 1 Byte Port 2 Bytes IP Address 4 Bytes Speed 1 Byte Result Set n Bytes GnodeID 16 Bytes File Index 4 Bytes File Name n Bytes

30 Gnutella 0.4: Connessione
Gnode 2000 establishes a connection to 4000 17Gnutella Connect 18Gnutella OK GNODE ID: 1000 IP: 001 GNODE ID: 2000 IP: 002 19PING 20PONG/IP:004 21PING 23PONG/IP:001 21 17 19 26 202728 27PONG/IP:001 25 23 18 22PING 24PONG/IP:003 28PONG/IP:003 GNODE ID: 3000 IP: 003 GNODE ID: 4000 IP: 004 22 25PING 24 26PING

31 Gnutella 0.4: Esempio sequenza messaggi di connessione

32 Reti P2P pure : Conclusioni
Svantaggi Possibile congestione della rete dovuta alla grossa mole di messaggi Peer poco efficienti possono rappresentare un collo di bottiglia Rete di overlay non ottimale Non esiste una vista completa della rete, Non esiste un coordinatore Sono possibili rotte di tipo zigzag Vantaggi Non c’è un punto singolo da attaccare Forniscono anonimia Permettono la creazione di gruppi di interesse Aree di Applicazione File-sharing Servizi di anonimia

33 Sommario Introduzione Reti P2P non strutturate Caratteristiche di base
Reti P2P centralizzate Reti P2P pure Reti P2P ibride (che usano SuperPeer) Random Graphs, Small-Worlds and Scale-Free Networks Reti P2P strutturate Lower Bound Reti non Uniformi JXTA 25/12/2018

34 Reti P2P ibride (che usano SuperPeer)
Caratteristiche principali (rispetto alle reti pure): Sistema basati su due layer La rete che si ottiene è costituita da una serie di hub interconnessi tra loro Il numero di messaggi scambiati si riduce in maniera notevole senza intaccare l’affidabilità della rete I supernodi vengono scelti per elezione o per volontà (devono cmq soddisfare determinati criteri) Superpeer: alto grado (grado>>20, dipende dalla dimensione della rete) Peer: si connettono a uno o più Superpeer (grado<7) peer Superpeer

35 Catatteristiche di base dei sistemi P2P con SuperPeer
Bootstrapping: Attraverso bootstrap-server Utilizzando la cache (nodi contattati in sessioni precedenti) Attraverso well-known host La registrazione è necessaria…. Ogni peer si registra presso un Superpeer ed annuncia la lista dei file da condividere Routing: Parzialmente decentralizzato Il Peer (se non è un superpeer) invia la richiesta a un Superpeer IL Superpeer risolve la richiesta chiedendo ad altri Superpeer (esistono diverse strategie che vanno dal flooding all’utilizzo di una DHT) Il Superpeer inoltra la risposta ottenuta al Peer Connessioni: Based on TCP o UDP Keep-alive necessari almeno fra i Superpeer Content search Trasferimento dei contenuti: Di solito si basa sul protocollo HTTP La trasmissione del contenuto avvine da Peer a Peer (è indipendente dalla rete di Overlay e non passa necessariamente per I Superpeer)

36 Topologia di una rete P2P con Superpeer
Vista geografica di una parte della rete Gnutella 0.6 al Struttura astratta della rete geografica mostrata sulla destra E’ possibile vedere che sebbene questa rete offre notevoli miglioramenti sono comunqe presenti path di tipo zigzag (Ad esempio la path da 118 a 18). Questo perchè la struttura della rete non è conforme alla posizione geografica dei Peer. La struttura astratta permette di individuare gli hub (Superpeer) della rete.

37 Esempio di sistema che utilizza Superpeer: Gnutella 0.6
Programma per la condivisione di file sulla rete Internet Obiettivo: Un algoritmo di ricerca decentralizzato… che non congestiona la rete … e sia affidabile e senza colli di bottiglia come i sistemi P2P puri I sistemi con superpeer sono tuttora alla base di quasi tutte le applicazioni commerciali per la condivisione di file (tranne BitTorrent) Storia: Nel 2001: nasce da ulteriori sviluppi della rete Gnutella con l’obietivo di migliorane la scalabilità Da allora: Gnutella 0.6 (aka Gnutella II) è disponibile sotto diverse implementazioni (Limewire, bearshare,…) Sviluppi ulteriori del protocollo (privacy, scalabilità, performance,…)

38 Gnutella2: meglio un uovo oggi….
L’obbiettivo della lookup in Gnutella è trovare tutti i peer che dispongono di un determinato oggetto (non ci sono limitazioni sul tempo); L’obbiettivo della lookup in Gnutella2 è trovare, nel minor tempo possibile, almeno un peer (se c’è) che dispone di un determinato oggetto; una volta trovata un’istanza dell’oggetto desiderato è possibile scegliere se fermarsi o continuare la ricerca; L’abilità di trovare almeno un’istanza di un oggetto è molto importante, altrimenti non sono possibili altre azioni; Bisogna trovare un modo per tenere sotto controllo la ricerca; 25/12/2018

39 Gnutella2: Ricerca… Soluzione? P2P Ibrido:
Nodo Hub Soluzione? P2P Ibrido: Gnutella2 organizza i nodi in un sistema gerarchico a due livelli dove i nodi ad alta capacità chiamati Hub rispondono alle query per le proprie foglie; La restizione della rete agli Hub è P2P; Hub vantaggi: Viene ridotto il numero totale dei nodi da contattare; Un Hub contiene informazioni relative a tanti oggetti, quindi è maggiore la probabilità che una query trovi un’istanza di un oggetto; E’ possibile avere informazioni su nodi down; 25/12/2018

40 Gnutella2: Ricerca… Per evitare che questo sistema degeneri in un sistema centralizzato viene limitato il numero di leaves per ogni hub;(circa 150) La comunicazione fra leaves e hub è diretta; Problema Inter-Hub Communication; 25/12/2018

41 Gnutella2: Inter-Hub Communication
Nodo Hub Ogni hub conosce solo i propri vicini; Quando un hub riceve una query dal nodo di origine, oltre a elaborarla, la inoltra ai propri vicini che non la inoltrano ulteriormente; (in pratica TTL = 2) Ad esempio se la ricerca viene inviata ad un hub che ha 5 vicini in un solo passo (con una query) vengono analizzate le foglie relative a 6 hub; L’insieme dei nodi raggiunto in un passo viene chiamato cluster; 25/12/2018

42 Gnutella2: Inter-Hub Communication
Nodo Hub Quando un nodo richiede la ricerca di un oggetto al proprio hub: Viene ricercato l’elemento nel proprio cluster Viene ricercato l’elemento nei cluster vicini (a distanza 1) più qualche cluster lontano scelto a caso; Viene ricercato l’elemento nei cluster vicini dei vicini (a distanza 2) più qualche cluster lontano scelto a caso; 25/12/2018

43 Gnutella2: Inter-Hub Communication
Nodo Hub Ogni hub mantiene la lista degli hub vicini (direttamente connessi) più una cache di hub lontani aggiornata di tanto in tanto; Viene mantenuta una done list; Le ricerche all’interno del cluster sono fatte usando TCP; Le ricerche fra cluster sono fatte usando UDP; UDP SEARCH TCP SEARCH 25/12/2018

44 Gnutella2: Inter-Hub Communication
try list cluster 25/12/2018

45 Gnutella2: Inter-Hub Communication
Nodo Hub Ogni hub deve mantenere quindi: la lista dei propri vicini; una lista di hub lontani (da aggiornare di tanto in tanto); una done list (i nodi a cui abbiamo inviato una query più i loro vicini); una try list; (i vicini dei vicini dei nodi a cui abbiamo inviato una query); per ogni query 25/12/2018

46 Gnutella 0.6: Messaggi Richiesta di contenuti e risposta Keep alive:
QUERY (come in Gnutella 0.4) QUERY_HIT (come in Gnutella 0.4) Keep alive: PING (come in Gnutella 0.4) PONG (come in Gnutella 0.4) Pubblicazione dei contenuti ROUTE_TABLE_UPDATE (0x30), Reset variant (0x0): per cancellare la tabella relativa ad un nodo. ROUTE_TABLE_UPDATE (0x30), Patch variant(0x1): per aggiornare la tabella relativa ad un nodo.

47 Gnutella 0.6: Esempio sequenza messaggi

48 Altre applicazioni basate su sistemi P2P con Superpeer
Edonkey Kazaa/FastTrack Emule OpenNap

49 Sistemi P2P con Superpeer: Conclusioni
Svantaggi Sebbene l’utilizzo dei Superpeer riduce il numero dei messaggi scambiato, tale numero risulta essere ancora troppo alto I Superpeer devono essere + efficienti dei classici Peer (non è proprio un sistema P2P secondo la definizione classica) Il carico sui nodi non è bilanciato (I Superpeer devono sopportare un carico maggiore) La rete di overlay non è ottimale (utilizzare una DHT è meglio) Sono ancora possibili delle path a zigzag Non è possibile adattare la rete di overlay alla rete sottostante a causa della sua struttura ad hub Vantaggi Non c’è un punto singolo da attaccare Forniscono anonimia Permettono la creazione di gruppi di interesse Aree di Applicazione File-sharing Servizi di anonimia

50 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 aggiungere 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; 25/12/2018

51 P2P: FreeNet(Routing) 25/12/2018

52 Conclusioni I sistemi P2P non strutturati permettono di creare reti di overlay in grado di sfruttare le risorse disponibili presso tutti I Peer del sistema Sfortunatamente, a causa della loro struttura, questi sisteme generano un numero di messaggi elevato, E’ possibile ridurre il numero di messaggi generato da tali sistemi, mediante sistemi gerarchici, meccanismi di compressione oppure protocolli consapevoli della topologia della rete. Vantaggi: Il principio di base è davvero semplice (semplici da implementare) Buona affidabilità Resistenza verso attacchi tipo Denial of Service attacks (DOS) Non ci sono colli di bottiglia Sono abbastanza Scalabili SI possono utilizzare in un gra numero di applicazioni (non solo File Sharing)

53 Grazie per l’attenzione
25/12/2018


Scaricare ppt "Sistemi Peer to Peer Gennaro Cordasco"

Presentazioni simili


Annunci Google