Sistemi Peer to Peer Gennaro Cordasco

Slides:



Advertisements
Presentazioni simili
1: Introduction1 Condivisione file P2P r Allinizio del 2004 P2P era responsabile di un volume di traffico maggiore a qualunque altra applicazione Internet.
Advertisements

Peer To Peer (o quasi) Gennaro Cordasco.
? Peer To Peer (P2P) Kademlia pastry can jxta napster fiorana
Routing Gerarchico Gli algoritmi proposti non sono pratici:
P2P (o quasi): Peer To Peer (o quasi) Gennaro Cordasco.
Sistemi P2P avanzati Sistemi Peer To Peer (P2P) Avanzati Gennaro Cordasco – –
Sistemi Peer To Peer (P2P)
La Rete Gnutella e il P2P Parte seconda Mauro Franceschi.
Distributed System ( )7 TCP/IP four-layer model.
1: Introduction1 Stratificazione protocollare (Protocol “Layering”) Le reti sono complesse! r Molti elementi: m host m router m link fisici dalle caratteristiche.
1 Luigi Vetrano Esercitazione di Reti di Calcolatori A.A
Overlay network strutturate per applicazioni peer to peer Lorenzo Castelli.
Ernesto Damiani Lezione 5 – Gnutella Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 - Telnet, FTP e altri.
Internet Internet è conosciuta come la "rete delle reti". E' una grande rete di comunicazione che si estende in tutto il mondo che collega tra loro computer.
Giuditta Cantoni, 4 E S.I.A I DATABASE. Definizione databese In informatica, il termine database, banca dati o base di dati (a volte abbreviato con il.
Corso di Alta formazione in TL&OS Modulo 1.3 Reti e Servizi - lezione 1 Modulo 1.3 Reti e servizi 1. Introduzione al Networking Connettere il PC in rete;
1 14 marzo 2006 sommaruga andrea Fondazione Ordine Ingegneri di Milano VPN: Reti Private Virtuali VPN: RETI PRIVATE VIRTUALI LE POSSIBILITA' DI ACCESSO.
Fondamenti di Informatica A - Massimo Bertozzi ALBERI E ALBERI BINARI DI RICERCA (BST)
“Non c’è nessun buon motivo per il quale ogni persona nel mondo debba possedere un computer”- Kenneth Henry Olsen. (una delle frasi più sbagliate nella.
A dvanced N etwork T echnologies Lab oratory Infrastrutture e Protocolli per Internet Laboratorio 5 Politecnico di Milano Stefano NapoliAlberto Pollastro.
Università degli Studi - “ G. d'Annunzio ” Chieti - Pescara FACOLTÀ DI ECONOMIA Corso di laurea in Economia Informatica/s Seminario di: Giovanni Placentino.
Alma Mater Studiorum - Università di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Dipartimento di Scienze dell’Informazione Supporto al multihoming.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
S.Rosta 1 Le Reti Informatiche modulo 8 Prof. Salvatore Rosta
Bitcoin “What is a Bitcoin?”. What is a Bitcoin? Bitcoin The 4th most common research on Google in 2014.
I socket.
Rete e comunicazione Appunti.
Reti e comunicazione Appunti.
“Vivere insieme” – Lezione6
NAT, Firewall, Proxy Processi applicativi.
modulo 5 Prof. Salvatore Rosta
TCP/IP.
DNS Domain Name Server.
Sale Force Automation.
“Vivere insieme” – Lezione6
Summary di (quasi) tutti gli utenti non presentati…
dCache Test effettuati al CNAF
Rete e comunicazione Appunti.
Pronto.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laure in Informatica Relatore: Riccardo.
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Applicazione web basata su web service e web socket
TCP/IP. Sommario  Introduzione al TCP/IP  Indirizzi IP  Subnet Mask  Frame IP  Meccanismi di comunicazione tra reti diverse  Classi di indirizzi.
Real-time 3D reconstruction using multiple depth cameras
INTRODUZIONE AL NETWORKING
IPv6.
Reti di comunicazione Appunti.
DCC & Pyzor Giacomo Fazio Wg_Sec_Mail 10 Gennaio 2007
Utilizzo razionale di un vasto numero di ricevitori GPS
Sviluppo di server web e sistema di caching per contenuti dinamici
Event dissemination over wide-area networks exploiting Network Coding and distributed gossip-based recovery: a mathematical model and some results Roberto.
modulo 6 Prof. Salvatore Rosta
SUBNETTING E SUPERNETTING
Internet.
Corso di Ingegneria del Web A A Domenico Rosaci 1
Organizzazione di una rete Windows 2000
INTERNET «IL MONDO DI OGGI»
Concetti introduttivi
© 2007 SEI-Società Editrice Internazionale, Apogeo
Sistemi Peer to Peer Gennaro Cordasco
Introduzione alla nuova versione di PowerPoint
Introduzione alla nuova versione di PowerPoint
Le reti informatiche di Roberto Minotti 17/01/2019.
Scambio dati integrazione Specifiche DATEX II
Le reti informatiche di Roberto Minotti 15/02/2019.
Corso base per Operatori di Protezione Civile
Sistemi Peer to Peer Gennaro Cordasco
Il Livello di Trasporto
RETI.
CLOUD.
Transcript della presentazione:

Sistemi Peer to Peer Gennaro Cordasco Dipartimento di Informatica e Applicazioni Università degli Studi di Salerno cordasco[@]dia.unisa.it cordasco+p2p[@]gmail.com http://www.dia.unisa.it/~cordasco Laboratorio ISISLAB2 (DIA Piano 2) 25/12/2018

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 www.peer-to-peer.info Steinmetz, Ralf; Wehrle, Klaus (Eds.) 2005, XVII, 629 p. With online files/update., Softcover ISBN: 978-3-540-29192-3 ii) Research papers (http://www.dia.unisa.it/~cordasco) iii) JXTA java Programmers guide (http://www.dia.unisa.it/~cordasco) iv) JXTA Protocol Specifications (http://www.dia.unisa.it/~cordasco) v) Le slide del corso (http://www.dia.unisa.it/~cordasco) … che ovviamente non sono sufficienti per superare l’esame!!! 25/12/2018

Capitolo 5: Reti P2P non Strutturate

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

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

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.

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

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)

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)

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

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)

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

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

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

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

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

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

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

Napster: Esempio di messaggi

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)

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

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

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

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

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)

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

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

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

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

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

Gnutella 0.4: Esempio sequenza messaggi di connessione

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

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

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

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)

Topologia di una rete P2P con Superpeer Vista geografica di una parte della rete Gnutella 0.6 al 01.08.2002 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.

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

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

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

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

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

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

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

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

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

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.

Gnutella 0.6: Esempio sequenza messaggi

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

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

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

P2P: FreeNet(Routing) 25/12/2018

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)

Grazie per l’attenzione 25/12/2018