Algoritmi per protocolli peer-to-peer



Documenti analoghi
Contesto: Peer to Peer

Algoritmi per protocolli peer-to-peer

Parte II: Reti di calcolatori Lezione 9

Modelli e Sistemi di Elaborazione Peer-to-Peer

Algoritmi per protocolli peer-to-peer

Il protocollo BitTorrent

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Dal protocollo IP ai livelli superiori

Lezione n.6. Università degli Studi di Pisa. Materiale didattico: Peer-to-Peer Systems and Applications Capitolo 5. Dipartimento di Informatica

Quattro chiacchere sul Peer to Peer p.1/20

Lezione 1 Introduzione

Peer to Peer non solo file sharing

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

Progettare un Firewall

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Reti diverse: la soluzione nativa

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Coordinazione Distribuita

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Elementi sull uso dei firewall

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

Lo scenario: la definizione di Internet

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Reti di Telecomunicazione Lezione 7

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez 9 Distribuzione dei contenuti

Parte II: Reti di calcolatori Lezione 11

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

RETI PEER-TO-PEER. Reti di Calcolatori. Applicazioni di Rete avanzate: Reti di Calcolatori. Sistemi Peer to Peer Griglie Computazionali

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Contesto. Reti e applicazioni peer-to-peer. Reti client/server. Reti client/server - svantaggi. Reti P2P - generalità. Reti peer-to-peer (P2P)

Reti di Telecomunicazione Lezione 6

FTP. Appunti a cura del prof. ing. Mario Catalano

Inizializzazione degli Host. BOOTP e DHCP

Informatica per la comunicazione" - lezione 8 -

Corso di recupero di sistemi Lezione 8

Elementi di Informatica e Programmazione

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

Teleassistenza mediante PCHelpware

Introduzione alle applicazioni di rete

Crittografia e sicurezza delle reti. Firewall

Capitolo 2 - parte 4. Corso Reti ed Applicazioni Mauro Campanella Como 2003

Argomenti della lezione

Reti di Telecomunicazione Lezione 8

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

AEMcom Peer2Peer - Windows

Gestione degli indirizzi

Elementi di Informatica e Programmazione

emule Dario Maggiari Files Sharing for dummies...or nearly... emule/edonkey Net & Protocol L' autore...

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

ARP (Address Resolution Protocol)

GUIDA ALLA RILEVANZA

Reti di calcolatori. Lezione del 10 giugno 2004

IRSplit. Istruzioni d uso 07/10-01 PC

Transmission Control Protocol

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Cognome Nome Matricola Tempo a disposizione per lo svolgimento: 1 ora e 20 min Avvertenza: Si usi lo spazio dopo ogni quesito per lo svolgimento.

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Reti diverse: la soluzione nativa

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Configurazione di Outlook Express

Reti di Calcolatori. Il Livello delle Applicazioni

Sistema di gestione Certificato MANUALE PER L'UTENTE

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Esercitazioni di Tecnologie e Servizi di Rete: Voice over IP (VoIP)

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Approfondimento di Marco Mulas

Servizi di Sicurezza Informatica. Antivirus Centralizzato per Intranet CEI-Diocesi

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Modulo 1.3 Reti e servizi

Indirizzamento privato e NAT

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

FPf per Windows 3.1. Guida all uso

PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO

azienda, i dipendenti che lavorano fuori sede devono semplicemente collegarsi ad un sito Web specifico e immettere una password.

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Gestione degli indirizzi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

Reti di Calcolatori

Tor è un software che permette di proteggere le proprie comunicazioni dall analisi del traffico attraverso degli onion router, gestiti da volontari.

Guida di Pro PC Secure

BREVE GUIDA ALL ATTIVAZIONE DEL SERVIZIO DDNS PER DVR SERIE TMX

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Studi di Settore. Nota Operativa 22/4/2013

Procedura standard per l aggiornamento del certificato di firma

Real Time Control (RTC): modalità di invio dei dati

Software per Helpdesk

HTTP adaptation layer per generico protocollo di scambio dati

Registratori di Cassa

Accreditamento al SID

Strategie e Operatività nei processi di backup e restore

ARP e instradamento IP

Transcript:

Algoritmi per protocolli peer-to-peer Reti non strutturate: casi di studio Livio.torrero@polito (Livio.torrero@polito.it) 09/2009

Napster: introduzione Livio Torrero - Politecnico di Torino Nato come applicativo per lo scambio di file musicali Nel 1999 le major disocgrafiche fanno causa a Napster => il bacino di utenza decolla 13,6 milioni di utenti nel febbraio 2001 Nel settembre 2001 viene ordinata la chiusura di Napster Napster si converte in servizio a pagamento Nel 2002 chiude 2

Funzionamento di Napster Quando un nodo entra nell infrastruttura si registra presso il server Upload della lista delle risorse gestite Peer Upload Server centrale Quando un nodo cerca una risorsa fa un lookup sul server centralizzato Peer query answer Server centrale In base ai risultati ottenuti il peer si connette a un altro peer per scaricare la risorsa Peer Download Peer Server centrale 3

Gnutella introduzione Livio Torrero - Politecnico di Torino Gnutella è un client p2p sviluppato nel 2000 da Justin Frankel e Tom Pepper di Nullsoft, appena acquisita da AOL Pare sia stato scritto in 14 giorni In origine il codice sorgente doveva uscire in formato GPL Tuttavia attraverso tecniche di reverse-engineering sono stati sviluppati numerosi cloni open-source Limewire è software open-source che supporta la rete Gnutella 4

Gnutella: evoluzione Livio Torrero - Politecnico di Torino Originariamente tutti i nodi in Gnutella erano uguali I peer erano detti servent Tuttavia questo approccio non scalava Fare un flooding su tutti i nodi della rete non funziona Bisogna tenere conto del fatto che non tutti i nodi sono uguali Per meglio tenere conto delle caratteristiche della rete Gnutella è stato riorganizzato Il risultato è una rete gerarchica a 2 livelli 5

Gnutella(limewire): rete gerarchica (1/2) Ultrapeer Fa da proxy per i nodi Sono loro ad effettuare le ricerche Impediscono che i nodi siano investiti dal traffico ad alta banda che investe gli Un nodo deve avere una connessione Internet veloce non bloccata da firewall Deve accettare connessioni TCP da nodi esterni Deve essere possibile mandare pacchetti UDP entranti limewire => upload 10kB/s, download 20kB/s 6

Gnutella(limewire): rete gerarchica (2/2) Nodi Es: nodi con connessioni dialup Sono fuori dall overlay (si connettono agli come client) Non accettano connessioni Gnutella Cercano un a cui collegarsi il prima possibile Dipendono dall Se un nodo vuole diventare, prima si disconnette dalla rete per ripresentarsi tentando di diventare Un nodo dovrebbe restare per almeno un ora 7

Perché una rete a 2 livelli? La divisione tra e nodi normali permette solo ai nodi migliori entrare nell overlay Gli host lenti rallenterebbero le prestazioni dell intero sistema se posti nell overlay L overlay diventa più piccolo ma più funzionale Dal punto di vista dei nodi gli ultra-peer sono dei server 8

Gnutella: overlay discovery Un nodo per accedere all overlay Gnutella deve conoscere almeno un Le modalità con cui questo avviene non sono oggetto di Gnutella Cache, well known nodes Come scoprire altri nodi? Pong caching Messaggio Ping (richiesta): chi lo riceve risponde con un messaggio Pong Messaggio Pong (risposta): contiene le informazioni relative a un computer (IP + porta) Solo gli mandano i pong Quando un riceve dei messaggi pong li mette nella sua pong cache Solo gli hanno la pong cache Quando un riceve un messaggio ping risponde con tutti i pong nella sua cache 9

Gnutella handshake Livio Torrero - Politecnico di Torino Ogni connessione Gnutella comincia con un handshake Un nodo accede all overlay con un messaggio GNUTELLA CONNECT che apre un socket TCP I messaggi di handshake sono costituiti da gruppi di header di formato simile ad HTTP (testo ASCII) Ogni header è nella forma <nome>:<valore1>,<valore2> Ogni gruppo inizia con una greeting line che identifica il messaggio Handshake a 3 vie: Host che si connette CONNECT OK Host che riceve la connessione OK 10

Esempi di handshake Gnutella(1/3) Un nodo si connette a un UltraPeer (connessione generica) 0.6 è la versione corrente di Gnutella GNUTELLA connect/0.6 X-Ultrapeer=false GNUTELLA/0.6 200 OK Un nodo dietro un NAT si connette a un Listen-IP indirizzo del peer che manda messaggio Remote-IP indirizzo nodo visto da UltraPeer GNUTELLA connect/0.6 X-Ultrapeer=false NAT 217.254.98.153 GNUTELLA/0.6 200 OK Listen-IP:68.37.233.44:9376 Remote-IP: 217.254.98.153 11

Esempi di handashake Gnutella (2/3) Un si connette a un GNUTELLA connect/0.6 X-Ultrapeer=true GNUTELLA/0.6 200 OK Un nodo si connette a un che rifiuta la connessione L deve fornire peer alernativi GNUTELLA connect/0.6 Nodo Gnutella generico GNUTELLA/0.6 service unavailable X-Try-Ultrapeers:68.37.233.44:9376, 172.195.105.218:3988 12

Esempi di handshake Gnutella(3/3) Un nodo si connette a un che accetta e fornisce indirizzi alternativi È consigliato fornire altri a cui connettersi Limewire ne fornsice 10 GNUTELLA connect/0.6 Nodo Gnutella generico GNUTELLA/0.6 200 OK X-Try-Ultrapeers:68.37.233.44:9376, 172.195.105.218:3988 13

Da nodo a I nodi decidono da soli se connettersi alla rete come Ultra peer o nodi normali Un nodo DEVE restare per un ora 1h Poi può tentare di connettersi a un come? connect Se l lo rifiuta, torna per un altra ora? (!) Refuse connection Leaf for 1h connect 14

I Connection Slot: organizzazione delle connessioni in Gnutella Un connection slot rappresenta la necessità di un nodo di creare una connessione verso un altro o la disponibilità ad accettare le connessioni Un nodo ha 3 connection slot verso gli Ultrapeer Creerà fino a 3 connessioni verso diversi Un si connetterà con al più 32 altri questo valore è detto network degree Un ha 30 connection slot verso i nodi Un non permette a più di 30 nodi foglia di connettersi a lui 15

Lookup in Gnutella: introduzione L algoritmo di lookup è il dynamic querying Obiettivo: localizzare una risorsa con il minor numero di messaggi possibile Avvio mandando pochi messaggi Intensifica alle fine Se una risorsa è popolare la trovo subito Viene eseguito solo dagli Si articola in 3 fasi: Search our leaves Probe Query Controlled Broadcasting Il dynamic querying interagisce con il Query Routing Protocol (QRP) Obiettivo: impedire che siano inviati messaggi di lookup che non ritornerebbero risultati 16

Dynamic Querying: search our leaves L manda a tutti i suoi nodi foglia una query di lookup con TTL=1 Dopo l invio si attende per 2,4s I nodi foglia che hanno copia della risorsa risponderanno alla query TTL=1 17

Dynamic Querying: probe query L manda a tutti gli ad esso collegati una query di lookup con TTL=1 Gli Ultrapeer che hanno copia della risorsa risponderanno alla query Gli ulrapeer inoltrano la richiesta ai loro nodi Reimpostano TTL=1 Questa query serve a stimare la popolarità della risorsa Se si ottengono 150 risposte positive in tutto l algoritmo finisce TTL=1 Answer TTL=1 18

Dynamic Querying: controlled broadcasting Ogni 2.4s manda una query a uno solo degli connessi TTL=2 oppure TTL=3 a seconda del numero di risposte ottenute nella fase precedente Se si ottengono 150 risposte positive l algoritmo finisce Se trascorrono più di 200s dall inizio della ricerca l algoritmo è interrotto E una ricerca in profondità: La probe query stimava la popolarità della risorsa presso i soli vicini Il controlled broadcasting effettua una ricerca approfondita partendo da uno solo degli vicini A seconda del valore del TTL si parla di: Ricerca TTL2 Ricerca TTL3 19

Ricerca TTL2 e ricerca TTL3 Leaf 1 TTL=2 TTL=1 Ultrapeer A Ultrapeer B Ultrapeer C Leaf 2 A inizia la ricerca: manda query con TTL=2 SOLO a B B decrementa il TTL=> TTL=1 TTL<>0 => inoltra la query a TUTTI gli ad esso collegati (in figura, C è il solo connesso) C decrementa il TTL => TTL=0 TTL=0 => inoltra la query a TUTTI i ad esso collegati La TTL3 funziona nello stesso modo (TTL=3) la ricerca coinvolge un numero elevato di Limewire non usa MAI TTL>3 20

Gnutella: Query Routing Protocol Nel Dynamic Querying gli inoltravano le query ai nodi collegati Se il nodo non mantiene risorse, è inutile propagare la query Se l utente del nodo non vuole rispondere alle query, è inutile propagargli la query Il QRP a questo scopo permette al nodo di mandare all una descrizione delle risorse gestite Le informazioni sono contenute nella QRP table Inviata dopo la connessione Appositi messaggi permettono l aggiornamento delle informazioni della QRP table 21