lezione n.14 p2p content distribution: bittorrentricci/09-05-12-bittorrent.pdf · 3 laura ricci p2p...

79
1 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli Studi di Pisa Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENT Laura Ricci 9/5/2012 Università degli Studi di Pisa Dipartimento di Informatica

Upload: others

Post on 07-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

1Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

Lezione n.14P2P CONTENT DISTRIBUTION:

BITTORRENT

Laura Ricci9/5/2012

Università degli Studi di PisaDipartimento di Informatica

Page 2: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

2Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

CONTENT DISTRIBUTION NETWORKS

Content Distribution Network (Content Delivery Network) (CDN): insieme distribuito di hosts che cooperano per distribuire grosse quantità di dati (ad esempio dati multimediali) agli end user

Motivazione: se un unico web server memorizza dati molto popolari, il server stesso può spesso risultare congestionato e non essere capace di gestire tutte le risorse

Fenomeno del flash crowd: un sito web 'attira', a causa di qualche evento, l'attenzione di un gran

numero di persone deve gestire, in certi istanti, un tasso di traffico altissimo ed inaspettato

CDN: replicazione dei dati e/o servizi su diversi mirror server con lo scopo di ottenere uno sfruttamento migliore della banda

Esempi: Commerciali: Akami, AppStream, Globix, Bittorrent Accademici: Coral (P2P), Globule

Page 3: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

3Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

CDN: OBIETTIVI

distribuire il carico relativo alla distribuzione di contenuti sfruttare pienamente la banda di download per sistemi P2P con connessioni

asimmetriche Banda di downlaod >> Banda di upload Es: 4 Mbit/s di downlink, 600Kbit/s di uplink

idea principale: redistribuire il carico dell'upload su tutti i peer che concorrono allo scaricamento del file

Page 4: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

4Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

CONTENT DISTRIBUTION NETWORKS: OBIETTIVI Perchè utilizzare una content distribution network, un esempio concreto:

sono andata in vacanza, ho fatto un centinaio di foto (1 M ciascuna) e due filmati (50M ciascuno)

al ritorno delle vacanze decido di condividere tutto il materiale prodotto (circa 200 M) con gli amici sparsi sul globo

Soluzione 1: pubblico il materiale su un sito web locale. se non posseggo una connessione a banda larga, l'upload effettuato dai miei

amici probabilmente mi impedirà di usare la connessione per altri scopi Soluzione 2:

utilizzo la tecnologia P2P in modo da utilizzare anche la banda dei peer che effettuano il download per distribuire il materiale

Page 5: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

5Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: DIFFUSIONE NEL 2007

http://www.ipoque.com/resources/internet-studies/internet-study-2007

Page 6: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

6Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: CARATTERISTICHE GENERALI L'obiettivo principale è quello della distribuzione di files,

utilizza meccanismi esterni per la ricerca di files

Distribuzione di contenuti sw open source distribuzione di nuove versioni del SO/nuove applicazioni (OpenOffice,..) game patches (es: War of Warcraft) condivisione di files tra gruppi di persone con interessi comuni

sviluppato da Bram Cohen in Python e presentato al CodeCon 2002 (una conferenza negli States in cui sviluppatori di software ed hacker possono liberamente presentare nuovi progetti)

idea di Cohen: adattare il sistema di memorizzazione dei files adottato nella sua azienda al P2P.

i files vengono divisi in parti crittografate e distribuite tra i diversi computers dell'azienda

Page 7: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

7Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALE

Il file è memorizzato sul server

Page 8: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

8Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALE

Il server distribuisce iprimi 2 pezzi del file

Page 9: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

9Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Il server distribuise altri due pezzi.In parallelo comincia la diffusione dei precedenti due pezzi

Page 10: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

10Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Il server uploada gli ultimi duepezzi

Page 11: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

11Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Il server non è più coinvoltonella distribuzione del file

Page 12: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

12Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Page 13: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

13Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Page 14: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

14Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Page 15: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

15Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEE GENERALI

Page 16: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

16Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: IDEA GENERALI

Tutti i peer possiedono l'intero file

Page 17: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

17Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: FUNZIONAMENTO GENERALE Il peer U che intende condividere un file genera un descrittore del file, il

file .torrent, e lo pubblica su un server HTTP. Il descrittore contiene un riferimento ad un il tracker, che fornisce un

servizio di coordinamento dello swarm swarm:

insieme di peers che collaborano alla distribuzione di uno stesso file coordinati da uno stesso tracker

Il peer che desidera scaricare il file, scarica il descrittore del file e lo apre con il client BitTorrent. si connette al tracker e lo informa della propria esistenza riceve dal tracker una lista di peer dello swarm

i peer si scambiano informazioni relative alle parti del file che essi possiedono e ogni peer richiede le parti di file a cui è interessato

se U rimane online quando ha terminato lo scaricamento del file, continua a distribuire il file

Page 18: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

18Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: UN PO' DI TERMINOLOGIA Seeder (alla lettera inseminatore): peer che possiede tutte le parti del file

all'inizio esiste un unico seeder S, il peer che pubblica il contenuto. crea il file .torrent e lo pubblica

può accadere che S esca dalla rete dopo aver 'inseminato' un numero sufficiente di peer

in seguito si vengono a creare nuovi seeder. Sono i peer che hanno scaricato il file e rimangono all'interno della rete per altruismo o per caso

Leecher (alla lettera succhiatore): peer che possiede qualche parte o nessuna parte del file e cerca di

scaricare il file dai seeder e/o da altri leecher all'inizio ricerca il file .torrent per iniziare il downlaod

Peer Set lista di peer che il peer ha ricevuto dal tracker. Un peer A è interessato al peer B quando B possiede dei pezzi che A non

possiede Un peer A non è interessato al peer B quando B possiede un sottoinsieme dei

pezzi di A

Page 19: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

19Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: PARTIZIONAMENTO DEI FILES

• BitTorrent divide ogni file in pezzi, in generale ≥ 256 KB• viene calcolato l'hash di ogni pezzo• ogni pezzo è quindi suddiviso in blocchi di 16 KB• il trasferimento avviene a livello di blocco

Page 20: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

20Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PASSO 1: CREAZIONE DEL FILE .TORRENT

.Torrent: descrittore del file: file con estensione .torrent che contiene meta informazioni sul file

condiviso generato automaticamente mediante programmi appositi (maketorrent) o

direttamente mediante un client BitTorrent(Azureus,...)

al momento della generazione del .torrent, l'applicazione richiede all'utente

il nome del/dei files per cui si vuole generare il descrittore (.torrent) l'indirizzo di un tracker che coordina la diffusione del file

corrispondente. Esistono due alternative scegliere l'indirizzo di un tracker da una lista proposta inserire l'indirizzo di un tracker noto

Page 21: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

21Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL FILE . TORRENT utilizzato per ritrovare il contenuto e verificarne l'integrità

Alcune informazioni lunghezza e nome del file lunghezza dei pezzi announce: URL del tracker

INFO: include gli hash dei pezzi (SHA1) un hash per ogni pezzo Il file .torrent è bencoded

codifica di Bittorrent

Page 22: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

22Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL FILE .TORRENT

E' possibile inserire più files nello stesso .torrentIn questo caso i files vengono concatenati e la stringa di bytes risultanteviene suddivisa in pezzi

Page 23: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

23Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL FILE .TORRENT

Dimensione dei pezzi: 256K, 512K, 1M

Compromesso tra dimensione del torrent ed efficienza dello swarm

più è grande il singolo pezzo, minore è la dimensione del .torrent, minore è la banda necessaria per scaricare il .torrent dal server

più è piccolo il singolo pezzo, maggiore è la dimensione del .torrent, ma migliore è la diffusione del file

maggiore flessibilità nella scelta dei peer dello swarm da cui scaricare il pezzo

maggiore flessibilità nella scelta della politica di scelta dei pezzi in generale maggiore efficienza nella gestione dello swarm

Page 24: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

24Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PASSO 2: PUBBLICAZIONE DEL FILE .TORRENT

Il .torrent creato deve esser pubblicato su un sito web che fornisce servizio di indicizzazione dei .torrent

Di solito lo stesso server offre sia il servizio di pubblicazione ed indicizzazione del .torrent per il servizio di tracking

slternativamente un tracker può essere attivato su un sito diverso

In questo caso si pubblica il .torrent sul tracker specificato nel campo URL announce del .torrent

fornisce agli utenti registrati servizi di indicizzazione e di tracking

Pubblicazione del .torrent = upload del .torrent sul sito individuato

Page 25: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

25Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PASSO 3: DISTRIBUZIONE DEL .TORRENT

il protocollo BitTorrent non definisce un meccanismo per la ricerca di files

il web server su cui il .torrent è stato pubblicato fornisce anche un servizio di indicizzazione dei .torrent gestiti

registrazione sul sito e ricerca di un torrent se il .torrent pubblicato riguarda un file che voglio condividere con un

gruppo di amici, il metodo più veloce per distribuire il .torrent è inviarlo direttamente agli amici via e-mail/comunicazione via chat/....

sia il peer che vuole condividere il contenuto che i peer che intendono scaricarlo devono aprire il .torrent mediante un client BitTorrent

L'apertura del file .torrent implica l'attivazione di un protocollo di scambio informazioni con il tracker

Page 26: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

26Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

COMUNICAZIONE PEER TRACKER il tracker

conosce l'indirizzo di ogni peer dello swarm e consente quindi ad ogni peer dello swarm di individuare altri peers

invia ai peer un sottoinsieme random dei peer (IP+porta) dello swarm. un nuovo peer P costruisce l' insieme iniziale dei peer conosciuti con cui

scambierà pezzi di files P aggiunge a questo insieme successivamente nuovi peer che ottengono

il suo indirizzo dal tracker

i peer contattano periodicamente il tracker unicamente per inviargli informazioni statistiche:

quantità dati inviati e ricevuti

Inoltre, se il numero di peer conosciuti da P scende sotto una certa soglia, P ricontatta il tracker e si fa inviare un nuovo insieme di peer

Page 27: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

27Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

COMUNICAZIONE PEER TRACKER

La comunicazione con il tracker avviene mediante il protocollo HTTP e esso risponde quindi a richieste HTTP GET

Il peer invia info hash del file: fingerprint del file

ottenuta come hash degli hash dei pezzi identifica univocamente il .torrent è possibile creare diversi .torrent con diversi URL announce, ma con lo

stesso info hash: identificano lo stesso .torrent e possono essere utilizzati per aumentare la diffusione del file

identificatore del peer uploaded/downloaded: numero di bytes scaricati/uploadati: utilizzati per

mantenere statistiche dui peer (es: numero di seeders, banda dei peer,...) event: started/stopped/completed

Page 28: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

28Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

COMUNICAZIONE TRACKER PEER

Il tracker risponde ad una richiesta del peer

numero di seeders del file

numero non seeders del file

Identificatore, Ip e porta di una lista di peer dello swarm

Intervallo: intervallo di tempo dopo cui il peer deve ricontattare il tracker

....altre informazioni

Page 29: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

29Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PEER WIRE PROTOCOL

Peer wire protocol: definisce i messaggi scambiati tra i peer Ogni peer

sceglie un sottoinsieme dei peer ricevuti dal tracker e stabilisce con ognuno di essi una connessione TCP

lascia spazio per alcune connessioni che possono venir aperte da peer remoti

invia il proprio ID e l'hash SHA1 del il file ricavato dal .torrent il peer che riceve una richiesta di connessione può rifiutare la connessione

se l'hash non corrisponde a nessuno degli swarm a cui attualmente partecipa

se l'ID del peer non corrisponde a quelli ricevuti dal tracker una volta stabilita la connessione, ogni peer comunica al partner gli indici

dei pezzi dei files che possiede ogni peer in uno swarm conosce quindi la distribuzione dei pezzi all'interno

dello swarm

Page 30: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

30Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: ARCHITETTURA GENERALE

Page 31: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

31Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PEER WIRE PROTOCOL

Protocollo per lo scambio di informazioni P2P, implementato su connessioni TCP

Messaggi Handshake

Bitfield contiene la lista dei pezzi posseduta codificata mediante una sequenza di bits, un bit per ogni pezzo

Keepalive inviati ogni due minuti a meno che non venga inviato un altro

messaggio sulla connessione per verificare se il client ha chiuso la connessione

Interested/ Not Interested Have notifica di acquisizione di un nuovo pezzo. Inviato a tutti I peer nel

peer set di uin peer Request/Piece richiesta/invio di un blocco di dati Cancel Cancella una richiesta precedente, utilizzato nell'endgame Choke/Unchoke implementazione algoritmo di unchocking

Page 32: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

32Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PEER WIRE PROTOCOL: ALGORITMI per la selezione dei peer con cui scambiare i dati

Chocking/ Unchocking (basati sulla teoria dei giochi) premia i peer più 'collaborativi', quelli che hanno fornito una maggior

quantità di contenuto in passato Optimistic Unchocking

per la selezione dei pezzi dei files da scaricare Stricy Priority Random First Piece Rarest First End Game

Page 33: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

33Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PEER WIRE PROTOCOL: SELEZIONE PEZZI

L'ordine con cui i diversi peer dello swarm selezionano i pezzi è importante per

Ottenere una buona efficienza dello swarm

Se viene utilizzata una politica errata, si può verificare la situazione in cui ogni

peer possiede lo stesso insieme di pezzi, ma nessuno possiede un certo pezzo

In questo caso, se tutti i seeders hanno abbandonato la rete, il file non può

essere ricostruito

quale politica per la scelta dei pezzi?

Page 34: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

34Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

ALGORITMO PER LA SCELTA DEI PEZZI

Strict Priority

Completare l'”assembalggio” di un pezzo prima di chiederne un altro

Rarest First

Scaricare i pezzi più rari per primi

Random First Piece

Scelta di un pezzo random in fase di boorstrap

Endgame

Broadcast per i blocchi rimanenti quando il download del file sta per

terminare

Page 35: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

35Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SCELTA PEZZI: STRICT PRIORITY ogni pezzo viene decomposto in blocchi

Se si è richiesto un blocco di un pezzo, richiedere tutti gli altri blocchi dello stesso pezzo prima di richiedere un blocco di un qualsiasi altro pezzo

Scopo: favorire l' 'assemblaggio veloce' dei pezzi solo i pezzi completi possono essere scambiati con gli altri peer l'algoritmo di chocking(vedi lucidi successivi) favorisce i peer che

hanno interi pezzi da scambiare con i partner il peer cerca di venire in possesso di pezzi completi il più velocemente

possibile, in modo da avere pezzi completiche può scambiare con altri peer

Page 36: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

36Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SCELTA PEZZI: RANDOM FIRST PIECE inizialmente un leacher non possiede alcun pezzo e quindi non può offrire

niente agli altri peer dello swarm è importante che acquisica un pezzo prima possibile per poter iniziare a

negoziare pezzi con altri peer (algoritmo di unchoking)

per scaricare i primi 4 pezzi, si utilizza la politica random first piece: scelta casuale del pezzo da scaricare

obiettivo: “partenza più veloce”, dopo cui si passa al rarest first

non si sceglie inizialmente il pezzo più raro, perchè è presente su un solo peer o su un numero limitato di peer ed il suo

download può risultare lento perchè: minor disponibilità del pezzo, maggior richiesta maggior probabilità di scegliere un peer lento

Page 37: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

37Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SCELTA DEI PEZZI: LOCAL RAREST FIRST Ogni peer conosce i pezzi posseduti dai peer nel suo Peer Set

Ogni peer può calcolare la disponibilità di ogni pezzo quanti peer nel Peer Set possiedono quel pezzo

Rarest Piece Set: l'insieme di pezzi con disponibilità minima rispetto alla conoscenza locale del peer

aggiornato ogni volta che il peer riceve un messaggio di Have oppure un bitfield

Rarest Piece First: seleziona in modo casuale un peer tra quelli del Rarest Piece Set. Obiettivi:

replicare i pezzi rari il più velocemente possibile reperire un pezzo 'prezioso' da scambiare scaricare pezzi unici dal seeder

Page 38: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

38Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SCALTA DEI PEZZI: LOCAL RAREST PIECE FIRST

Obiettivi della strategia rarest piece first: massimizzare l'entropia dei pezziall'interno del torrent

se il seeder di un file si disconnette dallo swarm esiste il rischio che un pezzo raro risulti non più disponibile. Questo renderebbe impossibile la ricostruzione dell'intero file

se esistono pochi seeder, con capacità di upload limitata, questa strategia garantisce che nuovi downloaders scarichino parti del file dai seeders, replicando così rapidamente l'intero file e diminuendo così il carico del download dal seeder

un peer acquisce pezzi rari molto richiesti da altri peer e viene scelto per il download da molti peer. In questo modo è più probabile che venga inserito nelle liste di upload di diversi peer.

Page 39: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

39Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SCALTA DEI PEZZI: ENDGAME Osservazione: i downloads tendono a rallentare quando si è vicini al

completamento del download stesso (circa il 99%) peer caratterizzati da una bassa banda rallentano la fine del

trasferimento, perchè il trasferimento da questi peer non può essere sovrapposto al download di altri pezzi

End Game Policy gli ultimi pezzi del file da scaricare vengono richiesti a tutti i peer che

lo possiedono per evitare di sprecare banda, quando il pezzo richiesto viene ricevuto

da un peer, i download avviati in parallelo vengono annullati modesto spreco di banda, in quanto l'end game viene eseguito per un

breve periodo di tempo

Page 40: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

40Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL PROBLEMA DEI FREE RIDERS

Free Rider = E' un individuo che nasconde le proprie preferenze per un bene, evitando di pagarne il prezzo e scaricando su altri individui il prezzo del bene stesso

Se vi sono individui interessati ad un bene pubblico, il free rider si rende conto che potrà beneficiare ugualmente del bene, senza essere costretto a pagare.

Esempio: un gruppo di studenti devono decidere se comprare una elettrodomestico per il l'appartamento comune.

qualcuno può nascondere di volere il televisore per evitare di pagarne il prezzo.

una volta acquistato, però, non risulta facile impedirgli l'utilizzazione del bene comune (proprio in quanto comune)

Il Free Riding è un comportamento che prende il nome da colui che sale sull'autobus senza comprare il biglietto.

Page 41: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

41Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL PROBLEMA DEI FREE RIDERS La causa dei Free Riders è la caratteristica di non escludibilità di un bene

pubblico: è difficile escludere dal godimento di un bene pubblico chi non ne ha pagato il prezzo.

Il problema viene identificato del free riding si può studiare mediante la teoria dei giochi

Nel caso di content distribution P2P il free rider è un peer che utilizza la propria banda unicamente per il download e non ne riserva una parte per eventuali upload

Studio del fenomeno dei free riders Gnutella:

la maggioranza dei peer (70%) non condivide alcun file o ne condivide pochi

alcuni peer condividono solo file poco popolari comportandosi, di fatto,come dei free riders

Emule: il sistema dei crediti è un meccanismo troppo semplice per evitare il free riding

Page 42: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

42Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

FREE RIDERS IN BITTORRENT Free riding in BitTorrent: peers che non aiutano gli altri se questo ha un

costo costo in termini di occupazione di banda

Risoluzione del problema dei free riders risulta complessa perchè:

non esiste una entità centralizzata che può controllare i nodi: gli unici che vedono che cosa accade tra due peer sono i peer stessi

non possiamo imporre un certo comportamento, ad esempio via uno strato di software: è difficile imporre un certo comportamento al client Bittorrent, perchè è sempre possibile modificare il client mediante reverse engineering

a livello applicazione, esistono diversi client BitTorrent (non officiali) che consentono all'utente di limitare la banda di upload a proprio piacimento

Page 43: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

43Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

FREE RIDERS IN BITTORRENT il buon funzionamento di BitTorrent dipende in larga parte dall'

'atteggiamento cooperativo' dei peer nei confronti della comunità, ovvero dalla eliminazione dei free riders

Un possibile approccio alla soluzione al problema del fenomeno dei free riders basato su reciprocità: ottiene un buon servizio solo chi fornisce un buon servizio

“spingere” i peer egoisti a comportarsi bene... stretegie basata su risulati di teoria dei giochi implementata all'interno

del protocollo stesso Strategia Tit for Tat basata su problema iterato del prigioniero

Page 44: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

44Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI

Settore della matematica che studia situazioni in cui i giocatori effettuano

scelte tra diverse strategie per massimizzare i loro risultati

Applicata in economia, biologia, psicologia, sociologia, filosofia, ed informatica

Cerca di modellare il comportamento razionale di individui che devono prendere

decisioni in presenza di conoscenza parziale del comportamento degli altri

individui

Nel nostro caso

Giocatori = peer

Strategia = Comportamenti adottati dai peer quando interagiscono

Page 45: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

45Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI

Esempio: Pari o Dispari due giocatori, 1 e 2 entrambi scelgono contemporaneamente un numero

se la somma è pari, vince 1. Altrimenti, vince 2 Pay off = in teoria dei giochi, il pay off risultato, premio, ricompensa,

pagamento.

Page 46: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

46Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI

• Rappresentazione tabellare del gioco, righe e colonne strategie di gioco dei due giocatori

I payoff dei giocatori elemnto della tabella corrispondente alle strategie di gioco dei giocatori

• Scelta razionale: i due giocatori vogliono massimizzare il loro payoff

Page 47: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

47Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI

Date due strategie X, Y per il giocatore P, se qualsiasi sia la scelta di

strategie per gli altri giocatori, i payoff ottenuti scegliendo X sono

maggiori di quelli ottenuti scegliendo Y, si dice che

X domina fortemente Y

Esempio: A domina fortemente C, E domina fortemente D

Page 48: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

48Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI: UN ESEMPIO consideriamo una coppia di studenti che devono decidere come impostare il

lavoro per il giorno successivo, in cui ognuno di essi avrà due impegni un esame una presentazione che dovrà essere effettuata assieme dai due studenti

alcune ipotesi semplificative: lo studente

può studiare per l'esame oppure preparare la presentazione, ma non può fare entrambe le cose

ottiene due voti diversi uno per l'esame ed uno per la presentazione si suppone di conoscere esattamente il voto finale ottenuto nel caso che

prepari/non prepari l'esame/la presentazione per la presentazione: se è preparata dai entambe gli studenti la

votazione finale per ognuno di loro è 100, se è preparata da uno solo di loro, è 92, se nessuno dei due la prepara, il voto finale è 84

entambe gli studenti ottengono la stessa valutazione per l'esame: 92 se studiano, 80 se non studiano

Page 49: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

49Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI: UN ESEMPIO I due amici non si possono contattare per comunicare le loro decisioni Ogni studente è interessato ad avere il voto medio migliore Se entrambi gli studenti preparano la presentazione, ognuno

prende il massimo per la presentazione (100) il minimo per l'esame (80). la media è 90

Se entrambi gli studenti studiano per l'esame, ognuno Prende il massimo nell'esame (92) Il minimo nella presentazione (84) La media è 88

Se uno prepara la presentazione e l'altro l'esame Lo studente che ha preparato la presentazione prende 92 per la

presentazione ed 80 nell'esame. La media è 86 Lo studente che ha studiato per l'esame prende 92 nell'esame e beneficia

della presentazione dell'altro e prende 92. Media 92.

Page 50: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

50Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TEORIA DEI GIOCHI: UN ESEMPIO

La forma strategica di questo problema è la seguente

La strategia dominante per entrambe i giocatori è studiare per l'esame

Se i due studenti potessero mettersi d'accordo nel preparare la presentazione, potrebbero ottenere un punteggio maggiore, 90

ma... anche se uno studente decide di preparare la presentazione ed anche se l'altro studente venisse a sapere di questa decisione, l'altro avrebbe comunque un incentivo a preparare l'esame, perchè il punteggio sarebbe maggiore

Page 51: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

51Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL DILEMMA DEL PRIGIONIERO Famoso esempio di teoria dei giochi A e B vengono arrestati dalla polizia

vengono rinchiusi in celle separate, non possono comunicare vengono interrogati separatamente e ognuno può

resistere all'interrogatorio e proclamarsi innocente tradire l'altro e confessare il crimine

A seconda del loro comportamento, la polizia si comporta nel modo seguente

se entrambi resistono (cooperano) vengono incarcerati per 2 anni per reati minori

se A confessa (tradisce) e B no, il traditore (A) viene liberato e l'altro (B) resta al fresco per 5 anni

se entrambi tradiscono, vengono entrambi incarcerati per 4 anni A e B si chiedono: quale è la strategia migliore? Quale porta ad una pena

minore?

Page 52: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

52Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

DILEMMA DEL PRIGIONIERO: LA FORMA STRATEGICA

• per entrambe i giocatori: • D = Defezione, tradimento, • C = Cooperazione

Payoff = numero di anni risparmiati• per entrambe i giocatori la strategia D domina C• risultato: Ogni giocatore ottiene il beneficio maggiore mediante la defezione,piuttosto che mediante la collaborazione• La strategia dominante è il tradimento, anche se il numero maggiore di anni sirisparmierebbero mettendosi d'accordo!

Page 53: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

53Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

IL DILEMMA DEL PRIGIONIERO: FORMA GENERALE

R,R

B

Coopera Non CooperaCoopera

T,S P,P

S,TA

Non Coopera

• R = Reward, P= Punishment, T= Temptation, S = Sucker• Condizione per il Dilemma del Prigioniero: T > R> P> S 5>3>1>0

Page 54: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

54Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

DILEMMA DEL PRIGIONIERO ITERATO

Abbiamo visto che nel Dilemma del Prigioniero la cooperazione non è possibile

Cosa accade se il gioco viene iterato? Supponiamo di voler massimizzare la

somma dei pay-off

Può esserci più spazio per la cooperazione, dato che è possibile scegliere come

comportarsi in base alla storia passata

strategia tit-for-tat

Page 55: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

55Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

DILEMMA DEL PRIGIONIERO ITERATO (IPD)

Consideriamo una sequenza di round in cui ad ogni round si affronta il problema del prigioniero

Supponiamo inoltre di non conoscere il numero di round a priori (non si conosce quando il gioco ha termine)

Quale è la strategia migliore, in questo caso? Strategia tit-for-tat (alla lettera, pan per focaccia, botta e risposta)

cooperare sempre al primo turno quindi replicare la mossa effettuata dall'avversario al passo precedente

Il tit-for-tat si è rilevata la strategia migliore in diversi tornei a cui hanno partecipato

esperti di teoria dei giochi [Axelrod] è alla base dell'algoritmo di chocking definito da BitTorrent

Page 56: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

56Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

DILEMMA DEL PRIGIONIERO ITERATO (IPD)

Axelrod verifica che la collaborazione 'paga' nel caso del dilemma del prigioniero iterato

I giocatori accumulano i payoff corrispondenti alla matrice dei payoff corrispondente al dilemma del prigioniero

Vince chi ha accumulato il valore massimo dei payoff Ogni giocatore è in grado di ricordare il comportamento dell'avversario

nell'ultima sessione di gioco La strategia del Tit for Tat se pur molto semplice, si è rilevata migliore di

altre strategie molto più complesse Il Tit for Tat

non riesce a sconfiggere un singolo oppositore, perchè collabora sempre come prima mossa,

riesce ugualmente a vincere i tornei, risulta quindi globalmente vincente

Page 57: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

57Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TIT FOR TAT: UN ESEMPIO

Consideriamo 4 giocatori, due di loro (TFT) utilizzano la strategia TitForTat, gli altri due (ACC) cercano sempre di ottenere il massimo vantaggio, accusando ad ogni turno l'altro giocatore.

Ad ogni round del gioco, ogni giocatore gioca contro tutti gli altri ed il gioco prevede 6 rounds

La matrice delle ricompense è la solita del dilemma del prigionierocooperazione accusa

cooperazione

accusa

3,3 0,5

5,0 1,1

Page 58: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

58Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TIT FOR TAT: UN ESEMPIO Quando un TFT gioca contro un ACC, nel primo turno il primo acquisice 0 punti,

l'ACC acquisice 5 punti. Nei rimanenti 5 rounds, entrambi si accusano e quindi acquisicono 1 punto a testa. Punteggio finale TFT= 5 ACC=10

Quando i due TFT si affrontano cooperano al primo round e poi a tutti i round successivi TFT(1)=18 TFT(2)=18

Quando i due ACC si affrontano si accusano a vicenda in tutti i 6 rounds. Punteggio finale ACC(1)=6 ACC(2)=6

Punteggi finali: per ogni TFT 5+5+18 = 28 per ogni ACC 10+10+6= 26

Page 59: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

59Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TIT FOR TAT: LA STRATEGIA VINECENTE

Il TFT perde al primo round quando incontra un ACC, ma poi limita le perdite comportandosi come lui

Se il TFT trova un altro TFT, la cooperazione ricompensa entrambi

Se si incontrano due accusatori, la ricompensa è bassa per entrambi in tutti I turni

per il dilemma del prigioniero ripetuto la strategia vincente è il Tit-for-Tat

Page 60: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

60Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

CONDIZIONI PER IPD

Ulteriore condizione necessaria per il problema iterato del prigioniero

R > (S+T)/2

• si vuole evitare che i giocatori risolvano il dilemma semplicemente accusandosi

a vicenda, a turno.

• supponiamo di giocare per k turni

• si vuole premiare la mutua cooperazione pittosto che l'alternanza di

reciproche accuse.

• R ricompensa media su k mosse per aver collaborato,

• (S+T)/2 ricompensa media se si sono alternate collaborazioni ed accuse

Page 61: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

61Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

TIT FOR TAT: CARATTERISTICHE

Cooperativa: si collabora sempre alla prima mossa. In BitTorrent vedremo

che questo corrisponde a fornire sempre dei dati, come prima mossa

Contraccambio: si smette di collaborare se l'altro lo fa. In Bittorrent questo

significa interrompere l'upload dei dati se l'altro non ci invia dati oppure

invia dati ad una velocità bassa

Perdono: si ritorna a collaborare se il partner collabora, anche se non aveva

collaborato in precedenza. In BitTorrent un peer riprende l'upload dei dati

quando un peer gli fornisce di nuovo dei dati

Non invidiosa: non si tenta di far meglio degli altri

Page 62: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

62Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT E TIT FOR TAT

modellare lo scambio di dati come un dilemma del prigioniero iterato

cooperare = fornire banda sufficiente per l' upload

defezionare = 'soffocare' l'upload

utilizzare una strategia basata su Tit for Tat per promuovere la collaborazione

e diminuire il problema dei free riders

la prima mossa di un peer è sempre un upload (cooperazione)

equivale alla prima mossa ottimistica del tit for tat

successivamente un peer effettua l'upload solo verso i peer che gli hanno

inviato dati con velocità ragionavole (hanno collaborato)

Page 63: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

63Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: L'ALGORITMO DI CHOCKING

Ricordiamo che:● Peer Set lista di peer che il peer conosce (li ha ricevuti dal tracker

oppure è stato contattato da essi) un peer A è interessato al peer B quando B possiede dei pezzi che A non

possiede un peer A non è interessato al peer B quando B possiede un sottoinsieme

dei pezzi di A

Un peer Q appartenente al Peer Set di P può trovarsi in due stati unchoked: P è disposto ad inviare dei pezzi a Q chocked (soffocato) altrimenti P non invia dati a Q

Active Peer Set di P contiene i peer appartenti al peer set di P per cui P ha effettuato l'unchocking e che sono interessati a pezzi posseduti da P

Page 64: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

64Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

BITTORRENT: ALGORITMO DI CHOKING ogni peer apre una connessione TCP (connessione bidirezionale) verso un

insieme di altri peer nel suo Peer Set. ogni connessione si può trovare, in uno dei due seguenti stati

unchocked: la connessione è utilizzata per l'upload dei dati chocked (soffocata): la connessione viene 'soffocata' cioè non viene

utilizzata per il trasferimento dei dati, anche se viene mantenuta aperta

Algoritmo di chocking: ogni peer ha un numero arbitrario di connessioni aperte, ma effettua

upload solo attraverso una quantità limitata di esse (in genere 4) le connessioni vengono comunque lasciate aperte, per non pagare

più di una volte il costo dell'apertura della connessione ogni peer periodicamente valuta, per ogni vicino, la velocità di download

da quel vicino nel round precedente e decide quali vicini 'strozzare' Chocking: rifiuto (temporaneo) ad effettuare l'upload, può essere revocato

Page 65: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

65Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

L'ALGORITMO DI CHOCKING Ogni peer esegue periodicamente l'algoritmo di chocking

utilizzato per garantire un buon livello di reciprocità nel download/upload dei dati tra due peer

diverse versioni dell'algoritmo di unchoking, implementate in client diversi

Due comportamenti diversi a seconda che il peer sia Leecher Seeder

Page 66: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

66Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

L'ALGORITMO DI CHOCKING IN SINTESI

Al massimo 4 peer unchoked ed interested

Politica di unchoking, semplificata

Regular Unchocked Peer: ogni 10 secondi i peer remoti interessati al peer

locale sono ordinati rispetto alla velocità con cui hanno inviato i dati al peer

locale ed i 3 più veloci vengono posti in stato unchocked.

Optimistic Unchocked Peer: ogni 30 secondi si sceglie un peer ulteriore in

modo casuale e si effettua l'unchoking di quel peer. Questo corrisponde alla

prima mossa del dilemma del prigioniero.

Page 67: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

67Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

LEECHER CHOCKING IN DETTAGLIO Un round = 10 secondi Ogni 3 round, quindi ogni 30 secondi:

si sceglie in maniera casuale un peer tra quelli chocked ed interested e se ne effettua l'unchocking.

questa mossa viene indicata come optimistic unchocking ed il peer viene indicato come optimistic unchocked peer

Ad ogni round, si ordinano tutti i peer interesssati che hanno inviato almeno un blocco di dati negli ultimi tre round, secondo la loro velocità di upload

la velocità di upload viene calcolata mediante una media sugli ultimi 20 secondi

si effettua l'unchoking dei 3 peer più veloci questa mossa viene indicata come regular unchoke ed i peer scelti

vengono indicati come regular unchoked peers se l'optimistic unchoked peer non fa parte dei tre peer prescelti,l'agoritmo

termina. in questo caso l'algoritmo ha effettuato l'unchoking di 4 peer, un

unchoking ottimistico e tre regolari

Page 68: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

68Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

LEECHER CHOKING IN DETTAGLIO se l'optimistic unchoked peer fa parte dell'insieme dei regular unchoked

peers, si sceglie in maniera casuale un nuovo peer su cui fare l'optimistic unchoking

se il peer scelto è interessato, ne viene effettuato l'unchoking e l'algoritmo termina

se non è interessato, ne viene effettuato comunque l'unchoking e viene ricercato un altro peer su cui effettuare l'optimistic unchoking.

permesso unchoking di un peer non interessato. L'algoritmo viene immediatamente rieseguito nel caso in cui il peer diventi interessato.

in un round effettuato l'unchoke di 4 peer interessati e di un insieme di peer non interessati. L'algoritmo viene invocato

regolarmente, ogni 10 secondi in più, per aumentare la reattività

quando un peer unchoked diventa interessato e viceversa quando un peer viene eliminato dal Peer Set,ad esempio perchè ha

lasciato volontariamente la rete

Page 69: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

69Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

LEECHER CHOKE ALGORITHM

Optimistic Unchoking

upload ammesso anche su connessioni che non risultano particolarmente veloci o

verso peer che non hanno spedito nulla

Prima mossa del dilemma del prigioniero: provare a colaborare per vedere se

si instaura reciprocità

permette il bootstrap di nuovi peer

un peer appena entrato nella rete non possiede alcun pezzo, quindi non può

effettuare l'upload verso nessun peer

l'optimistic unchocking consente di fornire a questi peer il primo pezzo,

così che essi possano iniziare a effettuare lo scambio

Page 70: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

70Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

ANTISNUBBING

To snub = snobbare

Snubbing: se un peer P non riceve pezzi da Q, P non effettua upload verso Q, a meno che Q non sia scelto da un optimistic upload

Un peer è definito snubbed se tutti gli altri hanno effettuato il choking su di esso

un peer snubbed non effettua l'uploading verso alcun altro peer il downlaod dei contenuti viene bloccato per i peer snubbed, finchè il peer

non viene scelto come target di un optimistic unchoke

Antisnubbing: aumentare il numero di optimistic unchoke con l'obiettivo di trovare un peer che effettui l'upload verso lo snubbed peer

Page 71: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

71Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SEEDER CHOKING ALGORITHM

Nelle prime versioni di Bittorrent: l'algoritmo per i seeder simile a quello per i leacher ma i peer non possono essere ordinati dal seeder in base alla loro velocità di

upload, perchè il seeder non scarica nulla dagli altri peer

Algoritmo modificato in modo che il peer ordini i peer rispetto alla loro velocità di download dal seeder favorisce i peer con un'alta velocità di download, indipendentemente dal loro

contributo allo swarm i peer con alta banda possono 'monopolizzare' il seeder e scaricare tutto il

file dal seeder

Page 72: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

72Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SEEDER CHOKING ALGORITHM

Le nuove versioni di Bittorrent prevedono una nuova versione del seeder choking

Scopo dell'algortimo: bilanciare la distribuzione del file tra tutti i peer interessati, non sono tra quelli più veloci

Page 73: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

73Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

UN ESEMPIO DI INTERAZIONE

Page 74: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

74Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

ARCHITETTURE DEL TRACKER

Il tracker centralizzato coordina lo swarm, cioè l'insieme dei peer interessati nello scaricamento di un singolo

Ogni peer interessato notifica la propria presenza al tracker mediante un annuncio e riceve dal tracker un sottoinsieme dei peer dello swarm

Il tracker costituisce un punto di centralizzazione e può diventare un collo di

bottiglia come eliminare un singolo punto di centralizzazione

multitracker: definizione di più tracker per ogni swarm utilizzare distributed hash tables (Kademlia) algoritmi di gossipping (PEX Peer Exchange Protocol)

Page 75: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

75Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

SOLUZIONE MULTITRACKER un insieme di tracker per ogni torrent

ogni tracker dell'insieme conosce tutti i peer dello swarm

un peer contatta un unico tracker per 'annunciare' e ricercare i torrent obiettivo: bilanciare il carico tra i tracker il .torrent contiene una lista di 'announce', da cui il peer sceglie un

tracker in maniera random

i tracker si scambiano informazioni in modo da avere sempre lo stato aggiornato dello swarm

maggior robustezza del sistema: il fallimento del singolo tracker non provoca il fallimento dell'intero sistema

Page 76: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

76Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

DISTRIBUTED TRACKER● soluzione basate su DHT (Kademlia)

● i peer eseguono anche le funzionalità di tracker● peer appartenenti anche a swarm diversi formano una singola DHT

ad ogni peer viene associato un identificatore di 160 bit

nello spazio degli identificatori vengono mappati i descrittori dei files (InfoHash)

per ogni file condiviso, si memorizza sulla DHT: chiave = InfoHash del file informazione = lista di peers appartenenti allo swarm

Page 77: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

77Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

DISTRIBUTED TRACKER

un peer esegue il lookup sulla DHT con l'infohash del torrent e riceve una lista di contatti con cui costruisce il suo peer set iniziale

l peer si 'annuncia' sullo swarm aggiungendo un proprio riferimento alla chiave determinata dall'infohash

richiede la conoscenza di alcuni nodi 'affidabili', costantemente presenti sulla rete

Tracker centralizzato assicura migliori prestazioni, ma la soluzione ditributed tracker assicura maggiore affidabilità della rete

Possibili soluzioni ibride

Possibile individuare peer gestiti da tracker diversi, ma che condividono lo stesso contenuto

Page 78: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

78Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

PEER EXCHANGE PROTOCOL(PEX) Utilizza il tracker centralizzato o la DHT per individuare una lista di peer

iniziale di peer nello swarm

Basato su un protocollo gossip i peer scambiano continuamente informazioni sui contatti conosciuti

Riduce il carico sul tracker

Aumenta la robustezza del sistema: il sistema resiste a crash del tracker

Controlla che i contatti scambiati si riferiscano a peer attivi

Delta PEX Messages: si scambiano solamente le modifiche della lista dei contatti effettuate tra due round successivi di gossip

Page 79: Lezione n.14 P2P CONTENT DISTRIBUTION: BITTORRENTricci/09-05-12-Bittorrent.pdf · 3 Laura Ricci P2P Content Distribution: Bittorrent Dipartimento di Informatica Università degli

79Laura Ricci

P2P Content Distribution: BittorrentDipartimento di InformaticaUniversità degli Studi di Pisa

CONCLUSIONI

Swarm Discovery Search engine

Peer Discovery Central Tracker, Distributed Tracker, PEX protocol

Data Discovery Scambio di informazioni tra i peer

Selezione dei peer Algoritmi di choking

Selezione dei pezzi Strict Priority, Rarest First, Random first Piece, Endgame